Jump to content

fourxhackd

Members
  • Content Count

    28
  • Joined

  • Last visited

  • Days Won

    4

Reputation Activity

  1. Upvote
    fourxhackd reacted to vBrenth in @whodrops repeatedly show different values for single mob   
    This also normally happen when you do changes the drops / mob_db configuration then you do @reloadbattleconf or @reloadmobdb then @mi, try to restart your server that error will be gone.
  2. Upvote
    fourxhackd got a reaction from CDER in Check_NameGuild   
    I see you want to learn how to script NPCs. On your Hercules server folder, check out the documentaton for scripting. This will start you off so that your "little knowledge in this area" becomes bigger. You'll eventually become a great scripter!
    The documentation for scripting is found in:
    doc/script_commands.txt I want to do X, where do I look for that?
    Specifically for the things you want to learn, look for the following sections in the document:
    Create an npc
    Script loading structure, Script file format
    which requires "xxx" zeny
    Variables, Zeny
    to register a "guild_name"
    Variables
    when the registration ends
    *initnpctimer
    if it was the guild name
    Operators, conditional operators
    teleport
    *warp
    the guild members
    Arrays
    Arrays may be a more difficult topic to learn on your own, but reading other people's scripts will help you understand how it works. You can ask questions.
    If you get started on scripting it, I can give you some feedback on your code when I'm free.
  3. Upvote
    fourxhackd reacted to Ridley in [Collection] Official Full Clients + latest kRO   
    updated first post/download links.
  4. Upvote
    fourxhackd reacted to Ind in Introducing Hercules Channel System   
    Introducing Hercules' Channel System
    Hello~! - What?!
    1st, it is a replacement for the old @main 2nd, it is a super ultra mega improvement compared to the functionality @main provided. 3rd, whops. there is no 3rd. channels.conf format
        /* default channels (available on boot) */     default_channels: {         /* channel_name : channel_messages_color */          main: "Orange" /* available as #main */         support: "Blue" /* available as #support */         trade: "Red" /* available as #trade */         offtopic: "Cyan" /* available as #offtopic */         /* as many channels as you like */     }     /* colors available */     colors: {         Default: "0xffffff" /* custom channels will use the first in the list unless a font is selected thru @channel */         Red: "0xff0000"         Blue: "0x83cfe9"         Orange: "0xe57c00"         Cyan: "0x00b89d"         Yellow: "0xffff90"         Green: "0x28bf00"         Normal: "0x00ff00"         /* as many colors as you like */     }     /* allow users to create their own (private) channels through @channels command? */     /* (must also allow players to use @channels in groups.conf) */     allow_user_channel_creation: true     /* "map_local_channel" is a instanced channel unique to each map */     map_local_channel: true     map_local_channel_name: "map" /* available as #map */     map_local_channel_color: "Yellow"     map_local_channel_autojoin: true /* can disable autojoin in specific maps through mapflag or zone: nomapchannelautojoin */     /* "ally_channel" is a channel shared by all your guild allies */     ally_channel_enabled: true     ally_channel_name: "ally" /* available as #ally */     ally_channel_color: "Green"     ally_channel_autojoin: true Notes on the format/configuration
    default_channels is the list of reboot-persistent channels, you can setup as many as you like and each can have its own color for chat, which you can specify in colors (again, you can setup as many as you like) map_local_channel is a feature that grants each map its own instanced channel (available, by default as #map -- which can be changed as per map_local_channel_name) map_local_channel_autojoin whether users will autojoin the local channel when they load a map with it enabled map_local_channel_autojoin can be disabled on selected maps (e.g. if you dont want it on gvg maps) through a mapflag (with a horribly long name D:) '<map name><tab>mapflag<tab>nomapchannelautojoin' ally_channel_enabled is a feature that grants a instanced channel for each guild's allies (as well as their own members), available by default as #ally -- which can be changed as per map_local_channel_name ally_channel_autojoin whether users will autojoin their respective ally chats upon login. New Commands Explained
    @join Simple: @join <#channel_name>or, for password-protected rooms: @join <#channel_name> <password> @channel Does a number of things. Create a new channel (option available as long as allow_user_channel_creation is enabled) @channel create <#channel_name> <password> List public channels (groups with hchsys_admin can view private channels as well) @channel list Change a channel's color (requires to be owner of said channel or be in a group with hchsys_admin permission) @channel setcolor Samples available colors and displays their keys/names @channel list colors Leaves a specific channel @channel leave <#channel_name> Binds your global chat to a specific channel, making everything you type that'd normally be displayed to nearby characters be redirected to that channel instead @channel bindto <#channel_name> Unbinds your global chat from the current (if any) binded channel @channel unbind Bans a specific character from a channel @channel ban <#channel name> <character name> Lists all banned characters from a channel (groups with channel system admin permission can also see their account id) @channel banlist <#channel name> Unbans a specific character from a channel @channel unban <#channel name> <character name> Changes a channel's options (for now, channel message delay and announce-when-someone-joins) @channel setopt <#channel name> <option name> <option value> How to speak in a #channel
    You can either bind a channel to your global chat (see @channel bindto above) or PM the channel you want to speak to, if you attempt to send a pm to a non-password protected channel that you have not joined, you'll autojoin. Other stuff
    as I coded this feature I also improved overall guild processing/lookup, extremely, extremely faster (did I already say its ridiculously faster? WoE overhead probably more than halved with this). over a hundred lookups were replaced by a cached guild state that takes only 4~8 bytes per player. The commit also fixed a "wearing-garment-removed-costume-garment-look" bug - special thanks to jTynne for letting me know~! Groups with channel admin permission can bypass the channel message delay Special Thanks
    to Streusel for proposing an idea that'd end up as the @channel bindto feature. to Frost for proposing the per-channel message delay limitation to Fatalis for proposing what'd end up as the @channel ban, @channel unban and @channel unbanall to Zopokx for proposing an improvement to how the map/local channels function Links~!
    Commit Commit (update)
  5. Upvote
    fourxhackd reacted to master@ragna in [Yug-WebDev] Services [Web-Dev] [Server-Dev]   
    Omg this is so untrue...

    what all he wanted?
    Full Installation of Server
    Website design & Code I
    Installed on a dedicated server Up-to-date Hercules Emulator (stable).
    Up-to-date Client (stable)


    I have completed the whole project and submitted to him.

    his domain name:-
    http://www.playzombieragnarok.com

    what all I did?
    1] Logo
    2] graphics
    3] installation of herc on his server.
    4] installation of 2017 bug-free Client [with some modifications].
    5] Whole Responsive bootstrap coded Design.
    6] Coding of the Website.
    7] Patcher Design and Coding.
    8] then he suggested me to update all the website the way he wanted it. I did that as well.

    everything was good and he was very polite and nicely talking, he was very happy and satisfied.

    I really don't know all of a sudden what happens to him.
    He has shut down the domain:- http://playzombieragnarok.com
    but I have uploaded it on my demo site (to show that the work is completed):- http://theme3.yug-webdev.com/
    I have already completed all the above and really don't know why is he behaving like this?
    all the above is completed
    this person has also claimed a returned on PayPal, I did everything he wanted.
    I don't know if he has changed the password or just closed the server and domain ..

    I don't he might have changed his mind of opening server etc,. 
    I really don't understand how to deal with this now.

    he is trying to scam me..
    he already got all that I have done.. and now he is trying to get the money as well.
    can anyone suggest me what to do in this situation?

    I suggest checked that this person has joined the herc forum on 31st of May. 2018
    was he a fraud ? or someone's duplicate account?
  6. Upvote
    fourxhackd got a reaction from Ridley in Overview of Ragnarok Online Server Development   
    Reserving this post.
    Table of Contents
    Server side development Source code and what it means to compile Server configuration and customization NPC Scripting Source code editing Mid-level overview of Hercules
    The illustration below shows a more detailed view of the server (left) and the client (right). As you can see, it is OVERWHELMING, especially for a thirteen year old.
    So listen to me first when I say I want you to focus on the left side, which is the server side aspect of RO development.

     
    Server-side development
    On the left side, we will be focusing on the server-side development. We begin at the top most part of the server-side, which begins with the source code.
    What does "Source code" mean?
     
    The quote above and below is lifted from my own writings regarding Compiling and source code in the Hercules Wiki.
     
    Source Code and what it means to Compile
    Analogy (Language when traveling)
    You are a Filipino. You know the language Filipino as your main language. When you study in school and university, you learn the language English and Spanish. When you travel visit Korea, you learn a little Korean too. You are becoming more and more adaptable wherever you go. You can go to Europe, Spain, Korea, etc. 
    When you go to South Korea, you think of ordering food because you will eat. First, you think in Filipino "Gutom ako" which means "I am hungry" in English. So you get your Language Book for Koreans and say the korean counterpart which is 나 배고파 (na baegopa). By speaking Korean, you are understood by people in Korea.
     
    Parallelism in RO Development
    In RO Development, your source code is your main language. In your head, when you are thinking, that is the language that you hear when you think. In the example above, the source code is Filipino. I, fourxhackd, think in Filipino. When I have something I want to share in the forums of Hercules, I translate my understanding into the language necessary for you the readers, so that you will understand me.
     
    Changing from Filipino to English is called translation.
    Changing from source code to executable code is called compiling.
     
    Translation is necessary because not all people are Filipino, or English. Some are Korean, some are French, Chinese.
    Compilation is necessary because not all machines are Windows, or Unix. Some are OSX, Ubuntu, Fedora, etc.
     
    Because there are Language Books or Dictionaries for Filipino, we can perform translation from Filipino to another language (e.g. to English).
    Because there are Compilers for the C Programming Language, we can perform compiling from C Source Code to Runnable Executable Files (e.g. for Linux).
     
    Because we already know what ideas we have in our minds that we want to share, and because we have dictionaries, we are able to adapt and talk to people in different countries.
    Because Hercules shared with us the source code for RO server development, and because we have compilers, we are able to deploy RO server development code for any environment.
     
    Given the above analogy and explanation, I hope that you understand better what the words "source code" and "compile" mean, and why they are important. We will continue now with the assumption that you understand compiling source code, and that you will be able to follow different kinds of guides available throughout the forums/knowledge-base. Now that you understand it better, we can conclude this section by saying the following:
    Review the diagram at the top of this post again. Through compiling, we can produce produce the server executable programs (map, char, and login) from the source code.
     
    Extended Reading
    On Compiling and how to Compile, specifically in the context of Hercules - https://github.com/HerculesWS/Hercules/wiki/Compiling Wikipedia - Compiler https://en.wikipedia.org/wiki/Compiler Wikipedia - Source code https://en.wikipedia.org/wiki/Source_code  
     
    Server Configuration
    We will now continue to talk about configuring your server. This is the bottom part of the left side of the diagram.
    I will not go into too much detail on this, since configuration is pretty much straightforward and well documented.
    The only advice I have is to read the documentation already provided! Go to your hercules_server_folder/doc and read everything! Read all the comments that your wise masters have left behind for you.
    It is my opinion that configuring and customizing the server is the simplest part of RO development, for the simple reason that you need only change one value to another. Do not be afraid to test something out, and to bring it back if it doesn't work. It is okay to make mistakes.
    For example, in conf/map/battle/exp.conf:
    // Rate at which exp. is given. (Note 2) base_exp_rate: 100 // Rate at which job exp. is given. (Note 2) job_exp_rate: 100 If you are not sure what 100 means, then first read the documentation above.
    //========================================================================= // Battle (Experience) Configuration File //========================================================================= // Note 1: Value is a config switch (true/false) // Note 2: Value is in percents (100 means 100%) // Note 3: The max level of classes is stored in the exp table. // See files db/exp.txt and db/exp2.txt to change them. //========================================================================= Note 2 means that value is in percent, and that 100 means 100%. Now you understand!
    Now that you understand, try making it 200. See the difference. Then make it 10000. Test it out. Find out for yourself.
    It is important to think critically: "I wonder what will happen if I change this". Think. Test. Understand. That will build your confidence that you know what you are doing.
     
     
    NPC Scripting
    NPC Scripting is a type of server configuration, except that it focuses solely on NPC scripts. Just like my advice in general server configuration, read the documentation!
    Open hercules_server_folder/doc/script_commands.txt and read the whole document until it has been ingrained in you. 
    In school, you are forced to read text books to understand math, or science. However, we cannot apply it immediately in the world to understand the value of math and science.
    In RO development, you CAN read text books (like the script bible) to understand NPC scripting. Unlike math and science, your understanding of scripting can BRING TO LIFE new NPCs into the world. Celebrate this new found power of creation!
     
    Unfinished
    This guide is not yet finished. I'll be writing about it in more detail soon.
  7. Upvote
    fourxhackd got a reaction from Ridley in Overview of Ragnarok Online Server Development   
    Introduction
    I'm planning to write a guide to Ragnarok Online development that begins with the big picture of server development, and transition into more detail through a series of carefully selected newbie questions to guide our path.
    I'll be providing extended reading materials (other people's guides, relevant tools) relevant to the current topic.
    Table of Contents
    How is this guide different Expectations Learning RO development the best way Who are we and what do we know? What do we see in games? High-level overview of Games Mid-level overview of Hercules  
    How is this guide different?
    The guide will read less like a technical document that tells you "what to do". It will read more like a novel that walks through the questions a newbie would ask, just like when a newbie is on an adventure and exploring the unknown. 
    So don't be afraid of the unknown, or the difficult challenges ahead. That's where we're going (there's more EXP there), and we'll find treasure and grow stronger that way!
    Expectations
    This guide works with the following assumptions:
    The target audience is a thirteen year old who has no computer science background at all (Or at least, the guide will explain things very simply to make sure even thirteen year olds could do it). Software development terminologies will be given two things: (a) an Explain Like I'm Five years old explanation; and (b) links for deeper reading. The target audience has never coded, or scripted before. The target audience has played other games. Preferably online games and RPGs such as World of Warcraft, DotA 2. The other games will be examples I will use when explaining certain topics.   Learning RO development the best way
    Here are a few suggestions to make your RO development experience less frustrating and much, much more pleasant:
    Have an interest in playing RO and wanting to have an RO of your own. Have a little bit of patience and diligence to read about how things work. Have commitment to keep your eyes on what you want to accomplish. Cherish every victory no matter how small (e.g. make this npc talk, make this item give +99 LUK instead of +1 LUK). Every victory is a victory. Be open to experiencing things that you do not know. Have the humility to acknowledge what you cannot do and what you do not know, and to ask for help when you are lost. Have the humility, respectful reverence to the forum leaders who spare some of their valuable time not only to educate and teach you what they know, but also who contribute to building RO servers for free (open source development). Who are we and what do we know?
    We begin with what all gamers know: we like to play games.
    What are games that you are actually familiar with? I know I've played RO back in 2003. I played counter strike a decade ago, I tried out Gunbound and Runescape, I played Adventure Quest (Flash game). I even enjoyed writing in Gaia Online, doing role-play in forum threads. During my stay in the university (2011-2018), I played loads of DotA 2 and it showed me what competitive/professional gaming looked like, showing me the depth of gaming that I haven't seen before. I played shooter games like Overwatch, PUBG, Destiny 2, and different kinds of games from Steam like Project Zomboid and Stardew Valley.
    The reason why I bring up different kinds of games is because this is our shared or common knowledge. It is what unites you and me, two strangers in the internet. Our common love for playing RO and playing games in general.
    So now that you've gotten to know me a little better, we now ask the question: How does a person transition from a gamer into a game developer?
     
    What do we see in games?
    Scenario
    It's 8PM and you are at your house. You just finished having dinner, and are now about to start playing in your favorite RO private server. You go to your computer, you open up the game's patcher. You find some updates. "New game content!" you think to yourself. You go to the website to read about the changes: It might be changes to the items, buffs to your favorite RO class, or changes to the map, or new NPCs and events and dungeons! Your RO finishes updating, and your game begins.
     
    What happened?
    We begin our journey into game and server development with terminologies. 
     
    Terminologies? Why do I have to memorize these things?
    We have to know what we call things to make sure we understand each other. If you don't understand me, you will not learn. If you get confused, you will get lost. If you do not know the terminology for the things you are having a problem with, you won't know how to say what your problem is.
    Game Website - This is the website where you go to learn how to install a private RO server, read about game changes and news, and interact with other people in the community through forums. Patcher - This is the tool that you use to make sure you're updated. Otherwise, you'll encounter outdated game information, problems, and worst case scenario: crashes. Game Client - This is the runnable program that you are in when playing the game. For example TalonRO.exe, or AeRO.exe.
    From the perspective of a gamer, these are all the areas where they interact with a game provider:
    They use the website to download the installer. The patcher updates the game. They run the game to play.
     

     
    High-level overview of Games
    What is a client?
    Simply put, a client is an application or a program that communicates with a remote system called a server. These terminologies are used when under a system that follows a client-server architecture. 
     
    Alright, so what is a client and a server architecture?
    Imagine the following: You go to a restaurant to eat dinner. When you sit down, the waiter comes to you. The waiter is who you talk to and interact with so that the kitchen knows what food to cook for you. The waiter who takes your order and makes sure you are having a good time is the client. He is the interface between you and the kitchen. The kitchen which  deals with the inventory of goods and making sure that chefs are doing the processes to produce food is the server.
    You can have multiple clients (e.g. TalonRO.exe distributed to different players across the world) that connect to one server. That in a nutshell is a client and server architecture.
     
    What does a client-to-server interaction look like?
    The illustration below is a very simplified illustration of a client-server architecture. This means that a client 
    The server (on the left) and the client (on the right) communicate with each other. That is how the game works.
    Green - When it comes to accessing a game website (which is actually a web server) requires a web client or web browser like Google Chrome or Mozilla Firefox.
      Orange - When your patcher is running, it asks the question "Are there any new updates?" specifically to a patch server, which has a master list of patches. It's like how a customer in a restaurant asks "What can I order?" and the client tells them "This is what the kitchen can cook".
      Blue - When your game connects to the server, it not only can ask questions (e.g. "What is my player's level and stats?") it can also tell the server what to do (e.g. "Move my player to prontera X and Y location). The client interfaces between you (the player) and the server.
     
    That's the high-level overview of how games work. It's a combination or orchestration of fast-paced conversations between people (players on clients) and machines (servers that allow players to play together). There are machines in between to facilitate all of these complicated processes.
    Keywords: Port forwarding
     
    One example of a machine that facilitates people playing together is Hercules, or rAthena. These are game servers that follows a specific set of rules or instructions that dictate what is expected when RO clients connect to RO servers.
     
    What do you mean by "follows a specific set of rules or instructions"?
    A protocol is a set of specific rules or instructions. Having a set of specific rules or instructions makes sure that we follow the same rules.
     
    For example, if we play the game Rock Paper Scissors (roshambo, bato bato piks), we need to know the following rules:
    You're supposed to make a choice of either Rock or Paper or Scissors. You only choose one. You're supposed to make a choice after counting 1, 2, and 3. Rock is represented as a closed fist. Scissors is represented with two fingers (index and middle) extended. Paper is represented with five fingers extended. Rock beats Scissors. Paper beats Rock. Scissors beats Paper. When we learn about the rules and follow them, we can play Rock Paper Scissors. Two players can then follow the rules, understand each other, and agree as to who won the game.
    If players did not follow the rules ("1, 2, 3 - Suddenly, a player shows Fire which he says beats Rock Paper and Scissors!") then people would be confused, feel cheated, and things will not work. There will be misunderstandings.
     
    When it comes to game servers, we need a set of rules to follow as well. The protocol is the set of rules for how the server and the client will communicate. If your game server and your client does not follow the same protocol, they will have misunderstandings and they will not work.
    An example of protocols in RO development is the use of the following port values: 5121, 6121, 6900. If you don't have a client that talks to the server at the expected port, your server will be confused and will not respond to any requests.
    An example of protocol is the agreement on which packet version to use. If you use the wrong packet version, your server will not understand the packets being sent by your client.
     
    Relevant Keywords: Packets, PACKETVER, Compiling, Ports
     
    We talked about an example of machines that facilitate processes to enable multiple people to play together (MMORPG). An example of this is Hercules, which we look into more detail below in the following post.
  8. Upvote
    fourxhackd got a reaction from Functor in Overview of Ragnarok Online Server Development   
    Introduction
    I'm planning to write a guide to Ragnarok Online development that begins with the big picture of server development, and transition into more detail through a series of carefully selected newbie questions to guide our path.
    I'll be providing extended reading materials (other people's guides, relevant tools) relevant to the current topic.
    Table of Contents
    How is this guide different Expectations Learning RO development the best way Who are we and what do we know? What do we see in games? High-level overview of Games Mid-level overview of Hercules  
    How is this guide different?
    The guide will read less like a technical document that tells you "what to do". It will read more like a novel that walks through the questions a newbie would ask, just like when a newbie is on an adventure and exploring the unknown. 
    So don't be afraid of the unknown, or the difficult challenges ahead. That's where we're going (there's more EXP there), and we'll find treasure and grow stronger that way!
    Expectations
    This guide works with the following assumptions:
    The target audience is a thirteen year old who has no computer science background at all (Or at least, the guide will explain things very simply to make sure even thirteen year olds could do it). Software development terminologies will be given two things: (a) an Explain Like I'm Five years old explanation; and (b) links for deeper reading. The target audience has never coded, or scripted before. The target audience has played other games. Preferably online games and RPGs such as World of Warcraft, DotA 2. The other games will be examples I will use when explaining certain topics.   Learning RO development the best way
    Here are a few suggestions to make your RO development experience less frustrating and much, much more pleasant:
    Have an interest in playing RO and wanting to have an RO of your own. Have a little bit of patience and diligence to read about how things work. Have commitment to keep your eyes on what you want to accomplish. Cherish every victory no matter how small (e.g. make this npc talk, make this item give +99 LUK instead of +1 LUK). Every victory is a victory. Be open to experiencing things that you do not know. Have the humility to acknowledge what you cannot do and what you do not know, and to ask for help when you are lost. Have the humility, respectful reverence to the forum leaders who spare some of their valuable time not only to educate and teach you what they know, but also who contribute to building RO servers for free (open source development). Who are we and what do we know?
    We begin with what all gamers know: we like to play games.
    What are games that you are actually familiar with? I know I've played RO back in 2003. I played counter strike a decade ago, I tried out Gunbound and Runescape, I played Adventure Quest (Flash game). I even enjoyed writing in Gaia Online, doing role-play in forum threads. During my stay in the university (2011-2018), I played loads of DotA 2 and it showed me what competitive/professional gaming looked like, showing me the depth of gaming that I haven't seen before. I played shooter games like Overwatch, PUBG, Destiny 2, and different kinds of games from Steam like Project Zomboid and Stardew Valley.
    The reason why I bring up different kinds of games is because this is our shared or common knowledge. It is what unites you and me, two strangers in the internet. Our common love for playing RO and playing games in general.
    So now that you've gotten to know me a little better, we now ask the question: How does a person transition from a gamer into a game developer?
     
    What do we see in games?
    Scenario
    It's 8PM and you are at your house. You just finished having dinner, and are now about to start playing in your favorite RO private server. You go to your computer, you open up the game's patcher. You find some updates. "New game content!" you think to yourself. You go to the website to read about the changes: It might be changes to the items, buffs to your favorite RO class, or changes to the map, or new NPCs and events and dungeons! Your RO finishes updating, and your game begins.
     
    What happened?
    We begin our journey into game and server development with terminologies. 
     
    Terminologies? Why do I have to memorize these things?
    We have to know what we call things to make sure we understand each other. If you don't understand me, you will not learn. If you get confused, you will get lost. If you do not know the terminology for the things you are having a problem with, you won't know how to say what your problem is.
    Game Website - This is the website where you go to learn how to install a private RO server, read about game changes and news, and interact with other people in the community through forums. Patcher - This is the tool that you use to make sure you're updated. Otherwise, you'll encounter outdated game information, problems, and worst case scenario: crashes. Game Client - This is the runnable program that you are in when playing the game. For example TalonRO.exe, or AeRO.exe.
    From the perspective of a gamer, these are all the areas where they interact with a game provider:
    They use the website to download the installer. The patcher updates the game. They run the game to play.
     

     
    High-level overview of Games
    What is a client?
    Simply put, a client is an application or a program that communicates with a remote system called a server. These terminologies are used when under a system that follows a client-server architecture. 
     
    Alright, so what is a client and a server architecture?
    Imagine the following: You go to a restaurant to eat dinner. When you sit down, the waiter comes to you. The waiter is who you talk to and interact with so that the kitchen knows what food to cook for you. The waiter who takes your order and makes sure you are having a good time is the client. He is the interface between you and the kitchen. The kitchen which  deals with the inventory of goods and making sure that chefs are doing the processes to produce food is the server.
    You can have multiple clients (e.g. TalonRO.exe distributed to different players across the world) that connect to one server. That in a nutshell is a client and server architecture.
     
    What does a client-to-server interaction look like?
    The illustration below is a very simplified illustration of a client-server architecture. This means that a client 
    The server (on the left) and the client (on the right) communicate with each other. That is how the game works.
    Green - When it comes to accessing a game website (which is actually a web server) requires a web client or web browser like Google Chrome or Mozilla Firefox.
      Orange - When your patcher is running, it asks the question "Are there any new updates?" specifically to a patch server, which has a master list of patches. It's like how a customer in a restaurant asks "What can I order?" and the client tells them "This is what the kitchen can cook".
      Blue - When your game connects to the server, it not only can ask questions (e.g. "What is my player's level and stats?") it can also tell the server what to do (e.g. "Move my player to prontera X and Y location). The client interfaces between you (the player) and the server.
     
    That's the high-level overview of how games work. It's a combination or orchestration of fast-paced conversations between people (players on clients) and machines (servers that allow players to play together). There are machines in between to facilitate all of these complicated processes.
    Keywords: Port forwarding
     
    One example of a machine that facilitates people playing together is Hercules, or rAthena. These are game servers that follows a specific set of rules or instructions that dictate what is expected when RO clients connect to RO servers.
     
    What do you mean by "follows a specific set of rules or instructions"?
    A protocol is a set of specific rules or instructions. Having a set of specific rules or instructions makes sure that we follow the same rules.
     
    For example, if we play the game Rock Paper Scissors (roshambo, bato bato piks), we need to know the following rules:
    You're supposed to make a choice of either Rock or Paper or Scissors. You only choose one. You're supposed to make a choice after counting 1, 2, and 3. Rock is represented as a closed fist. Scissors is represented with two fingers (index and middle) extended. Paper is represented with five fingers extended. Rock beats Scissors. Paper beats Rock. Scissors beats Paper. When we learn about the rules and follow them, we can play Rock Paper Scissors. Two players can then follow the rules, understand each other, and agree as to who won the game.
    If players did not follow the rules ("1, 2, 3 - Suddenly, a player shows Fire which he says beats Rock Paper and Scissors!") then people would be confused, feel cheated, and things will not work. There will be misunderstandings.
     
    When it comes to game servers, we need a set of rules to follow as well. The protocol is the set of rules for how the server and the client will communicate. If your game server and your client does not follow the same protocol, they will have misunderstandings and they will not work.
    An example of protocols in RO development is the use of the following port values: 5121, 6121, 6900. If you don't have a client that talks to the server at the expected port, your server will be confused and will not respond to any requests.
    An example of protocol is the agreement on which packet version to use. If you use the wrong packet version, your server will not understand the packets being sent by your client.
     
    Relevant Keywords: Packets, PACKETVER, Compiling, Ports
     
    We talked about an example of machines that facilitate processes to enable multiple people to play together (MMORPG). An example of this is Hercules, which we look into more detail below in the following post.
  9. Upvote
    fourxhackd got a reaction from Radian in Overview of Ragnarok Online Server Development   
    Introduction
    I'm planning to write a guide to Ragnarok Online development that begins with the big picture of server development, and transition into more detail through a series of carefully selected newbie questions to guide our path.
    I'll be providing extended reading materials (other people's guides, relevant tools) relevant to the current topic.
    Table of Contents
    How is this guide different Expectations Learning RO development the best way Who are we and what do we know? What do we see in games? High-level overview of Games Mid-level overview of Hercules  
    How is this guide different?
    The guide will read less like a technical document that tells you "what to do". It will read more like a novel that walks through the questions a newbie would ask, just like when a newbie is on an adventure and exploring the unknown. 
    So don't be afraid of the unknown, or the difficult challenges ahead. That's where we're going (there's more EXP there), and we'll find treasure and grow stronger that way!
    Expectations
    This guide works with the following assumptions:
    The target audience is a thirteen year old who has no computer science background at all (Or at least, the guide will explain things very simply to make sure even thirteen year olds could do it). Software development terminologies will be given two things: (a) an Explain Like I'm Five years old explanation; and (b) links for deeper reading. The target audience has never coded, or scripted before. The target audience has played other games. Preferably online games and RPGs such as World of Warcraft, DotA 2. The other games will be examples I will use when explaining certain topics.   Learning RO development the best way
    Here are a few suggestions to make your RO development experience less frustrating and much, much more pleasant:
    Have an interest in playing RO and wanting to have an RO of your own. Have a little bit of patience and diligence to read about how things work. Have commitment to keep your eyes on what you want to accomplish. Cherish every victory no matter how small (e.g. make this npc talk, make this item give +99 LUK instead of +1 LUK). Every victory is a victory. Be open to experiencing things that you do not know. Have the humility to acknowledge what you cannot do and what you do not know, and to ask for help when you are lost. Have the humility, respectful reverence to the forum leaders who spare some of their valuable time not only to educate and teach you what they know, but also who contribute to building RO servers for free (open source development). Who are we and what do we know?
    We begin with what all gamers know: we like to play games.
    What are games that you are actually familiar with? I know I've played RO back in 2003. I played counter strike a decade ago, I tried out Gunbound and Runescape, I played Adventure Quest (Flash game). I even enjoyed writing in Gaia Online, doing role-play in forum threads. During my stay in the university (2011-2018), I played loads of DotA 2 and it showed me what competitive/professional gaming looked like, showing me the depth of gaming that I haven't seen before. I played shooter games like Overwatch, PUBG, Destiny 2, and different kinds of games from Steam like Project Zomboid and Stardew Valley.
    The reason why I bring up different kinds of games is because this is our shared or common knowledge. It is what unites you and me, two strangers in the internet. Our common love for playing RO and playing games in general.
    So now that you've gotten to know me a little better, we now ask the question: How does a person transition from a gamer into a game developer?
     
    What do we see in games?
    Scenario
    It's 8PM and you are at your house. You just finished having dinner, and are now about to start playing in your favorite RO private server. You go to your computer, you open up the game's patcher. You find some updates. "New game content!" you think to yourself. You go to the website to read about the changes: It might be changes to the items, buffs to your favorite RO class, or changes to the map, or new NPCs and events and dungeons! Your RO finishes updating, and your game begins.
     
    What happened?
    We begin our journey into game and server development with terminologies. 
     
    Terminologies? Why do I have to memorize these things?
    We have to know what we call things to make sure we understand each other. If you don't understand me, you will not learn. If you get confused, you will get lost. If you do not know the terminology for the things you are having a problem with, you won't know how to say what your problem is.
    Game Website - This is the website where you go to learn how to install a private RO server, read about game changes and news, and interact with other people in the community through forums. Patcher - This is the tool that you use to make sure you're updated. Otherwise, you'll encounter outdated game information, problems, and worst case scenario: crashes. Game Client - This is the runnable program that you are in when playing the game. For example TalonRO.exe, or AeRO.exe.
    From the perspective of a gamer, these are all the areas where they interact with a game provider:
    They use the website to download the installer. The patcher updates the game. They run the game to play.
     

     
    High-level overview of Games
    What is a client?
    Simply put, a client is an application or a program that communicates with a remote system called a server. These terminologies are used when under a system that follows a client-server architecture. 
     
    Alright, so what is a client and a server architecture?
    Imagine the following: You go to a restaurant to eat dinner. When you sit down, the waiter comes to you. The waiter is who you talk to and interact with so that the kitchen knows what food to cook for you. The waiter who takes your order and makes sure you are having a good time is the client. He is the interface between you and the kitchen. The kitchen which  deals with the inventory of goods and making sure that chefs are doing the processes to produce food is the server.
    You can have multiple clients (e.g. TalonRO.exe distributed to different players across the world) that connect to one server. That in a nutshell is a client and server architecture.
     
    What does a client-to-server interaction look like?
    The illustration below is a very simplified illustration of a client-server architecture. This means that a client 
    The server (on the left) and the client (on the right) communicate with each other. That is how the game works.
    Green - When it comes to accessing a game website (which is actually a web server) requires a web client or web browser like Google Chrome or Mozilla Firefox.
      Orange - When your patcher is running, it asks the question "Are there any new updates?" specifically to a patch server, which has a master list of patches. It's like how a customer in a restaurant asks "What can I order?" and the client tells them "This is what the kitchen can cook".
      Blue - When your game connects to the server, it not only can ask questions (e.g. "What is my player's level and stats?") it can also tell the server what to do (e.g. "Move my player to prontera X and Y location). The client interfaces between you (the player) and the server.
     
    That's the high-level overview of how games work. It's a combination or orchestration of fast-paced conversations between people (players on clients) and machines (servers that allow players to play together). There are machines in between to facilitate all of these complicated processes.
    Keywords: Port forwarding
     
    One example of a machine that facilitates people playing together is Hercules, or rAthena. These are game servers that follows a specific set of rules or instructions that dictate what is expected when RO clients connect to RO servers.
     
    What do you mean by "follows a specific set of rules or instructions"?
    A protocol is a set of specific rules or instructions. Having a set of specific rules or instructions makes sure that we follow the same rules.
     
    For example, if we play the game Rock Paper Scissors (roshambo, bato bato piks), we need to know the following rules:
    You're supposed to make a choice of either Rock or Paper or Scissors. You only choose one. You're supposed to make a choice after counting 1, 2, and 3. Rock is represented as a closed fist. Scissors is represented with two fingers (index and middle) extended. Paper is represented with five fingers extended. Rock beats Scissors. Paper beats Rock. Scissors beats Paper. When we learn about the rules and follow them, we can play Rock Paper Scissors. Two players can then follow the rules, understand each other, and agree as to who won the game.
    If players did not follow the rules ("1, 2, 3 - Suddenly, a player shows Fire which he says beats Rock Paper and Scissors!") then people would be confused, feel cheated, and things will not work. There will be misunderstandings.
     
    When it comes to game servers, we need a set of rules to follow as well. The protocol is the set of rules for how the server and the client will communicate. If your game server and your client does not follow the same protocol, they will have misunderstandings and they will not work.
    An example of protocols in RO development is the use of the following port values: 5121, 6121, 6900. If you don't have a client that talks to the server at the expected port, your server will be confused and will not respond to any requests.
    An example of protocol is the agreement on which packet version to use. If you use the wrong packet version, your server will not understand the packets being sent by your client.
     
    Relevant Keywords: Packets, PACKETVER, Compiling, Ports
     
    We talked about an example of machines that facilitate processes to enable multiple people to play together (MMORPG). An example of this is Hercules, which we look into more detail below in the following post.
  10. Upvote
    fourxhackd reacted to Dastgir in Linux: Map Server crash on @autotrade   
    Try to get gdb dump and post it here.
    http://herc.ws/wiki/GDB
     
    (If you are using old ExtVending, be sure to update it, I have updated it a month ago I guess.)
  11. Upvote
    fourxhackd got a reaction from projectofall in Overview of Ragnarok Online Server Development   
    Reserving this post.
    Table of Contents
    Server side development Source code and what it means to compile Server configuration and customization NPC Scripting Source code editing Mid-level overview of Hercules
    The illustration below shows a more detailed view of the server (left) and the client (right). As you can see, it is OVERWHELMING, especially for a thirteen year old.
    So listen to me first when I say I want you to focus on the left side, which is the server side aspect of RO development.

     
    Server-side development
    On the left side, we will be focusing on the server-side development. We begin at the top most part of the server-side, which begins with the source code.
    What does "Source code" mean?
     
    The quote above and below is lifted from my own writings regarding Compiling and source code in the Hercules Wiki.
     
    Source Code and what it means to Compile
    Analogy (Language when traveling)
    You are a Filipino. You know the language Filipino as your main language. When you study in school and university, you learn the language English and Spanish. When you travel visit Korea, you learn a little Korean too. You are becoming more and more adaptable wherever you go. You can go to Europe, Spain, Korea, etc. 
    When you go to South Korea, you think of ordering food because you will eat. First, you think in Filipino "Gutom ako" which means "I am hungry" in English. So you get your Language Book for Koreans and say the korean counterpart which is 나 배고파 (na baegopa). By speaking Korean, you are understood by people in Korea.
     
    Parallelism in RO Development
    In RO Development, your source code is your main language. In your head, when you are thinking, that is the language that you hear when you think. In the example above, the source code is Filipino. I, fourxhackd, think in Filipino. When I have something I want to share in the forums of Hercules, I translate my understanding into the language necessary for you the readers, so that you will understand me.
     
    Changing from Filipino to English is called translation.
    Changing from source code to executable code is called compiling.
     
    Translation is necessary because not all people are Filipino, or English. Some are Korean, some are French, Chinese.
    Compilation is necessary because not all machines are Windows, or Unix. Some are OSX, Ubuntu, Fedora, etc.
     
    Because there are Language Books or Dictionaries for Filipino, we can perform translation from Filipino to another language (e.g. to English).
    Because there are Compilers for the C Programming Language, we can perform compiling from C Source Code to Runnable Executable Files (e.g. for Linux).
     
    Because we already know what ideas we have in our minds that we want to share, and because we have dictionaries, we are able to adapt and talk to people in different countries.
    Because Hercules shared with us the source code for RO server development, and because we have compilers, we are able to deploy RO server development code for any environment.
     
    Given the above analogy and explanation, I hope that you understand better what the words "source code" and "compile" mean, and why they are important. We will continue now with the assumption that you understand compiling source code, and that you will be able to follow different kinds of guides available throughout the forums/knowledge-base. Now that you understand it better, we can conclude this section by saying the following:
    Review the diagram at the top of this post again. Through compiling, we can produce produce the server executable programs (map, char, and login) from the source code.
     
    Extended Reading
    On Compiling and how to Compile, specifically in the context of Hercules - https://github.com/HerculesWS/Hercules/wiki/Compiling Wikipedia - Compiler https://en.wikipedia.org/wiki/Compiler Wikipedia - Source code https://en.wikipedia.org/wiki/Source_code  
     
    Server Configuration
    We will now continue to talk about configuring your server. This is the bottom part of the left side of the diagram.
    I will not go into too much detail on this, since configuration is pretty much straightforward and well documented.
    The only advice I have is to read the documentation already provided! Go to your hercules_server_folder/doc and read everything! Read all the comments that your wise masters have left behind for you.
    It is my opinion that configuring and customizing the server is the simplest part of RO development, for the simple reason that you need only change one value to another. Do not be afraid to test something out, and to bring it back if it doesn't work. It is okay to make mistakes.
    For example, in conf/map/battle/exp.conf:
    // Rate at which exp. is given. (Note 2) base_exp_rate: 100 // Rate at which job exp. is given. (Note 2) job_exp_rate: 100 If you are not sure what 100 means, then first read the documentation above.
    //========================================================================= // Battle (Experience) Configuration File //========================================================================= // Note 1: Value is a config switch (true/false) // Note 2: Value is in percents (100 means 100%) // Note 3: The max level of classes is stored in the exp table. // See files db/exp.txt and db/exp2.txt to change them. //========================================================================= Note 2 means that value is in percent, and that 100 means 100%. Now you understand!
    Now that you understand, try making it 200. See the difference. Then make it 10000. Test it out. Find out for yourself.
    It is important to think critically: "I wonder what will happen if I change this". Think. Test. Understand. That will build your confidence that you know what you are doing.
     
     
    NPC Scripting
    NPC Scripting is a type of server configuration, except that it focuses solely on NPC scripts. Just like my advice in general server configuration, read the documentation!
    Open hercules_server_folder/doc/script_commands.txt and read the whole document until it has been ingrained in you. 
    In school, you are forced to read text books to understand math, or science. However, we cannot apply it immediately in the world to understand the value of math and science.
    In RO development, you CAN read text books (like the script bible) to understand NPC scripting. Unlike math and science, your understanding of scripting can BRING TO LIFE new NPCs into the world. Celebrate this new found power of creation!
     
    Unfinished
    This guide is not yet finished. I'll be writing about it in more detail soon.
  12. Upvote
    fourxhackd got a reaction from Dastgir in Overview of Ragnarok Online Server Development   
    Introduction
    I'm planning to write a guide to Ragnarok Online development that begins with the big picture of server development, and transition into more detail through a series of carefully selected newbie questions to guide our path.
    I'll be providing extended reading materials (other people's guides, relevant tools) relevant to the current topic.
    Table of Contents
    How is this guide different Expectations Learning RO development the best way Who are we and what do we know? What do we see in games? High-level overview of Games Mid-level overview of Hercules  
    How is this guide different?
    The guide will read less like a technical document that tells you "what to do". It will read more like a novel that walks through the questions a newbie would ask, just like when a newbie is on an adventure and exploring the unknown. 
    So don't be afraid of the unknown, or the difficult challenges ahead. That's where we're going (there's more EXP there), and we'll find treasure and grow stronger that way!
    Expectations
    This guide works with the following assumptions:
    The target audience is a thirteen year old who has no computer science background at all (Or at least, the guide will explain things very simply to make sure even thirteen year olds could do it). Software development terminologies will be given two things: (a) an Explain Like I'm Five years old explanation; and (b) links for deeper reading. The target audience has never coded, or scripted before. The target audience has played other games. Preferably online games and RPGs such as World of Warcraft, DotA 2. The other games will be examples I will use when explaining certain topics.   Learning RO development the best way
    Here are a few suggestions to make your RO development experience less frustrating and much, much more pleasant:
    Have an interest in playing RO and wanting to have an RO of your own. Have a little bit of patience and diligence to read about how things work. Have commitment to keep your eyes on what you want to accomplish. Cherish every victory no matter how small (e.g. make this npc talk, make this item give +99 LUK instead of +1 LUK). Every victory is a victory. Be open to experiencing things that you do not know. Have the humility to acknowledge what you cannot do and what you do not know, and to ask for help when you are lost. Have the humility, respectful reverence to the forum leaders who spare some of their valuable time not only to educate and teach you what they know, but also who contribute to building RO servers for free (open source development). Who are we and what do we know?
    We begin with what all gamers know: we like to play games.
    What are games that you are actually familiar with? I know I've played RO back in 2003. I played counter strike a decade ago, I tried out Gunbound and Runescape, I played Adventure Quest (Flash game). I even enjoyed writing in Gaia Online, doing role-play in forum threads. During my stay in the university (2011-2018), I played loads of DotA 2 and it showed me what competitive/professional gaming looked like, showing me the depth of gaming that I haven't seen before. I played shooter games like Overwatch, PUBG, Destiny 2, and different kinds of games from Steam like Project Zomboid and Stardew Valley.
    The reason why I bring up different kinds of games is because this is our shared or common knowledge. It is what unites you and me, two strangers in the internet. Our common love for playing RO and playing games in general.
    So now that you've gotten to know me a little better, we now ask the question: How does a person transition from a gamer into a game developer?
     
    What do we see in games?
    Scenario
    It's 8PM and you are at your house. You just finished having dinner, and are now about to start playing in your favorite RO private server. You go to your computer, you open up the game's patcher. You find some updates. "New game content!" you think to yourself. You go to the website to read about the changes: It might be changes to the items, buffs to your favorite RO class, or changes to the map, or new NPCs and events and dungeons! Your RO finishes updating, and your game begins.
     
    What happened?
    We begin our journey into game and server development with terminologies. 
     
    Terminologies? Why do I have to memorize these things?
    We have to know what we call things to make sure we understand each other. If you don't understand me, you will not learn. If you get confused, you will get lost. If you do not know the terminology for the things you are having a problem with, you won't know how to say what your problem is.
    Game Website - This is the website where you go to learn how to install a private RO server, read about game changes and news, and interact with other people in the community through forums. Patcher - This is the tool that you use to make sure you're updated. Otherwise, you'll encounter outdated game information, problems, and worst case scenario: crashes. Game Client - This is the runnable program that you are in when playing the game. For example TalonRO.exe, or AeRO.exe.
    From the perspective of a gamer, these are all the areas where they interact with a game provider:
    They use the website to download the installer. The patcher updates the game. They run the game to play.
     

     
    High-level overview of Games
    What is a client?
    Simply put, a client is an application or a program that communicates with a remote system called a server. These terminologies are used when under a system that follows a client-server architecture. 
     
    Alright, so what is a client and a server architecture?
    Imagine the following: You go to a restaurant to eat dinner. When you sit down, the waiter comes to you. The waiter is who you talk to and interact with so that the kitchen knows what food to cook for you. The waiter who takes your order and makes sure you are having a good time is the client. He is the interface between you and the kitchen. The kitchen which  deals with the inventory of goods and making sure that chefs are doing the processes to produce food is the server.
    You can have multiple clients (e.g. TalonRO.exe distributed to different players across the world) that connect to one server. That in a nutshell is a client and server architecture.
     
    What does a client-to-server interaction look like?
    The illustration below is a very simplified illustration of a client-server architecture. This means that a client 
    The server (on the left) and the client (on the right) communicate with each other. That is how the game works.
    Green - When it comes to accessing a game website (which is actually a web server) requires a web client or web browser like Google Chrome or Mozilla Firefox.
      Orange - When your patcher is running, it asks the question "Are there any new updates?" specifically to a patch server, which has a master list of patches. It's like how a customer in a restaurant asks "What can I order?" and the client tells them "This is what the kitchen can cook".
      Blue - When your game connects to the server, it not only can ask questions (e.g. "What is my player's level and stats?") it can also tell the server what to do (e.g. "Move my player to prontera X and Y location). The client interfaces between you (the player) and the server.
     
    That's the high-level overview of how games work. It's a combination or orchestration of fast-paced conversations between people (players on clients) and machines (servers that allow players to play together). There are machines in between to facilitate all of these complicated processes.
    Keywords: Port forwarding
     
    One example of a machine that facilitates people playing together is Hercules, or rAthena. These are game servers that follows a specific set of rules or instructions that dictate what is expected when RO clients connect to RO servers.
     
    What do you mean by "follows a specific set of rules or instructions"?
    A protocol is a set of specific rules or instructions. Having a set of specific rules or instructions makes sure that we follow the same rules.
     
    For example, if we play the game Rock Paper Scissors (roshambo, bato bato piks), we need to know the following rules:
    You're supposed to make a choice of either Rock or Paper or Scissors. You only choose one. You're supposed to make a choice after counting 1, 2, and 3. Rock is represented as a closed fist. Scissors is represented with two fingers (index and middle) extended. Paper is represented with five fingers extended. Rock beats Scissors. Paper beats Rock. Scissors beats Paper. When we learn about the rules and follow them, we can play Rock Paper Scissors. Two players can then follow the rules, understand each other, and agree as to who won the game.
    If players did not follow the rules ("1, 2, 3 - Suddenly, a player shows Fire which he says beats Rock Paper and Scissors!") then people would be confused, feel cheated, and things will not work. There will be misunderstandings.
     
    When it comes to game servers, we need a set of rules to follow as well. The protocol is the set of rules for how the server and the client will communicate. If your game server and your client does not follow the same protocol, they will have misunderstandings and they will not work.
    An example of protocols in RO development is the use of the following port values: 5121, 6121, 6900. If you don't have a client that talks to the server at the expected port, your server will be confused and will not respond to any requests.
    An example of protocol is the agreement on which packet version to use. If you use the wrong packet version, your server will not understand the packets being sent by your client.
     
    Relevant Keywords: Packets, PACKETVER, Compiling, Ports
     
    We talked about an example of machines that facilitate processes to enable multiple people to play together (MMORPG). An example of this is Hercules, which we look into more detail below in the following post.
  13. Upvote
    fourxhackd reacted to Brynner in I can't find the regular chat in my client   
    just simply click the + icon to add additional chat tab
  14. Upvote
    fourxhackd reacted to Yommy in How to utilize navigation system for custom NPCs   
    its stupid to think gravity made these files by hand, they probably have some tool that outputs the navigation files based on there own npc folder.
     
    i suggest an @command to build the navigation files from a running Hercules, so it can loop every npc and calculate distance tables.
     
    if you need the format of any of the lua just ask
  15. Upvote
    fourxhackd reacted to KirieZ in SetQuest2   
    SetQuest2
    View File NOTE: This functionality got merged into Hercules (check setquest and getcalendartime). That being said, I'm NOT maintaining this plugin anymore.
    Hello,
    This plugin adds the setquest2 script command that allows you to add a quest with your own time limit, ignoring the one in quest_db, thus allowing you to, for example, make a quest end at a determined time next day independently of when it was originally given.
    *setquest(<ID>,<Time Limit>)Place quest of <ID> that will expire at <Time Limit> in the users quest log, the state of which is "active".    
    Examples:
     
    - Ask the player to come back in a random number of minutes (1 ~ 3)
    prontera,150,150,4 script SetQuest2 1_m_01,{ .@p = questprogress(7128,PLAYTIME); if (.@p == 1) { mes "Come back later!"; } else { if (.@p == 2) { mes "You came back!"; getitem Red_Potion, 1; erasequest 7128; } .@i = rand(1, 3); mes "Come back in " + .@i + " minutes"; setquest2 7128, gettimetick(2) + (.@i * 60); } close;}    
    - Ask the player to come back tomorrow (next day at 00:00)
    prontera,150,152,4 script SetQuest2b 1_m_01,{ .@p = questprogress(7126,PLAYTIME); if (.@p == 1) { mes "Come back later!"; } else { if (.@p == 2) { mes "You came back!"; getitem Red_Potion, 1; erasequest 7126; } .@i = 86400 - gettimetick(1); mes "Come back tomorrow"; setquest2 7126, gettimetick(2) + .@i; } close;}    
    If you find any bug let me know.
    Submitter KirieZ Submitted 02/22/17 Category Plugins  
  16. Upvote
    fourxhackd got a reaction from Dastgir in Charms [Item gift effect while in inventory]   
    Using @Dastgir's updated charms.c plugin found in his Github (Apr 29 2017), I was able to test it and it seems to be working fine on my build.
    Dropping the item from my inventory results to the effects (+1 STR in my case) to disappear. Picking the item up returns the effect. The command @itemreset removes the effect as well.
    I do however, experience a warning when I build on a unix-based (Ubuntu) system. The warnings showed up when I executed the command:
    make clean && make all Warnings

    Despite the warning, the effects seem to be fine and I am currently having no problems whatsoever.
  17. Upvote
    fourxhackd reacted to evilpuncker in [Guide] How to use a secondary ItemInfo file   
    just posting the code again in case anyone needs it (okay it is really broken since I do not have the original )
     
    -- Load the original file. As you might have guessed you can also load your translated file here instead -- (just make sure the "tbl" array contains your item info)dofile("System/iteminfo.lub") -- Now as a simple example . I am simply going to change name of Red Potion to Crimson Potion. -- But you can add anything in the same way. Format is same as the original one, just -- the table name is different tbl_custom = { [501] = { unidentifiedDisplayName = "Crimson Potion", unidentifiedResourceName = "»¡°£Æ÷¼Ç", unidentifiedDescriptionName = { "A potion made from", "grinded Red Herbs that", "restores ^000088about 45 HP^000000.", "^ffffff_^000000", "Weight: ^7777777^000000" }, identifiedDisplayName = "Crimson Potion", identifiedResourceName = "»¡°£Æ÷¼Ç", identifiedDescriptionName = { "^000088HP Recovery Item^000000", "A potion made from", "grinded Red Herbs that", "restores ^000088about 45 HP^000000.", "^ffffff_^000000", "Weight: ^7777777^000000" }, slotCount = 0, ClassNum = 0 } ,} -- Now for a helper function because i hate repetitions -- It adds items from curTable if it is not present in refTable function itemAdder(curTable, refTable) for ItemID,DESC in pairs(curTable) do if refTable == nil or refTable[ItemID] == nil then result, msg = AddItem(ItemID,DESC.unidentifiedDisplayName,DESC.unidentifiedResourceName,DESC.identifiedDisplayName,DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum) if not result then return false, msg end for k,v in pairs(DESC.unidentifiedDescriptionName) do result, msg = AddItemUnidentifiedDesc(ItemID, v) if not result then return false, msg end end for k,v in pairs(DESC.identifiedDescriptionName) do result, msg = AddItemIdentifiedDesc(ItemID, v) if not result then return false, msg end end end end return true, "good" end -- And the newly designed main function function main() result, msg = itemAdder(tbl_custom, nil) -- add custom items (including official overrides) if result then result, msg = itemAdder(tbl, tbl_custom) -- add non-overridden official items end return result, msgend
  18. Upvote
    fourxhackd reacted to Daifuku in Discord/Forum Ragnarok Emotes   
    View File Discord/Forum Ragnarok Emotes

    I used these emotes for my previous ragnarok server.
    It's closed now, so feel free to use them - I might release some other small things if people want c:
    Submitter Daifuku Submitted 06/07/17 Category Other Graphics  
  19. Upvote
    fourxhackd reacted to luizragna in Where can I translate this?   
    Solved!
     
    Go to the GRF with your translations and go to that path:
    [GRF]/data/luafiles514/lua files/skillinfoz/SkillTreeView.lub Find something like this:
    JobSkillTab.ChangeSkillTabName(JOBID.JT_NOVICE, "1st", "2nd", "3rd") JobSkillTab.ChangeSkillTabName(JOBID.JT_NINJA, "1st", "2nd", "3rd") JobSkillTab.ChangeSkillTabName(JOBID.JT_GUNSLINGER, "1st", "2nd", "3rd") JobSkillTab.ChangeSkillTabName(JOBID.JT_SUPERNOVICE, "1st", "2nd", "3rd") JobSkillTab.ChangeSkillTabName(JOBID.JT_TAEKWON, "1st", "2nd", "3rd") JobSkillTab.ChangeSkillTabName(JOBID.JT_STAR, "1st", "2nd", "3rd") JobSkillTab.ChangeSkillTabName(JOBID.JT_LINKER, "1st", "2nd", "3rd") JobSkillTab.ChangeSkillTabName(JOBID.JT_STAR2, "1st", "2nd", "3rd") JobSkillTab.ChangeSkillTabName(JOBID.JT_DO_SUMMONER, "Summoner") JobSkillTab.ChangeSkillTabName(JOBID.JT_DO_SUMMONER_B, "Summoner") Rewrite the string as you want.
  20. Upvote
    fourxhackd reacted to Rytech in Black spots on the map   
    You may want to try using a newer client to see if that resolves the issue. Newer clients likely have updated support for newer OS's and API's and you client being a Feb 2014 client is close to reaching 5 years of age.
  21. Upvote
    fourxhackd reacted to jaBote in Dastgir's Services   
    Topic approved. Best of luck!
     
    P.S.: I can assure you he's one of the best guaranteed paid services to date: you just have to check his previous career, and the reputation, dedication and past contributions he's had here at Hercules.
  22. Upvote
    fourxhackd reacted to Dastgir in Dastgir's Services   
    Hello Hercules Community,

    I am offering my Services to you @ some expense of money.

    Works for Emulator: Hercules/rAthena/Others(if any)
    Services:
    Scripting. (Min Price:5$ ) Source Modification(/Addition).(Min Price: 5$) Converting to/Creating a Plugin[Hercules Specific].(Min Price: 5$) Migrating Your Server. (Min Price: 10$) Adding Custom Items/Maps/Mobs. (Min Price: 5$) Creating/Adding New Skills. (Min Price: 10$) Changing of Emulator (Min Price: 10$) ClientSide Things. (Min Price: 5$) Fixing Errors. (Min Price: 5$) Script Review. Consulting And Anything else, that you want, just drop me a PM
    Maximum Price: Depends on Complexity of the Work
    What Else:
    Free Support for Service bought from me.

    Contact Info:
    Post Here Via PM Payment Methods:
    PayPal Only PM me if you want any other payment method, and I might check If I can have it.

    Status: AVAILABLE
  23. Upvote
    fourxhackd reacted to Mhalicot in Pre-renewal and Renewal Paki explain!   
    Pre-renewal walang 3rd jobs and level cap ay 99 at mababa ang stats ng mga items, Renewal ay may 3rd jobs and ang level ng mga monsters ay lagpas 100+++ at matataas ang stats ng Items,
     
    for example:
    Pre-renewal Cotton Shirt = 1 Defense
    Renewal Cotton Shirt = 10 Defense
     
    ganyan lang ka simple
  24. Upvote
    fourxhackd reacted to Dastgir in Charms   
    My Free Times comes too late :(
    Anyways, Here it is: https://github.com/dastgir/HPM-Plugins/blob/master/src/plugins/CharmSystem.c
  25. Upvote
    fourxhackd reacted to AnnieRuru in Charms   
    Download: 1.6
    plugin
     
     
    tested with
    { Id: 909 AegisName: "Jellopy" Name: "Jellopy" Buy: 6 Weight: 10 BuyingStore: true Charm: true // Charm_Stack: true Script: <" bonus bStr, 10000; "> OnEquipScript: <" sc_start4 SC_ENDURE,60000,10,0,0,1; hateffect HAT_EF_BOTTOM_BLOODYLUST, true; "> OnUnequipScript: <" sc_end SC_ENDURE; hateffect HAT_EF_BOTTOM_BLOODYLUST, false; "> // OnRentalStartScript: <" dispbottom "rent start"; "> // OnRentalEndScript: <" dispbottom "rent end"; "> }, just having Jellopy inside inventory will get bonus
    Remember: it has to use IT_ETC type item, which has been default to type 3 if you didn't specify
    and also "Charm: true" flag
    if added the "Charm_Stack: true" flag, the charms will stack
    - if the flag is false (default), having 10 same charms will give bonus 10 times, because they are separate items
    - if the flag is true, having 10 same charms will only give bonus once, because they are stack together
     
    version 1.3 onwards, added nocharms mapflag
    http://herc.ws/board/topic/15219-modification-to-noitem-plugin/
    to disable charms bonuses given in certain maps
    prontera mapflag nocharms disable all charms from taking effect on the map
    prontera mapflag nocharms 909 prontera mapflag nocharms Jellopy disable only this 'Jellopy' charm from giving bonus
     
    version 1.5 onwards, added OnEquipScript and OnUnequipScript support
    now you can gives permanent SC_ENDURE bonus like eddga card like effect
    or gives hateffect bonus like the example shown
     
     
    credit to digitalhamster
    in case you guys forgotten, I fixed digitalhamster's patch on eathena forum 4 years ago
    and the one in rathena also credited my name
    and if you like this plugin, remember to also repup Dastgir's post in this topic
    because I copy paste most of his stuffs
     
×
×
  • Create New...

Important Information

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