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

  • #008337

  • 0 - None Assigned

  • Fixed

Issue Confirmations

  • Yes (1)No (0)
Photo

Ankle Snare

Posted by Frost on 13 September 2014 - 11:33 PM

Ankle snare is not working.. sometimes it traps the player some times its not.. im using pre-re configuration..

I checked mine and it's working fine I don't get trapped. tested with mob also and it traps fine as it used to be.

I checked mine and it's working fine I don't get trapped. tested with mob also and it traps fine as it used to be.


try it in pvp or gvg

true sometimes it traps the user and sometimes not.

Officially, if Knockback is not possible (MVP/WoE) then the trapped person will still end up moving to the target cell (and activate all traps on the path). Target is unable to move again until the given status change expires, though. Maybe that's what you are experiencing?

Other than I'd say it should always work.


Edit: If it's bugged here, maybe it's related to:

case SC_ANKLESNARE:
if(st->mode&MD_BOSS) // Lasts 5 times less on bosses
tick /= 5;
sc_def = st->agi*50;
break;

But this should only affect duration because of a flag...

//Natural resistance
if (!(flag&8)) {

Hmmmm...

That's strange, the flag was changed!

eAthena:
/*==========================================
* Starts a status change.
* 'type' = type, 'val1~4' depend on the type.
* 'rate' = base success rate. 10000 = 100%
* 'tick' is base duration
* 'flag':
* &1: Cannot be avoided (it has to start)
* &2: Tick should not be reduced (by vit, luk, lv, etc)
* &4: sc_data loaded, no value has to be altered.
* &8: rate should not be reduced
*------------------------------------------*/


Hercules:
/*==========================================
* Starts a status change.
* 'type' = type, 'val1~4' depend on the type.
* 'rate' = base success rate. 10000 = 100%
* 'tick' is base duration
* 'flag':
* &1: Cannot be avoided (it has to start)
* &2: Tick should not be reduced (by vit, luk, lv, etc)
* &4: sc_data loaded, no value has to be altered.
* &8: SI will not be sent to the client
*------------------------------------------*/

Someone changed the meaning of the flag? o.o

Edited by Playtester, 14 September 2014 - 09:25 AM.


Officially, if Knockback is not possible (MVP/WoE) then the trapped person will still end up moving to the target cell (and activate all traps on the path). Target is unable to move again until the given status change expires, though. Maybe that's what you are experiencing?

Other than I'd say it should always work.


Edit: If it's bugged here, maybe it's related to:

case SC_ANKLESNARE:
if(st->mode&MD_BOSS) // Lasts 5 times less on bosses
tick /= 5;
sc_def = st->agi*50;
break;

But this should only affect duration because of a flag...

//Natural resistance
if (!(flag&8)) {

Hmmmm...

That's strange, the flag was changed!

eAthena:
/*==========================================
* Starts a status change.
* 'type' = type, 'val1~4' depend on the type.
* 'rate' = base success rate. 10000 = 100%
* 'tick' is base duration
* 'flag':
* &1: Cannot be avoided (it has to start)
* &2: Tick should not be reduced (by vit, luk, lv, etc)
* &4: sc_data loaded, no value has to be altered.
* &8: rate should not be reduced
*------------------------------------------*/


Hercules:
/*==========================================
* Starts a status change.
* 'type' = type, 'val1~4' depend on the type.
* 'rate' = base success rate. 10000 = 100%
* 'tick' is base duration
* 'flag':
* &1: Cannot be avoided (it has to start)
* &2: Tick should not be reduced (by vit, luk, lv, etc)
* &4: sc_data loaded, no value has to be altered.
* &8: SI will not be sent to the client
*------------------------------------------*/

Someone changed the meaning of the flag? o.o


I guess the bug appears in this commit..

https://github.com/H...82e268e04303ca4

Yep, looks like it.


A quick fix would be to change

sc_def = st->agi*50;

to:

tick_def = st->agi*50;

But to fix on emulator one should check through that whole commit and see if the old "unavoidable" flag is really not needed. Well, theoretically you don't need it because resistance is based on the type of status change and not on the skill used, I guess! But the person who changed it probably overlooked that the old flag is still used in get_sc_def and that sometimes sc_def is used instead of tick_def, relying on said flag.

changed status to: Fixed