Forráskód Böngészése

* 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://svn.code.sf.net/p/rathena/svn/trunk@5739 54d463be-8e91-2dee-dedb-b68131a5f0ec

reddozen 19 éve
szülő
commit
7f2dafc887
7 módosított fájl, 43 hozzáadás és 43 törlés
  1. 4 4
      db/item_db.txt
  2. 2 2
      db/skill_cast_db.txt
  3. 7 7
      db/skill_db.txt
  4. 11 11
      db/skill_require_db.txt
  5. 2 2
      db/skill_tree.txt
  6. 4 0
      src/map/pc.c
  7. 13 17
      src/map/skill.c

+ 4 - 4
db/item_db.txt

@@ -1594,7 +1594,7 @@
 5120,Bucket_Hat_,Bucket Hat,5,6000,,300,,3,,1,532676607,7,2,256,,0,1,195,{}
 5121,Zherlthsh_Mask,Zherlthsh Mask,5,,10,400,,3,,0,119529470,7,2,768,,70,1,200,{ bonus2 bAddRace,RC_DemiHuman,5; bonus2 bSubRace,RC_DemiHuman,5; }
 5122,Magni's_Cap,Magni's Cap,5,,10,1000,,5,,0,119529470,7,2,256,,65,1,201,{ bonus bStr,2; }
-5123,Ulle's_Cap,Ulle's Cap,5,,10,500,,3,,1,119529470,7,2,256,,65,1,202,{ bonus bDex,2; bonus bAgi,1; if(isequipped(2353) && readparam(bDex)>=70) bonus bUseSPrate,-10; }
+5123,Ulle's_Cap,Ulle's Cap,5,,10,500,,3,,1,119529470,7,2,256,,65,1,202,{ bonus bDex,2; bonus bAgi,1; if(isequipped(2353) && bDex>=70) bonus bUseSPrate,-10; }
 5124,Frigg's_Circlet,Frigg's Circlet,5,,10,300,,3,,0,119529470,7,2,256,,65,1,203,{ bonus bMdef,10; bonus bInt,2; bonus bMaxSP,50; }
 5125,Angel's_Kiss,Angel's Kiss,5,,10,300,,2,,1,8388609,7,2,256,,50,1,204,{ bonus bSPrecovRate,3; }
 5126,Morpheus's_Hood,Morpheus's Hood,5,,10,200,,3,,0,119529470,7,2,256,,33,1,205,{ bonus bInt,2; if(isequipped(2518,2648,2649)==0) end; bonus bInt,5; bonus bMdef,11; bonus bMaxSPrate,20; if(Upper == 1) bonus bCastrate,25; }
@@ -2404,9 +2404,9 @@
 13202,Shell_of_Blood,Shell of Blood,10,30,,2,30,,,,134217728,7,2,32768,,1,,,{ bonus2 bAddEff,Eff_Bleeding,50; }
 13203,Flare_Sphere,Flare Sphere,10,80,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Fire; }
 13204,Lightning_Sphere,Lightning Sphere,10,80,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Wind; }
-13205,Poison_Sphere,Poison Sphere,10,80,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus2 bAddEff,Eff_Poison,50; }
-13206,Blind_Sphere,Blind Sphere,10,80,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus2 bAddEff,Eff_Blind,50; }
-13207,Freezing_Sphere,Freezing Sphere,10,80,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Water; }
+13205,Poison_Sphere,Poison Sphere,10,80,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Poision; bonus2 bAddEff,Eff_Poison,50; }
+13206,Blind_Sphere,Blind Sphere,10,80,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,50; }
+13207,Freezing_Sphere,Freezing Sphere,10,80,,5,50,,,,134217728,7,2,32768,,1,,,{ bonus bAtkEle,Ele_Water; bonus2 bAddEff,Eff_Freeze,50; }
 
 // Shurikens & Kunais
 13250,Shuriken,Shuriken,10,4,,5,10,,,,268435456,7,2,32768,,1,,,{}

