Преглед изворни кода

* Follow-up feca970 / r17515
-- Revert SC_PUSH_CART to 'cart' on RequiredState field (because SC_PUSH_CART for 2012++)
-- Defined MAX_SKILL_STATUS_REQUIRE for max 'RequiredStatuses' field
* Fixed bugreport:7946, standarize empty requirement with '0'

Cahyadi Ramadhan Togihon пре 11 година
родитељ
комит
6150ac7870
4 измењених фајлова са 33 додато и 20 уклоњено
  1. 10 8
      db/pre-re/skill_require_db.txt
  2. 10 8
      db/re/skill_require_db.txt
  3. 9 2
      src/map/skill.c
  4. 4 2
      src/map/skill.h

+ 10 - 8
db/pre-re/skill_require_db.txt

@@ -10,6 +10,7 @@
 //  hidden = Requires on hidden status by using Hiding, Cloaking, or maybe Chasewalk
 //  riding = Requires to ride either a peco or a dragon
 //  falcon = Requires a Falcon
+//  cart = Requires a Pushcart
 //  shield = Requires a 0,shield equipped
 //  recover_weight_rate = Requires to be less than 50% weight
 //  move_enable = Requires to be able to move
@@ -23,6 +24,7 @@
 //
 // 'RequiredStatuses'
 //  Fill the value only with SC_STATUS (see db/const.txt for more details)
+//  Usage for multiple status requirements: SC_STATUS1:SC_STATUS2:SC_STATUS3 (max. is MAX_SKILL_STATUS_REQUIRE)
 //  Use any number or SC_ALL will disable status requirements
 
 5,0,0,8:8:8:8:8:15:15:15:15:15,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//SM_BASH#バッシュ#
@@ -57,7 +59,7 @@
 35,0,0,15,0,0,0,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,0	//AL_CURE#キュア?#
 
 40,0,0,10,0,0,0,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,0	//MC_IDENTIFY#アイテム鑑定#
-41,0,0,30,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_VENDING#露店開設#
+41,0,0,30,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_VENDING#露店開設#
 42,0,0,5,0,0,100:200:300:400:500:600:700:800:900:1000,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,0	//MC_MAMMONITE#メマ?ナイト#
 
 45,0,0,25:30:35:40:45:50:55:60:65:70,0,0,0,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,0	//AC_CONCENTRATION#集中力向上#
@@ -146,8 +148,8 @@
 150,0,0,7,0,0,0,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,0	//TF_BACKSLIDING#バックステップ#
 151,0,0,3,0,0,0,99,0,0,recover_weight_rate,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//TF_PICKSTONE#石拾い#
 152,0,0,2,0,0,0,99,0,0,none,0,0,7049,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//TF_THROWSTONE#石投げ#
-153,0,0,12,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_CARTREVOLUTION#カ?トレボリュ?ション#
-154,0,0,40,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_CHANGECART#チェンジカ?ト#
+153,0,0,12,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_CARTREVOLUTION#カ?トレボリュ?ション#
+154,0,0,40,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_CHANGECART#チェンジカ?ト#
 155,0,0,8,0,0,0,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,0	//MC_LOUD#ラウドボイス#
 156,0,0,15,0,0,0,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,0	//AL_HOLYLIGHT#ホ?リ?ライト#
 157,0,0,30,0,0,0,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,0	//MG_ENERGYCOAT#エナジ?コ?ト#
@@ -296,7 +298,7 @@
 384,0,0,50:50:60:60:70:70:80:80:90:90,0,0,0,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,0	//WS_MELTDOWN#メルトダウン#
 385,0,0,5,0,0,0,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,0	//WS_CREATECOIN#クリエイトコイン#
 386,0,0,5,0,0,0,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,0	//WS_CREATENUGGET#塊製造#
-387,0,0,20,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WS_CARTBOOST#カ?トブ?スト#
+387,0,0,20,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WS_CARTBOOST#カ?トブ?スト#
 388,0,0,20,0,0,0,99,0,0,none,0,0,7137,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WS_SYSTEMCREATE#自動攻??置製作#
 389,0,0,10,0,0,0,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,0	//ST_CHASEWALK#チェイスウォ?ク#
 390,0,0,10:15:20:25:30,0,0,0,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,0	//ST_REJECTSWORD#リジェクトソ?ド#
@@ -595,7 +597,7 @@
 2261,0,0,30:45:60,0,0,0,99,8,1,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_ARMSCANNON#Arm Cannon#
 2262,0,0,20:40:60,0,0,0,99,0,0,mado,0,0,6146,1,2800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_ACCELERATION#Acceleration#
 2263,0,0,25,0,0,0,99,0,0,mado,0,0,6146,1,2801,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_HOVERING#Hovering#
-2264,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_F_SIDESLIDE#Front - Side Slide#
+2264,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_F_SIDESLIDE#Front - Side Slide#
 2265,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_B_SIDESLIDE#Back - Side Slide#
 
 2267,0,0,200,0,0,0,99,0,0,mado,0,0,6146,5,2802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_SELFDESTRUCTION#Self Destruction#
@@ -756,9 +758,9 @@
 
 //****
 // GN Genetic
