Jump to content
  • 0
Sign in to follow this  
xHyaweh

Devotion Bug on eAmod

Question

Pa  tulong naman ako sa bug nang Devotion.. Eto po senario about sa devo Example ko Pag Devo nung pally Ung Sniper tapos Max HP nung Sniper is 10k Then ang pally is 60k Pag ka asura ko sa sniper is 999k so dapat patay ang pally ang nang yayare Bawas lang sa pally is kung ano buhay nung devo nya un lang ang bawas


 

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Hello :) mas mabuti pang mag submit ka ng report sa eamod ng matulungan ka nila pero alam ko tong bug na to baka eto pwede mo magamit save mo muna yung src mo :) incase.
 

Index: src/map/battle.c
===================================================================
--- src/map/battle.c (revision 15817)
+++ src/map/battle.c (working copy)

@@ -233,10 +233,8 @@
nullpo_ret(target);
sc = status_get_sc(target);
-
- if( sc && sc->data[SC_DEVOTION] && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD )
+//
+if( sc && sc->data[SC_DEVOTION] && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD )
damage = 0;
-
if ( !battle_config.delay_battle_damage || amotion <= 1 ) {
map_freeblock_lock();
status_fix_damage(src, target, damage, ddelay); // We have to seperate here between reflect damage and others [icescope]
@@ -4186,7 +4184,7 @@
}
else
status_change_end(target, SC_DEVOTION, INVALID_TIMER);
- }
+ }

if (sc && sc->data[SC_AUTOSPELL] && rnd()0 < sc->data[SC_AUTOSPELL]->val4) {
int sp = 0;
Index: src/map/pc.c
===================================================================
--- src/map/pc.c (revision 15817)
+++ src/map/pc.c (working copy)
@@ -6078,8 +6078,7 @@
for(k = 0; k < 5; k++)
if (sd->devotion[k]){
struct map_session_data *devsd = map_id2sd(sd->devotion[k]);
- if (devsd)
- status_change_end(&devsd->bl, SC_DEVOTION, INVALID_TIMER);
+//
+ if (devsd) status_change_end(&devsd->bl,SC_DEVOTION,-1);
sd->devotion[k] = 0;
}

Index: src/map/status.c
===================================================================
--- src/map/status.c (revision 15817)
+++ src/map/status.c (working copy)
@@ -1015,31 +1015,43 @@
// if (!target->prev && !(flag&2))
// return 0; //Cannot damage a bl not on a map, except when "charging" hp/sp

- sc = status_get_sc(target);
- if( hp && battle_config.invincible_nodamage && src && sc && sc->data[SC_INVINCIBLE] && !sc->data[SC_INVINCIBLEOFF] )
- hp = 1;
+//
+ sc = status_get_sc(target);
+

- if( hp && !(flag&1) ) {
+ if( hp && !(flag&(1|8)) ) {
if( sc ) {
struct status_change_entry *sce;
+ if( (sce = sc->data[SC_DEVOTION]) && src && battle_getcurrentskill(src) != PA_PRESSURE )
+ { // Devotion prevents any of the other ailments from ending.
+ struct block_list *d_bl = map_id2bl(sce->val1);
+
+ if( d_bl && (
+ (d_bl->type == BL_MER && ((TBL_MER*)d_bl)->master && ((TBL_MER*)d_bl)->master->bl.id == target->id) ||
+ (d_bl->type == BL_PC && ((TBL_PC*)d_bl)->devotion[sce->val2] == target->id)
+ ) && check_distance_bl(target, d_bl, sce->val3) )
+ {
+ clif_damage(d_bl, d_bl, gettick(), 0, 0, hp, 0, 0, 0);
+ status_fix_damage(NULL, d_bl, hp, 0);
+ return 0;
+ }
+
+ status_change_end(target, SC_DEVOTION, -1);
+ }
if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE)
- status_change_end(target, SC_STONE, INVALID_TIMER);
- status_change_end(target, SC_FREEZE, INVALID_TIMER);
- status_change_end(target, SC_SLEEP, INVALID_TIMER);
- status_change_end(target, SC_WINKCHARM, INVALID_TIMER);
- status_change_end(target, SC_CONFUSION, INVALID_TIMER);
- status_change_end(target, SC_TRICKDEAD, INVALID_TIMER);
- status_change_end(target, SC_HIDING, INVALID_TIMER);
- status_change_end(target, SC_CLOAKING, INVALID_TIMER);
- status_change_end(target, SC_CHASEWALK, INVALID_TIMER);
- status_change_end(target, SC_CAMOUFLAGE, INVALID_TIMER);
- status_change_end(target, SC__INVISIBILITY, INVALID_TIMER);
- status_change_end(target, SC_DEEPSLEEP, INVALID_TIMER);
+ status_change_end(target,SC_STONE,-1);
+ status_change_end(target,SC_FREEZE,-1);
+ status_change_end(target,SC_SLEEP,-1);
+ status_change_end(target,SC_WINKCHARM,-1);
+ status_change_end(target,SC_CONFUSION,-1);
+ status_change_end(target,SC_TRICKDEAD,-1);
+ status_change_end(target,SC_HIDING,-1);
+ status_change_end(target,SC_CLOAKING,-1);
+ status_change_end(target,SC_CHASEWALK,-1);
if ((sce=sc->data[SC_ENDURE]) && !sce->val4) {
//Endure count is only reduced by non-players on non-gvg maps.
//val4 signals infinite endure. [Skotlex]
if (src && src->type != BL_PC && !map_flag_gvg(target->m) && !map[target->m].flag.battleground && --(sce->val2) < 0)
- status_change_end(target, SC_ENDURE, INVALID_TIMER);
+ status_change_end(target, SC_ENDURE, -1);
}
if ((sce=sc->data[SC_GRAVITATION]) && sce->val3 == BCT_SELF) {
struct skill_unit_group* sg = skill_id2group(sce->val4);
@@ -8235,14 +8247,14 @@
for( i = 0; i < 5; i++ )
{
if( sd->devotion[i] && (tsd = map_id2sd(sd->devotion[i])) && tsd->sc.data[type] )
- status_change_end(&tsd->bl, type, INVALID_TIMER);
+ status_change_end(&tsd->bl, type, -1);
}
}
else if( bl->type == BL_MER && ((TBL_MER*)bl)->devotion_flag )
{ // Clear Status from Master
tsd = ((TBL_MER*)bl)->master;
if( tsd && tsd->sc.data[type] )
- status_change_end(&tsd->bl, type, INVALID_TIMER);
+ status_change_end(&tsd->bl, type, -1);
}
}
break;
@@ -8258,10 +8270,10 @@
clif_devotion(d_bl, NULL);
}

- status_change_end(bl, SC_AUTOGUARD, INVALID_TIMER);
- status_change_end(bl, SC_DEFENDER, INVALID_TIMER);
- status_change_end(bl, SC_REFLECTSHIELD, INVALID_TIMER);
- status_change_end(bl, SC_ENDURE, INVALID_TIMER);
+ status_change_end(bl,SC_AUTOGUARD,-1);
+ status_change_end(bl,SC_DEFENDER,-1);
+ status_change_end(bl,SC_REFLECTSHIELD,-1);
+ status_change_end(bl,SC_ENDURE,-1);
}
break; 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.