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 590 times, submitted by Lilith.