Jump to content

Virtue

Members
  • Content Count

    259
  • Joined

  • Last visited

  • Days Won

    1

Reputation Activity

  1. Upvote
    Virtue reacted to Jguy in How do I change binary names?   
    For future reference, renaming a binary on linux:
     
     
    mv old_filename new_filename  
    Example:
     
     
    mv login-server_sql login-server_sql2  
    If you plan on changing the name of the login, char and map server binaries, you have to make sure the start script finds the correct ones. Open that file in your favourite text editor and do a quick find and replace.
  2. Upvote
    Virtue reacted to Ind 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
  3. Upvote
    Virtue reacted to malufett in Introducing Hercules Renewal Challenge   
    Hercules Renewal Updates
     
    Ladies and Gentlemen Hercules Development Team Proudly present you Official Ragnarok Renewal Mechanics/Systems that is now available in Hercules....
     
     
    What Renewal updates do we have?
     
    RE PHYSICAL ATK SYSTEM
    -RE EDP support.
    -Mob ATK support
    -RE DEF reduction support
    NOTE:It is functional however there are still some missing piece that needs to be discovered
     
    RE MAGICAL ATK SYSTEM
    -Mob MATK support
    -RE MDEF support
    NOTE:It is functional however there are still some missing piece that needs to be discovered
     
    RE CASTING SYSTEM
    -Fully functional casting formula derived/based from kRO
    -Skill bonuses support
     
    RE ASPD SYSTEM
    -Full support for skill bonuses
    -Support for item bonuses
     
    RE STATUS SYSTEM
    -Accurate batk, hit, flee, def, mdef & etc formula for MOBS and PC
     
    RE SKILLS
    -Such as CR_ACIDDEMONSTRATION, ASC_BREAKER and etc.
    -3rd jobs skills
    NOTE:This is huge but I can say we already have almost half of it
     
    2013 kRO Updates
    we already have some of the new skills implemented
    GC_DARKCROW RA_UNLIMIT GN_ILLUSIONDOPING RK_DRAGONBREATH_WATER RK_LUXANIMA NC_MAGMA_ERUPTION WM_FRIGG_SONG SO_ELEMENTAL_SHIELD SR_FLASHCOMBO SC_ESCAPE AB_OFFERTORIUM WL_TELEKINESIS_INTENSE LG_KINGS_GRACE ALL_FULL_THROTTLE And a lot lot lot more to be added...
     
     
    And now we challenge you to compare our current system to official servers and we guarantee a good satisfaction but PLLEEASE if you find bugs, discrepancy and other anomaly just drop by our  Bug Tracker and we will immediately take appropriate action to serve you most..
     
    commit
     
    SPECIAL THANKS!
    To Awesome Yommy for the AWESOME support, resources, methods and techniques. To Rytech for the KG/OB skill info To Kyeme, Mecheiru, Angezerous & others for RE info and tips And lastly to you as a member of Hercules
  4. Upvote
    Virtue reacted to Mumbles in Instant Third-Class Jobs   
    Utility: Instant Third-Class Jobs
    As per spectator's request: http://herc.ws/board/topic/882-rinstant-job-changer/
     
    Description:
    Allows player to choose a third-class job upon initial login; if the player fails to choose a class for any reason, (s)he will be prompted again upon next login.
     
    Download:
    https://github.com/datmumbles/Scripts/raw/master/util/thirds.txt
  5. Upvote
    Virtue reacted to Ind in Memory Slasher !!" - May 30 Patch   
    Hercules casts "Memory Slasher !!" - May 30 Patch
    Memory Slasher !!
    Regardless all the fancy features in it, this patch's greatest achievement is smart, clever employment of memory, by looking at our memory usage wisely we've been able to reduce map-server's memory (RAM) usage by more than 2/3, about 183MB of RAM were dropped, while maintaining Hercules outstanding record on performance improvement. Beyond the memory usage drop there is also a significant processing speed improvement which can be noticed during boot, map cache loading which used to account for most of the map-servers boot time no longer exists, its gone, dead, fini, boom! it was replaced by a smart map cache handler that loads its data only when a map is necessary (the data is then kept until shut down), this logic also makes map-server's shut down process a hell lot faster.
     
    Instance Rework
    As suggested by the community, this wasnt supposed to be bundled with this commit but the memory usage improvements required me to modify how instances were stored, so I re-wrote part of it to fit the suggestion as well.
    Instance Functionality/Feature Server may now create instances of any maps regardless of client-side edits, e.g. one can clone prontera and call it "mymapname" (as is best described in the *instance_attachmap script command note) Instances may now be available in 4 distinct ways (as is best described in *instance_create script command note), by nobody (server type instance, to be used with special map names), by a sole character, by a party, or by a guild Script Command Changes *instance_create 2nd param is now called owner_id instead of party_id, and it got a 3rd optional param that defines what kind of owner id it is (when not provided, assumes party_id, for backwards compatibility), available options are (IOT_ stands for INSTANCE OWNER TYPE) IOT_NONE (0), IOT_CHAR (1), IOT_PARTY (2) and IOT_GUILD (3). *instance_destroy no longer autodetects instance id from party id *instance_attachmap now supports a 4th, optional, param, "<new map name>", it will allow you to specify a entirely new map name for the instance (without the need of client-side edits). This option can be best employed when used on a instance of <owner_type> IOT_NONE *instance_detachmap no longer autodetects instance id from party id *instance_id no longer supports any param *instance_set_timeout no longer autodetects instance id from party id *instance_announce no longer autodetects instance id from party id, and to tell it to autodetect from the attached script you must set instance_id param as -1 as opposed to 0 *instance_npcname no longer autodetects instance id from party id *has_instance no longer autodetects instance from party, however it now checks if attached player possesses a instance with same map as has_instance(<param>) checks for *instance_warpall no longer autodetects instance from party Other ChangesInstance IDs (valid ones) are now always >= 0 as opposed to > 0 (update your scripts!) Battlegrounds Queue
    As suggested by the community, most of its features were added in this patch, we were unable to finish it though because we lacked some information, we've put our questions in this topic, once our questions are answered we should be able to finish it in a matter of minutes (all the heavy lifting was done in this patch).
    Arenas They're easily configurable in the new conf/battlegrounds.conf file, it possible to add more arenas by editing the client's lua files/entryqueue/entryqueuelist.lua file Configuration Sample arenas: ({    name: "Tierra Gorge" //must match the name in client files    event: "Tierra_BG2::OnPlayerListReady"    minLevel: 80    maxLevel: 150    reward: {/* amount of badges awarded on each case */        win: 3        loss: 1        draw: 1    }    minPlayers: 6 /* minimum amount of players to start */    maxPlayers: 60 /* maximum amount of players */    minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */    delay_var: "Tierra_BG_Tick" /* npc variable name that will store the delay for this match */    maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */},{    name: "KVM (Level 59 and below)" //must match the name in client files    event: "KvM03_BG::OnPlayerListReady"    minLevel: 1    maxLevel: 59    reward: {/* amount of badges awarded on each case */        win: 1        loss: 0        draw: 0    }    minPlayers: 4 /* minimum amount of players to start */    maxPlayers: 60 /* maximum amount of players */    minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */    delay_var: "KVM_BG_Tick" /* npc variable name that will store the delay for this match */    maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */}) QueueWe wanted to make the queue as easy to play with as possible, so we've created a whole new set of script commands designed with this purpose. These commands make it easy to create and control queues for anything, games, events, quests, and of course in this case, the battleground's queue. Queue - Script Commands *queue()creates a new queue instance, returns created queue id set .@id,queue(); *queuesize(<queue_id>)returns the amount of entries in queue instance of <queue_id>. set .@length,queuesize(.@queue_id); *queueadd(<queue_id>,<var_id>)adds <var_id> to queue of <queue_id>, returns 1 if <var_id> is already present in the queue, 0 otherwise. queueadd(.@queue_id,.@var_id); *queueremove(<queue_id>,<var_id>)removes <var_id> from queue of <queue_id>, returns 1 if <var_id> is not present in the queue, 0 otherwise. queueremove(.@queue_id,.@var_id); *queueopt(<queue_id>,<optionType>,{Optional <option val>})modifies <queue_id>'s <optionType>, when <option val> is not present, <optionType> is removed from <queue_id>, when present it modifies <queue_id>'s <optionType> with the new <option val> value.
    Currently 3 options are available, HQO_OnDeath (0), HQO_OnLogout (1), HQO_OnMapChange (2) (the constant names are not final). queueopt(.@queue_id,0,"MyNPC::MyOnQueueMemberDeathEventName");It allows you to hook npc events to be triggered by specific actions that may happen to a player in the queue (when the queue in question is used for account ids) *queuedel(<queue_id>)deletes <queue_id> returns 1 when <queue_id> is not found, 0 otherwise. queuedel(.@queue_id); *queueiterator(<queue_id>)creates a new queue iterator instance, a queue iterator is not a reference to a queue's actual members, it copies the queues members when initialized, this way you can loop through them even if you remove them from the queue set .@it,queueiterator(.@queue_id); *qicheck(<queue_iterator_id>)checks whether there is a next member in the iterator's queue, 1 when it does, 0 otherwise. qicheck(.@queue_iterator_id); *qiget(<queue_iterator_id>)obtains the next member in the iterator's queue, returns the next member's id or 0 when it doesnt exist. for( set .@elem,qiget(.@queue_iterator_id); qicheck(.@queue_iterator_id); set .@elem,qiget(.@queue_iterator_id) ) *qiclear(<queue_iterator_id>)deletes a queue iterator from memory, returns 1 when it fails, 0 otherwise. qiclear(.@queue_iterator_id) Sample Usage: /* say create a queue */set .@id,queue();queueadd(.@id,getcharid(3));/* ... add as many entries ... (no limit) */if( queuesize(.@id) == 999 ) {    /* whatever */}/* anywhere in the code */set .@it,queueiterator(.@id);for( set .@elem,qiget(.@it); qicheck(.@it); set .@elem,qiget(.@it) ) {    //do anything e.g.    /* attachrid .@elem; */    /* mes "ID:"+.@elem; */}qiclear(.@it); Special Thanks To
    Yommy for providing me with a hell lot of data for the BG Queue, wouldn't have been able to get it to this point without his help. Rosiel for his suggestion on the instance feature Xgear for his help with the network timeout bug mkbu95 for pinpointing the script parser bug All of Hercules Staff for their ideas/suggestions/criticism and support, and for keeping me sane during this memory slashing madness The Future~! This patch sure has taken me away from my usual bug-squashing mode, I'll be going back to my over-10-bug-fix-a-day schedule. We have quite a hell lot planned so this might not last long, make sure to keep an eye on your bug reports for I sure will be replying to them. Link~u! Commit 1 Commit 2 Commit 3
  6. Upvote
    Virtue reacted to malufett in Renewal Attack?   
    ok..hahaha..it's already so far so good..and ready for commit and just adding some skill updates that has renewal changes I'll just add it after Ind mega update on the emu and after my "construction work-summer job" and that is reason why I can't stay too long to do computer works cause I'm very exhausted...
     
    hahaha..relax we will be there soon...
     
     

  7. Upvote
    Virtue reacted to malufett in Another ASPD inquiry   
    @status.c
    if( bl->type&BL_PC )  { amotion = status_base_amotion_pc(sd,status);#ifndef RENEWAL_ASPD status->aspd_rate = status_calc_aspd_rate(bl, sc, b_status->aspd_rate); if(status->aspd_rate != 1000)   amotion = amotion*status->aspd_rate/1000;#else // aspd = baseaspd + floor(sqrt((agi^2/2) + (dex^2/5))/4 + (potskillbonus*agi/200)) amotion -= (int)(sqrt( (pow(status->agi, 2) / 2) + (pow(status->dex, 2) / 5) ) / 4 + ((float)status_calc_aspd(bl, sc, 1) * status->agi / 200)) * 10; if( (status_calc_aspd(bl, sc, 2) + status->aspd_rate2) != 0 ) // RE ASPD percertage modifier   amotion -= (( amotion - ((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd) ) * (status_calc_aspd(bl, sc, 2) + status->aspd_rate2) / 10 + 5) / 10; if(status->aspd_rate != 1000) // absolute percentage modifier   amotion = ( 200 - (200-amotion/10) * status->aspd_rate / 1000 ) * 10;#endif amotion = status_calc_fix_aspd(bl, sc, amotion); status->amotion = cap_value(amotion,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000); status->adelay = 2*status->amotion;  }  else for weapon penalty reduction modify your job_db1.txt
     

  8. Upvote
    Virtue reacted to Jguy in rAthena devs/staff/members on Hercules   
    Hello,
     
    While we do not mind that rAthena developers, staff members and regular members register an account, post or send PM's on our forums, we do not take kindly to 'rAthena is better because x y and z' posts, or anything promoting rAthena as a superior emulator because of such and such. There is no such post on rAthena made by a Hercules staff member about Hercules and we intend to keep it that way, we would appreciate the same respect.
     
    Those who do not follow this simple clause listed above will have their post(s) deleted and/or hidden from view. Repeat offenders will be suspended from our forum with no further warnings or post manipulation.
     
    We do not appreciate, nor welcome drama here. While criticism is welcome in the form of 'why doesn't Hercules have such and such a feature', drama and belittling a project (hercules or not) will not be tolerated. This is a collaboration, not a drama infested 12 year old's contest.
     
    Thank you.
  9. Upvote
    Virtue reacted to Ancyker in Triton Control Panel 2 (Alpha)   
    Triton Control Panel 2
    Triton is back! The second version of Triton (formerly Sereon) is currently under development. The project is currently labeled as alpha, but it is almost to the beta stage. As such I'm inviting all to try it. The control panel currently features basic functionality. You are able to create accounts, log in, change your password and email address, manage your characters and see who is online.
     
    Official Website: http://triton.sereon.net/
    Demo: http://triton.sereon.net/demo/ (The demo is frequently used to test client skins and add-on functionality. It may not always function properly.)
    Live Demo: http://aesiro.com/
    Purchase: Click Here (For a limited time use coupon code "Hercules" for 25% off your first year)
     
    Features
    [*]Written in PHP
    [*]Extensible via modules, hooks and plugins.
    [*]Content Management System¹
    [*]Smarty enabled skinning system makes customizing the layout super easy.
    [*]Most features enabled through modules
    [*]Account Management
    [*]War of Emperium / Guild Info
    [*]Who's Online
    [*]IPB Integration¹
    [*]Dynamically Generated Guild Emblems
    [*]Dynamically Generated Character Avatars³
    [*]Payment System³: Items³, services³, levels³, character renames³ and more.
    [*]Payment APIs³: PayPal², Skrill² (Moneybookers), Google Checkout¹, Amazon Payments¹, Authorize.net¹ and more.
    [*]Vote for Points³

    ¹ Not yet implemented or still a work in progress.
    ² Implemented but not yet public.
    ³ Feature is not free.
     
    Requirements
    [*]PHP (latest version recommended, 5.4.11 at the time of this post but should work with older versions)
    [*]Apache (Note: .htaccess must be enabled or you must configure all the options from them in httpd.conf)
    [*]Smarty
    [*]phpmailer (Instructions below)
    [*]Operating system should not matter
    [*]Officially Supported Athenas: Hercules, rAthena, eAthena

    Installation
    [*]Download Triton Control Panel from the website.
    [*]Upload it to your web server or if your server is local place it in your web directory.
    [*]Create a file called import.php in the sites root directory and place the following in it:
    <?php?> [*]Open config.php and review all the settings available. Any settings you want to change place into import.php. This will make upgrading the CP much easier.
    [*](*nix) Run the following from the sites root directory:
    chmod -R 777 db/chmod -R 777 scratch/chmod -R 777 skins/default/cache/chmod -R 777 skins/default/templates_c/ [*]Create a folder called phpmailer in the website root directory and place phpmailer in it.
    [*]Verify the setup by visiting the URL.
    [*]Create a copy of skins/default/ -- name the new folder whatever you like.
    [*]Configure the new skin by modifying the $config['skin'] variable. Remember to place your modifications in import.php.
    [*]Modify the skin to your liking. .tpl files are plain text template files. You can open them with notepad. See the smarty documentation for more information on skinning.

    You can reply here with feature requests, questions, comments and other suggestions.
×
×
  • Create New...

Important Information

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