-
Posts
28 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Thejuster
-
-
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.
Document Map, Syntax Highlighted, and folding marker.
exampleHope all like it.
-
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 -
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.Here a simple screen for the Game Client
The project is free and open source.
Graphics Interface is based on Old Ragnarok Client Graphics.
Like thisCreating Chara
Simple Empty Map
If anyone want to join im here seeya- 1
-
Hi all, im back.
Now rAthena Studio 2 is for Free and unlimited.Download full Application
http://makingitalia.altervista.org/rAthena/rAthenaStudio2.rar
After installed, Check Updates for download new updates.
-
First beta is coming out.
We are find a beta tester ( Accepted only rA Scripter )Only 1 position available.
PM me
-
New updates:
Modern flat UI
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.
if you want join to beta, please ask to the forum or discord.
-
rAthena Studio, Visual NPC Editor in action.
Whit label, Message, Menu and Variable.
Simple video to show how to work.
- 1
-
First example how to work Visual Scripting and Generated Code.
- 1
- 1
- 1
-
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
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- 1
- 3
- 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.
-
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:for wath reason i dont see my text from database?
- 1
-
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
-
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.
-
nice idea!
i have try a test like your request
first test working fine. but need more fix for speed reading on process.
- 2
-
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 DiscordNext, more feature, client patch and more....
- 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?
-
Hello, is possible whit npc send a webrequest or navigate.
for example
www.mysite.com/home.php?action=hiNo need response but only send an action.
No need url, or user to click on a link.
Just send an GET action on url. -
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. -
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; };
-
Tanks jchcc i miss Last param hehe .
Clienttype
But one question.
.L .24b .B is?
-
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?
-
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.]]
-
Submitted10/05/18
-
Category
-
Video
-
Content AuthorThejuster
-
-
tanks @MathReaper and @Anacondaqq i go to check
rAthena Studio
in Project Concepts & In Progress
Posted
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.
Can Resize and Move Control.
Easy way, When your Launcher is ready. Just Right Click and Build.
rAthena Studio Generate an Executable Application.
Run and it's same to in Editor
Now are under development, Adding a simple basic skin and pre-programmed events.