Popular Content

Showing content with the highest reputation since 07/20/18 in all areas

  1. 11 points

    [Collection] Official Full Clients

    Collection of official Full Clients. Those are vanilla, not modified in any way or whatever. They are patched up to date. Let me know if I've missed something. BGM's following the next days. Server Name With BGM Without BGM BGM only South Korea (kRO) 31. Dec. 2017 Mega gDrive Mega gDrive Mega gDrive Zippyshare South Korea (Ragnarok Zero) 04. January 2017 Mega gDrive Taiwan and Hongkong (twRO) 31. Dec. 2017 Mega gDrive Mega gDrive Mega gDrive Zippyshare Japan (jRO) 31. Dec. 2017 Mega gDrive Mega gDrive Mega gDrive Zippyshare Thailland (tRO) 31. Dec. 2017 Mega gDrive Mega gDrive Mega gDrive Zippyshare International (iRO) 31. Dec. 2017 Mega gDrive Mega gDrive Mega gDrive Zippyshare Philippines (pRO) 31. Dec. 2017 Mega gDrive Mega gDrive Mega gDrive Zippyshare Indonesia (idRO) 31. Dec. 2017 Mega gDrive Mega gDrive Mega gDrive Zippyshare Brazil (bRO) 31. Dec. 2017 Mega gDrive Mega gDrive Mega gDrive Zippyshare France, Europe (fRO, euRO) 31. Dec. 2017 Mega gDrive Mega gDrive Mega gDrive Zippyshare
  2. 9 points

    Custom Unit HP Bar System

    Hello guys, i'm making a custom hp bar system for mob units. The command show the HP of the mob for all players in the map. I am using the cutin command, the problem is that I do not think so many files are necessary. In the case 1 image for each percentage of hp I would like your opnion and help to improve this system and make it lighter. Test yourselves :). HP Bar System: payon,147,229,4 script Test#HPbar 1_F_MARIA,{ if (.HP_Bar == 0) { .HP_Bar = 1; .mobGID = monster ("payon",148,226,"[T] HP Test",POPORING,1,strnpcinfo(0)+"::OnDie"); setunitdata .mobGID,UDT_MAXHP,4000; setunitdata .mobGID,UDT_HP,4000; [email protected] = getunits(BL_PC, [email protected], false, "payon"); for ([email protected] = 0; [email protected] < [email protected]; [email protected]++) addtimer(0,strnpcinfo(0)+"::OnHPBar", [email protected][[email protected]]); } end; OnDie: .HP_Bar = 0; end; OnHPBar: .U_MAXHP = getunitdata (.mobGID,UDT_MAXHP); while (.HP_Bar != 0) { .U_HP = getunitdata (.mobGID,UDT_HP); .P_HP = (.U_HP*100)/.U_MAXHP; cutin(""+.P_HP+"", 1); sleep2 100; } cutin("0", 1); sleep2 5000; //Delay to hide HP Bar cutin("", 255); end; } Donwload of the data folder files: HP Bar System (2018-06-26).rar
  3. 7 points

    [Release] 2018 Clients translated tipbox

    Hello everyone, I present to you a modified tip box which has been completely translated to English. Tested on: 2018-04-04c RagexeRE and worked like a charm. In your System folder in Client side, replace your tipbox.lub with my translated tipbox i have attached below: tipbox.lub Then, Patch your client with whatever settings you want and then open the patched client in hexeditor ( I used XV132 for this) IMPORTANT NOTE : Make sure you hex a "patched" client. DO NOT do it on an unpatched client or else NEMO will show errors for random "recommended patches" that you select while patching it. Find the following and replace with hex for english translation : for checkbox: BD C3 C0 DB C7 D2 20 B6 A7 20 BF AD B1 E2 English translation: 53 61 76 65 20 54 69 70 3F 20 20 20 20 20 for close button : B4 DD B1 E2 English translation : 44 6F 6E 65 (korean translation of close has only 4 strings so I had to replace it with "Done" to match the string size -_-) OR go to your NEMO folder/patches/TranslateClient.txt and add this at the end of it then patch your clients: (Thanks to @Asheraf for telling me about this xD) M: Translate Tip box ------------------------------ F: BD C3 C0 DB C7 D2 20 B6 A7 20 BF AD B1 E2 R: 'Save Tip?' F: B4 DD B1 E2 R: 'Done' if you did everything as said, this will be your result : Old tip box: New translated tipbox: -- On a funny Note, I had no clue what the korean translation for the Check box was LOL so I just randomly translated it to "Save tip?" instead cuz it was a logical solution LMAO
  4. 6 points

    Hercules Battlegrounds

    Hercules Battlegrounds A full conversion and enhancement of eAmod's Battlegrounds system into a easy-to-install Hercules plugin library. Version: 1.0a (alpha) Repository @ https://github.com/Smokexyz/HerculesBG Installation 1) Place plugin files in plugin directory. (If you wish to re-compile the code, please do so the standard way.) 2) Place all script files in the default directory provided in the repository (or your own). 3) Place all database and config parts in their respective files. 4) in conf/plugins.conf add "hBG". Instructions on installing Plugins - http://herc.ws/wiki/HPM#Building_a_plugin Battleground Modes Capture the Flag Eye of Storm Triple Inferno Team DeathMatch Bossnia Conquest Stone Control Domination Rush Free For All Why use it? 1) Prevents conflicts when updating Hercules. 2) Easy to install. 3) Can be easily modified for more functions/features in the future. For contributors If you wish to add a free BG script to the list of available battleground modes, please contact me. Bug Reporting Please feel free to open an issue on the repository and I'll get to it as soon as I can. Donate to support the project and motivate updates.
  5. 6 points

    Advance SQL commands

    As usual, I only write advance guides This guide is a compilation of SQL commands that I have used, or Questions answered on the forum every single subject here are related to Hercules/Ragnarok Online in some ways, so you won't feel bored reading them XD Table of Content 1. When to use *escape_sql script command 2. How to build a case-sensitive table 3. Choose a table type, MyISAM or InnoDB ? 3a. How to index a table properly 3b. Why you shouldn't use `char_reg_num_db` table 4. AUTO_INCREMENT 5. How to do IF-ELSE in SQL query ? 5a. How to update multiple rows on different conditions in a single query 6. How to show the current rank of the player 7. INSERT INTO ... SELECT ... 8. Table JOIN vs AS 9. What is the maximum string limit for *query_sql 9a. UNION This topic is now open to Suggestions, Ideas, Improvements, and Questions ~ I'm sure many of you have some questions since the creation of this topic You may also post up your tricks if you want to share with us
  6. 5 points

    I miss Ind :'(

    If you read this, please email or message me. I miss you lots <3
  7. 5 points

    Just Another CP

    Hi, I just started develop another ragnarok cp because I found fluxcp doesnt suit my need and doesnt easy to extend. You can see the looks on screenshot below It is still far from done yet. I will try to make extendable by utilizing module pattern (installable via composer) and the good news is I will be releasing as opensource so everyone can contribute you can follow development progress on github Any feedback, idea or contribution are welcome!
  8. 5 points
    Tio Akima

    [Showcase] Summoner's Rift

    Summoner's Rift in Ragnarok Online (map created by Tio Akima) Hi Guys, I'm passing to expose my new map (recently completed) to RO! This is a map inspired by summoner's rift (map of the game of League of Legends). The design follows the same pattern, but with the poetic freedom (or poetic limitation ?!) available within RO! I will post some pictures here of the map and a video to be able to see better. It is! Att, Tio Akima. ScreenShots: more: Green Base: Red Base: Video:
  9. 4 points


    Hello Hercules Community, Let me explain it first. It is ExtendedBG, which tends to contain all eAmodBG modes and extra modes(as and when coded). Some Previews: http://imgur.com/a/2SSVR Ohh, and the last thing I forgot to tell, Its 100% Plugin and Script, no Source Edits .. Special Thanks To: jaBote co-founded this project(and really thanks to him , that he motivated me at start at provided some functions and idea of how the base should be, and what we should do it to give flavor of Hercules in it). Repository Link: https://github.com/dastgirp/eBG (Please read README.md for installation steps) Leave Comments/Suggestions if you find something. NOTE: There might be some(/many) debug messages left in map-server which will be cleaned up. I will add battle.conf soon (you have to add it yourself for now or edit the plugin) The plugin might be a big mess to read/understand (I did many experiments over the year) There might be some bugs Thanks to @Rebel and @Myriad for testing and providing initial feedback Contact me on Discord: @Dastgir#1460 if there's some urgent issue or else open the issue in github. keep this topic for support. Want to encourage me??
  10. 4 points

    [Showcase] Four Battle Books

    ... I have long had an idea to make a location like a pop-up book ... to tell a story ... ... now I have a book ... even 4 ... and I'll tell the story let's seat and listen to ... .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. The Legend of the Great, Wise and Four Battle Books The legend has it that a long time ago a great, but very lonely wizard lived away from people who thought about creating four magic books of elemental magic: earth, wind, fire and water. Ordinary people feared his wonders as a fire, tried to address only the most hopeless cases and always walked around his house, but the great magician believed that thanks to his books people would learn to live in harmony with magic and in harmony with nature. He hoped that with the help of these books people would learn to control nature, use resources wisely, and he himself would receive the post of chief wizard of Rune-Midgard and become a respected man. Half a century of life, he spent writing his main manuscript. And then came the day when he created and endowed all four books with power, and set out on his journey to the king. On his way to the capital, he met a poor sage, who also went to the palace to present to the king amazing boots-speeders, capable of allowing him to instantly survey his huge possessions (these boots were even sewn specially to the size of the king's feet!). All day, the sage imagined what a great reward from the king would be for the invention of speedboots, and our great wizard only smiled back, because he knew that one pair of boots could not eclipse the glory of his manuscripts. And the sage walked and thought to himself that boots-speed are a reward at a time, but with magic books, more wealth will come out. And then came the evening. The sage waited until the great magician fell asleep, and, that is, pulled out the wizard's books and ran as quickly as he could to his native capital, the city of Juno. There, in the guild of sages, he, dressing his boots-speeders on his hands for agility, spent the whole night casting spells on empty scrolls to copy the texts of incantations from the books of the great magician. Gathering a heavy bag of parchment, he rushed all the way to Alberta town to his familiar influential merchant. This trader did not understand anything about magic, but he knew perfectly well where to make money. At first he did not want to get up for a long time (especially for a man wearing speed boots!), then he did not want to go to open the door, but as soon as he heard that there was a big gain, he himself dragged the sage to his house and closed all the doors and shutters . The merchant had a network of his shops and tents all around the Rune-Midgard, so he immediately sent a servant to order the sending of scrolls of magic in the morning as an exclusive to his stores (and especially valuable ordered to put in premium ones). To the sage he gave for start a large bag of gold coins and promised to reward him with a bunch of money and a new pair of good boots when their business is working. On that and decided. And he was not mistaken with new shoes. When the wise man reached the great wizard in the morning and returned his books to the place, the once shining polished boots-speed skates turned into scrapes and rags that are not capable of overtaking even Mi Gao. The great wizard did not notice anything, and for a week they walked together, as if nothing had happened, arguing about which of them would receive the title of chief magician from the king. Only when the gleaming gates appeared on the horizon, the wise man reported that he was heading to Izlude port to see his old friend and give in to the first visit to the wizard, because the sage was firmly convinced of his own victory. In fact, he wanted to hurry to hire a ship, ready to go to Alberta, take his share stake from the merchant and hide away from the wizard. The great magician said goodbye to the sage and headed across the pavement of the capital straight to the palace, clutching the books in his hands. Imagine his surprise when he saw the strange magic scrolls that had clogged the tents of Prontera. People around were discussing new-fangled scrolls, children were running around and playing with small lightning. The pleasant girl-saleswoman cheerfully invited him to try the magic of the scrolls and offered one for the trial. As soon as he touched the paper, the great wizard recognized his incantations and realized that the whole matter of his life had been stolen! But by whom?! In a fit of anger, he tore up the ill-fated scroll, and rushed for the dishonest sage. He knew that this wise man would not wear the speedboots, because they did not fit the size of his legs, but to be sure, the great wizard gathered air around him, and the wind lifted him above the ground, sweeping away everything in his path. So the magic of the wind became the magic of a hurricane. Flying over Izlude town, the great wizard noticed his old wise friend walking along the dock to the ship, which was about to sail. Then the great wizard took the power of the earth in his hands and began to destroy the white stones of the quay. So the magic of the earth became the magic of stone. The dishonest sage, seeing that the abyss was about to open, put on the remnants of the short boots-speeders, and barely had time to scatter and jump to the deck of the hastily raising anchor ship. Then the great wizard summoned the ghosts of the sea and froze the water around him to stop the ship. So the magic of water turned into the magic of ice. Having reached the ship, the great wizard began to search the cabins and in the last of them he found the sage, who was shaking in a corner, hovering in fear, "O great magician, now I see how powerful you are! If I had at least a little of your mind, it would never have occurred to me to steal from you! I was poor and dishonorable, and now I am rich and again dishonorable! Please take all the gold, just leave me alone!" With these words, the sage tossed a bag of coins to the great wizard. In his hands the coins were heated up to white and the fire spilled on the planks of the ship, so the magic of fire turned into the magic of lava. Returning through the air, the great wizard observed the terrible results of magic, he wanted to give to people. The flaming ship, the ice spikes that grew on the surface of the sea, the destroyed port of Izlude town, and the roofs of houses that had been torn down by the hurricane. He was horrified and broken, people pointing at him and shouting, "What is this awful wizard? Why did you cause us all this horror? We send an eternal curse on you, as you directed your magic against us!" So the great wizard became a terrible wizard. From that moment, now, wherever people notice his magic, he was always rebuffed and expelled from the settlement. From grief, he went mad and disappeared from the human eyes in the wild forests among the orcs, who became his only close demi-human creatures. From his books, people were left with only scattered scrolls with a bit of knowledge, copies of which are carefully stored in the Library of Juno and tirelessly reprinted by the sages word for word. Unfortunately the mystery of the boots-speed skates died with that wise man. It is rumored that sometimes the terrible wizard steals lost travelers with his magic and imprisons them in his magic books, forcing them to fight with each other for the sake of the orcs' pleasure. Although this story happened a long time ago, but even now if someone else enters these forests... no, no, he will go back... and she will go back... sure... .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. b_book1 b_book2 b_book3 b_book4 Please rate it if the maps are good enough
  11. 4 points


    Repository Link: https://github.com/dastgirp/eBG (Please read README.md for installation steps) Leave Comments/Suggestions if you find something. NOTE: There might be some(/many) debug messages left in map-server which will be cleaned up. I will add battle.conf soon (you have to add it yourself for now or edit the plugin) The plugin might be a big mess to read/understand (I did many experiments over the year) There might be some bugs Thanks to @Rebel and @Myriad for testing and providing initial feedback
  12. 4 points

    Adel's Sprite Showcase

    Hello people~ I am Adel and this is my updated sprite showcase. ❤ ❤ ❤ Hope you enjoy ❤ ❤ ❤ Note: Please do not steal the display images. Some of the references for my sprites were taken from other game sources. Mob Sprites Other Sprites
  13. 4 points

    Savior Damage Font

    Version 1.0


    SaviorDamageFONT modification I've been trying hard to create content that bring a fresh new look to our old and loved Ragnarok Online. After lot's of failures(like my old font upload '^^) I end up with this design, that was actually based on the game Tree of Savior.( btw a very good game ) It comes with some other little things like a better resolution sprite to the critical hit background, as it was kinda glitchy with the new font. I know it is all experimental and yes, I still love the old pixelated font of RO but feel free to use it in your server, i'm getting used to it and it's giving me a feeling of nostalgia(as seeing something new things on old stuffs) ;D Hope to hear some feedback to improve it as much as I can. cYA link: MEGAlink
  14. 3 points


    Although that's just warning(with no effect on anything), it will be fixed and pushed later today. Edit: Should be fixed https://github.com/dastgirp/eBG/commit/9fe7a5a07a789a37be1cd5ae11edb8cb86bdaa7b
  15. 3 points
    Tio Akima

    Arena 4fight - by Tio Akima

    View File Arena 4fight - by Tio Akima ARENA Four Fight! (4fight) - PVP MAP 3 colors available (GREEN, BLUE AND RED) (It's been some time since I started to make this map, but I did not have time to finish it ... It's a basic room, I intend to complement it in other versions in the future!) --------------------------------------------------------------------------------------- -It is a custom room with 4 arena for PVP, but can have several functions, such as room for Quest's, Market (shop's), VIP room, meetings, events, etc ... Map created by TioAkima and distributed (without any cost) by the author himself. The trade in this map is permanently prohibited. - AUTHOR RIGHTS - Credits must be given. -------------------------------------------------------------------------------- att, Tio Akima Contato/contact Dicord - @TioAkima#0636 DeviantArt- http://tioakima.deviantart.com/ Submitter Tio Akima Submitted 07/26/18 Category Maps & Textures  
  16. 3 points

    The Castle City of Invek

    Version 1.0


    So here it is The Updated & Released Castle City of Invek, or just Invek for short. http://herc.ws/board/topic/1400-map-release-city-of-invek/ Please stop by my thread and give me your input if you download this file.
  17. 3 points
    Hello, For some reason, I decided to write my own guide for super newbie people. And when I say newbie, I say REAL newbie. I will not ask you to learn anything or saying rude things like "go google ffs". I believe people that want to create their server are not necessary interested being a linux master or whatever. Never people are saying that before leaning guitar, people should learn how string and guitar are made. Enough talk, lets start ! Prerequisites Patience, meticulousness, cogitation kRO full client: Mirror #1 (mediafire), Mirror #2 (Direct Link from my ftp) kRO last actual compatible exe: Mirror #1 (mega.nz), Mirror #2 (Direct Link from my ftp) Setup exe: Download (Page), Mirror #1 (Direct Link from my ftp) N.E.M.O. Diff Patcher Download (git) BGM parameter files. Download (Direct Link herc.ws), Mirror #1 (Direct Link from my ftp) Translation Package. Download (git) Putty: Download (Page) If Putty does not work, use Kitty Download (Page) 1~2 hours of your time Things you should know: You cannot see password in Putty / Kitty when you type it. nano is a text editor. At the bottom of the screen you can see a menu. To use it, press CTRL + the option's letter You cannot use numeric pad in nano Being polite is always rewarding I. Dedicated server A. Get your server You can find very cheap solution at Kimsufi. Choose anything you want. I recommend you to choose Debian 8 (Jessie) for your OS. In Kimsufi manager, you will find your server IP. You have your login (root) and password in an email after installing the OS B. Configure your server Start Putty and enter server's IP address Connect with root then type the password you got by email. (You wont see " * " when you type) To change your password enter the following line passwd Install required package by enter this (copy this and paste it with a right-click): apt-get install git make gcc mysql-server libmysqlclient-dev zlib1g-dev libpcre3-dev screen ​The following is meant to make a web server. Even if you don't plan to make a website, I suggest you to take it, just because phpmyadmin is easy to use. While installing phpmyadmin, select apache2. apt-get install apache2 apt-get install php5 php5-cli libapache2-mod-php5 php5-mysql apt-get install phpmyadmin ln -s /usr/share/phpmyadmin /var/www/html/ ​Because hercules doesn't work if you use root login, we will create a new user. useradd ragnarok passwd ragnarok [choose_a_password] Connect to phpmyadmin and login with the information you chose at this address: http://your_server_ip/phpmyadmin Create a new database ragnarok and choose utf8_unicode_ci as collation Create another database and name it ragnarok_log with same collation Click on the tab Users (top of the page), Add User and fill the form. Username: ragnarok, password: [choose_a_assword], Click on Check All in the privilege group. (or if you know what are you doing, select options you need) Now you can log out from your server in Putty logout C. Install Hercules Login again in Kitty with the new user ragnarok Download Hercules emulator git clone https://github.com/HerculesWS/Hercules.git ~/Hercules We will need to reach the database installation folder: cd Hercules/sql-files/ We will now import tables in the database. You will have to write your mysql password each time (set in step B.4). mysql -u ragnarok -p ragnarok < main.sql mysql -u ragnarok -p ragnarok_log < logs.sql mysql -u ragnarok -p ragnarok < item_db2.sql mysql -u ragnarok -p ragnarok < mob_db2.sql mysql -u ragnarok -p ragnarok < mob_skill_db2.sql if you want to make a PRE-RENEWAL server, enter also this mysql -u ragnarok -p ragnarok < item_db.sql mysql -u ragnarok -p ragnarok < mob_db.sql mysql -u ragnarok -p ragnarok < mob_skill_db.sql If you want to make a RENEWAL server: mysql -u ragnarok -p ragnarok < item_db_re.sql mysql -u ragnarok -p ragnarok < mob_db_re.sql mysql -u ragnarok -p ragnarok < mob_skill_db_re.sql D. Configure hercules It is required to set up a server login and password for char-server, map-server and the login database. It can be done by editing few files and the table login. Start by editing conf/inter-server.conf. cd ../​​ nano conf/inter-server.conf Find the line sql.db_username and fill it with the user and password we created in step B.10. fill also the database name with ragnarok As the same time, you will need to edit conf/import/inter_conf.txt. nano conf/import/inter_conf.txt sql.db_username: ragnarok sql.db_password: your_sql_password sql.db_database: ragnarok log_db_id: ragnarok log_db_pw: your_sql_password log_db_db: ragnarok_log now edit conf/import/char_conf.txt and fill it with this following text nano conf/import/char_conf.txt // Server Communication username and password. userid: [new user] passwd: [new password] Do the same to conf/import/map_conf.txt with the same userid and passwd. nano conf/import/map_conf.txt // Server Communication username and password. userid: [new user] passwd: [new password] You will need to update the login table from ragnarok database. Connect again to your phpmyadmin (I.B.7) Find the table login and edit the only row available. userid must have the same value as [new user] user_pass must have the same value as [new password] char-server.conf nano conf/char-server.conf server_name: [your_server_name] wisp_server_name: Admin For some reason, you must reboot your server. reboot Close the Terminal and connect again after a minute. Now you will need to work on your server ports iptables -I INPUT 1 -p tcp --dport 6900 -j ACCEPT iptables -I INPUT 1 -p tcp --dport 5121 -j ACCEPT iptables -I INPUT 1 -p tcp --dport 6121 -j ACCEPT iptables save We are done with the server for now. You can log out if you want. Lets prepare our client! II. Create the Client A. Organization Extract the full client in C:\ro_client\RO\ and launch update with rsu-kro-renewal-lite.exe or rsu-kro-rag-lite.exe if you set a pre-re server. Extract the Ragexe.exe in C:\ro_client\fresh\ Extract data and System folders from the translation Package in C:\ro_client\fresh\ Extract the opensetup.exe in C:\ro_client\fresh\ Extract Mssfast.m3d and Mp3dec.asi from BGM.zip in C:\ro_client\fresh\ Extract N.E.M.O. content in C:\ro_client\NEMO\ Once Step 1 is DONE: Copy All *.dll and *.INI files from C:\ro_client\RO\ to C:\ro_client\fresh\ Copy BGM and savedata folders from C:\ro_client\RO\ to C:\ro_client\fresh\ Copy rdata.grf and data.grf files from C:\ro_client\RO\ to C:\ro_client\fresh\ B. Configure the Client Launch N.E.M.O. and load 2015-05-13aRagexe.exe Hit "Select Recommended" Confirm DATA.INI Rename iteminfo.lub to iteminfo_n.lub Now search "Read Data Folder First" and check it Hit "Apply Selected" and you will have a new 2015-05-13aRagexe_patched.exe file. You should "Save Profile" now, because you will probably want to edit again your client later C. Add the translation Rename C:\ro_client\fresh\System\itemInfo.lub to iteminfo_n.lub You might need to rename C:\ro_client\fresh\data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\ folder to 유저인터페이스 later, but for now, just skip this step (not sure if you encounter this problem). Open C:\ro_client\fresh\data\clientinfo.xml with a text editor (I recommend Notepad++) Update the address with your server IP <address>[ip_address]</address> Done with the translation. Now we will say to the server, which client players are using. III. Finish Server configuration A. Compile the server Launch Putty again and login to your server. We will compile Hercules. It will take time so be patient. cd ./Hercules ​​./configure --enable-packetver=20150513 make clean make sql once it is done, you can verify if the version has been properly set. nano src/common/mmo.h Find following lines #ifndef PACKETVER #define PACKETVER Change #define PACKETVER to #define PACKETVER 20150513 if not done yet. If you did change something in mmo.h, you need to recompile again. Process again the step III.A.1 B. Start the server To start the server, you simply need the following line (while being in Hercules folder) ./athena-start start IV. Player Side A. Create a Game Master Account Go to your phpmyadmin (step I.B.7) and find again the login table. Hit the Insert tab userid: [login_nickname] user_pass: [login_pass] group_id: 99 gender: M or F You have now your Game Master Account B. Play Launch C:\ro_client\fresh\2015-05-13aRagexe_patched.exe Login with your newly created game master account Process thru in game. type @go 0 Be happy. V. Customize A. Back to the N.E.M.O. This Diff patcher is really cool, be aware of that. You can now edit again your client. repeat the step II.B.1 Hit "Load Profile" and choose the previous file you created in step II.B.7 Check the list and hit option you want. repeat step II.B.6 and 7 B. Options & Fix Remove the Pin Secure Code Be sure to always be in Hercules folder ( cd ./Hercules) ./athena-start stop ​​nano conf/import/char_conf.txt add this line: pincode_enabled: 0 process to step III.A.1 To edit clientinfo.xml, I suggest you to check the wiki page if you can't see in game button Rename C:\ro_client\fresh\data\texture\À¯ÀúÀÎÅÍÆäÀ̽º to 유저인터페이스 Get Unbollox: Download (Download Page), Mirror #1 (Direct Link from my ftp) In unbollox, select the texture folder and click on À¯ÀúÀÎÅÍÆäÀ̽º Changing starting point nano conf/import/char_conf.txt add start_point_re: prt_fild08,170,365 Changing starting items nano conf/import/char_conf.txt ​add start_items: 2393,1,0,5055,1,0,569,20,1 Changin starting Zeny nano conf/import/char_conf.txt add start_zeny: 5,000 == More options to come, just reply to this topic if you can't find how to do what == C. Adding Custom Content NPC ​Add your script in npc/custom/your_script_name.txt Edit npc/script_custom.conf and add the following line: npc: npc/custom/your_script_name.txt ITEM Read the wiki about custom item (Link) System/iteminfo_n.lub [<item id>] = { unidentifiedDisplayName = "My custom Item", // Or "Accessory" or "Headgear" if it is an equipment unidentifiedResourceName = "my_custom_item", //This will set the sprite you will use (ex: my_custom_item.spr / actmy_custom_item.act) unidentifiedDescriptionName = { "Unknown Item, can be identified by using a ^6666CCMagnifier^000000." }, //Or basically juste { }, if it is not an equipment. identifiedDisplayName = "My custom Item", identifiedResourceName = "my_custom_item", identifiedDescriptionName = { "Bleh this item is a custom item.", "Bleh this is a second line" }, // Description of your item. slotCount = 0, ClassNum = 0 // Read the wiki page for the list. }, Sprites. Drop item sprite (also the same as click and drag) must be in: data/sprite/¾ÆÀÌÅÛ/my_custom_item.spr / my_custom_item.act Inventory texture (24x24 size 256 bit bmp) must be in: data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/item/my_custom_item.bmp Headgears: Copy the headgear in: data\sprite\¾Ç¼¼»ç¸®\¿©\¿©_my_custom_item.spr / ¿©_Helmet.act for Female data\sprite\¾Ç¼¼»ç¸®\³²\³²_my_custom_item.spr / ³²_Helmet.act for Male Collection picture (75x100 256 bit bmp) must be in: data/sprite/¾ÆÀÌÅÛ/collection/my_custom_item.bmp MAP Cient side Your map file name and ID cannot be longer than 13 caracters. ​my_map.gat, my_map.gnd, my_map.rsw, my_map.extra must be in data/ folder (inside grf) Additional textures (bmp) must be in data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/map/ BGM must be in BGM/ folder. Add the bgm in data/mp3nametable.txt (ex: my_map.rsw#bgm\\44.mp3#) Add following lines to data/resnametable.txt my_map.gnd#my_map.gnd# my_map.gat#my_map.gat# my_map.rsw#my_map.rsw# Add this line to data/mapnametable.txt my_map.rsw#Title of my Map# Server Side Add the following line to​​ db/map_index.txt my_map Add the following line to conf/maps.conf map: my_map Cache Create a map.grf and include a folder data/. Add inside your map files (gat, rsw, gnd, extra) Create a folder grf/ in your server root (Hercules/) and upload map.grf inside grf/ folder. Connect via ssh (putty) to your server and log in. Stop your server ./athena-start stop Edit conf/grf-files.txt ​nano conf/grf-files.txt Add the following line, save and close. ​grf: grf/map.grf Do the following command ./mapcache start your serveur ./athena-start start
  18. 3 points

    Version 1.0


    illust's for a system of daily rewards, created by me, based on the official theme of ragnarok online. It works with the script [rathena]: Daily_Reward_System PS: If you like it, and give me reputation, it's important to me and encourages me to continue with my work! best regards, ZelosAvalon
  19. 2 points

    [Showcase] My First Patcher Design

    hello! this is my first patcher design. kindly rate it thanks!
  20. 2 points

    Mail System in Latest hercules

    RodEx is now the latest mail system for latest herc revision.
  21. 2 points

    [Showcase] Four Battle Books

    very nice not noob like @Habilis
  22. 2 points

    Char server crash

    Execute this: SELECT g.guild_id, g.char_id, c.char_id, c.last_login FROM guild_members g LEFT JOIN `char` c ON c.char_id = g.char_id; There might be some guild for which char_id is not found in char table. You would get guild Id where 3rd and 4th column might be NULL, 2nd column is the char id that does not exist in char table (deleted or something?)
  23. 2 points

    Another Nemo patcher fork

    @4144 I fixed patch "CancelToLoginWindow". It works for 2017-12-13bRagexeRE+. You can add it to the fork. Thanks. https://mega.nz/#!QZthGIIA!GUj1HqgiinE3sMkRL7mGhC-RuMt4B3q6PPtrE5S0LJI
  24. 2 points
    =General *Added support for the 2018-06-20eRagexeRE client. +This is the recommended client for those wanting to support the Star Emperor -and Soul Reaper jobs on their server. *PACKETVER is now set to 20180620 by default. =Database *Updated the hit counts to official for some skills to prepare for coding. =Jobs *Star Emperor *Soul Reaper +Added official bonus stats. =NPC *Enabled the Star Emperor and Soul Reaper jobs in the 3CeAM job change NPC. =Skills *Star Emperor *Soul Reaper +Added all official variable cast, fixed cast, aftercast, and cooldowns for all -of the skills for these jobs. Durations are mostly confirmed official but more -testing is needed to get them all.
  25. 2 points

    Mission board 'only once' doesn't work.

    2.4b http://upaste.me/0c8149627b3ddc0c6 - fix a typo in mission limitation can do daily or only once, actually allows to do twice instead of once - fix a typo in mission time limit, if your mission no.2/3/4 has expired, the script always says slot no.1 @Helena 2.4c http://upaste.me/7c9c496344829d36f - fix this f*cking deny usage once again ...this time when submit a mission, the getarraysize calculation is made AFTER declare the datetime format - if the whole board is set to EVERYDAY, remove the player side deny usage variable completely on the next day
  26. 2 points

    Florian ( Town )

    Version v1


    dont claim my works as yours and dont sell it to others this is a free release.. thanks
  27. 1 point

    [Showcase] Love Beach

    In Mexico there is an interesting beach called the Love Beach or Playa del Amor. I found it after the Navagio and it seemed to me that it can serve as an inspiration for a small closed map in the RO world. Here it is, cool, sunny and grassy .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. lv_beach Please rate it if the map is good enough
  28. 1 point

    @command info text

    go to /Hercules/blob/stable/conf/groups.conf
  29. 1 point

    Custom Quest Sprites (alt+u)

    all files. you should find official kro files for exact client exe version. If versions bit different you still may have some errors. After if all works without errors, you can mod data, add / remove files etc.
  30. 1 point

    Custom Quest Sprites (alt+u)

    if you using 2016 exe, then you must use lua/txt and other files from 2016 version. 2018 files with outdated client exe may not works.
  31. 1 point

    Custom Quest Sprites (alt+u)

    For newish client like early 2018(ragexeRE) clients you can edit System/OngoingQuestInfoList_Sakray.lub, I guess quest lub which you are currently editing was introduced on early 2013. The file you are editing does not show npc image if it's on progress, you have added it in ep14.1, so if you check there, it would show npc I suppose(if those Lua/lub is even read by 2016 client)
  32. 1 point

    Custom Quest Sprites (alt+u)

    as for the count, you need to add a target and the count in quest_db.conf { Id: 20017 Name: "Treinamento Inicial" Targets: ( { MobId: 1002 Count: 10 }, }, for your lua file, I'm pretty sure it's not read. Try putting it into the official one and if it works, check your custom settings.
  33. 1 point

    [Showcase] Love Beach

    I'm always excited to see maps. How did it go along with the round textures? If i recall correctly there were several issues with them?
  34. 1 point

    Custom Quest Sprites (alt+u)

    My mistake, it seems that's correct name. Which client are you using? (By the looks of screenshot, it seems it isn't reading Lua file).
  35. 1 point

    attempt to call a nil value when using skill

    Get updated lua files: https://github.com/Asheraf/Translation Edit: It seems you are using "Enable Custom Player Skills" patch from NEMO. but forgot to add "Support/Luafiles514/Lua Files/SkillInfoz/SkillType_F.lub" to your grf
  36. 1 point

    Character Selection

    this error mean client not exists or some other program not allow to open it. Probably you run client and want to patch it at same time. In windows this is impossible. First close client, then try to patch it. Also client can be locked by antivirus. But you should got messages about it.
  37. 1 point

    [w0w] Sample Music Project

    Hello and hi!) My dear colleagues!) Honestly, I do not know if this is the first project of its kind, but it reached the point when it already has something to show. I have noticed for a long time that there are enough musical instruments in RO, but there is no variability and the bards are rigidly driven into the framework of certain song skills. And what if, in the breaks between the endless standing in a party, casting «A Poem of Bragi», would they want to slightly improvise on favorite instruments? .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. The project consists of collected clean samples of musical instruments specially selected for the style of each instrument, so they can be easily distinguished from each other, even if it's another guitar. The length of the samples varies from 3 to 26 seconds, they are all collected in .wav format in good quality (video quality is quite low, sorry). A few statistics that are at the moment: + 821 code lines for «@ solo» command activating samples that everyone can hear within the screen + 282 music samples + 2753 sec (~46 min) sound duration in total - total weight about 700 mb in grf (it is possible to offer players to download optional - to prevent errors in the game - just add empty wav files with similar names) 00:05 - Bass Guitar - 46 samples x 515 sec 00:58 - Guitar - 17 samples x 155 sec 01:47 - Burning Passion Guitar - 13 samples x 124 sec 02:32 - Loner's Guitar - 9 samples x 99 sec 03:15 - Gentle Breeze Guitar - 15 samples x 135 sec 04:13 - Green Acre Guitar - 14 samples x 159 sec 04:45 - Lute/Oriental Lute - 11 samples x 119 sec 05:29 - Mandolin - 11 samples x 88 sec 06:26 - Electric Guitar - 12 samples x 133 sec 07:38 - Berserk Guitar - 17 samples x 147 sec 08:42 - Cello - 20 samples x 210 sec 09:48 - Violin - 26 samples x 211 sec 10:52 - Gumoongoh - 21 samples x 197 sec 12:09 - Harp, Harp of Nepenthes - 21 samples x 221 sec 13:15 - Green Whistle - 18 samples x 129 sec None - Contrabass - 11 samples x 111 sec (sorry, I did forget to show this instrument in the video) Will add Oz's New Ukulele and Hippie Guitar samples after a while... P>S> P>S>S> Why samples? 3 x Because: P>S>S>S> The map using in this video - Barcode
  38. 1 point
    Kyoya G

    [w0w] Sample Music Project

  39. 1 point

    kRO unpacked clients releases

    Hello everyone, This project has been running for ~11 months now and the time for hosting renewal is almost there.. If you'd like to see it keep going on please consider donating via the following link. Any contributions you make is highly appreciated
  40. 1 point

    [Showcase] Four Battle Books

  41. 1 point
    =General *cooldown_rate *min_skill_cooldown_limit *no_skill_cooldown +Added these config settings to the skill.conf file. *clif_spdamage +Added seprate function for the ZC_NOTIFY_ACT3 packet. -This packet is mainly used for displaying SP damage and not HP damage. -The ZC_NOTIFY_ACT2 packet is confirmed still used for HP damage. *Fixed a issue where some status's that deal damage and shows it will not show the damage done on the enemy if its a killing blow. *Autocasted skills will no longer trigger a cooldown on renewal era skills. *skill_cooldownfix +Added support for this function. -This function is kinda like skill_delayfix, but for cooldowns. -At the moment its functional enough to allow cooldown time adjustments through -status's but will be updated later to work with equip bonuses. =Skills *LG_BANDING +Fixed a issue where using the skill under certain conditions would crash the server. *WM_METALICSOUND +Fixed a issue where it didn't deal bonus damage on sleeping targets. +Now displays SP damage as blue numbers. *SJ_SUNSTANCE *SJ_LUNARSTANCE *SJ_STARSTANCE *SJ_UNIVERSESTANCE +Switching or disabling stances now removes status's given from skills exclusive -to the previously active stance. *SJ_GRAVITYCONTROL *SJ_BOOKOFDIMENSION *Added full support for these skills. *SJ_NOVAEXPLOSING +Recoded the skill. +Damage is now fully fixed and not reduceable. +Damage is now only blockable with Safety Wall / Millennium Shield / Defense Spehre. +Damage is no longer affected by anger skills on hated targets. +Now gives a penalty after use that blocks skill usage for 2 seconds. *SJ_BOOKOFCREATINGSTAR +Recoded the skill. +Now reduces movement speed and deals damage for as long as the enemy is standing -in the AoE. *SJ_PROMINENCEKICK +Now deals 2 hits. -The first hit is the main damage. The second hit is the 100% fire damage. *SP_SOULDIVISION +Adjusted map check code. *SP_SOULEXPLOSION +Now only usable in PVP type maps. *GN_ILLUSIONDOPING +Fixed a issue where casting the skill didn't require alcohol.
  42. 1 point

    How i can count gray slots in equipment?

    This: [email protected] = 4 - getiteminfo(ID, ITEMINFO_SLOTS);
  43. 1 point

    Ajuda com servidor novo

    Não muda muita coisa, o que mudam são os caminhos dos arquivos e alguns modos de configurar, pare um tempo e estude os arquivos, entre nas pastas, leia, que rapidamente você pegará o jeito. E aqui tem diversos tutorias: http://herc.ws/wiki/Main_Page
  44. 1 point
    I like the results of what i requested from him. he replies when he has the time 100%. and still gonna use his services in the future. If you're getting a website i'm going to say take this services :))
  45. 1 point
    Bruno Nogueira

    Problem decompiling luab file

    use grf editor
  46. 1 point
    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?
  47. 1 point

    [GUIDE] Add Custom Quest (In Any Tab)

    Hello Community, Yesterday, I was trying to make Quest Appear on other TAB's and result was successful. Prerequisite: You need latest ROClientside Repository : https://github.com/ROClientSide/Translation/ https://github.com/ROClientSide/Translation/commit/9d93ef1 (This Commit is necessary) you need Client >= 2014-10-22 (Haven't Tested with old clients, You can test and tell if it works ) Here's a Guide: questluafilelist.lub: You need 2 files, local_XYZquest_list and l_XYZ_list and in the folders as mentioned below: Add Following lines to questluafilelist.lub(at end of file) without EXTENSIONS as mentioned below: Add[[localquest\local_dastgirquest_list]] Add[[localquest\questinfo\l_dastgir_list]] local_dastgirquest_list.lub(Sample Files, Modify to your needs): LOCAL_DastgirQuest_List = { { name = [[Dastgir Custom Quests]], imagefile = [[ep_test_sample.bmp]], list = { { name = [[Novice]], list = { { name =[[Test1]], scrfilename = [[DastgirQuest]], questID = 1019, }, { name =[[Test2]], scrfilename = [[DastgirQuest]], questID = 1017, } } }, { name = [[Quests 11~25]], list = { { name =[[11-15]], scrfilename = [[DastgirQuest]], questID = 1017, }, { name =[[16-20]], scrfilename = [[DastgirQuest]], questID = 1019, }, } } } } } _G.QuestTable.add(LOCAL_DastgirQuest_List, "EVENT") It needs Following line at the bottom for compulsary _G.QuestTable.add(LOCAL_XYZQuest_List, "TAB") where TAB's are EVENT LOCAL EP NEW RECOMMENDED Replace LOCAL_XYZQuest_List with Table name at top of this file... l_dastgir_list.lub(Sample File, Modify to your needs): DastgirQuest_List = { [1019] = { NPCFromName = [[Dastgir]], NPCFromMap = [[new_1-1]], NPCFromSpr = [[4_M_01]], NPCFromX = 63, NPCFromY = 53, NPCToName = [[Dastgir]], NPCToMap = [[prontera]], NPCToSpr = [[4_M_01]], NPCToX = 86, NPCToY = 84, Item = [[]], PrizeItem = [[]], Title = [[Event QuestInfo ]], Info = [[Testing the Event.]], QuickInfo = [[QuickInfo.]], Hunt1 = [[]], Hunt2 = [[]], Hunt3 = [[]], Time = [[0]], LV = [[0]], }, [1017] = { NPCFromName = [[Dastgir-1]], NPCFromMap = [[prontera]], NPCFromSpr = [[4_BRICKPILE]], NPCFromX = 84, NPCFromY = 123, NPCToName = [[Dastgir-2]], NPCToMap = [[payon]], NPCToSpr = [[4_BOARD3]], NPCToX = 76, NPCToY = 114, Item = [[]], PrizeItem = [[]], Title = [[Event QuestInfo ]], Info = [[Testing the Event.]], QuickInfo = [[QuickInfo.]], Hunt1 = [[Alarm]], Hunt2 = [[]], Hunt3 = [[]], Time = [[0]], LV = [[0]], }, } _G.QuestTable.addList("DastgirQuest",DastgirQuest_List) In this file too, you need Following line in the end _G.QuestTable.addList("XYZQuest",XYZQuest_List) where XYZQuest_List is table_name(mentioned in first line of this file), (Please see the quotes) and that's it. put it into your GRF, and it will work NOTE: Many Functions are modified, so you would need quest_function.lub provided in the repository ScreenShot: Please Don't Remove credits in the quest_function file...
  48. 1 point
    Like it~*

    [Guia e orientação] Criando habilidades. PT-BR

    Criando habilidades ou clonando-as Introdução Uma grande área onde os jogadores têm dificuldade é adicionar novas habilidades para a fonte e o cliente. Abaixo será documentado como implementar essas novas habilidades. A habilidade A habilidade que estaremos trabalhando é simples. Nome: Earth Bolt Level Máx: 10 Tipo: Ativa Custo de SP: 20 + 5*SkillLV Alvo: 1 inimigo Tempo de conjuração: 2 seg Delay: 1 seg Duração: Instantânea Descrição: Causa dano mágico de elemento terra ao inimigo, conforme level da habilidade, a 150% MATK por hit. Basicamente, essa habilidade deve atingir 1 inimigo e lidar com 10 hits de 150% MATK, propriedade elemental da Terra e deve ser baseada em dano mágico. Abra /src/map/skill.h Role para baixo até encontrar EL_STONE_HAMMER, EL_ROCK_CRUSHER, EL_ROCK_CRUSHER_ATK, EL_STONE_RAIN, Depois daqui é onde nós adicionamos quaisquer habilidades adicionais. É melhor dar às habilidades um ID personalizado para começar. Então, vamos adicionar a nossa habilidade "Earth Bolt". Depois disso, adicione MG_EARTHBOLT = 8443, MG_ definição significa "Mago", você vai trabalhar para fora as siglas como você percorrer as habilidades. Definimos a base da habilidade. Como você pode ver, o id de habilidade é definido como '8443' desde Stone Elemental's Stone Rain é definido como 8442 (e é o última habilidade de jogador acessível). Abra /src/map/skill.c Esse arquivo é onde definimos as implementações de habilidades reais. Para habilidades de alvo único, todo o processamento dessa habilidade irá em skill_castend_damage_id (para habilidades prejudiciais) ou skill_castend_nodamage_id (para skills que não causam danos). Habilidades baseadas em mágica ou mágia. Como o Earth Bolt é baseado em danos, encontre a função skill_castend_damage_id e localize: case AB_RENOVATIO: case AB_HIGHNESSHEAL: case AB_DUPLELIGHT_MAGIC: case WM_METALICSOUND: case MH_ERASER_CUTTER: case KO_KAIHOU: A razão pela qual estaremos colocando a case para Earth Bolt aqui é porque: skill->attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag); A definição BF_MAGIC significa que a habilidade é baseada em magia e deve ser calculada sob cálculos de batalha mágica. Assim, após a case NJ_HUUJIN adicionar: case MG_EARTHBOLT: Habilidades baseadas em armas No caso de querer adicionar uma habilidade que é baseada em Arma, em vez de Magia, encontre: case WM_GREAT_ECHO: case GN_SLINGITEM_RANGEMELEEATK: case KO_JYUMONJIKIRI: case KO_SETSUDAN: case GC_DARKCROW: case LG_OVERBRAND_BRANDISH: case LG_OVERBRAND: E adicione a case depois disso. Se quiséssemos que o Earth Bolt fosse baseado em armas, ficaria assim: case WM_GREAT_ECHO: case GN_SLINGITEM_RANGEMELEEATK: case KO_JYUMONJIKIRI: case KO_SETSUDAN: case GC_DARKCROW: case LG_OVERBRAND_BRANDISH: case LG_OVERBRAND: case MG_EARTHBOLT: No entanto, vamos manter a função Magic em vez disso. Abra /src/map/battle.c Nesta função, todos os cálculos de danos principais são realizados. E em funções separadas, as % modificadoras para as habilidades são armazenados. Portanto, para os nossos danos de 150%, adicionamos o extra de 50% (já que 100% é o padrão) na função apropriada. Ataques baseado em mágica Para ataques baseados em Magia, os modificadores são encontrados em battle_calc_magic_attack. Basta encontrar: case NPC_EARTHQUAKE: skillratio += 100 +100*skill_lv +100*(skill_lv/2); break; E adicione o modificador de danos abaixo. Como Earth Bolt é baseado em magia, nós adicionaremos-a aqui. case MG_EARTHBOLT: skillratio += 50; break; Isso agora significa que o Earth Bolt causará dano mágico de 150% MATK. Átaques baseado em armas Para ataques baseados em armas, os modificadores são encontrados em battle_calc_weapon_attack. Basta encontrar: case NPC_VAMPIRE_GIFT: skillratio += ((skill_lv-1)%5+1)*100; break; E adicione seu modificador de dano lá. Por exemplo, se o Earth Bolt fosse baseado em Weapon, acrescentaríamos: case MG_EARTHBOLT: skillratio += 50; break; O + = 50 significa simplesmente "Adicionar 50% ao 100%" para danos de ATK de 150%. Suporte a banco de dados de habilidades Tecnicamente falando, a base da habilidade está agora correta. Claro, se você quiser implementar habilidades mais complexas, há muito mais para isso. A seção separada será criada no futuro para isso. Mas, por enquanto, precisamos implementar as entradas do banco de dados de habilidades. Os arquivos abaixo podem ser encontrados em db / (pre / re) /. Apenas um de ambos (pre / re) precisa ser atualizado, é o qual você usa em seu servidor. Nessa parte é sempre aconselhável que você tenha alguma habilidade escolhida para se utilizar como base, pois facilitará muito a criação e/ou clonagem de sua habilidade. Aqui há diferenças, então dependendo do emulador usado, cada forma será de um jeito, caso o seu emulador seja alguns dos abaixos, continue. Caso não, pule para a parte: ** p/ Hercules. ** p/ rAthena, brAthena, Cronus. Skill_db.txt Para a nossa habilidade Earth Bolt, podemos agora digitar o seguinte: Estrutura: 8443,5,8,1,2,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic, 0, MG_EARTHBOLT, Earth Bolt Isso define que: Earth Bolt tem um intervalo de 5 células, bate várias vezes, é elemento da Terra e alvos 1 inimigo. Ele pode ser interrompido, e é de dano de tipo mágico. A quantidade de acessos aumenta em 1 em cada nível, com um nível máximo de 10. Skill_cast_db.txt Para a nossa habilidade Earth Bolt, podemos agora digitar o seguinte: Estrutura: 8443,2000,1,000,0,0,0 Isso define que: Earth Bolt tem um segundo tempo de ligação e um tempo de atraso de 1 segundo. Não há atraso de caminhada após o lançamento. Skill_require_db.txt Para o nosso Earth Bolt, podemos agora digitar o seguinte: Estrutura: 8443,0,0,25: 30: 35: 40: 45: 50: 55: 60: 65: 70,0,0,0,0,0,0,0,0,0,0,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Isso define que: Earth Bolt requer 25 SP no nível 1, 30 SP no nível 2 .. 70 SP no nível 10. Pode ser lançado com qualquer arma, não requer nenhum estado e não requer nenhum item para ser consumido. =========================================================================== ** p/ Hercules. Skill_db.txt =========================================================================== Skill_tree.txt Esta parte do banco de dados não é necessária se não for lida por uma classe. No entanto, se você quiser que uma classe aprenda uma habilidade, você deve fazer uma entrada em skill_tree.txt. Um exemplo abaixo: MG_EARTHBOLT: { MaxLevel: 10 MG_FIREBOLT: 5 MG_LIGHTNINGBOLT: 5 } Isso define que: Earth Bolt pode ser aprendido por Mago, tem um nível máximo de 10 (para esta classe), e requer habilidade MG_FIREBOLT no nível 5 e habilidade MG_LIGHTNINGBOLT no nível 5. Tecnicamente, estas são as partes geralmente utilizas com arquivos de banco de dados de habilidade. Há mais, mas isso ficará pra vocês explorarem. Arquivos .lua e .lub As seguintes implementações estão de acordo com a Revisão 228 do Projeto Lua (2012-05-23). A implementação é diferente entre muitas versões de cliente, mas geralmente há 2 implementações: Sem arquivos skillinfoz Em data/lua files/skillinfo/skilltreeview.lua encontre: {"MG_FIREWALL", 18; Pos = 19, MaxLv = 10, NeedSkillList = {6, 12}} Adicione a baixo: {"MG_EARTHBOLT",8443; Pos = 20, MaxLv = 10, NeedSkillList = {19,20}} Com arquivos skillinfoz Em skillid.lua encontre: ECLAGE_RECALL = 3035, Depois adicione: MG_EARTHBOLT = 8443, in data/lua files/skillinfo/skilldescript.lua localize: [SKID.MG_THUNDERSTORM] = { "Thunder Storm", "Max Level:^777777 10 ^000000", "Type:^777777 Offensive ^000000", "SP Cost:^777777 24 + 5*SkillLV ^000000", "Target:^777777 cell ^000000", "Range:^777777 9 cells ^000000", "Cast Time:^777777 1*SkillLV sec ^000000", "Cool Down:^777777 2 sec ^000000", "Duration:^777777 0.2*SkillLV sec ^000000", "Effect:^777777 Hits every Enemy in a 5x5 area around the targeted cell with 1 Wind Element Bolt per level at a rate of 1 bolt every 0.2 seconds. Each bolt does 0.8*MATK Wind element damage. ^000000", "[LV 1]^777777 1 Bolt ^000000", "[LV 2]^777777 2 Bolts ^000000", "[LV 3]^777777 3 Bolts ^000000", "[LV 4]^777777 4 Bolts ^000000", "[LV 5]^777777 5 Bolts ^000000", "[LV 6]^777777 6 Bolts ^000000", "[LV 7]^777777 7 Bolts ^000000", "[LV 8]^777777 8 Bolts ^000000", "[LV 9]^777777 9 Bolts ^000000", "[LV 10]^777777 10 Bolts ^000000", }, Depois adicione: [SKID.MG_EARTHBOLT] = { "Earth Bolt", "Max Level:^777777 10 ^000000" "Type:^77777 Active ^000000" "SP Cost:^777777 20 + 5*SkillLV ^000000" "Target:^777777 1 Enemy ^000000" "Cast Time:^777777 2 sec ^000000" "Cool Down:^777777 1 sec ^000000" "Duration:^777777 Instant ^000000" "Effect: ^777777 Deals SkillLV bolts of Earth magic damage to one enemy, at 150% MATK per hit.^000000", }, skilltreeview.lua mude: [JOBID.JT_MAGICIAN] = { [1] = SKID.MG_STONECURSE, [2] = SKID.MG_COLDBOLT, [3] = SKID.MG_LIGHTNINGBOLT, [4] = SKID.MG_NAPALMBEAT, [5] = SKID.MG_FIREBOLT, [6] = SKID.MG_SIGHT, [8] = SKID.MG_SRECOVERY, [9] = SKID.MG_FROSTDIVER, [10] = SKID.MG_THUNDERSTORM, [11] = SKID.MG_SOULSTRIKE, [12] = SKID.MG_FIREBALL, [13] = SKID.MG_ENERGYCOAT, [18] = SKID.MG_SAFETYWALL, [19] = SKID.MG_FIREWALL }, para: [JOBID.JT_MAGICIAN] = { [1] = SKID.MG_STONECURSE, [2] = SKID.MG_COLDBOLT, [3] = SKID.MG_LIGHTNINGBOLT, [4] = SKID.MG_NAPALMBEAT, [5] = SKID.MG_FIREBOLT, [6] = SKID.MG_SIGHT, [8] = SKID.MG_SRECOVERY, [9] = SKID.MG_FROSTDIVER, [10] = SKID.MG_THUNDERSTORM, [11] = SKID.MG_SOULSTRIKE, [12] = SKID.MG_FIREBALL, [13] = SKID.MG_ENERGYCOAT, [18] = SKID.MG_SAFETYWALL, [19] = SKID.MG_FIREWALL, [20] = SKID.MG_EARTHBOLT }, skillinfolist.lua Mude: [SKID.ECL_SEQUOIADUST] = { "ECL_SEQUOIADUST"; SkillName = "Sequoia Dust", MaxLv = 1, SpAmount = { 0 }, bSeperateLv = false, AttackRange = { 7 }, } Para: [SKID.ECL_SEQUOIADUST] = { "ECL_SEQUOIADUST"; SkillName = "Sequoia Dust", MaxLv = 1, SpAmount = { 0 }, bSeperateLv = false, AttackRange = { 7 }, }, [SKID.MG_EARTHBOLT] = { "MG_EARTHBOLT"; SkillName = "Earth Bolt", MaxLv = 10, SpAmount = { 25, 30, 35, 40, 45, 50, 55, 60, 65, 70 }, _NeedSkillList = { { SKID.MG_FIREBOLT, 5}, { SKID.MG_LIGHTNINGBOLT, 5} } Finalizando Não se esqueça que você precisará de adicionar o arquivo Sprite e BMP apropriado para a habilidade. Use o nome MG_EARTHBOLT como o nome do arquivo em: data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\item data\sprite\¾ÆÀÌÅÛ Efeitos Vá a src/map/skill.h, Procure a skill que deseja adicionar/editar o efeito: case WE_BABY: if(sd) { struct map_session_data *f_sd = pc->get_father(sd); struct map_session_data *m_sd = pc->get_mother(sd); bool we_baby_parents = false; if(m_sd && check_distance_bl(bl,&m_sd->bl,AREA_SIZE)) { sc_start(src,&m_sd->bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)); clif->specialeffect(&m_sd->bl,408,AREA); we_baby_parents = true; } Aqui está sendo utilizado como exemplo a habilidade de convocação das classes bebês. Onde 408 é o efeito adicionado para que seja mostrado ao utilizar a skill. Para a sua habilidade customizada, como ela é uma habilidade nova, não há nenhum efeito, então você terá que adicioná-lo ao arquivo, seguindo de exemplo a mesma forma mostrada acima. Para saber a lista de todos os efeitos, basta utilizar doc/effect_list.txt. Fontes e créditos https://github.com/HerculesWS/ https://github.com/Cronus-Emulator/ https://github.com/brAthena/ https://github.com/rAthena/ http://forum.cronus-emulator.com/ https://forum.brathena.org/ http://herc.ws/wiki/Adding_new_skills http://herc.ws/ https://google.com/ Comentários Decidi fazer esse tutorial pois percebi que ainda não há nenhum guia com esse assunto em PT-BR e havia uma grande demanda de pessoas procurando. Tinha dado uma olhada no Hercules e percebi que é um bom tutorial, mas ainda estava incompleto e bem desatualizado, então decidi usa-lo como base e também pensei, por que não criar um? Espero que esteja de boa compreensão, caso estiver faltando algo que eu esqueci ou que eu não saiba, por favor me informe para torná-lo o melhor possível. Estou aberto a sugestões e críticas construtivas. Façam um bom proveito
  49. 1 point

    [ERROR] clif_parse: Received unsupported packet

    Also Be sure you didn't enabled packet_obfuscation from conf/battle/client.conf and disabled packet encryption while diffing or vice versa.
  50. 1 point

    how to disable @go,@warp

    well, using rathena so ... you don't have to do source modification too bindatcmd can overwrite the original atcommand, useful for this operation - script kdjhfksjfhs -1,{OnInit: bindatcmd "go", strnpcinfo(0)+"::Onaaa"; bindatcmd "rura", strnpcinfo(0)+"::Onaaa"; bindatcmd "warp", strnpcinfo(0)+"::Onaaa"; bindatcmd "mapmove", strnpcinfo(0)+"::Onaaa"; end;Onaaa: if ( !Hp ) { message strcharinfo(0), "You can't use "+ [email protected]_command$ +" when you are dead"; end; } atcommand [email protected]_command$ +" "+ implode( [email protected]_parameters$, " " ); end;}