viewing paste bNoDispell | C

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
Index: db/const.txt
===================================================================
--- db/const.txt    (revision 16244)
+++ db/const.txt    (working copy)
@@ -580,6 +580,7 @@
 bMatk  2047
 bSPGainRaceAttack  2048
 bHPGainRaceAttack  2049
+bNoDispell 2050
 
 EQI_HEAD_TOP   1
 EQI_ARMOR  2
Index: src/map/map.h
===================================================================
--- src/map/map.h   (revision 16244)
+++ src/map/map.h   (working copy)
@@ -392,7 +392,7 @@
    SP_UNSTRIPABLE_WEAPON,SP_UNSTRIPABLE_ARMOR,SP_UNSTRIPABLE_HELM,SP_UNSTRIPABLE_SHIELD,  // 2034-2037
    SP_INTRAVISION, SP_ADD_MONSTER_DROP_ITEMGROUP, SP_SP_LOSS_RATE, // 2038-2040
    SP_ADD_SKILL_BLOW, SP_SP_VANISH_RATE, SP_MAGIC_SP_GAIN_VALUE, SP_MAGIC_HP_GAIN_VALUE, SP_ADD_CLASS_DROP_ITEM, //2041-2045
-   SP_WEAPON_MATK, SP_BASE_MATK, SP_SP_GAIN_RACE_ATTACK, SP_HP_GAIN_RACE_ATTACK //2046-2049
+   SP_WEAPON_MATK, SP_BASE_MATK, SP_SP_GAIN_RACE_ATTACK, SP_HP_GAIN_RACE_ATTACK, SP_NO_DISPELL //2046-2050
 };
 
 enum _look {
Index: src/map/pc.c
===================================================================
--- src/map/pc.c    (revision 16244)
+++ src/map/pc.c    (working copy)
@@ -2012,6 +2012,10 @@
    status = &sd->base_status;
 
    switch(type){
+   case SP_NO_DISPELL:
+       if(sd->state.lr_flag != 2)
+           sd->special_state.no_dispell = 1;
+       break;
    case SP_STR:
    case SP_AGI:
    case SP_VIT:
Index: src/map/pc.h
===================================================================
--- src/map/pc.h    (revision 16244)
+++ src/map/pc.h    (working copy)
@@ -158,6 +158,7 @@
        unsigned int perfect_hiding : 1; // [Valaris]
        unsigned int no_knockback : 1;
        unsigned int bonus_coma : 1;
+       unsigned int no_dispell : 1;
    } special_state;
    int login_id1, login_id2;
    unsigned short class_;  //This is the internal job ID used by the map server to simplify comparisons/queries/etc. [Skotlex]
Index: src/map/skill.c
===================================================================
--- src/map/skill.c (revision 16244)
+++ src/map/skill.c (working copy)
@@ -6180,7 +6180,7 @@
                    clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0);
                break;
            }
-           if(status_isimmune(bl) || !tsc || !tsc->count)
+           if(status_isimmune(bl) || !tsc || !tsc->count || dstsd->special_state.no_dispell)
                break;
            for(i=0;i<SC_MAX;i++)
            {
Viewed 1357 times, submitted by Lilith.