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

  • #006157

  • 2 - Fair

  • Fixed

Issue Confirmations

  • Yes (1)No (0)
Photo

Eswoo fix

Posted by Hercules Bot on 03 July 2012 - 12:20 AM

Originally posted by Daegaladh
To make it work as it does on iRO:
(A little ugly code, but functional, sorry :S, this part of the Es- skills code is a little mess XD)


Index: skill.c
===================================================================
--- skill.c (revision 16366)
+++ skill.c (working copy)
@@ -6987,10 +6987,6 @@
  break;

  case SL_SWOO:
- if (tsce) {
- sc_start(src,SC_STUN,100,skilllv,10000);
- break;
- }
  case SL_SKA: // [marquis007]
  case SL_SKE:
  if (sd && !battle_config.allow_es_magic_pc && bl->type != BL_MOB) {
@@ -6998,6 +6994,12 @@
  status_change_start(src,SC_STUN,10000,skilllv,0,0,0,500,10);
  break;
  }
+ if (skillid == SL_SWOO && tsce) {
+ clif_skill_fail(sd,skillid,0,0);
+ status_change_start(src,SC_STUN,10000,skilllv,0,0,0,10000,10);
+ status_change_end(bl, SC_SWOO, -1);
+ break;
+ }
  clif_skill_nodamage(src,bl,skillid,skilllv,sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
  if (skillid == SL_SKE)
  sc_start(src,SC_SMA,100,skilllv,skill_get_time(SL_SMA,skilllv));

Originally posted by Mysterious
How is it supposed to work on iRO?

Originally posted by Daegaladh
If you use the skill on a mob already shrunken, it fails (shows a fail message), you got stunned for 10 seconds, and Eswoo status is canceled.

Edited by Daegaladh, 03 July 2012 - 12:54 PM.


Originally posted by MarkZD
I believe it's equivalent to your change.

  case SL_SWOO:
if (tsce) {
+if (sd)
+ clif_skill_fail(sd,skillid,0,0);
sc_start(src,SC_STUN,100,skilllv,10000);
+ status_change_end(bl, SC_SWOO, -1);
-break;
}
+break;

Edited by MarkZD, 03 July 2012 - 12:41 PM.


Originally posted by Daegaladh
It should be
status_change_start(src,SC_STUN,10000,skilllv,0,0,0,10000,10);

instead of the sc_start

And it should check if target is a mob first.

Btw, I tested on lastest svn and when I try to use Eswoo, Eska or Eske on a player, it does nothing. It's supposed they have to stun me :S

Originally posted by MarkZD
Understood, so it'd be like
  case SL_SWOO:
-if (tsce) {
+if (tsce && !battle_config.allow_es_magic_pc && bl->type != BL_MOB) {
+if(sd)
+ clif_skill_fail(sd,skillid,0,0);
sc_start(src,SC_STUN,100,skilllv,10000);
+ status_change_end(bl, SC_SWOO, -1);
-break;
}
+break;

Edited by MarkZD, 03 July 2012 - 12:49 PM.


Originally posted by Daegaladh
No, no, the mob check should be the same as Eska and Eske (Stun for 0.5s)
As I posted on the first post, this is the correct order:
1-Check for target, if there's no target or target isn't a mob, you got stunned for 0.5s
2-If the mob is already shrunken, you got stunned for 10s and effect on the mob is canceled

  case SL_SWOO:
  case SL_SKA: // [marquis007]
  case SL_SKE:
  if (sd && !battle_config.allow_es_magic_pc && bl->type != BL_MOB) {
  status_change_start(src,SC_STUN,10000,skilllv,0,0,0,500,10);
  break;
  }
  if (skillid == SL_SWOO && tsce) {
  clif_skill_fail(sd,skillid,0,0);
  status_change_start(src,SC_STUN,10000,skilllv,0,0,0,10000,10);
  status_change_end(bl, SC_SWOO, -1);
  break;
  }

Anyway I think the whole code of the Es- skills could be improved a little...

Edited by Daegaladh, 03 July 2012 - 12:54 PM.


Originally posted by MarkZD
I also updated the break, otherwise the if inside SL_SKE would execute and overwrite the first change.

In this case I think sc_start can be used in both conditions instead of status_change_start.

Edited by MarkZD, 03 July 2012 - 12:46 PM.


Originally posted by MarkZD

No, no, the mob check should be the same as Eska and Eske (Stun for 0.5s)


It's because I didn't see this info on iRO, so I just put the shrunken check. ;D
But if you tested it on original, so you're right.

Edited by MarkZD, 03 July 2012 - 12:53 PM.


Originally posted by Daegaladh
Try to use it on a player on iRO XD

Also from lastest lua files:

"Effect:^777777 Makes the monster small, greatly reducing their walking speed, but the size attribute is not affected. If this is used on a Boss monster, this skill only lasts 1/5 of normal time.", "If you use Eswoo on a monster that is already under this effect, it will cause you to be stunned for 10 seconds (reduced by VIT).", "\"Es\" type magic can only be used on monsters. If it is used on a player character, nothing happens and the caster will be stunned for 0.5 sec (not reduced by VIT). ^000000",


Edit: Hum, when you use on a monster the stun time can be reduced by VIT, so the flag should be 8 instead of 10, my fault.

Then the code should be:

  case SL_SWOO:
  case SL_SKA: // [marquis007]
  case SL_SKE:
  if (sd && !battle_config.allow_es_magic_pc && bl->type != BL_MOB) {
  status_change_start(src,SC_STUN,10000,skilllv,0,0,0,500,10);
  break;
  }
  if (skillid == SL_SWOO && tsce) {
  clif_skill_fail(sd,skillid,0,0);
  status_change_start(src,SC_STUN,10000,skilllv,0,0,0,10000,8);
  status_change_end(bl, SC_SWOO, -1);
  break;
  }

Edited by Daegaladh, 03 July 2012 - 01:00 PM.


Originally posted by MarkZD
If player could get shrunked it'd never get into second if condition.

Also, there should be a sd check before sending the clif_skill_fail as it could be a mob casting, and the first sd should be removed(I think).

Edited by MarkZD, 03 July 2012 - 01:25 PM.


Originally posted by Daegaladh
Hum, yeah, I was thinking on official servers, where you cannot shrink a player... but here we have the battle_config.allow_es_magic_pc option, so you're right.

Edited by Daegaladh, 03 July 2012 - 01:20 PM.


Originally posted by MarkZD

Also, there should be a sd check before sending the clif_skill_fail as it could be a mob casting, and the first sd should be removed(I think).

Apparently it's not needed, well, it's already solved how it's supposed to work, just wait devs implementing.

Originally posted by MarkZD
Fixed at: 17008

moved issue from Skills