Jump to content

Ind

Retired Staff
  • Content Count

    1655
  • Joined

  • Last visited

  • Days Won

    131

Reputation Activity

  1. Like
    Ind got a reaction from Aruar in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  2. Like
    Ind got a reaction from evilpuncker in Introducing Bank Support   
    Bank Support

    Account-Wide Bank
    May store up to 2.1 Billion Zeny Works on clients from 2013-07-24 onwards New DB Table 'account_data' Primarily to store the bank value, we have plans to employ it on new features as well (the official exp/death/drop modifiers for example) Run the '2013-10-09--21-38.sql' and '2013-10-10--16-36.sql' upgrade files. New Log TypeBan(K) to store bank transactions Bank Enable/Disable SwitchIn /conf/battle/feature.conf map-server.conf/save_settings UpdateNew '256' option to save bank transactions as soon as they take place. Made Possible Thanks to Yommy
    Wouldn't have been able to complete the feature without all the data Yommy made available, Thanks! Special Thanks
    Yommy Haru Links~!
    Commit
  3. Upvote
    Ind got a reaction from Samuel in Homunculus AI Improvement?   
    wooo. I forgot to update this =x. Through the data Yommy harvested on November 29th, my findings:
    - The official ID ranges are dumb: mob/homun/merc/elem/skill-units share the 1-50k range (his script caps the range at 42k, thats wrong btw) aegis sucky design is able to maintain that, thus why officials run on so many servers, because the 50k range can be offset into multiple zones, on our design (thousand times better (and efficient), must I emphasise) it would limit the amount of such units (e.g. default settings have 47k mobs, by using the official range map servers would have little room for more or custom mobs, nevermind homuns/skill-units/etca)
    - Thanks to yommy again I was able to determine no client functionality is lost by us using custom ranges, the game clients do not rely on the ranges (have not for many years), instead it relies on objecttype -- this is used to determine what a unit is, not by its id.
    - Even though the ids are different, it doesn't mean the AI cannot be used (I was successful at getting it to work, with 6 edits, as I will demonstrate)
    -- all files that follow are located in his ./AI/USER_AI, do not mistake it for those in the ./AI/ folder.
    --- in AI_MAIN.lua
    ---- Find "if (v > MagicNumber2) then" change to "if (v >= MagicNumber2 and v <= MagicNumber3) then"
    ---- Find "if (v < MagicNumber) then" change to "if (v >= MagicNumber) then"
    ---- Find "elseif (v < MagicNumber) then" change to "elseif (v >= MagicNumber) then"
    --- in AzzyUtil.lua
    ---- Find "if (m < MagicNumber) then" change to "if (m >= MagicNumber) then"
    ---- Find "elseif (id > MagicNumber2) then" change to "elseif (id >= MagicNumber2 and id <= MagicNumber3) then"
    ---- Find "if (id>MagicNumber2) then" change to "if (id>=MagicNumber2 and id <= MagicNumber3) then"
    --- Lastly, in Defaults.lua
    ---- Find:
    MagicNumber =42000MagicNumber2 =100000Replace the chunk with:MagicNumber =110000000MagicNumber2 =2000000MagicNumber3 =100000000- Special Thanks to Yommy, Haru.
  4. Like
    Ind got a reaction from evilpuncker in bonus bCoolDownRate,<x>;   
    File Name: bonus bCoolDownRate,<x>;
    File Submitter: Ind
    File Submitted: 18 Oct 2013
    File Category: Plugins
     
    HPM Plugin.
    Implements the 'bCoolDownRate' item bonus, demonstrates how to implement a item bonus through a plugin.
     
    works like bDelayRate example:
    - cooldown is 10000 (10s)
    --'bonus bCoolDownRate,50;' = 15000 (15s) (+50%)
    --'bonus bCoolDownRate,-50;' = 5000 (5s) (-50%)
     
    How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
  5. Upvote
    Ind got a reaction from fogocalvoeua in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  6. Upvote
    Ind got a reaction from fourxhackd in Introducing Hercules Channel System   
    Introducing Hercules' Channel System
    Hello~! - What?!
    1st, it is a replacement for the old @main 2nd, it is a super ultra mega improvement compared to the functionality @main provided. 3rd, whops. there is no 3rd. channels.conf format
        /* default channels (available on boot) */     default_channels: {         /* channel_name : channel_messages_color */          main: "Orange" /* available as #main */         support: "Blue" /* available as #support */         trade: "Red" /* available as #trade */         offtopic: "Cyan" /* available as #offtopic */         /* as many channels as you like */     }     /* colors available */     colors: {         Default: "0xffffff" /* custom channels will use the first in the list unless a font is selected thru @channel */         Red: "0xff0000"         Blue: "0x83cfe9"         Orange: "0xe57c00"         Cyan: "0x00b89d"         Yellow: "0xffff90"         Green: "0x28bf00"         Normal: "0x00ff00"         /* as many colors as you like */     }     /* allow users to create their own (private) channels through @channels command? */     /* (must also allow players to use @channels in groups.conf) */     allow_user_channel_creation: true     /* "map_local_channel" is a instanced channel unique to each map */     map_local_channel: true     map_local_channel_name: "map" /* available as #map */     map_local_channel_color: "Yellow"     map_local_channel_autojoin: true /* can disable autojoin in specific maps through mapflag or zone: nomapchannelautojoin */     /* "ally_channel" is a channel shared by all your guild allies */     ally_channel_enabled: true     ally_channel_name: "ally" /* available as #ally */     ally_channel_color: "Green"     ally_channel_autojoin: true Notes on the format/configuration
    default_channels is the list of reboot-persistent channels, you can setup as many as you like and each can have its own color for chat, which you can specify in colors (again, you can setup as many as you like) map_local_channel is a feature that grants each map its own instanced channel (available, by default as #map -- which can be changed as per map_local_channel_name) map_local_channel_autojoin whether users will autojoin the local channel when they load a map with it enabled map_local_channel_autojoin can be disabled on selected maps (e.g. if you dont want it on gvg maps) through a mapflag (with a horribly long name D:) '<map name><tab>mapflag<tab>nomapchannelautojoin' ally_channel_enabled is a feature that grants a instanced channel for each guild's allies (as well as their own members), available by default as #ally -- which can be changed as per map_local_channel_name ally_channel_autojoin whether users will autojoin their respective ally chats upon login. New Commands Explained
    @join Simple: @join <#channel_name>or, for password-protected rooms: @join <#channel_name> <password> @channel Does a number of things. Create a new channel (option available as long as allow_user_channel_creation is enabled) @channel create <#channel_name> <password> List public channels (groups with hchsys_admin can view private channels as well) @channel list Change a channel's color (requires to be owner of said channel or be in a group with hchsys_admin permission) @channel setcolor Samples available colors and displays their keys/names @channel list colors Leaves a specific channel @channel leave <#channel_name> Binds your global chat to a specific channel, making everything you type that'd normally be displayed to nearby characters be redirected to that channel instead @channel bindto <#channel_name> Unbinds your global chat from the current (if any) binded channel @channel unbind Bans a specific character from a channel @channel ban <#channel name> <character name> Lists all banned characters from a channel (groups with channel system admin permission can also see their account id) @channel banlist <#channel name> Unbans a specific character from a channel @channel unban <#channel name> <character name> Changes a channel's options (for now, channel message delay and announce-when-someone-joins) @channel setopt <#channel name> <option name> <option value> How to speak in a #channel
    You can either bind a channel to your global chat (see @channel bindto above) or PM the channel you want to speak to, if you attempt to send a pm to a non-password protected channel that you have not joined, you'll autojoin. Other stuff
    as I coded this feature I also improved overall guild processing/lookup, extremely, extremely faster (did I already say its ridiculously faster? WoE overhead probably more than halved with this). over a hundred lookups were replaced by a cached guild state that takes only 4~8 bytes per player. The commit also fixed a "wearing-garment-removed-costume-garment-look" bug - special thanks to jTynne for letting me know~! Groups with channel admin permission can bypass the channel message delay Special Thanks
    to Streusel for proposing an idea that'd end up as the @channel bindto feature. to Frost for proposing the per-channel message delay limitation to Fatalis for proposing what'd end up as the @channel ban, @channel unban and @channel unbanall to Zopokx for proposing an improvement to how the map/local channels function Links~!
    Commit Commit (update)
  7. Upvote
    Ind got a reaction from Verno in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  8. Upvote
    Ind got a reaction from NiklPar in Obtaining Hercules   
    Obtaining Hercules through Git on Windows
    Downloads
    Download and Install MSysGit Download the latest TortoiseGit

      Installation
    Alright, first go through MSysGit installer and just set it up (its used as a base for TortoiseGit). then once you install MSysGit, launch the installer you just downloaded for TortoiseGit, you'll be prompted by a window similar to the following


    The next window is "Choose SSH Client", select "TortoisePLink", hit Next.


    The next window is "Custom Setup", do not change anything unless you know what you're doing, hit Next.


    We're done with the installation, that was easy, wasn't it?


    Obtaining Hercules
    Go to the folder where you want Hercules to be placed, right click and select "Git Clone..."


    in the URL field, type the following:
    https://github.com/HerculesWS/Hercules.git ensure the 'Directory' field is as desired, and hit 'OK'


    Now Hercules is being downloaded


    Just wait for it to complete the download of your working copy and you'll be good to go.

    Updating Hercules
    Right-Click the folder where you downloaded your working copy and within the TortoiseGit menu, select "Pull..." as shown below


    On the following window just hit 'OK', and your working copy will update.


  9. Upvote
    Ind got a reaction from Duzanjos in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  10. Upvote
    Ind got a reaction from IndieRO in Introducing Hercules' Map Zone Database   
    Introducing Hercules' Map Zone Database
    Hello~! - What?!
    1st, it is a merge from item_noequip.txt and skill_nocast_db.txt functionality. 2nd, it is a major improvement on what these features did in both performance and usability. map_zone_db.txt format sample
    {     name: "My Zone"     inherit: ( "My Other Zone" )     disabled_skills: {         AL_HEAL: "PLAYER | MONSTER | ELEMENTAL"         AL_TELEPORT: "MONSTER"         MG_FIREBOLT: "NONE"         //MG_NAPALMBEAT: "PLAYER"         //ID11: "PLAYER"     }     disabled_items: {         Assumptio_5_Scroll: false         //Apple: true         //ID501: true     }     mapflags: (         "adjust_skill_damage    MG_FIREBOLT    250",         "adjust_unit_duration    PR_SANCTUARY    50"     )     /* "command:min-group-lv-to-override" e.g. "heal: 70" */     disabled_commands: {         //Example Below makes @heal be used in maps within this zone only by those group lv 70 and above         //heal: 70     }     skill_damage_cap: {         //Exemple Below caps firebolt damage in maps within this zone to a maximum 50 damage,         // (depends on HMAP_ZONE_DAMAGE_CAP_TYPE in src/config/core.h)         // when cast vs players and monsters.         //MG_COLDBOLT: (50,"PLAYER | MONSTER")     } } Notes on the format
    In disabled_skills the var following the name (: "PLAYER | MONSTER | HOMUN | MERCENARY | ELEMENTAL | PET | CLONE | MOB_BOSS") is what allows a zone to know what unit types should have this skill disabled. In the sample above, for example, in My Zone, player, monster and elemental unit types are unable to cast heal, while only monsters are unable to cast teleport. this variable may also be used to ignore skills from inheritance, for example if My Other Zone disabled a number of skills, including MG_FIREBOLT, in My Zone all of them will be disabled as well, except for MG_FIREBOLT since it is set as NONE. In disabled_items the var following the name (: true or : false) is what allows a zone to override what it inherited, for example if My Other Zone disables a number of items, including Assumptio_5_Scroll, in My Zone all of them will be disabled as well, except Assumptio_5_Scroll since it is as false. A zone may enforce an unlimited number of mapflags on all its maps, by using this sample all maps under My Zone will have Fire Bolt damage increased by 2.5x and Sanctuary will have its duration halved. A unlimited number of maps may be linked to a specific zone through a mapflag '<map name><tab>mapflag<tab>zone<tab><zone name>' Changes The mf_restrict (restrict) was dropped. item_noequip.txt and skill_nocast_db.txt were dropped, replaced by map_zone_db.txt. setmapflag script command was modified to support the new zones. @mapinfo was modified to support the new zones, also modified the formatting and made it include the amount of vendings. Improvements As opposed to item_noequip.txt and skill_nocast_db.txt, map_zone_db.txt supports an unlimited number of zones. map_zone_db.txt implementation surpasses the ones from item_noequip.txt and skill_nocast_db.txt, making item equipping (pc_useitem/status_calc_pc) and skill using (previously skillnotok, now status_check_skilluse) processing much faster and efficient. @mapinfo performance was improved (was doing chat room dbmap lookups without even checking if player was on the map in question) Special Thanks to Muad_Dib <3. to lighta for discussing the feature with me and helping design the unit-based restrictions on skills to Bahmut and Emistry for ideas on how to format the file. to kyeme for feature ideas. Links~! Commit Commit 2 (update) Map Zone Database File
  11. Upvote
    Ind got a reaction from DoriTos Nacho in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  12. Upvote
    Ind got a reaction from Senos in Hercules Ultimate Localization Design   
    .@md_name$ = "Endless Tower";would have to become.@md_name$ = _("Endless Tower");
  13. Upvote
    Ind got a reaction from Senos in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  14. Upvote
    Ind got a reaction from Wolfeh in Introducing Hercules' Stress Test Server   
    Introducing Hercules' Stress Test Server
    Hello~!
     
    The "Stress" Part
    Over 1.000 IndAI units (equivalent to +1k online players) will be in the server playing 24/7, farming, going to pvp, doing woe, playing battlegrounds, doing anything a player does, this will create a perfect scenario for us to debug and test Hercules.
     
    The Development Benefits
    We'll be able to keep track of performance usage 24/7, making us able to detect whenever a update increases a server's usage, allowing us to further optimise said update in order to take the processing down. With the AI characters doing stuff non-stop 24/7 we'll be able to identify and fix any crashes existent. Hercules will gain a super stability boost thanks to this. How to connect / Moving in and out
    This is the fun part.
    No new clients, and no sclient/clientinfo/blablabla edits will be required. get to the test server by typing '@hercules warp', test whatever you like, and go back to your server with '@hercules leave'. This technology *might* also be employed in the future by us to create hercules-hosted inter-server events.
     
    Entirely Secure
    The only data your server will pass to our test server upon warp is the name of the character (and maybe hairstyle vals).
    The test server is unable to modify (or even access) any data on your server, it is entirely secure and damage-free.
     
    Unique to Hercules
    The ability to connect through your ordinary client will be made possible by our custom server hosted over at herc.ws, the code won't be made public.
     
    Coming
    I felt inspired to write about this feature, which is why this announce is out before the feature itself.
    This is one of the features to be powered by our Hercules Plugin Manager and will be made public once the HPM implementation reaches the level capable of sustaining it.

    FAQ
    what if i dont want my players to go to the test server?@hercules is a command like any other, you can restrict access by groups.conf (by default only gms will be able to use it) what if i dont have a test server to use as a gateway to the hercules stress test server?we will also provide clients for those who don't have/want to use a server as the gateway
  15. Upvote
    Ind got a reaction from Vindicaree in Obtaining Hercules   
    Obtaining Hercules through Git on Windows
    Downloads
    Download and Install MSysGit Download the latest TortoiseGit

      Installation
    Alright, first go through MSysGit installer and just set it up (its used as a base for TortoiseGit). then once you install MSysGit, launch the installer you just downloaded for TortoiseGit, you'll be prompted by a window similar to the following


    The next window is "Choose SSH Client", select "TortoisePLink", hit Next.


    The next window is "Custom Setup", do not change anything unless you know what you're doing, hit Next.


    We're done with the installation, that was easy, wasn't it?


    Obtaining Hercules
    Go to the folder where you want Hercules to be placed, right click and select "Git Clone..."


    in the URL field, type the following:
    https://github.com/HerculesWS/Hercules.git ensure the 'Directory' field is as desired, and hit 'OK'


    Now Hercules is being downloaded


    Just wait for it to complete the download of your working copy and you'll be good to go.

    Updating Hercules
    Right-Click the folder where you downloaded your working copy and within the TortoiseGit menu, select "Pull..." as shown below


    On the following window just hit 'OK', and your working copy will update.


  16. Upvote
    Ind got a reaction from Wolfeh in Obtaining Hercules   
    Obtaining Hercules through Git on Windows
    Downloads
    Download and Install MSysGit Download the latest TortoiseGit

      Installation
    Alright, first go through MSysGit installer and just set it up (its used as a base for TortoiseGit). then once you install MSysGit, launch the installer you just downloaded for TortoiseGit, you'll be prompted by a window similar to the following


    The next window is "Choose SSH Client", select "TortoisePLink", hit Next.


    The next window is "Custom Setup", do not change anything unless you know what you're doing, hit Next.


    We're done with the installation, that was easy, wasn't it?


    Obtaining Hercules
    Go to the folder where you want Hercules to be placed, right click and select "Git Clone..."


    in the URL field, type the following:
    https://github.com/HerculesWS/Hercules.git ensure the 'Directory' field is as desired, and hit 'OK'


    Now Hercules is being downloaded


    Just wait for it to complete the download of your working copy and you'll be good to go.

    Updating Hercules
    Right-Click the folder where you downloaded your working copy and within the TortoiseGit menu, select "Pull..." as shown below


    On the following window just hit 'OK', and your working copy will update.


  17. Upvote
    Ind got a reaction from Nebraskka in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  18. Upvote
    Ind got a reaction from IndieRO in Mapflag for Cash Shop   
    added in https://github.com/HerculesWS/Hercules/commit/8629562655cfcbd6aef97307e3e0c078235619ff
  19. Upvote
    Ind got a reaction from Ragno in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  20. Upvote
    Ind got a reaction from Jey in Introducing Hercules Plugin Manager   
    Introducing Hercules Plugin Manager
    Hello~! What?!
    I can't express how awesome this is. It's awesome, so awesome. ...Incredibly awesome, yet another awesome feature brought to you by Hercules Thoughtfully Designed
    This features' design began long ago, a precursor to this feature, which demonstrates for how long we've been planning it, is the Hercules Renewal Phase One Usage Example
    Can be used to create @commands Can be used to create script commands Can be used to create console commands Can be used to replace core functions with your ownA example of how handy this can be: when any RO emu updates a section of the code that is used by a user's modifications, e.g. Harmony, no matter how silly the edit is (e.g. a tab alignment update) the user has to wait for his modification's developer to update his patch (unless he manages to update it on his own), if the developer in question starts to use the HPM for his hercules users instead of a patch file, his users using hercules will no longer have to wait for updates unless the way the code works changes on hercules' end. All About It - Documentation
    Its being done, most of it is already available in our wiki Hercules Plugin Mananger Building HPM Plugin for MSVC Building HPM Plugin for GCC Links~!
    Hercules Console Input Update (HPM Friendly) Commit Visual Studio 2010 2 Notes
    The plugin "sample" is currently missing projects for msvc2010 and msvc2012, thats because I dont have them, this will be solved asap, once one of our developers who possesses them logs in. Login/Char server plugin support is currently disabled, it should be enabled by the next release, which will also include Hooks support (as an alternative to overloading)
  21. Upvote
    Ind got a reaction from Jey in Hercules April 22 Patch   
    Hercules April 22 Patch
    Hello~! - What?!
    1st, most of these things were meant to be released separately but as I started to work with them one thing hooked up to another and I ended up deciding to get all out at once No second today! The all-long, all-mighty list
    New Map Zone DB Updates Added New "All" Zone, easy way to add modifiers to all maps in the game. Automatically inherited by all existent zones. Added new zone setting disabled_commands, can disable any command in any zone "command-name: min-group-lv" also supports min group level to override, to enable back a command disabled by inheritance just use "command-name: 0" Added new zone setting skill_damage_cap (as requested by the community), can cap any skill damage to any range of unit types, and also a new core config "HMAP_ZONE_DAMAGE_CAP_TYPE" that controls how the cap is applied (before or after modifiers) New target-type support (used by skill_damage_cap and disabled_skills): PET (special thanks to frenzmu06 for bringing it up!), CLONE and MOB_BOSS Added support to ids! item and skill ids may now be employed in all sections of the file in the place of item/skill names Detailed Map Zone DB Update Hercules Channel System Update Added a IRC bridge as requested by the community, allows users outside of the game (but in a irc network e.g. thru mobile/cel app) to communicate with anyone in-game that is within a specific #channel, and vice-versa Detailed Channel System Update Added Beret and Yommy's suggestion on cash shop file format, also added support for item ids Added Ryuuzaki's kafra point support to the new cashshop Updated map-server's save_setting, added new option: 128, to save buyingstore transactions on the fly Revisited bindatcmd feature, dropped level support, added group level support and added a new flag capable of deciding whether calls to that command should be logged in the atcommand log. Performance Improvement Added a in-memory list to store existent shops (saves iterating through all online players) Modified searchstore to use said db above, making its queries faster Improved pc_groups processing, decreased runtime ram usage by a about 1mb. Improved @command log processing through groups, now caching the state (no longer does dbmap lookup). Improved atcommand.conf file processing (was doing a extra lookup instead of using atcommand_exists already-performed lookup result) Improved atcommand's help file processing (no more lookups! string is now cached directly in the atcommandinfo struct of each command) and data management Improved @help's processing: dropped the huge config file lookup and replaced by using the caches. Improved atcommand logging, added option to not log specific commands (so you dont waste log room with stuff such as @iteminfo/@mobinfo/etc) -- atcommand.conf nolog group Sightly improved zone inheritance processing. Speeded up mvp drop processing Speeded up item log processing Speeded up mob item drop processing Misc With map_zone_db's new clone support, flag 0x8000 (no-clone-use) in the skill db was dropped With map_zone_db's new way to block commands, mapflag nogo was dropped. Fixed a number of discrepancies between unsigned and signed variables in many packets. Fixed loading messages for exp_db, attr_fix, statpoint, mob_chat_db, mob_pouch, mob_branch, mob_classchange, mob_boss, mob_poring and item_group_db pets from gms who cant drop items no longer can loot items (prevents exploit where gm kills something, pet loots, then drops and action is not logged nor blocked). Fixed combo bonuses that used getrefine on weapons/cards that affect weapons. Added @searchstore as to offer same availability to gms as @auction/@mail does Improved 2013 client charselect procedure, all thanks to Yommy! Links~!
    Commit
  22. Upvote
    Ind got a reaction from Legend in Obtaining Hercules   
    Git Troubleshooting
    Please, commit your changes or stash them before you can merge.Aborting.Git doesn't update modified files even if they don't conflict unless they're properly "committed" in your local working copy, to do so is simple and advantageous (it will keep a log of your changes for yourself; so you can always go back and check what was changed and when)
    - On Unixgit commit -am "your log message, anything at all" - On Windows
    1. Right click your folder -> Git Commit -> "master"
    2. (optional) type the log message
    3. Hit 'OK'
  23. Upvote
    Ind got a reaction from Prourhildr in Hercules WPE Free - June 14th Patch   
    Hercules WPE Free - June 14th Patch
     
    Made Possible Thanks to Yommy
    We're only able to provide you with this feature thanks to Yommy, Thank you very much! WPE Free - Official Packet Obfuscation Support Packet spamming is no longer possible by normal means, with this feature each packet sent has its own id, so spamming (by sending the same packet more than once) is impossible. For this feature to function you MUST NOT use the 'disable packet obfuscation' client diff. conf/battle/client.conf
    // Whether to enable the official packet obfuscation support (good vs WPE)// 0: disabled// 1: optional (not recommended) -- identifies whether it is required// 2: enabled (recommended)packet_obfuscation: <value>
    Currently functional for over 44 clients (Thanks to Shakto!): 2011-08-17 - 2015-05-13 Special Thanks to Yommy ..Yommy ...The all-awesome Yommy~! Thank you again! Shakto for the 44 PacketKeys! Also - SQL DB Updates & DB2SQL For logical and performance reasons we've modified the structure of the renewal item db tables, atk and matk no longer share the same column, equip_level was replaced by equip_level_min so that we could add equip_level_max which is required by new renewal items. Note however that because of the previous atk:matk format, it was not possible to provide a upgrade file that would save the matk data Item script errors from sql dbs used to point to a inexistent line number, it was modified to display the item id instead. This update has shrunk the sizes of the item db .sql files, making it possible for tools such as phpmyadmin to parse them, once again. With this patch we're also introducing a new official plugin, db2sql, its purpose is to make it easier for our developers to keep the .sql db files up to date (but you may use that to convert your own if you so desire, too), to use this plugin (when it is enabled in plugins.conf) type server tools db2sql in the console. Link~u! Commit 1 Commit 2
  24. Upvote
    Ind got a reaction from fTakano in Skill Tree DB Redesign   
    Skill Tree DB Redesign
    Hello~! - What?!
    The file has been completely overwritten, the redesign achieves 2 goals: make it easier for us to update the file and for our users to customise it. skill_db.conf format : sample
    Swordsman: { inherit: ( "Novice" ); skills: { SM_SWORD: 10 SM_TWOHAND: { MaxLevel: 10 SM_SWORD: 1 } SM_RECOVERY: 10 SM_BASH: 10 SM_PROVOKE: 10 SM_MAGNUM: { MaxLevel: 10 SM_BASH: 5 } SM_ENDURE: { MaxLevel: 10 SM_PROVOKE: 5 } SM_MOVINGRECOVERY: 1 SM_FATALBLOW: 1 SM_AUTOBERSERK: 1 } } Knight: { inherit: ( "Swordsman" ); skills: { KN_SPEARMASTERY: 10 KN_PIERCE: { MaxLevel: 10 KN_SPEARMASTERY: 1 } KN_BRANDISHSPEAR: { MaxLevel: 10 KN_RIDING: 1 KN_SPEARSTAB: 3 } KN_SPEARSTAB: { MaxLevel: 10 KN_PIERCE: 5 } KN_SPEARBOOMERANG: { MaxLevel: 5 KN_PIERCE: 3 } KN_TWOHANDQUICKEN: { MaxLevel: 10 SM_TWOHAND: 1 } KN_AUTOCOUNTER: { MaxLevel: 5 SM_TWOHAND: 1 } KN_BOWLINGBASH: { MaxLevel: 10 SM_BASH: 10 SM_MAGNUM: 3 SM_TWOHAND: 5 KN_TWOHANDQUICKEN: 10 KN_AUTOCOUNTER: 5 } KN_RIDING: { MaxLevel: 1 SM_ENDURE: 1 } KN_CAVALIERMASTERY: { MaxLevel: 5 KN_RIDING: 1 } KN_CHARGEATK: 1 KN_ONEHAND: { MaxLevel: 1 KN_TWOHANDQUICKEN: 10 } } } Main Design Benefit
    Skills and its requirements are now per job instead of per class id, so there are no duplicates -- for example in the previous format if wanted to modify, say, the max level of SM_MAGNUM you'd need to edit its 31 entries, in the new format there are only 2 entries (one in swordsman, other in super novice) Credits
    Designed/Proposed by malufett Links~!
    Commit skill_db.conf file
  25. Upvote
    Ind got a reaction from Prourhildr in 2014-10-22, Roulette and per-char gender!   
    2014-10-22 Client, Roulette and per-char gender!


    Made Possible Thanks to Yommy
    We're only able to provide you with this patch thanks to Yommy, Thank you very much!  
    Roulette
    During test period it will be disabled by default, to enable you must edit conf/battle/feature.conf // Roulette (Note 1)// Requires: 2014-10-22bRagexe or later// Off by default while test version is out; enable at your own risk -- the mean dev.feature.roulette: off Roulette rewards can be defined in db/roulette_db.conf As we understand the coins are points that you obtain by consuming an item, while such an item is not yet available (will be in a upcoming commit), you can set these values with @set command, they're TmpRouletteBronze,TmpRouletteSilver and TmpRouletteGold -- e.g. @set TmpRouletteBronze 5 Requires PACKETVER 20141022 or higher. Where you can get such client? Here (Again, Thanks to Yommy!) In action: http://herc.ws/board/damocles/ind/screenHercules136.jpg
      Per-Character Gender
    Sex is now a character table field, which can be defined as 'M', 'F' or 'U'. 'U' being the default value, meaning undefined, which means the accounts gender takes precedence (upcoming) a script command to change a characters gender Requires PACKETVER 20141022 or higher. Where you can get such client? Here (Again, Thanks to Yommy!) In action: http://herc.ws/board/damocles/ind/screenHercules137.jpg  
    Special Thanks to
    Yommy ..Yommy ...The all-awesome Yommy~! Thank you again! Ziu for extra roulette information (some yet to be applied) Haruna  
    Link~u!
    Commit 2014-10-22 client
×
×
  • Create New...

Important Information

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