- Applied Mpeg's work on GS

( http://gpegon.free.fr/ea/gunslinger_08-29-06_mpeg.txt )
- Fixed a syntax error in @showmobs


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8528 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
toms 2006-08-29 10:23:11 +00:00
parent 28b1fa6ff4
commit 66158f3bb6
11 changed files with 116 additions and 68 deletions

View File

@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/08/29 2006/08/29
* Applied Mpeg's work on GS [Toms]
( http://gpegon.free.fr/ea/gunslinger_08-29-06_mpeg.txt )
* Fixed a syntax error in @showmobs [Toms]
* Added @showmobs. It shows selected mobs on your mini-map (excluding * Added @showmobs. It shows selected mobs on your mini-map (excluding
mini-bosses & MVP) thanks to KarLaeda for the command [Lupus] mini-bosses & MVP) thanks to KarLaeda for the command [Lupus]
2006/08/28 2006/08/28

View File

@ -19,6 +19,9 @@
----- -----
========================= =========================
08/29
*Applied Mpeg's work on GS [Toms]
( http://gpegon.free.fr/ea/gunslinger_08-29-06_mpeg.txt )
08/26 08/26
* Reduced weapon range of all guns by 1 [Playtester] * Reduced weapon range of all guns by 1 [Playtester]
08/25 08/25

View File

@ -843,41 +843,35 @@
//-- GS_GLITTERING //-- GS_GLITTERING
500,0,0,0,600000,0 500,0,0,0,600000,0
//-- GS_FLING //-- GS_FLING
501,0,1000,0,30000,0 501,0,0,0,30000,0
//-- GS_TRIPLEACTION
502,0,1000,0,0,0
//-- GS_BULLSEYE
503,0,1000,0,0,0
//-- GS_MADNESSCANCEL //-- GS_MADNESSCANCEL
504,0,1000,0,15000,0 504,0,0,0,15000,0
//-- GS_ADJUSTMENT //-- GS_ADJUSTMENT
505,0,1000,0,30000,0 505,0,0,0,30000,0
//-- GS_INCREASING //-- GS_INCREASING
506,0,1000,0,60000,0 506,0,0,0,60000,0
//-- GS_MAGICALBULLET //-- GS_CRACKER // No clue for duration2 (stun time)
507,0,1000,0,0,0 508,0,0,0,0,5000
//-- GS_CRACKER //-- GS_TRACKING // Delay unknown
508,0,1000,0,0,5000
//-- GS_TRACKING
512,1200:1400:1600:1800:2000:2200:2400:2600:2800:3000,0,0,0,0 512,1200:1400:1600:1800:2000:2200:2400:2600:2800:3000,0,0,0,0
//-- GS_DISARM //-- GS_DISARM // Cast&Delay unknown (temp values). No clue for Duration1 (Strip time)...
513,0,1000,0,30000,0 513,1000,0,0,30000,0
//-- GS_PIERCINGSHOT //-- GS_PIERCINGSHOT // Cast&Delay unknown (temp values). No clue for Duration2 (Bleeding time)
514,0,1000,0,0,120000 514,1000,0,0,0,120000
//-- GS_RAPIDSHOWER //-- GS_RAPIDSHOWER // Delay must be checked (maybe 0(ASPD)...)
515,0,1000,0,0,0 515,0,1000,0,0,0
//-- GS_DESPERADO //-- GS_DESPERADO // Delay must be checked (very likely to be 1s though)
516,0,1000,1000,1000,0 516,0,1000,1000,1000,0
//-- GS_GATLINGFEVER //-- GS_GATLINGFEVER
517,0,1000,0,30000:45000:60000:75000:90000:105000:120000:135000:150000:165000,0 517,0,1000,0,30000:45000:60000:75000:90000:105000:120000:135000:150000:165000,0
//-- GS_DUST //-- GS_DUST // Delay must be checked (very long with low agi, still long with full agi, so it must be correct...)
518,1000,1000,0,0,0 518,1000,0,0,0,0
//-- GS_FULLBUSTER //-- GS_FULLBUSTER
519,1000,1200:1400:1600:1800:2000:2200:2400:2600:2800:3000,0,0,10000 519,1000,1200:1400:1600:1800:2000:2200:2400:2600:2800:3000,0,0,10000
//-- GS_SPREADATTACK //-- GS_SPREADATTACK // Delay unknown (if there is one, other that aspd)
520,0,1000,0,0,0 520,1000,0,0,0,0
//-- GS_GROUNDDRIFT //-- GS_GROUNDDRIFT // Delay unknown (if there is one, other that aspd)
521,0,1000,0,3000:6000:9000:12000:15000:18000:21000:24000:27000:30000,0 521,1000,0,0,3000:6000:9000:12000:15000:18000:21000:24000:27000:30000,10000
//========================================== //==========================================

View File

@ -524,18 +524,18 @@
498,0,6,4,0,1,0,1,0,no,0,8,0,none,0 //AM_TWILIGHT3#Twilight Alchemy 3# 498,0,6,4,0,1,0,1,0,no,0,8,0,none,0 //AM_TWILIGHT3#Twilight Alchemy 3#
499,-9,8,4,-1,0,0,1,2,no,0,520,0,weapon,0 //HT_POWER#Beast Strafing# 499,-9,8,4,-1,0,0,1,2,no,0,520,0,weapon,0 //HT_POWER#Beast Strafing#
//Temp Plugs(using bash as base) //Temp Plugs(using bash as base)
500,0,6,4,0,0,0,5,1,no,0,0,0,none,0 //GS_GLITTERING#Flip the Coin# 500,0,6,4,0,0,0,5,1,no,0,0,0,misc,0 //GS_GLITTERING#Flip the Coin#
501,-3,6,1,-1,0,0,1,1,no,0,0,0,weapon,0 //GS_FLING#Fling# 501,-3,6,1,-1,0,0,1,1,no,0,0,0,misc,0 //GS_FLING#Fling#
502,-3,8,1,-1,0,0,1,3,no,0,0,0,weapon,0 //GS_TRIPLEACTION#Triple Action# 502,-3,8,1,-1,0,0,1,3,no,0,0,0,weapon,0 //GS_TRIPLEACTION#Triple Action#
503,-3,6,1,-1,0,0,1,1,no,0,0,0,weapon,0 //GS_BULLSEYE#Bulls Eye# 503,-3,6,1,-1,0,0,1,1,no,0,0,0,weapon,0 //GS_BULLSEYE#Bulls Eye#
504,0,6,4,0,1,0,5,1,no,0,0,0,weapon,0 //GS_MADNESSCANCEL#Madness Canceler# 504,0,6,4,0,1,0,1,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# 505,0,6,4,0,1,0,1,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# 506,0,6,4,0,1,0,1,1,no,0,0,0,weapon,0 //GS_INCREASING#Increasing Accuracy#
507,-3,6,1,8,0,0,1,1,no,0,0,0,weapon,0 //GS_MAGICALBULLET#Magical Bullet# 507,-3,6,1,8,0,0,1,1,no,0,0,0,weapon,0 //GS_MAGICALBULLET#Magical Bullet#
508,-3,6,1,-1,0,0,1,1,no,0,0,0,weapon,0 //GS_CRACKER#Cracker# 508,-3,6,1,-1,1,0,1,1,no,0,0,0,weapon,0 //GS_CRACKER#Cracker#
509,-3,0,0,0,0,0,10,0,no,0,0,0,none,0 //GS_SINGLEACTION#Single Action# 509,-3,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# 510,0,0,0,0,0,0,10,0,no,0,0,0,none,0 //GS_SNAKEEYE#Snake Eye#
511,-3,8,0,0,0,0,10,2,no,0,0,0,weapon,0 //GS_CHAINACTION#Chain Action# 511,-3,8,0,-1,0,0,10,2,no,0,0,0,weapon,0 //GS_CHAINACTION#Chain Action#
512,3,6,1,-1,0,0,10,1,no,0,0,0,weapon,0 //GS_TRACKING#Tracking# 512,3,6,1,-1,0,0,10,1,no,0,0,0,weapon,0 //GS_TRACKING#Tracking#
513,7,6,1,-1,1,0,5,1,no,0,0,0,weapon,0 //GS_DISARM#Disarm# 513,7,6,1,-1,1,0,5,1,no,0,0,0,weapon,0 //GS_DISARM#Disarm#
514,3,6,1,-1,0,0,5,1,no,0,0,0,weapon,0 //GS_PIERCINGSHOT#Piercing Shot# 514,3,6,1,-1,0,0,5,1,no,0,0,0,weapon,0 //GS_PIERCINGSHOT#Piercing Shot#
@ -545,7 +545,7 @@
518,3,6,1,-1,0,0,10,1,no,0,0,0,weapon,5 //GS_DUST#Dust# 518,3,6,1,-1,0,0,10,1,no,0,0,0,weapon,5 //GS_DUST#Dust#
519,3,6,1,-1,0,0,10,1,yes,0,0,0,weapon,0 //GS_FULLBUSTER#Full Buster# 519,3,6,1,-1,0,0,10,1,yes,0,0,0,weapon,0 //GS_FULLBUSTER#Full Buster#
520,3,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# 520,3,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,3,6,2,0,0,0,10,1,no,0,0,0,weapon,0 //GS_GROUNDDRIFT#Ground Drift# 521,3,6,2,-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# 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# 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# 524,9,8,1,-1,0,0,5,3,no,0,0,0,weapon,0 //NJ_KUNAI#NJ_KUNAI#

View File

@ -394,9 +394,9 @@
498,0,0,200,0,0,0,99,0,0,none,0,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//AM_TWILIGHT3## 498,0,0,200,0,0,0,99,0,0,none,0,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//AM_TWILIGHT3##
499,0,0,8,0,0,0,11,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //HT_POWER## 499,0,0,8,0,0,0,11,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //HT_POWER##
500,0,0,2,0,0,1,99,0,0,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,2,0,0,1,99,0,0,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,3:5,0,none,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_FLING 501,0,0,10,0,0,0,17:18:19:20:21,0,0,none,5,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,20,0,0,0,17:18:19:20:21,3:5,1,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_TRIPLEACTION 502,0,0,20,0,0,0,17:18:19:20:21,0,0,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,30,0,0,0,17:18:19:20:21,3:5,1,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_BULLSEYE 503,0,0,30,0,0,0,17:18:19:20:21,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_BULLSEYE
504,0,0,30,0,0,0,17:18:19:20:21,0,0,none,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_MADNESSCANCEL 504,0,0,30,0,0,0,17:18:19:20:21,0,0,none,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_MADNESSCANCEL
505,0,0,15,0,0,0,17:18:19:20:21,0,0,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_ADJUSTMENT 505,0,0,15,0,0,0,17:18:19:20:21,0,0,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_ADJUSTMENT
506,0,0,30,0,0,0,17:18:19:20:21,0,0,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_INCREASING 506,0,0,30,0,0,0,17:18:19:20:21,0,0,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_INCREASING
@ -410,7 +410,7 @@
517,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,20,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GATLINGFEVER 517,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,20,0,0,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,3,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_DUST 518,0,0,3:6:9:12:15:18:21:24:27:30,0,0,0,19,3,1,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,3,2:2:4:4:6:6:8:8:10:10,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_FULLBUSTER 519,0,0,20:25:30:35:40:45:50:55:60:65,0,0,0,19,3,2:2:4:4:6:6:8:8:10:10,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,15:20:25:30:35:40:45:50:55:60,0,0,0,19,3,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_SPREADATTACK 520,0,0,15:20:25:30:35:40:45:50:55:60,0,0,0,19,3,5,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,5,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT 521,0,0,4:8:12:16:20:24:28:32:36:40,0,0,0,21,5,1,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,2,0,0,0,99,6,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_SYURIKEN 523,0,0,2,0,0,0,99,6,1,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,30:25:20:15:10,0,0,0,99,7,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_KUNAI 524,0,0,30:25:20:15:10,0,0,0,99,7,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_KUNAI

View File

@ -89,7 +89,7 @@
484,0xb8, , 2, 0,1000,enemy, 0x808 //HW_GRAVITATION 484,0xb8, , 2, 0,1000,enemy, 0x808 //HW_GRAVITATION
488,0xb9, , 3, 0, -1,all, 0x200 //CG_HERMODE 488,0xb9, , 3, 0, -1,all, 0x200 //CG_HERMODE
516,0xba, , 0, 3, 100,enemy, 0x000 //GS_DESPERADO 516,0xba, , 0, 3, 100,enemy, 0x000 //GS_DESPERADO
521,0xc2, , 0, 1,1000,enemy, 0x006 //GS_GROUNDDRIFT 538,0xbb,,1:1:1:2:2:2:3:3:3:4,0,-1,all,0x000 //NJ_SUITON
527,0xbc, , -1, 0,2000,enemy, 0x000 //NJ_TATAMIGAESHI 527,0xbc, , -1, 0,2000,enemy, 0x000 //NJ_TATAMIGAESHI
535,0xbd, , -1, 0, 200,enemy, 0x008 //NJ_KAENSIN 535,0xbd, , -1, 0, 200,enemy, 0x008 //NJ_KAENSIN
538,0xbb,,1:1:1:2:2:2:3:3:3:4,0,-1,all,0x000 //NJ_SUITON 521,0xbe, , 0, 1,1000,enemy, 0x006 //GS_GROUNDDRIFT

View File

@ -9805,7 +9805,7 @@ int atcommand_mobinfo(
return 0; return 0;
} }
*========================================== /*=========================================
* @showmobs by KarLaeda * @showmobs by KarLaeda
* => For 5 sec displays the mobs on minimap * => For 5 sec displays the mobs on minimap
*------------------------------------------ *------------------------------------------

View File

@ -858,7 +858,6 @@ static struct Damage battle_calc_weapon_attack(
} }
wd.flag=(wd.flag&~BF_RANGEMASK)|BF_LONG; wd.flag=(wd.flag&~BF_RANGEMASK)|BF_LONG;
break; break;
case GS_MAGICALBULLET:
case HT_PHANTASMIC: case HT_PHANTASMIC:
//Since these do not consume ammo, they need to be explicitly set as arrow attacks. //Since these do not consume ammo, they need to be explicitly set as arrow attacks.
flag.arrow = 1; flag.arrow = 1;
@ -882,6 +881,10 @@ static struct Damage battle_calc_weapon_attack(
case NPC_GRANDDARKNESS: case NPC_GRANDDARKNESS:
case NJ_HUUMA: case NJ_HUUMA:
case NJ_TATAMIGAESHI: case NJ_TATAMIGAESHI:
case GS_FLING:
case GS_TRIPLEACTION:
case GS_BULLSEYE:
case GS_MAGICALBULLET:
wd.flag=(wd.flag&~BF_RANGEMASK)|BF_LONG; wd.flag=(wd.flag&~BF_RANGEMASK)|BF_LONG;
break; break;
@ -1506,13 +1509,10 @@ static struct Damage battle_calc_weapon_attack(
break; break;
case GS_BULLSEYE: case GS_BULLSEYE:
skillratio += 400; skillratio += 400;
flag.cardfix = 0;
break; break;
case GS_TRACKING: case GS_TRACKING:
skillratio += 60*skill_lv; skillratio += 100 *(skill_lv+1);
if (skill_lv == 2) skillratio += 20;
if (skill_lv == 3) skillratio += 80;
if (skill_lv >= 4) skillratio += 60*(skill_lv-3);
if (skill_lv == 10) skillratio += 80;
break; break;
case GS_PIERCINGSHOT: case GS_PIERCINGSHOT:
skillratio += 20*skill_lv; skillratio += 20*skill_lv;
@ -1521,16 +1521,16 @@ static struct Damage battle_calc_weapon_attack(
skillratio += 10*skill_lv; skillratio += 10*skill_lv;
break; break;
case GS_DESPERADO: case GS_DESPERADO:
skillratio += 50*skill_lv - 50; skillratio += 50*(skill_lv-1);
break; break;
case GS_DUST: case GS_DUST:
skillratio += 50*skill_lv; skillratio += 50*skill_lv;
break; break;
case GS_FULLBUSTER: case GS_FULLBUSTER:
skillratio += 200 + 100*skill_lv; skillratio += 100*(skill_lv+2);
break; break;
case GS_SPREADATTACK: case GS_SPREADATTACK:
skillratio += 20*skill_lv-20; skillratio += 20*(skill_lv-1);
break; break;
case NJ_HUUMA: case NJ_HUUMA:
skillratio += 50 + 150*skill_lv; skillratio += 50 + 150*skill_lv;

View File

@ -4821,6 +4821,9 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
npc_script_event(sd,NPCE_DIE); npc_script_event(sd,NPCE_DIE);
} }
if ( sd && sd->spiritball && (sd->class_&MAPID_BASEMASK)==MAPID_GUNSLINGER ) // maybe also monks' spiritballs ?
pc_delspiritball(sd,sd->spiritball,0);
if (src) if (src)
switch (src->type) { switch (src->type) {
case BL_MOB: case BL_MOB:

View File

@ -1356,10 +1356,6 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
case GS_BULLSEYE: //0.1% coma rate. case GS_BULLSEYE: //0.1% coma rate.
status_change_start(bl,SC_COMA,10,skilllv,0,0,0,0,0); status_change_start(bl,SC_COMA,10,skilllv,0,0,0,0,0);
break; break;
case GS_CRACKER:
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: case GS_PIERCINGSHOT:
sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time2(skillid,skilllv)); sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time2(skillid,skilllv));
break; break;
@ -1528,7 +1524,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
sc_start(src,SkillStatusChangeTable(skillid),100,skilllv,skill_get_time2(skillid,skilllv)); sc_start(src,SkillStatusChangeTable(skillid),100,skilllv,skill_get_time2(skillid,skilllv));
break; break;
case GS_FULLBUSTER: case GS_FULLBUSTER:
sc_start(src,SC_BLIND,(2*skilllv),skilllv,skill_get_time2(skillid,skilllv)); status_change_start(src,SC_BLIND,200*skilllv,skilllv,0,0,0,skill_get_time2(skillid,skilllv),10);
break; break;
} }
@ -2762,7 +2758,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
case TK_COUNTER: case TK_COUNTER:
case GS_TRIPLEACTION: case GS_TRIPLEACTION:
case GS_MAGICALBULLET: case GS_MAGICALBULLET:
case GS_CRACKER:
case GS_TRACKING: case GS_TRACKING:
case GS_PIERCINGSHOT: case GS_PIERCINGSHOT:
case GS_RAPIDSHOWER: case GS_RAPIDSHOWER:
@ -3145,7 +3140,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
break; break;
case GS_BULLSEYE: case GS_BULLSEYE:
if(tstatus->race == RC_BRUTE || tstatus->race == RC_DEMIHUMAN) if((tstatus->race == RC_BRUTE || tstatus->race == RC_DEMIHUMAN) && !(tstatus->mode&MD_BOSS))
skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
else if (sd) else if (sd)
clif_skill_fail(sd,skillid,0,0); clif_skill_fail(sd,skillid,0,0);
@ -3727,7 +3722,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case GS_MADNESSCANCEL: case GS_MADNESSCANCEL:
case GS_ADJUSTMENT: case GS_ADJUSTMENT:
case GS_INCREASING: case GS_INCREASING:
case GS_CRACKER:
case NJ_KASUMIKIRI: case NJ_KASUMIKIRI:
case NJ_UTSUSEMI: case NJ_UTSUSEMI:
case NJ_NEN: case NJ_NEN:
@ -5483,6 +5477,16 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
} }
break; break;
case GS_CRACKER:
if (!dstsd) // according to latest patch, should not work on players [Reddozen]
{
int rate=10+(skill_get_range2(src,skillid,skilllv)-distance_bl(src,bl))*20;
clif_skill_nodamage(src,bl,skillid,skilllv,1);
sc_start(bl,SC_STUN,(rate>100)?100:rate,skilllv,skill_get_time2(skillid,skilllv)); //New temp stun rate (by RockmanEXE)
}
else
clif_skill_fail(sd,skillid,0,0);
break;
case AM_REST: case AM_REST:
if (sd) if (sd)
{ {
@ -6474,6 +6478,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid,
struct status_data *status; struct status_data *status;
struct status_change *sc; struct status_change *sc;
int active_flag=1; int active_flag=1;
int subunt=0;
nullpo_retr(0, src); nullpo_retr(0, src);
@ -6680,17 +6685,36 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid,
break; break;
case GS_GROUNDDRIFT: case GS_GROUNDDRIFT:
{ //Take on the base element, not the elemental one. {
struct status_data *bstatus = status_get_base_status(src); int element[5]={ELE_WIND,ELE_DARK,ELE_POISON,ELE_WATER,ELE_FIRE};
val1 = bstatus?bstatus->rhw.ele:status->rhw.ele;
if (sd) sd->state.arrow_atk = 0; //Disable consumption right away. if (src->type == BL_PC)
else if (!val1) val1 = ELE_WATER+rand()%(ELE_WIND-ELE_WATER); val1=sd->arrow_ele;
else val1=element[rand()%5];
switch (val1)
{
case ELE_FIRE:
subunt++;
case ELE_WATER:
subunt++;
case ELE_POISON:
subunt++;
case ELE_DARK:
subunt++;
case ELE_WIND:
break;
default:
subunt=rand()%5;
break;
}
break; break;
} }
} }
nullpo_retr(NULL, group=skill_initunitgroup(src,(count > 0 ? count : layout->count), nullpo_retr(NULL, group=skill_initunitgroup(src,(count > 0 ? count : layout->count),
skillid,skilllv,skill_get_unit_id(skillid,flag&1), limit, interval)); skillid,skilllv,skill_get_unit_id(skillid,flag&1)+subunt, limit, interval));
group->val1=val1; group->val1=val1;
group->val2=val2; group->val2=val2;
group->val3=val3; group->val3=val3;
@ -7284,8 +7308,26 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
break; break;
case UNT_GROUNDDRIFT: case UNT_GROUNDDRIFT_WIND:
case UNT_GROUNDDRIFT_DARK:
case UNT_GROUNDDRIFT_POISON:
case UNT_GROUNDDRIFT_WATER:
case UNT_GROUNDDRIFT_FIRE:
skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,sg->val1); skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,sg->val1);
switch (sg->val1)
{
case ELE_WATER:
sc_start(bl,SC_FREEZE,5,sg->skill_lv,skill_get_time2(sg->skill_id, sg->skill_lv));
break;
case ELE_POISON:
sc_start(bl,SC_POISON,5,sg->skill_lv,skill_get_time2(sg->skill_id, sg->skill_lv));
break;
case ELE_DARK:
sc_start(bl,SC_BLIND,5,sg->skill_lv,skill_get_time2(sg->skill_id, sg->skill_lv));
break;
}
sg->unit_id = UNT_USED_TRAPS; sg->unit_id = UNT_USED_TRAPS;
clif_changetraplook(&src->bl, UNT_FIREPILLAR_ACTIVE); clif_changetraplook(&src->bl, UNT_FIREPILLAR_ACTIVE);
sg->limit=DIFF_TICK(tick,sg->tick)+1500; sg->limit=DIFF_TICK(tick,sg->tick)+1500;
@ -7751,7 +7793,7 @@ int skill_isammotype (TBL_PC *sd, int skill)
{ {
return ( return (
(sd->status.weapon == W_BOW || (sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE)) && (sd->status.weapon == W_BOW || (sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE)) &&
skill != HT_PHANTASMIC && skill != GS_MAGICALBULLET && skill != HT_PHANTASMIC &&
skill_get_type(skill) == BF_WEAPON && skill_get_type(skill) == BF_WEAPON &&
!(skill_get_nk(skill)&NK_NO_DAMAGE) && !(skill_get_nk(skill)&NK_NO_DAMAGE) &&
!skill_get_spiritball(skill,1) //Assume spirit spheres are used as ammo instead. !skill_get_spiritball(skill,1) //Assume spirit spheres are used as ammo instead.

View File

@ -947,8 +947,11 @@ enum {
UNT_SUITON = 0xbb, UNT_SUITON = 0xbb,
UNT_TATAMIGAESHI, UNT_TATAMIGAESHI,
UNT_KAENSIN, UNT_KAENSIN,
//0xbe, 0xc0, 0xc1 //Maybe the other elements of Ground Drift? UNT_GROUNDDRIFT_WIND,
UNT_GROUNDDRIFT = 0xc2, UNT_GROUNDDRIFT_DARK,
UNT_GROUNDDRIFT_POISON,
UNT_GROUNDDRIFT_WATER,
UNT_GROUNDDRIFT_FIRE,
}; };
#endif #endif