-2476,0,0,30,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CART_TORNADO#Cart Tornado#
-2477,0,0,40:42:46:48:50,0,0,0,99,8,1,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CARTCANNON#Cart Cannon#
-2478,0,0,20:24:28:32:36,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CARTBOOST#Cart Boost#
+2476,0,0,30,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CART_TORNADO#Cart Tornado#
+2477,0,0,40:42:46:48:50,0,0,0,99,8,1,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CARTCANNON#Cart Cannon#
+2478,0,0,20:24:28:32:36,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CARTBOOST#Cart Boost#
 2479,0,0,22:26:30:34:38,0,0,0,99,0,0,none,0,0,6210,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_THORNS_TRAP#Thorn Trap#
 2480,0,0,30:35:40:45:50,0,0,0,99,0,0,none,0,0,6211,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_BLOOD_SUCKER#Blood Sucker#
 2481,0,0,55:60:65:70:75,0,0,0,99,0,0,none,0,0,6212,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_SPORE_EXPLOSION#Spore Explosion#

+ 10 - 8
db/re/skill_require_db.txt

@@ -10,6 +10,7 @@
 //  hidden = Requires on hidden status by using Hiding, Cloaking, or maybe Chasewalk
 //  riding = Requires to ride either a peco or a dragon
 //  falcon = Requires a Falcon
+//  cart = Requires a Pushcart (for renewal can replace this state by SC_PUSH_CART in 'RequiredStatuses' field)
 //  shield = Requires a 0,shield equipped
 //  recover_weight_rate = Requires to be less than 50% weight
 //  move_enable = Requires to be able to move
@@ -23,6 +24,7 @@
 //
 // 'RequiredStatuses'
 //  Fill the value only with SC_STATUS (see db/const.txt for more details)
+//  Usage for multiple status requirements: SC_STATUS1:SC_STATUS2:SC_STATUS3 (max. is MAX_SKILL_STATUS_REQUIRE)
 //  Use any number or SC_ALL will disable status requirements
 
 5,0,0,8:8:8:8:8:15:15:15:15:15,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//SM_BASH#バッシュ#
@@ -57,7 +59,7 @@
 35,0,0,15,0,0,0,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,0	//AL_CURE#キュア?#
 
 40,0,0,10,0,0,0,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,0	//MC_IDENTIFY#アイテム鑑定#
-41,0,0,30,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_VENDING#露店開設#
+41,0,0,30,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_VENDING#露店開設#
 42,0,0,5,0,0,100:200:300:400:500:600:700:800:900:1000,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,0	//MC_MAMMONITE#メマ?ナイト#
 
 45,0,0,25:30:35:40:45:50:55:60:65:70,0,0,0,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,0	//AC_CONCENTRATION#集中力向上#
@@ -146,8 +148,8 @@
 150,0,0,7,0,0,0,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,0	//TF_BACKSLIDING#バックステップ#
 151,0,0,3,0,0,0,99,0,0,recover_weight_rate,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//TF_PICKSTONE#石拾い#
 152,0,0,2,0,0,0,99,0,0,none,0,0,7049,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//TF_THROWSTONE#石投げ#
-153,0,0,12,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_CARTREVOLUTION#カ?トレボリュ?ション#
-154,0,0,40,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_CHANGECART#チェンジカ?ト#
+153,0,0,12,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_CARTREVOLUTION#カ?トレボリュ?ション#
+154,0,0,40,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MC_CHANGECART#チェンジカ?ト#
 155,0,0,8,0,0,0,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,0	//MC_LOUD#ラウドボイス#
 156,0,0,15,0,0,0,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,0	//AL_HOLYLIGHT#ホ?リ?ライト#
 157,0,0,30,0,0,0,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,0	//MG_ENERGYCOAT#エナジ?コ?ト#
@@ -296,7 +298,7 @@
 384,0,0,50:50:60:60:70:70:80:80:90:90,0,0,0,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,0	//WS_MELTDOWN#メルトダウン#
 385,0,0,5,0,0,0,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,0	//WS_CREATECOIN#クリエイトコイン#
 386,0,0,5,0,0,0,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,0	//WS_CREATENUGGET#塊製造#
-387,0,0,20,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WS_CARTBOOST#カ?トブ?スト#
+387,0,0,20,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WS_CARTBOOST#カ?トブ?スト#
 388,0,0,20,0,0,0,99,0,0,none,0,0,7137,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WS_SYSTEMCREATE#自動攻??置製作#
 389,0,0,10,0,0,0,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,0	//ST_CHASEWALK#チェイスウォ?ク#
 390,0,0,10:15:20:25:30,0,0,0,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,0	//ST_REJECTSWORD#リジェクトソ?ド#
@@ -596,7 +598,7 @@
 2261,0,0,30:45:60,0,0,0,99,8,1,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_ARMSCANNON#Arm Cannon#
 2262,0,0,20:40:60,0,0,0,99,0,0,mado,0,0,6146,1,2800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_ACCELERATION#Acceleration#
 2263,0,0,25,0,0,0,99,0,0,mado,0,0,6146,1,2801,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_HOVERING#Hovering#
