Issue information

Issue ID
#8217
Status
Fixed
Severity
None
Started
Xanthin
May 26, 2014 13:14
Last Post
Michi
Aug 30, 2014 8:34
Confirmation
Yes (3)
No (0)

Xanthin - May 26, 2014 13:14

1.

I was wrong on that part. If you use an item like Ice Cream, you CAN
resist the status change. The defense will be calculated with "self" as
source in this case. I'd fix it myself but I don't know in which class
the item scripts are handled.



How to test: On officials, if you have a Marc Card equipped, you will
never be frozen from eating Ice Creams. This is currently not working
here.





2.

Also, right now we use a strange workaround to determine the chance:



536,Ice_Cream,Ice Cream,0,150,,80,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal
rand(105,145),0; if(rand(1000)<250) sc_start SC_Freeze,10000,0;
},{},{}



Anybody knows how sc_start works here? LemonGrass told me it can never
be reduced, but is that true? You seem to be freeze immune if you are
undead, but marc card doesn't seem to work...



On officials it's more like:

"Condition BODYFreezing 10 25"

Which means "25% chance to freeze for 10 seconds" and that is reduced
just like any other freeze. For example a player with high MDEF might
only freeze every 8th time.



I'm also a little confused by other bonuses where the second number is
300, 600 or 1000. That would indicate that it's actually 1000=100%. But
if you test on iRO, Ice Cream's base chance really seems to be 25% and
not 2.5%. Strange.


quote: [url="http://rathena.org/board/tracker/issue-7664-small-error-in-status-changes-from-items/"]http://rathena.org/board/tracker/issue-7664-small-error-in-status-changes-from-items/[/url]

Kaiser - Jul 4, 2014 1:17

Bump~ It's still happening; Using Ice Cream with Marc equipped will freeze you, but not if you equip an Evil Druid (strange). It was previously working correctly, and then it stopped working properly sometime during rAthena, which I guess it continued in Hercules.

This post has been edited by Kaiser on Jul 14, 2014 15:58

Kaiser - Jul 14, 2014 16:10

Bump, anyone else able to confirm this? Thanks.

Kaiser - Aug 1, 2014 16:27

Bump~

Kaiser - Aug 18, 2014 12:53

Bump

Garr - Aug 19, 2014 8:44

For a quick workaround I used this:
Replace in [b]script.c[/b][code=auto:0] if( bl ) status->change_start(NULL, bl, type, 10000, val1, 0, 0, val4, tick, 2); [/code]
with[code=auto:0] if( bl ) { if (st->oid == npc->fake_nd->bl.id && SC_COMMON_MIN <= type && type <= SC_COMMON_MAX) { status->change_start(bl, bl, type, 10000, val1, 0, 0, val4, tick, 2); } else { status->change_start(NULL, bl, type, 10000, val1, 0, 0, val4, tick, 2); } } [/code]
This is under [b]BUILDIN(sc_start)[/b].
What it does is if this sc_start is called under fake NPC id (usually equipment/items) and is inside most used SC range, then it calls status change with player as source to avoid getting cut off as NPC called status change.

Kaiser - Aug 26, 2014 23:48

Awesome, thanks for that, seems to work out well.

Xanthin - Aug 29, 2014 8:04

seems to work! Thanks! :D

Michi - Aug 29, 2014 15:53

Fixed in: [url="https://github.com/HerculesWS/Hercules/commit/a06e53479131c25ce2343c431c688c57b3bfa2c0"]https://github.com/HerculesWS/Hercules/commit/a06e53479131c25ce2343c431c688c57b3bfa2c0[/url]