Jump to content

Thejuster

Members
  • Posts

    19
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Thejuster

  1. Hello again try whit this error

     

     Connection refused: IP isn't authorised (deny/allow, ip: 127.0.0.1).

     

    Cattura.thumb.PNG.254e469e24dad6fd1126871bb9a6223d.PNG

     

    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

     

  2. 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'", .@item);
    	
    	announce "Discord> " + .@item$ ,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'", .@item);
    	
    	announce "Discord> " + .@item$ ,0,0x0965f9;
    	sleep 3000;
    	
        }
    }

    empty string.

  3. Hello i have made this NPC

     

    prontera,157,176,7	script	Discord	47,{
    
            //OnInit:
        while(1) {
    
    	query_sql("SELECT * FROM `discordbot` WHERE `id`='1'", .@item);
    	//query_sql("SELECT `messaggio` FROM `discordbot` WHERE `id` LIKE '1'", [email protected]);
    	announce "Discord> " + escape_sql(.@item[1]),0,0x0965f9;
    	sleep 3000;
    	
        }
    }

     

    My Table  discordbot

     

    
       INT(10)      VARCHAR  (255)
    +---------+----------------------+
    |   ID    |     MESSAGGIO        |  
    +---------+----------------------+
    |   1     |    Hello World       |
    +---------+----------------------+


    On client i see:

    screenrAthena002.thumb.jpg.2f98b63c0ee2d33f131aba3df514f97e.jpg

     

    for wath reason i dont see my text from database?

     

    • Love 1
  4. 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.

  5. 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:

     

    S2.png

     

    S3.png

     

    Reposity is public and open for all future Developer and more.

    github.png  and Join on Discord  images?q=tbn:ANd9GcQXOnH4jxU0h8gEZFIfCn5

    Next, more feature, client patch and more....

     

     

     

    • Upvote 5
  6. 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?

  7. 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.

  8. nope 😕

    uhmm here are a problem.

    Cattura.png

     

    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.

  9. 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);

     

     

    Cattura.PNG.77d34f579d488dfd5b60b65936c23511.PNG

    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

     

     

    Cattura.PNG.5d92eb58c14f593f0b14433930a0c426.PNG

     

    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;
    	};

     

     

  10. 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:

     

    Cattura.JPG.afcb77c3b6e44722e954a62638d64765.JPG

     

    anyone know reason of this problem?

  11. ServerConfig


    ServerConfig is a free tool for automatic configuration whit your rAthena Server.

    Very simple to use.

    Just 4 click and your server are ready.

     

    Requisites:

    .NET Framework 4.0

     

    How to use:

    1° Unrar the archive

    2° Select a root rAtehan folder. ( for example:   C:\rAthena )

    3° Click Detect in IP Address configuration, or put ip address in this filed.

    4° Check Enable sql Server if you like use rAthena sql

    5° Click Update Server Files

     

    After patching, you can test if your roter Port are enabled.

     

    Plase report bug or error.

     


    • Submitter
      [[Template core/front/global/userLink is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]
    • Submitted
      10/05/18
    • Category
    • Video
    • Content Author
      Thejuster

     

  12. Hello, Im a Thejuster. ( Sorry for my english, im italian )

    Old member from eAthena.
    35 year old, and C# Senior Microsoft Qualified (MVP ) programmer.
    Know under 20 programming languague.

    One my project is Mire Engine aka MMORpgmaker.

    is a Cross-Platform RPG / MMORPG game Engine totally written in C#  DirectX / OpenGL. Supporting LUA, Javascript and WebGL.
    Support, NormalMap, Deferred 2D Lighting system, and more feature.
    We recived more award from Brothersoft, softpedia and more web app hosting.

    screenshoot if want seen

     

    Spoiler

    In this example i have use a RO Sprite whit Realtime deferred light
    ?interpolation=lanczos-none&output-forma

    Relased APK for Android:
    https://apkpure.com/mire-engine-overview/makingitalia.net.mireengine

    And the Scripting System like Blueprint Unreal Engine.

    ?interpolation=lanczos-none&output-forma

    link to the forum https://mire.forumfree.it/

    my first play to ragnarok uhmm, think 2002.
    i love this game, and maybe i can support rAthena whit tool and varius release.

    Seeya :)
     

     

     

    • Upvote 3
    • Love 2
  13. Hello,

    How to find a complete list of packets used in rAthena?

    for example

     

    0x64
     
    struct PACKET_CA_LOGIN {  /* this+0x0 */ short PacketType  /* this+0x2 */ unsigned long Version  /* this+0x6 */ unsigned char ID[24]  /* this+0x1e */ unsigned char Passwd[24]  /* this+0x36 */ unsigned char clienttype }

     

     

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.