summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorVicious <Vicious@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-03-11 16:12:04 +0000
committerVicious <Vicious@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-03-11 16:12:04 +0000
commit1cda64d5ff2b604cbe85b3a225e0dacbdbce5e35 (patch)
tree5f9f75cc8d978518b08ab04ef65501bc75eddbdf /src/map
parentf16af9875351189970a11ca873720da3690e1520 (diff)
downloadhercules-1cda64d5ff2b604cbe85b3a225e0dacbdbce5e35.tar.gz
hercules-1cda64d5ff2b604cbe85b3a225e0dacbdbce5e35.tar.bz2
hercules-1cda64d5ff2b604cbe85b3a225e0dacbdbce5e35.tar.xz
hercules-1cda64d5ff2b604cbe85b3a225e0dacbdbce5e35.zip
more ninja/gs work
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5572 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c4
-rw-r--r--src/map/skill.c6
-rw-r--r--src/map/status.c16
3 files changed, 17 insertions, 9 deletions
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;