From 168e5fd7c557020b8b5c5b1780aa983c9737e000 Mon Sep 17 00:00:00 2001 From: reddozen Date: Tue, 28 Mar 2006 10:26:32 +0000 Subject: * 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 --- src/map/skill.c | 29 ++++++++++++++++++++++++++++- src/map/status.c | 4 ++++ 2 files changed, 32 insertions(+), 1 deletion(-) (limited to 'src') 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; -- cgit v1.2.3-70-g09d2