-2264,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_F_SIDESLIDE#Front - Side Slide#
+2264,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_F_SIDESLIDE#Front - Side Slide#
 2265,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_B_SIDESLIDE#Back - Side Slide#
 
 2267,0,0,200,0,0,0,99,0,0,mado,0,0,6146,5,2802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NC_SELFDESTRUCTION#Self Destruction#
@@ -758,9 +760,9 @@
 
 //****
 // GN Genetic
-2476,0,0,30,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CART_TORNADO#Cart Tornado#
-2477,0,0,40:42:46:48:50,0,0,0,99,8,1,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CARTCANNON#Cart Cannon#
-2478,0,0,20:24:28:32:36,0,0,0,99,0,0,none,SC_PUSH_CART,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CARTBOOST#Cart Boost#
+2476,0,0,30,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CART_TORNADO#Cart Tornado#
+2477,0,0,40:42:46:48:50,0,0,0,99,8,1,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CARTCANNON#Cart Cannon#
+2478,0,0,20:24:28:32:36,0,0,0,99,0,0,cart,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_CARTBOOST#Cart Boost#
 2479,0,0,22:26:30:34:38,0,0,0,99,0,0,none,0,0,6210,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_THORNS_TRAP#Thorn Trap#
 2480,0,0,30:35:40:45:50,0,0,0,99,0,0,none,0,0,6211,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_BLOOD_SUCKER#Blood Sucker#
 2481,0,0,55:60:65:70:75,0,0,0,99,0,0,none,0,0,6212,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_SPORE_EXPLOSION#Spore Explosion#

+ 9 - 2
src/map/skill.c

@@ -13429,6 +13429,12 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
 				return 0;
 			}
 			break;
+		case ST_CART:
+			if(!pc_iscarton(sd)) {
+				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+				return 0;
+			}
+			break;
 		case ST_SHIELD:
 			if(sd->status.shield <= 0) {
 				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
@@ -17984,6 +17990,7 @@ static bool skill_parse_row_requiredb(char* split[], int columns, int current)
 	if(      strcmpi(split[10],"hidden")              == 0 ) skill_db[idx].require.state = ST_HIDDEN;
 	else if( strcmpi(split[10],"riding")              == 0 ) skill_db[idx].require.state = ST_RIDING;
 	else if( strcmpi(split[10],"falcon")              == 0 ) skill_db[idx].require.state = ST_FALCON;
+	else if( strcmpi(split[10],"cart")                == 0 ) skill_db[idx].require.state = ST_CART;
 	else if( strcmpi(split[10],"shield")              == 0 ) skill_db[idx].require.state = ST_SHIELD;
 	else if( strcmpi(split[10],"recover_weight_rate") == 0 ) skill_db[idx].require.state = ST_RECOV_WEIGHT_RATE;
 	else if( strcmpi(split[10],"move_enable")         == 0 ) skill_db[idx].require.state = ST_MOVE_ENABLE;
@@ -17999,9 +18006,9 @@ static bool skill_parse_row_requiredb(char* split[], int columns, int current)
 	//Status requirements
 	skill_db[idx].require.status_count = 0;
 	p = strtok(split[11],":");
-	for( j = 0; j < MAX_ITEMS_PER_COMBO && p != NULL; j++ ) {
+	for( j = 0; j < MAX_SKILL_STATUS_REQUIRE && p != NULL; j++ ) {
 		int status = SC_NONE;
-		script_get_constant(p, &status);		
+		script_get_constant(trim(p), &status);		
 		if (status > SC_NONE) {
 			skill_db[idx].require.status[skill_db[idx].require.status_count] = (enum sc_type)status;
 			skill_db[idx].require.status_count++;

+ 4 - 2
src/map/skill.h

@@ -103,6 +103,7 @@ enum e_skill_display {
 };
 
 #define MAX_SKILL_ITEM_REQUIRE	10
+#define MAX_SKILL_STATUS_REQUIRE 3
 struct skill_condition {
 	int hp,
 		mhp,
@@ -116,7 +117,7 @@ struct skill_condition {
 		itemid[MAX_SKILL_ITEM_REQUIRE],
 		amount[MAX_SKILL_ITEM_REQUIRE];
 	uint8 status_count;
-	enum sc_type status[MAX_SKILL_ITEM_REQUIRE];
+	enum sc_type status[MAX_SKILL_STATUS_REQUIRE];
 };
 
 struct s_skill_require {
@@ -134,7 +135,7 @@ struct s_skill_require {
 		itemid[MAX_SKILL_ITEM_REQUIRE],
 		amount[MAX_SKILL_ITEM_REQUIRE];
 	uint8 status_count;
-	enum sc_type status[MAX_SKILL_ITEM_REQUIRE];
+	enum sc_type status[MAX_SKILL_STATUS_REQUIRE];
 };
 
 /// Database skills
@@ -440,6 +441,7 @@ enum e_require_state {
 	ST_HIDDEN,
 	ST_RIDING,
 	ST_FALCON,
+	ST_CART,
 	ST_SHIELD,
 	ST_RECOV_WEIGHT_RATE,
 	ST_MOVE_ENABLE,