Jump to content

  •  

Bug Tracker Migration

June 3rd
Good news everyone! The staff has decided that it is time to slowly kill off this Bug Tracker. We will begin the process of slowly migrating from this Bug Tracker over to our Github Issues which can be found here: https://github.com/HerculesWS/Hercules/issues

Over the next couple of days, I will be closing off any opportunity to create new reports. However, I still will keep the opportunity to reply to existing Bug Reports. Doing this will allow us to slowly fix any bug reports we have listed here so that we can easily migrate over to our Issue Tracker.

Update - June 7th 2015: Creating new bug posts has been disabled. Please use our https://github.com/HerculesWS/Hercules/issues tracker to post bugs. Users are still able to reply to existing bug posts.

- Administration

Issue Information

  • #006321

  • 0 - None Assigned

  • Fixed

Issue Confirmations

  • Yes (2)No (1)
Photo

Rune Knight Hundred Spear Overpower

Posted by Hercules Bot on 25 July 2012 - 05:19 PM

Originally posted by asdmaster
Today a Rune Knight at my server got the Ur's set  and tried his hundred spear... the result was very strange, about 80k damage with the skill (which is highly spammable), then i asked him to change to a heavier weapon, he changed to a hunting spear, and did about 32k damage.... my question is, is this normal? it really doesn't seem so... could someone give me an answer please?

Originally posted by Rage
what is Ur's Set? can you post your item_db of that Set?

Originally posted by InfectedX
Yeah, Extreme damage with this set and Hundred Spear... 1 of my players has reported this.


2475,Urj_Greaves,Urj Greaves,5,20,,900,,32,,1,0x00000080,8,2,64,,100,1,0,{ bonus bMaxSP,40; if(getequiprefinerycnt(EQI_SHOES)>7) bonus bMaxHPRate,getequiprefinerycnt(EQI_SHOES)-7; },{},{}


2574,Urj_Manteau,Urj Manteau,5,20,,600,,20,,0,0x00000080,8,2,4,,100,1,0,{ bonus bMaxHPRate,2; bonus2 bSubEle,Ele_Neutral,10; },{},{}


2883,Urj_Seal,Urj Seal,5,20,,200,,4,,1,0x00000080,8,2,136,,100,0,0,{ bonus bMaxHPrate,2; },{},{}


15036,Urj_Plate,Urj Plate,5,20,,3000,,110,,0,0x00000080,8,2,16,,100,1,0,{ bonus bMdef,10; bonus bMaxHPRate,getequiprefinerycnt(EQI_ARMOR); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubEle,Ele_Neutral,5; },{},{}

Edited by InfectedX, 26 July 2012 - 03:16 AM.


Originally posted by MarkZD
It may be because of this part:
skillratio += spearwbd;

IN CS the weight bonus is add to atk_add:
ATK_ADD(weight * skill_lv)

So, following CS's logic we'd add spearwbd to atk_add:

ATK_ADD(spearwbd);

It might also be because of RE-ATK/DEF not implemented yet.

Edited by MarkZD, 26 July 2012 - 07:12 AM.


Originally posted by InfectedX
Hmmm, could be, but anyway i want to see an oficial answer, at least from a core developer or script developer...


lol nvm xD


Why it is so diferent?

Edited by InfectedX, 26 July 2012 - 07:24 AM.


Originally posted by MarkZD
About above question:
I didn't notice maluffet have changed(optimized) HS formula.
http://sourceforge.n...changeset/16487

It's the reason of beeing different, but not "so" different.


10000 - sd->inventory_data[index]->weight;
is similar to
1000 - sd->inventory_data[index]->weight / 10;

since weight is beeing divided by 10, we can remove it and replace with:
1000 * 10 - sd->inventory_data[index]->weight;
which is the same as:
10000 - sd->inventory_data[index]->weight;

Edited by MarkZD, 26 July 2012 - 07:44 AM.


Originally posted by InfectedX
but anyway i think that is where the damage becomes over powered for this skill... should it be like 1000 then? because if you see:

1000 - sd->inventory_data[index]->weight / 10;

The / is dividing the 1000, so if it has changed to 10000 it must be divided to 10, doesn't it?

Originally posted by MarkZD

but anyway i think that is where the damage becomes over powered for this skill... should it be like 1000 then? because if you see: 1000 - sd->inventory_data[index]->weight / 10;The / is dividing the 1000, so if it has changed to 10000 it must be divided to 10, doesn't it?


You're right because before the max would be 1000 when weapon weight is zero, but now it's over nine thousand(10000).

I didn't see it, maybe because it's time to sleep.

skillratio += max(10000 - sd->inventory_data[index]->weight, 0);

Should be:

skillratio += max(1000 - sd->inventory_data[index]->weight/10, 0);

Edited by MarkZD, 26 July 2012 - 07:53 AM.


Originally posted by InfectedX
Check this out, i tested this with, all stats in 1, and this formula and the HS makes me a damage arround 23 - 24k per hit that makes a total of  = 115k - 120k... per HS casted.

So i decided to change the 10000 to 1000 and the damage goes down arround 4k - 5k per hit... and around 20k - 25k per HS casted... better than before....

so it should be like this... maybe?

case RK_HUNDREDSPEAR:
skillratio += 500 + (80 * skill_lv);
if( sd )
{
short index = sd->equip_index[EQI_HAND_R];
if( index >= 0 && sd->inventory_data[index]
&& sd->inventory_data[index]->type == IT_WEAPON )
skillratio += max(1000 - sd->inventory_data[index]->weight, 0);
skillratio += 50 * pc_checkskill(sd,LK_SPIRALPIERCE);
} // (1 + [(Caster’s Base Level - 100) / 200])
skillratio = skillratio * (100 + (status_get_lv(src)-100) / 2) / 100;
break;


Edited by InfectedX, 26 July 2012 - 08:02 AM.


Originally posted by GM Takumirai
the formula of HS is

<br />Hundred Spear<br />Variable Cast Time: (1.1 - 0.1 * Skill Level) seconds<br />Fixed Cast Time: None<br />Skill re-use Delay: 3 seconds<br />Global Skill Delay: 0.5 second<br />Spear Boomerang Activation Chance: (10 + 3 * Skill Level) %<br />Damage = ATK [{(600 + (Skill Level x 80) + (1000 - Weight of the Spear)} x (1 + [(Caster’s Base Level - 100) / 200])] %<br />*** If the spear’s weight is over 1,000, it will be set to 1,000 in the calculation.<br />Bonus damage: (Clashing Spiral skill level x ATK 50%).<br />


base on http://rathena.org/b...ebalancing-kro/

Originally posted by malufett
oopps..sorry guys I forgot to negate one 0....Thank you guys for the keen analysis...:)
I'll commit later the fix...

Originally posted by InfectedX
So the formula i posted before is not only the closer to the iro's formula but also better than the rathena's has modified...  =/ unfortunately, i don't have idea if my formula is correct compared with yours taken from iro...

Originally posted by GM Takumirai
skillratio += max(1000 - sd->inventory_data[index]->weight/10, 0);

- he forgot to negate this part
thanks for the help infected and markzD
i always see infected and markZD helping with coding problem, if i only knew how to code src i will help also but i have no knowledge at all.. XD
- thanks malufett..

Edited by GM Takumirai, 26 July 2012 - 08:55 AM.


Originally posted by malufett
:)
suppose to be
skillratio += max(10000 - sd->inventory_data[index]->weight, 0) / 10;
or
skillratio += max(1000 - sd->inventory_data[index]->weight / 10, 0);

any will do...

Originally posted by InfectedX
xD no problem :P everybody helps as they can, don't worry, :P you will learn, only what you need is curiosity

Originally posted by InfectedX
lol?

skillratio += max(10000- sd->inventory_data[index]->weight,0)/10;

  This will crashes the server's compilation, so, i think is the 2nd one... but any way, i changed the 10000 to 1000 w/o changing the rest, xD and it gives a better result hahaha XD anyway, why you don't try this:

skillratio += max(1000 - sd->inventory_data[index]->weight, 0);


Edited by InfectedX, 26 July 2012 - 09:03 AM.


Originally posted by malufett
no it will not crash...and with your suggestion it will turn to negative.. :)

Originally posted by asdmaster
oh i see, the suggested formula from some posts above suggested dividing by 10 without putting the part of the formula before between "( )", but by putting the "( )" spears like gigantic spear which weights 2000 will not turn negative the ecuation, i see now.

Originally posted by malufett
Fixed @ [rev='16506']

Originally posted by MarkZD
Forget this post, I didn't check changeset very well.

Edited by MarkZD, 26 July 2012 - 09:34 PM.


Originally posted by asdmaster
This:

skillratio += max(10000 - sd->inventory_data[index]->weight, 0)


Is not this:

skillratio += max(1000 - sd->inventory_data[index]->weight / 10, 0)


nor this:

skillratio += max(10000 - sd->inventory_data[index]->weight, 0) / 10;




Pay attention to the formulas, they seem similar, nevertheles they give very different results.

I think maluffet's formula is to be the right one.