viewing paste SC resist dispel | Athena

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 66 67 68 69 70 71 72 73
Index: src/map/script.c
===================================================================
--- src/map/script.c    (revision 16799)
+++ src/map/script.c    (working copy)
@@ -9660,12 +9660,15 @@
    int tick;
    int val1;
    int val4 = 0;
+   int dispell = 0;
 
    type = (sc_type)script_getnum(st,2);
    tick = script_getnum(st,3);
    val1 = script_getnum(st,4);
    if( script_hasdata(st,5) )
-       bl = map_id2bl(script_getnum(st,5));
+       dispell = script_getnum(st,5);
+   if( script_hasdata(st,6) )
+       bl = map_id2bl(script_getnum(st,6));
    else
        bl = map_id2bl(st->rid);
 
@@ -9682,7 +9685,7 @@
    }
 
    if( bl )
-       status_change_start(bl, type, 10000, val1, 0, 0, val4, tick, 2);
+       status_change_start(bl, type, 10000, val1, 0, 0, val4, tick, dispell?18:2);
 
    return 0;
 }
@@ -17112,7 +17115,7 @@
    BUILDIN_DEF(disablenpc,"s"),
    BUILDIN_DEF(hideoffnpc,"s"),
    BUILDIN_DEF(hideonnpc,"s"),
-   BUILDIN_DEF(sc_start,"iii?"),
+   BUILDIN_DEF(sc_start,"iii??"),
    BUILDIN_DEF(sc_start2,"iiii?"),
    BUILDIN_DEF(sc_start4,"iiiiii?"),
    BUILDIN_DEF(sc_end,"i?"),
Index: src/map/status.c
===================================================================
--- src/map/status.c    (revision 16799)
+++ src/map/status.c    (working copy)
@@ -8581,6 +8584,7 @@
    sce->val2 = val2;
    sce->val3 = val3;
    sce->val4 = val4;
+   sce->dispell = flag&16?1:0;
    if (tick >= 0)
        sce->timer = add_timer(gettick() + tick, status_change_timer, bl->id, type);
    else
@@ -8801,6 +8805,9 @@
 
    if (sce->timer != tid && tid != INVALID_TIMER)
        return 0;
+   
+   if(sce->dispell)
+       return 0;
 
    if (tid == INVALID_TIMER) {
        if (type == SC_ENDURE && sce->val4)
Index: src/map/status.h
===================================================================
--- src/map/status.h    (revision 16799)
+++ src/map/status.h    (working copy)
@@ -1608,6 +1608,7 @@
 struct status_change_entry {
    int timer;
    int val1,val2,val3,val4;
+   int dispell;
 };
 
 struct status_change {
Viewed 1265 times, submitted by Lilith.