Hadeszeus
New member
Can someone help me fix this src modification to create a status effect that nullify DISPELL for certain period of time?
enumerating the sc_type:
srcmapstatus.h:
SC_SKILLATKBONUS,+ SC_IGNOREDISPELL, SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
srcmapstatus.c:
StatusChangeFlagTable[SC_WALKSPEED] |= SCB_SPEED;+ StatusChangeFlagTable[SC_IGNOREDISPELL] |= SC_NONE;
Applying the status to block dispell
srcmapskill.c:
case SA_DISPELL: { int splash; if (flag&1 || (splash = skill->get_splash(skill_id, skill_lv)) < 1) { int i; if( sd && dstsd && !map_flag_vs(sd->bl.m) && (sd->status.party_id == 0 || sd->status.party_id != dstsd->status.party_id) ) { // Outside PvP it should only affect party members and no skill fail message. break; } clif->skill_nodamage(src,bl,skill_id,skill_lv,1); if((dstsd && (dstsd->class_&MAPID_UPPERMASK) == MAPID_SOUL_LINKER) || (tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SL_ROGUE) //Rogue's spirit defends againt dispel. || rnd()%100 >= 50+10*skill_lv || (tsc && tsc->data[SC_IGNOREDISPELL])) //SC_IGNOREDISPELL {
Sample IGNOREDISPELL Script using 501
{Id: 501Inherit: trueScript: <" sc_start SC_IGNOREDISPELL,300000,0; ">}
EXPECTED RESULT: When RED POTION consumed. Nullify DISPELL for 3 minutes
ACTUAL RESULT:
Character turns to black (like stone cursed) and unable to move.
Casting DISPELL will cancel abnormal status.
Credits to ORIG SOURCE
enumerating the sc_type:
srcmapstatus.h:
SC_SKILLATKBONUS,+ SC_IGNOREDISPELL, SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
srcmapstatus.c:
StatusChangeFlagTable[SC_WALKSPEED] |= SCB_SPEED;+ StatusChangeFlagTable[SC_IGNOREDISPELL] |= SC_NONE;
Applying the status to block dispell
srcmapskill.c:
case SA_DISPELL: { int splash; if (flag&1 || (splash = skill->get_splash(skill_id, skill_lv)) < 1) { int i; if( sd && dstsd && !map_flag_vs(sd->bl.m) && (sd->status.party_id == 0 || sd->status.party_id != dstsd->status.party_id) ) { // Outside PvP it should only affect party members and no skill fail message. break; } clif->skill_nodamage(src,bl,skill_id,skill_lv,1); if((dstsd && (dstsd->class_&MAPID_UPPERMASK) == MAPID_SOUL_LINKER) || (tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SL_ROGUE) //Rogue's spirit defends againt dispel. || rnd()%100 >= 50+10*skill_lv || (tsc && tsc->data[SC_IGNOREDISPELL])) //SC_IGNOREDISPELL {
Sample IGNOREDISPELL Script using 501
{Id: 501Inherit: trueScript: <" sc_start SC_IGNOREDISPELL,300000,0; ">}
EXPECTED RESULT: When RED POTION consumed. Nullify DISPELL for 3 minutes
ACTUAL RESULT:
Character turns to black (like stone cursed) and unable to move.
Casting DISPELL will cancel abnormal status.
Credits to ORIG SOURCE
Last edited by a moderator: