Jump to content

Nebraskka

Members
  • Content Count

    44
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    Nebraskka reacted to Neo-Mind in [Guide] How to add Custom Jobs   
    Introduction
         For our Example we will create the Custom Class "Shinobi" and its Child version i.e. "Baby Shinobi" along with their Cash Mounts/Halter Mounts. Each Job has 3 ID values :
     
    1) Job ID - we will use 4230 & 4231 respectively for the jobs (4232 & 4233 will be reserved for the mounts client side).   2) Map ID - Also called EA Mask. If we are extending a class we OR the existing class with a modifier. Since Shinobi is going to be a seperate branch, we will use 0x11 for Shinobi and 0x11 | 0x2000 for Baby Shinobi (0x2000 is the JOBL_BABY mask).   3) Msg ID - Defined in messages.conf file. We will use 700 and 701.   Before we begin, A few points to note:
    1) For the client side i will be using my own patch from NEMO not Xray clients - So dont ask me about Xray.
     
    2) This guide is meant to be an overview towards adding jobs - meaning that your job will be enabled once you have done the changes     specified here . You can add further details on your own which depends on your Class.
     
    3) If i am missing out on anything please let me know. Nobody is perfect including me
     
    4) We will use Sprite and some data from Ninja class for the time being but you can add your own entries just as easily.
     
     
    Server Source 1) src/common/mmo.h: look for JOB_REBELLION assignment and insert our Job IDs after it.      
     
    2) src/map/map.h: look for MAPID_BABY_CHASER and insert our Map IDs after it.         3) src/map/pc.c:     i) find case JOB_BABY_CHASER: and insert our cases after it       ii) find case MAPID_BABY_CHASER: and insert our cases after it         iii) find case JOB_REBELLION: followed by return msg_txt(655); and insert our cases after it. (returns the Msg ID)       iv) find { "Rebellion", JOB_REBELLION }, and insert our Job Names after it       4) src/map/itemdb.c: Here we check the job masks that is specified in item_db.conf. There is one limitation, however.     Currently there is only 1 more slot left in the job mask since it is 32 bit. In case you need to add more you will need to     change the variable to 64 bit.         Find jobmask & 1<<30 and insert our class check after it.         5) src/char/inter.c: Find case JOB_REBELLION: and insert our case after it.(returns the Msg ID)         Server Config 1) db/const.txt:       i) Find Job_Rebellion and insert our Job IDs after it       ii) Find EAJ_BABY_CHASER and insert our Map IDs after it         2) db/<pre-re|re>/exp.txt: Insert your IDs in one of the entries (or if you want to specify your own exp per level you can add that).    Since our jobs are meant to be amongst First Class, we will simply add it into existing ones.       i) Base:     ii) Job:   3) db/<pre-re|re>/job_db.conf: Add entry for your Job. We will copy the entry from Ninja with slight changes for now.         4) db/job_db2.txt: Add entry for your Job. Again we will reuse the data from Ninja.         5) conf/help.txt: Insert your class entries to the @go message         6) conf/messages.conf: Add the Msg IDs after Shadow Chaser T         7) db/<pre-re|re>/skill_tree.conf: Add entry for your Job similar to the others.      -pic to be added-     Client Lua Files Now to make the client support Custom Jobs it should be patched with "Enable Custom Jobs" patch in NEMO.  Also you should copy the lua files inside Support folder to different area so we can Add entries of our jobs.  (LuaFiles514/Lua Files/Admin folder inside is what we need essentially)   1) PCIDs.lub :     i) First we add all our Job IDs (look for JT_2004_JOB_LAST entry).       ii) Next we connect the Cash Mount Job IDs to Main Job IDs (Look for JT_REBELLION mapping).         iii) Lastly we need to add our Baby Class & its mount to the Baby_List (Look for JT_LION_CRUSADER_B).       2) PCNames.lub: To illustrate that different names can be assigned based on gender, I am calling them as Shinobi M & Shinobi F for Male & Female respectively.     i) First we add the Job Name for Male Characters (Look for Rebellion)     ii) Next we make the Cash Mounts inherit Names from their respective Main Jobs - since Mounting don't change the name (Look for JT_PECO_REBELLION).         iii) Last but not least we add the Job Name for Female characters - Only necessary if it differs from Male name (Look for JT_SORCERER_B).       3) PCPaths.lub: Here we specify the job specific prefix used by the client to get the job sprite.   i) First we add the Path prefix for Jobs that is not shared with any existing ones.       ii) Next we make the Jobs that has shared path inherit from existing (for e.g. Baby Jobs inherit from Adult versions).   4)PCHands.lub: Here we specify the job specific prefix used by the client to get the weapon and shield sprite locations     i) Like before, First we add the Hand prefix for Jobs that is not shared with any existing ones.     ii) Next we make the Jobs with shared prefix inherit from existing (e.g. Baby Jobs, Mounts, Baby Mounts etc. all can inherit from Adult versions).   5)PCPals.lub: Here we specify the job specific prefix used by the client to get the Palette file location.     i) Like before, First we add the Pal prefix for Jobs that is not shared with any existing ones.     ii) Next we make the Jobs with shared prefix inherit from existing (e.g. Baby Jobs, Mounts, Baby Mounts etc. all can inherit from Adult versions).     Note: You can also optionally add entries in PCImfs.lub file in case you have an Imf file, but I haven't seen any issues even without it.  Hence I am not pursuing it.   Once the edits are done pack it into your grf or put it in your data folder and use it. With this much your job will be visible and able to do everything provided you have the sprite files in the right location.   spriteÀΰ£Á·¸öÅë³²<pathprefix>_³².spr and act for Male Job  spriteÀΰ£Á·¸öÅë¿©<pathprefix>_¿©.spr and act for Female Job   Snapshot: (to be added)    
  2. Upvote
    Nebraskka reacted to Neo-Mind in NEMO - Client Patcher   
    N.E.M.O. - Neo Exe Modification Organizer

    Why another client patcher? well
    1) WeeDiffGen - isn't working for 2013 clients + it depends on dlls (not that its a bad thing but i like scripting )
    2) xDiffGen - yes its scripted but we need to depend on xdiff files.

    so i made a new one based on xDiffGen and here it is. The patches are written in QtScript format.
    Details of making a patch have already been written in a seperate topic - although now it needs to be updated with more details.
    I have already converted most of the patches from xDiffGen.

    Why this name? - well I didn't want it to be called * Gen No offense  
    plus someone keeps calling me Nemo in IRC which gave me the idea

    Snapshot
    -----------------


    How to use?
    ---------------------
    1) First you need to specify your client file in Input Exe file box. If you browse to select the file name, Output Patched box gets updated with a _patched suffix filename automatically. Ofcourse you can select your own name for the output.
     
    2) Next we need to load both the client and the scripts (patches & addons). so click Load Client button.
     
    3) Select the patches you want . In case you patched once before (for whatever date) they will be saved in your local and you can use the Select Previous button to select them again. Also you can try using the Select Rcomnded button to select all the Recommended patches.
     
    4) So your patches are selected and client is loaded what next but to Apply Patches  which will generate the output file. In 2.0 version , NEMO also generates a .secure.txt file containing the MD5, SHA1 and CRC32 values of the output exe file which you can use in various tools.
     
    5) You can use the Save Profile and  Load Profile buttons for saving/reloading a set of patches & input values, that you have selected (even if they are not applied) for future use.
     
    6) Whenever you apply patches to a client, NEMO updates the patchlist.log file (along with Inputlist.db) in the folder where NEMO.exe is. This file will contain the list of patches you have applied along with their IDs (do not tamper with either of them).
     
    Changes in 2.0:
    ----------------------
    1) I have made some obvious modifications to the interface (you can definitely see the change in case you have seen v1.0).
         i) Buttons have come downwards and is no longer strippable (toolbar has been fixed in position)
     
         ii) New status Label has been added which shows your currently loaded client date and how many patches are selected.
     
         iii) NEMO now has support for Addons - scripts that are meant to retrieve data from the client and do its own thing (not patch the client).
              All the Extract xDiff patches has been added here already. 1 extra addon will be coming soon once i can fix it.
     
         iv) New Filter box has been added which does live search (i.e. filter as you type) for filtering out only the patches u want to see.
               For e.g. if you type color, it will only show patches that have the string color in either it's name or the description.
              You can also use regular expression . Also you can sort the columns now
     
        v) An upcoming feature - Test Patches. this one you can use for testing a newly added patch for a variety of clients that you select.
     
    2) NEMO is no longer there in SVN. I have shifted it to GitHub . The rar file uploaded has the .git file so you should be able to directly pull to get updates. But just in case I have also provided the repository link below.
     
    Remember to pull for updates before using NEMO and let me know if you are facing any bugs or issues or if i have missed out on anything. Enjoy .
     
    Repository: https://github.com/MStr3am/NEMO.git
     
    Download Link: NEMO zip file 
  3. Upvote
    Nebraskka reacted to AnnieRuru in Maintenance mode   
    update to new format 1.4
     
    seriously ... can members please register better names ?
    somebody names @@Maintenance here, and make my post broken
     
    anyways
    I tested both things, both doesn't work
     
    1. it seems I can't add SERVER_TYPE_LOGIN, because each server use their own variables
    for example, the int aaa = 0; means aaa is declare to both SERVER_TYPE_MAP and SERVER_TYPE_LOGIN, they will initialize the value
    but if SERVER_TYPE_MAP modify the value, SERVER_TYPE_LOGIN isn't updated, since they run in different server
    I still have no idea how to pass a variable from map-server to login-server
     
    2. 2nd problem is, if I add a configuration for kick autotraders
    when the player wants to login for the 1st time, client hang
    but when login for the 2nd time, its fine
    and the weird thing is, it doesn't remove the list from autotrader sql ... its a bug (in this plugin)
  4. Upvote
    Nebraskka reacted to Dastgir in Z3R0 Here ;)   
    You can do via repository if you know to
     
    Like I have my bunch of plugins at one place: https://github.com/dastgir/HPM-Plugins/tree/master/src/plugins
  5. Upvote
    Nebraskka reacted to Mystery in Z3R0 Here ;)   
    Hahah okay good . We created a Plugin System here at Hercules  (we only have this system) that pretty much allows people to create code without affecting the main source files (i.e. implement commands, functions): http://herc.ws/board/topic/549-introducing-hercules-plugin-manager/
  6. Upvote
    Nebraskka reacted to Z3R0 in Z3R0 Here ;)   
    Hey guys!
     
    Most of you probably don't know me, but I am happy to be back!
     
    Looking to help in NPC Scripting Support and hopefully come up with some new and improved concepts! I miss it!
     

  7. Upvote
    Nebraskka reacted to Tokeiburu in Fastest way of adding custom items   
    Here, for instance : 
    x = 1;for id in range(20000, 20010): item_db2[id] = item_db[501]; #copies the item 501 to your item_db2 10 times item_db2[id, "aegis_name"] = item_db[501, "aegis_name"] + "_" + str(x); item_db2[id, "name"] = item_db[501, "name"] + " " + str(x); x = x + 1  
    This python script will add 10 items based on the item 501 in your item_db2. It will also add an id at the end of the AegisName and Name fields. You can obviously remove that last part...!
  8. Upvote
    Nebraskka got a reaction from Tokeiburu in Modern DamageFont   
    The idea behing font upgrade is good, but for your info, this sprite borders bug appearing only on NVIDIA GTX 75x series, coming from drivers, and currently can be workarounded by turning on UAC or running Ctrl+Alt+Del screen before entering map-server.
     
    Other players see default font much more better than on your screens ^ ^"
  9. Upvote
    Nebraskka reacted to Garr in Fastest way of adding custom items   
    Bunch edit as in you can now edit few items at once, for example if you'll highlight few items inside item_db and edit weight to 10, all highlighted items will change their weight to 10.
    SDE also has client description autocomplete depending on item_db1/2.
     
    Python script lets you make your own changes depending on your own conditions, but that requires some Python knowledge, check the topic I linked you to, Tokei wrote some example python scripts.
  10. Upvote
    Nebraskka reacted to kisuka in 2015-09-05 : 14.2 Criatura Academy   
    Man I never knew my server was played by so many people that would go on to get involved in the emulator scene too @.@
  11. Upvote
    Nebraskka reacted to kisuka in 2015-09-05 : 14.2 Criatura Academy   
    14.2 Criatura Academy
     
    The Royal Criatura Academy is the new training area of adventurers in Rune-Midgarts. Novices must register themselves into the academy in order to take advantage of its educational benefits. The academy includes a grand hall, cafeteria, dispensary, a library, and a student lounge.


     
    Changes
    2012 Novice Grounds disabled (NPCs to help abandoned characters stuck in the area were added). Little Porings added to prt_fild08 along with its channel maps. Channel Warper name changed to official representation ("Channel Warp Official"). Academy script added. Novice Skills script disabled due to First Aid and Trick Dead being implemented into the Academy script. Fixed some AEGIS Names on a few items. Novice start point changed to iz_int.

     
    Why did this take so long?
    Some may be asking themselves: "damn, Kisuka, you've had this for over two years, why did it take you so long?". Well, first off, I've been through two jobs in the last year so my life has been pretty crazy in that regard. Things got stable in beginning of 2015, so I started getting back to this script. The other issue of why this script took so long is due to the nature of the script itself.
     
    In my opinion, this is one of the worst localized pieces of content in the history of Ragnarok Online. Each official server differs in how this script is implemented. The differences among official servers:
    kRO: Job Teachers warp you to that classes' specific map once you decide to change to that job.
    iRO: They changed it to the teacher NPC just changes you to the job in Izlude. You never find out where the guild is.
      iRO: Added custom NPCs around Izlude that give out free buffs.
      kRO: A number of NPCs that give 'Combat Training' in the form of hunting quests.
    iRO: Removed / Missing them.
      kRO / cRO: Cute Pet portion of the academy has misc poring NPCs to add more to the feel of the area during the dialog.
    iRO: Removed / Missing them.
      iRO: Awful engrish translations and placeholder texts used during localization process left in-game.
      euRO: Doesn't even have the script.
      jRO: No idea, they block non-Japanese IPs.

    Due to these differences, a large chunk of the script had to be manually translated due to iRO having stripped out those portions of dialog. I wanted to keep this content as close to kRO as possible so I chose not to remove them / not to copy iRO.

     
    Missing Features
    Due to either missing scripts / NPCs on official, no access to official script, or limitations in Hercules the following features are current missing in Criatura Academy:
    A number of Quest Bubbles are disabled currently due to certain aspects not implemented yet in Hercules (min / max level, Pre-req quests, stacking). ConsumeSpecialItem calls disabled due to lack of information / no implementation in Hercules. A number of complimenting quest NPCs missing due to lack of them in official server (iRO).

     
    Bugs
    If you find a bug, please create a Pull Request or a New Issue.
     
    Commit
    https://github.com/HerculesWS/Hercules/commit/21564acf13fbfc10295e4b2e026c2d3b7ca07299
  12. Upvote
    Nebraskka reacted to Mhalicot in Advanced AI and Mob control system.   
    @@Truly
     
    Awesome, Thanks for sharing.. will take a look at it.
  13. Upvote
    Nebraskka reacted to Tokeiburu in RO Installer Script (Inno Setup)   
    File Name: RO Installer Script (Inno Setup)
    File Submitter: Tokeiburu
    File Submitted: 17 Aug 2015
    File Category: Client Resources

    Heya!

    This 'release' is a very simple Inno Setup script to create Full or Lite client installers.

    It requires Inno Setup, which can be downloaded here : http://www.jrsoftware.org/isdl.php#stable. While installing Inno Setup, make sure the "Install Inno Setup Preprocessor" option is checked; otherwise you will get an "unknown option" error.

    How to make this work?
    Put your client files in either RO_Lite or RO_Full and then run the "_Make New Installer.bat" files. This will output a new installer called "YourRO Installer.exe".



    Customization
    Server name : open RO.iss and change the first line : #define ServerName "YourRO" The left image can be customized by editing background.bmp (or background.psd). The file format must remain a 24bit bmp. The wizard small image uses wizardSmallImage.bmp; the file format must remain 24bit as well. To add files to your installer, add them to the RO_Lite or RO_Full subfolders. Once you run the script, all the files in these folders will be packed in your installer. It can go over 2 GB, although if that's the case you might want to consider using the LZMA compression for your GRFs...! Install the VC++ Redistributable files (required by Harmony) silently. Open RO.iss and remove the semi-colon in front of "#define Harmony" to enable this option. By default, the necessary registry keys to start the game will be set if they aren't already. This is to avoid the "small window" issue people will have with older clients. The installer icon can be changed via installer.ico Uninstallating removes the entire RO folder, watch out (you can disable that). The default installer icon used comes from Lykos's icon pack, which can be found here : https://rathena.org/board/files/file/3190-s1-lykos-icon-pack/. It has been modified through hexing to allow the icon to be resizable by Windows Vista or more recent.

    Click here to download this file
  14. Upvote
    Nebraskka reacted to Tokeiburu in GRF Editor   
    Updated to 1.7.7.4; the option has been brought back. 
     
     
    There used to be a similar feature before in GRFE, but it was too troublesome to maintain and I dropped it. On the other hand, I don't plan on updating GRF Editor much at all anymore. No new tools will be added to the software; the only remaining updates would be the lub decompiler (which has yet to be fixed/completed) and other bug fixes, which should be very rare by now.
     
     
    Updated to 1.7.7.5. By default the files are extracted where your GRF has been opened, you can now change that from Tools > Settings > General > Override default extraction path > Edit the [Roaming folder] path.
  15. Upvote
    Nebraskka reacted to Emistry in GRF Editor   
    @@Tokeiburu
    If you dont mind, can you create an option that allow user to set a custom directory as default file extracting location ?
     
    Sometime feel kinda lost to find the files I extracted when I opened more than 1 GRF to extract files.
  16. Upvote
    Nebraskka reacted to Dastgir in [Guide] Adding New Status Icons   
    Hello Hercules Community,
    Here's a Guide to Add a New Custom Status Icons(the one displayed on the right)
     
     
    What you Need?
    Knowledge of Editing and Compiling Server(and ofcourse custom icons)

     
    1) Server Side Edits:
    open
    src/map/status.h
     
    Find
     
    SC_MAX  Add Before
     
    SC_MYCUSTOMBUTTON,  
     
    Find
    SI_MAX, Add Before
     
    SI_MYCUSTOMBUTTON = ID_OF_BUTTON, (ID of Button can be any, but I suggest to have them > 2000, so not to avoid any updates with kRO(which is at 900) now)
    P.S: Remember that ID_OF_BUTTON, we gonna need them later.
     
     
    src/map/status.c
    Find
    status->IconChangeTable[SC_DECORATION_OF_MUSIC] = SI_DECORATION_OF_MUSIC; Add Below
    status->IconChangeTable[SC_MYCUSTOMBUTTON] = SI_MYCUSTOMBUTTON;  
    Recompile 
     
    2) ClientSide Edits
    Get a CleanCopy of statusicon folder (https://github.com/ROClientSide/Translation/tree/master/Data/luafiles514/lua%20files/stateicon)
     
    Open efstids.lub
    Find:
    __newindex = function()error("unknown state") Before it add,
     
    EFST_MYCUSTOMBUTTON = ID_OF_BUTTON,  P.S: ID_OF_BUTTON should match the one on source(status.h)
     
     
    Open  stateiconinfo.lub
    Find
     
    StateIconList[EFST_IDs.EFST_JUMPINGCLAN] = {  Add Before
    StateIconList[EFST_IDs.EFST_MYCUSTOMBUTTON] = { haveTimeLimit = 1, posTimeLimitStr = 2, descript = { { "My Custom Button Heading", COLOR_TITLE_BUFF }, {"%s", COLOR_TIME}, --do not edit this, this shows time remaining { "Description 1" }, { "Description 2" }, { "Description 3" } }} Open
    stateiconimginfo.lua
    Find
     
    [PRIORITY_GOLD] = { OR
    [PRIORITY_RED] = {  OR
    [PRIORITY_BLUE] = {  OR
    [PRIORITY_GREEN] = {  OR
    [PRIORITY_WHITE] = {  (Depending on what background your Custom Button is)
    Add below
     
    [EFST_IDs.EFST_MYCUSTOMBUTTON] = "MYCUSTOMBUTTONFILE.TGA",  P.S: Your Button File must be in .TGA form only.
    .tga file must go to data/texture/effect/ Folder
     
    And Its DONE!!!
     
    NOTE: Replace MYCUSTOMBUTTON with your own Icon/Effect Name
  17. Upvote
    Nebraskka reacted to Axl in [Release] ExtendedBG for Hercules (with eAmod BG modes)   
    Hey, great project. It will take the dependence of many rAmod and finally migrate to Hercules. Go Go hard!
  18. Upvote
    Nebraskka reacted to Tokeiburu in Identify .str or .tga filenames of some effect/skill.   
    There's a trick to identify these... thanks Olrox ! Anyhow, many of them are hard coded in the client.
     
    15    Soul Strike pok1.tga pok3.tga ring_blue.tga lens1.tga lens2.tga
    17 Magnum Break ring_yellow.tga ´ëÆø¹ß.tga 27 Frost Diver (Traveling to Target) ice.tga pok1.tga pok3.tga smoke.tga 28 Frost Diver (Hitting) pok1.tga pok3.tga smoke.tga 226 Grand Cross Effect alpha_center.tga ring_white.tga ring_yellow.tga 252 Reflect Shield ring_yellow.tga 312 Heal Effect ring_white.tga pok1.tga pok3.tga 336 Kyrie Eleison/Parrying Shield kyrie.str 409 Meteor Assault purpleslash.tga   Edit : You can view the resources of STR files using GRF Editor, ex :
  19. Upvote
    Nebraskka reacted to Ai4rei in Simple DLL Loader for RO Clients, last updated 2014/01/05   
    Simple DLL Loader for RO Clients


    About
    If you expect some super simple application, let me disappoint you, there is none; everything is already part of the RO client. Consider this post as a proof-of-concept. There are also certain catches that you should be aware of, before you start jumping for joy.

    All you need to do, is to give your library a .asi, .m3d or .flt extension instead of .dll and it will miraculously get loaded by the client when it starts up and is unloaded once it shuts down.

    While you can load pretty much any dynamic library this way, there is a major catch: when your DLL gets loaded, most of the initialization is already complete and the window is already visible, DirectX is not initialized at that point. So while this might be ideal for a client plug-in, that messes with the window or the client runtime, it's probably less usable for hot-patching of the initialization code. Another catch is, that the client will load fine when your DLL is deleted.

    Summary: While the process of loading a DLL with the extensions .asi, .m3d and .flt is simple, the point at which it gets loaded might be unsuitable for certain uses. Since it's not intrusive, it might be of use for client plug-ins.

    Demo: The linked demo consists of a pre-build DLL with source, that displays a message when loaded and unloaded for convenience of testing this PoC.

    Edit:
    Another issue noticed by Cataclysm: If "Sound Mode" in RO setup is set to "No Sound", DLLs will not be loaded.

    Download
    demo

    QA
    How does this work?
    Your DLL is loaded as a driver for the Miles Sound System (mss32.dll), but since it does not register with it, it does not interfere with it in any way.  
    License

    This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  20. Upvote
    Nebraskka reacted to Rytech in Summer 2 Costume Job   
    Giving a update on this. I just confirmed that this outfit does not use a option mask. It appearance is displayed the same way as how rental mounts are shown. Here's the info you need to properly display.
     
    // Status IDDRESS_UP = 856, // Enum Table For Outfits - val1DRESS_UP_SUMMER_EVNET2 = 0x1,  
    Here's how it works. To start, you need to use the 2015-05-13 client or newer for this (Didn't test with October 2014). While in game, type the following command....
     
    @displaystatus 856 1 1 1
     
    You should appear in the outfit. The 1 at the end is the val1 which sets what outfit you will appear in. But currently only 1 outfit is in the table at this time. They noticed they were running out of OPTION masks and went with a better way to add future outfits. So to make a player appear in the outfit, the status has to be started with a val1 value of 1.
  21. Upvote
    Nebraskka reacted to Xgear in Devotion through warps   
    Maintaining Devotion through warps is possible, you'd have to look at Devotion's range check within status.c (check_distance_bl) initially, I don't think there are other cancel-triggering blocks of code aside from that
  22. Upvote
    Nebraskka reacted to malufett in 'job_db1.txt' Redesign   
    'job_db1.txt' Redesign
     
    What is it?
    The file has been upgrade to achieve 2 goals: make it easier for us to update the file and for our users to customize it better. The old hp/sp computation has been drop and replace by hp/sp tables. job_db.conf Format:
    Job_Name: { // Job names as in src/map/pc.c (they are hardcoded at the moment so if you want to add a new job you should add it there)     Inherit: ( "Other_Job_Name" );     // Base job from which this job will inherit its max weight, base ASPD set and HP/SP table.     InheritHP: ( "Other_Job_Name" );// Base job from which this job will inherit its HP table.     InheritSP: ( "Other_Job_Name" );// Base job from which this job will inherit its SP table.     Weight: Max Weight            (int, defaults to 20000, units in Weight/10)     BaseASPD: {                 // Base ASPD for specific weapon type         Fist: 0~200                (int, defaults to 200)         Dagger: 0~200            (int, defaults to 200)         Sword: 0~200            (int, defaults to 200)         TwoHandSword: 0~200        (int, defaults to 200)         Spear: 0~200            (int, defaults to 200)         TwoHandSpear: 0~200        (int, defaults to 200)         Axe: 0~200                (int, defaults to 200)         TwoHandAxe: 0~200        (int, defaults to 200)         Mace: 0~200                (int, defaults to 200)         TwoHandMace: 0~200        (int, defaults to 200)         Rod: 0~200                (int, defaults to 200)         Bow: 0~200                (int, defaults to 200)         Knuckle: 0~200            (int, defaults to 200)         Instrumen: 0~200        (int, defaults to 200)         Whip: 0~200                (int, defaults to 200)         Book: 0~200                (int, defaults to 200)         Katar: 0~200            (int, defaults to 200)         Revolver: 0~200            (int, defaults to 200)         Rifle: 0~200            (int, defaults to 200)         GatlingGun: 0~200        (int, defaults to 200)         Shotgun: 0~200            (int, defaults to 200)         GrenadeLauncher: 0~200    (int, defaults to 200)         FuumaShuriken: 0~200    (int, defaults to 200)         TwoHandRod: 0~200        (int, defaults to 200)         Shield: 0~200            (int, defaults to 0)     }     HPTable:[ 1, .... 150 ]        (int[]) Reference table for base HP per level      SPTable:[ 1, .... 150 ]        (int[]) Reference table for base SP per level     // Note: If table index size is smaller than the max level the server will automatically generate the missing index based on the average increase per level.} Benefit?
    You can now easily specify a class base weight, base aspd for specific weapon types and HP/SP per level. Lessen redundant entries and good for the eyes.. RE ASPD formula is improved to compatibly(less/no more conversion) accept aegis database. Tools?
    http://herc.ws/board/files/file/202-hercules-hpsp-table-generator/ Special Thanks to:
    Awesome @Yommy Best @Michi Incredible @Ind Nice @Beret Links
    Commit: https://github.com/HerculesWS/Hercules/commit/b59b9d1ab4c5a21081cdd2af126997ed7093d743 File: https://github.com/HerculesWS/Hercules/blob/master/db/re/job_db.conf
  23. Upvote
    Nebraskka reacted to malufett in [UPDATE] Harmony Patch   
    Harmony Patch!!!
     
    This patch is based on Ossi's release(http://herc.ws/board/topic/3267-harmony-patch-3312-30-mai/) and I update it as requested, to support new revision of Hercules as of 7401d98649558d58d97d4543db1d74d33652127b
     
    so for those Hercules users with harmony enable and can't update their server then this is your chance...
     
     
    Download:
    Hercules-Harmony .PATCH - Fixed a minor bug. Thanks to @@trinity
    Hercules-Harmony.PATCH
     
    btw I accept coffee..
     

  24. Upvote
    Nebraskka reacted to Mystery in And... we're back!   
    We still have some things being brought over. And it will (soon).
  25. Upvote
    Nebraskka reacted to Rytech in Devotion through warps   
    That sounds like a really interesting idea but sadly no its not possible. One entity can't interact with a entity on a different map.
×
×
  • Create New...

Important Information

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