+ 2 - 2
db/skill_cast_db.txt

@@ -819,7 +819,7 @@
 //-- GS_BULLSEYE
 503,0,1000,0,0,0
 //-- GS_MADNESSCANCEL
-504,0,1000,0,15000,0
+504,0,1000,15000,15000,0
 //-- GS_ADJUSTMENT
 505,0,1000,0,30000,0
 //-- GS_INCREASING
@@ -833,7 +833,7 @@
 //-- GS_DISARM
 513,0,1000,0,0,0
 //-- GS_PIERCINGSHOT
-514,0,1000,0,0,60000
+514,0,1000,0,0,120000
 //-- GS_RAPIDSHOWER
 515,0,1000,0,0,0
 //-- GS_DESPERADO

+ 7 - 7
db/skill_db.txt

@@ -527,21 +527,21 @@
 504,0,6,4,0,1,0,5,1,no,0,0,0,weapon,0	//GS_MADNESSCANCEL#Madness Canceler#
 505,0,6,4,0,1,0,5,1,no,0,0,0,weapon,0	//GS_ADJUSTMENT#AdJustment#
 506,0,6,4,0,1,0,5,1,no,0,0,0,weapon,0	//GS_INCREASING#Increasing Accuracy#
-507,-5,6,1,-1,0,0,1,1,no,0,0,0,weapon,0	//GS_MAGICALBULLET#Magical Bullet#
+507,-5,6,1,7,0,0,1,1,no,0,0,0,weapon,0	//GS_MAGICALBULLET#Magical Bullet#
 508,-5,6,1,-1,0,0,1,1,no,0,0,0,weapon,0	//GS_CRACKER#Cracker#
-509,0,0,0,0,0,0,10,0,no,0,0,0,none,0	//GS_SINGLEACTION#Single Action#
+509,-5,0,0,0,0,0,10,0,no,0,0,0,none,0	//GS_SINGLEACTION#Single Action#
 510,0,0,0,0,0,0,10,0,no,0,0,0,none,0	//GS_SNAKEEYE#Snake Eye#
 511,-5,8,0,-1,0,0,10,2,no,0,0,0,weapon,0	//GS_CHAINACTION#Chain Action#
 512,-5,6,1,-1,0,0,10,1,no,0,0,0,weapon,0	//GS_TRACKING#Tracking#
 513,-5,6,1,-1,0,0,5,1,no,0,0,0,weapon,0	//GS_DISARM#Disarm#
-514,-5,6,1,-1,0,0,10,1,no,0,0,0,weapon,0	//GS_PIERCINGSHOT#Piercing Shot#
+514,-5,6,1,-1,0,0,5,1,no,0,0,0,weapon,0	//GS_PIERCINGSHOT#Piercing Shot#
 515,-5,8,1,-1,0,0,10,5,no,0,0,0,weapon,0	//GS_RAPIDSHOWER#Rapid Shower#
-516,-5,8,4,-1,2,2,10,10,no,0,0,0,weapon,0	//GS_DESPERADO#Desperado#
-517,0,6,4,0,1,0,5,1,no,0,0,0,weapon,0	//GS_GATLINGFEVER#Gatling Fever#
+516,-5,8,4,-1,2,2,10,-10,no,0,0,0,weapon,0	//GS_DESPERADO#Desperado#
+517,-5,6,4,0,1,0,10,1,no,0,0,0,weapon,0	//GS_GATLINGFEVER#Gatling Fever#
 518,-5,6,1,-1,0,0,10,1,no,0,0,0,weapon,0	//GS_DUST#Dust#
 519,-5,6,1,-1,0,0,10,1,no,0,0,0,weapon,0	//GS_FULLBUSTER#Full Buster#
-520,-5,6,4,-1,2,1:1:1:2:2:2:3:3:3:4,10,1,no,0,0,0,weapon,0	//GS_SPREADATTACK#Spread Attack#
-521,-5,6,1,-1,0,0,10,1,no,0,0,0,weapon,0	//GS_GROUNDDRIFT#Ground Drift#
+520,-5,6,1,-1,2,1:1:1:2:2:2:3:3:3:4,10,1,no,0,0,0,weapon,0	//GS_SPREADATTACK#Spread Attack#
+521,5,6,1,-1,0,0,10,1,no,0,0,0,weapon,0	//GS_GROUNDDRIFT#Ground Drift#
 522,0,0,0,0,0,0,10,1,no,0,0,0,weapon,0	//NJ_TOBIDOUGU#NJ_TOBIDOUGU#
 523,9,6,1,-1,0,0,10,1,no,0,0,0,weapon,0	//NJ_SYURIKEN#NJ_SYURIKEN#
 524,9,8,1,-1,0,0,5,3,no,0,0,0,weapon,0	//NJ_KUNAI#NJ_KUNAI#

+ 11 - 11
db/skill_require_db.txt

@@ -254,8 +254,8 @@
 330,0,0,40:45:50:55:60:65:70:75:80:85,0,0,0,13:14,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//DC_SERVICEFORYOU#ƒT?ƒrƒXƒtƒH?ƒ†?#
 
 334,0,0,1,10,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WE_MALE#ŒN‚¾‚¯‚ÍŒì‚邿#
-335,0,0,1,0,10,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WE_FEMALE#‚ ‚È‚½‚É?‚­‚µ‚Ü‚·#
-336,0,0,1,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WE_CALLPARTNER#‚ ‚È‚½‚Ɉ§‚¢‚½‚¢#
+335,0,0,1,0,10,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WE_FEMALE#‚ ‚È‚½‚É?‚­‚µ‚Ü‚·#
+336,0,0,1,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WE_CALLPARTNER#‚ ‚È‚½‚Ɉ§‚¢‚½‚¢#
 337,0,0,1,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ITM_TOMAHAWK##
 
 355,0,0,18:26:34:42:50,0,0,0,1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//LK_AURABLADE#ƒI?ƒ‰ƒuƒŒ?ƒh#
@@ -388,7 +388,7 @@
 498,0,0,200,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//AM_TWILIGHT3#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[3#
 499,0,0,8,0,0,0,11,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HT_POWER#ƒr?[ƒXƒgƒXƒgƒŒƒCƒsƒ“ƒO#
 //temp plugs
-500,0,0,10,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_GLITTERING
+500,0,0,10:20:30:40:50,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_GLITTERING
 501,0,0,10,0,0,0,17:18:19:20:21,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_FLING
 502,0,0,10,0,0,0,17:18:19:20:21,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_TRIPLEACTION
 503,0,0,10,0,0,0,17:18:19:20:21,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_BULLSEYE
@@ -397,16 +397,16 @@
 506,0,0,10,0,0,0,17:18:19:20:21,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_INCREASING
 507,0,0,7,0,0,0,17:18:19:20:21,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_MAGICALBULLET
 508,0,0,10,0,0,0,17:18:19:20:21,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_CRACKER
-512,0,0,10,0,0,0,17:18,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_TRACKING
-513,0,0,10,0,0,0,17:18,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_DISARM
+512,0,0,15:20:25:30:35:40:45:50:55:60,0,0,0,17:18,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_TRACKING
+513,0,0,15:20:25:30:35,0,0,0,17:18,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_DISARM
 514,0,0,11:12:13:14:15,0,0,0,17:18,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_PIERCINGSHOT
-515,0,0,10,0,0,0,17,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_RAPIDSHOWER
+515,0,0,22:24:26:28:30:32:34:36:38:40,0,0,0,17,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_RAPIDSHOWER
 516,0,0,32:34:36:38:40:42:44:46:48:50,0,0,0,17,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_DESPERADO
-517,0,0,10,0,0,0,20,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_GATLINGFEVER
-518,0,0,10,0,0,0,19,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_DUST
+517,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,20,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_GATLINGFEVER
+518,0,0,3:6:9:12:15:18:21:24:27:30,0,0,0,19,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_DUST
 519,0,0,20:25:30:35:40:45:50:55:60:65,0,0,0,19,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_FULLBUSTER
