summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorreddozen <reddozen@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-03-24 23:13:37 +0000
committerreddozen <reddozen@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-03-24 23:13:37 +0000
commitea40b015cb26db701961714237380e2e64525ae7 (patch)
treeec0cfb1f98ea397c3bfd3f4f1d29bef001d72305 /src/map/skill.c
parent6677af13c59e6b643d561dcb17a45230e3b514fb (diff)
downloadhercules-ea40b015cb26db701961714237380e2e64525ae7.tar.gz
hercules-ea40b015cb26db701961714237380e2e64525ae7.tar.bz2
hercules-ea40b015cb26db701961714237380e2e64525ae7.tar.xz
hercules-ea40b015cb26db701961714237380e2e64525ae7.zip
* Fixed / finished most of Gunslinger [Reddozen]
- fixed some bullets in the item DB - adjusted a few rates in skill_cast_db.txt for Gunslingers - adjusted a couple skills in skill_db.txt to act correctly - adjusted all the SP values for Gunslinger skills - changed piercing shot to lv 5 from lv 10 - made ki Translation fail giving coins to Gunslingers - equipping a weapon other than a gatlin gun should cancel SC_GATLINGING. Also made Gatlinfeaver on/off togelable - GS_CRACKER will no longer stun players - added GS_Disarm * View changes here: http://diviniaro.com/data/reddozen_3_24_2006.patch git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5739 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 38e6f987b..dd30b56f5 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1248,7 +1248,8 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
status_change_start(bl,SC_COMA,10,skilllv,0,0,0,0,0);
break;
case GS_CRACKER:
- sc_start(bl,SC_STUN,(100 - 10*distance_bl(src, bl)),skilllv,skill_get_time2(skillid,skilllv)); //Temp stun rate
+ if (!dstsd) // according to latest patch, should not work on players [Reddozen]
+ sc_start(bl,SC_STUN,(100 - 10*distance_bl(src, bl)),skilllv,skill_get_time2(skillid,skilllv)); //Temp stun rate
break;
case GS_PIERCINGSHOT:
sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time2(skillid,skilllv));
@@ -3032,18 +3033,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s
break;
//Not implemented yet [Vicious]
case GS_FLING:
- //case GS_TRIPLEACTION:
- //case GS_BULLSEYE:
- //case GS_MAGICALBULLET:
- //case GS_CRACKER:
- //case GS_TRACKING:
- case GS_DISARM:
- //case GS_PIERCINGSHOT:
- //case GS_RAPIDSHOWER:
- //case GS_DESPERADO:
- //case GS_DUST:
- //case GS_FULLBUSTER:
- //case GS_SPREADATTACK:
case GS_GROUNDDRIFT:
//case NJ_SYURIKEN:
@@ -3843,7 +3832,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
break;
case MO_KITRANSLATION:
- if(dstsd) {
+ if(dstsd && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) {
pc_addspiritball(dstsd,skill_get_time(skillid,skilllv),5);
}
break;
@@ -4410,11 +4399,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case RG_STRIPARMOR: /* ストリップア?[マ?[ */
case RG_STRIPHELM: /* ストリップヘルム */
case ST_FULLSTRIP: // Rewritten most of the code [DracoRPG]
+ case GS_DISARM: // Added disarm. [Reddozen]
{
int strip_fix, equip = 0;
int sclist[4] = {0,0,0,0};
- if (skillid == RG_STRIPWEAPON || skillid == ST_FULLSTRIP)
+ if (skillid == RG_STRIPWEAPON || skillid == ST_FULLSTRIP || skillid == GS_DISARM)
equip |= EQP_WEAPON;
if (skillid == RG_STRIPSHIELD || skillid == ST_FULLSTRIP)
equip |= EQP_SHIELD;
@@ -5535,6 +5525,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case NJ_UTSUSEMI:
case NJ_BUNSINJYUTSU:
case NJ_NEN:
+
+ if (skillid == GS_GATLINGFEVER && sd->sc.data[SC_GATLINGFEVER].timer!=-1){ // added to allow you to toggle skill on/off [Reddozen]
+ status_change_end(bl,SC_GATLINGFEVER,-1);
+ break;
+ }
+
clif_skill_nodamage(src,bl,skillid,skilllv,
sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
break;
@@ -7967,13 +7963,13 @@ int skill_check_condition(struct map_session_data *sd,int skill, int lv, int typ
case GS_MADNESSCANCEL:
spiritball = 4;
if(sd->spiritball >= 4 && sd->sc.data[SC_ADJUSTMENT].timer!=-1)
- sd->sc.data[SC_ADJUSTMENT].timer = -1;
+ status_change_end(&sd->bl,SC_ADJUSTMENT,-1);
break;
case GS_ADJUSTMENT:
spiritball = 2;
if(sd->spiritball >= 2 && sd->sc.data[SC_MADNESSCANCEL].timer != -1)
- sd->sc.data[SC_MADNESSCANCEL].timer = -1;
+ status_change_end(&sd->bl,SC_MADNESSCANCEL,-1);
break;
case GS_INCREASING: