Jump to content

Thejuster

Members
  • Posts

    28
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Thejuster

  1. Hello ty pandabro.  :)

    New feature coming soon.

    RO Launcher Creator.

    It's a simple screen, Allow user to Add: Button, Image, Link, and more UI Tool.

    Just Right Click, Add-> Button (for example)
    Drag around Launcher, and add a simple event, like: Launch Application, Open ulr, Donwload file, and more.

    immagine.png

     

    immagine.png

    Can Resize and Move Control.

    Easy way, When your Launcher is ready. Just Right Click and Build.
    rAthena Studio Generate an Executable Application.

     

    immagine.png

    Run and it's same to in Editor

    immagine.png

     

    Now are under development, Adding a simple basic skin and pre-programmed events.

     

     

     

     

    • Love 1
    • Like 1
  2. New Feature 

    rAthena Application Protocol Share System
    After user created a script, can share simply whit just a click. to Share button.

     

     

     

    If you have already installed and updated last version of rAthena Studio try to click here  rathena://npc&fAcW1XUvdE
    or Copy special link and paste in your web browser.

     

    Automatically open content of Shared.
    NPC or Setting, script and more...


    So, if PRO user dont like Visual Scripting, can use Script Editor whit powerfull feature.


     

    Cattura.thumb.JPG.e913b8eb52830680ce7f4ac90ec8c9ce.JPG

    Document Map, Syntax Highlighted,  and folding marker.
    example

     

    Cattura2.JPG.4aaeb31ff75a13beeee663be84321cbc.JPG

    Hope all like it.

  3. Hello Litro, nice job!

    But my MMORpgmaker is not refereced to Ragnarok Online.
    Is a MMORpg Engine.
    Ragnarok have inspired me to this tool.
    The hardest part is the server. Hope to find a good idea o solution for keep low ping and fast gaming.

    My idea is making 2 server.
    1° Main Server For keeping Account alive ( Example, Manage all account, saving, reading etc. )
    2° Core Server for updating all Character position, animation, coordinates and chat

  4. Hi all anyone are interested a MMORpg game engine writted in C#?

    this is a my repo 

    https://github.com/MakingItalia/MMORpgmaker

     

    Is an very old project started on sourceforge  in DirectX 9.0c  and re-writtend in C# Core DesktopGL

    After reading a lot time rAthena source, i have made a server like rAthena.
    Serialized Packet whit Header, and supports TXT database or MySQL.

     

    5.png

     

    Here a simple screen for the Game Client

     

    4.png

     

    The project is free and open source.

    Graphics Interface is based on Old Ragnarok Client Graphics.
    Like this

     

    image.png.bdcd857a16161c9f92a8afae143f6a32.png

     

    Creating Chara

     

    image.png.bae31a0beddebf52ad47da1b59167f10.png

     

    Simple Empty Map

     

    image.png.67c4ed24b9a2dbfbd6181a170c93ffad.png

     


    If anyone want to join im here ?  seeya

     

     

    • Upvote 1
  5. New updates:

    Modern flat UI

     

    image.png.f749e2fd2fb1d765375ac404188e8c46.png

     

    For using tool, need to register to the forum. Then use credential for login.
    This process is necessary for download updates, new Scripted Module and prevent bot download or unauthorized use.
    Autmatically rAthena Studio give your avatar from forum and email allowed to use for the tool.

     

    after login just start wizard for easy server configuration.

    image.png.3d10362538991acd7c55e65b22dee322.png

     

    image.png.586564b0c43bd6a067fa2663bc9ea988.png

     

    if you want join to beta, please ask to the forum or discord.
     

  6. Hi all ?

    I haven't written any updates for a long time.

    Causes covid, life, work and more...

    Other full server configuration , i decide to implements a visual scripting editor like Blue Print (Unreal Engine)

    How to work is very simple, Just connect Node to Node, setting value, and the program, generate the npc script.

    The source code work like that.

    All nodes contains this function to generate code relative to parameters setting.

    public string CreateCode()
            {
                return map.Text + "," + x.Text + "," + y.Text + "," + dir.Text + "	script	" + name.Text + "	" + graphics.Text + ",{";
            }

    Really simple.

    And, this is Frontend

    esempio.PNG.2c77be4a8e9196c1a521e99e19fabe6d.PNG

    Hope like this new NPC Editor.
    Actually need more time to create all Node and function relative to all npc command and sql operation.
    Follow for more news or join in rAthena Studio on discord ??

     

    • Upvote 1
    • Love 3
    • MVP 2
  7. 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

     

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

  9. 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'", .@msg);
    	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
  10. 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.

  11. 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 6
  12. 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?

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

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

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

     

     

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

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

     

×
×
  • Create New...