-520,0,0,10,0,0,0,19,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_SPREADATTACK
-521,0,0,10,0,0,0,21,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_GROUNDDRIFT
+520,0,0,15:20:25:30:35:40:45:50:55:60,0,0,0,19,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_SPREADATTACK
+521,0,0,4:8:12:16:20:24:28:32:36:40,0,0,0,21,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_GROUNDDRIFT
 523,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_SYURIKEN
 524,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KUNAI
 525,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_HUUMA
@@ -443,7 +443,7 @@
 1013,0,0,10,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//BS_GREED#æÃ—~#
 1014,0,0,400,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//PR_REDEMPTIO#ƒŒƒfƒ€ƒvƒeƒBƒI#
 1015,0,0,40,0,0,0,99,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_KITRANSLATION#’¿Šï’?“ü(?U‹C’?“ü)#
-1016,10,0,20,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_BALKYOUNG#‘«? (”­™¤)#
+1016,10,0,20,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_BALKYOUNG#‘«? (”­™¤)#
 1017,0,0,30,0,0,0,99,none,0,12116,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//SA_ELEMENTGROUND
 1018,0,0,30,0,0,0,99,none,0,12114,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//SA_ELEMENTFIRE
 1019,0,0,30,0,0,0,99,none,0,12117,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//SA_ELEMENTWIND

+ 2 - 2
db/skill_tree.txt

@@ -661,12 +661,12 @@
 24,511,10,509,1,0,0,0,0,0,0,0,0 //GS_CHAINACTION#Chain Action#
 24,512,10,509,5,0,0,0,0,0,0,0,0 //GS_TRACKING#Tracking#
 24,513,5,512,7,0,0,0,0,0,0,0,0 //GS_DISARM#Disarm#
-24,514,10,512,5,0,0,0,0,0,0,0,0 //GS_PIERCINGSHOT#Piercing Shot#
+24,514,5,512,5,0,0,0,0,0,0,0,0 //GS_PIERCINGSHOT#Piercing Shot#
 24,515,10,511,3,0,0,0,0,0,0,0,0 //GS_RAPIDSHOWER#Rapid Shower#
 24,516,10,515,5,0,0,0,0,0,0,0,0 //GS_DESPERADO#Desperado#
 24,517,10,515,7,516,5,0,0,0,0,0,0 //GS_GATLINGFEVER#Gatling Fever#
 24,518,10,509,5,0,0,0,0,0,0,0,0 //GS_DUST#Dust#
-24,519,5,518,3,0,0,0,0,0,0,0,0 //GS_FULLBUSTER#Full Buster#
+24,519,10,518,3,0,0,0,0,0,0,0,0 //GS_FULLBUSTER#Full Buster#
 24,520,10,519,5,0,0,0,0,0,0,0,0 //GS_SPREADATTACK#Spread Attack#
 24,521,10,519,5,520,7,0,0,0,0,0,0 //GS_GROUNDDRIFT#Ground Drift#
 //Ninja

+ 4 - 0
src/map/pc.c

@@ -595,6 +595,10 @@ int pc_isequip(struct map_session_data *sd,int n)
 						return 1;
 				}
 		}
+
+		if((item->equip & 0x0002 || item->equip & 0x0020) && item->type == 4 && sd->status.weapon != 20 && sd->sc.data[SC_GATLINGFEVER].timer != -1)
+			status_change_end(&sd->bl,SC_GATLINGFEVER,-1);	// added to disable effects if new wepaon is not a Gatlin gun [Reddozen]
+
 	}
 	//Not equipable by class. [Skotlex]
 	if (!(1<<(sd->class_&MAPID_BASEMASK)&item->class_base[(sd->class_&JOBL_2_1)?1:((sd->class_&JOBL_2_2)?2:0)]))

+ 13 - 17
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: