Jump to content

Singe Horizontal

Members
  • Posts

    15
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Singe Horizontal

  1. I need to make a clean gist again, I lost track on what prevented compiling with g++.
    Moreover the yml update broke a part of the mod, I'll be waiting a week more before updating to the new system.

    Sorry for the inconvenience and thanks for the report

    • Upvote 1
  2. A small awk program to be called from command line that generates a job_basepoints.yml for a desired level.
    For windows users, awk is available in cygwin or git bash.
    Change directory to the one where the file was downloaded and run the command :

    ./job_basepoints_re_gen.awk 200 > job_basepoints.yml

    It should produce a job_basepoints.yml file.


    https://gist.github.com/Singe-Horizontal/4c59ca0ee10cd21fd736101bec9e8cfa

    EDIT :
    Caution I have to put this tool in a halt, since the formula from irowiki doesn't reflect actual values after a certain level. I nevertheless let the sources if someone wants to rework the code for himself.

    • Like 2
  3. Good morning,

    For the last months I've been working on a mod that would allow deeper ai conditions.
    Here is how the config file looks like :
     

    - friendrecoverable: # arbitrary name tag
       - or:
         - friend sleep    
         - friend stone
         - friend stun
         - friend freeze
    
     - selfcellempty:
       - not self safetywall
       - not self pneuma
       - not self landprotector
       - not self icewall
      
     - friendcellempty:
       - not friend safetywall
       - not friend pneuma
       - not friend landprotector
       - not friend icewall

    Then you can add or modify lines in the usual mob_skill_db.yml file :

    1639,Kathryne [email protected]_SAFETYWALL,anytarget,12,10,3000,0,10000,yes,self,expanded,selfcellempty,,,,,,, #use tag "expanded" then the name
    1639,Kathryne [email protected]_SAFETYWALL,anytarget,12,10,3000,0,10000,yes,friend,expanded,friendcellempty,,,,,,,
    1637,Margaretha [email protected]_STRECOVERY,any,72,1,10000,1000,10000,no,friend,expanded,friendrecoverable,,,,,,,

    I also added 2 new modes to complement these new behaviors :

       Modes:
          SkillOnly: true
          PcSkillBehavior: true  

    SkillOnly will disable basic attacks and PcSkillBehavior will  modify its skills' ranged/melee flag depending on range and not distance, as players' behave.

    The full mod :

    https://github.com/Singe-Horizontal/rathena/tree/feature/expanded_ai_full_mod

    Condition module standalone :

    https://github.com/Singe-Horizontal/rathena/tree/feature/expanded_ai_conditions

    AI mode standalone :

    https://github.com/Singe-Horizontal/rathena/tree/feature/additional_ai_modes

    Quick design video :

    It is my first c++ project mod and contribution with git, I gave all the care I could but unoticed things may have slipped out.

    • Upvote 3
    • Love 5
    • MVP 3
  4. Hi,
    On the servers I played on for the last couple years, I noticed that the effect of Hell poodle cards and such, that is all the items that give bonus to heal rate, were quite nerfed. The 100% bonus heal was neither multiplied to the bonus given by vitality and Increase Hp Recovery.

    I made some research in old commits, and I found something on pc.cpp, on the function pc_itemheal().
    On 29 Jun 2017, a commit was made with one objective of "Clean[ing] up overall pc_itemheal function calculations.", which made that change on line 8290

    -		bonus += bonus*pc_get_itemgroup_bonus(sd, itemid)/100;
    +		bonus += pc_get_itemgroup_bonus(sd, itemid);

    This is what explained the change in the behavior of the bonus items, and is more than just cleaning code.

    Here is the commit :
    https://github.com/rathena/rathena/commit/5729a3dedb6aca0d4cced23e242462d4970ffd3b


    Then, the code was refactored, propagating the new behavior 

    -		for(i = 0; i < ARRAYLENGTH(sd->itemhealrate) && sd->itemhealrate[i].nameid; i++) {
    -			if (sd->itemhealrate[i].nameid == itemid) {
    -				bonus += sd->itemhealrate[i].rate;
    +		for(const auto &it : sd->itemhealrate) {
    +			if (it.id == itemid) {
    +				bonus += it.val;

    https://github.com/rathena/rathena/commit/c71ef92fb0aa50119484d5576853eb0c79baa397#diff-49937e616f59c440ac7bc7d0d5ec2237
     

    Shouldn't the correct behavior be

    bonus+= bonus*it.val/100

    ?

    EDIT : To give an example, with 100 vit and increase hp recovery 10, one meat gives 280~400.
    Now with x2 hell poodles, with the old formula you used to heal for 840,00 ~1 200,00, now it's 420~600, which is disappointing considering the investment and the weight of a meat (15)

     

×
×
  • Create New...

Important Information

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