From 1cda64d5ff2b604cbe85b3a225e0dacbdbce5e35 Mon Sep 17 00:00:00 2001 From: Vicious Date: Sat, 11 Mar 2006 16:12:04 +0000 Subject: more ninja/gs work git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5572 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/skill_cast_db.txt | 2 +- src/map/battle.c | 4 +--- src/map/skill.c | 6 +++--- src/map/status.c | 16 +++++++++++++--- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt index 6e9800799..11fd60c73 100644 --- a/db/skill_cast_db.txt +++ b/db/skill_cast_db.txt @@ -861,7 +861,7 @@ //-- NJ_TATAMIGAESHI 527,0,0,0,0,0 //-- NJ_KASUMIKIRI -528,0,0,0,0,0 +528,0,0,0,30000:60000:90000:120000:150000:180000:210000:240000:270000:300000,0 //-- NJ_SHADOWJUMP 529,0,0,0,0,0 //-- NJ_KIRIKAGE diff --git a/src/map/battle.c b/src/map/battle.c index 633c774d7..c17977151 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2280,9 +2280,7 @@ static struct Damage battle_calc_weapon_attack( damage_div_fix(wd.damage, wd.div_); wd.type = 0x08; } - } else if (( (skill_lv = 5*pc_checkskill(sd,GS_CHAINACTION)) > 0 && - (sd->weapontype1 == 0x11 || sd->weapontype1 == 0x12 || sd->weapontype1 == 0x13 - || sd->weapontype1 == 0x14 || sd->weapontype1 == 0x15)) || sd->double_rate > 0) // Copied double attack + } else if (( (skill_lv = 5*pc_checkskill(sd,GS_CHAINACTION)) > 0 && sd->weapontype1 == 0x11) || sd->double_rate > 0) if (rand()%100 < (skill_lv>sd->double_rate?skill_lv:sd->double_rate)) { wd.div_=skill_get_num(GS_CHAINACTION,skill_lv?skill_lv:1); diff --git a/src/map/skill.c b/src/map/skill.c index 9b6b99b87..286e06eaa 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3133,7 +3133,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s break; case NJ_KASUMIKIRI: skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); - sc_start(bl,SC_HIDING,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(src,SC_HIDING,100,skilllv,skill_get_time(skillid,skilllv)); break; case NJ_KIRIKAGE: status_change_end(src, SC_HIDING, -1); // ƒnƒCƒfƒBƒ“ƒO‰ð?œ @@ -8191,7 +8191,7 @@ int skill_check_condition(struct map_session_data *sd,int type) } break; case GS_ADJUSTMENT: - if(sd->spiritball < 2 || sd->sc.data[SC_MADNESSCANCEL].timer == -1) { + if(sd->spiritball < 2 || sd->sc.data[SC_MADNESSCANCEL].timer != -1) { clif_skill_fail(sd,skill,0,0); return 0; } @@ -8216,7 +8216,7 @@ int skill_check_condition(struct map_session_data *sd,int type) case GS_GROUNDDRIFT: case NJ_SYURIKEN: case NJ_KUNAI: - case NJ_HUUMA: + //case NJ_HUUMA: arrow_flag = 1; if(sd->equip_index[10] < 0) { clif_arrow_fail(sd,0); diff --git a/src/map/status.c b/src/map/status.c index d360abdab..d76d3c305 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1713,7 +1713,7 @@ int status_calc_agi(struct block_list *bl, int agi) agi += sc->data[SC_INCAGI].val1; if(sc->data[SC_AGIFOOD].timer!=-1) agi += sc->data[SC_AGIFOOD].val1; - if(sc->data[SC_TRUESIGHT].timer!=-1) + if(sc->data[SC_TRUESIGHT].timer!=-1) agi += 5; if(sc->data[SC_INCREASEAGI].timer!=-1) agi += 2 + sc->data[SC_INCREASEAGI].val1; @@ -1721,8 +1721,14 @@ int status_calc_agi(struct block_list *bl, int agi) agi -= 2 + sc->data[SC_DECREASEAGI].val1; if(sc->data[SC_QUAGMIRE].timer!=-1) agi -= sc->data[SC_QUAGMIRE].val1*(bl->type==BL_PC?5:10); - if(sc->data[SC_SUITON].timer!=-1 || status_get_class(bl) != JOB_NINJA) - agi -= (((sc->data[SC_SUITON].val1 - 1) / 3) + 1) * 3; + if(sc->data[SC_SUITON].timer!=-1 && status_get_class(bl) != JOB_NINJA) + if (sc->data[SC_SUITON].val1 > 7) + agi -= 8; + else if (sc->data[SC_SUITON].val1 > 4) + agi -= 5; + else if (sc->data[SC_SUITON].val1 > 1) + agi -= 3; + } return agi; @@ -1957,6 +1963,10 @@ int status_calc_hit(struct block_list *bl, int hit) hit += hit * sc->data[SC_INCHITRATE].val1/100; if(sc->data[SC_BLIND].timer != -1) hit -= hit * 25 / 100; + if(sc->data[SC_ADJUSTMENT].timer!=-1) + hit += 30; + if(sc->data[SC_INCREASING].timer!=-1) + hit += 50; // RockmanEXE } return hit; -- cgit v1.2.3-70-g09d2