浏览代码

Merge branch 'master' of https://github.com/rathena/rathena into banking

Manually resolve Conflicts:
	conf/msg_conf/map_msg.conf
	db/packet_db.txt
	src/common/mmo.h
	src/map/pc.c
	src/map/pc.h
lighta 11 年之前
父节点
当前提交
cdb2e8ad33
共有 52 个文件被更改,包括 2270 次插入995 次删除
  1. 6 3
      conf/battle/items.conf
  2. 2 2
      conf/help.txt
  3. 12 3
      conf/msg_conf/map_msg.conf
  4. 125 92
      conf/msg_conf/map_msg_chn.conf
  5. 1 0
      conf/msg_conf/map_msg_frn.conf
  6. 20 0
      conf/msg_conf/map_msg_idn.conf
  7. 1 0
      conf/msg_conf/map_msg_por.conf
  8. 1 0
      conf/msg_conf/map_msg_rus.conf
  9. 1 0
      conf/msg_conf/map_msg_spn.conf
  10. 1 0
      conf/msg_conf/map_msg_tha.conf
  11. 62 1
      db/const.txt
  12. 2 0
      db/job_db2.txt
  13. 14 1
      db/packet_db.txt
  14. 55 55
      db/pre-re/item_db.txt
  15. 2 0
      db/pre-re/job_db1.txt
  16. 1 1
      db/pre-re/job_exp.txt
  17. 4 4
      db/pre-re/job_maxhpsp_db.txt
  18. 354 349
      db/pre-re/skill_cast_db.txt
  19. 50 0
      db/pre-re/skill_db.txt
  20. 31 0
      db/pre-re/skill_require_db.txt
  21. 46 0
      db/pre-re/skill_tree.txt
  22. 2 0
      db/pre-re/skill_unit_db.txt
  23. 66 66
      db/re/item_db.txt
  24. 2 0
      db/re/job_db1.txt
  25. 0 0
      db/re/job_exp.txt
  26. 4 4
      db/re/job_maxhpsp_db.txt
  27. 54 3
      db/re/skill_cast_db.txt
  28. 39 1
      db/re/skill_db.txt
  29. 131 0
      db/re/skill_require_db.txt
  30. 46 0
      db/re/skill_tree.txt
  31. 3 0
      db/re/skill_unit_db.txt
  32. 18 2
      doc/atcommands.txt
  33. 2 0
      doc/item_db.txt
  34. 55 55
      sql-files/item_db.sql
  35. 66 66
      sql-files/item_db_re.sql
  36. 3 1
      src/common/mmo.h
  37. 1 2
      src/common/timer.h
  38. 39 12
      src/map/atcommand.c
  39. 98 13
      src/map/battle.c
  40. 69 66
      src/map/clif.c
  41. 1 0
      src/map/clif.h
  42. 7 3
      src/map/itemdb.c
  43. 3 2
      src/map/mail.c
  44. 9 0
      src/map/map.c
  45. 4 0
      src/map/map.h
  46. 96 39
      src/map/pc.c
  47. 18 9
      src/map/pc.h
  48. 383 107
      src/map/skill.c
  49. 38 1
      src/map/skill.h
  50. 145 22
      src/map/status.c
  51. 65 8
      src/map/status.h
  52. 12 2
      src/map/unit.c

+ 6 - 3
conf/battle/items.conf

@@ -51,12 +51,15 @@ random_monster_checklv: no
 // NOTE: Wedding Rings and Whips/Musical Instruments will check gender regardless of setting.
 ignore_items_gender: yes
 
-// Item check? (Note 1)
+// Item check?
 // On map change it will check for items not tagged as "available" and 
-// auto-delete them from inventory/cart.
+// auto-delete them from inventory/cart/storage.
 // NOTE: An item is not available if it was not loaded from the item_db or you 
 // specify it as unavailable in db/item_avail.txt
-item_check: no
+// 1: Inventory
+// 2: Cart
+// 4: Storage
+item_check: 0
 
 // How much time must pass between item uses?
 // Only affects the delay between using items, prevents healing item abuse. Recommended ~500 ms

+ 2 - 2
conf/help.txt

@@ -102,7 +102,7 @@ jobchange: "Params: <job name|ID>\n" "Changes your job.\n"
 	"     23 Super Novice      24 Gunslinger              25 Ninja                 4045 Super Baby\n"
 	"4046 Taekwon           4047 Star Gladiator     4049 Soul Linker            4050 Gangsi\n"
 	"4051 Death Knight    4052 Dark Collector    4190 Ex. Super Novice  4191 Ex. Super Baby\n"
-	"4211 Kagerou            4212 Oboro\n"
+	"4211 Kagerou            4212 Oboro             4215 Rebellion\n"
 	"----- Baby Novice And Baby 1st Class -----\n"
 	"4023 Baby Novice      4024 Baby Swordman    4025 Baby Magician   4026 Baby Archer\n"
 	"4027 Baby Acolyte      4028 Baby Merchant       4029 Baby Thief\n"
@@ -136,7 +136,7 @@ hairstyle: "Params: <hairstyle no.>\n" "Changes your hair style."
 haircolor: "Params <hair palette no.>\n" "Changes your hair color."
 speed: "Params: <1-1000>\n" "Changes you walking speed. 1 being the fastest and 1000 the slowest. Default is 150."
 effect: "Params: <effect id> [<flag>]\n" "Give an effect to your character."
-dropall: "Throws all your possession on the ground."
+dropall: "Params: [<item type>]\n" "Throws all your possession on the ground. No type specified will drop all items."
 storeall: "Puts all your possessions in storage."
 killable: "Make your character killable."
 memo: "Params: [memo position]\n" "Set/change a memo location (no position: display memo points)."

+ 12 - 3
conf/msg_conf/map_msg.conf

@@ -668,7 +668,10 @@
 678: You are no longer the Guild Master.
 679: You have become the Guild Master!
 680: You have been recovered!
-//681-899 free
+681: Item %d has been removed from your inventory.
+682: Item %d has been removed from your cart.
+683: Item %d has been removed from your storage.
+//684-899 free
 
 681: Rune Knight T
 682: Warlock T
@@ -684,6 +687,7 @@
 692: Genetic T
 693: Shadow Chaser T
 694: Hanbok
+695: Rebellion
 
 
 //------------------------------------
@@ -1493,9 +1497,14 @@
 1490: Item types on your autoloottype list:
 1491: Your autoloottype list has been reset.
 
+// @dropall
+1492: Usage: @dropall {<type>}
+1493: Type List: (default) all = -1, healing = 0, usable = 2, etc = 3, weapon = 4, armor = 5, card = 6, petegg = 7, petarmor = 8, ammo = 10
+1494: %d items are dropped!
+
 //Banking
-1492: You can't withdraw that much money
-1493: Banking is disabled
+1495: You can't withdraw that much money
+1496: Banking is disabled
 
 //Custom translations
 //import: conf/msg_conf/import/map_msg_eng_conf.txt

+ 125 - 92
conf/msg_conf/map_msg_chn.conf

@@ -310,6 +310,13 @@
 290: 該角色不再可以殺人
 291: 天氣狀態會消失當傳送或刷新
 292: 殺手狀態重置
+//Item Bound System
+293: 綁定的道具無法交易至其他角色。
+294: 此綁定道具無法儲存。
+295: 請輸入道具名稱或ID (用法: @item <道具名稱或ID> <數量> <綁定類型>).
+296: 請輸入所有參數 (用法: @item2 <道具名稱或ID> <數量>
+297: <是否鑑定> <精鍊值> <屬性> <卡片1> <卡片2> <卡片3> <卡片4> <綁定類型>).
+298: 無效的綁定類型. 有效的綁定類型為: 1-帳號, 2-公會, 3-組隊 4-角色
 // Guild Castles Number
 // --------------------
 //299: ?? Castles
@@ -615,17 +622,17 @@
 650: 魅影追蹤者寶寶
 651: 擴充超級初心者
 652: 擴充超級初心者寶寶
-653: 影狼
-654: 
+653: 日影忍者
+654: 月影忍者
 655: 未知職業
 
 // MvP Tomb
 // Added here so it can be easily translated
 656: 墓碑
 657: [ ^EE0000%s^000000 ]
-658: 已逝世
-659: 死亡日期 : ^EE0000%s^000000
-660: 被此人擊敗
+658: 在此結束了短暫的生命。
+659: 死亡時間  : ^EE0000%s^000000
+660: 送安息禮物的人
 661: [^EE0000%s^000000]
 
 // Etc messages from source
@@ -664,6 +671,7 @@
 692: 基因學者 T
 693: 魅影追蹤者 T
 694: 韓服
+695: Rebellion
 
 
 //------------------------------------
@@ -854,35 +862,35 @@
 1037: Error reading atcommand_athena.conf, reload failed.
 
 // @mapinfo
-1038: Please enter at least one valid list number (用法: @mapinfo <0-3> <map>).
-1039: ------ Map Info ------
-1040: Map Name: %s | Players In Map: %d | NPCs In Map: %d | Chats In Map: %d
-1041: ------ Map Flags ------
-1042: Town Map
-1043: Autotrade Enabled
-1044: Autotrade Disabled
-1045: Battlegrounds ON (type %d)
-1046: PvP Flags: 
-1047: GvG Flags:
-1048: Teleport Flags:
-1049: Weather Flags:
-1050: Other Flags:
-1051: Other Flags2:
+1038: 請至少輸入一個有效的列表數字 (使用方法: @mapinfo <0-3> [地圖名稱])
+1039: ------ 地圖資訊 ------
+1040: 地圖名: %s | 地圖玩家數量: %d | 地圖NPC數量: %d | 地圖聊天室數量: %d
+1041: ------ 地圖旗標 ------
+1042: 城市地圖
+1043: 可離線掛店
+1044: 不可離線掛店
+1045: 戰場 (類型 %d)
+1046: PvP 旗標: 
+1047: GvG 旗標:
+1048: 傳送 旗標:
+1049: 天氣 旗標:
+1050: 其它 旗標:
+1051: 其它 旗標2:
 //1052-1064 free
-1065:  No Exp Penalty: %s | No Zeny Penalty: %s
-1066: On
-1067: Off
-1068: No Save (Return to last Save Point)
-1069: No Save, Save Point: %s,Random
-1070: No Save, Save Point: %s,%d,%d
+1065:  死亡無經驗懲罰: %s | 死亡無金錢懲罰: %s
+1066: 開啟
+1067: 關閉
+1068: 無法儲存位置(返回最後無法儲存位置)
+1069: 無法儲存位置, 儲存地圖: %s,隨機座標
+1070: 無法儲存位置, 儲存位置: %s,%d,%d
 
 // @mount
-1119: You have mounted your Dragon.
-1120: You have released your Dragon.
-1121: You have mounted your Warg.
-1122: You have released your Warg.
-1123: You have mounted your Mado Gear.
-1124: You have released your Mado Gear.
+1119: 已騎乘龍座騎。
+1120: 已釋放龍座騎。
+1121: 已騎乘狼座騎。
+1122: 已釋放狼座騎。
+1123: 已搭乘魔導機甲。
+1124: 已卸下機甲裝置.
 
 // @guildspy
 1125: The mapserver has spy command support disabled.
@@ -940,7 +948,7 @@
 1147: Please enter guild name/ID (用法: @undisguiseguild <guild name/ID>).
 
 // @exp
-1148: Base Level: %d (%.3f%%) | Job Level: %d (%.3f%%)
+1148: 基本等級: %d (%.3f%%) | 職業等級: %d (%.3f%%)
 
 // @broadcast
 1149: 請輸入訊息 (用法: @broadcast <訊息>).
@@ -965,12 +973,12 @@
 1158: New warp NPC '%s' created.
 
 // @follow
-1159: Follow mode OFF.
-1160: Follow mode ON.
+1159: 跟隨模式 關閉.
+1160: 跟隨模式 開啟.
 
 // @storeall
-1161: You currently cannot open your storage.
-1162: All items stored.
+1161: 目前無法開啟倉庫。
+1162: 所有物品已經儲存。
 
 // @skillid
 1163: Please enter a skill name to look up (用法: @skillid <skill name>).
@@ -999,42 +1007,42 @@
 1176: '%s' and his/her partner are now divorced.
 
 // @changelook
-1177: 用法: @changelook {<position>} <view id>
-1178: Position: 1-Top 2-Middle 3-Bottom 4-Weapon 5-Shield 6-Shoes 7-Robe
+1177: 用法: @changelook {<至置>} <view id>
+1178: 位置: 1-頭上 2-頭中 3-頭下 4-武器 5-盾 6-鞋 7-背飾
 
 // @autotrade
-1179: Autotrade is not allowed on this map.
-1180: You cannot autotrade when dead.
+1179: 此地圖不允許開啟自動檢取道具。
+1180: 角色死亡不允許使用檢取道具指令。
 
 // @changegm
-1181: You need to be a Guild Master to use this command.
-1182: You cannot change guild leaders on this map.
-1183: 用法: @changegm <guild_member_name>
-1184: Target character must be online and be a guild member.
+1181: 只有公會會長才能使用此命令。
+1182: 此地圖不允許轉移公會會長。
+1183: 用法: @changegm <公會成員名稱>
+1184: 目標玩家必須在線且是公會成員。
 
 // @changeleader
-1185: 用法: @changeleader <party_member_name>
+1185: 用法: @changeleader <隊伍成員名稱>
 
 // @partyoption
-1186: 用法: @partyoption <pickup share: yes/no> <item distribution: yes/no>
+1186: 使用方法: @partyoption <拾取共享: yes/no> <道具分配: yes/no>
 
 // @autoloot
-1187: Autolooting items with drop rates of %0.02f%% and below.
-1188: Autoloot is now off.
+1187: 自動拾取掉率為 %0.02f%% 及以下的道具。
+1188: 自動拾取物品已關閉。
 
 // @autolootitem
-1189: Item not found.
-1190: You're already autolooting this item.
-1191: Your autolootitem list is full. Remove some items first with @autolootid -<物品名稱 or ID>.
-1192: Autolooting item: '%s'/'%s' {%d}
-1193: You're currently not autolooting this item.
-1194: Removed item: '%s'/'%s' {%d} from your autolootitem list.
-1195: You can have %d items on your autolootitem list.
-1196: To add an item to the list, use "@alootid +<物品名稱 or ID>". To remove an item, use "@alootid -<物品名稱 or ID>".
-1197: "@alootid reset" will clear your autolootitem list.
-1198: Your autolootitem list is empty.
-1199: Items on your autolootitem list:
-1200: Your autolootitem list has been reset.
+1189: 未找到此道具。
+1190: 此道具已在自動檢取列表中了。
+1191: 自動檢取列表已經滿了,移除某些道具方法 @autolootid -<道具名稱或ID>。
+1192: 自動檢取的道具為: '%s'/'%s' {%d}。
+1193: 目前你尚未將此道具列入自動檢取項目中。
+1194: 已從自動檢取列表中移除道具: '%s'/'%s' {%d}。
+1195: 在自動檢取列表你最多能有 %d 個檢取的項目。
+1196: 如要在自動檢取項目列表增加檢取道具,使用 "@alootid +<道具名稱或ID>", 如要從列表移除道具 "@alootid -<道具名稱或ID>"。
+1197: "@alootid reset" 將會清空所有自動檢取項目列表。
+1198: 你的自動檢取項目列表是空的。
+1199: 你自動檢取列表項目為:
+1200: 你的自動檢取項目列表已經重置。
 
 // @rain
 //1201: The rain has stopped.
@@ -1090,10 +1098,10 @@
 1225: Please enter a monster name (用法: @summon <monster name> {duration}).
 
 // @adjgroup
-1226: 用法: @adjgroup <group_id>
-1227: Specified group does not exist.
-1228: Group changed successfully.
-1229: Your group has changed.
+1226: 用法: @adjgroup <群組id>
+1227: 指定的群組不存在. 
+1228: 成功變更群組。
+1229: 你的群組已變更.
 
 // @trade
 1230: 請輸入角色名稱 (用法: @trade <char name>).
@@ -1115,17 +1123,17 @@
 1238: There are no items to appraise.
 
 // @mobinfo
-1239: Please enter a monster name/ID (用法: @mobinfo <monster_name_or_monster_ID>).
-1240: MVP Monster: '%s'/'%s'/'%s' (%d)
-1241: Monster: '%s'/'%s'/'%s' (%d)
-1242:  Lv:%d  HP:%d  Base EXP:%u  Job EXP:%u  HIT:%d  FLEE:%d
-1243:  DEF:%d  MDEF:%d  STR:%d  AGI:%d  VIT:%d  INT:%d  DEX:%d  LUK:%d
-1244:  ATK:%d~%d  Range:%d~%d~%d  Size:%s  Race: %s  Element: %s (Lv:%d)
-1245:  Drops:
-1246: This monster has no drops.
-1247:  MVP Bonus EXP:%u
-1248:  MVP Items:
-1249: This monster has no MVP prizes.
+1239: 請輸入魔物名稱或魔物ID (用法: @mobinfo <魔物名稱或魔物ID>).
+1240: MVP 魔物: '%s'/'%s'/'%s' (%d)
+1241: 魔物: '%s'/'%s'/'%s' (%d)
+1242: 等級:%d  血量:%d  基本經驗值:%u  職業經驗值:%u  命中率:%d  迴避率:%d
+1243: 防禦:%d  魔防:%d  STR:%d  AGI:%d  VIT:%d  INT:%d  DEX:%d  LUK:%d
+1244: 物理攻擊力:%d~%d 攻擊範圍:%d~%d~%d  體型:%s  種族: %s  屬性: %s (Lv:%d)
+1245: 掉落:
+1246: 此魔物不掉落道具.
+1247: MVP額外經驗值:%u
+1248: MVP額外獎勵道具:
+1249: 此魔物無MVP額外獎勵道具.
 
 // @showmobs
 1250: Invalid mob id %s!
@@ -1210,10 +1218,10 @@
 1297: Please enter a time in minutes (用法: @mutearea/@stfu <time in minutes>).
 
 // @rates
-1298: Experience rates: Base %.2fx / Job %.2fx
-1299: Normal Drop Rates: Common %.2fx / Healing %.2fx / Usable %.2fx / Equipment %.2fx / Card %.2fx
-1300: Boss Drop Rates: Common %.2fx / Healing %.2fx / Usable %.2fx / Equipment %.2fx / Card %.2fx
-1301: Other Drop Rates: MvP %.2fx / Card-Based %.2fx / Treasure %.2fx
+1298: 經驗倍率: 基本 %.2fx / 職業 %.2fx
+1299: 普通掉率: 普通物品 %.2fx / 治癒物品 %.2fx / 可使用物品 %.2fx / 裝備 %.2fx / 卡片 %.2fx
+1300: Boss掉率: 普通物品 %.2fx / 治癒物品 %.2fx / 可使用物品 %.2fx / 裝備 %.2fx / 卡片 %.2fx
+1301: 其他掉率: MvP獎勵道具 %.2fx / 卡片加成 %.2fx / 寶箱 %.2fx
 
 // @me
 1302: 請輸入訊息 (用法: @me <訊息>).
@@ -1263,15 +1271,15 @@
 1324: Reset 'Feeling' maps.
 
 // @noks
-1325: [ K.S Protection Inactive ]
-1326: [ K.S Protection Active - Option: Party ]
-1327: [ K.S Protection Active - Option: Self ]
-1328: [ K.S Protection Active - Option: Guild ]
-1329: 用法: @noks <self|party|guild>
+1325: [ 防搶怪保護 關閉 ]
+1326: [ 防搶怪保護 開啟 - 項目: 組隊 ]
+1327: [ 防搶怪保護 開啟 - 項目: 自己 ]
+1328: [ 防搶怪保護 開啟 - 項目: 公會 ]
+1329: 使用法: @noks <self|party|guild>
 
 // @allowks
-1330: [ Map K.S Protection Active ]
-1331: [ Map K.S Protection Inactive ]
+1330: [ 此地圖防搶怪保護為開啟狀態 ]
+1331: [ 此地圖防搶怪保護為關閉狀態 ]
 
 // @itemlist
 1332: ------ %s items list of '%s' ------
@@ -1331,7 +1339,7 @@
 1376: %s data type is not supported :%u
 
 // @reloadquestdb
-1377: Quest database has been reloaded.
+1377: 完成重載任睥數據庫.
 
 // @addperm
 1378: 用法: %s <permission_name>
@@ -1357,15 +1365,15 @@
 1392: Cart Added.
 
 // atcommand.c::is_atcommand
-1393: You can't use commands while dead.
+1393: 角色死亡時不能使用指令。
 
 // @clearstorage
-1394: Your storage was cleaned.
-1395: Your guild storage was cleaned.
+1394: 清除了公會倉庫 裡的所有物品。
+1395: 清除了公會倉庫 裡的所有物品。
 
 // @clearcart
-1396: You do not have a cart to be cleaned.
-1397: Your cart was cleaned.
+1396: 沒有手推車可以清除物品。
+1397: 手推車裡的所有物品被清除。
 
 // @skillid (extension)
 1398: -- Displaying first %d partial matches:
@@ -1452,5 +1460,30 @@
 1475: ---- 我的頻道 ----
 1476: 你沒有加入任何的頻道
 
+// @reloadpacketdb
+1477: 完成重載封包數據庫.
+
+// @partysharelvl
+1478: 隊伍經驗均分的等級間距已成功變更。
+1479: 設置更新失敗,原因是角色伺服器掉線。
+
+// @autoloottype
+1480: 道具類型未找到。
+1481: 你已設定檢取此類型道具。
+1482: 你的檢取道具類型表已包括所有的型類,你可以移除一些道具類型 @autoloottype -<類型名稱或ID>。
+1483: 檢取的道具類型: '%s' {%d} 。
+1484: 你未設置檢取這類型的道具。
+1485: 從道具類型檢取表移除道具類型: '%s' {%d} 。
+1486: 添加道具類型到檢取列表,使用 "@aloottype +<類型名稱或ID>". 如要移除檢取道具類型,使用 "@aloottype -<類型名稱或ID>".
+1487: 類型列表:  藥水/料理 = 0, 消耗品 = 2, 其他 = 3, 武器 = 4, 防具 = 5, 卡片 = 6, 寵物蛋 = 7, 寵物裝備 = 8, 箭/子彈 = 10
+1488: "@aloottype reset" 將清除道具類型檢取表。
+1489: 你的道具類型檢取表是空。
+1490: 道具類型檢取表的道具類型:
+1491: 你的道具類型檢取表已被重置。
+
+// @dropall
+1492: 使用方法: @dropall {<類型>}
+1493: 類型列表: (預設值) 全部 = -1, 藥水/料理 = 0, 消耗品 = 2, 其他 = 3, 武器 = 4, 防具 = 5, 卡片 = 6, 寵物蛋 = 7, 寵物裝備 = 8, 箭/子彈 = 10
+1494: %d 物品已掉落!
 //Custom translations
 //import: conf/msg_conf/import/map_msg_chn_conf.txt

+ 1 - 0
conf/msg_conf/map_msg_frn.conf

@@ -683,6 +683,7 @@
 692: Genetic T
 693: Shadow Chaser T
 694: Hanbok
+695: Rebellion
 
 
 //------------------------------------

+ 20 - 0
conf/msg_conf/map_msg_idn.conf

@@ -683,6 +683,7 @@
 692: Genetic T
 693: Shadow Chaser T
 694: Hanbok
+695: Rebellion
 
 
 //------------------------------------
@@ -1478,5 +1479,24 @@
 1478: Jarak level dalam party share telah diubah dengan sukses.
 1479: Gagal memperbaruhi pengaturan. Server karakter sedang offline.
 
+// @autoloottype
+1480: Tipe item tidak ditemukan.
+1481: Kamu sudah meng-autoloot tipe item ini.
+1482: Daftar autoloottype-mu sudah memiliki semua tipe. Kamu dapat menghilangkan beberapa tipe item dengan @autoloottype -<nama atau ID item>.
+1483: Meng-autoloot tipe item: '%s' {%d}
+1484: Kamu sudah tidak meng-autoloot tipe item ini.
+1485: Tipe item: '%s' {%d} dihilangkan dari daftar autoloottype-mu.
+1486: Untuk menambahkan tipe item ke dalam daftar, gunakan "@aloottype +<nama atau ID tipe>". Untuk menghilangkan sebuah tipe item, gunakan "@aloottype -<nama atau ID tipe>".
+1487: Daftar tipe: healing = 0, usable = 2, etc = 3, weapon = 4, armor = 5, card = 6, petegg = 7, petarmor = 8, ammo = 10
+1488: "@aloottype reset" akan membersihkan daftar autoloottype-mu.
+1489: Dafatr autoloottype-mu kosong.
+1490: Tipe item yang berada di daftar autoloottype-mu:
+1491: Daftar autoloottype-mu telah direset.
+
+// @dropall
+1492: Penggunaan: @dropall {<tipe>}
+1493: Daftar 'tipe': (default) all = -1, healing = 0, usable = 2, etc = 3, weapon = 4, armor = 5, card = 6, petegg = 7, petarmor = 8, ammo = 10
+1494: %d item telah dijatuhkan!
+
 //Bila ada terjemahan lain
 //import: conf/msg_conf/import/map_msg_idn_conf.txt

+ 1 - 0
conf/msg_conf/map_msg_por.conf

@@ -663,6 +663,7 @@
 692: Bioquímico T
 693: Renegado T
 694: Hanbok
+695: Rebellion
 
 
 //------------------------------------

+ 1 - 0
conf/msg_conf/map_msg_rus.conf

@@ -682,6 +682,7 @@
 692: Genetic T
 693: Shadow Chaser T
 694: Hanbok
+695: Rebellion
 
 //695-899 ÍÅ ÈÑÏÎËÜÇÓÅÒÑß
 

+ 1 - 0
conf/msg_conf/map_msg_spn.conf

@@ -670,6 +670,7 @@
 692: Genetic T
 693: Shadow Chaser T
 694: Hanbok
+695: Rebellion
 
 
 //------------------------------------

+ 1 - 0
conf/msg_conf/map_msg_tha.conf

@@ -677,6 +677,7 @@
 692: Genetic T
 693: Shadow Chaser T
 694: Hanbok
+695: Rebellion
 
 
 //------------------------------------

+ 62 - 1
db/const.txt

@@ -166,6 +166,8 @@ Job_Super_Baby_E	4191
 Job_Kagerou	4211
 Job_Oboro	4212
 
+Job_Rebellion  4215
+
 EAJL_2_1	0x100
 EAJL_2_2	0x200
 EAJL_2	0x300
@@ -197,6 +199,7 @@ EAJ_PRIEST	0x104
 EAJ_BLACKSMITH	0x105
 EAJ_ASSASSIN	0x106
 EAJ_STAR_GLADIATOR	0x107
+EAJ_REBELLION	0x109
 EAJ_KAGEROUOBORO	0x10A
 EAJ_DEATH_KNIGHT	0x10E
 
@@ -1326,7 +1329,18 @@ SC_MONSTER_TRANSFORM 566
 SC_ANGEL_PROTECT 567
 SC_ILLUSIONDOPING 568
 SC_FLASHCOMBO 569
-SC_EXTREMITYFIST2	570
+SC_MOONSTAR  570
+SC_SUPER_STAR  571
+SC_HEAT_BARREL	572
+SC_HEAT_BARREL_AFTER	573
+SC_P_ALTER	574
+SC_E_CHAIN	575
+SC_C_MARKER	576
+SC_ANTI_M_BLAST	577
+SC_B_TRAP	578
+SC_H_MINE	579
+SC_QD_SHOT_READY	580
+SC_EXTREMITYFIST2	581
 
 e_gasp	0
 e_what	1
@@ -2528,6 +2542,36 @@ EF_MIRESULT_MAKE_FAIL	1018
 EF_ALL_RAY_OF_PROTECTION	1019
 EF_VENOMFOG	1020
 EF_DUSTSTORM	1021
+//1022 - 1039 Unknown
+EF_GC_DARKCROW	1040
+EF_RK_DRAGONBREATH_WATER	1041
+EF_ALL_FULL_THROTTLE	1042
+EF_SR_FLASHCOMBO	1043
+EF_RK_LUXANIMA	1044
+//1045 Unknown
+EF_SO_ELEMENTAL_SHIELD	1046
+EF_AB_OFFERTORIUM	1047
+EF_WL_TELEKINESIS_INTENSE	1048
+EF_GN_ILLUSIONDOPING	1049
+EF_NC_MAGMA_ERUPTION	1050
+EF_LG_KINGS_GRACE	1051
+EF_BLOODDRAIN2	1052
+EF_NPC_WIDEWEB	1053
+EF_NPC_BURNT	1054
+EF_NPC_CHILL	1055
+EF_RA_UNLIMIT	1056
+EF_AB_OFFERTORIUM_RING	1057
+EF_SC_ESCAPE	1058
+EF_WM_FRIGG_SONG	1059
+EF_C_MAKER	1060
+//1061 Unknown
+EF_HAMMER_OF_GOD	1062
+//1063 - 1065 Unknown
+EF_BANISHING_BUSTER	1066
+EF_SLUGSHOT	1067
+EF_D_TAIL	1068
+//1069 - 1077 Unknown
+EF_S_STORM	1078
 
 WARPNPC	45
 1_ETC_01	46
@@ -3261,6 +3305,23 @@ THANATOS_KEEP	10009
 4_ENERGY_WHITE	10046
 4_F_PERE01	10047
 4_JITTERBUG	10048
+4_SEA_OTTER	10049
+4_GALAPAGO	10050
+4_DESERTWOLF_B	10051
+4_BB_PORING	10052
+4_F_CHARLESTON01	10053
+4_F_CHARLESTON02	10054
+4_F_CHARLESTON03	10055
+4_M_IAN	10056
+4_M_OLDSCHOLAR	10057
+4_F_LAPERM	10058
+4_M_DEBON	10059
+4_M_BIRMAN	10060
+4_F_SHAM	10061
+4_M_REBELLION	10062
+4_F_REBELLION	10063
+4_CHN_SHAOTH	10064
+4_SHOAL	10065
 
 HAVEQUEST	0
 PLAYTIME	1

+ 2 - 0
db/job_db2.txt

@@ -287,3 +287,5 @@
 4211,5,0,4,0,2,3,0,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,6,3,4,0,5,0,2,0,1,4,0,5,4,0,3,5,1,0,2,4,1,0,5,6,2,1,0,5
 // Oboro
 4212,5,0,4,0,2,3,0,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,6,3,4,0,5,0,2,0,1,4,0,5,4,0,3,5,1,0,2,4,1,0,5,6,2,1,0,5
+// Rebellion
+4215,5,6,0,6,0,5,0,0,0,6,5,6,0,0,4,0,5,0,0,5,6,0,0,0,5,2,0,0,0,3,6,1,0,0,5,4,0,0,5,0,1,0,6,0,5,0,0,1,0,1

+ 14 - 1
db/packet_db.txt

@@ -2028,7 +2028,7 @@ packet_ver: 39
 0x093A,5,hommenu,2:4
 0x0964,36,storagepassword,2:4:20
 
-//2013-06-18 Ragexe (Shaktoh)
+//2013-06-18 Ragexe (Shakto)
 packet_ver: 40
 0x0889,7,actionrequest,2:6
 0x0951,10,useskilltoid,2:4:6
@@ -2190,6 +2190,7 @@ packet_ver: 44
 0x0863,26,friendslistadd,2
 0x088A,5,hommenu,2:4
 0x095B,36,storagepassword,2:4:20
+<<<<<<< HEAD
 0x09A6,12,ZC_BANKING_CHECK,2:10
 0x09A7,10,bankdeposit,2:6
 0x09A8,16,ZC_ACK_BANKING_DEPOSIT,2:4:12
@@ -2200,6 +2201,18 @@ packet_ver: 44
 0x09B7,4,ZC_ACK_OPEN_BANKING,2
 0x09B8,6,bankclose,2
 0x09B9,4,ZC_ACK_CLOSE_BANKING,2
+=======
+0x09A6,12 // ZC_BANKING_CHECK
+0x09A7,10,bankdeposit,2:6
+0x09A8,14 // ZC_ACK_BANKING_DEPOSIT
+0x09A9,10,bankwithdrawal,2:6
+0x09AA,14 // ZC_ACK_BANKING_WITHDRAW
+0x09AB,6,bankcheck,2
+0x09B6,6,bankopen,2
+0x09B7,4 // ZC_ACK_OPEN_BANKING
+0x09B8,6,bankclose,2
+0x09B9,4 // ZC_ACK_CLOSE_BANKING
+>>>>>>> master
 
 //2013-08-07Ragexe (Shakto)
 packet_ver: 45

+ 55 - 55
db/pre-re/item_db.txt

@@ -1292,7 +1292,7 @@
 2379,Warlock_Battle_Robe,Warlock's Battle Robe,5,10,,0,,3,,1,0x00810204,7,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
 2380,Medic_Robe,Medic's Robe,5,10,,0,,3,,1,0x00008110,7,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
 2381,Elite_Archer_Suit,Elite Archer Suit,5,10,,0,,3,,1,0x00080808,7,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
-2382,Elite_Shooter_Suit,Elite Shooter Suit,5,10,,0,,3,,1,0x01000000,7,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
+2382,Elite_Shooter_Suit,Elite Shooter Suit,5,10,,0,,3,,1,0x41000000,7,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
 2383,Brynhild,Brynhild,5,20,,400,,10,,0,0xFFFFFFFF,7,2,16,,94,0,0,{ bonus bMdef,10; bonus bMaxHP,20*BaseLevel; bonus bMaxSP,5*BaseLevel; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; bonus bUnbreakableArmor,0; bonus bNoKnockback,0; },{},{}
 2384,Spritual_Tunic,Spiritual Tunic,5,20,,0,,10,,0,0xFFFFFFFF,7,2,16,,0,0,0,{ bonus bMaxHP,800; bonus2 bResEff,Eff_Freeze,10000; bonus2 bSubEle,Ele_Earth,20; bonus2 bSubEle,Ele_Fire,20; bonus2 bSubEle,Ele_Wind,20; bonus2 bSubEle,Ele_Poison,20; bonus2 bSubEle,Ele_Holy,20; bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Ghost,20; bonus2 bSubEle,Ele_Undead,20; },{},{}
 2385,Recuperative_Armor,Recuperative Armor,5,20,,0,,12,,0,0xFFFFFFFF,7,2,16,,0,0,0,{ bonus bNoRegen,1; bonus bNoRegen,2; bonus bHPGainValue,60; bonus bSPGainValue,6; bonus bMagicHPGainValue,60; bonus bMagicSPGainValue,6; },{},{ heal 0,-100; }
@@ -1348,7 +1348,7 @@
 2434,Black_Leather_Boots_,Black Leather Boots,5,20,,500,,4,,1,0xFFFFFFFE,2,2,64,,55,1,0,{ bonus bAgi,1; if(getrefine()>=9) bonus bAgi,2; },{},{}
 2435,Battle_Greave,Battle Greaves,5,10,,0,,4,,1,0x026654E2,7,2,64,,80,1,0,{ bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
 2436,Combat_Boots,Combat Boots,5,10,,0,,3,,1,0x00898B1C,7,2,64,,80,1,0,{ bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
-2437,Battle_Boots,Battle Boots,5,10,,0,,3,,1,0x01000000,7,2,64,,80,1,0,{ bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
+2437,Battle_Boots,Battle Boots,5,10,,0,,3,,1,0x41000000,7,2,64,,80,1,0,{ bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
 2438,Paw_Of_Cat,Paw Of Cat,5,10,,300,,0,,0,0xFFFFFFFF,7,2,64,,80,1,0,{ bonus bFlee,5; bonus bAgi,1; },{},{}
 2439,Refresh_Shoes,Refresh Shoes,5,20,,0,,9,,0,0xFFFFFFFF,7,2,64,,0,0,0,{ bonus bMaxHPRate,17; bonus bMaxSPRate,8; bonus2 bHPRegenRate,20,10000; bonus2 bSPRegenRate,3,10000; },{},{}
 2440,Sprint_Shoes,Sprint Shoes,5,20,,300,,2,,1,0x00CFFF80,2,2,64,,70,1,0,{ bonus bAgi,1; bonus bSPrecovRate,5; },{},{}
@@ -1403,7 +1403,7 @@
 2537,Diabolus_Manteau,Diabolus Manteau,5,20,,250,,5,,1,0x00CFFF80,2,2,4,,0,1,0,{ bonus2 bSubEle,Ele_Neutral,5; bonus bMaxHP,100; bonus2 bAddDamageClass,1916,10; bonus2 bAddDamageClass,1917,10; },{},{}
 2538,Commander_Manteau,Captain's Manteau,5,10,,0,,4,,1,0x026654E2,7,2,4,,80,1,0,{ bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
 2539,Commander_Manteau_,Commander's Manteau,5,10,,0,,3,,1,0x00898B1C,7,2,4,,80,1,0,{ bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
-2540,Sheriff_Manteau,Sheriff's Manteau,5,10,,0,,3,,1,0x01000000,7,2,4,,80,1,0,{ bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
+2540,Sheriff_Manteau,Sheriff's Manteau,5,10,,0,,3,,1,0x41000000,7,2,4,,80,1,0,{ bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
 2541,Asprika,Asprika,5,20,,400,,5,,0,0xFFFFFFFF,7,2,4,,94,0,0,{ bonus bMdef,5; bonus3 bSubEle,Ele_Neutral,30,BF_SHORT; bonus3 bSubEle,Ele_Water,30,BF_SHORT; bonus3 bSubEle,Ele_Earth,30,BF_SHORT; bonus3 bSubEle,Ele_Fire,30,BF_SHORT; bonus3 bSubEle,Ele_Wind,30,BF_SHORT; bonus3 bSubEle,Ele_Poison,30,BF_SHORT; bonus3 bSubEle,Ele_Holy,30,BF_SHORT; bonus3 bSubEle,Ele_Dark,30,BF_SHORT; bonus3 bSubEle,Ele_Ghost,30,BF_SHORT; bonus3 bSubEle,Ele_Undead,30,BF_SHORT; bonus bFlee,30; skill "AL_TELEPORT",1; bonus bUnbreakableGarment,0; },{},{}
 2542,Flame_Manteau,Flame Manteau of Naght Sieger,5,20,,70,,4,,1,0xFFFFFFFE,2,2,4,,70,1,0,{ bonus bMaxHPRate,5; bonus bMdef,2; bonus bMatkRate,1; bonus2 bAddEle,Ele_Fire,2; },{},{}
 2543,Sylphid_Manteau,Sylphid Manteau,5,20,,0,,9,,0,0xFFFFFFFF,7,2,4,,0,0,0,{ bonus bFlee,13; bonus2 bSubEle,Ele_Neutral,13; bonus bFlee2,1; },{},{}
@@ -1551,7 +1551,7 @@
 2730,Morroc_Seal,Seal of Continental Guard,5,20,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bMaxHP,50; bonus bAspdRate,3; },{},{}
 2731,Morroc_Charm_Stone,Rune Spellstone,5,20,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bMaxSP,50; bonus bCastRate,-1; },{},{}
 2732,Morroc_Ring,Death Loop,5,20,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bCritical,5; },{},{}
-2733,Medal_Gunner,Sheriff Badge,5,20,,0,,1,,0,0x01000000,7,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG; },{},{}
+2733,Medal_Gunner,Sheriff Badge,5,20,,0,,1,,0,0x41000000,7,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG; },{},{}
 2734,Directive_A,Directive,5,0,,0,,1,,0,0x00000001,7,2,136,,0,0,0,{},{},{}
 2735,Directive_B,Directive,5,0,,0,,1,,0,0x00000001,7,2,136,,0,0,0,{},{},{}
 2736,Navel_Ring,Navel Ring,5,20,,100,,0,,0,0xFFFFFFFE,7,2,136,,75,0,0,{ bonus bDex,3; bonus bLuk,3; bonus bMdef,2; },{},{}
@@ -5360,60 +5360,60 @@
 13047,Weihna,Weihna,4,20,,500,135,,1,2,0x00021040,2,2,2,3,50,1,1,{ bonus3 bAddEffOnSkill,"RG_RAID",Eff_Poison,1000; autobonus "{ bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; }",5,5000,BF_WEAPON|BF_SHORT,"{ specialeffect2 EF_POTION_BERSERK; }"; },{},{}
 13048,Damascus_C,Damascus,4,0,,0,153,,1,0,0x028F5EEE,7,2,2,3,1,0,1,{ bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40; },{},{}
 // Revolvers
-13100,Six_Shooter,Six Shooter,4,4500,,400,30,,7,1,0x01000000,7,2,34,1,10,1,17,{ bonus bHit,-10; },{},{}
-13101,Six_Shooter_,Six Shooter,4,4500,,400,30,,7,2,0x01000000,7,2,34,1,10,1,17,{ bonus bHit,-10; },{},{}
-13102,Crimson_Bolt,Crimson Bolt,4,20000,,450,45,,7,1,0x01000000,7,2,34,2,35,1,17,{ bonus bHit,-10; },{},{}
-13103,Crimson_Bolt_,Crimson Bolt,4,20000,,450,45,,7,2,0x01000000,7,2,34,2,35,1,17,{ bonus bHit,-10; },{},{}
-13104,The_Garrison,Garrison,4,48000,,500,70,,7,1,0x01000000,7,2,34,2,55,1,17,{ bonus bHit,-10; },{},{}
-13105,The_Garrison_,Garrison,4,48000,,500,70,,7,2,0x01000000,7,2,34,2,55,1,17,{ bonus bHit,-10; },{},{}
-13106,Gold_Lux,Gold Lux,4,100000,,500,20,,7,0,0x01000000,7,2,34,3,12,1,17,{ bonus bHit,-10; if(getskilllv("GS_GLITTERING")>0) bonus3 bAutoSpell,"GS_GLITTERING",getskilllv("GS_GLITTERING"),100; },{},{}
-13107,Wasteland_Outlaw,Wasteland's Outlaw,4,20,,580,68,,7,2,0x01000000,7,2,34,3,70,1,17,{ bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; },{},{}
-13108,BF_Pistol1,Soldier Revolver,4,0,,0,70,,7,0,0x01000000,7,2,34,3,80,1,17,{ bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0; },{},{}
-13109,Wasteland_Outlaw_C,Wasteland Outlaw,4,20,,0,100,,7,0,0x01000000,7,2,34,3,0,0,17,{ bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; },{},{}
-13110,Krieger_Pistol1,Glorious Pistol,4,0,,0,80,,7,0,0x01000000,7,2,34,4,80,1,17,{ bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(getrefine()-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; } },{},{}
+13100,Six_Shooter,Six Shooter,4,4500,,400,30,,7,1,0x41000000,7,2,34,1,10,1,17,{ bonus bHit,-10; },{},{}
+13101,Six_Shooter_,Six Shooter,4,4500,,400,30,,7,2,0x41000000,7,2,34,1,10,1,17,{ bonus bHit,-10; },{},{}
+13102,Crimson_Bolt,Crimson Bolt,4,20000,,450,45,,7,1,0x41000000,7,2,34,2,35,1,17,{ bonus bHit,-10; },{},{}
+13103,Crimson_Bolt_,Crimson Bolt,4,20000,,450,45,,7,2,0x41000000,7,2,34,2,35,1,17,{ bonus bHit,-10; },{},{}
+13104,The_Garrison,Garrison,4,48000,,500,70,,7,1,0x41000000,7,2,34,2,55,1,17,{ bonus bHit,-10; },{},{}
+13105,The_Garrison_,Garrison,4,48000,,500,70,,7,2,0x41000000,7,2,34,2,55,1,17,{ bonus bHit,-10; },{},{}
+13106,Gold_Lux,Gold Lux,4,100000,,500,20,,7,0,0x41000000,7,2,34,3,12,1,17,{ bonus bHit,-10; if(getskilllv("GS_GLITTERING")>0) bonus3 bAutoSpell,"GS_GLITTERING",getskilllv("GS_GLITTERING"),100; },{},{}
+13107,Wasteland_Outlaw,Wasteland's Outlaw,4,20,,580,68,,7,2,0x41000000,7,2,34,3,70,1,17,{ bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; },{},{}
+13108,BF_Pistol1,Soldier Revolver,4,0,,0,70,,7,0,0x41000000,7,2,34,3,80,1,17,{ bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0; },{},{}
+13109,Wasteland_Outlaw_C,Wasteland Outlaw,4,20,,0,100,,7,0,0x41000000,7,2,34,3,0,0,17,{ bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; },{},{}
+13110,Krieger_Pistol1,Glorious Pistol,4,0,,0,80,,7,0,0x41000000,7,2,34,4,80,1,17,{ bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(getrefine()-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; } },{},{}
 //13111,Sharpshooter_Revolver
-13112,P_Revolver1,Eden Revlover I,4,0,,0,4,,7,0,0x01000000,7,2,34,1,26,0,17,{ bonus bHit,-5; },{},{}
-13113,P_Revolver2,Eden Revlover II,4,0,,0,60,,7,0,0x01000000,7,2,34,1,40,0,17,{ bonus bHit,-5; },{},{}
+13112,P_Revolver1,Eden Revlover I,4,0,,0,4,,7,0,0x41000000,7,2,34,1,26,0,17,{ bonus bHit,-5; },{},{}
+13113,P_Revolver2,Eden Revlover II,4,0,,0,60,,7,0,0x41000000,7,2,34,1,40,0,17,{ bonus bHit,-5; },{},{}
 // Guns
-13150,Branch,Branch,4,3000,,500,50,,9,3,0x01000000,7,2,34,1,1,1,18,{},{},{}
-13151,The_Cyclone,Cyclone,4,17500,,700,120,,9,1,0x01000000,7,2,34,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
-13152,The_Cyclone_,Cyclone,4,17500,,700,120,,9,2,0x01000000,7,2,34,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
-13153,Dusk,Dusk,4,23500,,750,150,,9,1,0x01000000,7,2,34,2,56,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
-13154,Rolling_Stone,Rolling Stone,4,12000,,900,135,,9,1,0x01000000,7,2,34,1,14,1,20,{ bonus bSplashRange,1; },{},{}
-13155,Black_Rose,Black Rose,4,32000,,900,180,,9,1,0x01000000,7,2,34,2,35,1,20,{ bonus bSplashRange,1; },{},{}
-13156,Gate_Keeper,Gate Keeper,4,56000,,1000,210,,9,0,0x01000000,7,2,34,2,24,1,20,{ bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; },{},{}
-13157,Drifter,Drifter,4,80000,,2300,50,,9,1,0x01000000,7,2,34,2,55,1,19,{},{},{}
-13158,Butcher,Butcher,4,130000,,2500,75,,9,0,0x01000000,7,2,34,3,68,1,19,{ bonus2 bCriticalAddRace,RC_Brute,10; },{},{}
-13159,Butcher_,Butcher,4,130000,,2500,75,,9,1,0x01000000,7,2,34,3,68,1,19,{ bonus2 bCriticalAddRace,RC_Brute,10; },{},{}
-13160,Destroyer,Destroyer,4,110000,,1200,220,,9,0,0x01000000,7,2,34,2,52,1,21,{ bonus bBreakArmorRate,200; },{},{}
-13161,Destroyer_,Destroyer,4,110000,,1200,220,,9,1,0x01000000,7,2,34,2,52,1,21,{ bonus bBreakArmorRate,200; },{},{}
-13162,Inferno,Inferno,4,230000,,1250,280,,9,1,0x01000000,7,2,34,2,65,1,21,{},{},{}
-13163,Long_Barrel,Long Barrel,4,40000,,1000,150,,9,0,0x01000000,7,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20; },{},{}
-13164,Long_Barrel_,Long Barrel,4,40000,,1000,150,,9,1,0x01000000,7,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20; },{},{}
-13165,Jungle_Carbine,Jungle Carbine,4,56000,,700,170,,9,0,0x01000000,7,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3; },{},{}
-13166,Jungle_Carbine_,Jungle Carbine,4,56000,,700,170,,9,1,0x01000000,7,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3; },{},{}
-13167,Gate_KeeperDD,Gate Keeper-DD,4,72000,,1300,200,,9,0,0x01000000,7,2,34,4,70,1,20,{ bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; bonus bDef,getrefine(); bonus bDex,1; },{},{}
-13168,Thunder_P,Thunder P,4,76000,,700,80,,9,1,0x01000000,7,2,34,3,70,1,20,{ bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; },{},{}
-13169,Thunder_P_,Thunder P,4,76000,,700,80,,9,2,0x01000000,7,2,34,3,70,1,20,{ bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; },{},{}
-13170,Lever_Action_Rifle,Lever Action Rifle,4,20,,770,138,,9,2,0x01000000,7,2,34,3,70,1,18,{ bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; },{},{}
-13171,BF_Rifle1,Soldier Rifle,4,0,,0,50,,9,0,0x01000000,7,2,34,3,80,1,18,{ bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bCastrate,"GS_TRACKING",-25; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; },{},{}
-13172,BF_Gatling_Gun1,Soldier Gatling Gun,4,0,,0,80,,9,0,0x01000000,7,2,34,3,80,1,19,{ bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,120,1000; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
-13173,BF_Shotgun1,Soldier Shotgun,4,0,,0,100,,9,0,0x01000000,7,2,34,3,80,1,20,{ bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
-13174,BF_Launcher1,Soldier Grenade Launcher,4,0,,0,300,,9,0,0x01000000,7,2,34,3,80,1,21,{ bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }",30,9000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
-13175,Lever_Action_Rifle_C,Lever Action Rifle,4,20,,0,170,,9,0,0x01000000,7,2,34,3,0,0,18,{ bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; },{},{}
-13176,Krieger_Rifle1,Glorious Rifle,4,0,,0,90,,9,0,0x01000000,7,2,34,4,80,1,18,{ bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bCastrate,"GS_TRACKING",25; bonus2 bSkillAtk,"GS_TRACKING",getrefine() * 3; } },{},{}
-13177,Krieger_Gatling1,Glorious Gatling Gun,4,0,,0,90,,9,0,0x01000000,7,2,34,4,80,1,19,{ bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) {bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); } },{},{}
-13178,Krieger_Shotgun1,Glorious Shotgun,4,0,,0,110,,9,0,0x01000000,7,2,34,4,80,1,20,{ bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_SPREADATTACK",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; } },{},{}
-13179,Krieger_Launcher1,Glorious Grenade Launcher,4,0,,0,330,,9,0,0x01000000,7,2,34,4,80,1,21,{ bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_GROUNDDRIFT",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; autobonus "{ bonus bAspdRate,20; }",200,20000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; } },{},{}
+13150,Branch,Branch,4,3000,,500,50,,9,3,0x41000000,7,2,34,1,1,1,18,{},{},{}
+13151,The_Cyclone,Cyclone,4,17500,,700,120,,9,1,0x41000000,7,2,34,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
+13152,The_Cyclone_,Cyclone,4,17500,,700,120,,9,2,0x41000000,7,2,34,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
+13153,Dusk,Dusk,4,23500,,750,150,,9,1,0x41000000,7,2,34,2,56,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
+13154,Rolling_Stone,Rolling Stone,4,12000,,900,135,,9,1,0x41000000,7,2,34,1,14,1,20,{ bonus bSplashRange,1; },{},{}
+13155,Black_Rose,Black Rose,4,32000,,900,180,,9,1,0x41000000,7,2,34,2,35,1,20,{ bonus bSplashRange,1; },{},{}
+13156,Gate_Keeper,Gate Keeper,4,56000,,1000,210,,9,0,0x41000000,7,2,34,2,24,1,20,{ bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; },{},{}
+13157,Drifter,Drifter,4,80000,,2300,50,,9,1,0x41000000,7,2,34,2,55,1,19,{},{},{}
+13158,Butcher,Butcher,4,130000,,2500,75,,9,0,0x41000000,7,2,34,3,68,1,19,{ bonus2 bCriticalAddRace,RC_Brute,10; },{},{}
+13159,Butcher_,Butcher,4,130000,,2500,75,,9,1,0x41000000,7,2,34,3,68,1,19,{ bonus2 bCriticalAddRace,RC_Brute,10; },{},{}
+13160,Destroyer,Destroyer,4,110000,,1200,220,,9,0,0x41000000,7,2,34,2,52,1,21,{ bonus bBreakArmorRate,200; },{},{}
+13161,Destroyer_,Destroyer,4,110000,,1200,220,,9,1,0x41000000,7,2,34,2,52,1,21,{ bonus bBreakArmorRate,200; },{},{}
+13162,Inferno,Inferno,4,230000,,1250,280,,9,1,0x41000000,7,2,34,2,65,1,21,{},{},{}
+13163,Long_Barrel,Long Barrel,4,40000,,1000,150,,9,0,0x41000000,7,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20; },{},{}
+13164,Long_Barrel_,Long Barrel,4,40000,,1000,150,,9,1,0x41000000,7,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20; },{},{}
+13165,Jungle_Carbine,Jungle Carbine,4,56000,,700,170,,9,0,0x41000000,7,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3; },{},{}
+13166,Jungle_Carbine_,Jungle Carbine,4,56000,,700,170,,9,1,0x41000000,7,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3; },{},{}
+13167,Gate_KeeperDD,Gate Keeper-DD,4,72000,,1300,200,,9,0,0x41000000,7,2,34,4,70,1,20,{ bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; bonus bDef,getrefine(); bonus bDex,1; },{},{}
+13168,Thunder_P,Thunder P,4,76000,,700,80,,9,1,0x41000000,7,2,34,3,70,1,20,{ bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; },{},{}
+13169,Thunder_P_,Thunder P,4,76000,,700,80,,9,2,0x41000000,7,2,34,3,70,1,20,{ bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; },{},{}
+13170,Lever_Action_Rifle,Lever Action Rifle,4,20,,770,138,,9,2,0x41000000,7,2,34,3,70,1,18,{ bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; },{},{}
+13171,BF_Rifle1,Soldier Rifle,4,0,,0,50,,9,0,0x41000000,7,2,34,3,80,1,18,{ bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bCastrate,"GS_TRACKING",-25; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; },{},{}
+13172,BF_Gatling_Gun1,Soldier Gatling Gun,4,0,,0,80,,9,0,0x41000000,7,2,34,3,80,1,19,{ bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,120,1000; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
+13173,BF_Shotgun1,Soldier Shotgun,4,0,,0,100,,9,0,0x41000000,7,2,34,3,80,1,20,{ bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
+13174,BF_Launcher1,Soldier Grenade Launcher,4,0,,0,300,,9,0,0x41000000,7,2,34,3,80,1,21,{ bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }",30,9000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
+13175,Lever_Action_Rifle_C,Lever Action Rifle,4,20,,0,170,,9,0,0x41000000,7,2,34,3,0,0,18,{ bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; },{},{}
+13176,Krieger_Rifle1,Glorious Rifle,4,0,,0,90,,9,0,0x41000000,7,2,34,4,80,1,18,{ bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bCastrate,"GS_TRACKING",25; bonus2 bSkillAtk,"GS_TRACKING",getrefine() * 3; } },{},{}
+13177,Krieger_Gatling1,Glorious Gatling Gun,4,0,,0,90,,9,0,0x41000000,7,2,34,4,80,1,19,{ bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) {bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); } },{},{}
+13178,Krieger_Shotgun1,Glorious Shotgun,4,0,,0,110,,9,0,0x41000000,7,2,34,4,80,1,20,{ bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_SPREADATTACK",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; } },{},{}
+13179,Krieger_Launcher1,Glorious Grenade Launcher,4,0,,0,330,,9,0,0x41000000,7,2,34,4,80,1,21,{ bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_GROUNDDRIFT",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; autobonus "{ bonus bAspdRate,20; }",200,20000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; } },{},{}
 // Bullets
-13200,Bullet,Bullet,10,1,,2,10,,,,0x01000000,7,2,32768,,1,,3,{},{},{}
-13201,Silver_Bullet,Silver Bullet,10,15,,2,15,,,,0x01000000,7,2,32768,,1,,3,{ bonus bAtkEle,Ele_Holy; },{},{}
-13202,Shell_Of_Blood,Bloody Shell,10,30,,2,30,,,,0x01000000,7,2,32768,,1,,3,{ bonus2 bAddEff,Eff_Bleeding,100; },{},{}
-13203,Flare_Sphere,Flare Sphere,10,80,,5,50,,,,0x01000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Fire; },{},{}
-13204,Lighting_Sphere,Lightning Sphere,10,80,,5,50,,,,0x01000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Wind; },{},{}
-13205,Poison_Sphere,Poison Sphere,10,80,,5,50,,,,0x01000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; },{},{}
-13206,Blind_Sphere,Blind Sphere,10,80,,5,50,,,,0x01000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; },{},{}
-13207,Freezing_Sphere,Freezing Sphere,10,80,,5,50,,,,0x01000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Water; },{},{}
+13200,Bullet,Bullet,10,1,,2,10,,,,0x41000000,7,2,32768,,1,,3,{},{},{}
+13201,Silver_Bullet,Silver Bullet,10,15,,2,15,,,,0x41000000,7,2,32768,,1,,3,{ bonus bAtkEle,Ele_Holy; },{},{}
+13202,Shell_Of_Blood,Bloody Shell,10,30,,2,30,,,,0x41000000,7,2,32768,,1,,3,{ bonus2 bAddEff,Eff_Bleeding,100; },{},{}
+13203,Flare_Sphere,Flare Sphere,10,80,,5,50,,,,0x41000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Fire; },{},{}
+13204,Lighting_Sphere,Lightning Sphere,10,80,,5,50,,,,0x41000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Wind; },{},{}
+13205,Poison_Sphere,Poison Sphere,10,80,,5,50,,,,0x41000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; },{},{}
+13206,Blind_Sphere,Blind Sphere,10,80,,5,50,,,,0x41000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; },{},{}
+13207,Freezing_Sphere,Freezing Sphere,10,80,,5,50,,,,0x41000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Water; },{},{}
 // Shurikens & Kunais
 13250,Shuriken,Shuriken,10,4,,5,10,,,,0x02000000,7,2,32768,,1,,6,{},{},{}
 13251,Nimbus_Shuriken,Nimbus Shuriken,10,10,,5,30,,,,0x02000000,7,2,32768,,20,,6,{},{},{}

+ 2 - 0
db/pre-re/job_db1.txt

@@ -279,3 +279,5 @@
 4211,	26000,80   ,  0  ,515  ,400  ,500  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 750 ,2000
 // Oboro
 4212,	26000,80   ,  0  ,515  ,400  ,500  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 750 ,2000
+// Rebellion
+4215,	28000,88   ,  0  ,450  ,500  ,2000, 2000, 2000, 2000, 2000, 2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 700 , 750 , 700 ,1500 ,1500 ,2000 ,2000

文件差异内容过多而无法显示
+ 1 - 1
db/pre-re/job_exp.txt


+ 4 - 4
db/pre-re/job_maxhpsp_db.txt

@@ -48,8 +48,8 @@
 //MaxHP - Bard/Dancer/Clown/Gypsy/Baby Bard/Baby Dancer
 1,99,19:20:4020:4021:4042:4043,0,40,47,54,62,71,81,91,102,114,127,140,154,169,180,196,212,224,242,260,278,296,316,330,350,371,393,415,438,451,477,503,530,558,587,616,646,677,709,741,774,808,843,878,914,951,989,1027,1066,1106,1147,1188,1230,1273,1317,1361,1406,1452,1499,1546,1594,1643,1693,1743,1794,1846,1899,1952,2006,2061,2117,2173,2230,2288,2347,2406,2466,2527,2589,2651,2714,2778,2843,2908,2974,3041,3109,3177,3246,3316,3387,3458,3530,3603,3677,3751,3826,3902,3979,4056
 
-//MaxHP - Gunslinger
-1,99,24,0,40,47,54,61,69,77,85,94,103,202,212,222,232,243,254,265,277,289,301,316,331,346,364,382,400,420,440,460,490,520,550,580,610,650,680,710,740,770,800,830,865,890,925,955,990,1025,1050,1080,1110,1145,1180,1215,1275,1335,1395,1455,1515,1575,1635,1695,1760,1820,1885,1950,2015,2080,2145,2210,2275,2340,2410,2480,2550,2620,2690,2760,2830,2900,2970,3040,3115,3190,3265,3340,3415,3490,3565,3640,3715,3790,3870,3950,4030,4110,4190,4270,4350,4430,4510
+//MaxHP - Gunslinger/Rebellion
+1,99,24:4215,0,40,47,54,61,69,77,85,94,103,202,212,222,232,243,254,265,277,289,301,316,331,346,364,382,400,420,440,460,490,520,550,580,610,650,680,710,740,770,800,830,865,890,925,955,990,1025,1050,1080,1110,1145,1180,1215,1275,1335,1395,1455,1515,1575,1635,1695,1760,1820,1885,1950,2015,2080,2145,2210,2275,2340,2410,2480,2550,2620,2690,2760,2830,2900,2970,3040,3115,3190,3265,3340,3415,3490,3565,3640,3715,3790,3870,3950,4030,4110,4190,4270,4350,4430,4510
 
 //MaxHP - Ninja
 1,99,25,0,40,47,54,61,69,77,85,94,103,202,212,222,232,243,254,265,277,289,301,316,331,346,364,382,400,420,440,460,482,504,526,548,572,596,620,646,672,698,726,754,784,814,844,876,908,940,975,1010,1100,1140,1180,1220,1260,1300,1340,1385,1430,1475,1520,1565,1615,1665,1715,1765,1815,1880,1935,1990,2045,2100,2160,2220,2280,2340,2400,2460,2520,2580,2640,2705,2770,2835,2900,2965,3030,3100,3170,3240,3310,3380,3455,3530,3605,3680,3760,3840,3920,4000,4080
@@ -129,8 +129,8 @@
 //MaxSP - Sage/Professor/Baby Sage
 1,99,16:4017:4039,1,17,24,31,38,45,52,59,66,73,80,87,94,101,108,115,122,129,136,143,150,157,164,171,178,185,192,199,206,213,220,227,234,241,248,255,262,269,276,283,290,297,304,311,318,325,332,339,346,353,360,367,374,381,388,395,402,409,416,423,430,437,444,451,458,465,472,479,486,493,500,507,514,521,528,535,542,549,556,563,570,577,584,591,598,605,612,619,626,633,640,647,654,661,668,675,682,689,696,703
 
-//MaxSP - Gunslinger
-1,99,24,1,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,61,64,67,70,73,76,79,82,85,89,93,97,101,105,109,113,117,121,125,129,131,135,139,141,145,149,153,157,161,165,169,173,177,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,312,318,324,336,342,348,354,360,366,372,378,384,390,396,402,408,414,420,426,432,438,444,450,456
+//MaxSP - Gunslinger/Rebellion
+1,99,24:4215,1,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,61,64,67,70,73,76,79,82,85,89,93,97,101,105,109,113,117,121,125,129,131,135,139,141,145,149,153,157,161,165,169,173,177,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,312,318,324,336,342,348,354,360,366,372,378,384,390,396,402,408,414,420,426,432,438,444,450,456
 
 //MaxSP - Ninja
 1,99,25,1,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,75,79,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,257,263,269,275,281,287,293,299,305,311,317,323,329,335,341,347,353,359,365,371,378,386,394,402,410,418,426,434,442,450,458,466,474,482,490,498,506,514,522

+ 354 - 349
db/pre-re/skill_cast_db.txt

@@ -1110,586 +1110,591 @@
 2019,0,0,0,180000,0,0
 //==========================================
 
-//===== Gillotine Cross ==================== 
-//-- GC_VENOMIMPRESS 
+//===== Gillotine Cross ====================
+//-- GC_VENOMIMPRESS
 2021,0,3000:2500:2000:1500:1000,0,10000:20000:30000:40000:50000,0,0
-//-- GC_CROSSIMPACT 
+//-- GC_CROSSIMPACT
 2022,0,2500:2000:1500:1000:500,0,0,0,0
-//-- GC_DARKILLUSION 
+//-- GC_DARKILLUSION
 2023,0,1500,0,0,0,0
 
-//-- GC_CREATENEWPOISON 
+//-- GC_CREATENEWPOISON
 2025,0,500,0,0,0,0
-//-- GC_ANTIDOTE 
+//-- GC_ANTIDOTE
 2026,0,0,0,0,0,0
-//-- GC_POISONINGWEAPON 
+//-- GC_POISONINGWEAPON
 2027,0,1000,0,60000:120000:180000:240000:300000,300000,0
-//-- GC_WEAPONBLOCKING 
+//-- GC_WEAPONBLOCKING
 2028,0,2000,0,180000,0,0
-//-- GC_COUNTERSLASH 
+//-- GC_COUNTERSLASH
 2029,0,2000,0,0,0,0
-//-- GC_WEAPONCRUSH 
+//-- GC_WEAPONCRUSH
 2030,0,1000,0,60000,0,0
-//-- GC_VENOMPRESSURE 
+//-- GC_VENOMPRESSURE
 2031,0,1000,0,0,0,0
-//-- GC_POISONSMOKE 
+//-- GC_POISONSMOKE
 2032,0,2000,0,6000:8000:10000:12000:14000,0,0
-//-- GC_CLOAKINGEXCEED 
+//-- GC_CLOAKINGEXCEED
 2033,0,2000,0,0,0,0
-//-- GC_PHANTOMMENACE 
+//-- GC_PHANTOMMENACE
 2034,0,1000,0,0,0,0
-//-- GC_HALLUCINATIONWALK 
+//-- GC_HALLUCINATIONWALK
 2035,0,0,0,30000:35000:40000:45000:50000,25000,300000
-//-- GC_ROLLINGCUTTER 
+//-- GC_ROLLINGCUTTER
 2036,0,200,0,3000,0,0
-//-- GC_CROSSRIPPERSLASHER 
+//-- GC_CROSSRIPPERSLASHER
 2037,0,1000,0,0,0,0
-//========================================== 
+//==========================================
 
-//===== Arch Bishop ======================== 
-//-- AB_JUDEX 
+//===== Arch Bishop ========================
+//-- AB_JUDEX
 2038,2000,500,0,0,0,0
-//-- AB_ANCILLA 
+//-- AB_ANCILLA
 2039,1000,1000,0,0,0,0
-//-- AB_ADORAMUS 
+//-- AB_ADORAMUS
 2040,2000,500,0,6000:7000:8000:9000:10000:11000:12000:13000:14000:15000,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,2000
-//-- AB_CLEMENTIA 
+//-- AB_CLEMENTIA
 2041,3000,0,0,120000:180000:240000,0,0
-//-- AB_CANTO 
+//-- AB_CANTO
 2042,3000,0,0,120000:180000:240000,0,0
-//-- AB_CHEAL 
+//-- AB_CHEAL
 2043,3000,0,0,0,0,2000
-//-- AB_EPICLESIS 
+//-- AB_EPICLESIS
 2044,2000:2500:3000:3500:4000,2000,0,18000:21000:24000:27000:30000,0,60000
-//-- AB_PRAEFATIO 
+//-- AB_PRAEFATIO
 2045,2000,0,0,120000,0,13000:16000:19000:22000:25000:28000:31000:34000:37000:40000
-//-- AB_ORATIO 
+//-- AB_ORATIO
 2046,4000,0,0,30000,0,2000
-//-- AB_LAUDAAGNUS 
+//-- AB_LAUDAAGNUS
 2047,1000,0,0,60000,0,3000
-//-- AB_LAUDARAMUS 
+//-- AB_LAUDARAMUS
 2048,1000,0,0,60000,0,3000
 
-//-- AB_RENOVATIO 
+//-- AB_RENOVATIO
 2050,3000,0,0,90000,0,0
-//-- AB_HIGHNESSHEAL 
+//-- AB_HIGHNESSHEAL
 2051,1000,1000,0,0,0,3000
-//-- AB_CLEARANCE 
+//-- AB_CLEARANCE
 2052,4000,0,0,0,0,10000
-//-- AB_EXPIATIO 
+//-- AB_EXPIATIO
 2053,1000,0,0,150000:180000:210000:240000:270000,0,0
-//-- AB_DUPLELIGHT 
+//-- AB_DUPLELIGHT
 2054,2000,1000,0,90000:120000:150000:180000:210000:240000:270000:300000:330000:360000,0,0
 
-//-- AB_SILENTIUM 
+//-- AB_SILENTIUM
 2057,4000,0,0,20000:30000:40000:50000:60000,0,15000
-//========================================== 
+//==========================================
 
-//===== Warlock ============================ 
-//-- WL_WHITEIMPRISON 
+//===== Warlock ============================
+//-- WL_WHITEIMPRISON
 2201,0,0,0,6000:8000:10000:12000:14000,15000,4000
-//-- WL_SOULEXPANSION 
+//-- WL_SOULEXPANSION
 2202,2000,500,0,0,0,0
-//-- WL_FROSTMISTY 
+//-- WL_FROSTMISTY
 2203,2000:2500:3000:3500:4000,1000,0,40000,0,4000
-//-- WL_JACKFROST 
+//-- WL_JACKFROST
 2204,2000:2500:3000:3500:4000,1000,0,10000:15000:20000:25000:30000,0,0
-//-- WL_MARSHOFABYSS 
+//-- WL_MARSHOFABYSS
 2205,2500,1000,0,25000,0,0
-//-- WL_RECOGNIZEDSPELL 
+//-- WL_RECOGNIZEDSPELL
 2206,1000,1000,0,60000:90000:120000:150000:180000,0,50000:80000:110000:140000:170000
-//-- WL_SIENNAEXECRATE 
+//-- WL_SIENNAEXECRATE
 2207,2000,2000,0,10000:12000:14000:16000:18000,0,0
 
-//-- WL_STASIS 
+//-- WL_STASIS
 2209,3000,1000,0,10000:15000:20000:25000:30000,0,300000
-//-- WL_DRAINLIFE 
+//-- WL_DRAINLIFE
 2210,4000,0,0,0,0,2000
-//-- WL_CRIMSONROCK 
+//-- WL_CRIMSONROCK
 2211,5000,2000,0,3000:4000:5000:6000:7000,0,5000
-//-- WL_HELLINFERNO 
+//-- WL_HELLINFERNO
 2212,3000,1000,0,15000,0,0
-//-- WL_COMET 
+//-- WL_COMET
 2213,10000:11000:12000:13000:14000,0,0,15000,0,60000
-//-- WL_CHAINLIGHTNING 
+//-- WL_CHAINLIGHTNING
 2214,3500:4000:4500:5000:5500,0,0,100,0,3000
 
-//-- WL_EARTHSTRAIN 
+//-- WL_EARTHSTRAIN
 2216,2000:3000:4000:5000:6000,1000,0,150,75000:90000:105000:120000:135000,10000
-//-- WL_TETRAVORTEX 
+//-- WL_TETRAVORTEX
 2217,5000:6000:7000:8000:9000,2000,0,20000,0,15000
 
-//-- WL_SUMMONFB 
+//-- WL_SUMMONFB
 2222,2000,0,0,120000:160000:200000:240000:280000,0,0
-//-- WL_SUMMONBL 
+//-- WL_SUMMONBL
 2223,2000,0,0,120000:160000:200000:240000:280000,0,0
-//-- WL_SUMMONWB 
+//-- WL_SUMMONWB
 2224,2000,0,0,120000:160000:200000:240000:280000,0,0
-//-- WL_SUMMONSTONE 
+//-- WL_SUMMONSTONE
 2229,2000,0,0,120000:160000:200000:240000:280000,0,0
 
-//-- WL_READING_SB 
+//-- WL_READING_SB
 2231,5000,500,0,0,0,0
-//========================================== 
+//==========================================
 
-//===== Ranger ============================= 
-//-- RA_ARROWSTORM 
+//===== Ranger =============================
+//-- RA_ARROWSTORM
 2233,2000:2200:2400:2600:2800,0,0,0,0,5400:5600:5800:6000:6400
-//-- RA_FEARBREEZE 
+//-- RA_FEARBREEZE
 2234,2000,0,0,60000:90000:120000:150000:180000,0,0
 
-//-- RA_AIMEDBOLT 
+//-- RA_AIMEDBOLT
 2236,4000,1000,0,0,0,0
-//-- RA_DETONATOR 
+//-- RA_DETONATOR
 2237,0,0,0,1000,0,0
-//-- RA_ELECTRICSHOCKER 
+//-- RA_ELECTRICSHOCKER
 2238,0,0,0,15000,20000:22000:24000:26000,0
-//-- RA_CLUSTERBOMB 
+//-- RA_CLUSTERBOMB
 2239,0,0,0,15000,0,0
-//-- RA_WUGMASTERY 
+//-- RA_WUGMASTERY
 2240,0,1000,0,0,0,0
-//-- RA_WUGRIDER 
+//-- RA_WUGRIDER
 2241,0,500,0,0,0,0
 
-//-- RA_WUGBITE 
+//-- RA_WUGBITE
 2244,0,2000,0,1000:2000:3000:4000:5000,0,4000:6000:8000:10000:12000
 
-//-- RA_SENSITIVEKEEN 
+//-- RA_SENSITIVEKEEN
 2246,0,3000,0,0,0,0
-//-- RA_CAMOUFLAGE 
+//-- RA_CAMOUFLAGE
 2247,0,0,0,10000,0,0
 
-//-- RA_MAGENTATRAP 
+//-- RA_MAGENTATRAP
 2249,0,2000,0,15000,10000,0
-//-- RA_COBALTTRAP 
+//-- RA_COBALTTRAP
 2250,0,2000,0,15000,10000,0
-//-- RA_MAIZETRAP 
+//-- RA_MAIZETRAP
 2251,0,2000,0,15000,10000,0
-//-- RA_VERDURETRAP 
+//-- RA_VERDURETRAP
 2252,0,2000,0,15000,10000,0
-//-- RA_FIRINGTRAP 
+//-- RA_FIRINGTRAP
 2253,0,0,0,20000,15000,0
-//-- RA_ICEBOUNDTRAP 
+//-- RA_ICEBOUNDTRAP
 2254,0,0,0,20000,15000,0
-//========================================== 
+//==========================================
 
-//===== Mechanic =========================== 
-//-- NC_BOOSTKNUCKLE 
+//===== Mechanic ===========================
+//-- NC_BOOSTKNUCKLE
 2256,200:400:600:800:1000,0,0,0,0,0
-//-- NC_PILEBUNKER 
+//-- NC_PILEBUNKER
 2257,0,2000,0,0,0,5000
-//-- NC_VULCANARM 
+//-- NC_VULCANARM
 2258,0,300:200:100,0,0,0,0
-//-- NC_FLAMELAUNCHER 
+//-- NC_FLAMELAUNCHER
 2259,1000:1500:2000,1500:1000:500,0,7000:14000:21000,0,0
-//-- NC_COLDSLOWER 
+//-- NC_COLDSLOWER
 2260,1000,1000:2000:3000,0,7000:14000:21000,0,0
-// -- NC_ARMSCANNON 
+// -- NC_ARMSCANNON
 2261,1400:1600:1800,500:1000:2000,0,0,0,0
-//-- NC_ACCELERATION 
+//-- NC_ACCELERATION
 2262,0,0,0,30000:60000:90000,0,0
-//-- NC_HOVERING 
+//-- NC_HOVERING
 2263,0,0,0,90000,0,0
-//-- NC_F_SIDESLIDE 
+//-- NC_F_SIDESLIDE
 2264,0,500,0,0,0,0
-//-- NC_B_SIDESLIDE 
+//-- NC_B_SIDESLIDE
 2265,0,500,0,0,0,0
 
-//-- NC_SELFDESTRUCTION 
+//-- NC_SELFDESTRUCTION
 2267,2000:1500:1000,0,0,0,0,300000
-//-- NC_SHAPESHIFT 
+//-- NC_SHAPESHIFT
 2268,0,2000,0,300000,0,0
-//-- NC_EMERGENCYCOOL 
+//-- NC_EMERGENCYCOOL
 2269,0,500,0,0,0,5000
-//-- NC_INFRAREDSCAN 
+//-- NC_INFRAREDSCAN
 2270,0,500,0,3000,0,3000
-//-- NC_ANALYZE 
+//-- NC_ANALYZE
 2271,0,1000,0,20000,0,0
-//-- NC_MAGNETICFIELD 
+//-- NC_MAGNETICFIELD
 2272,500:1000:1500,0,0,15000,0,20000:15000:10000
-//-- NC_NEUTRALBARRIER 
+//-- NC_NEUTRALBARRIER
 2273,500:1000:1500,0,0,30000:45000:60000,0,20000:15000:10000
-//-- NC_STEALTHFIELD 
+//-- NC_STEALTHFIELD
 2274,500:1000:1500,0,0,15000:20000:25000,0,20000:15000:10000
-//-- NC_REPAIR 
+//-- NC_REPAIR
 2275,200:300:400:500:600,1000,0,0,0,0
 
-//-- NC_AXEBOOMERANG 
+//-- NC_AXEBOOMERANG
 2278,0,0,0,0,0,5000:4500:4000:3500:3000
-//-- NC_POWERSWING 
+//-- NC_POWERSWING
 2279,0,1000,0,2000,0,0
-//-- NC_AXETORNADO 
+//-- NC_AXETORNADO
 2280,0,500,0,0,0,4000:3500:3000:2500:2000
-//-- NC_SILVERSNIPER 
+//-- NC_SILVERSNIPER
 2281,0,0,0,20000:30000:40000:50000:60000,0,0
-//-- NC_MAGICDECOY 
+//-- NC_MAGICDECOY
 2282,0,0,0,20000:30000:40000:50000:60000,0,0
-//-- NC_DISJOINT 
+//-- NC_DISJOINT
 2283,2000,0,0,0,0,0
-//========================================== 
+//==========================================
 
-//===== Shadow Chaser ====================== 
-//-- SC_FATALMENACE 
+//===== Shadow Chaser ======================
+//-- SC_FATALMENACE
 2284,0,500,0,0,0,0
-//-- SC_REPRODUCE 
+//-- SC_REPRODUCE
 2285,0,1000,0,60000,0,0
-//-- SC_AUTOSHADOWSPELL 
+//-- SC_AUTOSHADOWSPELL
 2286,4000:3600:3200:2800:2400:2000:1600:1200:800:400,0,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:300000,0,0
-//-- SC_SHADOWFORM 
+//-- SC_SHADOWFORM
 2287,0,1000,0,30000:40000:50000:60000:70000,0,0
-//-- SC_TRIANGLESHOT 
+//-- SC_TRIANGLESHOT
 2288,1000,500,0,0,0,0
-//-- SC_BODYPAINT 
+//-- SC_BODYPAINT
 2289,0,1000,0,5000:7000:9000:11000:13000,0,2000
-//-- SC_INVISIBILITY 
+//-- SC_INVISIBILITY
 2290,1000,1000,0,20000,0,20000:30000:40000:50000:60000
-//-- SC_DEADLYINFECT 
+//-- SC_DEADLYINFECT
 2291,0,1000,0,10000:15000:20000:25000:30000,0,2000
-//-- SC_ENERVATION 
+//-- SC_ENERVATION
 2292,2000,1000,0,10000:15000:20000,0,2000
-//-- SC_GROOMY 
+//-- SC_GROOMY
 2293,2000,1000,0,10000:15000:20000,0,2000
-//-- SC_IGNORANCE 
+//-- SC_IGNORANCE
 2294,2000,1000,0,10000:15000:20000,0,2000
-//-- SC_LAZINESS 
+//-- SC_LAZINESS
 2295,2000,1000,0,10000:15000:20000,0,2000
-//-- SC_UNLUCKY 
+//-- SC_UNLUCKY
 2296,2000,1000,0,10000:15000:20000,0,2000
-//-- SC_WEAKNESS 
+//-- SC_WEAKNESS
 2297,2000,1000,0,10000:15000:20000,0,2000
-//-- SC_STRIPACCESORY 
+//-- SC_STRIPACCESORY
 2298,1000,1000,0,60000:70000:80000:90000:100000,0,0
-//-- SC_MANHOLE 
+//-- SC_MANHOLE
 2299,1000,2000,0,5000:10000:15000,5000:10000:15000,0
-//-- SC_DIMENSIONDOOR 
+//-- SC_DIMENSIONDOOR
 2300,1000,2000,0,4000:8000:12000,0,0
-//-- SC_CHAOSPANIC 
+//-- SC_CHAOSPANIC
 2301,2000,2000,0,5000:10000:15000,4000:8000:12000,0
-//-- SC_MAELSTROM 
+//-- SC_MAELSTROM
 2302,2000,2000,0,7000:14000:21000,0,0
-//-- SC_BLOODYLUST //dur2=intr 
+//-- SC_BLOODYLUST //dur2=intr
 2303,2000,2000,0,10000:20000:30000,0,180000
-//-- SC_FEINTBOMB 
+//-- SC_FEINTBOMB
 2304,1000,0,0,1000,0,5000
-//========================================== 
+//==========================================
 
-//==== Royal Guard skills ================== 
-//-- LG_CANNONSPEAR 
+//==== Royal Guard skills ==================
+//-- LG_CANNONSPEAR
 2307,0,0,0,0,0,2000
 
-//-- LG_TRAMPLE 
+//-- LG_TRAMPLE
 2309,0,0,0,0,0,1000
-//-- LG_SHIELDPRESS 
+//-- LG_SHIELDPRESS
 2310,0,0,0,3500:4000:4500:5000:5500,0,2000
-//-- LG_REFLECTDAMAGE 
+//-- LG_REFLECTDAMAGE
 2311,0,0,0,300000,0,0
-//-- LG_PINPOINTATTACK 
+//-- LG_PINPOINTATTACK
 2312,0,1000,0,5000,0,5000
-//-- LG_FORCEOFVANGUARD 
+//-- LG_FORCEOFVANGUARD
 2313,0,1000,0,300000,0,0
-//-- LG_RAGEBURST 
+//-- LG_RAGEBURST
 2314,0,3000,0,0,0,0
-//-- LG_SHIELDSPELL //TODO apply proper duration [malufett] 
+//-- LG_SHIELDSPELL //TODO apply proper duration [malufett]
 2315,1000,1000,0,3000:30000:30000,0,2000
-//-- LG_EXEEDBREAK 
+//-- LG_EXEEDBREAK
 2316,5000:5500:6000:6500:7000,1000,0,300000,0,0
-//-- LG_OVERBRAND 
+//-- LG_OVERBRAND
 2317,500,2000,0,0,0,0
-//-- LG_PRESTIGE 
+//-- LG_PRESTIGE
 2318,1000,0,0,30000:45000:60000:75000:90000,0,60000
-//-- LG_BANDING 
+//-- LG_BANDING
 2319,0,0,0,-1,2000:4000:6000:8000:10000,0
-//-- LG_MOONSLASHER 
+//-- LG_MOONSLASHER
 2320,1000,1000,0,0,0,6000:5000:4000:3000:2000
-//-- LG_RAYOFGENESIS 
+//-- LG_RAYOFGENESIS
 2321,2000:2500:3000:3500:4000,2000,0,10000,0,5000
-//-- LG_PIETY 
+//-- LG_PIETY
 2322,3000:2500:2000:1500:1000,0,0,60000:80000:100000:120000:140000,0,0
-//-- LG_EARTHDRIVE 
+//-- LG_EARTHDRIVE
 2323,1000,1000,0,3000:6000:9000:12000:15000,0,7000:6000:5000:4000:3000
-//-- LG_HESPERUSLIT 
+//-- LG_HESPERUSLIT
 2324,1000,3000,0,0,0,20000
-//-- LG_INSPIRATION 
+//-- LG_INSPIRATION
 2325,2000,2000,0,30000:45000:60000:75000:90000,0,540000:480000:420000:360000:300000
-//========================================== 
+//==========================================
 
-//===== Sura Skills ======================== 
-//-- SR_DRAGONCOMBO 
+//===== Sura Skills ========================
+//-- SR_DRAGONCOMBO
 2326,0,0,0,3000,0,0
-//-- SR_SKYNETBLOW 
+//-- SR_SKYNETBLOW
 2327,0,500,0,0,0,0
-//-- SR_EARTHSHAKER 
+//-- SR_EARTHSHAKER
 2328,0,0,0,1000,0,3000
-//-- SR_FALLENEMPIRE 
+//-- SR_FALLENEMPIRE
 2329,0,0,0,500:1000:1500:2000:2500,0,0
-//-- SR_TIGERCANNON 
+//-- SR_TIGERCANNON
 2330,1100:1200:1300:1400:1500:1600:1700:1800:1900:2000,1000,0,0,0,5000
 
-//-- SR_RAMPAGEBLASTER 
+//-- SR_RAMPAGEBLASTER
 2332,0,1000,0,0,0,10000
-//-- SR_CRESCENTELBOW 
+//-- SR_CRESCENTELBOW
 2333,0,1000,0,3000:4000:5000:6000:7000,0,5000
-//-- SR_CURSEDCIRCLE 
+//-- SR_CURSEDCIRCLE
 2334,0,1000,0,3000:4000:5000:6000:7000,0,10000
-//-- SR_LIGHTNINGWALK 
+//-- SR_LIGHTNINGWALK
 2335,0,1000,0,5000:6000:7000:8000:9000,0,5000
-//-- SR_KNUCKLEARROW 
+//-- SR_KNUCKLEARROW
 2336,0,1000,0,0,0,0
-//-- SR_WINDMILL 
+//-- SR_WINDMILL
 2337,1000,500,0,0,0,3000
-//-- SR_RAISINGDRAGON 
+//-- SR_RAISINGDRAGON
 2338,0,1000,0,30000:45000:60000:75000:90000:105000:120000:135000:150000:165000,0,30000
 
-//-- SR_ASSIMILATEPOWER 
+//-- SR_ASSIMILATEPOWER
 2340,0,1000,0,0,0,5000
-//-- SR_POWERVELOCITY 
+//-- SR_POWERVELOCITY
 2341,1500,0,0,0,0,0
 
-//-- SR_GATEOFHELL 
+//-- SR_GATEOFHELL
 2343,1000:1200:1400:1600:1800:2000:2200:2400:2600:2800,100:200:300:400:500:600:700:800:900:1000,0,0,0,0
-//-- SR_GENTLETOUCH_QUIET 
+//-- SR_GENTLETOUCH_QUIET
 2344,0,0,0,5000:7000:9000:11000:13000,0,1000:1500:2000:2500:3000
-//-- SR_GENTLETOUCH_CURE 
+//-- SR_GENTLETOUCH_CURE
 2345,0,1000,0,0,0,1000:1500:2000:2500:3000
-//-- SR_GENTLETOUCH_ENERGYGAIN 
+//-- SR_GENTLETOUCH_ENERGYGAIN
 2346,1000,1000,0,240000,0,0
-//-- SR_GENTLETOUCH_CHANGE 
+//-- SR_GENTLETOUCH_CHANGE
 2347,1000,1000,0,240000,0,200000:180000:160000:140000:120000
-//-- SR_GENTLETOUCH_REVITALIZE 
+//-- SR_GENTLETOUCH_REVITALIZE
 2348,1000,1000,0,240000,0,200000:180000:160000:140000:120000
-//========================================== 
+//==========================================
 
-//==== Wanderer skills ===================== 
-//-- WA_SWING_DANCE 
+//==== Wanderer skills =====================
+//-- WA_SWING_DANCE
 2350,1000,2000,0,60000,0,0
-//-- WA_SYMPHONY_OF_LOVER 
+//-- WA_SYMPHONY_OF_LOVER
 2351,1000,2000,0,60000,0,0
-//-- WA_MOONLIT_SERENADE 
+//-- WA_MOONLIT_SERENADE
 2352,1000,2000,0,60000,0,0
-//========================================== 
+//==========================================
 
-//==== Minstresl skills ==================== 
-//-- MI_RUSH_WINDMILL 
+//==== Minstresl skills ====================
+//-- MI_RUSH_WINDMILL
 2381,0,2000,0,60000,0,0
-//-- MI_ECHOSONG 
+//-- MI_ECHOSONG
 2382,1000,2000,0,60000,0,0
-//-- MI_HARMONIZE 
+//-- MI_HARMONIZE
 2383,1000,1000,0,60000,0,5000
-//========================================== 
+//==========================================
 
-//==== Minstrel/Wanderer skills ============ 
-//-- WM_METALICSOUND 
+//==== Minstrel/Wanderer skills ============
+//-- WM_METALICSOUND
 2413,1000:1500:2000:2500:3000,1000,0,0,0,2000:2500:3000:3500:4000
-//-- WM_REVERBERATION 
+//-- WM_REVERBERATION
 2414,1100:1200:1300:1400:1500,1000,0,9000:10000:11000:12000:13000,0,0
 
-//-- WM_DOMINION_IMPULSE 
+//-- WM_DOMINION_IMPULSE
 2417,0,1000,0,0,0,0
-//-- WM_SEVERE_RAINSTORM 
+//-- WM_SEVERE_RAINSTORM
 2418,1000:1500:2000:2500:3000,1000,0,900:1500:2100:2700:3000,0,5000:5500:6000:6500:7000
-//-- WM_POEMOFNETHERWORLD 
+//-- WM_POEMOFNETHERWORLD
 2419,3000,0,0,9000:11000:13000:15000:17000,8000:10000:12000:14000:16000,0
-//-- WM_VOICEOFSIREN 
+//-- WM_VOICEOFSIREN
 2420,2000:2200:2400:2600:2800,1000,0,15000:18000:21000:24000:27000,0,5000
-//-- WM_DEADHILLHERE 
+//-- WM_DEADHILLHERE
 2421,4000:3500:3000:2500:2000,1000,0,0,0,0
-//-- WM_LULLABY_DEEPSLEEP 
+//-- WM_LULLABY_DEEPSLEEP
 2422,2000,1000,0,12000:14000:16000:18000:20000,0,10000
-//-- WM_SIRCLEOFNATURE 
+//-- WM_SIRCLEOFNATURE
 2423,2000,1000,0,60000,0,15000
-//-- WM_RANDOMIZESPELL 
+//-- WM_RANDOMIZESPELL
 2424,0,1000,0,0,0,3000
-//-- WM_GLOOMYDAY 
+//-- WM_GLOOMYDAY
 2425,1000,1000,0,30000:45000:60000:75000:90000,0,10000
-//-- WM_GREAT_ECHO 
+//-- WM_GREAT_ECHO
 2426,2000:2200:2400:2600:2800,1000,0,0,0,10000
-//-- WM_SONG_OF_MANA 
+//-- WM_SONG_OF_MANA
 2427,1000,1000,0,30000:60000:90000:120000:150000,0,90000
-//-- WM_DANCE_WITH_WUG 
+//-- WM_DANCE_WITH_WUG
 2428,1500:2000:2500:3000:3500,1000,0,30000:60000:90000:120000:150000,0,90000
-//-- WM_SOUND_OF_DESTRUCTION 
+//-- WM_SOUND_OF_DESTRUCTION
 2429,0:500:1000:1500:2000,1000,0,0,0,20000
-//-- WM_SATURDAY_NIGHT_FEVER 
+//-- WM_SATURDAY_NIGHT_FEVER
 2430,1000:2000:3000:4000:5000,1000,0,10000:15000:20000:25000:30000,10000:8000:6000:4000:2000,180000
-//-- WM_LERADS_DEW 
+//-- WM_LERADS_DEW
 2431,1000,1000,0,20000:30000:40000:50000:60000,0,180000
-//-- WM_MELODYOFSINK 
+//-- WM_MELODYOFSINK
 2432,100,1000,0,20000:30000:40000:50000:60000,0,180000
-//-- WM_BEYOND_OF_WARCRY 
+//-- WM_BEYOND_OF_WARCRY
 2433,1000,1000,0,20000:30000:40000:50000:60000,0,180000
-//-- WM_UNLIMITED_HUMMING_VOICE 
+//-- WM_UNLIMITED_HUMMING_VOICE
 2434,1000,1000,0,60000:90000:120000:150000:180000,0,110000:120000:130000:140000:150000
-//========================================== 
+//==========================================
 
-//==== Sorcerer skills ===================== 
-//-- SO_FIREWALK //CHECK Duration 2 needs to be added for the PROPERTYWALK status ID. Ask me for more info. [Rytech] 
+//==== Sorcerer skills =====================
+//-- SO_FIREWALK //CHECK Duration 2 needs to be added for the PROPERTYWALK status ID. Ask me for more info. [Rytech]
 2443,1000,1000,0,12000,0,0
-//-- SO_ELECTRICWALK //CHECK Duration 2 needs to be added for the PROPERTYWALK status ID. Ask me for more info. [Rytech] 
+//-- SO_ELECTRICWALK //CHECK Duration 2 needs to be added for the PROPERTYWALK status ID. Ask me for more info. [Rytech]
 2444,1000,1000,0,12000,0,0
-//-- SO_SPELLFIST 
+//-- SO_SPELLFIST
 2445,0,1000,0,20000:25000:30000:35000:40000,0,0
-//-- SO_EARTHGRAVE 
+//-- SO_EARTHGRAVE
 2446,2200:2400:2600:2800:3000,1000,0,500,8000:11000:14000:17000:20000,5000
-//-- SO_DIAMONDDUST 
+//-- SO_DIAMONDDUST
 2447,5000:5500:6000:6500:7000,1000,0,500,12000:14000:16000:18000:20000,5000
-//-- SO_POISON_BUSTER 
+//-- SO_POISON_BUSTER
 2450,2200:3400:4600:5800:7000,1000,0,0,0,2000
-//-- SO_PSYCHIC_WAVE 
+//-- SO_PSYCHIC_WAVE
 2449,8000:9000:10000:11000:12000,1000,0,1200:1700:2200:2700:3200,0,5000
-//-- SO_CLOUD_KILL 
+//-- SO_CLOUD_KILL
 2450,2300:2500:2700:2900:3100,1000,0,8000:10000:12000:14000:16000,10000:15000:20000:25000:30000,5000
-//-- SO_STRIKING 
+//-- SO_STRIKING
 2451,1000,1000,0,60000,0,2000
-//-- SO_WARMER 
+//-- SO_WARMER
 2452,2200:2400:2600:2800:3000,1000,0,40000:45000:50000:55000:60000,30000,35000:40000:45000:50000:55000
-//-- SO_VACUUM_EXTREME 
+//-- SO_VACUUM_EXTREME
 2453,1000:1500:2000:2500:3000,1000,0,4000:6000:8000:10000:12000,0,5000
-//-- SO_VARETYR_SPEAR 
+//-- SO_VARETYR_SPEAR
 2454,2200:2400:2600:2800:3000,1000,0,0,2200:2400:2600:2800:3000,2000
-//-- SO_ARULLO 
+//-- SO_ARULLO
 2455,2200:2400:2600:2800:3000,1000,0,8000:10000:12000:14000:16000,0,5000:6000:7000:8000:9000
-//-- SO_EL_CONTROL 
+//-- SO_EL_CONTROL
 2456,2000,0,0,0,0,5000
-//-- SO_SUMMON_AGNI 
+//-- SO_SUMMON_AGNI
 2457,1000:2000:3000,0,0,600000:900000:1200000,0,60000
-//-- SO_SUMMON_AQUA 
+//-- SO_SUMMON_AQUA
 2458,1000:2000:3000,0,0,600000:900000:1200000,0,60000
-//-- SO_SUMMON_VENTUS 
+//-- SO_SUMMON_VENTUS
 2459,1000:2000:3000,0,0,600000:900000:1200000,0,60000
-//-- SO_SUMMON_TERA 
+//-- SO_SUMMON_TERA
 2460,1000:2000:3000,0,0,600000:900000:1200000,0,60000
-//-- SO_EL_ACTION 
+//-- SO_EL_ACTION
 2461,0,0,0,0,0,5000
-//-- SO_EL_ANALYSIS 
+//-- SO_EL_ANALYSIS
 2462,0,0,0,0,0,0
 
-//-- SO_EL_CURE 
+//-- SO_EL_CURE
 2464,2000,1000,0,0,0,0
-//-- SO_FIRE_INSIGNIA 
+//-- SO_FIRE_INSIGNIA
 2465,1000,0,0,60000,0,60000
-//-- SO_WATER_INSIGNIA 
+//-- SO_WATER_INSIGNIA
 2466,1000,0,0,60000,0,60000
-//-- SO_WIND_INSIGNIA 
+//-- SO_WIND_INSIGNIA
 2467,1000,0,0,60000,0,60000
-//-- SO_EARTH_INSIGNIA 
+//-- SO_EARTH_INSIGNIA
 2468,1000,0,0,60000,0,60000
-//========================================== 
+//==========================================
 
-//==== Genetic skills ====================== 
-//-- GN_CART_TORNADO 
+//==== Genetic skills ======================
+//-- GN_CART_TORNADO
 2476,0,500,0,5000,0,0:500:1000:1500:2000
-//-- GN_CARTCANNON 
+//-- GN_CARTCANNON
 2477,1000:1500:2000:2500:3000,500,0,0,0,0
-//-- GN_CARTBOOST 
+//-- GN_CARTBOOST
 2478,1500,500,0,90000,0,0
-//-- GN_THORNS_TRAP 
+//-- GN_THORNS_TRAP
 2479,1500,500,0,10000:12000:14000:16000:18000,20000,0
-//-- GN_BLOOD_SUCKER 
+//-- GN_BLOOD_SUCKER
 2480,1500,500,0,20000:22000:24000:26000:28000,0,0
-//-- GN_SPORE_EXPLOSION 
+//-- GN_SPORE_EXPLOSION
 2481,1500,500,0,2000:2000:3000:3000:4000,0,5000
-//-- GN_WALLOFTHORN 
+//-- GN_WALLOFTHORN
 2482,1500,500,0,10000:11000:12000:13000:14000,0,5000
-//-- GN_CRAZYWEED 
+//-- GN_CRAZYWEED
 2483,3000:3500:4000:4500:5000:5500:6000:6500:7000:7500,500,0,0,0,5000
-//-- GN_CRAZYWEED_ATK 
+//-- GN_CRAZYWEED_ATK
 2484,0,0,0,100,0,0
 
-//-- GN_DEMONIC_FIRE 
+//-- GN_DEMONIC_FIRE
 2485,3000:3500:4000:4500:5000,500,0,10000:12000:14000:16000:18000,15000,5000
-//-- GN_FIRE_EXPANSION 
+//-- GN_FIRE_EXPANSION
 2486,2000,500,0,0,0,0
-//-- GN_FIRE_EXPANSION_SMOKE_POWDER 
+//-- GN_FIRE_EXPANSION_SMOKE_POWDER
 2487,0,0,0,10000:12000:14000:16000:18000,0,0
-//-- GN_FIRE_EXPANSION_TEAR_GAS 
+//-- GN_FIRE_EXPANSION_TEAR_GAS
 2488,0,0,0,10000:12000:14000:16000:18000,0,0
 
-//-- GN_HELLS_PLANT 
+//-- GN_HELLS_PLANT
 2490,3000:3500:4000:4500:5000,500,0,14000:21000:28000:35000:42000,0,0
-//-- GN_HELLS_PLANT_ATK 
+//-- GN_HELLS_PLANT_ATK
 2491,0,0,0,20000,0,0
-//-- GN_MANDRAGORA 
+//-- GN_MANDRAGORA
 2492,1000,500,0,10000:15000:20000:25000:30000,0,15000
-//-- GN_SLINGITEM 
+//-- GN_SLINGITEM
 2493,0,0,0,77000,10000,1000
 
-//-- GN_SLINGITEM_RANGEMELEEATK 
+//-- GN_SLINGITEM_RANGEMELEEATK
 2498,0,0,0,3000,0,0
-//========================================== 
+//==========================================
 
-//===== Extra 3rd Class Skills ============= 
-//-- AB_SECRAMENT 
+//===== Extra 3rd Class Skills =============
+//-- AB_SECRAMENT
 2515,1000,500,0,60000:90000:120000:150000:180000,0,0
 
-//-- SR_HOWLINGOFLION 
+//-- SR_HOWLINGOFLION
 2517,1000,0,0,12000:14000:16000:18000:20000,0,10000
-//-- SR_RIDEINLIGHTNING 
+//-- SR_RIDEINLIGHTNING
 2518,1000:2000:3000:4000:5000,200,0,0,0,1000
-//========================================== 
+//==========================================
 
-//===== Misc. Skills ======================= 
-//-- ALL_ODINS_RECALL 
+//===== Misc. Skills =======================
+//-- ALL_ODINS_RECALL
 2533,10000,0,0,0,0,300000
-//-- RETURN_TO_ELDICASTES 
+//-- RETURN_TO_ELDICASTES
 2534,3000,0,0,0,0,300000
-//-- ALL_GUARDIAN_RECALL 
+//-- ALL_GUARDIAN_RECALL
 2536,3000,0,0,0,0,300000
-//-- ALL_ODINS_POWER 
+//-- ALL_ODINS_POWER
 2537,5000,5000,0,60000,0,60000
-//========================================== 
+//==========================================
+
+//==== Rebellion ===========================
+//-- RL_B_TRAP
+2555,0,0,0,10000:11000:12000:13000:14000,0,0
+//==========================================
 
-//==== Kagerou & Oboro skills ============== 
-//-- KO_YAMIKUMO 
+//==== Kagerou & Oboro skills ==============
+//-- KO_YAMIKUMO
 3001,0,0,0,60000,0,0
-//-- KO_JYUMONJIKIRI 
+//-- KO_JYUMONJIKIRI
 3004,0,2500,0,5000,0,0
-//-- KO_SETSUDAN 
+//-- KO_SETSUDAN
 3005,0,2000,0,0,0,0
-//-- KO_BAKURETSU 
+//-- KO_BAKURETSU
 3006,1000:1500:2000:2500:3000,1000,0,100,0,3000
-//-- KO_HAPPOKUNAI 
+//-- KO_HAPPOKUNAI
 3007,0,1000,0,0,0,0
-//-- KO_MUCHANAGE 
+//-- KO_MUCHANAGE
 3008,0,0,0,100,0,10000
-//-- KO_HUUMARANKA 
+//-- KO_HUUMARANKA
 3009,0,3000,0,500,0,0
-//-- KO_MAKIBISHI 
+//-- KO_MAKIBISHI
 3010,0,0,0,12000:14000:16000:18000:20000,10000,0
-//-- KO_MEIKYOUSISUI 
+//-- KO_MEIKYOUSISUI
 3011,3000,0,0,10000,0,0
-//-- KO_ZANZOU 
+//-- KO_ZANZOU
 3012,0,0,0,27000:24000:21000:18000:15000,0,0
-//-- KO_KYOUGAKU 
+//-- KO_KYOUGAKU
 3013,1000,0,0,12000:14000:16000:18000:20000,0,0
-//-- KO_JYUSATSU 
+//-- KO_JYUSATSU
 3014,1000,0,0,8000:10000:12000:14000:16000,0,0
-//-- KO_KAHU_ENTEN 
+//-- KO_KAHU_ENTEN
 3015,500,0,0,300000,0,0
-//-- KO_HYOUHU_HUBUKI 
+//-- KO_HYOUHU_HUBUKI
 3016,500,0,0,300000,0,0
-//-- KO_KAZEHU_SEIRAN 
+//-- KO_KAZEHU_SEIRAN
 3017,500,0,0,300000,0,0
-//-- KO_DOHU_KOUKAI 
+//-- KO_DOHU_KOUKAI
 3018,500,0,0,300000,0,0
-//-- KO_KAIHOU 
+//-- KO_KAIHOU
 3019,1000,0,0,0,0,0
-//-- KO_ZENKAI 
+//-- KO_ZENKAI
 3020,1000,0,0,10000,10000,0
-//-- KO_GENWAKU 
+//-- KO_GENWAKU
 3021,500,0,0,5000,0,0
-//-- KO_IZAYOI 
+//-- KO_IZAYOI
 3022,0,0,0,30000:45000:60000:75000:90000,0,60000
-//-- KG_KAGEHUMI 
+//-- KG_KAGEHUMI
 3023,0,0,0,5000,0,5000
-//-- KG_KYOMU 
+//-- KG_KYOMU
 3024,0,0,0,10000:15000:20000:25000:30000,0,0
-//-- KG_KAGEMUSYA 
+//-- KG_KAGEMUSYA
 3025,0,0,0,60000:90000:120000:15000:180000,0,0
-//-- OB_ZANGETSU 
+//-- OB_ZANGETSU
 3026,0,0,0,60000:75000:90000:105000:120000,0,0
-//-- OB_OBOROGENSOU 
+//-- OB_OBOROGENSOU
 3027,0,0,0,10000:15000:20000:25000:30000,0,0
-//-- OB_AKAITSUKI 
+//-- OB_AKAITSUKI
 3029,0,0,0,10000:15000:20000:25000:30000,0,0
 //==========================================
 
@@ -1720,57 +1725,57 @@
 8016,0,0,1000,0,0,0
 //==========================================
 
-//-- MH_SUMMON_LEGION 
+//-- MH_SUMMON_LEGION
 8018,1600:1400:1200:1000:800,0,0,20000:30000:40000:50000:60000,0,0
-//-- MH_NEEDLE_OF_PARALYZE 
+//-- MH_NEEDLE_OF_PARALYZE
 8019,1000:1100:1200:1300:1400,0,0,12000:14000:16000:18000:20000,0,0
-//-- MH_POISON_MIST 
+//-- MH_POISON_MIST
 8020,500:700:900:1100:1300,0,0,12000:14000:16000:18000:20000,4000:6000:8000:10000:12000,0
-//-- MH_PAIN_KILLER 
+//-- MH_PAIN_KILLER
 8021,1000:1200:1400:1600:1800,0,0,20000:30000:40000:50000:60000,0,0
-//-- MH_LIGHT_OF_REGENE 
+//-- MH_LIGHT_OF_REGENE
 8022,1600:1400:1200:1000:800,0,0,360000:420000:480000:540000:600000,0,0
-//-- MH_OVERED_BOOST 
+//-- MH_OVERED_BOOST
 8023,800:700:600:500:400,0,0,30000:45000:60000:75000:90000,0,0
-//-- MH_ERASER_CUTTER 
+//-- MH_ERASER_CUTTER
 8024,1000:1500:2000:2500:3000,0,0,0,0,0
-//-- MH_XENO_SLASHER 
+//-- MH_XENO_SLASHER
 8025,1500:2500:3500:4500:5500,0,0,500,0,0
-//-- MH_SILENT_BREEZE 
+//-- MH_SILENT_BREEZE
 8026,2000,0,0,9000:12000:15000:18000:21000,0,0
-//-- MH_STYLE_CHANGE 
-//8027,0,0,0,0,0,0,0 
-//-- MH_SONIC_CRAW 
-//8028,0,0,0,0,0,0,0 
-//-- MH_SILVERVEIN_RUSH 
-//8029,0,0,0,0,0,0,0 
-//-- MH_MIDNIGHT_FRENZY 
-//8030,0,0,0,0,0,0,0 
-//-- MH_STAHL_HORN 
+//-- MH_STYLE_CHANGE
+//8027,0,0,0,0,0,0,0
+//-- MH_SONIC_CRAW
+//8028,0,0,0,0,0,0,0
+//-- MH_SILVERVEIN_RUSH
+//8029,0,0,0,0,0,0,0
+//-- MH_MIDNIGHT_FRENZY
+//8030,0,0,0,0,0,0,0
+//-- MH_STAHL_HORN
 8031,800:600:400:200:0,0,0,5000,0,0
-//-- MH_GOLDENE_FERSE 
+//-- MH_GOLDENE_FERSE
 8032,1000:1200:1400:1600:1800,0,0,30000:45000:60000:75000:90000,0,0
-//-- MH_STEINWAND 
+//-- MH_STEINWAND
 8033,1000,0,0,30000:45000:60000:75000:90000,0,0
-//-- MH_HEILIGE_STANGE 
+//-- MH_HEILIGE_STANGE
 8034,200:400:600:800:1000,0,0,0,0,0
-//-- MH_ANGRIFFS_MODUS 
+//-- MH_ANGRIFFS_MODUS
 8035,200:400:600:800:1000,0,0,30000:45000:60000:75000:90000,0,0
-//-- MH_TINDER_BREAKER 
-//8036,0,0,0,0,0,0,0 
-//-- MH_CBC 
-//8037,0,0,0,0,0,0,0 
-//-- MH_EQC 
-//8038,0,0,0,0,0,0,0 
-//-- MH_MAGMA_FLOW 
+//-- MH_TINDER_BREAKER
+//8036,0,0,0,0,0,0,0
+//-- MH_CBC
+//8037,0,0,0,0,0,0,0
+//-- MH_EQC
+//8038,0,0,0,0,0,0,0
+//-- MH_MAGMA_FLOW
 8039,2000:2500:3000:3500:4000,0,0,30000:45000:60000:75000:90000,0,0
-//-- MH_GRANITIC_ARMOR 
+//-- MH_GRANITIC_ARMOR
 8040,6000:5500:5000:4500:4000,0,0,60000,0,0
-//-- MH_LAVA_SLIDE 
+//-- MH_LAVA_SLIDE
 8041,6000:5500:5000:4500:4000,0,0,12000:14000:16000:18000:20000,0,0
-//-- MH_PYROCLASTIC 
+//-- MH_PYROCLASTIC
 8042,5000:4500:4000:3500:3000,0,0,60000:90000:120000:150000:180000,0,0
-//-- MH_VOLCANIC_ASH 
+//-- MH_VOLCANIC_ASH
 8043,5000:4500:4000:3500:3000,0,0,12000:14000:16000:18000:20000,0,0
 //==========================================
 
@@ -1835,66 +1840,66 @@
 8240,1000,1000,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:240000,0,0
 //==========================================
 
-//===== Elemental Skills ======================= 
-//-- EL_CIRCLE_OF_FIRE 
+//===== Elemental Skills =======================
+//-- EL_CIRCLE_OF_FIRE
 8401,0,0,0,-1,0,0
-//-- EL_FIRE_CLOAK 
+//-- EL_FIRE_CLOAK
 8402,0,0,0,-1,0,0
-//-- EL_FIRE_MANTLE 
+//-- EL_FIRE_MANTLE
 8403,0,0,0,15000,0,0
-//-- EL_WATER_SCREEN 
+//-- EL_WATER_SCREEN
 8404,0,0,0,-1,0,0
-//-- EL_WATER_DROP 
+//-- EL_WATER_DROP
 8405,0,0,0,-1,0,0
-//-- EL_WATER_BARRIER 
+//-- EL_WATER_BARRIER
 8406,1000,0,0,15000,0,0
-//-- EL_WIND_STEP 
+//-- EL_WIND_STEP
 8407,0,0,0,-1,0,0
-//-- EL_WIND_CURTAIN 
+//-- EL_WIND_CURTAIN
 8408,0,0,0,-1,0,0
-//-- EL_ZEPHYR 
+//-- EL_ZEPHYR
 8409,0,0,0,15000,0,0
-//-- EL_STONE_SHIELD 
+//-- EL_STONE_SHIELD
 8411,0,0,0,-1,0,0
-//-- EL_POWER_OF_GAIA 
+//-- EL_POWER_OF_GAIA
 8412,0,0,0,15000,0,0
-//-- EL_PYROTECHNIC 
+//-- EL_PYROTECHNIC
 8413,0,0,0,-1,0,0
-//-- EL_HEATER 
+//-- EL_HEATER
 8414,0,0,0,-1,0,0
-//-- EL_TROPIC 
+//-- EL_TROPIC
 8415,0,0,0,-1,0,0
-//-- EL_AQUAPLAY 
+//-- EL_AQUAPLAY
 8416,0,0,0,-1,0,0
-//-- EL_COOLER 
+//-- EL_COOLER
 8417,0,0,0,-1,0,0
-//-- EL_CHILLY_AIR 
+//-- EL_CHILLY_AIR
 8418,0,0,0,-1,0,0
-//-- EL_GUST 
+//-- EL_GUST
 8419,0,0,0,-1,0,0
-//-- EL_BLAST 
+//-- EL_BLAST
 8420,0,0,0,-1,0,0
-//-- EL_WILD_STORM 
+//-- EL_WILD_STORM
 8421,0,0,0,-1,0,0
-//-- EL_PETROLOGY 
+//-- EL_PETROLOGY
 8422,0,0,0,-1,0,0
-//-- EL_CURSED_SOIL 
+//-- EL_CURSED_SOIL
 8423,0,0,0,-1,0,0
-//-- EL_UPHEAVAL 
+//-- EL_UPHEAVAL
 8424,0,0,0,-1,0,0
-//-- EL_TIDAL_WEAPON 
+//-- EL_TIDAL_WEAPON
 8433,0,0,0,-1,0,0
 //-- EL_WIND_SLASH
 8434,1000,0,0,0,0,0
 //-- EL_HURRICANE
 8435,1000,0,0,0,0,0
-//-- EL_TYPOON_MIS 
+//-- EL_TYPOON_MIS
 8437,1000,0,0,15000,0,0
-//-- EL_STONE_HAMMER 
+//-- EL_STONE_HAMMER
 8439,0,0,0,5000,0,0
-//-- EL_ROCK_CRUSHER 
+//-- EL_ROCK_CRUSHER
 8440,0,0,0,15000,0,0
-//-- EL_ROCK_CRUSHER_ATK 
+//-- EL_ROCK_CRUSHER_ATK
 8441,0,0,0,15000,0,0
 //==========================================
 

+ 50 - 0
db/pre-re/skill_db.txt

@@ -836,6 +836,25 @@
 //706,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_VENOMFOG,Venom Fog
 //707,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_MILLENNIUMSHIELD,Millenium Shield 2
 //708,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_COMET,Comet 2
+//709,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_ICEMINE,Ice Mine
+//710,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_ICEEXPLO,Ice Explosion
+//711,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_FLAMECROSS,Flame Cross
+//712,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_PULSESTRIKE2,Pulse Strike 2
+//713,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DANCINGBLADE,Dancing Blade
+//714,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DANCINGBLADE_ATK,Dancing Blade Attack
+//715,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DARKPIERCING,Dark Piercing
+//716,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_MAXPAIN,Max Pain
+//717,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_MAXPAIN_ATK,Max Pain Attack
+//718,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DEATHSUMMON,Death Summon
+//719,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_HELLBURNING,Hell Burning
+//720,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_JACKFROST,Jack Frost 2
+//721,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_WIDEWEB,Wide Web
+//722,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_WIDESUCK,Wide Suck
+//723,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_STORMGUST2,Storm Gust 2
+//724,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_FIRESTORM,Fire Storm
+//725,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_REVERBERATION,Reverberation 2
+//726,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_REVERBERATION_ATK,Reverberation Attack
+//727,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_LEX_AETERNA,Lex Aeterna 2
 
 //****
 // 2nd Quest Skills
@@ -1206,6 +1225,33 @@
 //2543,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		ALL_RAY_OF_PROTECTION,Ray of Protection
 //2544,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		MC_CARTDECORATE,Decorate Cart
 
+//****
+// Rebellion
+2551,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0,	RL_GLITTERING_GREED,Flip The Coin Greed
+2552,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0,	RL_RICHS_COIN,Rich's Coin
+2553,15,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0,	RL_MASS_SPIRAL,Mass Spiral
+2554,9,6,1,-1,0x2,2,5,1,no,0,0,0,weapon,0,0,	RL_BANISHING_BUSTER,Banishing Buster
+2555,0,6,4,0,0x1,0,5,1,no,0,0,3,none,0,0,	RL_B_TRAP,Bind Trap
+2556,0,6,4,0,0x3,-1,1,1,no,0,0,0,none,0,0,	RL_FLICKER,Flicker
+2557,9,6,1,-1,0x2,2,5,1,no,0,0,0,weapon,0,0,	RL_S_STORM,Shatter Storm
+2558,0,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0,	RL_E_CHAIN,Eternal Chain
+2559,0,6,4,-1,0,0,1,1,no,0,0x200,0,weapon,0,0,	RL_QD_SHOT,Quick Draw Shot
+2560,11,6,1,0,0x1,0,1,1,no,0,0,3,none,0,0,	RL_C_MARKER,Crimson Marker
+2561,0,6,4,-1,0x2,2,5,1,no,0,0,0,weapon,0,0,	RL_FIREDANCE,Fire Dance
+2562,7:8:9:10:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0,	RL_H_MINE,Howling Mine
+2563,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0,	RL_P_ALTER,Platinum Alter
+2564,9,6,2,0,0x1,0,5,1,no,0,0,0,none,0,0,	RL_FALLEN_ANGEL,Fallen Angel
+2565,0,6,4,-1,0x2,2:3:4:5:6,5,1,no,0,0,0,weapon,3,0,	RL_R_TRIP,Round Trip
+2566,0,6,4,-1,0x2,-1,5,1,no,0,0,0,weapon,0,0,	RL_D_TAIL,Dragon Tail
+2567,3,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0,	RL_FIRE_RAIN,Fire Rain
+2568,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0,	RL_HEAT_BARREL,Heat Barrel
+2569,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0,	RL_AM_BLAST,Anti-Material Blast
+2570,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,6,0,	RL_SLUGSHOT,Slug Shot
+2571,7:8:9:10:11,6,1,-1,0x2,2,5,1,no,0,0,0,weapon,0,0,	RL_HAMMER_OF_GOD,Hammer of God
+2572,0,6,1,-1,0x40,0,5,1,no,0,0,0,weapon,0,0,	RL_R_TRIP_PLUSATK,Round Trip Plus Attack
+2573,0,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0,	RL_B_FLICKER_ATK,Bind Flicker Attack
+2574,0,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0,	RL_GLITTERING_GREED_ATK,Flip The Coin Greed Attack
+
 //****
 // Kagerou & Oboro
 3001,0,6,4,0,0,0,1,1,no,0,0,0,none,0,0x4,		KO_YAMIKUMO,Yamikumo
@@ -1238,6 +1284,10 @@
 3028,1,6,4,0,0x2,3,1,1,no,0,0,0,weapon,0,0x0,	OB_OBOROGENSOU_TRANSITION_ATK,
 3029,7,6,1,0,0x1,0,5,0,no,0,0,0,none,0,0x0,		OB_AKAITSUKI,Akaitsuki
 
+// Copied Bard / Dancer Skills
+//3036,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,	BA_POEMBRAGI2,Poem of Bragi 2
+//3037,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,	DC_FORTUNEKISS2,Fortune Kiss 2
+
 //****
 // Homunculus S
 8001,9,6,4,0,0x1,0,5,1,no,0,0,0,magic,0,0x0,	HLIF_HEAL,Healing Touch

+ 31 - 0
db/pre-re/skill_require_db.txt

@@ -794,6 +794,33 @@
 //2543,0,0,1,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,0	//ALL_RAY_OF_PROTECTION#Ray of Protection#
 //2544,0,0,1,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,0	//MC_CARTDECORATE#Cart Decorate#
 
+//***
+// Rebellion
+2551,0,0,1,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,0	//RL_GLITTERING_GREED#Flip The Coin Greed#
+2552,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,0	//RL_RICHS_COIN#Rich's Coin#
+2553,0,0,80:84:88:92:96,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,0	//RL_MASS_SPIRAL#Mass Spiral#
+2554,0,0,55:60:65:70:75,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,0	//RL_BANISHING_BUSTER#Banishing Buster#
+2555,0,0,30:32:34:36:38,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,0	//RL_B_TRAP#Bind Trap#
+2556,0,0,2,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,0	//RL_FLICKER#Flicker#
+2557,0,0,55:60:65:70:75,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,0	//RL_S_STORM#Shatter Storm#
+2558,0,0,45,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,0	//RL_E_CHAIN#Eternal Chain#
+2559,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,0	//RL_QD_SHOT#Quick Draw Shot#
+2560,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,0	//RL_C_MARKER#Crimson Marker#
+2561,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,0	//RL_FIREDANCE#Fire Dance#
+2562,0,0,45:50:55:60:65,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,0	//RL_H_MINE#Howling Mine#
+2563,0,0,20:24:28:32:36,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,0	//RL_P_ALTER#Platinum Alter#
+2564,0,0,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,0	//RL_FALLEN_ANGEL#Fallen Angel#
+2565,0,0,40:45:50:55:60,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,0	//RL_R_TRIP#Round Trip#
+2566,0,0,60:70:80:90:100,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,0	//RL_D_TAIL#Dragon Tail#
+2567,0,0,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,0	//RL_FIRE_RAIN#Fire Rain#
+2568,0,0,30:40:50:60: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,0	//RL_HEAT_BARREL#Heat Barrel#
+2569,0,0,80:84:88:92:96,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,0	//RL_AM_BLAST#Anti-Material Blast#
+2570,0,0,55:60:65:70:75,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,0	//RL_SLUGSHOT#Slug Shot#
+2571,0,0,70:80:90:100:110,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,0	//RL_HAMMER_OF_GOD#Hammer of God#
+2572,0,0,1,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,0	//RL_R_TRIP_PLUSATK#Round Trip Plus Attack#
+2573,0,0,1,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,0	//RL_B_FLICKER_ATK#Bind Flicker Attack#
+2574,0,0,1,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,0	//RL_GLITTERING_GREED_ATK#Flip The Coin Greed Attack#
+
 //****
 // Kagerou/Oboro
 3001,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,0	//KO_YAMIKUMO#Yamikumo#
@@ -823,6 +850,10 @@
 3027,0,0,55:60:65:70:75 ,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,0	//OB_OBOROGENSOU#Oboro Gensou#
 3029,0,0,20:30:40:50:60,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,0	//OB_AKAITSUKI#Akaitsuki#
 
+// Copied Bard / Dancer Skills
+//3036,0,0,1,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,0	//BA_POEMBRAGI2#Poem of Bragi 2#
+//3037,0,0,1,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,0	//DC_FORTUNEKISS2#Fortune Kiss 2#
+
 8001,0,0,13:16:19:22:25,0,0,0,99,0,0,none,0,0,545,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HLIF_HEAL
 8002,0,0,20:25:30:35:40,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,0	//HLIF_AVOID
 8004,0,0,100,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,0	//HLIF_CHANGE

+ 46 - 0
db/pre-re/skill_tree.txt

@@ -5476,3 +5476,49 @@
 4212,3026,5,3021,1,0,0,0,0,0,0,0,0 //OB_ZANGETSU##
 4212,3027,5,3029,3,0,0,0,0,0,0,0,0 //OB_OBOROGENSOU##
 4212,3029,5,3026,2,0,0,0,0,0,0,0,0 //OB_AKAITSUKI##
+//Rebellion
+4215,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
+4215,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
+4215,500,5,0,0,0,0,0,0,0,0,0,0 //GS_GLITTERING#Flip the Coin#
+4215,501,1,500,1,0,0,0,0,0,0,0,0 //GS_FLING#Fling#
+4215,502,1,500,1,511,10,0,0,0,0,0,0 //GS_TRIPLEACTION#Triple Action#
+4215,503,1,500,5,512,10,0,0,0,0,0,0 //GS_BULLSEYE#Bulls Eye#
+4215,504,1,500,4,517,10,0,0,0,0,0,0 //GS_MADNESSCANCEL#Madness Canceler#
+4215,505,1,500,4,513,5,0,0,0,0,0,0 //GS_ADJUSTMENT#AdJustment#
+4215,506,1,500,2,510,10,0,0,0,0,0,0 //GS_INCREASING#Increasing Accuracy#
+4215,507,1,500,1,0,0,0,0,0,0,0,0 //GS_MAGICALBULLET#Magical Bullet#
+4215,508,1,500,1,0,0,0,0,0,0,0,0 //GS_CRACKER#Cracker#
+4215,509,10,0,0,0,0,0,0,0,0,0,0 //GS_SINGLEACTION#Single Action#
+4215,510,10,0,0,0,0,0,0,0,0,0,0 //GS_SNAKEEYE#Snake Eye#
+4215,511,10,509,1,0,0,0,0,0,0,0,0 //GS_CHAINACTION#Chain Action#
+4215,512,10,509,5,0,0,0,0,0,0,0,0 //GS_TRACKING#Tracking#
+4215,513,5,512,7,0,0,0,0,0,0,0,0 //GS_DISARM#Disarm#
+4215,514,5,512,5,0,0,0,0,0,0,0,0 //GS_PIERCINGSHOT#Piercing Shot#
+4215,515,10,511,3,0,0,0,0,0,0,0,0 //GS_RAPIDSHOWER#Rapid Shower#
+4215,516,10,515,5,0,0,0,0,0,0,0,0 //GS_DESPERADO#Desperado#
+4215,517,10,515,7,516,5,0,0,0,0,0,0 //GS_GATLINGFEVER#Gatling Fever#
+4215,518,10,509,5,0,0,0,0,0,0,0,0 //GS_DUST#Dust#
+4215,519,10,518,3,0,0,0,0,0,0,0,0 //GS_FULLBUSTER#Full Buster#
+4215,520,10,519,5,0,0,0,0,0,0,0,0 //GS_SPREADATTACK#Spread Attack#
+4215,521,10,520,7,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT#Ground Drift#
+4215,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
+4215,2552,1,500,5,0,0,0,0,0,0,0,0 //RL_RICHS_COIN#Rich's Coin#
+4215,2553,5,514,1,0,0,0,0,0,0,0,0 //RL_MASS_SPIRAL#Mass Spiral#
+4215,2554,5,2557,1,0,0,0,0,0,0,0,0 //RL_BANISHING_BUSTER#Banishing Buster#
+4215,2555,5,0,0,0,0,0,0,0,0,0,0 //RL_B_TRAP#Bind Trap#
+4215,2556,1,501,1,0,0,0,0,0,0,0,0 //RL_FLICKER#Flicker#
+4215,2557,5,513,1,518,1,0,0,0,0,0,0 //RL_S_STORM#Shatter Storm#
+4215,2558,10,511,10,0,0,0,0,0,0,0,0 //RL_E_CHAIN#Eternal Chain#
+4215,2559,1,2558,1,0,0,0,0,0,0,0,0 //RL_QD_SHOT#Quick Draw Shot#
+4215,2560,1,506,1,0,0,0,0,0,0,0,0 //RL_C_MARKER#Crimson Marker#
+4215,2561,5,2564,1,0,0,0,0,0,0,0,0 //RL_FIREDANCE#Fire Dance#
+4215,2562,5,520,1,0,0,0,0,0,0,0,0 //RL_H_MINE#Howling Mine#
+4215,2563,5,0,0,0,0,0,0,0,0,0,0 //RL_P_ALTER#Platinum Alter#
+4215,2564,5,516,10,0,0,0,0,0,0,0,0 //RL_FALLEN_ANGEL#Fallen Angel#
+4215,2565,5,2567,1,0,0,0,0,0,0,0,0 //RL_R_TRIP#Round Trip#
+4215,2566,5,2560,1,2562,3,0,0,0,0,0,0 //RL_D_TAIL#Dragon Tail#
+4215,2567,5,517,1,0,0,0,0,0,0,0,0 //RL_FIRE_RAIN#Fire Rain#
+4215,2568,5,2561,2,0,0,0,0,0,0,0,0 //RL_HEAT_BARREL#Heat Barrel#
+4215,2569,5,2553,1,0,0,0,0,0,0,0,0 //RL_AM_BLAST#Anti-Material Blast#
+4215,2570,5,2554,3,0,0,0,0,0,0,0,0 //RL_SLUGSHOT#Slug Shot#
+4215,2571,5,2569,3,0,0,0,0,0,0,0,0 //RL_HAMMER_OF_GOD#Hammer of God#

+ 2 - 0
db/pre-re/skill_unit_db.txt

@@ -152,6 +152,8 @@
 2488,0xe9,    ,  0, 3,1000,enemy, 0x000	//GN_FIRE_EXPANSION_TEAR_GAS
 2490,0xea,    ,  0, 1,1000,enemy, 0x002	//GN_HELLS_PLANT
 
+2555,0x104,   ,  0, 1:2:2:3:3,500,enemy,0x006	//RL_B_TRAP
+
 3006,0x86,    ,  0, 2,1000,enemy, 0x018	//KO_BAKURETSU
 3008,0x86,    ,  0, 2,1000,enemy, 0x018	//KO_MUCHANAGE
 3009,0x86,    ,  0, 3, 500,enemy, 0x018	//KO_HUUMARANKA

+ 66 - 66
db/re/item_db.txt

@@ -1429,7 +1429,7 @@
 2379,Warlock_Battle_Robe,Warlock's Battle Robe,5,10,,0,,36,,1,0x00810204,63,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
 2380,Medic_Robe,Medic's Robe,5,10,,0,,25,,1,0x00008110,63,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
 2381,Elite_Archer_Suit,Elite Archer Suit,5,10,,0,,35,,1,0x00080808,63,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
-2382,Elite_Shooter_Suit,Elite Shooter Suit,5,10,,0,,25,,1,0x01000000,63,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
+2382,Elite_Shooter_Suit,Elite Shooter Suit,5,10,,0,,25,,1,0x41000000,63,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; },{},{}
 2383,Brynhild,Brynhild,5,20,,400,,120,,0,0xFFFFFFFF,63,2,16,,94,0,0,{ bonus bMdef,10; bonus bMaxHP,20*BaseLevel; bonus bMaxSP,5*BaseLevel; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; bonus bUnbreakableArmor,0; bonus bNoKnockback,0; },{},{}
 2384,Spritual_Tunic,Spiritual Tunic,5,20,,0,,10,,0,0xFFFFFFFF,63,2,16,,0,0,0,{ bonus bMaxHP,800; bonus2 bResEff,Eff_Freeze,10000; bonus2 bSubEle,Ele_Earth,20; bonus2 bSubEle,Ele_Fire,20; bonus2 bSubEle,Ele_Wind,20; bonus2 bSubEle,Ele_Poison,20; bonus2 bSubEle,Ele_Holy,20; bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Ghost,20; bonus2 bSubEle,Ele_Undead,20; },{},{}
 2385,Recuperative_Armor,Recuperative Armor,5,20,,0,,12,,0,0xFFFFFFFF,63,2,16,,0,0,0,{ bonus bNoRegen,1; bonus bNoRegen,2; bonus bHPGainValue,60; bonus bSPGainValue,6; bonus bMagicHPGainValue,60; bonus bMagicSPGainValue,6; },{},{ heal 0,-100; }
@@ -1485,7 +1485,7 @@
 2434,Black_Leather_Boots_,Black Leather Boots,5,20,,500,,16,,1,0xFFFFFFFE,18,2,64,,55,1,0,{ bonus bAgi,1; if(getrefine()>=9) bonus bAgi,2; },{},{}
 2435,Battle_Greave,Battle Greaves,5,10,,0,,15,,1,0x026654E2,63,2,64,,80,1,0,{ bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
 2436,Combat_Boots,Combat Boots,5,10,,0,,9,,1,0x00898B1C,63,2,64,,80,1,0,{ bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
-2437,Battle_Boots,Battle Boots,5,10,,0,,9,,1,0x01000000,63,2,64,,80,1,0,{ bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
+2437,Battle_Boots,Battle Boots,5,10,,0,,9,,1,0x41000000,63,2,64,,80,1,0,{ bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
 2438,Paw_Of_Cat,Paw Of Cat,5,10,,300,,0,,0,0xFFFFFFFF,63,2,64,,80,1,0,{ bonus bFlee,5; bonus bAgi,1; /* skill "ALL_CATCRY",1; */ },{},{}
 2439,Refresh_Shoes,Refresh Shoes,5,20,,0,,9,,0,0xFFFFFFFF,63,2,64,,0,0,0,{ bonus bMaxHPrate,17; bonus bMaxSPrate,8; bonus2 bHPRegenRate,20,10000; bonus2 bSPRegenRate,3,10000; },{},{}
 2440,Sprint_Shoes,Sprint Shoes,5,20,,300,,10,,1,0x00CFFF80,18,2,64,,70,1,0,{ bonus bAgi,1; bonus bSPrecovRate,5; },{},{}
@@ -1582,7 +1582,7 @@
 2537,Diabolus_Manteau,Diabolus Manteau,5,20,,250,,15,,1,0x00CFFF80,18,2,4,,0,1,0,{ bonus2 bSubEle,Ele_Neutral,5; bonus bMaxHP,100; bonus2 bAddDamageClass,1916,10; bonus2 bAddDamageClass,1917,10; },{},{}
 2538,Commander_Manteau,Captain's Manteau,5,10,,0,,28,,1,0x026654E2,63,2,4,,80,1,0,{ bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
 2539,Commander_Manteau_,Commander's Manteau,5,10,,0,,20,,1,0x00898B1C,63,2,4,,80,1,0,{ bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
-2540,Sheriff_Manteau,Sheriff's Manteau,5,10,,0,,20,,1,0x01000000,63,2,4,,80,1,0,{ bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
+2540,Sheriff_Manteau,Sheriff's Manteau,5,10,,0,,20,,1,0x41000000,63,2,4,,80,1,0,{ bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{}
 2541,Asprika,Asprika,5,20,,400,,40,,0,0xFFFFFFFF,63,2,4,,94,0,0,{ bonus bMdef,5; bonus3 bSubEle,Ele_Neutral,30,BF_SHORT; bonus3 bSubEle,Ele_Water,30,BF_SHORT; bonus3 bSubEle,Ele_Earth,30,BF_SHORT; bonus3 bSubEle,Ele_Fire,30,BF_SHORT; bonus3 bSubEle,Ele_Wind,30,BF_SHORT; bonus3 bSubEle,Ele_Poison,30,BF_SHORT; bonus3 bSubEle,Ele_Holy,30,BF_SHORT; bonus3 bSubEle,Ele_Dark,30,BF_SHORT; bonus3 bSubEle,Ele_Ghost,30,BF_SHORT; bonus3 bSubEle,Ele_Undead,30,BF_SHORT; bonus bFlee,30; skill "AL_TELEPORT",1; bonus bUnbreakableGarment,0; },{},{}
 2542,Flame_Manteau,Flame Manteau of Naght Sieger,5,20,,70,,16,,1,0xFFFFFFFE,18,2,4,,70,1,0,{ bonus bMaxHPrate,5; bonus bMdef,2; bonus bMatkRate,1; bonus2 bAddEle,Ele_Fire,2; },{},{}
 2543,Sylphid_Manteau,Sylphid Manteau,5,20,,0,,9,,0,0xFFFFFFFF,63,2,4,,0,0,0,{ bonus bFlee,13; bonus2 bSubEle,Ele_Neutral,13; bonus bFlee2,1; },{},{}
@@ -1770,7 +1770,7 @@
 2730,Morroc_Seal,Seal of Continental Guard,5,20,,50,,0,,1,0xFFFFFFFE,63,2,136,,80,0,0,{ bonus bMaxHP,50; bonus bAspdRate,3; },{},{}
 2731,Morroc_Charm_Stone,Rune Spellstone,5,20,,50,,0,,1,0xFFFFFFFE,63,2,136,,80,0,0,{ bonus bMaxSP,50; bonus bVariableCastrate,-1; },{},{}
 2732,Morroc_Ring,Death Loop,5,20,,50,,0,,1,0xFFFFFFFE,63,2,136,,80,0,0,{ bonus bCritical,5; },{},{}
-2733,Medal_Gunner,Sheriff Badge,5,20,,0,,1,,0,0x01000000,63,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG; },{},{}
+2733,Medal_Gunner,Sheriff Badge,5,20,,0,,1,,0,0x41000000,63,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG; },{},{}
 2734,Directive_A,Directive,5,0,,0,,1,,0,0x00000001,63,2,136,,0,0,0,{},{},{}
 2735,Directive_B,Directive,5,0,,0,,1,,0,0x00000001,63,2,136,,0,0,0,{},{},{}
 2736,Navel_Ring,Navel Ring,5,20,,100,,0,,0,0xFFFFFFFE,63,2,136,,75,0,0,{ bonus bDex,3; bonus bLuk,3; bonus bMdef,2; },{},{}
@@ -6370,68 +6370,68 @@
 //
 13092,RWC_Memory_Knife,RWC Memory Knife,4,1000,500,650,50,0,1,1,0x02800075,63,2,2,3,1,1,1,{ bonus bBaseAtk,20*(getrefine()/3); bonus bMatk,20*(getrefine()/3); if(getrefine()>=9){ set .@i,1; bonus4 bAutoSpell,"BS_WEAPONPERFECT",1,20,0; } if(getrefine()>=6){ set .@rate,5*(.@i+1); bonus2 bAddRace,RC_Boss,.@rate; bonus2 bAddRace,RC_NonBoss,.@rate; bonus2 bMagicAddRace,RC_Boss,.@rate; bonus2 bMagicAddRace,RC_NonBoss,.@rate; } },{},{}
 // Revolvers
-13100,Six_Shooter,Six Shooter,4,4500,,400,30,,7,1,0x01000000,63,2,34,1,10,1,17,{ bonus bHit,-10; },{},{}
-13101,Six_Shooter_,Six Shooter,4,4500,,400,30,,7,2,0x01000000,63,2,34,1,10,1,17,{ bonus bHit,-10; },{},{}
-13102,Crimson_Bolt,Crimson Bolt,4,20000,,450,45,,7,1,0x01000000,63,2,34,2,35,1,17,{ bonus bHit,-10; },{},{}
-13103,Crimson_Bolt_,Crimson Bolt,4,20000,,450,45,,7,2,0x01000000,63,2,34,2,35,1,17,{ bonus bHit,-10; },{},{}
-13104,The_Garrison,Garrison,4,48000,,500,70,,7,1,0x01000000,63,2,34,2,55,1,17,{ bonus bHit,-10; },{},{}
-13105,The_Garrison_,Garrison,4,48000,,500,70,,7,2,0x01000000,63,2,34,2,55,1,17,{ bonus bHit,-10; },{},{}
-13106,Gold_Lux,Gold Lux,4,100000,,500,20,,7,0,0x01000000,63,2,34,3,12,1,17,{ bonus bHit,-10; if(getskilllv("GS_GLITTERING")>0) bonus3 bAutoSpell,"GS_GLITTERING",getskilllv("GS_GLITTERING"),100; },{},{}
-13107,Wasteland_Outlaw,Wasteland's Outlaw,4,20,,580,68,,7,2,0x01000000,63,2,34,3,70,1,17,{ bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; },{},{}
-13108,BF_Pistol1,Soldier Revolver,4,0,,0,70,,7,0,0x01000000,63,2,34,3,80,1,17,{ bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0; },{},{}
-13109,Wasteland_Outlaw_C,Wasteland Outlaw,4,20,,0,100,,7,0,0x01000000,63,2,34,3,0,0,17,{ bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace,RC_NonBoss,40; bonus2 bAddRace,RC_Boss,40; },{},{}
-13110,Krieger_Pistol1,Glorious Pistol,4,0,,0,80,,7,0,0x01000000,63,2,34,4,80,1,17,{ bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; } },{},{}
-13111,Sharpshooter_Revolver,Sharpshooter Revolver,4,20,,0,105,,7,0,0x01000000,63,2,34,4,1,1,17,{ bonus bDex,2; },{},{}
-13112,P_Revolver1,Eden Revlover I,4,0,,0,44,,7,0,0x01000000,63,2,34,1,26,0,17,{ bonus bHit,-5; },{},{}
-13113,P_Revolver2,Eden Revlover II,4,0,,0,60,,7,0,0x01000000,63,2,34,1,40,0,17,{ bonus bHit,-5; },{},{}
-13114,P_Revolver3,Eden Revolver III,4,0,,0,76,,7,0,0x01000000,63,2,34,3,60,0,17,{ bonus bHit,-5; },{},{}
-13115,Upg_Revolver,Upg Revolver,4,20,,500,35,,7,1,0x01000000,63,2,34,3,1,1,17,{ bonus bBaseAtk,(getrefine()*5); bonus bLongAtkRate,(getrefine()*2); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*5); },{},{}
-13116,Novice_Revolver,Novice Revolver,4,0,,500,20,,7,0,0x01000000,63,2,34,1,1,0,17,{ bonus bHit,-5; },{},{}
+13100,Six_Shooter,Six Shooter,4,4500,,400,30,,7,1,0x41000000,63,2,34,1,10,1,17,{ bonus bHit,-10; },{},{}
+13101,Six_Shooter_,Six Shooter,4,4500,,400,30,,7,2,0x41000000,63,2,34,1,10,1,17,{ bonus bHit,-10; },{},{}
+13102,Crimson_Bolt,Crimson Bolt,4,20000,,450,45,,7,1,0x41000000,63,2,34,2,35,1,17,{ bonus bHit,-10; },{},{}
+13103,Crimson_Bolt_,Crimson Bolt,4,20000,,450,45,,7,2,0x41000000,63,2,34,2,35,1,17,{ bonus bHit,-10; },{},{}
+13104,The_Garrison,Garrison,4,48000,,500,70,,7,1,0x41000000,63,2,34,2,55,1,17,{ bonus bHit,-10; },{},{}
+13105,The_Garrison_,Garrison,4,48000,,500,70,,7,2,0x41000000,63,2,34,2,55,1,17,{ bonus bHit,-10; },{},{}
+13106,Gold_Lux,Gold Lux,4,100000,,500,20,,7,0,0x41000000,63,2,34,3,12,1,17,{ bonus bHit,-10; if(getskilllv("GS_GLITTERING")>0) bonus3 bAutoSpell,"GS_GLITTERING",getskilllv("GS_GLITTERING"),100; },{},{}
+13107,Wasteland_Outlaw,Wasteland's Outlaw,4,20,,580,68,,7,2,0x41000000,63,2,34,3,70,1,17,{ bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; },{},{}
+13108,BF_Pistol1,Soldier Revolver,4,0,,0,70,,7,0,0x41000000,63,2,34,3,80,1,17,{ bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0; },{},{}
+13109,Wasteland_Outlaw_C,Wasteland Outlaw,4,20,,0,100,,7,0,0x41000000,63,2,34,3,0,0,17,{ bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace,RC_NonBoss,40; bonus2 bAddRace,RC_Boss,40; },{},{}
+13110,Krieger_Pistol1,Glorious Pistol,4,0,,0,80,,7,0,0x41000000,63,2,34,4,80,1,17,{ bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; } },{},{}
+13111,Sharpshooter_Revolver,Sharpshooter Revolver,4,20,,0,105,,7,0,0x41000000,63,2,34,4,1,1,17,{ bonus bDex,2; },{},{}
+13112,P_Revolver1,Eden Revlover I,4,0,,0,44,,7,0,0x41000000,63,2,34,1,26,0,17,{ bonus bHit,-5; },{},{}
+13113,P_Revolver2,Eden Revlover II,4,0,,0,60,,7,0,0x41000000,63,2,34,1,40,0,17,{ bonus bHit,-5; },{},{}
+13114,P_Revolver3,Eden Revolver III,4,0,,0,76,,7,0,0x41000000,63,2,34,3,60,0,17,{ bonus bHit,-5; },{},{}
+13115,Upg_Revolver,Upg Revolver,4,20,,500,35,,7,1,0x41000000,63,2,34,3,1,1,17,{ bonus bBaseAtk,(getrefine()*5); bonus bLongAtkRate,(getrefine()*2); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*5); },{},{}
+13116,Novice_Revolver,Novice Revolver,4,0,,500,20,,7,0,0x41000000,63,2,34,1,1,0,17,{ bonus bHit,-5; },{},{}
 // Guns
-13150,Branch,Branch,4,3000,,500,50,,9,3,0x01000000,63,2,34,1,1,1,18,{},{},{}
-13151,The_Cyclone,Cyclone,4,17500,,700,120,,9,1,0x01000000,63,2,34,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
-13152,The_Cyclone_,Cyclone,4,17500,,700,120,,9,2,0x01000000,63,2,34,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
-13153,Dusk,Dusk,4,23500,,750,150,,9,1,0x01000000,63,2,34,2,56,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
-13154,Rolling_Stone,Rolling Stone,4,12000,,900,135,,9,1,0x01000000,63,2,34,1,14,1,20,{ bonus bSplashRange,1; },{},{}
-13155,Black_Rose,Black Rose,4,32000,,900,180,,9,1,0x01000000,63,2,34,2,35,1,20,{ bonus bSplashRange,1; },{},{}
-13156,Gate_Keeper,Gate Keeper,4,56000,,1000,210,,9,0,0x01000000,63,2,34,2,24,1,20,{ bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; },{},{}
-13157,Drifter,Drifter,4,80000,,2300,50,,9,1,0x01000000,63,2,34,2,55,1,19,{},{},{}
-13158,Butcher,Butcher,4,130000,,2500,75,,9,0,0x01000000,63,2,34,3,68,1,19,{ bonus2 bCriticalAddRace,RC_Brute,10; },{},{}
-13159,Butcher_,Butcher,4,130000,,2500,75,,9,1,0x01000000,63,2,34,3,68,1,19,{ bonus2 bCriticalAddRace,RC_Brute,10; },{},{}
-13160,Destroyer,Destroyer,4,110000,,1200,220,,9,0,0x01000000,63,2,34,2,52,1,21,{ bonus bBreakArmorRate,200; },{},{}
-13161,Destroyer_,Destroyer,4,110000,,1200,220,,9,1,0x01000000,63,2,34,2,52,1,21,{ bonus bBreakArmorRate,200; },{},{}
-13162,Inferno,Inferno,4,230000,,1250,280,,9,1,0x01000000,63,2,34,2,65,1,21,{},{},{}
-13163,Long_Barrel,Long Barrel,4,40000,,1000,150,,9,0,0x01000000,63,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20; },{},{}
-13164,Long_Barrel_,Long Barrel,4,40000,,1000,150,,9,1,0x01000000,63,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20; },{},{}
-13165,Jungle_Carbine,Jungle Carbine,4,56000,,700,170,,9,0,0x01000000,63,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3; },{},{}
-13166,Jungle_Carbine_,Jungle Carbine,4,56000,,700,170,,9,1,0x01000000,63,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3; },{},{}
-13167,Gate_KeeperDD,Gate Keeper-DD,4,72000,,1300,200,,9,0,0x01000000,63,2,34,4,70,1,20,{ bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; bonus bDef,getrefine(); bonus bDex,1; },{},{}
-13168,Thunder_P,Thunder P,4,76000,,700,80,,9,1,0x01000000,63,2,34,3,70,1,20,{ bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; },{},{}
-13169,Thunder_P_,Thunder P,4,76000,,700,80,,9,2,0x01000000,63,2,34,3,70,1,20,{ bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; },{},{}
-13170,Lever_Action_Rifle,Lever Action Rifle,4,20,,770,138,,9,2,0x01000000,63,2,34,3,70,1,18,{ bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; },{},{}
-13171,BF_Rifle1,Soldier Rifle,4,0,,0,50,,9,0,0x01000000,63,2,34,3,80,1,18,{ bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bVariableCastrate,"GS_TRACKING",-25; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; },{},{}
-13172,BF_Gatling_Gun1,Soldier Gatling Gun,4,0,,0,80,,9,0,0x01000000,63,2,34,3,80,1,19,{ bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,120,1000; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
-13173,BF_Shotgun1,Soldier Shotgun,4,0,,0,100,,9,0,0x01000000,63,2,34,3,80,1,20,{ bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
-13174,BF_Launcher1,Soldier Grenade Launcher,4,0,,0,300,,9,0,0x01000000,63,2,34,3,80,1,21,{ bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }",30,9000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
-13175,Lever_Action_Rifle_C,Lever Action Rifle,4,20,,0,170,,9,0,0x01000000,63,2,34,3,1,0,18,{ bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; bonus2 bAddRace,RC_NonBoss,40; bonus2 bAddRace,RC_Boss,40; },{},{}
-13176,Krieger_Rifle1,Glorious Rifle,4,0,,0,90,,9,0,0x01000000,63,2,34,4,80,1,18,{ bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bVariableCastrate,"GS_TRACKING",25; bonus2 bSkillAtk,"GS_TRACKING",getrefine() * 3; } },{},{}
-13177,Krieger_Gatling1,Glorious Gatling Gun,4,0,,0,90,,9,0,0x01000000,63,2,34,4,80,1,19,{ bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); } },{},{}
-13178,Krieger_Shotgun1,Glorious Shotgun,4,0,,0,110,,9,0,0x01000000,63,2,34,4,80,1,20,{ bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_SPREADATTACK",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; } },{},{}
-13179,Krieger_Launcher1,Glorious Grenade Launcher,4,0,,0,330,,9,0,0x01000000,63,2,34,4,80,1,21,{ bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_GROUNDDRIFT",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; autobonus "{ bonus bAspdRate,20; }",200,20000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; } },{},{}
-13180,Novice_Rifle,Novice Rifle,4,0,,500,50,,9,3,0x01000000,1,2,34,4,1,0,18,{},{},{}
-13181,Novice_Shotgun,Novice Shotgun,4,0,,1000,80,,9,0,0x01000000,1,2,34,4,1,0,20,{},{},{}
-13182,Novice_Gatling,Novice Gatling,4,0,,1500,40,,9,0,0x01000000,1,2,34,4,1,0,19,{},{},{}
-13183,Novice_Grenade_Launcher,Novice Grenade Launcher,4,0,,1500,40,,9,0,0x01000000,1,2,34,4,1,0,21,{},{},{}
+13150,Branch,Branch,4,3000,,500,50,,9,3,0x41000000,63,2,34,1,1,1,18,{},{},{}
+13151,The_Cyclone,Cyclone,4,17500,,700,120,,9,1,0x41000000,63,2,34,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
+13152,The_Cyclone_,Cyclone,4,17500,,700,120,,9,2,0x41000000,63,2,34,2,24,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
+13153,Dusk,Dusk,4,23500,,750,150,,9,1,0x41000000,63,2,34,2,56,1,18,{ bonus bHit,10; bonus bCritical,10; },{},{}
+13154,Rolling_Stone,Rolling Stone,4,12000,,900,135,,9,1,0x41000000,63,2,34,1,14,1,20,{ bonus bSplashRange,1; },{},{}
+13155,Black_Rose,Black Rose,4,32000,,900,180,,9,1,0x41000000,63,2,34,2,35,1,20,{ bonus bSplashRange,1; },{},{}
+13156,Gate_Keeper,Gate Keeper,4,56000,,1000,210,,9,0,0x41000000,63,2,34,2,24,1,20,{ bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; },{},{}
+13157,Drifter,Drifter,4,80000,,2300,50,,9,1,0x41000000,63,2,34,2,55,1,19,{},{},{}
+13158,Butcher,Butcher,4,130000,,2500,75,,9,0,0x41000000,63,2,34,3,68,1,19,{ bonus2 bCriticalAddRace,RC_Brute,10; },{},{}
+13159,Butcher_,Butcher,4,130000,,2500,75,,9,1,0x41000000,63,2,34,3,68,1,19,{ bonus2 bCriticalAddRace,RC_Brute,10; },{},{}
+13160,Destroyer,Destroyer,4,110000,,1200,220,,9,0,0x41000000,63,2,34,2,52,1,21,{ bonus bBreakArmorRate,200; },{},{}
+13161,Destroyer_,Destroyer,4,110000,,1200,220,,9,1,0x41000000,63,2,34,2,52,1,21,{ bonus bBreakArmorRate,200; },{},{}
+13162,Inferno,Inferno,4,230000,,1250,280,,9,1,0x41000000,63,2,34,2,65,1,21,{},{},{}
+13163,Long_Barrel,Long Barrel,4,40000,,1000,150,,9,0,0x41000000,63,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20; },{},{}
+13164,Long_Barrel_,Long Barrel,4,40000,,1000,150,,9,1,0x41000000,63,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20; },{},{}
+13165,Jungle_Carbine,Jungle Carbine,4,56000,,700,170,,9,0,0x41000000,63,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3; },{},{}
+13166,Jungle_Carbine_,Jungle Carbine,4,56000,,700,170,,9,1,0x41000000,63,2,34,3,70,1,18,{ bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3; },{},{}
+13167,Gate_KeeperDD,Gate Keeper-DD,4,72000,,1300,200,,9,0,0x41000000,63,2,34,4,70,1,20,{ bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; bonus bDef,getrefine(); bonus bDex,1; },{},{}
+13168,Thunder_P,Thunder P,4,76000,,700,80,,9,1,0x41000000,63,2,34,3,70,1,20,{ bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; },{},{}
+13169,Thunder_P_,Thunder P,4,76000,,700,80,,9,2,0x41000000,63,2,34,3,70,1,20,{ bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20; },{},{}
+13170,Lever_Action_Rifle,Lever Action Rifle,4,20,,770,138,,9,2,0x41000000,63,2,34,3,70,1,18,{ bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; },{},{}
+13171,BF_Rifle1,Soldier Rifle,4,0,,0,50,,9,0,0x41000000,63,2,34,3,80,1,18,{ bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bVariableCastrate,"GS_TRACKING",-25; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; },{},{}
+13172,BF_Gatling_Gun1,Soldier Gatling Gun,4,0,,0,80,,9,0,0x41000000,63,2,34,3,80,1,19,{ bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,120,1000; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
+13173,BF_Shotgun1,Soldier Shotgun,4,0,,0,100,,9,0,0x41000000,63,2,34,3,80,1,20,{ bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
+13174,BF_Launcher1,Soldier Grenade Launcher,4,0,,0,300,,9,0,0x41000000,63,2,34,3,80,1,21,{ bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }",30,9000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0; },{},{}
+13175,Lever_Action_Rifle_C,Lever Action Rifle,4,20,,0,170,,9,0,0x41000000,63,2,34,3,1,0,18,{ bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; bonus2 bAddRace,RC_NonBoss,40; bonus2 bAddRace,RC_Boss,40; },{},{}
+13176,Krieger_Rifle1,Glorious Rifle,4,0,,0,90,,9,0,0x41000000,63,2,34,4,80,1,18,{ bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bVariableCastrate,"GS_TRACKING",25; bonus2 bSkillAtk,"GS_TRACKING",getrefine() * 3; } },{},{}
+13177,Krieger_Gatling1,Glorious Gatling Gun,4,0,,0,90,,9,0,0x41000000,63,2,34,4,80,1,19,{ bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); } },{},{}
+13178,Krieger_Shotgun1,Glorious Shotgun,4,0,,0,110,,9,0,0x41000000,63,2,34,4,80,1,20,{ bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_SPREADATTACK",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; } },{},{}
+13179,Krieger_Launcher1,Glorious Grenade Launcher,4,0,,0,330,,9,0,0x41000000,63,2,34,4,80,1,21,{ bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_GROUNDDRIFT",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; autobonus "{ bonus bAspdRate,20; }",200,20000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; } },{},{}
+13180,Novice_Rifle,Novice Rifle,4,0,,500,50,,9,3,0x41000000,1,2,34,4,1,0,18,{},{},{}
+13181,Novice_Shotgun,Novice Shotgun,4,0,,1000,80,,9,0,0x41000000,1,2,34,4,1,0,20,{},{},{}
+13182,Novice_Gatling,Novice Gatling,4,0,,1500,40,,9,0,0x41000000,1,2,34,4,1,0,19,{},{},{}
+13183,Novice_Grenade_Launcher,Novice Grenade Launcher,4,0,,1500,40,,9,0,0x41000000,1,2,34,4,1,0,21,{},{},{}
 // Bullets
-13200,Bullet,Bullet,10,1,,2,10,,,,0x01000000,63,2,32768,,1,,3,{},{},{}
-13201,Silver_Bullet,Silver Bullet,10,15,,2,15,,,,0x01000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Holy; },{},{}
-13202,Shell_Of_Blood,Bloody Shell,10,30,,2,30,,,,0x01000000,63,2,32768,,1,,3,{ bonus2 bAddEff,Eff_Bleeding,100; },{},{}
-13203,Flare_Sphere,Flare Sphere,10,80,,5,50,,,,0x01000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Fire; },{},{}
-13204,Lighting_Sphere,Lightning Sphere,10,80,,5,50,,,,0x01000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Wind; },{},{}
-13205,Poison_Sphere,Poison Sphere,10,80,,5,50,,,,0x01000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; },{},{}
-13206,Blind_Sphere,Blind Sphere,10,80,,5,50,,,,0x01000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; },{},{}
-13207,Freezing_Sphere,Freezing Sphere,10,80,,5,50,,,,0x01000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Water; },{},{}
-13208,Gong_Bug,Sow Bug,10,0,,20,50,,,,0x01000000,63,2,32768,,50,,3,{ bonus2 bAddEff,Eff_Stun,1000; },{},{}
+13200,Bullet,Bullet,10,1,,2,10,,,,0x41000000,63,2,32768,,1,,3,{},{},{}
+13201,Silver_Bullet,Silver Bullet,10,15,,2,15,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Holy; },{},{}
+13202,Shell_Of_Blood,Bloody Shell,10,30,,2,30,,,,0x41000000,63,2,32768,,1,,3,{ bonus2 bAddEff,Eff_Bleeding,100; },{},{}
+13203,Flare_Sphere,Flare Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Fire; },{},{}
+13204,Lighting_Sphere,Lightning Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Wind; },{},{}
+13205,Poison_Sphere,Poison Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; },{},{}
+13206,Blind_Sphere,Blind Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; },{},{}
+13207,Freezing_Sphere,Freezing Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Water; },{},{}
+13208,Gong_Bug,Sow Bug,10,0,,20,50,,,,0x41000000,63,2,32768,,50,,3,{ bonus2 bAddEff,Eff_Stun,1000; },{},{}
 // Shurikens & Kunais
 13250,Shuriken,Shuriken,10,4,,5,10,,,,0x02000000,63,2,32768,,1,,6,{},{},{}
 13251,Nimbus_Shuriken,Nimbus Shuriken,10,10,,5,30,,,,0x02000000,63,2,32768,,20,,6,{},{},{}
@@ -8333,9 +8333,9 @@
 18737,Fortier_Mask,Fortier Masque,5,20,,200,,0,,0,0xFFFFFFFF,63,2,512,,10,0,876,{ bonus bUnbreakableHelm,0; },{},{}
 18739,Carnation_Hairband,Carnation Hairband,5,20,,100,,0,,0,0xFFFFFFFF,63,2,256,,0,1,878,{ bonus bLuk,1; },{},{}
 18740,Hair_Of_The_Strong,Hair Of The Strong,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,879,{},{},{}
-18742,C_MoonStar_Accessory,Moon and Stars,5,20,,0,,0,,0,0xFFFFFFFF,63,2,2048,,0,0,0,{},{},{}
+18742,C_MoonStar_Accessory,Moon and Stars,5,20,,0,,0,,0,0xFFFFFFFF,7,2,2048,,0,0,881,{},{ sc_start SC_MOONSTAR,-1,0; },{ sc_end SC_MOONSTAR; }
 18743,Spirit_Of_Chung_E,Spirit Of Chung E,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,882,{},{},{}
-18744,C_World_Star,Twilight,5,20,,0,,0,,0,0xFFFFFFFF,63,2,2048,,0,0,0,{},{},{}
+18744,C_World_Star,Twilight,5,20,,0,,0,,0,0xFFFFFFFF,7,2,2048,,0,0,883,{},{ sc_start SC_SUPER_STAR,-1,0; },{ sc_end SC_SUPER_STAR; }
 18745,Choco_Stick_In_Mouth,Choco Stick In Mouth,5,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,10,0,884,{},{},{}
 18746,Chilly_Breath,Chilly Breath,5,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,10,0,885,{ bonus bInt,1; },{},{}
 18747,Eyes_Of_Ifrit,Eyes Of Ifrit,5,20,,100,,1,,1,0xFFFFFFFF,63,2,512,,0,0,886,{ bonus bDex,1; },{},{}

+ 2 - 0
db/re/job_db1.txt

@@ -269,3 +269,5 @@
 4211,	26000,80   ,  0  ,515  ,400  ,500  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 750 ,2000 ,500
 // Oboro
 4212,	26000,80   ,  0  ,515  ,400  ,500  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 750 ,2000 ,500
+// Rebellion
+4215,   28000,88   ,  0  ,450  ,540  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,490  ,590  ,440  ,940  ,1040 ,2000 ,2000 ,600

文件差异内容过多而无法显示
+ 0 - 0
db/re/job_exp.txt


+ 4 - 4
db/re/job_maxhpsp_db.txt

@@ -48,8 +48,8 @@
 //MaxHP - Bard/Dancer/Clown/Gypsy/Baby Bard/Baby Dancer
 1,99,19:20:4020:4021:4042:4043,0,40,47,54,62,71,81,91,102,114,127,140,154,169,180,196,212,224,242,260,278,296,316,330,350,371,393,415,438,451,477,503,530,558,587,616,646,677,709,741,774,808,843,878,914,951,989,1027,1066,1106,1147,1188,1230,1273,1317,1361,1406,1452,1499,1546,1594,1643,1693,1743,1794,1846,1899,1952,2006,2061,2117,2173,2230,2288,2347,2406,2466,2527,2589,2651,2714,2778,2843,2908,2974,3041,3109,3177,3246,3316,3387,3458,3530,3603,3677,3751,3826,3902,3979,4056
 
-//MaxHP - Gunslinger
-1,99,24,0,40,47,55,64,74,84,95,107,120,134,149,165,182,200,219,238,258,306,329,354,379,406,433,462,491,521,551,583,615,649,683,719,755,793,831,870,909,950,991,1034,1077,1122,1167,1214,1261,1309,1357,1407,1457,1509,1561,1615,1669,1725,1781,1838,1895,1954,2013,2074,2135,2198,2261,2326,2391,2457,2523,2591,2659,2670,2680,2690,2700,2710,2720,2730,2740,2750,2760,3000,3020,3040,3060,3080,3100,3120,3140,3160,3180,3455,3524,3593,3663,3734,3806,3878,3951,4025,4500
+//MaxHP - Gunslinger/Rebellion
+1,99,24:4215,0,40,47,55,64,74,84,95,107,120,134,149,165,182,200,219,238,258,306,329,354,379,406,433,462,491,521,551,583,615,649,683,719,755,793,831,870,909,950,991,1034,1077,1122,1167,1214,1261,1309,1357,1407,1457,1509,1561,1615,1669,1725,1781,1838,1895,1954,2013,2074,2135,2198,2261,2326,2391,2457,2523,2591,2659,2670,2680,2690,2700,2710,2720,2730,2740,2750,2760,3000,3020,3040,3060,3080,3100,3120,3140,3160,3180,3455,3524,3593,3663,3734,3806,3878,3951,4025,4500
 
 //MaxHP - Ninja
 1,99,25:4211:4212,0,40,47,54,62,71,81,91,102,114,127,140,154,169,185,201,218,236,255,274,294,315,337,359,382,406,431,456,482,509,537,565,594,624,655,686,718,751,785,819,854,890,927,964,1002,1041,1081,1121,1162,1204,1247,1290,1334,1379,1425,1471,1518,1566,1615,1664,1714,1765,1817,1869,1922,1976,2031,2086,2142,2199,2257,2275,2294,2314,2335,2356,2378,2401,2425,2449,2874,2890,2907,2924,2942,2971,2991,3011,3032,3054,3567,3590,3614,3649,3675,3701,3728,3756,3800,4250
@@ -129,8 +129,8 @@
 //MaxSP - Sage/Professor/Baby Sage
 1,99,16:4017:4039,1,17,24,31,38,45,52,59,66,73,80,87,94,101,108,115,122,129,136,143,150,157,164,171,178,185,192,199,206,213,220,227,234,241,248,255,262,269,276,283,290,297,304,311,318,325,332,339,346,353,360,367,374,381,388,395,402,409,416,423,430,437,444,451,458,465,472,479,486,493,500,507,514,521,528,535,542,549,556,563,570,577,584,591,598,605,612,619,626,633,640,647,654,661,668,675,682,689,696,703
 
-//MaxSP - Gunslinger
-1,99,24,1,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,61,64,67,70,73,76,79,82,85,89,93,97,101,105,109,113,117,121,125,129,131,135,139,141,145,149,153,157,161,165,169,173,177,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,312,318,324,336,342,348,354,360,366,372,378,384,390,396,402,408,414,420,426,432,438,444,450,456
+//MaxSP - Gunslinger/Rebellion
+1,99,24:4215,1,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,61,64,67,70,73,76,79,82,85,89,93,97,101,105,109,113,117,121,125,129,131,135,139,141,145,149,153,157,161,165,169,173,177,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281,286,291,296,301,306,312,318,324,336,342,348,354,360,366,372,378,384,390,396,402,408,414,420,426,432,438,444,450,456
 
 //MaxSP - Ninja
 1,99,25:4211:4212,1,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,75,79,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,257,263,269,275,281,287,293,299,305,311,317,323,329,335,341,347,353,359,365,371,378,386,394,402,410,418,426,434,442,450,458,466,474,482,490,498,506,514,522

+ 54 - 3
db/re/skill_cast_db.txt

@@ -553,8 +553,8 @@
 //===== High Wzard =========================
 //-- HW_MAGICCRASHER
 365,300,300,0,0,0,0,0
-//-- HW_MAGICPOWER 
-366,0,0,0,30000,0,0,0 
+//-- HW_MAGICPOWER
+366,0,0,0,30000,0,0,0
 //==========================================
 
 
@@ -1561,7 +1561,7 @@
 2451,1000,1000,0,60000,0,2000,-1
 //-- SO_WARMER
 2452,2200:2400:2600:2800:3000,1000,0,40000:45000:50000:55000:60000,30000,35000:40000:45000:50000:55000,1800:1600:1400:1200:1000
-//-- SO_VACUUM_EXTREME 
+//-- SO_VACUUM_EXTREME
 2453,1000:1500:2000:2500:3000,1000,0,4000:6000:8000:10000:12000,0,5000,0
 //-- SO_VARETYR_SPEAR
 2454,2200:2400:2600:2800:3000,1000,0,0,2200:2400:2600:2800:3000,2000,1800:1600:1400:1200:1000
@@ -1661,6 +1661,57 @@
 2537,5000,5000,0,60000,0,60000,0
 //==========================================
 
+//===== Rebellion ==========================
+//-- RL_GLITTERING_GREED
+//2551,0,0,0,0,0,0,-1
+//-- RL_RICHS_COIN
+2552,0,1000,0,600000,0,0,-1
+//-- RL_MASS_SPIRAL
+2553,0,1000,0,0,30000,1000,-1
+//-- RL_BANISHING_BUSTER
+2554,0,1000,0,0,0,1500,-1
+//-- RL_B_TRAP
+2555,0,0,0,10000:11000:12000:13000:14000,0,2000,-1
+//-- RL_FLICKER
+2556,0,500,0,0,0,2000,-1
+//-- RL_S_STORM
+2557,0,1000,0,0,0,1500,-1
+//-- RL_E_CHAIN
+2558,0,500,0,30000:45000:60000:75000:90000:105000:120000:135000:150000:165000,0,5000,-1
+//-- RL_QD_SHOT
+2559,0,1000,0,1500,0,5000,-1
+//-- RL_C_MARKER
+2560,0,0,0,30000,0,1000,-1
+//-- RL_FIREDANCE
+2561,0,1500,0,0,0,5000,-1
+//-- RL_H_MINE
+2562,0,1500,0,30000,15000,2000,-1
+//-- RL_P_ALTER
+2563,0,1000,0,60000,0,5000,-1
+//-- RL_FALLEN_ANGEL
+2564,0,1500,0,0,0,4500:4000:3500:2500:2000,-1
+//-- RL_R_TRIP
+2565,0,1500,0,0,0,3000,-1
+//-- RL_D_TAIL
+2566,0,1500,0,0,0,5000,-1
+//-- RL_FIRE_RAIN
+2567,0,1500,0,100,0,5000,-1
+//-- RL_HEAT_BARREL
+2568,0,1000,0,60000,10000,10000,-1
+//-- RL_AM_BLAST
+2569,0,1500,0,0,12000:14000:16000:18000:20000,3000,-1
+//-- RL_SLUGSHOT
+2570,0,1000,0,0,10000,1500,-1
+//-- RL_HAMMER_OF_GOD
+2571,0,1000,0,0,3000:3000:4000:4000:5000,3000,-1
+//-- RL_R_TRIP_PLUSATK
+//2572,0,0,0,0,0,0,-1
+//-- RL_B_FLICKER_ATK
+//2573,0,0,0,0,0,0,-1
+//-- RL_GLITTERING_GREED_ATK
+//2574,0,0,0,0,0,0,-1
+//==========================================
+
 //==== Kagerou & Oboro skills ==============
 //-- KO_YAMIKUMO
 3001,0,0,0,60000,0,0,-1

+ 39 - 1
db/re/skill_db.txt

@@ -1,4 +1,4 @@
-//id,range,hit,inf,element,nk,splash,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count,name,description
+//id,range,hit,inf,element,nk,splash,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count,inf3,name,description
 // 01 ID
 // 02 range (combo skills do not check for range when used,
 //           if range is < 5, the skill is considered melee-range)
@@ -847,6 +847,13 @@
 //718,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DEATHSUMMON,Death Summon
 //719,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_HELLBURNING,Hell Burning
 //720,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_JACKFROST,Jack Frost 2
+//721,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_WIDEWEB,Wide Web
+//722,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_WIDESUCK,Wide Suck
+//723,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_STORMGUST2,Storm Gust 2
+//724,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_FIRESTORM,Fire Storm
+//725,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_REVERBERATION,Reverberation 2
+//726,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_REVERBERATION_ATK,Reverberation Attack
+//727,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_LEX_AETERNA,Lex Aeterna 2
 
 //****
 // 2nd Quest Skills
@@ -1220,6 +1227,33 @@
 //2547,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,	GM_ITEM_MATKMAX,Maximize Magic Attack
 //2548,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,	GM_ITEM_MATKMIN,Minimize Magic Attack
 
+//****
+// Rebellion
+//2551,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0,	RL_GLITTERING_GREED,Flip The Coin Greed
+2552,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,	RL_RICHS_COIN,Rich's Coin
+2553,15,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0,	RL_MASS_SPIRAL,Mass Spiral
+2554,9,6,1,-1,0x2,2,5,1,no,0,0,0,weapon,0,0x0,	RL_BANISHING_BUSTER,Banishing Buster
+2555,3,6,2,0,0x1,1,5,1,no,0,0,1,misc,0,0x0,	RL_B_TRAP,Bind Trap
+2556,0,6,4,0,0x3,-1,1,1,no,0,0,0,none,0,0x0,	RL_FLICKER,Flicker
+2557,9,6,1,-1,0x2,2,5,1,no,0,0,0,weapon,0,0x0,	RL_S_STORM,Shatter Storm
+2558,0,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0x0,	RL_E_CHAIN,Eternal Chain
+2559,-9,6,4,-1,0x3,21,1,1,no,0,0x0,0,weapon,0,0x0,	RL_QD_SHOT,Quick Draw Shot
+2560,11,6,1,0,0x1,0,1,1,no,0,0,3,none,0,0x0,	RL_C_MARKER,Crimson Marker
+2561,0,6,4,-1,0x2,3,5,1,no,0,0,0,weapon,0,0x0,	RL_FIREDANCE,Fire Dance
+2562,7:8:9:10:11,6,1,-1,0x2,2,5,1,no,0,0,0,weapon,0,0x0,	RL_H_MINE,Howling Mine
+2563,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0,	RL_P_ALTER,Platinum Alter
+2564,9,6,2,0,0x1,0,5,1,no,0,0,0,none,0,0x0,	RL_FALLEN_ANGEL,Fallen Angel
+2565,0,6,4,-1,0x2,2:2:2:2:3,5,1,no,0,0,0,weapon,3,0x0,	RL_R_TRIP,Round Trip
+2566,0,6,4,-1,0x3,-1,5,1,no,0,0,0,weapon,0,0x0,	RL_D_TAIL,Dragon Tail
+2567,3,6,1,-1,0x2,5,5,1,no,0,0,0,weapon,0,0,	RL_FIRE_RAIN,Fire Rain
+2568,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0,	RL_HEAT_BARREL,Heat Barrel
+2569,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0,	RL_AM_BLAST,Anti-Material Blast
+2570,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0,	RL_SLUGSHOT,Slug Shot
+2571,7:8:9:10:11,6,2,-1,0x2,2,5,1,no,0,0,0,weapon,0,0x0,	RL_HAMMER_OF_GOD,Hammer of God
+//2572,0,6,1,-1,0x40,0,5,1,no,0,0,0,weapon,0,0,	RL_R_TRIP_PLUSATK,Round Trip Plus Attack
+//2573,0,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0,	RL_B_FLICKER_ATK,Bind Flicker Attack
+//2574,0,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0,	RL_GLITTERING_GREED_ATK,Flip The Coin Greed Attack
+
 //****
 // Kagerou & Oboro
 3001,0,6,4,0,0,0,1,1,no,0,0,0,none,0,0x4,		KO_YAMIKUMO,Yamikumo
@@ -1260,6 +1294,10 @@
 3034,7,6,16,0,0x1,0,1,1,no,0,0,0,none,0,0x0,	ECL_SEQUOIADUST,Sequoia Dust
 3035,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,		ECLAGE_RECALL,Return To Eclage
 
+// Copied Bard / Dancer Skills
+//3036,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,	BA_POEMBRAGI2,Poem of Bragi 2
+//3037,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,	DC_FORTUNEKISS2,Fortune Kiss 2
+
 //****
 // EP 14.3 Part 2 3rd Job Skills
 5001,1,8,1,-1,0,0,5,3,no,0,0,0,weapon,0,0x0, GC_DARKCROW,Dark Claw

+ 131 - 0
db/re/skill_require_db.txt

@@ -27,11 +27,15 @@
 //  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
 
+//****
+// SM Swordman
 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,0	//SM_BASH#バッシュ#
 6,0,0,4:5:6:7:8:9:10:11:12:13,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,0	//SM_PROVOKE#プロボック#
 7,20:20:19:19:18:18:17:17:16:16,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,0	//SM_MAGNUM#マグナムブレイク#
 8,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,0	//SM_ENDURE#インデュア#
 
+//****
+// MG Mage
 10,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,0	//MG_SIGHT#サイト#
 11,0,0,9:9:9:12:12:12:15:15:15:18,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,0	//MG_NAPALMBEAT#ナパ?ムビ?ト#
 12,0,0,30:30:30:35:35:35:40:40:40:40,0,0,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MG_SAFETYWALL#セイフティウォ?ル#
@@ -45,6 +49,8 @@
 20,0,0,12:14:16:18:20:22:24:26:28: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,0	//MG_LIGHTNINGBOLT#ライトニングボルト#
 21,0,0,29:34:39:44:49:54:59:64:69:74,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,0	//MG_THUNDERSTORM#サンダ?スト?ム#
 
+//****
+// AL Acolyte
 24,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,0	//AL_RUWACH#ルアフ#
 25,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,0	//AL_PNEUMA#ニュ?マ#
 26,0,0,10:9,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,0	//AL_TELEPORT#テレポ?ト#
@@ -58,20 +64,29 @@
 34,0,0,28:32:36:40:44:48:52:56:60:64,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,0	//AL_BLESSING#ブレッシング#
 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,0	//AL_CURE#キュア?#
 
+//****
+// MC Merchant
 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,0	//MC_IDENTIFY#アイテム鑑定#
 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,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,0	//MC_MAMMONITE#メマ?ナイト#
 
+//****
+// AC Archer
 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,0	//AC_CONCENTRATION#集中力向上#
 46,0,0,12,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,0,0	//AC_DOUBLE#ダブルストレイフィング#
 47,0,0,15,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,0,0	//AC_SHOWER#アロ?シャワ?#
 
+//****
+// TF Thief
 50,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,0	//TF_STEAL#スティ?ル#
 51,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,0	//TF_HIDING#ハイディング#
 52,0,0,12,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,0	//TF_POISON#インベナム#
 53,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,0	//TF_DETOXIFY#解毒#
+
 54,0,0,60,0,0,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_RESURRECTION#リザレクション#
 
+//****
+// KN Knight
 56,0,0,7,0,0,0,4:5,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,0	//KN_PIERCE#ピア?ス#
 57,0,0,12,0,0,0,4:5,0,0,riding,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//KN_BRANDISHSPEAR#ブランディッシュスピア#
 58,0,0,9,0,0,0,4:5,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,0	//KN_SPEARSTAB#スピアスタブ#
@@ -80,6 +95,8 @@
 61,0,0,3,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,0	//KN_AUTOCOUNTER#オ?トカウンタ?#
 62,0,0,13:14:15:16:17:18:19:20:21:22,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,0	//KN_BOWLINGBASH#ボウリングバッシュ#
 
+//****
+// PR Priest
 66,0,0,13:16:19:22:25,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,0	//PR_IMPOSITIO#イムポシティオマヌス#
 67,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,0	//PR_SUFFRAGIUM#サフラギウム#
 68,0,0,14:18:22:26:30,0,0,0,99,0,0,none,0,0,523,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//PR_ASPERSIO#アスペルシオ#
@@ -94,6 +111,9 @@
 77,0,0,20,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,0	//PR_TURNUNDEAD#タ?ンアンデッド#
 78,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,0	//PR_LEXAETERNA#レックスエ?テルナ#
 79,0,0,40:42:44:46:48:50:52:54:56:58,0,0,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//PR_MAGNUS#マグヌスエクソシズム#
+
+//****
+// WZ Wizard
 80,0,0,75,0,0,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WZ_FIREPILLAR#ファイア?ピラ?#
 81,0,0,35:37:39:41:43:45:47:49:51:53,0,0,0,99,0,0,none,SC_SIGHT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//WZ_SIGHTRASHER#サイトラッシャ?#
 83,0,0,20:24:30:34:40:44:50:54:60:64,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,0	//WZ_METEOR#メテオスト?ム#
@@ -108,6 +128,9 @@
 92,0,0,5:10:15:20:25,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,0	//WZ_QUAGMIRE#クァグマイア#
 93,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,0	//WZ_ESTIMATION#モンスタ?情報#
 
+
+//****
+// BS Blacksmith
 108,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,0	//BS_REPAIRWEAPON#武器修理#
 
 110,0,0,10,0,0,0,1:2:6:7:8,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,0	//BS_HAMMERFALL#ハンマ?フォ?ル#
@@ -115,6 +138,9 @@
 112,0,0,18:16:14:12: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,0	//BS_WEAPONPERFECT#ウェポンパ?フェクション#
 113,0,0,18:16:14:12: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,0	//BS_OVERTHRUST#オ?バ?トラスト#
 114,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,0	//BS_MAXIMIZE#マキシマイズパワ?#
+
+//****
+// HT Hunter
 115,0,0,10,0,0,0,99,0,0,none,0,0,1065,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HT_SKIDTRAP#スキッドトラップ#
 116,0,0,10,0,0,0,99,0,0,none,0,0,1065,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HT_LANDMINE#ランドマイン#
 117,0,0,12,0,0,0,99,0,0,none,0,0,1065,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HT_ANKLESNARE#アンクルスネア#
@@ -131,6 +157,8 @@
 130,0,0,8,0,0,0,99,0,0,falcon,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HT_DETECTING#ディテクティング#
 131,0,0,10,0,0,0,99,0,0,falcon,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HT_SPRINGTRAP#スプリングトラップ#
 
+//****
+// AS Assassin
 135,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,0	//AS_CLOAKING#クロ?キング#
 136,0,0,16:18:20:22:24:26:28:30:32:34,0,0,0,16,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,0	//AS_SONICBLOW#ソニックブロ?#
 137,0,0,3,0,0,0,16,0,0,none,SC_HIDING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AS_GRIMTOOTH#グリムトゥ?ス#
@@ -138,6 +166,10 @@
 139,0,0,25:30:35:40:45:50:55:60:45:45,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,0	//AS_POISONREACT#ポイズンリアクト#
 140,0,0,20,0,0,0,99,0,0,none,0,0,716,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AS_VENOMDUST#ベナムダスト#
 141,0,0,12:14:16:18:20:22:24:26:28:30,0,0,0,99,0,0,none,0,0,716,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AS_SPLASHER#ベナムスプラッシャ?#
+
+
+//****
+// 1st Class Quest Skills
 142,0,0,3,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,0	//NV_FIRSTAID#?急手?#
 143,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,0	//NV_TRICKDEAD#死んだふり#
 
@@ -154,6 +186,8 @@
 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,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,0	//MG_ENERGYCOAT#エナジ?コ?ト#
 
+//****
+// RG Rogue
 211,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,0	//RG_STEALCOIN#スティ?ルコイン#
 212,0,0,16,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,0	//RG_BACKSTAP#バックスタブ#
 
@@ -167,6 +201,8 @@
 221,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,0	//RG_FLAGGRAFFITI#フラッググラフィティ#
 222,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,0	//RG_CLEANER#クリ?ナ?#
 
+//****
+// AM Alchemist
 228,0,0,5,0,0,0,99,0,0,none,0,0,7134,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AM_PHARMACY#ファ?マシ?#
 229,0,0,10,0,0,0,99,0,0,none,0,0,7135,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AM_DEMONSTRATION#デモンストレ?ション#
 230,0,0,15,0,0,0,99,0,0,none,0,0,7136,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AM_ACIDTERROR#アシッドテラ?#
@@ -182,6 +218,8 @@
 244,0,0,50,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,0	//AM_REST
 247,0,0,74:68:62:56:50,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,0	//AM_RESURRECTHOMUN
 
+//****
+// CR Crusader
 249,0,0,12:14:16:18:20:22:24:26:28:30,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_AUTOGUARD#オ?トガ?ド#
 250,0,0,10,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_SHIELDCHARGE#シ?ルドチャ?ジ#
 251,0,0,12,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_SHIELDBOOMERANG#シ?ルドブ?メラン#
@@ -193,6 +231,8 @@
 257,0,0,30,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_DEFENDER#ディフェンダ?#
 258,0,0,24:28:32:36:40:44:48:52:56:60,0,0,0,4:5,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,0	//CR_SPEARQUICKEN#スピアクイッケン#
 
+//****
+// MO Monk
 261,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,0	//MO_CALLSPIRITS#?功#
 262,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,0	//MO_ABSORBSPIRITS#?奪#
 
@@ -207,6 +247,8 @@
 272,0,0,11:12:13:14: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,0	//MO_CHAINCOMBO#連打掌#
 273,0,0,11:12:13:14: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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_COMBOFINISH#猛龍拳#
 
+//****
+// SA Sage
 275,0,0,2,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,0	//SA_CASTCANCEL#キャストキャンセル#
 276,0,0,2,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,0	//SA_MAGICROD#マジックロッド#
 277,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,0	//SA_SPELLBREAKER#スペルブレイカ?#
@@ -237,6 +279,8 @@
 302,0,0,1,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,0	//SA_FULLRECOVERY#フルリカバリ?#
 303,0,0,1,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,0	//SA_COMA#コ?マ#
 
+//****
+// Bard & Dancer
 304,0,0,1,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,0	//BD_ADAPTATION#アドリブ#
 305,0,0,1,0,0,0,13:14,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,0	//BD_ENCORE#アンコ?ル#
 306,0,0,20,0,0,0,13:14,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,0	//BD_LULLABY#子守歌#
@@ -248,6 +292,8 @@
 312,0,0,10,0,0,0,13:14,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,0	//BD_INTOABYSS#深淵の中に#
 313,0,0,20,0,0,0,13:14,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,0	//BD_SIEGFRIED#不死身のジ?クフリ?ド#
 
+//****
+// BA Bard
 316,0,0,1:3:5:7:9,0,0,0,13,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//BA_MUSICALSTRIKE#ミュ?ジカルストライク#
 317,0,0,18:21:24:27:30,0,0,0,13,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,0	//BA_DISSONANCE#不協和音#
 318,0,0,12:14:16:18:20,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,0	//BA_FROSTJOKE#寒いジョ?ク#
@@ -256,6 +302,8 @@
 321,0,0,40:45:50:55:60:65:70:75:80:85,0,0,0,13:14,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,0	//BA_POEMBRAGI#ブラギの詩#
 322,0,0,40:45:50:55:60:65:70:75:80:85,0,0,0,13:14,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,0	//BA_APPLEIDUN#イドゥンの林檎#
 
+//****
+// DC Dancer
 324,0,0,1:3:5:7:9,0,0,0,14,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//DC_THROWARROW#矢?ち#
 325,0,0,23:26:29:32:35,0,0,0,14,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,0	//DC_UGLYDANCE#自分勝手なダンス#
 326,0,0,12:14:16:18:20,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,0	//DC_SCREAM#スクリ?ム#
@@ -269,43 +317,75 @@
 336,0,0,1,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,0	//WE_CALLPARTNER#?なたに逢いたい#
 337,0,0,1,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,0	//ITM_TOMAHAWK##
 
+//****
+// LK Lord Knight
 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,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,0	//LK_AURABLADE#オ?ラブレ?ド#
 356,0,0,50,0,0,0,3,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,0	//LK_PARRYING#パリイング#
 357,0,0,14:18:22:26: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,0	//LK_CONCENTRATION#コンセントレ?ション#
 358,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,0	//LK_TENSIONRELAX#テンションリラックス#
 359,0,0,200,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,0	//LK_BERSERK#バ?サ?ク#
+
+//****
+// HP High Priest
 361,0,0,20:30:40:50:60,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,0	//HP_ASSUMPTIO#アスムプティオ#
 362,0,0,80:90:100:110:120,0,0,0,99,0,0,none,0,0,715,1,716,1,717,1,523,1,0,0,0,0,0,0,0,0,0,0,0,0,0	//HP_BASILICA#バジリカ#
 
+//****
+// HW High Wizard
 365,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,0	//HW_MAGICCRASHER#マジッククラッシャ?#
 366,0,0,14:18:22:26:30:34:38:42:46:50,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,0	//HW_MAGICPOWER#魔法力?幅#
+
+//****
+// PA Paladin
 367,0,0,30:35:40:45:50,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,0	//PA_PRESSURE#プレッシャ?#
 368,0,0,100,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,0	//PA_SACRIFICE#サクリファイス#
 369,0,0,80:80:80:80:80:100:100:100:100:100,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,0	//PA_GOSPEL#ゴスペル#
+
+//****
+// CH Champion
 370,0,0,2:4:6:8:10,0,0,0,99,0,0,none,SC_EXPLOSIONSPIRITS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CH_PALMSTRIKE#猛虎硬派山#
 371,0,0,4:6:8:10:12,0,0,0,99,0,0,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CH_TIGERFIST#伏虎拳#
 372,0,0,4:6:8:10:12:14:16:18:20:22,0,0,0,99,0,0,none,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CH_CHAINCRUSH#連柱崩?#
+
+//****
+// PF Professor
 373,0,0,1:2:3:4: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,0	//PF_HPCONVERSION#???????#
 374,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,0	//PF_SOULCHANGE#ソウルチェンジ#
 375,0,0,80:90:100:110:120,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,0	//PF_SOULBURN#?ウルバ?ン#
 
+//****
+// ASC Assassin Cross
 378,0,0,60:70:80:90:100,0,0,0,99,0,0,none,0,0,678,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ASC_EDP#エンチャントデッドリ?ポイズン#
 379,0,0,20:20:20:20:20:30:30:30:30: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,0	//ASC_BREAKER#ソウルブレ?カ?#
+
+//****
+// SN Sniper
 380,0,0,20:20:25:25:30:30:35:35:40:40,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,0	//SN_SIGHT#トゥル?サイト#
 381,0,0,30:34:38:42:46,0,0,0,99,0,0,falcon,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//SN_FALCONASSAULT#ファルコンアサルト#
 382,0,0,18:21:24:27:30,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,0,0		//SN_SHARPSHOOTING#シャ?プシュ?ティング#
 383,0,0,46:52:58:64:70:76:82:88:94:100,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,0	//SN_WINDWALK#ウインドウォ?ク#
+
+//****
+// WS Whitesmith
 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,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,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,0	//WS_CREATENUGGET#塊製造#
 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,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,0	//WS_SYSTEMCREATE#自動攻??置製作#
+
+//****
+// ST Stalker
 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,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,0	//ST_REJECTSWORD#リジェクトソ?ド#
 
+//****
+// CG Clown & Gypsy
 394,0,0,12:14:16:18:20:22:24:26:28:30,0,0,0,13:14,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CG_ARROWVULCAN#アロ?バルカン#
 395,0,0,30:40:50:60:70,0,0,0,13:14,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,0	//CG_MOONLIT#月明りの泉に落ちる花びら#
 396,0,0,100,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,0	//CG_MARIONETTE#マリオネットコントロ?ル#
+
+//****
+// Other 2-Trans Class Skills
 397,0,0,18:21:24:27:30,0,0,0,2:3:4:5,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,0	//LK_SPIRALPIERCE#スパイラルピア?ス#
 398,0,0,23,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,0	//LK_HEADCRUSH#ヘッドクラッシュ#
 399,0,0,12:12:14:14:16:16:18:18:20:20,0,0,0,4:5,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,0	//LK_JOINTBEAT#ジョイントビ?ト#
@@ -317,9 +397,13 @@
 405,0,0,50,0,0,0,99,0,0,none,0,0,1025,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//PF_SPIDERWEB#スパイダ?ウェッブ#
 406,0,0,10:12:14:16:18:20:22:24:26:28,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,0	//ASC_METEORASSAULT#メテオアサルト#
 407,0,0,50,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,0	//ASC_CDP#デッドリ?ポイズン作成#
+
 408,0,0,1,0,-10,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,0	//WE_BABY##
 409,0,0,1,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,0	//WE_CALLPARENT##
 410,0,0,1,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,0	//WE_CALLBABY##
+
+//****
+// TK Taekwon
 411,0,0,100:90:80:70:60:50:40:30:20:10,0,0,0,99,0,0,move_enable,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//TK_RUN
 412,0,0,1,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,0	//TK_READYSTORM
 413,0,0,14:12:10:8:6:4:2,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,0	//TK_STORMKICK
@@ -335,6 +419,8 @@
 425,0,0,20:20:20:20:50:50:50,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,0	//TK_SEVENWIND
 426,0,0,50,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,0	//TK_HIGHJUMP
 
+//****
+// SG Star Gladiator
 427,0,0,100,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,0	//SG_FEEL
 428,0,0,20,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,0	//SG_SUN_WARM
 429,0,0,20,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,0	//SG_MOON_WARM
@@ -345,8 +431,12 @@
 434,0,0,100,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,0	//SG_HATE
 444,0,0,100,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,0	//SG_FUSION
 
+//****
+// SL Soul Linker
 445,0,0,460:360:260:160:60,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,0	//SL_ALCHEMIST
+
 446,0,0,10,0,8,0,99,0,0,none,0,0,657,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AM_BERSERKPITCHER#Berserk Pitcher#
+
 447,0,0,460:360:260:160:60,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,0	//SL_MONK
 448,0,0,460:360:260:160:60,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,0	//SL_STAR
 449,0,0,460:360:260:160:60,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,0	//SL_SAGE
@@ -359,7 +449,9 @@
 456,0,0,460:360:260:160:60,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,0	//SL_ROGUE
 457,0,0,460:360:260:160:60,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,0	//SL_ASSASSIN
 458,0,0,460:360:260:160:60,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,0	//SL_BLACKSMITH
+
 459,0,0,64,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16,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,0	//BS_ADRENALINE2#
+
 460,0,0,460:360:260:160:60,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,0	//SL_HUNTER
 461,0,0,460:360:260:160:60,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,0	//SL_SOULLINKER
 462,0,0,120:110:100:90:80:70:60,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,0 //SL_KAIZEL#Kaizel#
@@ -380,6 +472,8 @@
 479,0,0,40,0,0,0,99,0,0,none,0,0,7139,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_FULLPROTECTION##
 480,0,0,28:31:34:37:40,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//PA_SHIELDCHAIN##
 
+//****
+// Other Skills
 482,0,0,40:45:50:55:60,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,0	//PF_DOUBLECASTING##
 483,0,0,40,0,0,0,99,0,0,none,0,0,715,1,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HW_GANBANTEIN##
 484,0,0,20:40:60:80:100,0,0,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HW_GRAVITATION##
@@ -398,6 +492,9 @@
 497,0,0,200,0,0,0,99,0,0,none,0,0,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AM_TWILIGHT2##
 498,0,0,200,0,0,0,99,0,0,none,0,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,12,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,0,0	//HT_POWER##
+
+//****
+// GS Gunslinger
 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,0,0	//GS_GLITTERING
 501,0,0,10,0,0,0,99,0,0,none,0,5,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,20,0,0,0,99,99,1,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_TRIPLEACTION
@@ -417,6 +514,9 @@
 519,0,0,20:25:30:35:40:45:50:55:60:65,0,0,0,20,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,0,0	//GS_FULLBUSTER
 520,0,0,15:20:25:30:35:40:45:50:55:60,0,0,0,20:21,3,5,none,0,0,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,0,0	//GS_GROUNDDRIFT
+
+//****
+// NJ Ninja
 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,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,0,0	//NJ_KUNAI
 525,0,0,20:25:30:35:40,0,0,0,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,0	//NJ_HUUMA
@@ -800,6 +900,33 @@
 //2547,0,0,1,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,0	//GM_ITEM_MATKMAX#Maximum Magic Attack#
 //2548,0,0,1,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,0	//GM_ITEM_MATKMIN#Minimal Magic Attack#
 
+//****
+// Rebellion
+//2551,0,0,1,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,0	//RL_GLITTERING_GREED#Flip The Coin Greed#
+2552,0,0,10,0,0,100,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,0	//RL_RICHS_COIN#Rich's Coin#
+2553,0,0,80:84:88:92:96,0,0,0,18,3,1,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_MASS_SPIRAL#Mass Spiral#
+2554,0,0,55:60:65:70:75,0,0,0,20,3,0,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_BANISHING_BUSTER#Banishing Buster#
+2555,0,0,30:32:34:36:38,0,0,0,17:18:19:20:21,0,0,none,0,1,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_B_TRAP#Bind Trap#
+2556,0,0,2,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,0	//RL_FLICKER#Flicker#
+2557,0,0,55:60:65:70:75,0,0,0,20,3,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_S_STORM#Shatter Storm#
+2558,0,0,45,0,0,0,17:18:19:20:21,0,0,none,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_E_CHAIN#Eternal Chain#
+2559,0,0,5,0,0,0,17:18:19:20:21,3:4:5,0,none,SC_QD_SHOT_READY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_QD_SHOT#Quick Draw Shot#
+2560,0,0,10,0,0,0,17:18:19:20:21,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,0	//RL_C_MARKER#Crimson Marker#
+2561,0,0,10:15:20:25:30,0,0,0,17,3,5,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_FIREDANCE#Fire Dance#
+2562,0,0,45:50:55:60:65,0,0,0,21,5,0,none,0,0,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_H_MINE#Howling Mine#
+2563,0,0,20:24:28:32:36,0,0,0,99,3,0,none,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13201	//RL_P_ALTER#Platinum Alter#
+2564,0,0,90,0,0,0,17,3,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_FALLEN_ANGEL#Fallen Angel#
+2565,0,0,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,0,0	//RL_R_TRIP#Round Trip#
+2566,0,0,60:70:80:90:100,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,0,0	//RL_D_TAIL#Dragon Tail#
+2567,0,0,70,0,0,0,19,3,10,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_FIRE_RAIN#Fire Rain#
+2568,0,0,30:40:50:60:70,0,0,0,99,0,0,none,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_HEAT_BARREL#Heat Barrel#
+2569,0,0,80:84:88:92:96,0,0,0,17:18:19:20:21,0,0,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_AM_BLAST#Anti-Material Blast#
+2570,0,0,55:60:65:70:75,0,0,0,20,3,1,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_SLUGSHOT#Slug Shot#
+2571,0,0,70:80:90:100:110,0,0,0,18,3,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_HAMMER_OF_GOD#Hammer of God#
+//2572,0,0,1,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,0	//RL_R_TRIP_PLUSATK#Round Trip Plus Attack#
+//2573,0,0,1,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,0	//RL_B_FLICKER_ATK#Bind Flicker Attack#
+//2574,0,0,1,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,0	//RL_GLITTERING_GREED_ATK#Flip The Coin Greed Attack#
+
 //****
 // Kagerou/Oboro
 3001,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,0	//KO_YAMIKUMO#Yamikumo#
@@ -836,6 +963,10 @@
 3034,0,0,1,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,0	//ECL_SEQUOIADUST#Sequoia Dust#
 3035,0,0,1,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,0	//ECLAGE_RECALL#Return To Eclage#
 
+// Copied Bard / Dancer Skills
+//3036,0,0,1,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,0	//BA_POEMBRAGI2#Poem of Bragi 2#
+//3037,0,0,1,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,0	//DC_FORTUNEKISS2#Fortune Kiss 2#
+
 // EP 14.3 Part 2 3rd Job Skills
 5001,0,0,22:34:46:58: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,0	//GC_DARKCROW#Dark Claw#
 5002,0,0,100:120:140:160:180,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,0	//RA_UNLIMIT#Unlimited#

+ 46 - 0
db/re/skill_tree.txt

@@ -5578,3 +5578,49 @@
 4212,3026,5,3021,1,0,0,0,0,0,0,0,0 //OB_ZANGETSU##
 4212,3027,5,3029,3,0,0,0,0,0,0,0,0 //OB_OBOROGENSOU##
 4212,3029,5,3026,2,0,0,0,0,0,0,0,0 //OB_AKAITSUKI##
+//Rebellion
+4215,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
+4215,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
+4215,500,5,0,0,0,0,0,0,0,0,0,0 //GS_GLITTERING#Flip the Coin#
+4215,501,1,500,1,0,0,0,0,0,0,0,0 //GS_FLING#Fling#
+4215,502,1,500,1,511,10,0,0,0,0,0,0 //GS_TRIPLEACTION#Triple Action#
+4215,503,1,500,5,512,10,0,0,0,0,0,0 //GS_BULLSEYE#Bulls Eye#
+4215,504,1,500,4,517,10,0,0,0,0,0,0 //GS_MADNESSCANCEL#Madness Canceler#
+4215,505,1,500,4,513,5,0,0,0,0,0,0 //GS_ADJUSTMENT#AdJustment#
+4215,506,1,500,2,510,10,0,0,0,0,0,0 //GS_INCREASING#Increasing Accuracy#
+4215,507,1,500,1,0,0,0,0,0,0,0,0 //GS_MAGICALBULLET#Magical Bullet#
+4215,508,1,500,1,0,0,0,0,0,0,0,0 //GS_CRACKER#Cracker#
+4215,509,10,0,0,0,0,0,0,0,0,0,0 //GS_SINGLEACTION#Single Action#
+4215,510,10,0,0,0,0,0,0,0,0,0,0 //GS_SNAKEEYE#Snake Eye#
+4215,511,10,509,1,0,0,0,0,0,0,0,0 //GS_CHAINACTION#Chain Action#
+4215,512,10,509,5,0,0,0,0,0,0,0,0 //GS_TRACKING#Tracking#
+4215,513,5,512,7,0,0,0,0,0,0,0,0 //GS_DISARM#Disarm#
+4215,514,5,512,5,0,0,0,0,0,0,0,0 //GS_PIERCINGSHOT#Piercing Shot#
+4215,515,10,511,3,0,0,0,0,0,0,0,0 //GS_RAPIDSHOWER#Rapid Shower#
+4215,516,10,515,5,0,0,0,0,0,0,0,0 //GS_DESPERADO#Desperado#
+4215,517,10,515,7,516,5,0,0,0,0,0,0 //GS_GATLINGFEVER#Gatling Fever#
+4215,518,10,509,5,0,0,0,0,0,0,0,0 //GS_DUST#Dust#
+4215,519,10,518,3,0,0,0,0,0,0,0,0 //GS_FULLBUSTER#Full Buster#
+4215,520,10,519,5,0,0,0,0,0,0,0,0 //GS_SPREADATTACK#Spread Attack#
+4215,521,10,520,7,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT#Ground Drift#
+4215,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
+4215,2552,1,500,5,0,0,0,0,0,0,0,0 //RL_RICHS_COIN#Rich's Coin#
+4215,2553,5,514,1,0,0,0,0,0,0,0,0 //RL_MASS_SPIRAL#Mass Spiral#
+4215,2554,5,2557,1,0,0,0,0,0,0,0,0 //RL_BANISHING_BUSTER#Banishing Buster#
+4215,2555,5,0,0,0,0,0,0,0,0,0,0 //RL_B_TRAP#Bind Trap#
+4215,2556,1,501,1,0,0,0,0,0,0,0,0 //RL_FLICKER#Flicker#
+4215,2557,5,513,1,518,1,0,0,0,0,0,0 //RL_S_STORM#Shatter Storm#
+4215,2558,10,511,10,0,0,0,0,0,0,0,0 //RL_E_CHAIN#Eternal Chain#
+4215,2559,1,2558,1,0,0,0,0,0,0,0,0 //RL_QD_SHOT#Quick Draw Shot#
+4215,2560,1,506,1,0,0,0,0,0,0,0,0 //RL_C_MARKER#Crimson Marker#
+4215,2561,5,2564,1,0,0,0,0,0,0,0,0 //RL_FIREDANCE#Fire Dance#
+4215,2562,5,520,1,0,0,0,0,0,0,0,0 //RL_H_MINE#Howling Mine#
+4215,2563,5,0,0,0,0,0,0,0,0,0,0 //RL_P_ALTER#Platinum Alter#
+4215,2564,5,516,10,0,0,0,0,0,0,0,0 //RL_FALLEN_ANGEL#Fallen Angel#
+4215,2565,5,2567,1,0,0,0,0,0,0,0,0 //RL_R_TRIP#Round Trip#
+4215,2566,5,2560,1,2562,3,0,0,0,0,0,0 //RL_D_TAIL#Dragon Tail#
+4215,2567,5,517,1,0,0,0,0,0,0,0,0 //RL_FIRE_RAIN#Fire Rain#
+4215,2568,5,2561,2,0,0,0,0,0,0,0,0 //RL_HEAT_BARREL#Heat Barrel#
+4215,2569,5,2553,1,0,0,0,0,0,0,0,0 //RL_AM_BLAST#Anti-Material Blast#
+4215,2570,5,2554,3,0,0,0,0,0,0,0,0 //RL_SLUGSHOT#Slug Shot#
+4215,2571,5,2569,3,0,0,0,0,0,0,0,0 //RL_HAMMER_OF_GOD#Hammer of God#

+ 3 - 0
db/re/skill_unit_db.txt

@@ -155,6 +155,9 @@
 2488,0xe9,    ,  0, 3,1000,enemy, 0x000	//GN_FIRE_EXPANSION_TEAR_GAS
 2490,0xea,    ,  0, 1,1000,enemy, 0x002	//GN_HELLS_PLANT
 
+2555,0x104,   ,  0, 1:2:2:3:3,500,enemy,0x006	//RL_B_TRAP
+2567,0x105,   ,  2, 2,1000,enemy, 0x0	//RL_FIRE_RAIN
+
 3006,0x86,    ,  0, 2,1000,enemy, 0x018	//KO_BAKURETSU
 3008,0x86,    ,  0, 2,1000,enemy, 0x018	//KO_MUCHANAGE
 3009,0x86,    ,  0, 3,1000,enemy, 0x018	//KO_HUUMARANKA

+ 18 - 2
doc/atcommands.txt

@@ -705,9 +705,25 @@ Repairs all broken items in your inventory.
 
 ---------------------------------------
 
-@dropall
+@dropall {<item type>}
+
+Drops all items based on the item type.
+
+Valid item types:
+    -1 = All Items (default)
+     0 = Healing Items
+     2 = Useable Items
+     3 = Etc Items
+     4 = Weapons
+     5 = Armors
+     6 = Cards
+     7 = Pet Eggs
+     8 = Pet Armors
+     10 = Ammunition Items
 
-Drops all inventory and equipped items onto the floor.
+Example:
+To drop all weapons in inventory.
+@dropall 4
 
 ---------------------------------------
 

+ 2 - 0
doc/item_db.txt

@@ -99,6 +99,7 @@ Job: Equippable jobs. Uses the following bitmask table:
 	Death Knight   (2^27): 0x08000000
 	Dark Collector (2^28): 0x10000000
 	Kagerou/Oboro  (2^29): 0x20000000
+	Rebellion      (2^30): 0x40000000
 
 	Novice + Swordman + Magician + Archer = 0x0000000F, why?
 	Because: 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, and 15 = F
@@ -135,6 +136,7 @@ Loc: Equipment's placement. Values are (hexadecimal):
 	2^11 2048 = Costume Mid Headgear
 	2^12 4096 = Costume Low Headgear
 	2^13 8192 = Costume Garment/Robe
+	2^15 32768 = Ammo
 
 ---------------------------------------
 

+ 55 - 55
sql-files/item_db.sql

@@ -1323,7 +1323,7 @@ REPLACE INTO `item_db` VALUES (2378,'Assassin_Robe','Assassin Robe',5,10,NULL,0,
 REPLACE INTO `item_db` VALUES (2379,'Warlock_Battle_Robe','Warlock\'s Battle Robe',5,10,NULL,0,NULL,3,NULL,1,0x00810204,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2380,'Medic_Robe','Medic\'s Robe',5,10,NULL,0,NULL,3,NULL,1,0x00008110,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2381,'Elite_Archer_Suit','Elite Archer Suit',5,10,NULL,0,NULL,3,NULL,1,0x00080808,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (2382,'Elite_Shooter_Suit','Elite Shooter Suit',5,10,NULL,0,NULL,3,NULL,1,0x01000000,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (2382,'Elite_Shooter_Suit','Elite Shooter Suit',5,10,NULL,0,NULL,3,NULL,1,0x41000000,7,2,16,NULL,80,1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2383,'Brynhild','Brynhild',5,20,NULL,400,NULL,10,NULL,0,0xFFFFFFFF,7,2,16,NULL,94,0,0,'bonus bMdef,10; bonus bMaxHP,20*BaseLevel; bonus bMaxSP,5*BaseLevel; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; bonus bUnbreakableArmor,0; bonus bNoKnockback,0;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2384,'Spritual_Tunic','Spiritual Tunic',5,20,NULL,0,NULL,10,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,0,0,'bonus bMaxHP,800; bonus2 bResEff,Eff_Freeze,10000; bonus2 bSubEle,Ele_Earth,20; bonus2 bSubEle,Ele_Fire,20; bonus2 bSubEle,Ele_Wind,20; bonus2 bSubEle,Ele_Poison,20; bonus2 bSubEle,Ele_Holy,20; bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Ghost,20; bonus2 bSubEle,Ele_Undead,20;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2385,'Recuperative_Armor','Recuperative Armor',5,20,NULL,0,NULL,12,NULL,0,0xFFFFFFFF,7,2,16,NULL,0,0,0,'bonus bNoRegen,1; bonus bNoRegen,2; bonus bHPGainValue,60; bonus bSPGainValue,6; bonus bMagicHPGainValue,60; bonus bMagicSPGainValue,6;',NULL,'heal 0,-100;');
@@ -1379,7 +1379,7 @@ REPLACE INTO `item_db` VALUES (2433,'Diabolus_Boots','Diabolus Boots',5,20,NULL,
 REPLACE INTO `item_db` VALUES (2434,'Black_Leather_Boots_','Black Leather Boots',5,20,NULL,500,NULL,4,NULL,1,0xFFFFFFFE,2,2,64,NULL,55,1,0,'bonus bAgi,1; if(getrefine()>=9) bonus bAgi,2;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2435,'Battle_Greave','Battle Greaves',5,10,NULL,0,NULL,4,NULL,1,0x026654E2,7,2,64,NULL,80,1,0,'bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2436,'Combat_Boots','Combat Boots',5,10,NULL,0,NULL,3,NULL,1,0x00898B1C,7,2,64,NULL,80,1,0,'bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (2437,'Battle_Boots','Battle Boots',5,10,NULL,0,NULL,3,NULL,1,0x01000000,7,2,64,NULL,80,1,0,'bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (2437,'Battle_Boots','Battle Boots',5,10,NULL,0,NULL,3,NULL,1,0x41000000,7,2,64,NULL,80,1,0,'bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2438,'Paw_Of_Cat','Paw Of Cat',5,10,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,7,2,64,NULL,80,1,0,'bonus bFlee,5; bonus bAgi,1;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2439,'Refresh_Shoes','Refresh Shoes',5,20,NULL,0,NULL,9,NULL,0,0xFFFFFFFF,7,2,64,NULL,0,0,0,'bonus bMaxHPRate,17; bonus bMaxSPRate,8; bonus2 bHPRegenRate,20,10000; bonus2 bSPRegenRate,3,10000;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2440,'Sprint_Shoes','Sprint Shoes',5,20,NULL,300,NULL,2,NULL,1,0x00CFFF80,2,2,64,NULL,70,1,0,'bonus bAgi,1; bonus bSPrecovRate,5;',NULL,NULL);
@@ -1434,7 +1434,7 @@ REPLACE INTO `item_db` VALUES (2536,'Skin_Of_Ventus','Skin of Ventus',5,20,NULL,
 REPLACE INTO `item_db` VALUES (2537,'Diabolus_Manteau','Diabolus Manteau',5,20,NULL,250,NULL,5,NULL,1,0x00CFFF80,2,2,4,NULL,0,1,0,'bonus2 bSubEle,Ele_Neutral,5; bonus bMaxHP,100; bonus2 bAddDamageClass,1916,10; bonus2 bAddDamageClass,1917,10;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2538,'Commander_Manteau','Captain\'s Manteau',5,10,NULL,0,NULL,4,NULL,1,0x026654E2,7,2,4,NULL,80,1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2539,'Commander_Manteau_','Commander\'s Manteau',5,10,NULL,0,NULL,3,NULL,1,0x00898B1C,7,2,4,NULL,80,1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (2540,'Sheriff_Manteau','Sheriff\'s Manteau',5,10,NULL,0,NULL,3,NULL,1,0x01000000,7,2,4,NULL,80,1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (2540,'Sheriff_Manteau','Sheriff\'s Manteau',5,10,NULL,0,NULL,3,NULL,1,0x41000000,7,2,4,NULL,80,1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2541,'Asprika','Asprika',5,20,NULL,400,NULL,5,NULL,0,0xFFFFFFFF,7,2,4,NULL,94,0,0,'bonus bMdef,5; bonus3 bSubEle,Ele_Neutral,30,BF_SHORT; bonus3 bSubEle,Ele_Water,30,BF_SHORT; bonus3 bSubEle,Ele_Earth,30,BF_SHORT; bonus3 bSubEle,Ele_Fire,30,BF_SHORT; bonus3 bSubEle,Ele_Wind,30,BF_SHORT; bonus3 bSubEle,Ele_Poison,30,BF_SHORT; bonus3 bSubEle,Ele_Holy,30,BF_SHORT; bonus3 bSubEle,Ele_Dark,30,BF_SHORT; bonus3 bSubEle,Ele_Ghost,30,BF_SHORT; bonus3 bSubEle,Ele_Undead,30,BF_SHORT; bonus bFlee,30; skill "AL_TELEPORT",1; bonus bUnbreakableGarment,0;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2542,'Flame_Manteau','Flame Manteau of Naght Sieger',5,20,NULL,70,NULL,4,NULL,1,0xFFFFFFFE,2,2,4,NULL,70,1,0,'bonus bMaxHPRate,5; bonus bMdef,2; bonus bMatkRate,1; bonus2 bAddEle,Ele_Fire,2;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2543,'Sylphid_Manteau','Sylphid Manteau',5,20,NULL,0,NULL,9,NULL,0,0xFFFFFFFF,7,2,4,NULL,0,0,0,'bonus bFlee,13; bonus2 bSubEle,Ele_Neutral,13; bonus bFlee2,1;',NULL,NULL);
@@ -1582,7 +1582,7 @@ REPLACE INTO `item_db` VALUES (2729,'Diabolus_Ring','Diabolus Ring',5,20,NULL,50
 REPLACE INTO `item_db` VALUES (2730,'Morroc_Seal','Seal of Continental Guard',5,20,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,80,0,0,'bonus bMaxHP,50; bonus bAspdRate,3;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2731,'Morroc_Charm_Stone','Rune Spellstone',5,20,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,80,0,0,'bonus bMaxSP,50; bonus bCastRate,-1;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2732,'Morroc_Ring','Death Loop',5,20,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,7,2,136,NULL,80,0,0,'bonus bCritical,5;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (2733,'Medal_Gunner','Sheriff Badge',5,20,NULL,0,NULL,1,NULL,0,0x01000000,7,2,136,NULL,70,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (2733,'Medal_Gunner','Sheriff Badge',5,20,NULL,0,NULL,1,NULL,0,0x41000000,7,2,136,NULL,70,0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (2734,'Directive_A','Directive',5,0,NULL,0,NULL,1,NULL,0,0x00000001,7,2,136,NULL,0,0,0,NULL,NULL,NULL);
 REPLACE INTO `item_db` VALUES (2735,'Directive_B','Directive',5,0,NULL,0,NULL,1,NULL,0,0x00000001,7,2,136,NULL,0,0,0,NULL,NULL,NULL);
 REPLACE INTO `item_db` VALUES (2736,'Navel_Ring','Navel Ring',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFE,7,2,136,NULL,75,0,0,'bonus bDex,3; bonus bLuk,3; bonus bMdef,2;',NULL,NULL);
@@ -5391,60 +5391,60 @@ REPLACE INTO `item_db` VALUES (13046,'Krieg','Krierg',4,20,NULL,500,110,NULL,1,3
 REPLACE INTO `item_db` VALUES (13047,'Weihna','Weihna',4,20,NULL,500,135,NULL,1,2,0x00021040,2,2,2,3,50,1,1,'bonus3 bAddEffOnSkill,"RG_RAID",Eff_Poison,1000; autobonus "{ bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; }",5,5000,BF_WEAPON|BF_SHORT,"{ specialeffect2 EF_POTION_BERSERK; }";',NULL,NULL);
 REPLACE INTO `item_db` VALUES (13048,'Damascus_C','Damascus',4,0,NULL,0,153,NULL,1,0,0x028F5EEE,7,2,2,3,1,0,1,'bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;',NULL,NULL);
 # Revolvers
-REPLACE INTO `item_db` VALUES (13100,'Six_Shooter','Six Shooter',4,4500,NULL,400,30,NULL,7,1,0x01000000,7,2,34,1,10,1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13101,'Six_Shooter_','Six Shooter',4,4500,NULL,400,30,NULL,7,2,0x01000000,7,2,34,1,10,1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13102,'Crimson_Bolt','Crimson Bolt',4,20000,NULL,450,45,NULL,7,1,0x01000000,7,2,34,2,35,1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13103,'Crimson_Bolt_','Crimson Bolt',4,20000,NULL,450,45,NULL,7,2,0x01000000,7,2,34,2,35,1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13104,'The_Garrison','Garrison',4,48000,NULL,500,70,NULL,7,1,0x01000000,7,2,34,2,55,1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13105,'The_Garrison_','Garrison',4,48000,NULL,500,70,NULL,7,2,0x01000000,7,2,34,2,55,1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13106,'Gold_Lux','Gold Lux',4,100000,NULL,500,20,NULL,7,0,0x01000000,7,2,34,3,12,1,17,'bonus bHit,-10; if(getskilllv("GS_GLITTERING")>0) bonus3 bAutoSpell,"GS_GLITTERING",getskilllv("GS_GLITTERING"),100;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13107,'Wasteland_Outlaw','Wasteland\'s Outlaw',4,20,NULL,580,68,NULL,7,2,0x01000000,7,2,34,3,70,1,17,'bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13108,'BF_Pistol1','Soldier Revolver',4,0,NULL,0,70,NULL,7,0,0x01000000,7,2,34,3,80,1,17,'bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13109,'Wasteland_Outlaw_C','Wasteland Outlaw',4,20,NULL,0,100,NULL,7,0,0x01000000,7,2,34,3,0,0,17,'bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13110,'Krieger_Pistol1','Glorious Pistol',4,0,NULL,0,80,NULL,7,0,0x01000000,7,2,34,4,80,1,17,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(getrefine()-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; }',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13100,'Six_Shooter','Six Shooter',4,4500,NULL,400,30,NULL,7,1,0x41000000,7,2,34,1,10,1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13101,'Six_Shooter_','Six Shooter',4,4500,NULL,400,30,NULL,7,2,0x41000000,7,2,34,1,10,1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13102,'Crimson_Bolt','Crimson Bolt',4,20000,NULL,450,45,NULL,7,1,0x41000000,7,2,34,2,35,1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13103,'Crimson_Bolt_','Crimson Bolt',4,20000,NULL,450,45,NULL,7,2,0x41000000,7,2,34,2,35,1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13104,'The_Garrison','Garrison',4,48000,NULL,500,70,NULL,7,1,0x41000000,7,2,34,2,55,1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13105,'The_Garrison_','Garrison',4,48000,NULL,500,70,NULL,7,2,0x41000000,7,2,34,2,55,1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13106,'Gold_Lux','Gold Lux',4,100000,NULL,500,20,NULL,7,0,0x41000000,7,2,34,3,12,1,17,'bonus bHit,-10; if(getskilllv("GS_GLITTERING")>0) bonus3 bAutoSpell,"GS_GLITTERING",getskilllv("GS_GLITTERING"),100;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13107,'Wasteland_Outlaw','Wasteland\'s Outlaw',4,20,NULL,580,68,NULL,7,2,0x41000000,7,2,34,3,70,1,17,'bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13108,'BF_Pistol1','Soldier Revolver',4,0,NULL,0,70,NULL,7,0,0x41000000,7,2,34,3,80,1,17,'bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13109,'Wasteland_Outlaw_C','Wasteland Outlaw',4,20,NULL,0,100,NULL,7,0,0x41000000,7,2,34,3,0,0,17,'bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13110,'Krieger_Pistol1','Glorious Pistol',4,0,NULL,0,80,NULL,7,0,0x41000000,7,2,34,4,80,1,17,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(getrefine()-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; }',NULL,NULL);
 #13111,Sharpshooter_Revolver
-REPLACE INTO `item_db` VALUES (13112,'P_Revolver1','Eden Revlover I',4,0,NULL,0,4,NULL,7,0,0x01000000,7,2,34,1,26,0,17,'bonus bHit,-5;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13113,'P_Revolver2','Eden Revlover II',4,0,NULL,0,60,NULL,7,0,0x01000000,7,2,34,1,40,0,17,'bonus bHit,-5;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13112,'P_Revolver1','Eden Revlover I',4,0,NULL,0,4,NULL,7,0,0x41000000,7,2,34,1,26,0,17,'bonus bHit,-5;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13113,'P_Revolver2','Eden Revlover II',4,0,NULL,0,60,NULL,7,0,0x41000000,7,2,34,1,40,0,17,'bonus bHit,-5;',NULL,NULL);
 # Guns
-REPLACE INTO `item_db` VALUES (13150,'Branch','Branch',4,3000,NULL,500,50,NULL,9,3,0x01000000,7,2,34,1,1,1,18,NULL,NULL,NULL);
-REPLACE INTO `item_db` VALUES (13151,'The_Cyclone','Cyclone',4,17500,NULL,700,120,NULL,9,1,0x01000000,7,2,34,2,24,1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13152,'The_Cyclone_','Cyclone',4,17500,NULL,700,120,NULL,9,2,0x01000000,7,2,34,2,24,1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13153,'Dusk','Dusk',4,23500,NULL,750,150,NULL,9,1,0x01000000,7,2,34,2,56,1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13154,'Rolling_Stone','Rolling Stone',4,12000,NULL,900,135,NULL,9,1,0x01000000,7,2,34,1,14,1,20,'bonus bSplashRange,1;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13155,'Black_Rose','Black Rose',4,32000,NULL,900,180,NULL,9,1,0x01000000,7,2,34,2,35,1,20,'bonus bSplashRange,1;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13156,'Gate_Keeper','Gate Keeper',4,56000,NULL,1000,210,NULL,9,0,0x01000000,7,2,34,2,24,1,20,'bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13157,'Drifter','Drifter',4,80000,NULL,2300,50,NULL,9,1,0x01000000,7,2,34,2,55,1,19,NULL,NULL,NULL);
-REPLACE INTO `item_db` VALUES (13158,'Butcher','Butcher',4,130000,NULL,2500,75,NULL,9,0,0x01000000,7,2,34,3,68,1,19,'bonus2 bCriticalAddRace,RC_Brute,10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13159,'Butcher_','Butcher',4,130000,NULL,2500,75,NULL,9,1,0x01000000,7,2,34,3,68,1,19,'bonus2 bCriticalAddRace,RC_Brute,10;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13160,'Destroyer','Destroyer',4,110000,NULL,1200,220,NULL,9,0,0x01000000,7,2,34,2,52,1,21,'bonus bBreakArmorRate,200;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13161,'Destroyer_','Destroyer',4,110000,NULL,1200,220,NULL,9,1,0x01000000,7,2,34,2,52,1,21,'bonus bBreakArmorRate,200;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13162,'Inferno','Inferno',4,230000,NULL,1250,280,NULL,9,1,0x01000000,7,2,34,2,65,1,21,NULL,NULL,NULL);
-REPLACE INTO `item_db` VALUES (13163,'Long_Barrel','Long Barrel',4,40000,NULL,1000,150,NULL,9,0,0x01000000,7,2,34,3,70,1,18,'bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13164,'Long_Barrel_','Long Barrel',4,40000,NULL,1000,150,NULL,9,1,0x01000000,7,2,34,3,70,1,18,'bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13165,'Jungle_Carbine','Jungle Carbine',4,56000,NULL,700,170,NULL,9,0,0x01000000,7,2,34,3,70,1,18,'bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13166,'Jungle_Carbine_','Jungle Carbine',4,56000,NULL,700,170,NULL,9,1,0x01000000,7,2,34,3,70,1,18,'bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13167,'Gate_KeeperDD','Gate Keeper-DD',4,72000,NULL,1300,200,NULL,9,0,0x01000000,7,2,34,4,70,1,20,'bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; bonus bDef,getrefine(); bonus bDex,1;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13168,'Thunder_P','Thunder P',4,76000,NULL,700,80,NULL,9,1,0x01000000,7,2,34,3,70,1,20,'bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13169,'Thunder_P_','Thunder P',4,76000,NULL,700,80,NULL,9,2,0x01000000,7,2,34,3,70,1,20,'bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13170,'Lever_Action_Rifle','Lever Action Rifle',4,20,NULL,770,138,NULL,9,2,0x01000000,7,2,34,3,70,1,18,'bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13171,'BF_Rifle1','Soldier Rifle',4,0,NULL,0,50,NULL,9,0,0x01000000,7,2,34,3,80,1,18,'bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bCastrate,"GS_TRACKING",-25; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13172,'BF_Gatling_Gun1','Soldier Gatling Gun',4,0,NULL,0,80,NULL,9,0,0x01000000,7,2,34,3,80,1,19,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,120,1000; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13173,'BF_Shotgun1','Soldier Shotgun',4,0,NULL,0,100,NULL,9,0,0x01000000,7,2,34,3,80,1,20,'bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13174,'BF_Launcher1','Soldier Grenade Launcher',4,0,NULL,0,300,NULL,9,0,0x01000000,7,2,34,3,80,1,21,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }",30,9000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13175,'Lever_Action_Rifle_C','Lever Action Rifle',4,20,NULL,0,170,NULL,9,0,0x01000000,7,2,34,3,0,0,18,'bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13176,'Krieger_Rifle1','Glorious Rifle',4,0,NULL,0,90,NULL,9,0,0x01000000,7,2,34,4,80,1,18,'bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bCastrate,"GS_TRACKING",25; bonus2 bSkillAtk,"GS_TRACKING",getrefine() * 3; }',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13177,'Krieger_Gatling1','Glorious Gatling Gun',4,0,NULL,0,90,NULL,9,0,0x01000000,7,2,34,4,80,1,19,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) {bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); }',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13178,'Krieger_Shotgun1','Glorious Shotgun',4,0,NULL,0,110,NULL,9,0,0x01000000,7,2,34,4,80,1,20,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_SPREADATTACK",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; }',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13179,'Krieger_Launcher1','Glorious Grenade Launcher',4,0,NULL,0,330,NULL,9,0,0x01000000,7,2,34,4,80,1,21,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_GROUNDDRIFT",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; autobonus "{ bonus bAspdRate,20; }",200,20000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; }',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13150,'Branch','Branch',4,3000,NULL,500,50,NULL,9,3,0x41000000,7,2,34,1,1,1,18,NULL,NULL,NULL);
+REPLACE INTO `item_db` VALUES (13151,'The_Cyclone','Cyclone',4,17500,NULL,700,120,NULL,9,1,0x41000000,7,2,34,2,24,1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13152,'The_Cyclone_','Cyclone',4,17500,NULL,700,120,NULL,9,2,0x41000000,7,2,34,2,24,1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13153,'Dusk','Dusk',4,23500,NULL,750,150,NULL,9,1,0x41000000,7,2,34,2,56,1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13154,'Rolling_Stone','Rolling Stone',4,12000,NULL,900,135,NULL,9,1,0x41000000,7,2,34,1,14,1,20,'bonus bSplashRange,1;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13155,'Black_Rose','Black Rose',4,32000,NULL,900,180,NULL,9,1,0x41000000,7,2,34,2,35,1,20,'bonus bSplashRange,1;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13156,'Gate_Keeper','Gate Keeper',4,56000,NULL,1000,210,NULL,9,0,0x41000000,7,2,34,2,24,1,20,'bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13157,'Drifter','Drifter',4,80000,NULL,2300,50,NULL,9,1,0x41000000,7,2,34,2,55,1,19,NULL,NULL,NULL);
+REPLACE INTO `item_db` VALUES (13158,'Butcher','Butcher',4,130000,NULL,2500,75,NULL,9,0,0x41000000,7,2,34,3,68,1,19,'bonus2 bCriticalAddRace,RC_Brute,10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13159,'Butcher_','Butcher',4,130000,NULL,2500,75,NULL,9,1,0x41000000,7,2,34,3,68,1,19,'bonus2 bCriticalAddRace,RC_Brute,10;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13160,'Destroyer','Destroyer',4,110000,NULL,1200,220,NULL,9,0,0x41000000,7,2,34,2,52,1,21,'bonus bBreakArmorRate,200;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13161,'Destroyer_','Destroyer',4,110000,NULL,1200,220,NULL,9,1,0x41000000,7,2,34,2,52,1,21,'bonus bBreakArmorRate,200;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13162,'Inferno','Inferno',4,230000,NULL,1250,280,NULL,9,1,0x41000000,7,2,34,2,65,1,21,NULL,NULL,NULL);
+REPLACE INTO `item_db` VALUES (13163,'Long_Barrel','Long Barrel',4,40000,NULL,1000,150,NULL,9,0,0x41000000,7,2,34,3,70,1,18,'bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13164,'Long_Barrel_','Long Barrel',4,40000,NULL,1000,150,NULL,9,1,0x41000000,7,2,34,3,70,1,18,'bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13165,'Jungle_Carbine','Jungle Carbine',4,56000,NULL,700,170,NULL,9,0,0x41000000,7,2,34,3,70,1,18,'bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13166,'Jungle_Carbine_','Jungle Carbine',4,56000,NULL,700,170,NULL,9,1,0x41000000,7,2,34,3,70,1,18,'bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13167,'Gate_KeeperDD','Gate Keeper-DD',4,72000,NULL,1300,200,NULL,9,0,0x41000000,7,2,34,4,70,1,20,'bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; bonus bDef,getrefine(); bonus bDex,1;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13168,'Thunder_P','Thunder P',4,76000,NULL,700,80,NULL,9,1,0x41000000,7,2,34,3,70,1,20,'bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13169,'Thunder_P_','Thunder P',4,76000,NULL,700,80,NULL,9,2,0x41000000,7,2,34,3,70,1,20,'bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13170,'Lever_Action_Rifle','Lever Action Rifle',4,20,NULL,770,138,NULL,9,2,0x41000000,7,2,34,3,70,1,18,'bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13171,'BF_Rifle1','Soldier Rifle',4,0,NULL,0,50,NULL,9,0,0x41000000,7,2,34,3,80,1,18,'bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bCastrate,"GS_TRACKING",-25; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13172,'BF_Gatling_Gun1','Soldier Gatling Gun',4,0,NULL,0,80,NULL,9,0,0x41000000,7,2,34,3,80,1,19,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,120,1000; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13173,'BF_Shotgun1','Soldier Shotgun',4,0,NULL,0,100,NULL,9,0,0x41000000,7,2,34,3,80,1,20,'bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13174,'BF_Launcher1','Soldier Grenade Launcher',4,0,NULL,0,300,NULL,9,0,0x41000000,7,2,34,3,80,1,21,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }",30,9000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13175,'Lever_Action_Rifle_C','Lever Action Rifle',4,20,NULL,0,170,NULL,9,0,0x41000000,7,2,34,3,0,0,18,'bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13176,'Krieger_Rifle1','Glorious Rifle',4,0,NULL,0,90,NULL,9,0,0x41000000,7,2,34,4,80,1,18,'bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bCastrate,"GS_TRACKING",25; bonus2 bSkillAtk,"GS_TRACKING",getrefine() * 3; }',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13177,'Krieger_Gatling1','Glorious Gatling Gun',4,0,NULL,0,90,NULL,9,0,0x41000000,7,2,34,4,80,1,19,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) {bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); }',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13178,'Krieger_Shotgun1','Glorious Shotgun',4,0,NULL,0,110,NULL,9,0,0x41000000,7,2,34,4,80,1,20,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_SPREADATTACK",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; }',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13179,'Krieger_Launcher1','Glorious Grenade Launcher',4,0,NULL,0,330,NULL,9,0,0x41000000,7,2,34,4,80,1,21,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_GROUNDDRIFT",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; autobonus "{ bonus bAspdRate,20; }",200,20000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; }',NULL,NULL);
 # Bullets
-REPLACE INTO `item_db` VALUES (13200,'Bullet','Bullet',10,1,NULL,2,10,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,3,NULL,NULL,NULL);
-REPLACE INTO `item_db` VALUES (13201,'Silver_Bullet','Silver Bullet',10,15,NULL,2,15,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,3,'bonus bAtkEle,Ele_Holy;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13202,'Shell_Of_Blood','Bloody Shell',10,30,NULL,2,30,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,3,'bonus2 bAddEff,Eff_Bleeding,100;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13203,'Flare_Sphere','Flare Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Fire;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13204,'Lighting_Sphere','Lightning Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Wind;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13205,'Poison_Sphere','Poison Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13206,'Blind_Sphere','Blind Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (13207,'Freezing_Sphere','Freezing Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x01000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Water;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13200,'Bullet','Bullet',10,1,NULL,2,10,NULL,NULL,NULL,0x41000000,7,2,32768,NULL,1,NULL,3,NULL,NULL,NULL);
+REPLACE INTO `item_db` VALUES (13201,'Silver_Bullet','Silver Bullet',10,15,NULL,2,15,NULL,NULL,NULL,0x41000000,7,2,32768,NULL,1,NULL,3,'bonus bAtkEle,Ele_Holy;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13202,'Shell_Of_Blood','Bloody Shell',10,30,NULL,2,30,NULL,NULL,NULL,0x41000000,7,2,32768,NULL,1,NULL,3,'bonus2 bAddEff,Eff_Bleeding,100;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13203,'Flare_Sphere','Flare Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x41000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Fire;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13204,'Lighting_Sphere','Lightning Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x41000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Wind;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13205,'Poison_Sphere','Poison Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x41000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13206,'Blind_Sphere','Blind Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x41000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (13207,'Freezing_Sphere','Freezing Sphere',10,80,NULL,5,50,NULL,NULL,NULL,0x41000000,7,2,32768,NULL,1,NULL,5,'bonus bAtkEle,Ele_Water;',NULL,NULL);
 # Shurikens & Kunais
 REPLACE INTO `item_db` VALUES (13250,'Shuriken','Shuriken',10,4,NULL,5,10,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,1,NULL,6,NULL,NULL,NULL);
 REPLACE INTO `item_db` VALUES (13251,'Nimbus_Shuriken','Nimbus Shuriken',10,10,NULL,5,30,NULL,NULL,NULL,0x02000000,7,2,32768,NULL,20,NULL,6,NULL,NULL,NULL);

+ 66 - 66
sql-files/item_db_re.sql

@@ -1460,7 +1460,7 @@ REPLACE INTO `item_db_re` VALUES (2378,'Assassin_Robe','Assassin Robe',5,10,NULL
 REPLACE INTO `item_db_re` VALUES (2379,'Warlock_Battle_Robe','Warlock\'s Battle Robe',5,10,NULL,0,NULL,36,NULL,1,0x00810204,63,2,16,NULL,'80',1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2380,'Medic_Robe','Medic\'s Robe',5,10,NULL,0,NULL,25,NULL,1,0x00008110,63,2,16,NULL,'80',1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2381,'Elite_Archer_Suit','Elite Archer Suit',5,10,NULL,0,NULL,35,NULL,1,0x00080808,63,2,16,NULL,'80',1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (2382,'Elite_Shooter_Suit','Elite Shooter Suit',5,10,NULL,0,NULL,25,NULL,1,0x01000000,63,2,16,NULL,'80',1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2382,'Elite_Shooter_Suit','Elite Shooter Suit',5,10,NULL,0,NULL,25,NULL,1,0x41000000,63,2,16,NULL,'80',1,0,'bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2383,'Brynhild','Brynhild',5,20,NULL,400,NULL,120,NULL,0,0xFFFFFFFF,63,2,16,NULL,'94',0,0,'bonus bMdef,10; bonus bMaxHP,20*BaseLevel; bonus bMaxSP,5*BaseLevel; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; bonus bUnbreakableArmor,0; bonus bNoKnockback,0;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2384,'Spritual_Tunic','Spiritual Tunic',5,20,NULL,0,NULL,10,NULL,0,0xFFFFFFFF,63,2,16,NULL,'0',0,0,'bonus bMaxHP,800; bonus2 bResEff,Eff_Freeze,10000; bonus2 bSubEle,Ele_Earth,20; bonus2 bSubEle,Ele_Fire,20; bonus2 bSubEle,Ele_Wind,20; bonus2 bSubEle,Ele_Poison,20; bonus2 bSubEle,Ele_Holy,20; bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Ghost,20; bonus2 bSubEle,Ele_Undead,20;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2385,'Recuperative_Armor','Recuperative Armor',5,20,NULL,0,NULL,12,NULL,0,0xFFFFFFFF,63,2,16,NULL,'0',0,0,'bonus bNoRegen,1; bonus bNoRegen,2; bonus bHPGainValue,60; bonus bSPGainValue,6; bonus bMagicHPGainValue,60; bonus bMagicSPGainValue,6;',NULL,'heal 0,-100;');
@@ -1516,7 +1516,7 @@ REPLACE INTO `item_db_re` VALUES (2433,'Diabolus_Boots','Diabolus Boots',5,20,NU
 REPLACE INTO `item_db_re` VALUES (2434,'Black_Leather_Boots_','Black Leather Boots',5,20,NULL,500,NULL,16,NULL,1,0xFFFFFFFE,18,2,64,NULL,'55',1,0,'bonus bAgi,1; if(getrefine()>=9) bonus bAgi,2;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2435,'Battle_Greave','Battle Greaves',5,10,NULL,0,NULL,15,NULL,1,0x026654E2,63,2,64,NULL,'80',1,0,'bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2436,'Combat_Boots','Combat Boots',5,10,NULL,0,NULL,9,NULL,1,0x00898B1C,63,2,64,NULL,'80',1,0,'bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (2437,'Battle_Boots','Battle Boots',5,10,NULL,0,NULL,9,NULL,1,0x01000000,63,2,64,NULL,'80',1,0,'bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2437,'Battle_Boots','Battle Boots',5,10,NULL,0,NULL,9,NULL,1,0x41000000,63,2,64,NULL,'80',1,0,'bonus bMaxHP,100; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2438,'Paw_Of_Cat','Paw Of Cat',5,10,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,64,NULL,'80',1,0,'bonus bFlee,5; bonus bAgi,1; /* skill "ALL_CATCRY",1; */',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2439,'Refresh_Shoes','Refresh Shoes',5,20,NULL,0,NULL,9,NULL,0,0xFFFFFFFF,63,2,64,NULL,'0',0,0,'bonus bMaxHPrate,17; bonus bMaxSPrate,8; bonus2 bHPRegenRate,20,10000; bonus2 bSPRegenRate,3,10000;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2440,'Sprint_Shoes','Sprint Shoes',5,20,NULL,300,NULL,10,NULL,1,0x00CFFF80,18,2,64,NULL,'70',1,0,'bonus bAgi,1; bonus bSPrecovRate,5;',NULL,NULL);
@@ -1613,7 +1613,7 @@ REPLACE INTO `item_db_re` VALUES (2536,'Skin_Of_Ventus','Skin of Ventus',5,20,NU
 REPLACE INTO `item_db_re` VALUES (2537,'Diabolus_Manteau','Diabolus Manteau',5,20,NULL,250,NULL,15,NULL,1,0x00CFFF80,18,2,4,NULL,'0',1,0,'bonus2 bSubEle,Ele_Neutral,5; bonus bMaxHP,100; bonus2 bAddDamageClass,1916,10; bonus2 bAddDamageClass,1917,10;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2538,'Commander_Manteau','Captain\'s Manteau',5,10,NULL,0,NULL,28,NULL,1,0x026654E2,63,2,4,NULL,'80',1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2539,'Commander_Manteau_','Commander\'s Manteau',5,10,NULL,0,NULL,20,NULL,1,0x00898B1C,63,2,4,NULL,'80',1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (2540,'Sheriff_Manteau','Sheriff\'s Manteau',5,10,NULL,0,NULL,20,NULL,1,0x01000000,63,2,4,NULL,'80',1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2540,'Sheriff_Manteau','Sheriff\'s Manteau',5,10,NULL,0,NULL,20,NULL,1,0x41000000,63,2,4,NULL,'80',1,0,'bonus bMaxHP,50; bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2541,'Asprika','Asprika',5,20,NULL,400,NULL,40,NULL,0,0xFFFFFFFF,63,2,4,NULL,'94',0,0,'bonus bMdef,5; bonus3 bSubEle,Ele_Neutral,30,BF_SHORT; bonus3 bSubEle,Ele_Water,30,BF_SHORT; bonus3 bSubEle,Ele_Earth,30,BF_SHORT; bonus3 bSubEle,Ele_Fire,30,BF_SHORT; bonus3 bSubEle,Ele_Wind,30,BF_SHORT; bonus3 bSubEle,Ele_Poison,30,BF_SHORT; bonus3 bSubEle,Ele_Holy,30,BF_SHORT; bonus3 bSubEle,Ele_Dark,30,BF_SHORT; bonus3 bSubEle,Ele_Ghost,30,BF_SHORT; bonus3 bSubEle,Ele_Undead,30,BF_SHORT; bonus bFlee,30; skill "AL_TELEPORT",1; bonus bUnbreakableGarment,0;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2542,'Flame_Manteau','Flame Manteau of Naght Sieger',5,20,NULL,70,NULL,16,NULL,1,0xFFFFFFFE,18,2,4,NULL,'70',1,0,'bonus bMaxHPrate,5; bonus bMdef,2; bonus bMatkRate,1; bonus2 bAddEle,Ele_Fire,2;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2543,'Sylphid_Manteau','Sylphid Manteau',5,20,NULL,0,NULL,9,NULL,0,0xFFFFFFFF,63,2,4,NULL,'0',0,0,'bonus bFlee,13; bonus2 bSubEle,Ele_Neutral,13; bonus bFlee2,1;',NULL,NULL);
@@ -1801,7 +1801,7 @@ REPLACE INTO `item_db_re` VALUES (2729,'Diabolus_Ring','Diabolus Ring',5,20,NULL
 REPLACE INTO `item_db_re` VALUES (2730,'Morroc_Seal','Seal of Continental Guard',5,20,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,63,2,136,NULL,'80',0,0,'bonus bMaxHP,50; bonus bAspdRate,3;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2731,'Morroc_Charm_Stone','Rune Spellstone',5,20,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,63,2,136,NULL,'80',0,0,'bonus bMaxSP,50; bonus bVariableCastrate,-1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2732,'Morroc_Ring','Death Loop',5,20,NULL,50,NULL,0,NULL,1,0xFFFFFFFE,63,2,136,NULL,'80',0,0,'bonus bCritical,5;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (2733,'Medal_Gunner','Sheriff Badge',5,20,NULL,0,NULL,1,NULL,0,0x01000000,63,2,136,NULL,'70',0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2733,'Medal_Gunner','Sheriff Badge',5,20,NULL,0,NULL,1,NULL,0,0x41000000,63,2,136,NULL,'70',0,0,'bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2734,'Directive_A','Directive',5,0,NULL,0,NULL,1,NULL,0,0x00000001,63,2,136,NULL,'0',0,0,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2735,'Directive_B','Directive',5,0,NULL,0,NULL,1,NULL,0,0x00000001,63,2,136,NULL,'0',0,0,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2736,'Navel_Ring','Navel Ring',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFE,63,2,136,NULL,'75',0,0,'bonus bDex,3; bonus bLuk,3; bonus bMdef,2;',NULL,NULL);
@@ -6401,68 +6401,68 @@ REPLACE INTO `item_db_re` VALUES (13081,'Octo_kitchen_Knife','Discount knife Oct
 #
 REPLACE INTO `item_db_re` VALUES (13092,'RWC_Memory_Knife','RWC Memory Knife',4,1000,500,650,'50',0,1,1,0x02800075,63,2,2,3,'1',1,1,'bonus bBaseAtk,20*(getrefine()/3); bonus bMatk,20*(getrefine()/3); if(getrefine()>=9){ set .@i,1; bonus4 bAutoSpell,"BS_WEAPONPERFECT",1,20,0; } if(getrefine()>=6){ set .@rate,5*(.@i+1); bonus2 bAddRace,RC_Boss,.@rate; bonus2 bAddRace,RC_NonBoss,.@rate; bonus2 bMagicAddRace,RC_Boss,.@rate; bonus2 bMagicAddRace,RC_NonBoss,.@rate; }',NULL,NULL);
 # Revolvers
-REPLACE INTO `item_db_re` VALUES (13100,'Six_Shooter','Six Shooter',4,4500,NULL,400,'30',NULL,7,1,0x01000000,63,2,34,1,'10',1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13101,'Six_Shooter_','Six Shooter',4,4500,NULL,400,'30',NULL,7,2,0x01000000,63,2,34,1,'10',1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13102,'Crimson_Bolt','Crimson Bolt',4,20000,NULL,450,'45',NULL,7,1,0x01000000,63,2,34,2,'35',1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13103,'Crimson_Bolt_','Crimson Bolt',4,20000,NULL,450,'45',NULL,7,2,0x01000000,63,2,34,2,'35',1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13104,'The_Garrison','Garrison',4,48000,NULL,500,'70',NULL,7,1,0x01000000,63,2,34,2,'55',1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13105,'The_Garrison_','Garrison',4,48000,NULL,500,'70',NULL,7,2,0x01000000,63,2,34,2,'55',1,17,'bonus bHit,-10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13106,'Gold_Lux','Gold Lux',4,100000,NULL,500,'20',NULL,7,0,0x01000000,63,2,34,3,'12',1,17,'bonus bHit,-10; if(getskilllv("GS_GLITTERING")>0) bonus3 bAutoSpell,"GS_GLITTERING",getskilllv("GS_GLITTERING"),100;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13107,'Wasteland_Outlaw','Wasteland\'s Outlaw',4,20,NULL,580,'68',NULL,7,2,0x01000000,63,2,34,3,'70',1,17,'bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13108,'BF_Pistol1','Soldier Revolver',4,0,NULL,0,'70',NULL,7,0,0x01000000,63,2,34,3,'80',1,17,'bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13109,'Wasteland_Outlaw_C','Wasteland Outlaw',4,20,NULL,0,'100',NULL,7,0,0x01000000,63,2,34,3,'0',0,17,'bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace,RC_NonBoss,40; bonus2 bAddRace,RC_Boss,40;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13110,'Krieger_Pistol1','Glorious Pistol',4,0,NULL,0,'80',NULL,7,0,0x01000000,63,2,34,4,'80',1,17,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; }',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13111,'Sharpshooter_Revolver','Sharpshooter Revolver',4,20,NULL,0,'105',NULL,7,0,0x01000000,63,2,34,4,'1',1,17,'bonus bDex,2;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13112,'P_Revolver1','Eden Revlover I',4,0,NULL,0,'44',NULL,7,0,0x01000000,63,2,34,1,'26',0,17,'bonus bHit,-5;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13113,'P_Revolver2','Eden Revlover II',4,0,NULL,0,'60',NULL,7,0,0x01000000,63,2,34,1,'40',0,17,'bonus bHit,-5;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13114,'P_Revolver3','Eden Revolver III',4,0,NULL,0,'76',NULL,7,0,0x01000000,63,2,34,3,'60',0,17,'bonus bHit,-5;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13115,'Upg_Revolver','Upg Revolver',4,20,NULL,500,'35',NULL,7,1,0x01000000,63,2,34,3,'1',1,17,'bonus bBaseAtk,(getrefine()*5); bonus bLongAtkRate,(getrefine()*2); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*5);',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13116,'Novice_Revolver','Novice Revolver',4,0,NULL,500,'20',NULL,7,0,0x01000000,63,2,34,1,'1',0,17,'bonus bHit,-5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13100,'Six_Shooter','Six Shooter',4,4500,NULL,400,'30',NULL,7,1,0x41000000,63,2,34,1,'10',1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13101,'Six_Shooter_','Six Shooter',4,4500,NULL,400,'30',NULL,7,2,0x41000000,63,2,34,1,'10',1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13102,'Crimson_Bolt','Crimson Bolt',4,20000,NULL,450,'45',NULL,7,1,0x41000000,63,2,34,2,'35',1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13103,'Crimson_Bolt_','Crimson Bolt',4,20000,NULL,450,'45',NULL,7,2,0x41000000,63,2,34,2,'35',1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13104,'The_Garrison','Garrison',4,48000,NULL,500,'70',NULL,7,1,0x41000000,63,2,34,2,'55',1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13105,'The_Garrison_','Garrison',4,48000,NULL,500,'70',NULL,7,2,0x41000000,63,2,34,2,'55',1,17,'bonus bHit,-10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13106,'Gold_Lux','Gold Lux',4,100000,NULL,500,'20',NULL,7,0,0x41000000,63,2,34,3,'12',1,17,'bonus bHit,-10; if(getskilllv("GS_GLITTERING")>0) bonus3 bAutoSpell,"GS_GLITTERING",getskilllv("GS_GLITTERING"),100;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13107,'Wasteland_Outlaw','Wasteland\'s Outlaw',4,20,NULL,580,'68',NULL,7,2,0x41000000,63,2,34,3,'70',1,17,'bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13108,'BF_Pistol1','Soldier Revolver',4,0,NULL,0,'70',NULL,7,0,0x41000000,63,2,34,3,'80',1,17,'bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13109,'Wasteland_Outlaw_C','Wasteland Outlaw',4,20,NULL,0,'100',NULL,7,0,0x41000000,63,2,34,3,'0',0,17,'bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace,RC_NonBoss,40; bonus2 bAddRace,RC_Boss,40;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13110,'Krieger_Pistol1','Glorious Pistol',4,0,NULL,0,'80',NULL,7,0,0x41000000,63,2,34,4,'80',1,17,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13111,'Sharpshooter_Revolver','Sharpshooter Revolver',4,20,NULL,0,'105',NULL,7,0,0x41000000,63,2,34,4,'1',1,17,'bonus bDex,2;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13112,'P_Revolver1','Eden Revlover I',4,0,NULL,0,'44',NULL,7,0,0x41000000,63,2,34,1,'26',0,17,'bonus bHit,-5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13113,'P_Revolver2','Eden Revlover II',4,0,NULL,0,'60',NULL,7,0,0x41000000,63,2,34,1,'40',0,17,'bonus bHit,-5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13114,'P_Revolver3','Eden Revolver III',4,0,NULL,0,'76',NULL,7,0,0x41000000,63,2,34,3,'60',0,17,'bonus bHit,-5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13115,'Upg_Revolver','Upg Revolver',4,20,NULL,500,'35',NULL,7,1,0x41000000,63,2,34,3,'1',1,17,'bonus bBaseAtk,(getrefine()*5); bonus bLongAtkRate,(getrefine()*2); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*5);',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13116,'Novice_Revolver','Novice Revolver',4,0,NULL,500,'20',NULL,7,0,0x41000000,63,2,34,1,'1',0,17,'bonus bHit,-5;',NULL,NULL);
 # Guns
-REPLACE INTO `item_db_re` VALUES (13150,'Branch','Branch',4,3000,NULL,500,'50',NULL,9,3,0x01000000,63,2,34,1,'1',1,18,NULL,NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13151,'The_Cyclone','Cyclone',4,17500,NULL,700,'120',NULL,9,1,0x01000000,63,2,34,2,'24',1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13152,'The_Cyclone_','Cyclone',4,17500,NULL,700,'120',NULL,9,2,0x01000000,63,2,34,2,'24',1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13153,'Dusk','Dusk',4,23500,NULL,750,'150',NULL,9,1,0x01000000,63,2,34,2,'56',1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13154,'Rolling_Stone','Rolling Stone',4,12000,NULL,900,'135',NULL,9,1,0x01000000,63,2,34,1,'14',1,20,'bonus bSplashRange,1;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13155,'Black_Rose','Black Rose',4,32000,NULL,900,'180',NULL,9,1,0x01000000,63,2,34,2,'35',1,20,'bonus bSplashRange,1;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13156,'Gate_Keeper','Gate Keeper',4,56000,NULL,1000,'210',NULL,9,0,0x01000000,63,2,34,2,'24',1,20,'bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13157,'Drifter','Drifter',4,80000,NULL,2300,'50',NULL,9,1,0x01000000,63,2,34,2,'55',1,19,NULL,NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13158,'Butcher','Butcher',4,130000,NULL,2500,'75',NULL,9,0,0x01000000,63,2,34,3,'68',1,19,'bonus2 bCriticalAddRace,RC_Brute,10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13159,'Butcher_','Butcher',4,130000,NULL,2500,'75',NULL,9,1,0x01000000,63,2,34,3,'68',1,19,'bonus2 bCriticalAddRace,RC_Brute,10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13160,'Destroyer','Destroyer',4,110000,NULL,1200,'220',NULL,9,0,0x01000000,63,2,34,2,'52',1,21,'bonus bBreakArmorRate,200;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13161,'Destroyer_','Destroyer',4,110000,NULL,1200,'220',NULL,9,1,0x01000000,63,2,34,2,'52',1,21,'bonus bBreakArmorRate,200;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13162,'Inferno','Inferno',4,230000,NULL,1250,'280',NULL,9,1,0x01000000,63,2,34,2,'65',1,21,NULL,NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13163,'Long_Barrel','Long Barrel',4,40000,NULL,1000,'150',NULL,9,0,0x01000000,63,2,34,3,'70',1,18,'bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13164,'Long_Barrel_','Long Barrel',4,40000,NULL,1000,'150',NULL,9,1,0x01000000,63,2,34,3,'70',1,18,'bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13165,'Jungle_Carbine','Jungle Carbine',4,56000,NULL,700,'170',NULL,9,0,0x01000000,63,2,34,3,'70',1,18,'bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13166,'Jungle_Carbine_','Jungle Carbine',4,56000,NULL,700,'170',NULL,9,1,0x01000000,63,2,34,3,'70',1,18,'bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13167,'Gate_KeeperDD','Gate Keeper-DD',4,72000,NULL,1300,'200',NULL,9,0,0x01000000,63,2,34,4,'70',1,20,'bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; bonus bDef,getrefine(); bonus bDex,1;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13168,'Thunder_P','Thunder P',4,76000,NULL,700,'80',NULL,9,1,0x01000000,63,2,34,3,'70',1,20,'bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13169,'Thunder_P_','Thunder P',4,76000,NULL,700,'80',NULL,9,2,0x01000000,63,2,34,3,'70',1,20,'bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13170,'Lever_Action_Rifle','Lever Action Rifle',4,20,NULL,770,'138',NULL,9,2,0x01000000,63,2,34,3,'70',1,18,'bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13171,'BF_Rifle1','Soldier Rifle',4,0,NULL,0,'50',NULL,9,0,0x01000000,63,2,34,3,'80',1,18,'bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bVariableCastrate,"GS_TRACKING",-25; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13172,'BF_Gatling_Gun1','Soldier Gatling Gun',4,0,NULL,0,'80',NULL,9,0,0x01000000,63,2,34,3,'80',1,19,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,120,1000; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13173,'BF_Shotgun1','Soldier Shotgun',4,0,NULL,0,'100',NULL,9,0,0x01000000,63,2,34,3,'80',1,20,'bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13174,'BF_Launcher1','Soldier Grenade Launcher',4,0,NULL,0,'300',NULL,9,0,0x01000000,63,2,34,3,'80',1,21,'bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }",30,9000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13175,'Lever_Action_Rifle_C','Lever Action Rifle',4,20,NULL,0,'170',NULL,9,0,0x01000000,63,2,34,3,'1',0,18,'bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; bonus2 bAddRace,RC_NonBoss,40; bonus2 bAddRace,RC_Boss,40;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13176,'Krieger_Rifle1','Glorious Rifle',4,0,NULL,0,'90',NULL,9,0,0x01000000,63,2,34,4,'80',1,18,'bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bVariableCastrate,"GS_TRACKING",25; bonus2 bSkillAtk,"GS_TRACKING",getrefine() * 3; }',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13177,'Krieger_Gatling1','Glorious Gatling Gun',4,0,NULL,0,'90',NULL,9,0,0x01000000,63,2,34,4,'80',1,19,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); }',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13178,'Krieger_Shotgun1','Glorious Shotgun',4,0,NULL,0,'110',NULL,9,0,0x01000000,63,2,34,4,'80',1,20,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_SPREADATTACK",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; }',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13179,'Krieger_Launcher1','Glorious Grenade Launcher',4,0,NULL,0,'330',NULL,9,0,0x01000000,63,2,34,4,'80',1,21,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_GROUNDDRIFT",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; autobonus "{ bonus bAspdRate,20; }",200,20000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; }',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13180,'Novice_Rifle','Novice Rifle',4,0,NULL,500,'50',NULL,9,3,0x01000000,1,2,34,4,'1',0,18,NULL,NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13181,'Novice_Shotgun','Novice Shotgun',4,0,NULL,1000,'80',NULL,9,0,0x01000000,1,2,34,4,'1',0,20,NULL,NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13182,'Novice_Gatling','Novice Gatling',4,0,NULL,1500,'40',NULL,9,0,0x01000000,1,2,34,4,'1',0,19,NULL,NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13183,'Novice_Grenade_Launcher','Novice Grenade Launcher',4,0,NULL,1500,'40',NULL,9,0,0x01000000,1,2,34,4,'1',0,21,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13150,'Branch','Branch',4,3000,NULL,500,'50',NULL,9,3,0x41000000,63,2,34,1,'1',1,18,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13151,'The_Cyclone','Cyclone',4,17500,NULL,700,'120',NULL,9,1,0x41000000,63,2,34,2,'24',1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13152,'The_Cyclone_','Cyclone',4,17500,NULL,700,'120',NULL,9,2,0x41000000,63,2,34,2,'24',1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13153,'Dusk','Dusk',4,23500,NULL,750,'150',NULL,9,1,0x41000000,63,2,34,2,'56',1,18,'bonus bHit,10; bonus bCritical,10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13154,'Rolling_Stone','Rolling Stone',4,12000,NULL,900,'135',NULL,9,1,0x41000000,63,2,34,1,'14',1,20,'bonus bSplashRange,1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13155,'Black_Rose','Black Rose',4,32000,NULL,900,'180',NULL,9,1,0x41000000,63,2,34,2,'35',1,20,'bonus bSplashRange,1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13156,'Gate_Keeper','Gate Keeper',4,56000,NULL,1000,'210',NULL,9,0,0x41000000,63,2,34,2,'24',1,20,'bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13157,'Drifter','Drifter',4,80000,NULL,2300,'50',NULL,9,1,0x41000000,63,2,34,2,'55',1,19,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13158,'Butcher','Butcher',4,130000,NULL,2500,'75',NULL,9,0,0x41000000,63,2,34,3,'68',1,19,'bonus2 bCriticalAddRace,RC_Brute,10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13159,'Butcher_','Butcher',4,130000,NULL,2500,'75',NULL,9,1,0x41000000,63,2,34,3,'68',1,19,'bonus2 bCriticalAddRace,RC_Brute,10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13160,'Destroyer','Destroyer',4,110000,NULL,1200,'220',NULL,9,0,0x41000000,63,2,34,2,'52',1,21,'bonus bBreakArmorRate,200;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13161,'Destroyer_','Destroyer',4,110000,NULL,1200,'220',NULL,9,1,0x41000000,63,2,34,2,'52',1,21,'bonus bBreakArmorRate,200;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13162,'Inferno','Inferno',4,230000,NULL,1250,'280',NULL,9,1,0x41000000,63,2,34,2,'65',1,21,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13163,'Long_Barrel','Long Barrel',4,40000,NULL,1000,'150',NULL,9,0,0x41000000,63,2,34,3,'70',1,18,'bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13164,'Long_Barrel_','Long Barrel',4,40000,NULL,1000,'150',NULL,9,1,0x41000000,63,2,34,3,'70',1,18,'bonus bHit,10; bonus bCritical,20; bonus bAspdRate,-3; bonus3 bAutoSpell,"GS_TRACKING",5,20;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13165,'Jungle_Carbine','Jungle Carbine',4,56000,NULL,700,'170',NULL,9,0,0x41000000,63,2,34,3,'70',1,18,'bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13166,'Jungle_Carbine_','Jungle Carbine',4,56000,NULL,700,'170',NULL,9,1,0x41000000,63,2,34,3,'70',1,18,'bonus bHit,10; bonus bCritical,4; bonus bAspdRate,10; bonus bHit,-readparam(bDex)/3;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13167,'Gate_KeeperDD','Gate Keeper-DD',4,72000,NULL,1300,'200',NULL,9,0,0x41000000,63,2,34,4,'70',1,20,'bonus bSplashRange,1; bonus3 bAutoSpell,"GS_SPREADATTACK",6,50; bonus bDef,getrefine(); bonus bDex,1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13168,'Thunder_P','Thunder P',4,76000,NULL,700,'80',NULL,9,1,0x41000000,63,2,34,3,'70',1,20,'bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13169,'Thunder_P_','Thunder P',4,76000,NULL,700,'80',NULL,9,2,0x41000000,63,2,34,3,'70',1,20,'bonus bSplashRange,1; bonus bHit,-5; bonus bAspdRate,20;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13170,'Lever_Action_Rifle','Lever Action Rifle',4,20,NULL,770,'138',NULL,9,2,0x41000000,63,2,34,3,'70',1,18,'bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13171,'BF_Rifle1','Soldier Rifle',4,0,NULL,0,'50',NULL,9,0,0x41000000,63,2,34,3,'80',1,18,'bonus bDex,2; bonus bHit,10; bonus bCritical,10; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bVariableCastrate,"GS_TRACKING",-25; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13172,'BF_Gatling_Gun1','Soldier Gatling Gun',4,0,NULL,0,'80',NULL,9,0,0x41000000,63,2,34,3,'80',1,19,'bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,120,1000; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13173,'BF_Shotgun1','Soldier Shotgun',4,0,NULL,0,'100',NULL,9,0,0x41000000,63,2,34,3,'80',1,20,'bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13174,'BF_Launcher1','Soldier Grenade Launcher',4,0,NULL,0,'300',NULL,9,0,0x41000000,63,2,34,3,'80',1,21,'bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus "{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }",30,9000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13175,'Lever_Action_Rifle_C','Lever Action Rifle',4,20,NULL,0,'170',NULL,9,0,0x41000000,63,2,34,3,'1',0,18,'bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5; bonus2 bAddRace,RC_NonBoss,40; bonus2 bAddRace,RC_Boss,40;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13176,'Krieger_Rifle1','Glorious Rifle',4,0,NULL,0,'90',NULL,9,0,0x41000000,63,2,34,4,'80',1,18,'bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bVariableCastrate,"GS_TRACKING",25; bonus2 bSkillAtk,"GS_TRACKING",getrefine() * 3; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13177,'Krieger_Gatling1','Glorious Gatling Gun',4,0,NULL,0,'90',NULL,9,0,0x41000000,63,2,34,4,'80',1,19,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13178,'Krieger_Shotgun1','Glorious Shotgun',4,0,NULL,0,'110',NULL,9,0,0x41000000,63,2,34,4,'80',1,20,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_SPREADATTACK",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13179,'Krieger_Launcher1','Glorious Grenade Launcher',4,0,NULL,0,'330',NULL,9,0,0x41000000,63,2,34,4,'80',1,21,'bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,"GS_TRIPLEACTION",30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,"GS_GROUNDDRIFT",getrefine() * 2; bonus3 bAddEffOnSkill,"GS_SPREADATTACK",Eff_Stun,2000; autobonus "{ bonus bAspdRate,20; }",200,20000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13180,'Novice_Rifle','Novice Rifle',4,0,NULL,500,'50',NULL,9,3,0x41000000,1,2,34,4,'1',0,18,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13181,'Novice_Shotgun','Novice Shotgun',4,0,NULL,1000,'80',NULL,9,0,0x41000000,1,2,34,4,'1',0,20,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13182,'Novice_Gatling','Novice Gatling',4,0,NULL,1500,'40',NULL,9,0,0x41000000,1,2,34,4,'1',0,19,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13183,'Novice_Grenade_Launcher','Novice Grenade Launcher',4,0,NULL,1500,'40',NULL,9,0,0x41000000,1,2,34,4,'1',0,21,NULL,NULL,NULL);
 # Bullets
-REPLACE INTO `item_db_re` VALUES (13200,'Bullet','Bullet',10,1,NULL,2,'10',NULL,NULL,NULL,0x01000000,63,2,32768,NULL,'1',NULL,3,NULL,NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13201,'Silver_Bullet','Silver Bullet',10,15,NULL,2,'15',NULL,NULL,NULL,0x01000000,63,2,32768,NULL,'1',NULL,3,'bonus bAtkEle,Ele_Holy;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13202,'Shell_Of_Blood','Bloody Shell',10,30,NULL,2,'30',NULL,NULL,NULL,0x01000000,63,2,32768,NULL,'1',NULL,3,'bonus2 bAddEff,Eff_Bleeding,100;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13203,'Flare_Sphere','Flare Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x01000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Fire;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13204,'Lighting_Sphere','Lightning Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x01000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Wind;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13205,'Poison_Sphere','Poison Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x01000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13206,'Blind_Sphere','Blind Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x01000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13207,'Freezing_Sphere','Freezing Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x01000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Water;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (13208,'Gong_Bug','Sow Bug',10,0,NULL,20,'50',NULL,NULL,NULL,0x01000000,63,2,32768,NULL,'50',NULL,3,'bonus2 bAddEff,Eff_Stun,1000;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13200,'Bullet','Bullet',10,1,NULL,2,'10',NULL,NULL,NULL,0x41000000,63,2,32768,NULL,'1',NULL,3,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13201,'Silver_Bullet','Silver Bullet',10,15,NULL,2,'15',NULL,NULL,NULL,0x41000000,63,2,32768,NULL,'1',NULL,3,'bonus bAtkEle,Ele_Holy;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13202,'Shell_Of_Blood','Bloody Shell',10,30,NULL,2,'30',NULL,NULL,NULL,0x41000000,63,2,32768,NULL,'1',NULL,3,'bonus2 bAddEff,Eff_Bleeding,100;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13203,'Flare_Sphere','Flare Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x41000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Fire;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13204,'Lighting_Sphere','Lightning Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x41000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Wind;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13205,'Poison_Sphere','Poison Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x41000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13206,'Blind_Sphere','Blind Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x41000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13207,'Freezing_Sphere','Freezing Sphere',10,80,NULL,5,'50',NULL,NULL,NULL,0x41000000,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Water;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13208,'Gong_Bug','Sow Bug',10,0,NULL,20,'50',NULL,NULL,NULL,0x41000000,63,2,32768,NULL,'50',NULL,3,'bonus2 bAddEff,Eff_Stun,1000;',NULL,NULL);
 # Shurikens & Kunais
 REPLACE INTO `item_db_re` VALUES (13250,'Shuriken','Shuriken',10,4,NULL,5,'10',NULL,NULL,NULL,0x02000000,63,2,32768,NULL,'1',NULL,6,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (13251,'Nimbus_Shuriken','Nimbus Shuriken',10,10,NULL,5,'30',NULL,NULL,NULL,0x02000000,63,2,32768,NULL,'20',NULL,6,NULL,NULL,NULL);
@@ -8364,9 +8364,9 @@ REPLACE INTO `item_db_re` VALUES (18730,'Cryptura_Academy_Hat','Cryptura Academy
 REPLACE INTO `item_db_re` VALUES (18737,'Fortier_Mask','Fortier Masque',5,20,NULL,200,NULL,0,NULL,0,0xFFFFFFFF,63,2,512,NULL,'10',0,876,'bonus bUnbreakableHelm,0;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (18739,'Carnation_Hairband','Carnation Hairband',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,256,NULL,'0',1,878,'bonus bLuk,1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (18740,'Hair_Of_The_Strong','Hair Of The Strong',5,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'0',0,879,NULL,NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (18742,'C_MoonStar_Accessory','Moon and Stars',5,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'0',0,0,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (18742,'C_MoonStar_Accessory','Moon and Stars',5,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,2048,NULL,'0',0,881,NULL,'sc_start SC_MOONSTAR,-1,0;','sc_end SC_MOONSTAR;');
 REPLACE INTO `item_db_re` VALUES (18743,'Spirit_Of_Chung_E','Spirit Of Chung E',5,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'0',0,882,NULL,NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (18744,'C_World_Star','Twilight',5,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,2048,NULL,'0',0,0,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (18744,'C_World_Star','Twilight',5,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,7,2,2048,NULL,'0',0,883,NULL,'sc_start SC_SUPER_STAR,-1,0;','sc_end SC_SUPER_STAR;');
 REPLACE INTO `item_db_re` VALUES (18745,'Choco_Stick_In_Mouth','Choco Stick In Mouth',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'10',0,884,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (18746,'Chilly_Breath','Chilly Breath',5,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'10',0,885,'bonus bInt,1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (18747,'Eyes_Of_Ifrit','Eyes Of Ifrit',5,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,512,NULL,'0',0,886,'bonus bDex,1;',NULL,NULL);

+ 3 - 1
src/common/mmo.h

@@ -49,7 +49,7 @@
 #ifndef PACKETVER
 	#define PACKETVER 20130724
 	//#define PACKETVER 20130320
-	//#define PACKETVER 20111116
+	//#define PACKETVER 20120410
 #endif
 
 //Remove/Comment this line to disable sc_data saving. [Skotlex]
@@ -752,6 +752,8 @@ enum {
 	JOB_KAGEROU = 4211,
 	JOB_OBORO,
 
+	JOB_REBELLION = 4215,
+
 	JOB_MAX,
 };
 

+ 1 - 2
src/common/timer.h

@@ -25,9 +25,8 @@ typedef int (*TimerFunc)(int tid, unsigned int tick, int id, intptr_t data);
 struct TimerData {
 	unsigned int tick;
 	TimerFunc func;
-	int type;
+	unsigned int type;
 	int interval;
-	int heap_pos;
 
 	// general-purpose storage
 	int id;

+ 39 - 12
src/map/atcommand.c

@@ -945,7 +945,7 @@ ACMD_FUNC(jobchange)
 		upper = 0;
 
 		// Normal Jobs
-		for( i = JOB_NOVICE; i < JOB_MAX_BASIC && !found; i++ ){
+		for( i = JOB_NOVICE; i < JOB_MAX_BASIC && !found; i++ ) {
 			if (strncmpi(message, job_name(i), 16) == 0) {
 				job = i;
 				found = true;
@@ -953,7 +953,7 @@ ACMD_FUNC(jobchange)
 		}
 
 		// High Jobs, Babys and Third
-		for( i = JOB_NOVICE_HIGH; i < JOB_MAX && !found; i++ ){
+		for( i = JOB_NOVICE_HIGH; i < JOB_MAX && !found; i++ ) {
 			if (strncmpi(message, job_name(i), 16) == 0) {
 				job = i;
 				found = true;
@@ -970,8 +970,8 @@ ACMD_FUNC(jobchange)
 
     if (job == JOB_KNIGHT2 || job == JOB_CRUSADER2 || job == JOB_WEDDING || job == JOB_XMAS || job == JOB_SUMMER || job == JOB_HANBOK
         || job == JOB_LORD_KNIGHT2 || job == JOB_PALADIN2 || job == JOB_BABY_KNIGHT2 || job == JOB_BABY_CRUSADER2 || job == JOB_STAR_GLADIATOR2
-		 || (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2)
-	){ // Deny direct transformation into dummy jobs
+		 || (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2))
+	{ // Deny direct transformation into dummy jobs
 		clif_displaymessage(fd, msg_txt(sd,923)); //"You can not change to this job by command."
 		return 0;
 	}
@@ -5273,20 +5273,47 @@ ACMD_FUNC(follow)
 
 
 /*==========================================
- * @dropall by [MouseJstr]
- * Drop all your possession on the ground
+ * @dropall by [MouseJstr] and [Xantara]
+ * Drops all your possession on the ground based on item type
  *------------------------------------------*/
 ACMD_FUNC(dropall)
 {
-	int i;
+	int8 type = -1;
+	uint16 i, count = 0;
+	struct item_data *item_data = NULL;
+
 	nullpo_retr(-1, sd);
-	for (i = 0; i < MAX_INVENTORY; i++) {
-	if (sd->status.inventory[i].amount) {
-		if(sd->status.inventory[i].equip != 0)
-			pc_unequipitem(sd, i, 3);
-			pc_dropitem(sd,  i, sd->status.inventory[i].amount);
+	
+	if( message[0] ) {
+		type = atoi(message);
+		if( type != -1 && type != IT_HEALING && type != IT_USABLE && type != IT_ETC && type != IT_WEAPON &&
+			type != IT_ARMOR && type != IT_CARD && type != IT_PETEGG && type != IT_PETARMOR && type != IT_AMMO )
+		{
+			clif_displaymessage(fd, msg_txt(sd,1492));
+			clif_displaymessage(fd, msg_txt(sd,1493));
+			return -1;
+		}
+	}
+
+	for( i = 0; i < MAX_INVENTORY; i++ ) {
+		if( sd->status.inventory[i].amount ) {
+			if( (item_data = itemdb_exists(sd->status.inventory[i].nameid)) == NULL ) {
+				ShowDebug("Non-existant item %d on dropall list (account_id: %d, char_id: %d)\n", sd->status.inventory[i].nameid, sd->status.account_id, sd->status.char_id);
+				continue;
+			}
+			if( !pc_candrop(sd,&sd->status.inventory[i]) )
+				continue;
+
+			if( type == -1 || type == (uint8)item_data->type ) {
+				if( sd->status.inventory[i].equip != 0 )
+					pc_unequipitem(sd, i, 3);
+				count += sd->status.inventory[i].amount;
+				pc_dropitem(sd, i, sd->status.inventory[i].amount);
+			}
 		}
 	}
+	sprintf(atcmd_output, msg_txt(sd,1494), count); // %d items are dropped!
+	clif_displaymessage(fd, atcmd_output); 
 	return 0;
 }
 

+ 98 - 13
src/map/battle.c

@@ -401,6 +401,9 @@ int64 battle_attr_fix(struct block_list *src, struct block_list *target, int64 d
 			if( tsc->data[SC_WIND_INSIGNIA]) ratio += 150;
 			status_change_end(target, SC_MAGNETICFIELD, INVALID_TIMER); //freed if received earth dmg
 			break;
+		case ELE_NEUTRAL:
+			if( tsc->data[SC_ANTI_M_BLAST] ) ratio += tsc->data[SC_ANTI_M_BLAST]->val2;
+			break;
 		}
 	} //end tsc check
 	if (src && src->type == BL_PC) {
@@ -637,6 +640,11 @@ int battle_calc_cardfix(int attack_type, struct block_list *src, struct block_li
 					}
 				}
 
+#ifndef RENEWAL
+				if( flag&BF_LONG )
+					cardfix = cardfix * ( 100 + sd->bonus.long_attack_atk_rate ) / 100;
+#endif
+
 				if( (left&1) && cardfix_ != 1000 )
 					bccDAMAGE_RATE(cardfix_)
 				else if( cardfix != 1000 )
@@ -2012,7 +2020,7 @@ static bool is_attack_critical(struct Damage wd, struct block_list *src, struct
  */
 static int is_attack_piercing(struct Damage wd, struct block_list *src, struct block_list *target, int skill_id, int skill_lv, short weapon_position)
 {
-	if (skill_id == MO_INVESTIGATE)
+	if (skill_id == MO_INVESTIGATE || skill_id == RL_MASS_SPIRAL)
 		return 2;
 
 	if(src != NULL) {
@@ -2175,7 +2183,10 @@ static bool is_attack_hitting(struct Damage wd, struct block_list *src, struct b
 		case GC_VENOMPRESSURE:
 			hitrate += 10 + 4 * skill_lv;
 			break;
-
+		case RL_SLUGSHOT:
+			if (distance_bl(src,target) > 3)
+				hitrate -= (10 - (skill_lv - 1));
+			break;
 	}
 	else if( sd && wd.type&0x08 && wd.div_ == 2 ) // +1 hit per level of Double Attack on a successful double attack (making sure other multi attack skills do not trigger this) [helvetica]
 		hitrate += pc_checkskill(sd,TF_DOUBLE);
@@ -2342,6 +2353,10 @@ static int battle_get_weapon_element(struct Damage wd, struct block_list *src, s
 			if (!sd)
 				element = ELE_NEUTRAL; //forced neutral for monsters
 			break;
+		case RL_H_MINE:
+			if (sd && sd->skill_id_old == RL_FLICKER) //Force RL_H_MINE deals fire damage if ativated by RL_FLICKER
+				element = ELE_FIRE;
+			break;
 		case KO_KAIHOU:
 			if( sd ){
 				ARR_FIND(1, 6, i, sd->talisman[i] > 0);
@@ -2774,10 +2789,13 @@ static struct Damage battle_calc_multi_attack(struct Damage wd, struct block_lis
 				wd.type = 0x08;
 			}
 		}
-		else if( sd->weapontype1 == W_REVOLVER && (skill_lv = pc_checkskill(sd,GS_CHAINACTION)) > 0 && rnd()%100 < 5*skill_lv )
+		else if( ((sd->weapontype1 == W_REVOLVER && (skill_lv = pc_checkskill(sd,GS_CHAINACTION)) > 0) //Normal Chain Action effect
+			|| (sd && sc->count && sc->data[SC_E_CHAIN] && (skill_lv = sc->data[SC_E_CHAIN]->val2) > 0)) //Chain Action of ETERNAL_CHAIN
+			&& rnd()%100 < 5*skill_lv ) //Sucess rate
 		{
 			wd.div_ = skill_get_num(GS_CHAINACTION,skill_lv);
 			wd.type = 0x08;
+			sc_start(src,src,SC_QD_SHOT_READY,100,target->id,skill_get_time(RL_QD_SHOT,1));
 		}
 		else if(sc && sc->data[SC_FEARBREEZE] && sd->weapontype1==W_BOW
 			&& (i = sd->equip_index[EQI_AMMO]) >= 0 && sd->inventory_data[i] && sd->status.inventory[i].amount > 1)
@@ -3227,8 +3245,8 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s
 			RE_LVL_DMOD(150); // Base level bonus.
 			break;
 		/**
-			* GC Guilotine Cross
-			**/
+		 * GC Guilotine Cross
+		 **/
 		case GC_CROSSIMPACT:
 			skillratio += 900 + 100 * skill_lv;
 			RE_LVL_DMOD(120);
@@ -3623,6 +3641,58 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s
 			skillratio += -100 + 100 * skill_lv + 3 * status_get_lv(src);
 			skillratio = (skillratio * status_get_lv(src)) / 120;
 			break;
+		/**
+		 * Rebellion
+		 **/
+		case RL_MASS_SPIRAL:
+			skillratio += -100 + (200 * skill_lv);
+			break;
+		case RL_FIREDANCE:
+			skillratio += -100 + (100 * skill_lv);
+			skillratio += (skillratio * status_get_lv(src)) / 300; //(custom)
+			break;
+		case RL_BANISHING_BUSTER:
+			skillratio += -100 + (400 * skill_lv); //(custom)
+			break;
+		case RL_S_STORM:
+			skillratio += -100 + (200 * skill_lv); //(custom)
+			break;
+		case RL_SLUGSHOT:
+			{
+				uint16 w = 50;
+				if (sd->equip_index[EQI_AMMO] > 0) {
+					uint16 idx = sd->equip_index[EQI_AMMO];
+					struct item_data *id = NULL;
+					if (id = itemdb_exists(sd->status.inventory[idx].nameid))
+						w = id->weight;
+				}
+				w /= 10;
+				skillratio += -100 + (max(w,1) * skill_lv * 30); //(custom)
+			}
+			break;
+		case RL_D_TAIL:
+			skillratio += -100 + (2500 + 500 * skill_lv );
+			if (sd && &sd->c_marker)
+				skillratio /= max(sd->c_marker.count,1);
+			break;
+		case RL_R_TRIP:
+			skillratio += -100 + (150 * skill_lv); //(custom)
+			break;
+		case RL_H_MINE:
+			skillratio += 100 + (200 * skill_lv);
+			//If damaged by Flicker
+			if (sd && sd->skill_id_old == RL_FLICKER && tsc && tsc->data[SC_H_MINE] && tsc->data[SC_H_MINE]->val2 == src->id)
+				skillratio += 400 + (300 * skill_lv);
+			break;
+		case RL_HAMMER_OF_GOD:
+			skillratio += -100 + (2000 + (skill_lv - 1) * 500);
+			break;
+		case RL_QD_SHOT:
+			skillratio += -100 + (max(pc_checkskill(sd,GS_CHAINACTION),1) * status_get_dex(src) / 5); //(custom)
+			break;
+		case RL_FIRE_RAIN:
+			skillratio += -100 + 500 + (200 * (skill_lv - 1)) + status_get_dex(src); //(custom)
+			break;
 	}
 	return skillratio;
 }
@@ -3818,6 +3888,14 @@ struct Damage battle_attack_sc_bonus(struct Damage wd, struct block_list *src, u
 				ATK_ADD(wd.damage, wd.damage2, sc->data[SC_FLASHCOMBO]->val2);
 				RE_ALLATK_ADD(wd, sc->data[SC_FLASHCOMBO]->val2);
 			}
+			if(sc->data[SC_HEAT_BARREL]) {
+				ATK_ADD(wd.damage, wd.damage2, sc->data[SC_HEAT_BARREL]->val2);
+				RE_ALLATK_ADD(wd, sc->data[SC_HEAT_BARREL]->val2);
+			}
+			if(sc->data[SC_P_ALTER]) {
+				ATK_ADD(wd.damage, wd.damage2, sc->data[SC_P_ALTER]->val2);
+				RE_ALLATK_ADD(wd, sc->data[SC_P_ALTER]->val2);
+			}
 		}
 	return wd;
 }
@@ -3902,12 +3980,16 @@ struct Damage battle_calc_defense_reduction(struct Damage wd, struct block_list
 #else
 		vit_def = def2;
 #endif
-		if((battle_check_undead(sstatus->race,sstatus->def_ele) || sstatus->race==RC_DEMON) && //This bonus already doesnt work vs players
-			src->type == BL_MOB && (skill=pc_checkskill(tsd,AL_DP)) > 0)
+		if( src->type == BL_MOB && (battle_check_undead(sstatus->race,sstatus->def_ele) || sstatus->race==RC_DEMON) && //This bonus already doesnt work vs players
+			(skill=pc_checkskill(tsd,AL_DP)) > 0 )
 			vit_def += skill*(int)(3 +(tsd->status.base_level+1)*0.04);   // submitted by orn
 		if( src->type == BL_MOB && (skill=pc_checkskill(tsd,RA_RANGERMAIN))>0 &&
 			(sstatus->race == RC_BRUTE || sstatus->race == RC_FISH || sstatus->race == RC_PLANT) )
 			vit_def += skill*5;
+		if( src->type == BL_MOB && //Only affected from mob
+			tsc && tsc->count && tsc->data[SC_P_ALTER] && //If the Platinum Alter is activated
+			(battle_check_undead(sstatus->race,sstatus->def_ele) || sstatus->race==RC_UNDEAD) )	//Undead attacker
+			vit_def += tsc->data[SC_P_ALTER]->val3;
 	}
 	else { //Mob-Pet vit-eq
 #ifndef RENEWAL
@@ -3921,7 +4003,6 @@ struct Damage battle_calc_defense_reduction(struct Damage wd, struct block_list
 #endif
 	}
 
-
 	if (battle_config.weapon_defense_type) {
 		vit_def += def1*battle_config.weapon_defense_type;
 		def1 = 0;
@@ -3936,8 +4017,8 @@ struct Damage battle_calc_defense_reduction(struct Damage wd, struct block_list
 	if( def1 == -400 ) /* being hit by a gazillion units, -400 creates a division by 0 and subsequently crashes */
 		def1 = -399;
 	ATK_ADD2(wd.damage, wd.damage2,
-		is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_R) ?(def1/2):0,
-		is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L)?(def1/2):0
+		is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_R) ? (def1/2) : 0,
+		is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L) ? (def1/2) : 0
 	);
 	if( !attack_ignores_def(wd, src, target, skill_id, skill_lv, EQI_HAND_R) && !is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_R) )
 		wd.damage = wd.damage * (4000+def1) / (4000+10*def1) - vit_def;
@@ -3948,11 +4029,11 @@ struct Damage battle_calc_defense_reduction(struct Damage wd, struct block_list
 		if (def1 > 100) def1 = 100;
 		ATK_RATE2(wd.damage, wd.damage2,
 			attack_ignores_def(wd, src, target, skill_id, skill_lv, EQI_HAND_R) ?100:(is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_R) ? (int64)is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_R)*(def1+vit_def) : (100-def1)),
-			attack_ignores_def(wd, src, target, skill_id, skill_lv, EQI_HAND_L)?100:(is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L)? (int64)is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L)*(def1+vit_def) : (100-def1))
+			attack_ignores_def(wd, src, target, skill_id, skill_lv, EQI_HAND_L) ?100:(is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L) ? (int64)is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L)*(def1+vit_def) : (100-def1))
 		);
 		ATK_ADD2(wd.damage, wd.damage2,
 			attack_ignores_def(wd, src, target, skill_id, skill_lv, EQI_HAND_R) || is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_R) ?0:-vit_def,
-			attack_ignores_def(wd, src, target, skill_id, skill_lv, EQI_HAND_L) || is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L)?0:-vit_def
+			attack_ignores_def(wd, src, target, skill_id, skill_lv, EQI_HAND_L) || is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L) ?0:-vit_def
 		);
 #endif
 	return wd;
@@ -5623,6 +5704,9 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
 	case KO_MAKIBISHI:
 		md.damage = 20 * skill_lv;
 		break;
+	case RL_B_TRAP:
+		md.damage = (200 + status_get_int(src) + status_get_dex(src)) * skill_lv * 10; //(custom)
+		break;
 	}
 
 	if (nk&NK_SPLASHSPLIT){ // Divide ATK among targets
@@ -6467,6 +6551,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
 					case SR_RAMPAGEBLASTER:
 					case NC_COLDSLOWER:
 					case NC_SELFDESTRUCTION:
+					case RL_FIRE_RAIN:
 #ifdef RENEWAL
 					case KN_BOWLINGBASH:
 					case KN_SPEARSTAB:
@@ -6862,7 +6947,7 @@ static const struct _battle_data {
 	{ "max_heal_lv",                        &battle_config.max_heal_lv,                     11,     1,      INT_MAX,        },
 	{ "max_heal",                           &battle_config.max_heal,                        9999,   0,      INT_MAX,        },
 	{ "combo_delay_rate",                   &battle_config.combo_delay_rate,                100,    0,      INT_MAX,        },
-	{ "item_check",                         &battle_config.item_check,                      0,      0,      1,              },
+	{ "item_check",                         &battle_config.item_check,                      0,      0,      7,              },
 	{ "item_use_interval",                  &battle_config.item_use_interval,               100,    0,      INT_MAX,        },
 	{ "cashfood_use_interval",              &battle_config.cashfood_use_interval,           60000,  0,      INT_MAX,        },
 	{ "wedding_modifydisplay",              &battle_config.wedding_modifydisplay,           0,      0,      1,              },

+ 69 - 66
src/map/clif.c

@@ -2805,7 +2805,8 @@ void clif_updatestatus(struct map_session_data *sd,int type)
 	case SP_HP:
 		WFIFOL(fd,4)=sd->battle_status.hp;
 		// TODO: Won't these overwrite the current packet?
-		clif_hpmeter(sd);
+		if( map[sd->bl.m].hpmeter_visible )
+			clif_hpmeter(sd);
 		if( !battle_config.party_hp_mode && sd->status.party_id )
 			clif_party_hp(sd);
 		if( sd->bg_id )
@@ -6145,7 +6146,6 @@ void clif_bank_open(struct map_session_data *sd){
 	WFIFOW(fd,0) = 0x09b7;
 	WFIFOW(fd,2) = 0;
 	WFIFOSET(fd,4);
-        return; //TODO found out what going on here
 }
 
 /*
@@ -6156,19 +6156,18 @@ void clif_parse_BankOpen(int fd, struct map_session_data* sd) {
 	//TODO check if preventing trade or stuff like that
 	//also mark something in case char ain't available for saving, should we check now ?
 	if( !battle_config.feature_banking ) {
-		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1483));
+		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1496)); //Banking is disabled
 		return;
 	}    
 	else {
 		struct s_packet_db* info = &packet_db[sd->packet_ver][RFIFOW(fd,0)];
 		int aid = RFIFOL(fd,info->pos[0]); //unused should we check vs fd ?
-                sd->state.banking = 1;
+			sd->state.banking = 1;
 	}
-        //request save ?
+	//request save ?
 //      chrif_bankdata_request(sd->status.account_id, sd->status.char_id); 
-        //on succes open bank ?
+	//on succes open bank ?
 	clif_bank_open(sd);
-        return;
 }
 
 // 09B9 <unknow data> (ZC_ACK_CLOSE_BANKING) 
@@ -6180,7 +6179,6 @@ void clif_bank_close(struct map_session_data *sd){
 	WFIFOW(fd,0) = 0x09B9;
 	WFIFOW(fd,2) = 0;
 	WFIFOSET(fd,4);
-        return; //TODO found out what going on here
 }
 
 /*
@@ -6188,15 +6186,14 @@ void clif_bank_close(struct map_session_data *sd){
  * 09B8 <aid>L ??? (dunno just wild guess checkme)
  */
 void clif_parse_BankClose(int fd, struct map_session_data* sd) {       
-        struct s_packet_db* info = &packet_db[sd->packet_ver][RFIFOW(fd,0)];
-        int aid = RFIFOL(fd,info->pos[0]); //unused should we check vs fd ?
-        if( !battle_config.feature_banking ) {
-		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1483));
-                //still allow to go trough to not stuck player if we have disable it while they was in
+	struct s_packet_db* info = &packet_db[sd->packet_ver][RFIFOW(fd,0)];
+	int aid = RFIFOL(fd,info->pos[0]); //unused should we check vs fd ?
+	if( !battle_config.feature_banking ) {
+		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1496)); //Banking is disabled
+		//still allow to go trough to not stuck player if we have disable it while they was in
 	}
-        sd->state.banking = 0;
+	sd->state.banking = 0;
 	clif_bank_close(sd);
-        return;
 }
 
 /*
@@ -6204,23 +6201,23 @@ void clif_parse_BankClose(int fd, struct map_session_data* sd) {
   09A6 <Bank_Vault>Q <Reason>W (PACKET_ZC_BANKING_CHECK)
  */
 void clif_Bank_Check(struct map_session_data* sd) {
-        unsigned char buf[13];
-        struct s_packet_db* info;
-        int16 len;
-        int cmd = 0;
-        
+	unsigned char buf[13];
+	struct s_packet_db* info;
+	int16 len;
+	int cmd = 0;
+	
 	nullpo_retv(sd);
-        
-        cmd = packet_db_ack[sd->packet_ver][ZC_BANKING_CHECK];
-        if(!cmd) cmd = 0x09A6; //default
-        info = &packet_db[sd->packet_ver][cmd]; 
-        len = info->len;
+	
+	cmd = packet_db_ack[sd->packet_ver][ZC_BANKING_CHECK];
+	if(!cmd) cmd = 0x09A6; //default
+	info = &packet_db[sd->packet_ver][cmd]; 
+	len = info->len;
 //        sd->state.banking = 1; //mark opening and closing
 
-        WBUFW(buf,0) = cmd;
-        WBUFQ(buf,info->pos[0]) = sd->status.bank_vault; //testig value
-        WBUFW(buf,info->pos[1]) = 0; //reason
-        clif_send(buf,len,&sd->bl,SELF);       
+	WBUFW(buf,0) = cmd;
+	WBUFQ(buf,info->pos[0]) = sd->status.bank_vault; //testig value
+	WBUFW(buf,info->pos[1]) = 0; //reason
+	clif_send(buf,len,&sd->bl,SELF);       
 }
 
 /*
@@ -6231,7 +6228,7 @@ void clif_parse_BankCheck(int fd, struct map_session_data* sd) {
 	nullpo_retv(sd);
 	
 	if( !battle_config.feature_banking ) {
-		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1483));
+		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1496)); //Banking is disabled
 		return;
 	}
 	else {
@@ -6248,19 +6245,19 @@ void clif_parse_BankCheck(int fd, struct map_session_data* sd) {
  */
 void clif_bank_deposit(struct map_session_data *sd, enum e_BANKING_DEPOSIT_ACK reason) {
 	unsigned char buf[17];
-        struct s_packet_db* info;
-        int16 len;
-        int cmd =0;
-        
+	struct s_packet_db* info;
+	int16 len;
+	int cmd =0;
+	
 	nullpo_retv(sd);
-        
-        cmd = packet_db_ack[sd->packet_ver][ZC_ACK_BANKING_DEPOSIT];
-        if(!cmd) cmd = 0x09A8;
-        info = &packet_db[sd->packet_ver][cmd]; 
-        len = info->len;
-        
-        WBUFW(buf,0) = cmd;
-        WBUFW(buf,info->pos[0]) = (short)reason;	
+	
+	cmd = packet_db_ack[sd->packet_ver][ZC_ACK_BANKING_DEPOSIT];
+	if(!cmd) cmd = 0x09A8;
+	info = &packet_db[sd->packet_ver][cmd]; 
+	len = info->len;
+	
+	WBUFW(buf,0) = cmd;
+	WBUFW(buf,info->pos[0]) = (short)reason;	
 	WBUFQ(buf,info->pos[1]) = sd->status.bank_vault;/* money in the bank */
 	WBUFL(buf,info->pos[2]) = sd->status.zeny;/* how much zeny char has after operation */
 	clif_send(buf,len,&sd->bl,SELF);
@@ -6273,7 +6270,7 @@ void clif_bank_deposit(struct map_session_data *sd, enum e_BANKING_DEPOSIT_ACK r
  */
 void clif_parse_BankDeposit(int fd, struct map_session_data* sd) {
 	if( !battle_config.feature_banking ) {
-		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1483));
+		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1496)); //Banking is disabled
 		return;
 	}
 	else {
@@ -6281,11 +6278,11 @@ void clif_parse_BankDeposit(int fd, struct map_session_data* sd) {
 		int aid = RFIFOL(fd,info->pos[0]); //unused should we check vs fd ?
 		int money = RFIFOL(fd,info->pos[1]);
                 
-                if(sd->status.account_id == aid){
-                    money = max(0,money);
-                    enum e_BANKING_DEPOSIT_ACK reason = pc_bank_deposit(sd,money);
-                    clif_bank_deposit(sd,reason);
-                }
+		if(sd->status.account_id == aid){
+			money = max(0,money);
+			enum e_BANKING_DEPOSIT_ACK reason = pc_bank_deposit(sd,money);
+			clif_bank_deposit(sd,reason);
+		}
 	}
 }
 
@@ -6295,19 +6292,19 @@ void clif_parse_BankDeposit(int fd, struct map_session_data* sd) {
  */
 void clif_bank_withdraw(struct map_session_data *sd,enum e_BANKING_WITHDRAW_ACK reason) {
 	unsigned char buf[17];
-        struct s_packet_db* info;
-        int16 len;
-        int cmd;
-        
+	struct s_packet_db* info;
+	int16 len;
+	int cmd;
+
 	nullpo_retv(sd);
         
-        cmd = packet_db_ack[sd->packet_ver][ZC_ACK_BANKING_WITHDRAW];
-        if(!cmd) cmd = 0x09AA;
-        info = &packet_db[sd->packet_ver][cmd]; 
-        len = info->len;
+	cmd = packet_db_ack[sd->packet_ver][ZC_ACK_BANKING_WITHDRAW];
+	if(!cmd) cmd = 0x09AA;
+	info = &packet_db[sd->packet_ver][cmd]; 
+	len = info->len;
 
-        WBUFW(buf,0) = cmd;
-        WBUFW(buf,info->pos[0]) = (short)reason;	
+	WBUFW(buf,0) = cmd;
+	WBUFW(buf,info->pos[0]) = (short)reason;	
 	WBUFQ(buf,info->pos[1]) = sd->status.bank_vault;/* money in the bank */
 	WBUFL(buf,info->pos[2]) = sd->status.zeny;/* how much zeny char has after operation */
 
@@ -6320,18 +6317,18 @@ void clif_bank_withdraw(struct map_session_data *sd,enum e_BANKING_WITHDRAW_ACK
  */
 void clif_parse_BankWithdraw(int fd, struct map_session_data* sd) {	
 	if( !battle_config.feature_banking ) {
-		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1483));
+		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1496)); //Banking is disabled
 		return;
 	}
 	else {
 		struct s_packet_db* info = &packet_db[sd->packet_ver][RFIFOW(fd,0)];
 		int aid = RFIFOL(fd,info->pos[0]); //unused should we check vs fd ?
 		int money = RFIFOL(fd,info->pos[1]);
-                if(sd->status.account_id == aid){
-                    money = max(0,money);
-                    enum e_BANKING_WITHDRAW_ACK reason = pc_bank_withdraw(sd,money);
-                    clif_bank_withdraw(sd,reason);
-                }
+		if(sd->status.account_id == aid){
+			money = max(0,money);
+			enum e_BANKING_WITHDRAW_ACK reason = pc_bank_withdraw(sd,money);
+			clif_bank_withdraw(sd,reason);
+		}
 	}
 }
 
@@ -9602,6 +9599,11 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
 			clif_broadcast(&sd->bl, output, strlen(output) + 1, 0x10, SELF);
 		}
 
+		if( pc_has_permission(sd,PC_PERM_VIEW_HPMETER) ) {
+			map[sd->bl.m].hpmeter_visible++;
+			sd->state.hpmeter_visible = 1;
+		}
+
 		map_iwall_get(sd); // Updates Walls Info on this Map to Client
 		status_calc_pc(sd, false); // Some conditions are map-dependent so we must recalculate
 		sd->state.changemap = false;
@@ -14324,7 +14326,7 @@ void clif_parse_Mail_send(int fd, struct map_session_data *sd)
 	}
 
 	if (body_len)
-		safestrncpy(msg.body, (char*)RFIFOP(fd,RFIFOW(fd,info->pos[4])), body_len + 1);
+		safestrncpy(msg.body, (char*)RFIFOP(fd,info->pos[4]), body_len + 1);
 	else
 		memset(msg.body, 0x00, MAIL_BODY_LENGTH);
 
@@ -14463,7 +14465,8 @@ void clif_parse_Auction_setitem(int fd, struct map_session_data *sd){
 
 	if( !pc_can_give_items(sd) || sd->status.inventory[idx].expire_time ||
 			!sd->status.inventory[idx].identify ||
-				!itemdb_canauction(&sd->status.inventory[idx],pc_get_group_level(sd)) ) { // Quest Item or something else
+			!itemdb_available(sd->status.inventory[idx].nameid) ||
+			!itemdb_canauction(&sd->status.inventory[idx],pc_get_group_level(sd)) ) { // Quest Item or something else
 		clif_Auction_setitem(sd->fd, idx, true);
 		return;
 	}

+ 1 - 0
src/map/clif.h

@@ -336,6 +336,7 @@ enum useskill_fail_cause
 	USESKILL_FAIL_STYLE_CHANGE_FIGHTER = 81,
 	USESKILL_FAIL_STYLE_CHANGE_GRAPPLER = 82,
 	USESKILL_FAIL_THERE_ARE_NPC_AROUND = 83,
+	//USESKILL_FAIL_NEED_MORE_BULLET = 84,
 };
 
 enum clif_messages {

+ 7 - 3
src/map/itemdb.c

@@ -260,9 +260,10 @@ static void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask)
 		bclass[2] |= 1<<MAPID_TAEKWON;
 	if (jobmask & 1<<JOB_GUNSLINGER)
 		bclass[0] |= 1<<MAPID_GUNSLINGER;
-	if (jobmask & 1<<JOB_NINJA)
-		{bclass[0] |= 1<<MAPID_NINJA;
-		bclass[1] |= 1<<MAPID_NINJA;}//Kagerou/Oboro jobs can equip Ninja equips. [Rytech]
+	if (jobmask & 1<<JOB_NINJA) { //Kagerou/Oboro jobs can equip Ninja equips. [Rytech]
+		bclass[0] |= 1<<MAPID_NINJA;
+		bclass[1] |= 1<<MAPID_NINJA;
+	}
 	if (jobmask & 1<<26) //Bongun/Munak
 		bclass[0] |= 1<<MAPID_GANGSI;
 	if (jobmask & 1<<27) //Death Knight
@@ -271,6 +272,8 @@ static void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask)
 		bclass[2] |= 1<<MAPID_GANGSI;
 	if (jobmask & 1<<29) //Kagerou / Oboro
 		bclass[1] |= 1<<MAPID_NINJA;
+	if (jobmask & 1<<30) //Rebellion
+		bclass[1] |= 1<<MAPID_GUNSLINGER;
 }
 
 static void create_dummy_data(void)
@@ -1468,6 +1471,7 @@ void itemdb_reload(void)
 	for( sd = (struct map_session_data*)mapit_first(iter); mapit_exists(iter); sd = (struct map_session_data*)mapit_next(iter) ) {
 		memset(sd->item_delay, 0, sizeof(sd->item_delay));  // reset item delays
 		pc_setinventorydata(sd);
+		pc_check_available_item(sd); // Check for invalid(ated) items.
 		/* clear combo bonuses */
 		if( sd->combos.count ) {
 			aFree(sd->combos.bonus);

+ 3 - 2
src/map/mail.c

@@ -78,8 +78,9 @@ unsigned char mail_setitem(struct map_session_data *sd, int idx, int amount) {
 			return 1;
 		if( amount < 0 || amount > sd->status.inventory[idx].amount )
 			return 1;
-		if( !pc_can_give_items(sd) || sd->status.inventory[idx].expire_time 
-			|| !itemdb_canmail(&sd->status.inventory[idx],pc_get_group_level(sd)) 
+		if( !pc_can_give_items(sd) || sd->status.inventory[idx].expire_time
+			|| !itemdb_available(sd->status.inventory[idx].nameid)
+			|| !itemdb_canmail(&sd->status.inventory[idx],pc_get_group_level(sd))
 			|| (sd->status.inventory[idx].bound && !pc_can_give_bounded_items(sd)) )
 			return 1;
 

+ 9 - 0
src/map/map.c

@@ -1662,6 +1662,7 @@ int map_quit(struct map_session_data *sd) {
 		status_change_end(&sd->bl, SC_WEIGHT90, INVALID_TIMER);
 		status_change_end(&sd->bl, SC_SATURDAYNIGHTFEVER, INVALID_TIMER);
 		status_change_end(&sd->bl, SC_KYOUGAKU, INVALID_TIMER);
+		status_change_end(&sd->bl, SC_C_MARKER, INVALID_TIMER);
 		if (battle_config.debuff_on_logout&1) {
 			status_change_end(&sd->bl, SC_ORCISH, INVALID_TIMER);
 			status_change_end(&sd->bl, SC_STRIPWEAPON, INVALID_TIMER);
@@ -1677,6 +1678,10 @@ int map_quit(struct map_session_data *sd) {
 			// Both these statuses are removed on logout. [L0ne_W0lf]
 			status_change_end(&sd->bl, SC_SLOWCAST, INVALID_TIMER);
 			status_change_end(&sd->bl, SC_CRITICALWOUND, INVALID_TIMER);
+			status_change_end(&sd->bl, SC_HEAT_BARREL_AFTER, INVALID_TIMER);
+			status_change_end(&sd->bl, SC_H_MINE, INVALID_TIMER);
+			status_change_end(&sd->bl, SC_ANTI_M_BLAST, INVALID_TIMER);
+			status_change_end(&sd->bl, SC_B_TRAP, INVALID_TIMER);
 		}
 		if (battle_config.debuff_on_logout&2) {
 			status_change_end(&sd->bl, SC_MAXIMIZEPOWER, INVALID_TIMER);
@@ -1685,6 +1690,9 @@ int map_quit(struct map_session_data *sd) {
 			status_change_end(&sd->bl, SC_PRESERVE, INVALID_TIMER);
 			status_change_end(&sd->bl, SC_KAAHI, INVALID_TIMER);
 			status_change_end(&sd->bl, SC_SPIRIT, INVALID_TIMER);
+			status_change_end(&sd->bl, SC_HEAT_BARREL, INVALID_TIMER);
+			status_change_end(&sd->bl, SC_P_ALTER, INVALID_TIMER);
+			status_change_end(&sd->bl, SC_E_CHAIN, INVALID_TIMER);
 		}
 	}
 
@@ -1735,6 +1743,7 @@ int map_quit(struct map_session_data *sd) {
 	party_booking_delete(sd); // Party Booking [Spiria]
 	pc_makesavestatus(sd);
 	pc_clean_skilltree(sd);
+	pc_crimson_marker_clear(sd);
 	chrif_save(sd,1);
 	unit_free_pc(sd);
 	return 0;

+ 4 - 0
src/map/map.h

@@ -114,6 +114,7 @@ enum {
 	MAPID_BLACKSMITH,
 	MAPID_ASSASSIN,
 	MAPID_STAR_GLADIATOR,
+	MAPID_REBELLION = JOBL_2_1 | 0x09,
 	MAPID_KAGEROUOBORO = JOBL_2_1|0x0A,
 	MAPID_DEATH_KNIGHT = JOBL_2_1|0x0E,
 //2-2 Jobs
@@ -637,6 +638,9 @@ struct map_data {
 
 	/* rAthena Local Chat */
 	struct Channel *channel;
+	
+	/* speeds up clif_updatestatus processing by causing hpmeter to run only when someone with the permission can view it */
+	unsigned short hpmeter_visible;
 };
 
 /// Stores information about a remote map (for multi-mapserver setups).

+ 96 - 39
src/map/pc.c

@@ -39,6 +39,7 @@
 #include "script.h" // script_config
 #include "skill.h"
 #include "status.h" // struct status_data
+#include "storage.h"
 #include "pc.h"
 #include "pc_groups.h"
 #include "quest.h"
@@ -1287,6 +1288,7 @@ int pc_reg_received(struct map_session_data *sd)
 	if (!chrif_auth_finished(sd))
 		ShowError("pc_reg_received: Failed to properly remove player %d:%d from logging db!\n", sd->status.account_id, sd->status.char_id);
 
+	pc_check_available_item(sd); // Check for invalid(ated) items.
 	pc_load_combo(sd);
 
 	status_calc_pc(sd,1);
@@ -4347,8 +4349,8 @@ int pc_isUseitem(struct map_session_data *sd,int n)
 		sd->sc.data[SC__INVISIBILITY] ||
 		sd->sc.data[SC__MANHOLE] ||
 		sd->sc.data[SC_KAGEHUMI] ||
-		(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM)
-	    ))
+		(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM) ||
+		sd->sc.data[SC_HEAT_BARREL_AFTER]))
 		return 0;
 	
 	if (!pc_isItemClass(sd,item))
@@ -5231,6 +5233,7 @@ int pc_jobid2mapid(unsigned short b_class)
 		case JOB_STAR_GLADIATOR:        return MAPID_STAR_GLADIATOR;
 		case JOB_KAGEROU:
 		case JOB_OBORO:                 return MAPID_KAGEROUOBORO;
+		case JOB_REBELLION:             return MAPID_REBELLION;
 		case JOB_DEATH_KNIGHT:          return MAPID_DEATH_KNIGHT;
 	//2-2 Jobs
 		case JOB_CRUSADER:              return MAPID_CRUSADER;
@@ -5372,6 +5375,7 @@ int pc_mapid2jobid(unsigned short class_, int sex)
 		case MAPID_ASSASSIN:              return JOB_ASSASSIN;
 		case MAPID_STAR_GLADIATOR:        return JOB_STAR_GLADIATOR;
 		case MAPID_KAGEROUOBORO:          return sex?JOB_KAGEROU:JOB_OBORO;
+		case MAPID_REBELLION:             return JOB_REBELLION;
 		case MAPID_DEATH_KNIGHT:          return JOB_DEATH_KNIGHT;
 	//2-2 Jobs
 		case MAPID_CRUSADER:              return JOB_CRUSADER;
@@ -5692,6 +5696,9 @@ const char* job_name(int class_)
 	case JOB_OBORO:
 		return msg_txt(NULL,653 - JOB_KAGEROU+class_);
 
+	case JOB_REBELLION:
+		return msg_txt(NULL,695);
+
 	default:
 		return msg_txt(NULL,655);
 	}
@@ -8649,7 +8656,11 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
 		return 0;
 	}
 
-	if( sd->sc.count && sd->sc.data[SC_PYROCLASTIC] && sd->inventory_data[n]->type == IT_WEAPON ) {
+	if( sd->sc.count && (
+		(sd->sc.data[SC_PYROCLASTIC] && sd->inventory_data[n]->type == IT_WEAPON) ||
+		sd->sc.data[SC_BERSERK] || 
+		sd->sc.data[SC_SATURDAYNIGHTFEVER]) )
+	{
 		clif_equipitemack(sd,0,0,0);
 		return 0;
 	}
@@ -8671,11 +8682,6 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
 		return 0;
 	}
 
-	if (sd->sc.data[SC_BERSERK] || sd->sc.data[SC_SATURDAYNIGHTFEVER]) {
-		clif_equipitemack(sd,n,0,0);	// fail
-		return 0;
-	}
-
 	if(pos == EQP_ACC) { //Accesories should only go in one of the two,
 		pos = req_pos&EQP_ACC;
 		if (pos == EQP_ACC) //User specified both slots..
@@ -8873,6 +8879,12 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) {
 		clif_unequipitemack(sd,n,0,0);
 		return 0;
 	}
+	if (&sd->sc) {
+		if (sd->sc.data[SC_HEAT_BARREL])
+			status_change_end(&sd->bl,SC_HEAT_BARREL,INVALID_TIMER);
+		if (sd->sc.data[SC_P_ALTER] && (sd->inventory_data[n]->type == IT_WEAPON || sd->inventory_data[n]->type == IT_AMMO))
+			status_change_end(&sd->bl,SC_P_ALTER,INVALID_TIMER);
+	}
 
 	if(battle_config.battle_log)
 		ShowInfo("unequip %d %x:%x\n",n,pc_equippoint(sd,n),sd->status.inventory[n].equip);
@@ -9014,46 +9026,26 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) {
 }
 
 /*==========================================
- * Checking if player (sd) have unauthorize, invalide item
- * on inventory, cart, equiped for the map (item_noequip)
+ * Checking if player (sd) has an invalid item
+ * and is unequiped on map load (item_noequip)
  *------------------------------------------*/
-int pc_checkitem(struct map_session_data *sd)
-{
-	int i,id,calc_flag = 0;
+int pc_checkitem(struct map_session_data *sd) {
+	int i, calc_flag = 0;
+	struct item it;
 
 	nullpo_ret(sd);
 
 	if( sd->state.vending ) //Avoid reorganizing items when we are vending, as that leads to exploits (pointed out by End of Exam)
 		return 0;
 
-	if( battle_config.item_check ) {// check for invalid(ated) items
-		for( i = 0; i < MAX_INVENTORY; i++ ) {
-			id = sd->status.inventory[i].nameid;
-
-			if( id && !itemdb_available(id) ) {
-				ShowWarning("Removed invalid/disabled item id %d from inventory (amount=%d, char_id=%d).\n", id, sd->status.inventory[i].amount, sd->status.char_id);
-				pc_delitem(sd, i, sd->status.inventory[i].amount, 0, 0, LOG_TYPE_OTHER);
-			}
-		}
-
-		for( i = 0; i < MAX_CART; i++ ) {
-			id = sd->status.cart[i].nameid;
+	for( i = 0; i < MAX_INVENTORY; i++ ) {
+		it = sd->status.inventory[i];
 
-			if( id && !itemdb_available(id) ) {
-				ShowWarning("Removed invalid/disabled item id %d from cart (amount=%d, char_id=%d).\n", id, sd->status.cart[i].amount, sd->status.char_id);
-				pc_cart_delitem(sd, i, sd->status.cart[i].amount, 0, LOG_TYPE_OTHER);
-			}
-		}
-	}
-
-	for( i = 0; i < MAX_INVENTORY; i++) {
-		if( !(&sd->status.inventory[i]) || sd->status.inventory[i].nameid == 0 )
+		if( it.nameid == 0 )
 			continue;
-
-		if( !sd->status.inventory[i].equip )
+		if( !it.equip )
 			continue;
-
-		if( sd->status.inventory[i].equip&~pc_equippoint(sd,i) ) {
+		if( it.equip&~pc_equippoint(sd,i) ) {
 			pc_unequipitem(sd, i, 2);
 			calc_flag = 1;
 			continue;
@@ -9074,6 +9066,57 @@ int pc_checkitem(struct map_session_data *sd)
 	return 0;
 }
 
+/*==========================================
+ * Checks for unavailable items and removes them.
+ *------------------------------------------*/
+int pc_check_available_item(struct map_session_data *sd) {
+	int i, it;
+	char output[256];
+
+	nullpo_ret(sd);
+
+	if( battle_config.item_check&1 ) { // Check for invalid(ated) items in inventory.
+		for( i = 0; i < MAX_INVENTORY; i++ ) {
+			it = sd->status.inventory[i].nameid;
+
+			if( it && !itemdb_available(it) ) {
+				sprintf(output, msg_txt(sd, 681), it); // Item %d has been removed from your inventory.
+				clif_displaymessage(sd->fd, output);
+				ShowWarning("Removed invalid/disabled item id %d from inventory (amount=%d, char_id=%d).\n", it, sd->status.inventory[i].amount, sd->status.char_id);
+				pc_delitem(sd, i, sd->status.inventory[i].amount, 0, 0, LOG_TYPE_OTHER);
+			}
+		}
+	}
+
+	if( battle_config.item_check&2 ) { // Check for invalid(ated) items in cart.
+		for( i = 0; i < MAX_CART; i++ ) {
+			it = sd->status.cart[i].nameid;
+
+			if( it && !itemdb_available(it) ) {
+				sprintf(output, msg_txt(sd, 682), it); // Item %d has been removed from your cart.
+				clif_displaymessage(sd->fd, output);
+				ShowWarning("Removed invalid/disabled item id %d from cart (amount=%d, char_id=%d).\n", it, sd->status.cart[i].amount, sd->status.char_id);
+				pc_cart_delitem(sd, i, sd->status.cart[i].amount, 0, LOG_TYPE_OTHER);
+			}
+		}
+	}
+
+	if( battle_config.item_check&4 ) { // Check for invalid(ated) items in storage.
+		for( i = 0; i < MAX_STORAGE; i++ ) {
+			it = sd->status.storage.items[i].nameid;
+
+			if( it && !itemdb_available(it) ) {
+				sprintf(output, msg_txt(sd, 683), it); // Item %d has been removed from your storage.
+				clif_displaymessage(sd->fd, output);
+				ShowWarning("Removed invalid/disabled item id %d from storage (amount=%d, char_id=%d).\n", it, sd->status.storage.items[i].amount, sd->status.char_id);
+				storage_delitem(sd, i, sd->status.storage.items[i].amount);
+			}
+ 		}
+	}
+
+	return 0;
+}
+
 /*==========================================
  * Update PVP rank for sd1 in cmp to sd2
  *------------------------------------------*/
@@ -10250,6 +10293,7 @@ void pc_damage_log_clear(struct map_session_data *sd, int id)
 	}
 }
 
+
 enum e_BANKING_DEPOSIT_ACK pc_bank_deposit(struct map_session_data *sd, int money) {
 	unsigned int limit_check = money+sd->status.bank_vault;
 	
@@ -10277,7 +10321,7 @@ enum e_BANKING_WITHDRAW_ACK pc_bank_withdraw(struct map_session_data *sd, int mo
 		return BWA_NO_MONEY;
 	} else if ( limit_check > MAX_ZENY ) {
 		/* no official response for this scenario exists. */
-		clif_colormes(sd,COLOR_RED,msg_txt(sd,1482));
+		clif_colormes(sd,color_table[COLOR_RED],msg_txt(sd,1495)); //You can't withdraw that much money
 		return BWA_UNKNOWN_ERROR;
 	}
 	
@@ -10290,6 +10334,19 @@ enum e_BANKING_WITHDRAW_ACK pc_bank_withdraw(struct map_session_data *sd, int mo
 	return BWA_SUCCESS;
 }
 
+void pc_crimson_marker_clear(struct map_session_data *sd) {
+	uint8 i;
+
+	if (!sd || !(&sd->c_marker) || !sd->c_marker.target)
+		return;
+
+	for (i = 0; i < MAX_SKILL_CRIMSON_MARKER; i++) {
+		struct block_list *bl = NULL;
+		if (sd->c_marker.target[i] && (bl = map_id2bl(sd->c_marker.target[i])))
+			status_change_end(bl,SC_C_MARKER,INVALID_TIMER);
+	}
+}
+
 /*==========================================
  * pc Init/Terminate
  *------------------------------------------*/

+ 18 - 9
src/map/pc.h

@@ -193,6 +193,7 @@ struct map_session_data {
 		unsigned int warping : 1;//states whether you're in the middle of a warp processing
 		unsigned int permanent_speed : 1; // When 1, speed cannot be changed through status_calc_pc().
 		unsigned int banking : 1; //1 when we using the banking system 0 when closed
+		unsigned int hpmeter_visible : 1;
 	} state;
 	struct {
 		unsigned char no_weapon_damage, no_magic_damage, no_misc_damage;
@@ -545,6 +546,11 @@ struct map_session_data {
 		int id;
 	} dmglog[DAMAGELOG_SIZE_PC];
 
+	struct s_crimson_marker {
+		int target[MAX_SKILL_CRIMSON_MARKER]; //Target id storage
+		uint8 count; //Count of target for skill like RL_D_TAIL
+	} c_marker;
+	bool flicker;
 };
 
 
@@ -680,7 +686,7 @@ struct {
 #define pc_isinvisible(sd)    ( (sd)->sc.option&OPTION_INVISIBLE )
 #define pc_is50overweight(sd) ( (sd)->weight*100 >= (sd)->max_weight*battle_config.natural_heal_weight_rate )
 #define pc_is90overweight(sd) ( (sd)->weight*10 >= (sd)->max_weight*9 )
-#define pc_maxparameter(sd)   ( ((((sd)->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO) || (sd)->class_&JOBL_THIRD ? ((sd)->class_&JOBL_BABY ? battle_config.max_baby_third_parameter : battle_config.max_third_parameter) : ((sd)->class_&JOBL_BABY ? battle_config.max_baby_parameter : battle_config.max_parameter)) )
+#define pc_maxparameter(sd)   ( ((((sd)->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO) || ((sd)->class_&MAPID_UPPERMASK) == MAPID_REBELLION || (sd)->class_&JOBL_THIRD ? ((sd)->class_&JOBL_BABY ? battle_config.max_baby_third_parameter : battle_config.max_third_parameter) : ((sd)->class_&JOBL_BABY ? battle_config.max_baby_parameter : battle_config.max_parameter)) )
 /**
  * Ranger
  **/
@@ -699,14 +705,14 @@ struct {
 	1<<(sd)->status.weapon:(1<<(sd)->weapontype1)|(1<<(sd)->weapontype2)|(1<<(sd)->status.weapon)))
 //Checks if the given class value corresponds to a player class. [Skotlex]
 //JOB_NOVICE isn't checked for class_ is supposed to be unsigned
-#define pcdb_checkid_sub(class_) \
-( \
-	( (class_) <  JOB_MAX_BASIC ) \
-||	( (class_) >= JOB_NOVICE_HIGH    && (class_) <= JOB_DARK_COLLECTOR ) \
-||	( (class_) >= JOB_RUNE_KNIGHT    && (class_) <= JOB_MECHANIC_T2    ) \
-||	( (class_) >= JOB_BABY_RUNE      && (class_) <= JOB_BABY_MECHANIC2 ) \
-||	( (class_) >= JOB_SUPER_NOVICE_E && (class_) <= JOB_SUPER_BABY_E   ) \
-||	( (class_) >= JOB_KAGEROU        && (class_) <  JOB_MAX            ) \
+#define pcdb_checkid_sub(class_) ( \
+	( (class_) < JOB_MAX_BASIC ) || \
+	( (class_) >= JOB_NOVICE_HIGH    && (class_) <= JOB_DARK_COLLECTOR ) || \
+	( (class_) >= JOB_RUNE_KNIGHT    && (class_) <= JOB_MECHANIC_T2    ) || \
+	( (class_) >= JOB_BABY_RUNE      && (class_) <= JOB_BABY_MECHANIC2 ) || \
+	( (class_) >= JOB_SUPER_NOVICE_E && (class_) <= JOB_SUPER_BABY_E   ) || \
+	( (class_) >= JOB_KAGEROU        && (class_) <= JOB_OBORO          ) || \
+	( (class_) >= JOB_REBELLION      && (class_) <  JOB_MAX            ) \
 )
 #define pcdb_checkid(class_) pcdb_checkid_sub((unsigned int)class_)
 
@@ -860,6 +866,7 @@ int pc_resethate(struct map_session_data*);
 int pc_equipitem(struct map_session_data*,int,int);
 int pc_unequipitem(struct map_session_data*,int,int);
 int pc_checkitem(struct map_session_data*);
+int pc_check_available_item(struct map_session_data *sd);
 int pc_useitem(struct map_session_data*,int);
 
 int pc_skillatk_bonus(struct map_session_data *sd, uint16 skill_id);
@@ -1014,6 +1021,8 @@ void pc_damage_log_clear(struct map_session_data *sd, int id);
 enum e_BANKING_DEPOSIT_ACK pc_bank_deposit(struct map_session_data *sd, int money);
 enum e_BANKING_WITHDRAW_ACK pc_bank_withdraw(struct map_session_data *sd, int money);
 
+void pc_crimson_marker_clear(struct map_session_data *sd);
+
 #if defined(RENEWAL_DROP) || defined(RENEWAL_EXP)
 int pc_level_penalty_mod(struct map_session_data *sd, int mob_level, uint32 mob_race, uint32 mob_mode, int type);
 #endif

+ 383 - 107
src/map/skill.c

@@ -267,6 +267,7 @@ int skill_get_cooldown_(struct map_session_data *sd, int id, int lv) {
 }
 
 int skill_frostjoke_scream(struct block_list *bl,va_list ap);
+int skill_check_target_c_marker(struct block_list *bl,va_list ap);
 int skill_attack_area(struct block_list *bl,va_list ap);
 struct skill_unit_group *skill_locate_element_field(struct block_list *bl); // [Skotlex]
 int skill_graffitiremover(struct block_list *bl, va_list ap); // [Valaris]
@@ -929,8 +930,8 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint
 						sc_start4(src,bl,SC_DPOISON,sce->val2, sce->val1,src->id,0,0,
 							skill_get_time2(ASC_EDP,sce->val1));
 				}
-		}
-		break;
+			}
+			break;
 
 	case SM_BASH:
 		if( sd && skill_lv > 5 && pc_checkskill(sd,SM_FATALBLOW)>0 ){
@@ -1494,6 +1495,63 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint
 		if( sc_start(src,bl,SC_ILLUSIONDOPING,10 * skill_lv,skill_lv,skill_get_time(skill_id, skill_lv)) ) //Custom rate
 			sc_start(src,bl,SC_HALLUCINATION,100,skill_lv,skill_get_time(skill_id, skill_lv));
 		break;
+
+	case RL_MASS_SPIRAL:
+		sc_start(src,bl,SC_BLEEDING,10 * skill_lv + rnd()%50,skill_lv,skill_get_time2(skill_id,skill_lv)); //(custom)
+		break;
+	case RL_SLUGSHOT:
+		if (bl->type != BL_PC)
+			sc_start(src,bl,SC_STUN,10 * skill_lv + rnd()%50,skill_lv,skill_get_time2(skill_id,skill_lv)); //(custom)
+		else if (dstsd) {
+			pc_setsit(dstsd);
+			clif_sitting(bl);
+		}
+		break;
+	case RL_BANISHING_BUSTER:
+		if (dstsd && tsc) {
+			uint16 i = 0;
+			uint8 n = skill_lv * 2 + 2; //4, 6, 8, 10, 12
+			for (i = 0; i < SC_MAX && n > 0; i++) {
+				if (tsc->data[i] && rnd()%400 < status_get_dex(src)) { //(custom)
+					status_change_end(bl,(sc_type)i,INVALID_TIMER);
+					n--;
+				}
+			}
+		}
+		break;
+	case RL_S_STORM:
+		if (dstsd) {
+			uint8 i = 0, n, rand_pos[EQI_MAX];
+			uint16 pos[] = { EQP_HEAD_LOW, EQP_HEAD_MID, EQP_HEAD_TOP, EQP_HAND_R, EQP_HAND_L, EQP_ARMOR, EQP_SHOES, EQP_GARMENT, EQP_ACC_L, EQP_ACC_R };
+			n = cap_value(skill_lv,2,ARRAYLENGTH(pos));
+
+			while (i < n) {
+				uint8 res = rnd()%ARRAYLENGTH(pos);
+				if (i && res == rand_pos[i-1]) //Make sure the value is not same with previous!
+					continue;
+				
+				rand_pos[i] = res;
+				skill_break_equip(src,bl,pos[res],(status_get_dex(src)*skill_lv*10)-(status_get_agi(bl)*20),BCT_ENEMY); //(custom)
+				i++;
+			}
+		}
+		break;
+	case RL_AM_BLAST:
+		sc_start(src,bl,SC_ANTI_M_BLAST,10 * skill_lv + rnd()%50,skill_lv,skill_get_time2(skill_id,skill_lv)); //(custom)
+		break;
+	case RL_B_TRAP:
+		if (sd && sd->skill_id_old == RL_FLICKER && tsc && tsc->data[SC_B_TRAP])
+			status_change_end(bl,SC_B_TRAP,INVALID_TIMER);
+		break;
+
+	case RL_HAMMER_OF_GOD:
+		sc_start(src,bl,SC_STUN,100,skill_lv,skill_get_time2(skill_id,skill_lv));
+	case RL_D_TAIL:
+	case RL_QD_SHOT:
+		status_change_end(bl,SC_C_MARKER,INVALID_TIMER);
+		if (sc->data[SC_QD_SHOT_READY])
+			status_change_end(bl,SC_QD_SHOT_READY,INVALID_TIMER);
+		break;
 	} //end switch skill_id
 
 	if (md && battle_config.summons_trigger_autospells && md->master_id && md->special_state.ai)
@@ -2637,6 +2695,7 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list *
 			dmg.blewcount = 0; //only pushback when it hit for other
 		break;
 	}
+
 	switch(skill_id){
 	case CR_GRANDCROSS:
 	case NPC_GRANDDARKNESS:
@@ -2760,7 +2819,7 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list *
 		break;
 	case WZ_SIGHTBLASTER:
 		dmg.dmotion = clif_skill_damage(src,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag&SD_LEVEL?-1:skill_lv, 5);
-			break;
+		break;
 	case AB_DUPLELIGHT_MELEE:
 	case AB_DUPLELIGHT_MAGIC:
 		dmg.amotion = 300;/* makes the damage value not overlap with previous damage (when displayed by the client) */
@@ -2780,7 +2839,6 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list *
 
 	skill_do_copy(src,bl,&dmg,damage,skill_id,skill_lv); //try to copy a skill
 
-
 	if (dmg.dmg_lv >= ATK_MISS && (type = skill_get_walkdelay(skill_id, skill_lv)) > 0)
 	{	//Skills with can't walk delay also stop normal attacking for that
 		//duration when the attack connects. [Skotlex]
@@ -3042,6 +3100,7 @@ static int skill_check_unit_range_sub (struct block_list *bl, va_list ap)
 		case RA_ICEBOUNDTRAP:
 		case SC_DIMENSIONDOOR:
 		case SC_BLOODYLUST:
+		case RL_B_TRAP:
 			//Non stackable on themselves and traps (including venom dust which does not has the trap inf2 set)
 			if (skill_id != g_skill_id && !(skill_get_inf2(g_skill_id)&INF2_TRAP) && g_skill_id != AS_VENOMDUST && g_skill_id != MH_POISON_MIST)
 				return 0;
@@ -3640,6 +3699,31 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 
 	tstatus = status_get_status_data(bl);
 
+	//Hits the target if marked with SC_C_MARKER only
+	switch (skill_id) {
+		case RL_QD_SHOT:
+			if (sd && bl->id == sd->ud.target)
+				return 1;
+		case RL_D_TAIL:
+		case RL_HAMMER_OF_GOD:
+			{
+				tsc = status_get_sc(bl);
+				if (!tsc || !tsc->data[SC_C_MARKER] || tsc->data[SC_C_MARKER]->val2 != src->id)
+					return 1;
+			}
+			break;
+		case RL_FLICKER:
+			{
+				tsc = status_get_sc(bl);
+				if (!tsc)
+					return 1;
+				if ((!tsc->data[SC_H_MINE] || tsc->data[SC_H_MINE]->val2 != src->id) &&
+					(!tsc->data[SC_B_TRAP] || tsc->data[SC_B_TRAP]->val2 != src->id))
+					return 1;
+			}
+			break;
+	}
+
 	map_freeblock_lock();
 
 	switch(skill_id)
@@ -3757,8 +3841,11 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 	case KO_SETSUDAN:
 	case KO_KAIHOU:
 	case GC_DARKCROW:
+	case RL_MASS_SPIRAL:
+	case RL_SLUGSHOT:
+	case RL_AM_BLAST:
 		skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
-	break;
+		break;
 
 	/**
 	 * Mechanic (MADO GEAR)
@@ -3991,6 +4078,15 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 	case KO_MUCHANAGE:
 	case KO_BAKURETSU:
 	case GN_ILLUSIONDOPING:
+	case RL_FIREDANCE:
+	case RL_BANISHING_BUSTER:
+	case RL_S_STORM:
+	case RL_D_TAIL:
+	case RL_R_TRIP:
+	case RL_FLICKER:
+	case RL_HAMMER_OF_GOD:
+	case RL_QD_SHOT:
+	case RL_FIRE_RAIN:
 		if( flag&1 ) {//Recursive invocation
 			// skill_area_temp[0] holds number of targets in area
 			// skill_area_temp[1] holds the id of the original target
@@ -4001,10 +4097,25 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 			if( skill_area_temp[1] != bl->id && !(skill_get_inf2(skill_id)&INF2_NPC_SKILL) )
 				sflag |= SD_ANIMATION; // original target gets no animation (as well as all NPC skills)
 
-			heal = (int)skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, sflag);
-			if( skill_id == NPC_VAMPIRE_GIFT && heal > 0 ) {
-				clif_skill_nodamage(NULL, src, AL_HEAL, heal, 1);
-				status_heal(src,heal,0,0);
+			if (skill_id == RL_FLICKER) { //Skills that triggered by RL_FLICKER
+				tsc = status_get_sc(bl);
+				if (sd)
+					sd->flicker = true;
+				if (!tsc)
+					break;
+				if (tsc->data[SC_B_TRAP])
+					skill_attack(skill_get_type(RL_B_TRAP), src, src, bl, RL_B_TRAP, pc_checkskill(sd,RL_B_TRAP), tick, sflag);
+				if (tsc->data[SC_H_MINE])
+					skill_castend_damage_id(src,bl,RL_H_MINE,pc_checkskill(sd,RL_H_MINE),tick,sflag);
+				if (sd)
+					sd->flicker = false;
+			}
+			else {
+				heal = (int)skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, sflag);
+				if( skill_id == NPC_VAMPIRE_GIFT && heal > 0 ) {
+					clif_skill_nodamage(NULL, src, AL_HEAL, heal, 1);
+					status_heal(src,heal,0,0);
+				}
 			}
 		} else {
 			switch ( skill_id ) {
@@ -4018,6 +4129,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 					break;
 				case NPC_EARTHQUAKE://FIXME: Isn't EarthQuake a ground skill after all?
 					skill_addtimerskill(src,tick+250,src->id,0,0,skill_id,skill_lv,2,flag|BCT_ENEMY|SD_SPLASH|1);
+					break;
 				default:
 					break;
 			}
@@ -4779,10 +4891,10 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 			skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag);
 			status_change_end(bl, SC_HIDING, INVALID_TIMER);
 			status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER);
-		} else{
+		} else {
 			map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
 			clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
-			}
+		}
 		break;
 
 	case SO_POISON_BUSTER: {
@@ -4878,7 +4990,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 		}
 		break;
 
-
 	//recursive homon skill
 	case MH_MAGMA_FLOW:
 	case MH_HEILIGE_STANGE:
@@ -4886,9 +4997,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 		    if((skill_id == MH_MAGMA_FLOW) && ((rnd()%100)>(3*skill_lv)) ) break;//chance to not trigger atk for magma
 		    skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag);
 		}
-		else {
+		else
 		    map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_damage_id);
-		}
 		break;
 
 	case MH_STAHL_HORN:
@@ -4897,33 +5007,56 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 		skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag);
 		break;
 	case MH_MIDNIGHT_FRENZY:
-	case MH_SILVERVEIN_RUSH:{
-		TBL_HOM *hd = BL_CAST(BL_HOM,src);
-		hom_delspiritball(hd,skill_id==MH_SILVERVEIN_RUSH?1:2,0);
-		skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag);
+	case MH_SILVERVEIN_RUSH:
+		{
+			TBL_HOM *hd = BL_CAST(BL_HOM,src);
+			hom_delspiritball(hd,skill_id==MH_SILVERVEIN_RUSH?1:2,0);
+			skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag);
+		}
 		break;
-	}
 	case MH_TINDER_BREAKER:
 	case MH_CBC:
-	case MH_EQC: {
-		int duration=0;
-		TBL_HOM *hd = BL_CAST(BL_HOM,src);
-		duration = max(skill_lv,(status_get_str(src)/7 - status_get_str(bl)/10))*1000; //Yommy formula
-		hom_delspiritball(hd,skill_id==MH_EQC?2:1,0); //only EQC consume 2 in grp 2
-		skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag);
-		clif_skill_nodamage(src,bl,skill_id,skill_lv,
-			sc_start4(src,bl,status_skill2sc(skill_id),100,skill_lv,src->id,0,0,duration));
-		if (skill_id==MH_TINDER_BREAKER && unit_movepos(src, bl->x, bl->y, 1, 1)) {
+	case MH_EQC:
+		{
+			int duration=0;
+			TBL_HOM *hd = BL_CAST(BL_HOM,src);
+			duration = max(skill_lv,(status_get_str(src)/7 - status_get_str(bl)/10))*1000; //Yommy formula
+			hom_delspiritball(hd,skill_id==MH_EQC?2:1,0); //only EQC consume 2 in grp 2
+			skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag);
+			clif_skill_nodamage(src,bl,skill_id,skill_lv,
+				sc_start4(src,bl,status_skill2sc(skill_id),100,skill_lv,src->id,0,0,duration));
+			if (skill_id==MH_TINDER_BREAKER && unit_movepos(src, bl->x, bl->y, 1, 1)) {
 #if PACKETVER >= 20111005
-			clif_snap(src, bl->x, bl->y);
+				clif_snap(src, bl->x, bl->y);
 #else
-			clif_skill_poseffect(src,skill_id,skill_lv,bl->x,bl->y,tick);
+				clif_skill_poseffect(src,skill_id,skill_lv,bl->x,bl->y,tick);
 #endif
-
+			}
 		}
 		break;
-	}
 
+	case RL_H_MINE:
+		if (sd) {
+			//Splash damage around the main target(s)
+			if (!(flag&1) && sd->flicker && tsc && tsc->data[SC_H_MINE] && tsc->data[SC_H_MINE]->val2 == src->id) {
+				map_foreachinrange(skill_area_sub,bl,skill_get_splash(skill_id,skill_lv),splash_target(src),
+					src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
+			}
+			else {
+				if (sd && sd->flicker && tsc && tsc->data[SC_H_MINE] && tsc->data[SC_H_MINE]->val2 == src->id)
+				{
+					skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
+					tsc->data[SC_H_MINE]->val3 = 1; //Mark the SC end because not expired
+					status_change_end(bl,SC_H_MINE,INVALID_TIMER);
+					sc_start4(src,bl,SC_BURNING,10 * skill_lv + rnd()%50,skill_lv,1000,src->id,0,skill_get_time2(skill_id,skill_lv));
+				}
+				else if (skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag) && !sd->flicker && !status_isdead(bl))
+					sc_start(src,bl,SC_H_MINE,100,skill_id,skill_get_time(skill_id,skill_lv));
+			}
+		}
+		else if (!sd && skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag))
+			sc_start4(src,bl,SC_BURNING,10 * skill_lv + rnd()%50,skill_lv,1000,src->id,0,skill_get_time2(skill_id,skill_lv));
+		break;
 
 	case 0:/* no skill - basic/normal attack */
 		if(sd) {
@@ -5599,6 +5732,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 	case ALL_FULL_THROTTLE:
 	case RA_UNLIMIT:
 	case WL_TELEKINESIS_INTENSE:
+	case RL_HEAT_BARREL:
+	case RL_P_ALTER:
+	case RL_E_CHAIN:
 		clif_skill_nodamage(src,bl,skill_id,skill_lv,
 			sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
 		break;
@@ -5839,7 +5975,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		break;
 
 	case MO_KITRANSLATION:
-		if(dstsd && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) {
+		if(dstsd && ((dstsd->class_&MAPID_BASEMASK) != MAPID_GUNSLINGER || (dstsd->class_&MAPID_UPPERMASK) != MAPID_REBELLION)) {
 			pc_addspiritball(dstsd,skill_get_time(skill_id,skill_lv),5);
 		}
 		break;
@@ -5854,7 +5990,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 
 	case MO_ABSORBSPIRITS:
 		i = 0;
-		if (dstsd && dstsd->spiritball && (sd == dstsd || map_flag_vs(src->m)) && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER)
+		if (dstsd && dstsd->spiritball && (sd == dstsd || map_flag_vs(src->m)) && ((dstsd->class_&MAPID_BASEMASK) != MAPID_GUNSLINGER || (dstsd->class_&MAPID_UPPERMASK) != MAPID_REBELLION))
 		{	// split the if for readability, and included gunslingers in the check so that their coins cannot be removed [Reddozen]
 			i = dstsd->spiritball * 7;
 			pc_delspiritball(dstsd,dstsd->spiritball,0);
@@ -5902,6 +6038,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		status_change_end(src, SC_HIDING, INVALID_TIMER);
 		break;
 
+	//List of self skills that give damage around caster
+	case RL_FLICKER:
+		if (sd) {
+			sd->skill_id_old = RL_FLICKER;
+			sd->flicker = true;
+		}
 	case ASC_METEORASSAULT:
 	case GS_SPREADATTACK:
 	case RK_STORMBLAST:
@@ -5911,12 +6053,16 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 	case SR_RAMPAGEBLASTER:
 	case SR_HOWLINGOFLION:
 	case KO_HAPPOKUNAI:
+	case RL_FIREDANCE:
+	case RL_R_TRIP:
 		skill_area_temp[1] = 0;
 		clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
 		i = map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src),
 			src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
 		if( !i && ( skill_id == NC_AXETORNADO || skill_id == SR_SKYNETBLOW || skill_id == KO_HAPPOKUNAI ) )
 			clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
+		if (sd && skill_id == RL_FLICKER)
+			sd->flicker = false;
 		break;
 
 	case NC_EMERGENCYCOOL:
@@ -6732,7 +6878,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 				case SC_LAUDARAMUS:		case SC_GATLINGFEVER:	case SC_INCREASING:
 				case SC_ADJUSTMENT:		case SC_MADNESSCANCEL:
 				case SC_ANGEL_PROTECT:	case SC_MONSTER_TRANSFORM:	case SC_FULL_THROTTLE:
-				case SC_REBOUND:	case SC_TELEKINESIS_INTENSE:
+				case SC_REBOUND:		case SC_TELEKINESIS_INTENSE:
+				case SC_HEAT_BARREL:	case SC_HEAT_BARREL_AFTER:	case SC_P_ALTER:
+				case SC_E_CHAIN:		case SC_C_MARKER:		case SC_B_TRAP:
+				case SC_H_MINE:
 #ifdef RENEWAL
 				case SC_EXTREMITYFIST2:
 #endif
@@ -7637,7 +7786,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
 			if(rnd()%100 < (20+10*skill_lv))
 				pc_addspiritball(sd,skill_get_time(skill_id,skill_lv),10);
-			else if(sd->spiritball > 0)
+			else if(sd->spiritball > 0 && !pc_checkskill(sd,RL_RICHS_COIN))
 				pc_delspiritball(sd,1,0);
 		}
 		break;
@@ -8213,6 +8362,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 				case SC_RAISINGDRAGON:	case SC_GT_ENERGYGAIN:	case SC_GT_CHANGE:
 				case SC_ANGEL_PROTECT: case SC_MONSTER_TRANSFORM:
 				case SC_FULL_THROTTLE: case SC_REBOUND: case SC_TELEKINESIS_INTENSE:
+				case SC_HEAT_BARREL:	case SC_HEAT_BARREL_AFTER:	case SC_P_ALTER:
+				case SC_E_CHAIN:		case SC_C_MARKER:		case SC_B_TRAP:
+				case SC_H_MINE:
 #ifdef RENEWAL
 				case SC_EXTREMITYFIST2:
 #endif
@@ -8951,7 +9103,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 				status_fix_damage(src,bl,9999,clif_damage(src,bl,tick,0,0,9999,0,0,0));
 		}
 		break;
-
 	case WM_SONG_OF_MANA:
 	case WM_DANCE_WITH_WUG:
 	case WM_LERADS_DEW:
@@ -8966,7 +9117,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			if( sc_start2(src,bl,type,100,skill_lv,count,skill_get_time(skill_id,skill_lv)) )
 				party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill_castend_nodamage_id);
 			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
-
 		}
 		break;
 
@@ -9219,7 +9369,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			clif_skill_itemlistwindow(sd,skill_id,skill_lv);
 		}
 		break;
-
+	/**
+	 * Genetic
+	 **/
 	case GN_BLOOD_SUCKER:
 		{
 			struct status_change *sc = status_get_sc(src);
@@ -9238,7 +9390,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			}
 		}
 		break;
-
 	case GN_MANDRAGORA:
 		if( flag&1 ) {
 			if ( clif_skill_nodamage(bl, src, skill_id, skill_lv,
@@ -9248,7 +9399,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR,
 							   src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
 		break;
-
 	case GN_SLINGITEM:
 		if( sd ) {
 			short ammo_id;
@@ -9266,7 +9416,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 					else
 						skill_attack(BF_WEAPON,src,src,bl,GN_SLINGITEM_RANGEMELEEATK,skill_lv,tick,flag);
 				} else //Otherwise, it fails, shows animation and removes items.
-					clif_skill_fail(sd,GN_SLINGITEM_RANGEMELEEATK,0xa,0);
+					clif_skill_fail(sd,GN_SLINGITEM_RANGEMELEEATK,USESKILL_FAIL,0);
 			} else if( itemdb_is_GNthrowable(ammo_id) ){
 				struct script_code *script = sd->inventory_data[i]->script;
 				if( !script )
@@ -9280,7 +9430,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
 		clif_skill_nodamage(src,bl,skill_id,skill_lv,1);// This packet is received twice actually, I think it is to show the animation.
 		break;
-
 	case GN_MIX_COOKING:
 	case GN_MAKEBOMB:
 	case GN_S_PHARMACY:
@@ -9294,6 +9443,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
 		}
 		break;
+	/**
+	 * Elemental
+	 **/
 	case EL_CIRCLE_OF_FIRE:
 	case EL_PYROTECHNIC:
 	case EL_HEATER:
@@ -9331,7 +9483,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			}
 		}
 		break;
-
 	case EL_FIRE_MANTLE:
 	case EL_WATER_BARRIER:
 	case EL_ZEPHYR:
@@ -9340,7 +9491,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
 		skill_unitsetting(src,skill_id,skill_lv,bl->x,bl->y,0);
 		break;
-
 	case EL_WATER_SCREEN: {
 			struct elemental_data *ele = BL_CAST(BL_ELEM, src);
 			if( ele ) {
@@ -9358,8 +9508,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 				}
 			}
 		}
-		break;
-
+		break;	
+	/**
+	 * Kagerou & Oboro
+	 **/
 	case KO_KAHU_ENTEN:
 	case KO_HYOUHU_HUBUKI:
 	case KO_KAZEHU_SEIRAN:
@@ -9370,7 +9522,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			pc_add_talisman(sd, skill_get_time(skill_id, skill_lv), 10, ttype);
 		}
 		break;
-
 	case KO_ZANZOU:
 		if(sd){
 			struct mob_data *md;
@@ -9390,7 +9541,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			}
 		}
 		break;
-
 	case KO_KYOUGAKU:
 		if( dstsd && tsc && !tsc->data[type] && rand()%100 < tstatus->int_/2 ){
 			clif_skill_nodamage(src,bl,skill_id,skill_lv,
@@ -9398,7 +9548,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}else if( sd )
 			clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
 		break;
-
 	case KO_JYUSATSU:
 		if( dstsd && tsc && !tsc->data[type] &&
 			rand()%100 < ((45+5*skill_lv) + skill_lv*5 - status_get_int(bl)/2) ){//[(Base chance of success) + (Skill Level x 5) - (int / 2)]%.
@@ -9410,7 +9559,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}else if( sd )
 			clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
 		break;
-
 	case KO_GENWAKU:
 		if ( !map_flag_gvg(src->m) && ( dstsd || dstmd ) && battle_check_target(src,bl,BCT_ENEMY) > 0 ) {
 			int x = src->x, y = src->y;
@@ -9435,7 +9583,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			}
 		}
 		break;
-
 	case OB_AKAITSUKI:
 	case OB_OBOROGENSOU:
 		if( sd && ( (skill_id == OB_OBOROGENSOU && bl->type == BL_MOB) // This skill does not work on monsters.
@@ -9451,7 +9598,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
 		clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
 		break;
-
 	case KG_KAGEHUMI:
 		if( flag&1 ){
 			if(tsc && ( tsc->option&(OPTION_CLOAK|OPTION_HIDE) ||
@@ -9478,62 +9624,62 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		break;
 
 	case MH_SILENT_BREEZE: {
-	     struct status_change *ssc = status_get_sc(src);
-	     struct block_list *m_bl = battle_get_master(src);
-	     const enum sc_type scs[] = {
-		     SC_MANDRAGORA, SC_HARMONIZE, SC_DEEPSLEEP, SC_VOICEOFSIREN, SC_SLEEP, SC_CONFUSION, SC_HALLUCINATION
-	     };
-	     int heal;
-	     if(tsc){
-		 for (i = 0; i < ARRAYLENGTH(scs); i++) {
-		     if (tsc->data[scs[i]]) status_change_end(bl, scs[i], INVALID_TIMER);
-		 }
-		 if (!tsc->data[SC_SILENCE]) //put inavoidable silence on target
-			 status_change_start(src,bl, SC_SILENCE, 100, skill_lv, 0,0,0, skill_get_time(skill_id, skill_lv),1|2|8);
-	     }
-	     heal = status_get_sp(src) + status_get_lv(src); //cur_sp+blvl @TODO need real value
-	     status_heal(bl, heal, 0, 7);
-
-	     //now inflict silence on everyone
-	     if(ssc && !ssc->data[SC_SILENCE]) //put inavoidable silence on homun
-		 status_change_start(src, src, SC_SILENCE, 100, skill_lv, 0,0,0, skill_get_time(skill_id, skill_lv),1|2|8);
-	     if(m_bl){
-		 struct status_change *msc = status_get_sc(m_bl);
-		 if(msc && !msc->data[SC_SILENCE]) //put inavoidable silence on master
-		     status_change_start(src, m_bl, SC_SILENCE, 100, skill_lv, 0,0,0, skill_get_time(skill_id, skill_lv),1|2|8);
-	     }
-	     if (hd)
-		 skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
-	}
-	break;
+			 struct status_change *ssc = status_get_sc(src);
+			 struct block_list *m_bl = battle_get_master(src);
+			 const enum sc_type scs[] = {
+				 SC_MANDRAGORA, SC_HARMONIZE, SC_DEEPSLEEP, SC_VOICEOFSIREN, SC_SLEEP, SC_CONFUSION, SC_HALLUCINATION
+			 };
+			 int heal;
+			 if(tsc){
+				 for (i = 0; i < ARRAYLENGTH(scs); i++) {
+					 if (tsc->data[scs[i]]) status_change_end(bl, scs[i], INVALID_TIMER);
+				 }
+				 if (!tsc->data[SC_SILENCE]) //put inavoidable silence on target
+					 status_change_start(src,bl, SC_SILENCE, 100, skill_lv, 0,0,0, skill_get_time(skill_id, skill_lv),1|2|8);
+			 }
+			 heal = status_get_sp(src) + status_get_lv(src); //cur_sp+blvl @TODO need real value
+			 status_heal(bl, heal, 0, 7);
+
+			 //now inflict silence on everyone
+			 if(ssc && !ssc->data[SC_SILENCE]) //put inavoidable silence on homun
+				status_change_start(src, src, SC_SILENCE, 100, skill_lv, 0,0,0, skill_get_time(skill_id, skill_lv),1|2|8);
+			 if(m_bl) {
+				 struct status_change *msc = status_get_sc(m_bl);
+				 if(msc && !msc->data[SC_SILENCE]) //put inavoidable silence on master
+					 status_change_start(src, m_bl, SC_SILENCE, 100, skill_lv, 0,0,0, skill_get_time(skill_id, skill_lv),1|2|8);
+			 }
+			 if (hd)
+				skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
+		}
+		break;
 	case MH_OVERED_BOOST:
-	     if (hd){
-		 struct block_list *s_bl = battle_get_master(src);
-		 if(hd->homunculus.hunger>50) //reduce hunger
-		     hd->homunculus.hunger = hd->homunculus.hunger/2;
-		 else
-		     hd->homunculus.hunger = min(1,hd->homunculus.hunger);
-		 if(s_bl && s_bl->type==BL_PC){
-		     status_set_sp(s_bl,status_get_max_sp(s_bl)/2,0); //master drain 50% sp
-		     clif_send_homdata(((TBL_PC *)s_bl), SP_HUNGRY, hd->homunculus.hunger); //refresh hunger info
-		     sc_start(src,s_bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); //gene bonus
-		 }
-		 sc_start(src,bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv));
-		 skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
+	     if (hd) {
+			 struct block_list *s_bl = battle_get_master(src);
+			 if(hd->homunculus.hunger>50) //reduce hunger
+				 hd->homunculus.hunger = hd->homunculus.hunger/2;
+			 else
+				 hd->homunculus.hunger = min(1,hd->homunculus.hunger);
+			 if(s_bl && s_bl->type==BL_PC) {
+				 status_set_sp(s_bl,status_get_max_sp(s_bl)/2,0); //master drain 50% sp
+				 clif_send_homdata(((TBL_PC *)s_bl), SP_HUNGRY, hd->homunculus.hunger); //refresh hunger info
+				 sc_start(src,s_bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); //gene bonus
+			 }
+			 sc_start(src,bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv));
+			 skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
 	     }
 	     break;
 	case MH_GRANITIC_ARMOR:
-	case MH_PYROCLASTIC: {
-		 struct block_list *s_bl = battle_get_master(src);
-		 if(s_bl) sc_start2(src, s_bl, type, 100, skill_lv, hd->homunculus.level, skill_get_time(skill_id, skill_lv)); //start on master
-		 sc_start2(src, bl, type, 100, skill_lv, hd->homunculus.level, skill_get_time(skill_id, skill_lv));
-		 if (hd) skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
+	case MH_PYROCLASTIC:
+		{
+			 struct block_list *s_bl = battle_get_master(src);
+			 if(s_bl) sc_start2(src, s_bl, type, 100, skill_lv, hd->homunculus.level, skill_get_time(skill_id, skill_lv)); //start on master
+			 sc_start2(src, bl, type, 100, skill_lv, hd->homunculus.level, skill_get_time(skill_id, skill_lv));
+			 if (hd) skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
 	     }
 	     break;
-
 	case MH_LIGHT_OF_REGENE: //self
 		sc_start2(src, src, type, 100, skill_lv, hd->homunculus.level, skill_get_time(skill_id, skill_lv));
-		if(hd){
+		if(hd) {
 		    hd->homunculus.intimacy = 251; //change to neutral (can't be cast if < 750)
 		    if(sd) clif_send_homdata(sd, SP_INTIMATE, hd->homunculus.intimacy); //refresh intimacy info
 		    skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
@@ -9558,9 +9704,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 	case MH_PAIN_KILLER:
 	   sc_start(src,bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv));
 	   if (hd)
-		skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
+		   skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
 	   break;
-
 	case MH_SUMMON_LEGION: {
 		int summons[5] = {2158, 2159, 2159, 2160, 2160};
 		int qty[5] =     {3   , 3   , 4   , 4   , 5};
@@ -9587,6 +9732,66 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			skill_blockhomun_start(hd, skill_id, skill_get_cooldown(skill_id, skill_lv));
 		}
 		break;
+	/**
+	 * Rebellion
+	 **/
+	case RL_RICHS_COIN:
+		if (sd) {
+			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
+			if (rnd()%100 < 50)
+				for (i = 0; i < 10; i++)
+					pc_addspiritball(sd,skill_get_time(skill_id,skill_lv),10);
+		}
+		break;
+	case RL_C_MARKER:
+		if (sd && (dstsd || (bl->type == BL_MOB && dstmd))) {
+			uint8 i;
+			sd->c_marker.count = 0;
+			//Find empty slot. If already exist, renew it!
+			ARR_FIND(0,MAX_SKILL_CRIMSON_MARKER,i,sd->c_marker.target[i] == bl->id || !sd->c_marker.target[i]);
+			if (i >= MAX_SKILL_CRIMSON_MARKER) { //No slot
+				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+				break;
+			}
+			//Attempt to run SC to the target
+			if (!sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))) {
+				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+				break;
+			}
+			sd->c_marker.target[i] = bl->id;
+			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
+		}
+		break;
+	case RL_D_TAIL:
+		if (sd && &sd->c_marker) {
+			sd->c_marker.count = min(map_foreachinrange(skill_check_target_c_marker,bl,skill_get_splash(skill_id,skill_lv),splash_target(src),src,skill_id),MAX_SKILL_CRIMSON_MARKER);
+			if (!sd->c_marker.count) {
+				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+				break;
+			}
+			status_zap(src,0,skill_get_sp(skill_id,skill_lv));
+			skill_area_temp[1] = 0;
+			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
+			if (sd->c_marker.count)
+				i = map_foreachinrange(skill_area_sub,bl,skill_get_splash(skill_id,skill_lv),splash_target(src),src,skill_id,skill_lv,tick,flag|BCT_ENEMY|SD_SPLASH|1,skill_castend_damage_id);
+			sd->c_marker.count = 0;
+		}
+		break;
+	case RL_QD_SHOT:
+		if (!sd)
+			break;
+		if (&sd->c_marker && sd->c_marker.target) {
+			i = min(map_foreachinrange(skill_check_target_c_marker,bl,skill_get_splash(skill_id,skill_lv),splash_target(src),src,skill_id),MAX_SKILL_CRIMSON_MARKER);
+
+			skill_area_temp[1] = 0;
+			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
+			if (i)
+				i = map_foreachinrange(skill_area_sub,bl,skill_get_splash(skill_id,skill_lv),splash_target(src),src,skill_id,skill_lv,tick,flag|BCT_ENEMY|SD_SPLASH|1,skill_castend_damage_id);
+		}
+		//Doesn't matter if the main target has SC_C_MARKER or not
+		skill_attack(skill_get_type(RL_QD_SHOT),src,src,bl,skill_id,skill_lv,tick,flag|BCT_ENEMY|SD_LEVEL|SD_ANIMATION);
+		break;
+
 	default:
 		ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skill_id);
 		clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
@@ -9848,6 +10053,7 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr_t data)
 			switch( ud->skill_id )
 			{
 			case GS_DESPERADO:
+			case RL_FIREDANCE:
 				sd->canequip_tick = tick + skill_get_time(ud->skill_id, ud->skill_lv);
 				break;
 			case CR_GRANDCROSS:
@@ -10220,7 +10426,6 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
 	case MG_SAFETYWALL:
 	case MG_FIREWALL:
 	case MG_THUNDERSTORM:
-
 	case AL_PNEUMA:
 	case WZ_ICEWALL:
 	case WZ_FIREPILLAR:
@@ -10324,6 +10529,9 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
 	case MH_STEINWAND:
 	case MH_XENO_SLASHER:
 	case NC_MAGMA_ERUPTION:
+	case RL_B_TRAP:
+		if (skill_id == RL_B_TRAP && sd)
+			sd->skill_id_old = skill_id;
 		flag|=1;//Set flag to 1 to prevent deleting ammo (it will be deleted on group-delete).
 	case GS_GROUNDDRIFT: //Ammo should be deleted right away.
 		skill_unitsetting(src,skill_id,skill_lv,x,y,0);
@@ -10805,6 +11013,25 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
 		}
 		break;
 
+	case RL_FALLEN_ANGEL:
+		if( unit_movepos(src, x, y, 1, 1) ) {
+			enum e_skill skill_use = GS_DESPERADO;
+			uint8 skill_use_lv = pc_checkskill(sd,skill_use);
+			clif_slide(src,x,y);
+			if (skill_check_condition_castbegin(sd,skill_use,skill_use_lv)) {
+				skill_castend_pos2(src,src->x,src->y,skill_use,skill_use_lv,tick,SD_LEVEL|SD_ANIMATION|SD_SPLASH);
+				skill_consume_requirement(sd,skill_use,skill_use_lv,1);
+			}
+		}
+		else if (sd)
+			clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+		break;
+	case RL_HAMMER_OF_GOD:
+		i = skill_get_splash(skill_id, skill_lv);
+		map_foreachinarea(skill_area_sub, src->m, x-i, y-i, x+i, y+i, BL_CHAR,
+			src, skill_id, skill_lv, tick, flag|BCT_ENEMY|2, skill_castend_damage_id);
+		break;
+
 	default:
 		ShowWarning("skill_castend_pos2: Unknown skill used:%d\n",skill_id);
 		return 1;
@@ -11200,6 +11427,10 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
 	case RA_VERDURETRAP:
 	case RA_FIRINGTRAP:
 	case RA_ICEBOUNDTRAP:
+	/**
+	 * Rebellion
+	 **/
+	case RL_B_TRAP:
 		{
 			struct skill_condition req = skill_get_requirement(sd,skill_id,skill_lv);
 			ARR_FIND(0, MAX_SKILL_ITEM_REQUIRE, i, req.itemid[i] && (req.itemid[i] == ITEMID_TRAP || req.itemid[i] == ITEMID_TRAP_ALLOY));
@@ -11493,6 +11724,7 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
 		case RA_VERDURETRAP:
 		case RA_FIRINGTRAP:
 		case RA_ICEBOUNDTRAP:
+		case RL_B_TRAP:
 			val1 = 3500;
 			break;
 		case GS_DESPERADO:
@@ -12493,6 +12725,16 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
 			skill_attack(BF_MAGIC, ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0);
 			status_change_start(ss, bl, SC_BLIND, (10 + 10 * sg->skill_lv)*100, sg->skill_lv, sg->skill_id, 0, 0, skill_get_time2(sg->skill_id, sg->skill_lv), 2|8);
 			break;
+
+		case UNT_B_TRAP:
+			sc_start(ss,bl,SC_B_TRAP,100,sg->skill_lv,max(status_get_str(bl) * 150,5000)); //(custom)
+			sg->unit_id = UNT_USED_TRAPS;
+			clif_changetraplook(&src->bl, UNT_USED_TRAPS);
+			sg->limit=DIFF_TICK(tick,sg->tick)+1500;
+			break;
+		/*case UNT_FIRE_RAIN:
+			skill_attack(skill_get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,SD_LEVEL|SD_ANIMATION|SD_SPLASH);
+			break;*/
 	}
 
 	if (bl->type == BL_MOB && ss != bl)
@@ -13805,8 +14047,9 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
 		return 0;
 	}
 
-	if( require.spiritball > 0 && sd->spiritball < require.spiritball) {
-		clif_skill_fail(sd,skill_id,USESKILL_FAIL_SPIRITS,require.spiritball);
+	if( (require.spiritball > 0 && sd->spiritball < require.spiritball) || 
+		(require.spiritball == -1 && sd->spiritball < 1) ) {
+		clif_skill_fail(sd,skill_id,USESKILL_FAIL_SPIRITS,(require.spiritball == -1)? 1: require.spiritball);
 		return 0;
 	}
 
@@ -13983,6 +14226,7 @@ int skill_consume_requirement( struct map_session_data *sd, uint16 skill_id, uin
 		switch( skill_id ) {
 			case CG_TAROTCARD: // TarotCard will consume sp in skill_cast_nodamage_id [Inkfish]
 			case MC_IDENTIFY:
+			case RL_D_TAIL:
 				req.sp = 0;
 				break;
 			default:
@@ -13995,6 +14239,10 @@ int skill_consume_requirement( struct map_session_data *sd, uint16 skill_id, uin
 
 		if(req.spiritball > 0)
 			pc_delspiritball(sd,req.spiritball,0);
+		else if(req.spiritball == -1) {
+			sd->spiritball_old = sd->spiritball;
+			pc_delspiritball(sd,sd->spiritball,0);
+		}
 
 		if(req.zeny > 0)
 		{
@@ -14040,6 +14288,9 @@ int skill_consume_requirement( struct map_session_data *sd, uint16 skill_id, uin
 				case SA_VIOLENTGALE:
 					if( sc && sc->data[SC_WILD_STORM_OPTION] && rnd()%100 < 50 )
 						continue;
+				case RL_H_MINE:
+					if (sd->flicker)
+						continue;
 					break;
 			}
 
@@ -15156,6 +15407,30 @@ int skill_frostjoke_scream (struct block_list *bl, va_list ap)
 	return 0;
 }
 
+int skill_check_target_c_marker(struct block_list *bl, va_list ap) {
+	struct block_list *src;
+	struct status_change *tsc;
+	struct map_session_data *sd;
+	uint16 skill_id;
+
+	nullpo_ret(bl);
+	nullpo_ret(src = va_arg(ap,struct block_list*));
+	
+	if (src == bl || status_isdead(bl) || src->type != BL_PC)
+		return 0;
+	if (!(sd = (struct map_session_data *)src) || !(&sd->c_marker) || !sd->c_marker.target)
+		return 0;
+
+	skill_id = va_arg(ap,int);
+
+	//Skip target with no Crimson Marker
+	tsc = status_get_sc(bl);
+	if (!tsc || !tsc->data[SC_C_MARKER] || tsc->data[SC_C_MARKER]->val2 != src->id)
+		return 0;
+
+	return 1;
+}
+
 /*==========================================
  *
  *------------------------------------------*/
@@ -16152,7 +16427,7 @@ static int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap)
 			case UNT_VERDURETRAP:
 			case UNT_FIRINGTRAP:
 			case UNT_ICEBOUNDTRAP:
-
+			case UNT_B_TRAP:
 			{
 				struct block_list* src;
 				if( unit->val1 > 0 && (src = map_id2bl(group->src_id)) != NULL && src->type == BL_PC )
@@ -16253,6 +16528,7 @@ static int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap)
 			case UNT_FREEZINGTRAP:
 			case UNT_TALKIEBOX:
 			case UNT_ANKLESNARE:
+			case UNT_B_TRAP:
 				if( unit->val1 <= 0 ) {
 					if( group->unit_id == UNT_ANKLESNARE && group->val2 > 0 )
 						skill_delunit(unit);

+ 38 - 1
src/map/skill.h

@@ -20,8 +20,8 @@ struct status_change_entry;
 #define MAX_ARROW_RESOURCE		5
 #define MAX_SKILL_ABRA_DB		350
 #define MAX_SKILL_IMPROVISE_DB 50
-
 #define MAX_SKILL_LEVEL 100
+#define MAX_SKILL_CRIMSON_MARKER 3
 
 DBMap* skilldb_name2id;
 
@@ -1230,6 +1230,13 @@ enum e_skill {
 	NPC_DEATHSUMMON,
 	NPC_HELLBURNING,
 	NPC_JACKFROST,
+	NPC_WIDEWEB,
+	NPC_WIDESUCK,
+	NPC_STORMGUST2,
+	NPC_FIRESTORM,
+	NPC_REVERBERATION,
+	NPC_REVERBERATION_ATK,
+	NPC_LEX_AETERNA,
 
 	KN_CHARGEATK = 1001,
 	CR_SHRINK,
@@ -1572,6 +1579,31 @@ enum e_skill {
 	GM_ITEM_MATKMAX,
 	GM_ITEM_MATKMIN,
 
+	RL_GLITTERING_GREED = 2551,
+	RL_RICHS_COIN,
+	RL_MASS_SPIRAL,
+	RL_BANISHING_BUSTER,
+	RL_B_TRAP,
+	RL_FLICKER,
+	RL_S_STORM,
+	RL_E_CHAIN,
+	RL_QD_SHOT,
+	RL_C_MARKER,
+	RL_FIREDANCE,
+	RL_H_MINE,
+	RL_P_ALTER,
+	RL_FALLEN_ANGEL,
+	RL_R_TRIP,
+	RL_D_TAIL,
+	RL_FIRE_RAIN,
+	RL_HEAT_BARREL,
+	RL_AM_BLAST,
+	RL_SLUGSHOT,
+	RL_HAMMER_OF_GOD,
+	RL_R_TRIP_PLUSATK,
+	RL_B_FLICKER_ATK,
+	RL_GLITTERING_GREED_ATK,
+
 	KO_YAMIKUMO = 3001,
 	KO_RIGHT,
 	KO_LEFT,
@@ -1891,6 +1923,11 @@ enum {
 	UNT_FLAMECROSS,
 	UNT_HELLBURNING,
 	UNT_MAGMA_ERUPTION,
+	UNT_KINGS_GRACE,
+
+	UNT_GLITTERING_GREED,
+	UNT_B_TRAP,
+	UNT_FIRE_RAIN,
 
 	/**
 	 * Guild Auras

+ 145 - 22
src/map/status.c

@@ -750,6 +750,21 @@ void initChangeTables(void) {
 	set_sc( OB_OBOROGENSOU			, SC_GENSOU		, SI_GENSOU		, SCB_NONE );
 
 	set_sc( ALL_FULL_THROTTLE		, SC_FULL_THROTTLE	, SI_FULL_THROTTLE	, SCB_SPEED|SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK );
+	set_sc_with_vfx( SC_MOONSTAR		, SC_MOONSTAR		, SI_MOONSTAR		, SCB_NONE );
+	set_sc_with_vfx( SC_SUPER_STAR		, SC_SUPER_STAR		, SI_SUPER_STAR		, SCB_NONE );
+
+	/**
+	 * Rebellion
+	 **/
+	add_sc( RL_MASS_SPIRAL,   SC_BLEEDING );
+	add_sc( RL_HAMMER_OF_GOD, SC_STUN );
+	set_sc( RL_B_TRAP,      SC_B_TRAP,         SI_B_TRAP,       SCB_SPEED );
+	set_sc( RL_E_CHAIN,     SC_E_CHAIN,        SI_E_CHAIN,      SCB_NONE );
+	set_sc( RL_C_MARKER,    SC_C_MARKER,       SI_C_MARKER,     SCB_SPEED );
+	set_sc( RL_P_ALTER,     SC_P_ALTER,        SI_P_ALTER,      SCB_BATK );
+	set_sc( RL_SLUGSHOT,    SC_STUN,           SI_SLUGSHOT,     SCB_NONE );
+	set_sc( RL_AM_BLAST,    SC_ANTI_M_BLAST,   SI_ANTI_M_BLAST, SCB_DEF_ELE );
+	set_sc( RL_HEAT_BARREL, SC_HEAT_BARREL,    SI_HEAT_BARREL,  SCB_BATK|SCB_ASPD|SCB_HIT );
 
 	// Storing the target job rather than simply SC_SPIRIT simplifies code later on.
 	SkillStatusChangeTable[SL_ALCHEMIST]	= (sc_type)MAPID_ALCHEMIST,
@@ -906,9 +921,17 @@ void initChangeTables(void) {
 	StatusIconChangeTable[SC_PETROLOGY] = SI_PETROLOGY;
 	StatusIconChangeTable[SC_CURSED_SOIL] = SI_CURSED_SOIL;
 	StatusIconChangeTable[SC_UPHEAVAL] = SI_UPHEAVAL;
+
 	StatusIconChangeTable[SC_PUSH_CART] = SI_ON_PUSH_CART;
 	StatusIconChangeTable[SC_REBOUND] = SI_REBOUND;
 	StatusIconChangeTable[SC_MONSTER_TRANSFORM] = SI_MONSTER_TRANSFORM;
+	StatusIconChangeTable[SC_MOONSTAR] = SI_MOONSTAR;
+	StatusIconChangeTable[SC_SUPER_STAR] = SI_SUPER_STAR;
+	StatusIconChangeTable[SC_BURNING] = SI_BURNT;
+	
+	StatusIconChangeTable[SC_H_MINE] = SI_H_MINE;
+	StatusIconChangeTable[SC_QD_SHOT_READY] = SI_E_QD_SHOT_READY;
+	StatusIconChangeTable[SC_HEAT_BARREL_AFTER] = SI_HEAT_BARREL_AFTER;
 
 	//Other SC which are not necessarily associated to skills.
 	StatusChangeFlagTable[SC_ASPDPOTION0] = SCB_ASPD;
@@ -993,6 +1016,8 @@ void initChangeTables(void) {
 	StatusChangeFlagTable[SC_EXTRACT_SALAMINE_JUICE] |= SCB_ASPD;
 	StatusChangeFlagTable[SC_DEFSET] |= SCB_DEF;
 	StatusChangeFlagTable[SC_MDEFSET] |= SCB_MDEF;
+	StatusChangeFlagTable[SC_MOONSTAR] |= SCB_NONE;
+	StatusChangeFlagTable[SC_SUPER_STAR] |= SCB_NONE;
 
 #ifdef RENEWAL
 	// renewal EDP increases your weapon atk
@@ -1061,6 +1086,7 @@ void initChangeTables(void) {
 	StatusChangeStateTable[SC_CURSEDCIRCLE_TARGET]	|= SCS_NOCAST;
 	StatusChangeStateTable[SC_SILENCE]		|= SCS_NOCAST;
 	StatusChangeStateTable[SC_KINGS_GRACE]		|= SCS_NOCAST;
+	StatusChangeStateTable[SC_HEAT_BARREL_AFTER]	|= SCS_NOCAST;
 
 	/* StatusChangeState (SCS_) NOCHAT (skills) */
 	StatusChangeStateTable[SC_BERSERK]		|= SCS_NOCHAT;
@@ -2277,6 +2303,8 @@ static unsigned int status_base_pc_maxhp(struct map_session_data* sd, struct sta
 		val *= 3; //Triple max HP for top ranking Taekwons over level 90.
 	if((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.base_level >= 99)
 		val += 2000; //Supernovice lvl99 hp bonus.
+	if((sd->class_&MAPID_UPPERMASK) == MAPID_REBELLION)
+		val += 100; //Since Rebellion's HP can't be approximated well enough without this.
 
 	val += val * status->vit/100; // +1% per each point of VIT
 
@@ -4887,6 +4915,8 @@ static signed short status_calc_hit(struct block_list *bl, struct status_change
 		hit -= (hit * sc->data[SC_ASH]->val2) / 100;
 	if(sc->data[SC_ILLUSIONDOPING])
 		hit -= hit * (5 + sc->data[SC_ILLUSIONDOPING]->val1) / 100; //Custom
+	if(sc->data[SC_HEAT_BARREL])
+		hit -= sc->data[SC_HEAT_BARREL]->val4;
 
 	return (short)cap_value(hit,1,SHRT_MAX);
 }
@@ -5313,6 +5343,10 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha
 					val = max( val, sc->data[SC_POWER_OF_GAIA]->val2 );
 				if( sc->data[SC_MELON_BOMB] )
 					val = max( val, sc->data[SC_MELON_BOMB]->val1 );
+				if( sc->data[SC_C_MARKER] )
+					val = max( val, 10 );
+				if( sc->data[SC_B_TRAP] )
+					val = max( val, sc->data[SC_B_TRAP]->val3 );
 
 				if( sd && sd->bonus.speed_rate + sd->bonus.speed_add_rate > 0 ) // permanent item-based speedup
 					val = max( val, sd->bonus.speed_rate + sd->bonus.speed_add_rate );
@@ -5511,6 +5545,8 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s
 		skills2 += sc->data[SC_EXTRACT_SALAMINE_JUICE]->val1;
 	if( sc->data[SC_INCASPDRATE] )
 		skills2 += sc->data[SC_INCASPDRATE]->val1;
+	if( sc->data[SC_HEAT_BARREL] )
+		skills2 += sc->data[SC_HEAT_BARREL]->val3;
 
 	return ( flag&1? (skills1 + pots) : skills2 );
 }
@@ -7006,6 +7042,16 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
 		if(sc->data[SC_HOVERING])
 			return 0;
 		break;
+	case SC_C_MARKER:
+		if (src == bl)
+			return 0;
+		else {
+			struct status_change *tsc = status_get_sc(bl);
+			//Failed if the target is already marked and the new marker that isn't same marker
+			if (tsc && tsc->data[type] && tsc->data[type]->val2 != src->id)
+				return 0;
+		}
+		break;
 	}
 
 	//Check for BOSS resistances
@@ -8602,7 +8648,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
 			tick_time = 1000; // [GodLesZ] tick time
 			break;
 		case SC_FORCEOFVANGUARD: // This is not the official way to handle it but I think we should use it. [pakpil]
-			val2 = 20 + 12 * (val1 - 1); // Chance
+			val2 = 8 + (12 * val1); // Chance
 			val3 = 5 + (2 * val1); // Max rage counters
 			tick = -1; //endless duration in the client
 			tick_time = 6000; // [GodLesZ] tick time
@@ -8914,6 +8960,44 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
 			val1 = 1002; //Default poring
 			val_flag |= 1;
 			break;
+
+		/**
+		 * Rebellion
+		 **/
+		case SC_HEAT_BARREL_AFTER:
+		case SC_QD_SHOT_READY:
+			break;
+
+		case SC_B_TRAP:
+			val3 = val1 * 25; //-movespeed (custom)
+		case SC_C_MARKER:
+		case SC_H_MINE:
+			val2 = src->id;
+			break;
+
+		case SC_HEAT_BARREL:
+			if (sd) {
+				uint8 n = (uint8)sd->spiritball_old;
+				val2 = val1 * n * 4; //+atk (custom)
+				val3 = val1 * n / 5; //+aspd (custom)
+				val4 = val1 * n * 2; //-hit (custom)
+			}
+			break;
+		case SC_P_ALTER:
+			if (sd) {
+				uint8 n = (uint8)sd->spiritball_old;
+				val2 = val1 * n * 2; //+atk (custom)
+				val3 = val1 * 15; //+def (custom)
+			}
+			break;
+		case SC_E_CHAIN:
+			if (sd)
+				val2 = (uint8)sd->spiritball_old;
+			break;
+		case SC_ANTI_M_BLAST:
+			val2 = val1 * 10;
+			break;
+
 		default:
 			if( calc_flag == SCB_NONE && StatusSkillChangeTable[type] == 0 && StatusIconChangeTable[type] == 0 )
 			{	//Status change with no calc, no icon, and no skill associated...?
@@ -8986,6 +9070,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
 		case SC_WEIGHT90:
 		case SC_CAMOUFLAGE:
 		case SC_VOICEOFSIREN:
+		case SC_HEAT_BARREL_AFTER:
 			unit_stop_attack(bl);
 		break;
 		case SC_SILENCE:
@@ -9347,6 +9432,7 @@ int status_change_clear(struct block_list* bl, int type) {
 			case SC_L_LIFEPOTION:
 			case SC_PUSH_CART:
 			case SC_STYLE_CHANGE:
+			case SC_HEAT_BARREL_AFTER:
 				continue;
 		}
 
@@ -9401,7 +9487,7 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
 	struct status_change_entry *sce;
 	struct status_data *status;
 	struct view_data *vd;
-	int opt_flag=0, calc_flag;
+	int opt_flag=0, calc_flag,temp_n = 0;
 
 	nullpo_ret(bl);
 
@@ -9423,24 +9509,24 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
 		if (sce->timer != INVALID_TIMER) //Could be a SC with infinite duration
 			delete_timer(sce->timer,status_change_timer);
 		if (sc->opt1)
-		switch (type) {
-			//"Ugly workaround"  [Skotlex]
-			//delays status change ending so that a skill that sets opt1 fails to
-			//trigger when it also removed one
-			case SC_STONE:
-				sce->val3 = 0; //Petrify time counter.
-			case SC_FREEZE:
-			case SC_STUN:
-			case SC_SLEEP:
-			if (sce->val1) {
-				//Removing the 'level' shouldn't affect anything in the code
-				//since these SC are not affected by it, and it lets us know
-				//if we have already delayed this attack or not.
-				sce->val1 = 0;
-				sce->timer = add_timer(gettick()+10, status_change_timer, bl->id, type);
-				return 1;
+			switch (type) {
+				//"Ugly workaround"  [Skotlex]
+				//delays status change ending so that a skill that sets opt1 fails to
+				//trigger when it also removed one
+				case SC_STONE:
+					sce->val3 = 0; //Petrify time counter.
+				case SC_FREEZE:
+				case SC_STUN:
+				case SC_SLEEP:
+					if (sce->val1) {
+						//Removing the 'level' shouldn't affect anything in the code
+						//since these SC are not affected by it, and it lets us know
+						//if we have already delayed this attack or not.
+						sce->val1 = 0;
+						sce->timer = add_timer(gettick()+10, status_change_timer, bl->id, type);
+						return 1;
+					}
 			}
-		}
 	}
 
 	(sc->count)--;
@@ -9448,6 +9534,11 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
 	if ( StatusChangeStateTable[type] )
 		status_calc_state(bl,sc,( enum scs_flag ) StatusChangeStateTable[type],false);
 
+	switch (type) {
+		case SC_H_MINE:		temp_n = sc->data[type]->val3;	break;	//If ended by RL_FLICKER, don't drop the trap
+		case SC_C_MARKER:	temp_n = sc->data[type]->val2;	break;	//Player who gave mark
+	}
+
 	sc->data[type] = NULL;
 
 	vd = status_get_viewdata(bl);
@@ -9867,10 +9958,41 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
 		case SC_INTRAVISION:
 			calc_flag = SCB_ALL;/* required for overlapping */
 			break;
-
 		case SC_FULL_THROTTLE:
 			sc_start(bl, bl, SC_REBOUND, 100, sce->val1, skill_get_time2(ALL_FULL_THROTTLE, sce->val1));
 			break;
+		case SC_HEAT_BARREL:
+			if (sd)
+				sc_start(bl,bl,SC_HEAT_BARREL_AFTER,100,sce->val1,skill_get_time2(RL_HEAT_BARREL, sce->val1));
+			break;
+		case SC_C_MARKER:
+			{
+				//Remove mark data from caster
+				struct map_session_data *caster = map_id2sd(temp_n);
+				uint8 i = 0;
+
+				if (!caster || !&caster->c_marker || !caster->c_marker.target)
+					break;
+				ARR_FIND(0,MAX_SKILL_CRIMSON_MARKER,i,caster->c_marker.target[i] == bl->id);
+				if (i < MAX_SKILL_CRIMSON_MARKER)
+					caster->c_marker.target[i] = 0;
+			}
+			break;
+		case SC_H_MINE:
+			{
+				//Drop the material from target if expired
+				struct item it;
+				if (temp_n)
+					break;
+				if (!itemdb_exists(skill_get_itemid(RL_H_MINE,0)))
+					break;
+				memset(&it,0,sizeof(it));
+				it.nameid = skill_get_itemid(RL_H_MINE,0);
+				it.amount = max(skill_get_itemqty(RL_H_MINE,0),1);
+				it.identify = 1;
+				map_addflooritem(&it,it.amount,bl->m,bl->x,bl->y,0,0,0,4);
+			}
+			break;
 	}
 
 	opt_flag = 1;
@@ -10765,9 +10887,9 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
 		break;
 
 	case SC_FORCEOFVANGUARD:
-		if( !status_charge(bl,0,20) )
+		if( !status_charge(bl,0,24 - (4 * sce->val1)) )
 			break;
-		sc_timer_next(6000 + tick, status_change_timer, bl->id, data);
+		sc_timer_next(10000 + tick, status_change_timer, bl->id, data);
 		return 0;
 
 	case SC_BANDING:
@@ -11099,6 +11221,7 @@ int status_change_clear_buffs (struct block_list* bl, int type)
 			case SC_CURSEDCIRCLE_TARGET:
 			case SC_PUSH_CART:
 			case SC_STYLE_CHANGE:
+			case SC_HEAT_BARREL_AFTER:
 				continue;
 
 		 //Debuffs that can be removed.

+ 65 - 8
src/map/status.h

@@ -663,6 +663,21 @@ typedef enum sc_type {
 	SC_ANGEL_PROTECT,
 	SC_ILLUSIONDOPING,
 	SC_FLASHCOMBO,
+	SC_MOONSTAR,
+	SC_SUPER_STAR,
+
+	/**
+	 * Rebellion [Cydh]
+	 **/
+	SC_HEAT_BARREL,
+	SC_HEAT_BARREL_AFTER,
+	SC_P_ALTER,
+	SC_E_CHAIN,
+	SC_C_MARKER,
+	SC_ANTI_M_BLAST,
+	SC_B_TRAP,
+	SC_H_MINE,
+	SC_QD_SHOT_READY,
 
 #ifdef RENEWAL
 	SC_EXTREMITYFIST2,
@@ -1400,9 +1415,51 @@ enum si_type {
 	SI_2013_VALENTINE2 = 732,
 	SI_2013_VALENTINE3 = 733,
 	SI_ILLUSIONDOPING = 734,
-//	SI_ = 735,
+	SI_WIDEWEB = 735,
 	SI_CHILL = 736,
 	SI_BURNT = 737,
+	SI_PCCAFE_PLAY_TIME = 738,
+	SI_TWISTED_TIME = 739,
+	SI_FLASHCOMBO = 740,
+	SI_JITTER_BUFF1 = 741,
+	SI_JITTER_BUFF2 = 742,
+	SI_JITTER_BUFF3 = 743,
+	SI_JITTER_BUFF4 = 744,
+	SI_JITTER_BUFF5 = 745,
+	SI_JITTER_BUFF6 = 746,
+	SI_JITTER_BUFF7 = 747,
+	SI_JITTER_BUFF8 = 748,
+	SI_JITTER_BUFF9 = 749,
+	SI_JITTER_BUFF10 = 750,
+	SI_CUP_OF_BOZA = 751,
+	SI_B_TRAP = 752,
+	SI_E_CHAIN = 753,
+	SI_E_QD_SHOT_READY = 754,
+	SI_C_MARKER = 755,
+	SI_H_MINE = 756,
+	SI_H_MINE_SPLASH = 757,
+	SI_P_ALTER = 758,
+	SI_HEAT_BARREL = 759,
+	SI_ANTI_M_BLAST = 760,
+	SI_SLUGSHOT = 761,
+	SI_SWORDCLAN = 762,
+	SI_ARCWANDCLAN = 763,
+	SI_GOLDENMACECLAN = 764,
+	SI_CROSSBOWCLAN = 765,
+	SI_PACKING_ENVELOPE1 = 766,
+	SI_PACKING_ENVELOPE2 = 767,
+	SI_PACKING_ENVELOPE3 = 768,
+	SI_PACKING_ENVELOPE4 = 769,
+	SI_PACKING_ENVELOPE5 = 770,
+	SI_PACKING_ENVELOPE6 = 771,
+	SI_PACKING_ENVELOPE7 = 772,
+	SI_PACKING_ENVELOPE8 = 773,
+	SI_PACKING_ENVELOPE9 = 774,
+	SI_PACKING_ENVELOPE10 = 775,
+	SI_GLASTHEIM_TRANS = 776,
+	SI_ZONGZI_POUCH_TRANS = 777,
+	SI_HEAT_BARREL_AFTER = 778,
+	SI_DECORATION_OF_MUSIC = 779,
 	SI_MAX,
 };
 
@@ -1453,7 +1510,7 @@ enum e_mode
 //who were not on your field of sight when it happened)
 
 //opt1: Non stackable status changes.
-enum {
+enum sc_opt1 {
 	OPT1_STONE = 1, //Petrified
 	OPT1_FREEZE,
 	OPT1_STUN,
@@ -1466,7 +1523,7 @@ enum {
 };
 
 //opt2: Stackable status changes.
-enum {
+enum sc_opt2 {
 	OPT2_POISON		= 0x0001,
 	OPT2_CURSE		= 0x0002,
 	OPT2_SILENCE		= 0x0004,
@@ -1479,7 +1536,7 @@ enum {
 };
 
 //opt3: (SHOW_EFST_*)
-enum {
+enum sc_opt3 {
 	OPT3_NORMAL		= 0x00000000,
 	OPT3_QUICKEN		= 0x00000001,
 	OPT3_OVERTHRUST		= 0x00000002,
@@ -1501,7 +1558,7 @@ enum {
 	OPT3_CONTRACT		= 0x00020000,
 };
 
-enum {
+enum e_option {
 	OPTION_NOTHING		= 0x00000000,
 	OPTION_SIGHT		= 0x00000001,
 	OPTION_HIDE		= 0x00000002,
@@ -1556,14 +1613,14 @@ enum manner_flags
 /* Status Change State Flags */
 enum scs_flag {
 	SCS_NOMOVECOND		= 0x00000001, /* cond flag for nomove */
-	SCS_NOMOVE		= 0x00000002, /* unit unable to move */
+	SCS_NOMOVE			= 0x00000002, /* unit unable to move */
 	SCS_NOPICKITEMCOND	= 0x00000004, /* cond flag for nopickitem */
 	SCS_NOPICKITEM		= 0x00000008, /* player unable to pick up items */
 	SCS_NODROPITEMCOND	= 0x00000010, /* cond flag for nodropitem */
 	SCS_NODROPITEM		= 0x00000020, /* player unable to drop items */
 	SCS_NOCASTCOND		= 0x00000040, /* cond flag for nocast */
-	SCS_NOCAST		= 0x00000080, /* unit unable to cast skills */
-	SCS_NOCHAT		= 0x00000100, /* unit can't talk */
+	SCS_NOCAST			= 0x00000080, /* unit unable to cast skills */
+	SCS_NOCHAT			= 0x00000100, /* unit can't talk */
 	SCS_NOCHATCOND		= 0x00000200, /* cond flag for notalk */
 };
 

+ 12 - 2
src/map/unit.c

@@ -147,7 +147,7 @@ int unit_teleport_timer(int tid, unsigned int tick, int id, intptr_t data){
 
 	if(tid == INVALID_TIMER || mast_tid == NULL)
 		return 0;
-	else if(*mast_tid != tid)
+	else if(*mast_tid != tid || bl == NULL)
 		return 0;
 	else {
 		TBL_PC *msd = unit_get_master(bl);
@@ -155,6 +155,8 @@ int unit_teleport_timer(int tid, unsigned int tick, int id, intptr_t data){
 			*mast_tid = INVALID_TIMER;
 			unit_warp(bl, msd->bl.id, msd->bl.x, msd->bl.y, CLR_TELEPORT );
 		}
+		else // No timer needed
+			*mast_tid = INVALID_TIMER;
 	}
 	return 0;
 }
@@ -1113,7 +1115,8 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
 	}
 	else if ( target_id == src->id &&
 		skill_get_inf(skill_id)&INF_SELF_SKILL &&
-		skill_get_inf2(skill_id)&INF2_NO_TARGET_SELF )
+		(skill_get_inf2(skill_id)&INF2_NO_TARGET_SELF ||
+		(skill_id == RL_QD_SHOT && sc && sc->data[SC_QD_SHOT_READY])) )
 	{
 		target_id = ud->target; //Auto-select target. [Skotlex]
 		combo = 1;
@@ -1846,6 +1849,9 @@ static int unit_attack_timer_sub(struct block_list* src, int tid, unsigned int t
 	   )
 		return 0; // can't attack under these conditions
 
+	if (sd && &sd->sc && sd->sc.count && sd->sc.data[SC_HEAT_BARREL_AFTER])
+		return 0;
+
 	if( src->m != target->m )
 	{
 		if( src->type == BL_MOB && mob_warpchase((TBL_MOB*)src, target) )
@@ -2227,6 +2233,10 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file,
 			{// decrement the number of active pvp players on the map
 				--map[bl->m].users_pvp;
 			}
+			if( sd->state.hpmeter_visible ) {
+				map[bl->m].hpmeter_visible--;
+				sd->state.hpmeter_visible = 0;
+			}
 			sd->state.debug_remove_map = 1; // temporary state to track double remove_map's [FlavioJS]
 			sd->debug_file = file;
 			sd->debug_line = line;

部分文件因为文件数量过多而无法显示