summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorreddozen <reddozen@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-03-28 10:26:32 +0000
committerreddozen <reddozen@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-03-28 10:26:32 +0000
commit168e5fd7c557020b8b5c5b1780aa983c9737e000 (patch)
tree2dbea8b928e2dd809fcae9b0d4815296c361ef96 /src
parent368efae9829a3ef7f4cb2bbda2d5388f3d6936d2 (diff)
downloadhercules-168e5fd7c557020b8b5c5b1780aa983c9737e000.tar.gz
hercules-168e5fd7c557020b8b5c5b1780aa983c9737e000.tar.bz2
hercules-168e5fd7c557020b8b5c5b1780aa983c9737e000.tar.xz
hercules-168e5fd7c557020b8b5c5b1780aa983c9737e000.zip
* Fixed Gunslinger and Ninja skills not showing up and not working due to an error
in skill_require_db - also commited a commented block for GS_FLING that needs to be looked at and posiably cleaned before it's uncommented. - fixed exp2 not accepting Gunslingers and ninjas - fixed the "jobmaster" having the same problem as rebirth - added the Gunslinger shops for guns and ammo [Reddozen] git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5783 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/skill.c29
-rw-r--r--src/map/status.c4
2 files changed, 32 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index b78054491..fbc5c6a64 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -745,6 +745,16 @@ int skill_get_range2(struct block_list *bl, int id, int lv) {
else
range += 10; //Assume level 10?
}
+
+ // added to allow GS skills to be effected by the range of Snake Eyes [Reddozen]
+ if (id == GS_RAPIDSHOWER || id == GS_TRACKING || id == GS_PIERCINGSHOT || id == GS_FULLBUSTER
+ || id == GS_SPREADATTACK || id == GS_GROUNDDRIFT) {
+ if (bl->type == BL_PC)
+ range += pc_checkskill((struct map_session_data *)bl, GS_SNAKEEYE);
+ else
+ range += 10; //Assume level 10?
+ }
+
return range;
}
@@ -1265,6 +1275,19 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
case NJ_HYOUSYOURAKU:
sc_start(bl,SC_FREEZE,(10+10*skilllv),skilllv,skill_get_time2(skillid,skilllv));
break;
+
+ //case GS_FLING: // this needs to be looked at [Reddozen]
+ // if (skill == GS_FLING) { // gunslinger [marquis007]
+ // int spiritball = (sd->spiritball > 5 ? 5 : sd->spiritball);
+ // } else {
+ // int spiritball = 1;
+ // }
+ //
+ // if (spiritball <= sd->spiritball && sd->spiritball != 0){
+ // pc_delspiritball(sd,spiritball,0);
+ // status_change_start(bl,SC_FLING,10000,spiritball*5,0,0,0,skill_get_time(skillid,skilllv)));
+ // }
+ // break;
}
if (md && battle_config.summons_inherit_effects && md->master_id && md->special_state.ai)
@@ -2987,6 +3010,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s
case GS_RAPIDSHOWER:
case GS_DUST:
case GS_FULLBUSTER:
+ case GS_FLING:
case NJ_SYURIKEN:
case NJ_KUNAI:
@@ -3043,7 +3067,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s
BF_WEAPON,src,src,skillid,skilllv,tick,flag,BCT_ENEMY); // varargs
break;
//Not implemented yet [Vicious]
- case GS_FLING:
case GS_GROUNDDRIFT:
//case NJ_SYURIKEN:
@@ -7970,6 +7993,10 @@ int skill_check_condition(struct map_session_data *sd,int skill, int lv, int typ
break;
case GS_FLING:
+ if(sd->spiritball == 0)
+ clif_skill_fail(sd,skill,0,0);
+ break;
+
case GS_TRIPLEACTION:
case GS_MAGICALBULLET:
case GS_CRACKER:
diff --git a/src/map/status.c b/src/map/status.c
index ba460087e..a0dda48a1 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -2070,6 +2070,8 @@ int status_calc_def(struct block_list *bl, int def)
def -= def * (5+5*sc->data[SC_PROVOKE].val1)/100;
if(sc->data[SC_STRIPSHIELD].timer!=-1 && bl->type != BL_PC)
def -= def * 3*sc->data[SC_STRIPSHIELD].val1/100;
+ //if (sd->data[SC_FLING].timer!=-1 && bl->type != BL_PC)
+ // def -= (def * sd->data[SC_FLING].val1) / 100;
}
return def;
@@ -2104,6 +2106,8 @@ int status_calc_def2(struct block_list *bl, int def2)
else if(sc->data[SC_JOINTBEAT].val2==4)
def2 -= def2 * 25/100;
}
+ //if (sd->data[SC_FLING].timer!=-1)
+ // def2 -= (def2 * sd->data[SC_FLING].val1) / 100;
}
return def2;