Issue Information
-
#008217
-
0 - None Assigned
-
Fixed
Issue Confirmations
-
Yes (3)No (0)
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: http://rathena.org/b...ges-from-items/
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: http://rathena.org/b...ges-from-items/
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.
Edited by Kaiser, 14 July 2014 - 03:58 PM.
Bump, anyone else able to confirm this? Thanks.
Bump~
Bump
For a quick workaround I used this:
Replace in script.c
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.
Replace in script.c
if( bl ) status->change_start(NULL, bl, type, 10000, val1, 0, 0, val4, tick, 2);with
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); } }This is under BUILDIN(sc_start).
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.
Awesome, thanks for that, seems to work out well.
seems to work! Thanks!
changed status to: Started
changed status to: Fixed