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

  • #007300

  • 0 - None Assigned

  • Fixed

Issue Confirmations

  • Yes (3)No (0)
Photo

Asura Strike

Posted by nyxfatalis on 29 May 2013 - 01:18 PM

I found some bugs on my server.

Whenever i equip a 4slotted weapon with 2 turtle general and 2 hydra cards.
my asura strike skill misses. as in no damage at all.

255 str. 255 dex.


I switch to a 4 slotted weapon with 2 stormy knight and 2 turtle general.
then my asura strike is back to normal. it has damage now.

The way it is right now, Asura Strike has an official cap that limits the amount of damage it'll do; this was put in place so that the damage doesn't overflow (technical limitation). You'd need a rather large amount of SP and ATK to hit this cap, but it'd be achievable on a server with a high stat cap.

As far as I know, there is not an official damage cap for Asura, so a reworking of the formula to increase the cap and work better with renewal stats would probably do well. The edit below would suit most servers' needs and still leave a [much larger] cap for overflow protection.

src/map/battle.c
           	 case MO_EXTREMITYFIST:
-                    {    //Overflow check. [Skotlex]
-                        unsigned int ratio = skillratio + 100*(8 + sstatus->sp/10);
-                        //You'd need something like 6K SP to reach this max, so should be fine for most purposes.
-                        if (ratio > 60000) ratio = 60000; //We leave some room here in case skillratio gets further increased.
-                        skillratio = (unsigned short)ratio;
-                    }
+                    skillratio += 100*(8 + sstatus->sp/10) - 100;
+                    skillratio = min(500000,skillratio); //We stop at roughly 50k SP for overflow protection
                    break;




You can go ahead and make this edit to your own files, or wait for Hercules to send over an update.

Edited by Via, 29 May 2013 - 09:08 PM.


The way it is right now, Asura Strike has an official cap that limits the amount of damage it'll do; this was put in place so that the damage doesn't overflow (technical limitation). You'd need a rather large amount of SP and ATK to hit this cap, but it'd be achievable on a server with a high stat cap.

As far as I know, there is not an official damage cap for Asura, so a reworking of the formula to increase the cap and work better with renewal stats would probably do well. The edit below would suit most servers' needs and still leave a [much larger] cap for overflow protection.

src/map/battle.c

           	 case MO_EXTREMITYFIST:
-                    {    //Overflow check. [Skotlex]
-                        unsigned int ratio = skillratio + 100*(8 + sstatus->sp/10);
-                        //You'd need something like 6K SP to reach this max, so should be fine for most purposes.
-                        if (ratio > 60000) ratio = 60000; //We leave some room here in case skillratio gets further increased.
-                        skillratio = (unsigned short)ratio;
-                    }
+                    skillratio += 100*(8 + sstatus->sp/10) - 100;
+                    skillratio = min(500000,skillratio); //We stop at roughly 50k SP for overflow protection
                    break;


You can go ahead and make this edit to your own files, or wait for Hercules to send over an update.


Thanks mate.

changed status to: Confirmed

capping is good however MO_EXTREMITY got renewed it has a new formula... :D


:meow:

i have fixed this last week on my server.

damage * cardfix > MAX_INT therefore overflowing.

changed battle_calc_cardfix case BF_WEAPON:

from

damage = damage * cardfix / 1000;

to
damage = damage * ((float)cardfix / 1000);


Ind 
changed status to: Fixed

I believe this has been fixed in a previous commit (one that fixed damage overflow issues)

The way it is right now, Asura Strike has an official cap that limits the amount of damage it'll do; this was put in place so that the damage doesn't overflow (technical limitation). You'd need a rather large amount of SP and ATK to hit this cap, but it'd be achievable on a server with a high stat cap.

As far as I know, there is not an official damage cap for Asura, so a reworking of the formula to increase the cap and work better with renewal stats would probably do well. The edit below would suit most servers' needs and still leave a [much larger] cap for overflow protection.

src/map/battle.c

           	 case MO_EXTREMITYFIST:
-                    {    //Overflow check. [Skotlex]
-                        unsigned int ratio = skillratio + 100*(8 + sstatus->sp/10);
-                        //You'd need something like 6K SP to reach this max, so should be fine for most purposes.
-                        if (ratio > 60000) ratio = 60000; //We leave some room here in case skillratio gets further increased.
-                        skillratio = (unsigned short)ratio;
-                    }
+                    skillratio += 100*(8 + sstatus->sp/10) - 100;
+                    skillratio = min(500000,skillratio); //We stop at roughly 50k SP for overflow protection
                    break;


You can go ahead and make this edit to your own files, or wait for Hercules to send over an update.

Sir, tried applying your code above, I get an error, sstatus is undeclared.