summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
authormalufett <malufett.eat.my.binaries@gmail.com>2013-12-30 17:56:48 +0800
committermalufett <malufett.eat.my.binaries@gmail.com>2013-12-30 17:56:48 +0800
commit08fa33bf08a9e2bb5ecee5ad53a5cd592f887837 (patch)
treef8731a1dafaf70d8f92c2e8bfdfcd1108522a2a6 /src/map/status.c
parent0a7c002990ba08a39156b966cbd8e8e7ad3a4ce4 (diff)
downloadhercules-08fa33bf08a9e2bb5ecee5ad53a5cd592f887837.tar.gz
hercules-08fa33bf08a9e2bb5ecee5ad53a5cd592f887837.tar.bz2
hercules-08fa33bf08a9e2bb5ecee5ad53a5cd592f887837.tar.xz
hercules-08fa33bf08a9e2bb5ecee5ad53a5cd592f887837.zip
Fixed Bug#7735
-http://hercules.ws/board/tracker/issue-7735-royal-guards-rage-burst/ Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/map/status.c b/src/map/status.c
index 7d354718d..afc00e348 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -4832,6 +4832,8 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def
def -= def * 5 * (10-sc->data[SC_CAMOUFLAGE]->val4) / 100;
if( sc && sc->data[SC_GENTLETOUCH_REVITALIZE] && sc->data[SC_GENTLETOUCH_REVITALIZE]->val4 )
def += 2 * sc->data[SC_GENTLETOUCH_REVITALIZE]->val4;
+ if( sc->data[SC_FORCEOFVANGUARD] )
+ def += def * 2 * sc->data[SC_FORCEOFVANGUARD]->val1 / 100;
return (defType)cap_value(def,DEFTYPE_MIN,DEFTYPE_MAX);
}
@@ -4882,8 +4884,6 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def
def -= def * (sc->data[SC_FLING]->val2)/100;
if( sc->data[SC_ANALYZE] )
def -= def * ( 14 * sc->data[SC_ANALYZE]->val1 ) / 100;
- if( sc->data[SC_FORCEOFVANGUARD] )
- def += def * 2 * sc->data[SC_FORCEOFVANGUARD]->val1 / 100;
if(sc->data[SC_SATURDAY_NIGHT_FEVER])
def -= def * (10 + 10 * sc->data[SC_SATURDAY_NIGHT_FEVER]->val1) / 100;
if(sc->data[SC_EARTHDRIVE])
@@ -8406,11 +8406,10 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
val4 = tick/10000;
tick_time = 10000; // [GodLesZ] tick time
break;
- case SC_FORCEOFVANGUARD: // This is not the official way to handle it but I think we should use it. [pakpil]
- val2 = 20 + 12 * (val1 - 1); // Chance
- val3 = 5 + (2 * val1); // Max rage counters
+ case SC_FORCEOFVANGUARD:
+ val2 = 8 + 12 * val1; // Chance
+ val3 = 5 + 2 * val1; // Max rage counters
tick = -1; //endless duration in the client
- tick_time = 6000; // [GodLesZ] tick time
break;
case SC_EXEEDBREAK:
val1 *= 150; // 150 * skill_lv
@@ -9265,6 +9264,7 @@ int status_change_clear(struct block_list* bl, int type) {
sc->opt2 = 0;
sc->opt3 = 0;
sc->bs_counter = 0;
+ sc->fv_counter = 0;
#ifndef RENEWAL
sc->sg_counter = 0;
#endif
@@ -10654,11 +10654,11 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) {
return 0;
}
break;
-
+
case SC_FORCEOFVANGUARD:
- if( !status->charge(bl,0,20) )
+ if( !status->charge(bl, 0, (24 - 4 * sce->val1)) )
break;
- sc_timer_next(6000 + tick, status->change_timer, bl->id, data);
+ sc_timer_next(10000 + tick, status->change_timer, bl->id, data);
return 0;
case SC_BANDING: