Jump to content
  • 0

Devotion Reflect Damage


Linkin Park

Question


  • Group:  Members
  • Topic Count:  42
  • Topics Per Day:  0.01
  • Content Count:  227
  • Reputation:   11
  • Joined:  11/16/11
  • Last Seen:  

I know Devotion and reflect damage is not bugged, I just want to modify it to work to what I want,

Scenario

ChampA and ChampB are both devoted by PallyA and PallyB

ChampA casted Asura Strike on ChampB with reflect set / reflect skill from PallyB

*** The Reflected damage on ChampA should be absorbed by PallyA and not the ChampA ***

Bold Texts:That's what I want to do. The current one is the reflected damage is absorbed by ChampA.

Anyone can help?

anyone please? :)

Link to comment
Share on other sites

9 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   4
  • Joined:  11/09/11
  • Last Seen:  

Check revision 14400, 14406, 14410 and revert it back to the old devotion/reflect effect.

Edited by Genuine
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  42
  • Topics Per Day:  0.01
  • Content Count:  227
  • Reputation:   11
  • Joined:  11/16/11
  • Last Seen:  

I did a revert on the part of the codes for devo and reflect damage but it doesn't work. The reflected damage still goes to the devotee instead to the paladin who devo the champ.

Anyone can help please?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  20
  • Topics Per Day:  0.00
  • Content Count:  213
  • Reputation:   109
  • Joined:  05/21/12
  • Last Seen:  

If you revert back before my revision, all damage will be reflected to the Paladin itself.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  42
  • Topics Per Day:  0.01
  • Content Count:  227
  • Reputation:   11
  • Joined:  11/16/11
  • Last Seen:  

If you revert back before my revision, all damage will be reflected to the Paladin itself.

What revision?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  94
  • Topics Per Day:  0.02
  • Content Count:  2192
  • Reputation:   252
  • Joined:  11/11/11
  • Last Seen:  

r16676: http://trac.rathena....t/16676/rathena or could be referred to http://trac.rathena.org/changeset/15185/rathena this one was 8 months ago.. while in r16676, it was 4 days ago.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  42
  • Topics Per Day:  0.01
  • Content Count:  227
  • Reputation:   11
  • Joined:  11/16/11
  • Last Seen:  

I tried reverting 16676 and 15185 at the same time, result = there is no reflect damage at all.

Tried reverting just 16676 and it still reflects to the devotee / attacker.

I want it to be the pally who casted devotion on the attacker will absorb the reflected damage.

Still no luck :(

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  63
  • Topics Per Day:  0.01
  • Content Count:  134
  • Reputation:   1
  • Joined:  09/29/12
  • Last Seen:  

Bump Is this topic Fix ? Sorry for my bad english

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  126
  • Reputation:   4
  • Joined:  10/31/12
  • Last Seen:  

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  126
  • Reputation:   4
  • Joined:  10/31/12
  • Last Seen:  

Cyrix made

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 )

+ //devotion patch by Cyrix (rathena) ([email protected])

+//https://www.facebook.com/ragdb.ragnarok

+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);

+ //devotion patch by Cyrix (rathena) ([email protected])

+//https://www.facebook.com/ragdb.ragnarok

+ 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;

+ //devotion patch by Cyrix (rathena) ([email protected])

+//https://www.facebook.com/ragdb.ragnarok

+ 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 && (tsd = map_id2sd(sd->devotion)) && 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;

Link to comment
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.   Paste as plain text instead

  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.

×
×
  • Create New...