Thejuster

Members
  • Content Count

    19
  • Avg. Content Per Day

    0
  • Joined

  • Last visited

  • Days Won

    1

Thejuster last won the day on February 24

Thejuster had the most liked content!

Community Reputation

12 Good

2 Followers

About Thejuster

  • Rank
    Poring
  • Birthday 10/08/1984

Profile Information

  • Gender
    Not Telling
  • Location
    Italy
  • Server
    FutureRO
  • Github
    https://github.com/MakingItalia
  • Interests
    Programming and videogame makers.

Contact Methods

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. One question. Is possible draw a custom Window like cutin? Example like crafting, or more operation whit UI.
  2. Hello again try whit this error Connection refused: IP isn't authorised (deny/allow, ip: 127.0.0.1). changed structure to ulong and int to sbyte and work. i have an bytes array around 51bytes total if( (command == 0x0064 && packet_len < 55) And i think now work but server block 127.0.0.1 address
  3. Not work i see empty string only "Discord> " and nothing prontera,157,176,7 script Discord 47,{ //OnInit: while(1) { query_sql("SELECT * FROM `discordbot` WHERE `id`='1'", [email protected]); announce "Discord> " + [email protected]$ ,0,0x0965f9; sleep 3000; } } and try whit this prontera,157,176,7 script Discord 47,{ //OnInit: while(1) { query_sql("SELECT `messaggio` FROM `discordbot` WHERE `id`='1'", [email protected]); announce "Discord> " + [email protected]$ ,0,0x0965f9; sleep 3000; } } empty string.
  4. Hello i have made this NPC prontera,157,176,7 script Discord 47,{ //OnInit: while(1) { query_sql("SELECT * FROM `discordbot` WHERE `id`='1'", [email protected]); //query_sql("SELECT `messaggio` FROM `discordbot` WHERE `id` LIKE '1'", [email protected]); announce "Discord> " + escape_sql([email protected][1]),0,0x0965f9; sleep 3000; } } My Table discordbot INT(10) VARCHAR (255) +---------+----------------------+ | ID | MESSAGGIO | +---------+----------------------+ | 1 | Hello World | +---------+----------------------+ On client i see: for wath reason i dont see my text from database?
  5. Hello, i need to call this functio when a player write a command actually are setted on /broadcast or /mes etc. can i reply? this function and redirect at_command for example " @message Hello " to this funciont? in order, need to implement more function ti this clif_broadcast. https://github.com/rathena/rathena/blob/master/src/map/clif.cpp#L6217
  6. Hello, anyone know who are function to send message to game? i have find this int channel_send(struct Channel *channel, struct map_session_data *sd, const char *msg) { int idx = 0; if(!channel || !sd || !msg || (idx = channel_pc_haschan(sd, channel)) < 0) return -1; if(!pc_has_permission(sd, PC_PERM_CHANNEL_ADMIN) && channel->msg_delay != 0 && DIFF_TICK(sd->channel_tick[idx] + channel->msg_delay, gettick()) > 0) { clif_messagecolor(&sd->bl,color_table[COLOR_RED],msg_txt(sd,1455),false,SELF); //You're talking too fast! return -2; } else { char output[CHAT_SIZE_MAX]; unsigned long color = channel->color; if((channel->opt&CHAN_OPT_COLOR_OVERRIDE) && sd->fontcolor && sd->fontcolor < channel_config.colors_count && channel_config.colors[sd->fontcolor]) color = channel_config.colors[sd->fontcolor]; safesnprintf(output, CHAT_SIZE_MAX, "%s %s : %s", channel->alias, sd->status.name, msg); clif_channel_msg(channel,output,color); sd->channel_tick[idx] = gettick(); } return 0; } Componen\map-server\channel.cpp but im not sure this is a correct function to send message in public chat to field.
  7. nice idea! i have try a test like your request first test working fine. but need more fix for speed reading on process. Untitled.mp4
  8. Hi, If interest, wanted to introduces you rAthena Studio. Is a Cross-Platform tool for manage, setting and configuring rAthena Server. Written in Qt C++. Compatible 100% for Windows, Linux and Mac. and OpenSource. Actually is in progress. But are available for testing and configure simple 4 step to run rAthena in public ip. Screen: Reposity is public and open for all future Developer and more. and Join on Discord Next, more feature, client patch and more....
  9. I need the page is called via npc without click on link or button In C# code example i call a webrequest whit WebClient string msg = "Hello"; WebClient wb = new WebClient($"http://mysite.com?message={msg}"); wb.Navigate(); //or wb.DownloadString(); // for response. i need a function like this if exist. or need to edit source code? if i need, name of the interested file?
  10. Hello, is possible whit npc send a webrequest or navigate. for example www.mysite.com/home.php?action=hi No need response but only send an action. No need url, or user to click on a link. Just send an GET action on url.
  11. nope uhmm here are a problem. look total size sent is 72bytes. Simple i pack command,verion,username,password,clienttype total = 72byte but rAthena server ask: static int logclif_parse_reqauth(int fd, struct login_session_data *sd, int command, char* ip){ size_t packet_len = RFIFOREST(fd); if( (command == 0x0064 && packet_len < 55) //For command 0x64 packet max lenght is 55 byte i use this. 0x64 || (command == 0x0277 && packet_len < 84) || (command == 0x02b0 && packet_len < 85) || (command == 0x01dd && packet_len < 47) || (command == 0x01fa && packet_len < 48) || (command == 0x027c && packet_len < 60) my packet size is 72byte but a conditional branch on server is limited under 55byte. Strange for me. No have idea for wath reason my structure is 72bytes. I follow step by step server parameters and Unmanaged conversion.
  12. Tanks Zell i try whit this example. First step is done but server cant read my username or password send in src/loginclif.cpp function /** * Received a connection request. * @param fd: file descriptor to parse from (client) * @param sd: client session * @param command: packet type sent * @param ip: ipv4 address (client) * S 0064 <version>.L <username>.24B <password>.24B <clienttype>.B * S 0277 <version>.L <username>.24B <password>.24B <clienttype>.B <ip address>.16B <adapter address>.13B * S 02b0 <version>.L <username>.24B <password>.24B <clienttype>.B <ip address>.16B <adapter address>.13B <g_isGravityID>.B * S 01dd <version>.L <username>.24B <password hash>.16B <clienttype>.B * S 01fa <version>.L <username>.24B <password hash>.16B <clienttype>.B <?>.B(index of the connection in the clientinfo file (+10 if the command-line contains "pc")) * S 027c <version>.L <username>.24B <password hash>.16B <clienttype>.B <?>.13B(junk) * S 0825 <packetsize>.W <version>.L <clienttype>.B <userid>.24B <password>.27B <mac>.17B <ip>.15B <token>.(packetsize - 0x5C)B * @param fd: fd to parse from (client fd) * @return 0 failure, 1 success */ static int logclif_parse_reqauth(int fd, struct login_session_data *sd, int command, char* ip){ size_t packet_len = RFIFOREST(fd); i see for command 0x64 ( Request login authentification ) S 0064 <version>.L <username>.24B <password>.24B <clienttype>.B my code Packet Structure [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] struct DataPacket { public ushort command; public ulong version; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 24)] //.24B byte, Server Code Ask 24B ( 24 Bytes ) public String Username; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 24)] //Some 24 Byte Lenght public String Password; public byte clienttype; //is wrong? public byte[] Serialize() { // allocate a byte array for the struct data var buffer = new byte[Marshal.SizeOf(typeof(DataPacket))]; // Allocate a GCHandle and get the array pointer var gch = GCHandle.Alloc(buffer, GCHandleType.Pinned); var pBuffer = gch.AddrOfPinnedObject(); Marshal.StructureToPtr(this, pBuffer, false); gch.Free(); return buffer; } // this method will deserialize a byte array into the struct. public void Deserialize(ref byte[] data) { var gch = GCHandle.Alloc(data, GCHandleType.Pinned); this = (DataPacket)Marshal.PtrToStructure(gch.AddrOfPinnedObject(), typeof(DataPacket)); gch.Free(); } } DataPacket packet = new DataPacket(); packet.command = 0x64; packet.version = 55; packet.Username = "Thejuster"; packet.Password = "123456789"; packet.clienttype = 0; var bytes = packet.Serialize(); soc.Send(bytes); If i try to connect whit my code, i see this on server. I see username and password server dont read. Normal Connection whit Ragnarok Client Uhmmm i dont have idea for this problem. I have download roBrowser, and see src. because javascript and c# are similar. i find this i on source // 0x64 PACKET.CA.LOGIN = function PACKET_CA_LOGIN() { this.Version = 0; this.ID = ''; this.Passwd = ''; this.clienttype = 0; }; //Here i think the author build a packet structure. PACKET.CA.LOGIN.prototype.build = function() { // i think is a size of all packet //[2] Command + [4] ???? No have idea. + [24] Username + [24] Password + [1] Client type var pkt_len = 2 + 4 + 24 + 24 + 1; var pkt_buf = new BinaryWriter(pkt_len); pkt_buf.writeShort(0x64); pkt_buf.writeULong(this.Version); pkt_buf.writeString(this.ID, 24); pkt_buf.writeString(this.Passwd, 24); pkt_buf.writeUChar(this.clienttype); return pkt_buf; };
  13. Tanks jchcc i miss Last param hehe . Clienttype But one question. .L .24b .B is?
  14. Hello i try to make a discord bot whit potential feature. One my problem is try to connection in rAthena Server. Actually i use c# my code //Setting Socket soc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ip = IPAddress.Parse("127.0.0.1"); IPEndPoint host = new IPEndPoint(ip, 6900); soc.Connect(host); //Static Packet byte packet = 0x64; byte[] id = Encoding.ASCII.GetBytes("Thejuster"); byte[] pass = Encoding.ASCII.GetBytes("123456789"); //Packet Builder List<byte> pacchetto = new List<byte>(); //Assembly packet pacchetto.Add(0x64); foreach(byte b in id) { pacchetto.Add(b); } foreach(byte b in pass) { pacchetto.Add(b); } //Send full pachet soc.Send(pacchetto.ToArray()); When i try to connect, rAthena Login Server say this: anyone know reason of this problem?