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)