Jump to content

Kusoo

Members
  • Content Count

    44
  • Joined

  • Last visited


Reputation Activity

  1. Like
    Kusoo reacted to Ischtar in Updating the item_db, a first step   
    I would like to update the Hercules item database and fill it with more items. In addition, I had started dealing with the Devibe Pride database and its API in the past few days.
    I came across a Python script that is apparently used by rAthena to fill its DB. However, as you may know, rAthena uses the yaml format.
     
    Now I looking for a supporter who can help me rewrite the Python script so that it outputs a json format that Hercules can read.
     
    https://github.com/latiosu/dp2rathena
     
    I am aware that the Devine Pride database is neither complete nor 100% correct. However, individual information about the item can be corrected more quickly than having to type in all the items by hand.
  2. Like
    Kusoo reacted to 4144 in Http support in hercules (merged to hercules)   
    Some progress update. Complete things:
    Add support for gif guild emblems. Add support for emblems bigger than 64k bytes. Add shared configs support between login/char/map/api. Add configuration with default emotes for new chars.  
  3. Like
    Kusoo reacted to anacondaq in Ragnarok Offline Newbie Pack 2022 | Make your RO server in less then 5 minutes   
    Pack v2022:
     
     
    Current Version: 27 December 2021
     
    Update 2023-10-01 - latest versions can be found there: 
    https://discord.gg/p2kvabm
     
    https://ragnarokservice.top/
     
    Download Links (~4.5GB):
    Download from Mirror #1 or Download from Mirror #2 or Download from Mirror #3  
    Important: Please make someone mirror these files. Or make a donation to me and I will make a mirror by myself.

    What is that?

    This is a newbie package that contains 1 click solution for launching Hercules emulator with a single click.
    This package only for education. Do not use this package anywhere in production.

    This package good demonstration of how everything should be configured by yourself to make it work.
    We can find here a good guide on how to configure everything by yourself:
    http://herc.ws/board/topic/16521-how-to-setup-offline-server-for-personal-development-use/

    What inside the package?

    You have 7 folders:
    01_emulator = here emulators (pre-compiled and pre-configured) for RENEWAL or classic PRERE mechanics 02_client_side = here is your client-side what need to copy-paste to your clean kRO client 03_openserver = here is Open Server (MySQL server where stored your game database and which required by the emulator) 04_useful_tools = here are different useful tools that you usually will need when will work with the emulator or databases 05_misc_repos = here are repositories from which it has built the client-side, and exe patched. 06_cmder = this is a tool will be good for you to update the emulator to the latest version (and other files in misc_repos) 07_clean_kRO_client = this is a clean kRO client (2018 somewhere in march updated), need for you to run your own RO copy.
    How to use all of this?
    extract files inside 01_emulator, 02_client_side, 03_openserver, 07_clean_kRO_client Now, what emulator version do you need? Latest (current official servers) (renewal mechanic (suras, dorams, etc classes)) or classic PRE-re (champion, high wizard, high priest)? Now if for example, you use PRERE mechanic (where is high wizard class, paladin, lord knights, and no 3rd classes) your steps are next: a.) go to 02_client_side\FOR_PRERE_EMULATOR\ b.) select all files in this folder (FOR_PRERE_EMULATOR) and copy (CTLR+C) c.) now go to 07_clean_kRO_client/clean_kRO_client/ folder and copy files here (overwrite if windows explorer will ask to do that). d.) now you need to run OpenServer (it's a server that stores all your player's data inside the database, required by the emulator) and run it. e.) Click on Red Flag -> Run the server, make sure in your tray you got Green Flag. f.) Now go to 01_emulator\hercules_PRERE\ and run: run-server.bat g.) Now go to your 07_clean_kRO_client/clean_kRO_client/ and run: 2018-04-18bRagexeRE_patched.exe Your emulator, your database, and the client are running. Now you can try to login into the game.
    About Accounts:

    How to make a GM account or how to access the database?
    For that, you need to click on Green Flag -> Advanced -> PHPMYADMIN
    In the login field of PHPMyAdmin enter: "root", in the password field enter nothing. (no password)
    Press enter or login, and you will be in the database.
    Databases well structured, so mostly always you need not edit too much there.
     
    How to make a GM account?
    You opened PHPMYADMIN.
    Now select your database, and find in this database table called: "login"
    Open this table, and find your account name, and you will see column "group_id".
    Edit number in this column (group_id) to 99.
    0-99 = your GM level. 99 = super admin with all privilegies, 0 = simple player with no privieleges.

    Okay, everything working for me, what can I do next?
     
    My short answer: http://herc.ws/board/ Read all topics, read different guides, read info about NPCs Read info how to add NPCs, how to enable them, how to disable them Read /doc/ folder files inside your emulator folder Read wiki pages: https://herc.ws/wiki/Main_Page Do experiments and do not afraid to destroy everything or remove them.
    Just do mistakes and errors, it's how people learning something new, through mistakes.

    DO not afraid to do a lot of mistakes and ask questions.
    People will help you if you will try to help yourself first and will make good questions with some research before posting messages.


    What tools can I use for making everything much easier for me?
    Tools that you MUST have:
    - Grf Editor - Server Database Editor - VSCode / Notepad++ / Sublime Text / Atom  (any of these editors and select always C syntax highlight for opened files)
    I want to play with my friends on my server
    The solution that you will find by the link below is a terrible solution.
    But usable for a small group of people who for education only want to launch their server ONLINE (for others).
    This is SUPER bad, and never do that, (it's weird, after the only time you will understand why).
    But if you still asking here is the link: https://gist.github.com/anacondaq/3eae8e4afb5d3c3880d08b95b2c54b78

    ===============================================
    I want make a donation as a gesture of goodwill:
    ===============================================
    Ask administrators here: http://herc.ws/board/
    If they accept donations or not, I found no donation link.
    Optionally you can always support the next guys:
    4144 for massive help to the current RO scene at all by his hard work. AnnieRuru for a lot of scripts, helping newbies on the forums http://herc.ws/board/staff/ - all these guys zackdreaver for a lot of efforts on a translation project and to all guys, scripters, mappers, etc players who spend their time, their efforts just for you to make everything free what you see here. Sorry if I didn’t mention someone.
     
    I need help with <something>
    There are a lot of talented developers, software developers, scripters, mappers, spriters, and many other people in this community.
    Check the link: https://herc.ws/board/forum/49-paid-services/
    Also, I accept all questions related to the basic newbie stuff on the topic.
    Do not hesitate to ask even super stupid questions.
    But before asking something, try to do a very simple thing: 
    Open google, in the search bar enter: "site:herc.ws" Then write your question or problem Hit enter and check all links that you see, maybe someone already solved your problem earlier.  
    Alternatively: if you will not be annoying, and will be respectful, I can help with some newbie stuff in the discord channel about the package: https://discord.gg/p2kvabm
     
    Changelog:
    - 2021-04-10 - build from scratch new version with everything new (2020 game client, latest translation, fixed bugs, tons of features and improvements)
    - 20200419 - upgraded emulators, fixed problems with emulators, SQL files, and so on, upgraded full kRO, tools, misc Repos, client-files not touched. Added Discord channel for newbies support.
    - 20200307 - updated emulator, recompiled, uploaded to google drive. Client or db-server files not changed.
    - 20200203 - updated emulator, rest files not touched, if you want to upgrade your emulator, just download the 01_emulator.rar folder, and use it instead of your old one.
     
    I'm Ukrainian in Ukraine. Russia has begun a war against my country, and doing right now is genocide. Destroying cities, even mine own, killing thousands of people, civil people, burning to the ground cities. If you wish to support me in this challenging time (I will try to re-route part of this money to people I know to help them under these awful conditions).
     
    You can donate personally for me for my needs by the link: https://nowpayments.io/donation/anacondaq (crypto).
    Alternatively, you can send money to help Ukraine citizens to the official fond https://www.comebackalive.in.ua/ or 
    to: https://help.gov.ua/
  4. Upvote
    Kusoo got a reaction from tathanvocuc017 in Kro & Renewal Client Folder [January 15 2018]   
    Hello there! 
     
    I just uploaded my RO folder, includes rdata.grf and data.grf, both were uptodated today January 15, 2018
    Both GRF's were compressed It doesn't includes BGM's. Includes the latest opensetup  
    Kro Client Folder
    Ragnarok Client January 2018.rar
     
     
  5. Upvote
    Kusoo got a reaction from IndieRO in Kro & Renewal Client Folder [January 15 2018]   
    Hello there! 
     
    I just uploaded my RO folder, includes rdata.grf and data.grf, both were uptodated today January 15, 2018
    Both GRF's were compressed It doesn't includes BGM's. Includes the latest opensetup  
    Kro Client Folder
    Ragnarok Client January 2018.rar
     
     
  6. Upvote
    Kusoo reacted to Sephus in Introducing the Item Options System   
    Introducing the Item Options System!
     

     
    Commit
    https://github.com/HerculesWS/Hercules/commit/974222a8d3f189083205bf5d330de04a43226ad3
     
    Feature Information
    The Item Option System is a feature that was implemented in 2015-02-26 clients, allowing equipments to have up to 5 additional effects similar to cards or enchants. Each equipment is capable of having 5 information bars above the card slot/enchant bar that describes the effect of the option it is infused with.
     
    New Script Commands (The following snippet is available in doc/script_commands.txt.)
    *getequipisenableopt(<equipment slot>) This function checks if the equipped item allows the use of bonus options. Returns 1 if allowed, 0 if not. --------------------------------------- *getequippedoptioninfo(<info_type>); This function is to be used with the scripts of contents listed in db/item_options.conf only. Returns the value of the current equipment being parsed. If the equip was not found or the type is invalid, -1 is returned. --------------------------------------- *getequipoptioninfo(<equip_index>,<slot>,<type>); Gets the option information of an equipment. <equipment_index> For a list of equipment indexes see getequipid(). <option_slot> can range from 1 to MAX_ITEM_OPTIONS <type> can be IT_OPT_INDEX (the ID of the option bonus, @see "Id" or "Name" in db/item_options.conf) or IT_OPT_VALUE (the value of the bonus script of the equipment, @see "Script" in db_item_options.conf). returns the value of the slot if exists or -1 for invalid slot, type or slots. --------------------------------------- *setequipoption(<equip_index>,<slot>,<opt_index>,<value>); Set an equipment's option index or value for the specified option slot. <equipment_index> For a list of equipment indexes see getequipid(). <option_slot> can range from 1 to MAX_ITEM_OPTIONS <type> can be IT_OPT_INDEX (the ID of the option bonus, @see "Id" or "Name" in db/item_options.conf) <value> The value of the type to be set. returns 0 if value couldn't be set, 1 on success.  
     
    Release Notes
    This system allows the infusing of equipments with bonus item options. This feature is constrained to clients of packet versions greater than or equal to 20150226. Item Options and their effects are defined server-side in db/item_options.conf and client side in data/luafiles514/lua files/datainfo/addrandomoptionnametable.lub The ID of the option must tally with the correct index of the description provided in the client side file. IT_OPT_* keys and MAX_ITEM_OPTIONS macro are also exported from the source as constants. If you wish to disable item options for certain (equipment) items, an additional flag `disable_options` has been added to the item sql tables, and as `DisableOptions: true/false (boolean, defaults to false !!for equipments only!!)` to the item_db.conf files. Documentation is provided for script commands. If upgrading, don't forget to run the sql upgrade files!
    Credits
    A big thanks to all the reviewers that helped make the code closer to perfection. -
    Emistry, dastgir, MishimaHaruna, Jedzkie, Ridley8819, Asheraf, 4144.
     
    Style and Script Fixes by Asheraf (https://github.com/Asheraf)
    Initial design Idea in rAthena commit.
  7. Upvote
    Kusoo reacted to Monsieur Panda in [Guide] Create your server & Client (2016/08)   
    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
  8. Upvote
    Kusoo reacted to Habilis in @emotion @heart @show @hold @detach   
    Hello, here is the adapted version of 
    @emotion @heart @show @hold @detach
    commands so popular in the Russian eA, rA, Herc community.
     
    I don't claim to be the Author, credit for the work goes to each mod respective Author.
     
    I just made all of them into Hercules plugins and changed source code a little...
     
     
     
    emotion.c
    @emotion 0 - 81 without delay. Now, you can do nasty spam with emotions.

      #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@emotion", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @emotion X by Anarchist * => Displays the emotions without delay *------------------------------------------*/ int emotion_max = 81; // Set las emotion number available forr this command ACMD(emotion) { nullpo_retr(-1, sd); char err_msg[1024]; if(!message || !*message || atoi(message)<0 || atoi(message)>emotion_max) { sprintf(err_msg, "usage: @emotion 0-%d", emotion_max); clif->message(fd, err_msg); return -1; } clif->emotion(&sd->bl,atoi(message)); return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("emotion",emotion); }  
     
     
    heart.c
    @heart 1 or 2 (heart emotion without delay)

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@heart", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== @heart X by Anarchist => Displays the heart special effect ------------------------------------------ */ ACMD(heart) { nullpo_retr(-1, sd); if(!message || !*message || atoi(message)<0 || atoi(message)>2) { clif->message(fd, "usage: @heart 1 or 2"); return -1; } if(atoi(message)==1) { clif->specialeffect(&sd->bl,364,0); } else if(atoi(message)==2) { clif->specialeffect(&sd->bl,509,0); } return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("heart",heart); }  
     
    dance.c
    @dance 1 - 8 (character perform different tricks...)
    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@dance", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== @dance X by Anarchist => Special effects with dance style ------------------------------------------ */ ACMD(dance) { nullpo_retr(-1, sd); if(!message || !*message || atoi(message)<0 || atoi(message)>9) { clif->message(fd, "usage: @dance 1-9"); return -1; } switch(atoi(message)) { case 1 : clif->specialeffect(&sd->bl,413,0); break; case 2 : clif->specialeffect(&sd->bl,414,0); break; case 3 : clif->specialeffect(&sd->bl,415,0); break; case 4 : clif->specialeffect(&sd->bl, 426,0); break; case 5 : clif->specialeffect(&sd->bl,458,0); break; case 6 : clif->specialeffect(&sd->bl,466,0); break; case 7 : clif->specialeffect(&sd->bl,501,0); break; case 8 : clif->specialeffect(&sd->bl,540,0); break; case 9 : clif->specialeffect(&sd->bl,550,0); break; } return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("dance",dance); }  
     
    show.c
    @show X Y (Displays a red dot on the minimap for the given coordinates, useful when searching for quest npc or a merchant selling needed items....)

     
    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@show", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @show by KarLaeda * => Displays the point on minimap *------------------------------------------*/ ACMD(show) { int x = 0, y = 0; nullpo_retr(-1, sd); if(!message || !*message || (sscanf(message, "%d %d", &x, &y) != 2)) { clif->message(fd, "usage: @show <x> <y>"); return -1; } clif->viewpoint(sd, 1, 1, x, y, 2, 0xFF0000); return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("show",show); }  
    hold.c
    @hold (Disables / Enables character movement, useful on low rates to Archer/Mages when leveling on immobile monsters)
     
    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@hold", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @hold by Voidless *==========================================*/ ACMD(hold) { nullpo_retr(-1, sd); if (!sd->state.blockedmove) { sd->state.blockedmove=1; clif->message(fd, "Character movement turned off"); } else { sd->state.blockedmove=0; clif->message(fd, "Character movement turned on"); } return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("hold",hold); }  
    For this plugin, I used the work : http://herc.ws/board/topic/2615-atcommand-afk/
    of Mhalicot : http://herc.ws/board/user/1582-mhalicot/
    To inspire myself...
    detach.c
    @detach (leaves character in game while client can be disconnected)

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include "../common/HPMi.h" #include "../common/timer.h" #include "../common/nullpo.h" #include "../map/channel.h" #include "../map/script.h" #include "../map/pc.h" #include "../map/clif.h" #include "../map/chat.h" #include "../map/battle.h" #include "../map/status.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@detach", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @detach *==========================================*/ ACMD(detach) { nullpo_retr(-1, sd); if( pc_isdead(sd) ) { clif->message(fd, "Cannot use @detach if you are dead."); return true; } if( map->list[sd->bl.m].flag.autotrade == battle->bc->autotrade_mapflag ) { if(map->list[sd->bl.m].flag.pvp || map->list[sd->bl.m].flag.gvg){ clif->message(fd, "You may not use @detach when you are on maps PVP or GVG."); return true; } sd->state.monster_ignore = 0; sd->state.autotrade = 1; chat->create_pc_chat(sd, "DETACH", "", 1, true); sd->sc.opt1 = OPT1_STONE; pc->setoption(sd, sd->sc.option); pc_setsit(sd); skill->sit(sd,1); clif->sitting(&sd->bl); channel->quit(sd); clif->authfail_fd(sd->fd, 15); return true; } else { clif->message(fd, "@detach is not allowed on this map."); return true; } } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("detach",detach); }  
    Put all .c files inside src/plugins
    in the file src/plugins/makefile.in include the plugins
     
    MYPLUGINS = show heart emotion dance hold detach
     
    run commmand : make plugins
     
    in file conf/plugins.conf
     
    add plugins
     
    plugins_list: [     /* Enable HPMHooking when plugins in use rely on Hooking */     //"HPMHooking",     //"db2sql",     //"sample",     //"other",     "show",     "heart",     "emotion",     "dance",     "hold",     "detach" ]   Start server, enhoy
  9. Upvote
    Kusoo reacted to Kubix in Queue BG rewrite   
    https://mega.nz/#!usdTjDob!LFjB51DZP_vADpXnn2MT9G82xCJXVhabILcqWzohZ5w

    Full eAmod Bgs for Hercules / RagEmu by Plugin.
    Converted by me.
    Use standart eAmod BG NPC for this.

    Tested on latest RagEmu.
    Let me know if you find some errors. (tested on Windows)
  10. Upvote
    Kusoo reacted to Shikazu in [WIP] AthenaMT   
    A short update to this project. 
     
    No it's not dead and i made some progress. I've got a working login server now and before im making more progress on that topic, there is another project which i would like to push forward.
     
    Will make a post later about it, it's neccessary for me to make it a very good emulator  
     
    Stay tuned.
  11. Upvote
    Kusoo reacted to Michi in Client Translation Project   
    This is a new translation client project that Dastgir and Me want to share for Hercules only.
     
    What this Project contain?
     
    - itemInfo.lua with iro/kro translation.
    - Some lua that contain last translation found on the board or made by us.
    - Last accessoryid.lub / accname.lub / jobname.lub / NPCIdentity.lub decompiled.
    - Texture Buttons translate.
    - msgstringtable.txt fully translate.
    - Txt files translate (questid2display.txt, mapnametable.txt etc...)
    - Up-To-Date itemInfo and other files required to run a basic Translated client.
     
    You can help us by opening PR, or just pm Dastgir to get access to the repo...
     
     
    What Client is compatible?
     
    - Client compatible until 2016.
    Link:
     
  12. Upvote
    Kusoo reacted to Tokeiburu in NPC Script Editor   
    Heya,
     
    Would it possible to add these features?
    Adding "To lowercase" and "To UPPERCASE" in the context menu when right-clicking some text would be more practical than using the menus! Adding "Add text color" in the context menu when right-clicking on some text, this would simply add "^000000" at the beginning and end of the selected text. Turn on whole word highlighting (when the caret is on a whole word, it is very useful to highlight all other whole word matches). Volatil searches. When a word is highlighted (from the whole word highlighting), being able to jump to the next or the previous element is very useful. The shortcut in Notepad++ is Ctrl-F3 for the next element and Ctrl-Shift-F3 for the previous element. In VS, the shortcut is Ctrl-Shift-Up and Ctrl-Shift-Down. Be able to leave autocomplete always turned on and activates as you type. Other useful shortcuts to have :

    Alt-Up / Alt-Down, moves the selected lines up or down. If no text is seleted, it moves the current line.
    Shift-Delete, deletes the current line and copy it to the clipboard (or Ctrl-L in Notepad++).
    Ctrl-C with no text selected, copies the current line to the clipboard.
    Ctrl-X with no text selected, copies the current line to the clipbard and removes it.
    Ctrl-K, comment the selected lines.
    Ctrl-Shift-K, uncomment the selected lines.
    F3, while a search is active, goes to next element. (This is conflicting with Scintilla's default find and replace dialog though, not really important I guess).
    Shift-F3, while a search is active, goes to previous element.
    Ctrl-U, change the selected text to lower case. Shortcut already exists, never mind.
    Ctrl-Shift-U, change the selected text to upper case.
    Add/replace code snippets : 

    f =>
    for ($.@i$ = $0$; $.@i$ < $max$; $.@i$++) { $selected$$end$} w =>
    while ($1$) { $selected$$end$} sc / script =>
    $map$,$x$,$y$,$direction$ script $name$ $SPRITE$,{ $selected$$end$} func =>
    function script $name$ { $selected$$end$} hid (could probably use another name I guess) =>
    - script $NAME$ -1,{ $selected$$end$} menu =>
    switch(select("$menu$")) { case 1: $selected$$end$ break;} dup =>
    $map$,$x$,$y$,$direction$ duplicate($name$) $name$#$tag$ $SPRITE$$selected$$end$  
    Could probably add more snippets, but these are the only ones that come to mind at the moment xD! It would be even better if we could make our own, they're really a time saver. If you're not familiar with snippets, they are used by typing the first letters (func for example) and then pressing tab. It will autocomplete the rest. There is already one for "f" but it's obviously meant for C++ autocompletion code.
     
    And also, when you press Enter, it would be nice if it could use the previous indent (or use indent + 1 if the line ends with { ) to start the new line instead of starting back at the beginning. This is probably the most important feature in all of this, it is somewhat annoying to add the tabs everytime you add a new line.
     
    Thank you for this amazing tool btw ;]!
  13. Upvote
    Kusoo reacted to goddameit in Bigger Vending   
    File Name: Bigger Vending
    File Submitter: goddameit
    File Submitted: 26 Feb 2015
    File Category: Source Modifications
     
    Preview:

    http://gfycat.com/OffbeatThirdFox
     
    Info:
    After using NPC for setting date, it will rewrite your vending list, so you can put more item.
     
    Click here to download this file
  14. Upvote
    Kusoo got a reaction from ZelosAvalon in Effect when equip an item   
    In your Hercules folder there is a doc folder, inside of it
     

  15. Upvote
    Kusoo reacted to Dastgir in Plugin Collections   
    Hello Community,
     I am feeling like, there's many plugin on forum, but not been actively used, due to out-of-date plugin
     
    I have updated Shikazu's Plugin first(as it was requested on the thread from 25th April), maybe Shikazu busy on his rl.
    Also I have included My Plugins there.
     
    I would like to add more plugins there(which are not updated on hercules forum <- please suggest if you find some outdated plugin and want me to update it )
     
    List of Plugins and Owners:
    https://github.com/dastgir/HPM-Plugins/blob/master/README.md  
    Repository: https://github.com/dastgir/HPM-Plugins
     
    Thanks.
  16. Upvote
    Kusoo reacted to iCORE in [Re-Release] Updated Extended Vending System   
    hi guys i just want to share this updated EVS by lilith since any in here is busy improving it, no changes at all its just a patch, and it will not support @autotrade. i dont know if this will support cash and zeny as item so if any one had an idea to make it work with cash and zeny just improve it thanks.
     
    Step1: Apply the patch
    Step2: Put item_vending.txt in your (trunk/db) folder
    Step3: Compile your Server


    NOTE: this patch dont read the custom.conf so dont ask for it
     
    * UPDATE
    v2
    Working on the latest rev.
     
     
     
     
    CREDITS TO THE REAL OWNER.
    lilith
    Extended Vending System.patch
    item_vending.txt
    Extended Vending System v2.patch
×
×
  • Create New...

Important Information

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