package handling;
import constants.ServerConfig;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;
import tools.EncodingDetect;
import tools.FileoutputUtil;
import tools.StringUtil;
public enum SendPacketOpcode implements WritableIntValueHolder {
// [CLogin::OnPacket]
// 密碼驗證[完成]
LOGIN_STATUS((short) 0x00),
// 帳號信息[完成]
ACCOUNT_INFO((short) 0x01),
// 遊客登入[完成]
GUEST_ID_LOGIN((short) 0x02),
// 伺服器選單[完成]
SERVERLIST((short) 0x03),
// 角色選單[完成]
CHARLIST((short) 0x04),
// 伺服器IP[完成]
SERVER_IP((short) 0x05),
// 檢查角色名稱[完成]
CHAR_NAME_RESPONSE((short) 0x06),
// 建立角色[完成]
ADD_NEW_CHAR_ENTRY((short) 0x07),
// 刪除角色[完成]
DELETE_CHAR_RESPONSE((short) 0x08),
// 0x09 【刪除新星世界角色】[Int][Boolean] false => [Long][Long]
// 0x0A 【登入新星世界伺服器(未確認)】[Int][Byte]
// 變更角色名稱[完成] [Int][String][Short]
CHANGE_NAME((short) 0x0B),
// 0x0C [Int]
// 變更頻道[完成]
CHANGE_CHANNEL((short) 0x0D),
// Ping[完成]
PING((short) 0x0E),
// 0x0F 【Ver.178 Add】
// 購物商城[完成]
CS_USE((short) 0x10),
// 0x11 CClientSocket::OnAuthenMessage【驗證訊息】[Int][Byte]
// 0x12
// 0x13 【外掛偵測】[位置未知]
// 0x14 [位置未知]
// 0x15 【身分驗證】[Byte]
// 0x16 [位置未知]
// 0x17 CClientSocket::OnCheckCrcResult【外掛偵測】[Boolean]
// 推薦伺服器[完成]
ENABLE_RECOMMENDED((short) 0x18),
// 推薦伺服器訊息[未知] [IDA => 0 Byte]
SEND_RECOMMENDED((short) 0x19),
// 打工系統[完成]
PART_TIME((short) 0x1A),//0x1B-1 178ok
// 0x1B [-]
// 選擇伺服器[完成] [Int(伺服器編號)](原本GMS118端為CHANNEL_SELECTED)
CHANNEL_SELECTED((short) 0x1C),
// 0x1D [Long] * 8
// 0x1E [-] => 接收 0x44
// 0x1F [Int][Int]
// 0x20 【購買道具】[Int][Int][Int][Byte][Byte][Byte]
// 選擇性別 + 設置第二組密碼[完成]
CHOOSE_GENDER((short) 0x21),
// 選擇性別 + 設置第二組密碼回覆[完成]
GENDER_SET((short) 0x22),
// 外掛偵測[完成]
HACKSHIELD_REQUEST((short) 0x23),
// 強制變更角色名稱[完成] [-]
FORCED_CHANGE_CHAR_NAME((short) 0x24),
// 強制變更角色名稱訊息[完成] [Byte]
FORCED_CHANGE_CHAR_NAME_NOTICE((short) 0x25),
// 伺服器狀態[完成]
SERVERSTATUS((short) 0x26),
// 背景驗證[完成]
LOGIN_AUTH((short) 0x27),
// 0x28 [位置未知]
// 0x29 [位置未知]
// 0x2A [Byte][Byte][Int]
// 0x2B 【新星世界按鈕 + 刪除角色按鈕】[Int]
// 顯示視窗[完成]
SHOW_MAPLESTORY((short) 0x2C),
// 第二組密碼錯誤[完成]
SECONDPW_ERROR((short) 0x2D),
// 創建角色第二組密碼驗證[完成]【獲得驗證碼 + 第二組密碼錯誤反饋 + 獲得可建立職業】
CREATE_CHAR_RESPONSE((short) 0x4DA),
// 0x4DB
//================================
// CWvsContext::OnPacket 開始
//================================
// 道具操作[完成]
INVENTORY_OPERATION((short) 0x2E),
// 擴充道具欄位[完成]
INVENTORY_GROW((short) 0x2F),
// 更新能力值[完成]
UPDATE_STATS((short) 0x30),
// 獲得輔助效果[完成]
GIVE_BUFF((short) 0x31),
// 取消輔助效果[完成]
CANCEL_BUFF((short) 0x32),
// 臨時能力值開始[完成]
TEMP_STATS((short) 0x33),
// 重置臨時能力值[完成]
TEMP_STATS_RESET((short) 0x34),
// 更新技能[完成]
UPDATE_SKILLS((short) 0x35),
// 幻影俠盜複製技能成功
UPDATE_STOLEN_SKILLS((short) 0x36),
// 幻影俠盜竊取技能時顯示
TARGET_SKILL((short) 0x37),
// 0x38 [Byte]
// 偷竊技能檢查(Done)
STEEL_SKILL_CHECK((short) 0x39),
// 0x3A
// 0x3B
// 名聲回覆[完成]
FAME_RESPONSE((short) 0x3C),
// 顯示角色狀態信息[完成]
SHOW_STATUS_INFO((short) 0x3D),
// 訊息[完成]
SHOW_NOTES((short) 0x3E),
// 瞬移之石[完成]
TROCK_LOCATIONS((short) 0x3F),
// 測謊機[完成]
LIE_DETECTOR((short) 0x40),
// 炸彈測謊機[完成]
BOMB_LIE_DETECTOR((short) 0x41),
// 0x42 (null)
// 設置舉報[完成]
REPORT_RESPONSE((short) 0x43),
// 舉報時間[完成]
REPORT_TIME((short) 0x44),
// 舉報狀態[完成]
REPORT_STATUS((short) 0x45),
// 0x46 [Int] [do { [Int][Int] }] [176+]
// 更新騎寵[完成]
UPDATE_MOUNT((short) 0x47),
// 任務完成[完成]
SHOW_QUEST_COMPLETION((short) 0x48),
// 精靈商人[完成]
SEND_TITLE_BOX((short) 0x49),
// 使用技能書[完成]
USE_SKILL_BOOK((short) 0x4A),
// 重置SP[完成]
SP_RESET((short) 0x4B),
// 重置AP[完成]
AP_RESET((short) 0x4C),
// 經驗瓶[完成]
EXP_POTION((short) 0x4D),
// 散佈道具[完成] [Byte][Int][Byte]
DISTRIBUTE_ITEM((short) 0x4E),
// 擴充角色欄位[完成]
EXPAND_CHARACTER_SLOTS((short) 0x4F),
// 申請變更角色名稱[完成]
APPLY_NAME_CHANGE((short) 0x50),
// 向上整理[完成]
FINISH_SORT((short) 0x51),
// 種類排序[完成]
FINISH_GATHER((short) 0x52),
// 0x53 (null)
// 0x54 (null)
// 角色信息[完成]
CHAR_INFO((short) 0x55),
// 隊伍操作[完成]
PARTY_OPERATION((short) 0x56),
// 尋找隊員
MEMBER_SEARCH((short) 0x57),
// 隊伍搜尋
PARTY_SEARCH((short) 0x58),
// 0x59
// 0x5A
// 0x5B (null)
// 遠征隊操作
EXPEDITION_OPERATION((short) 0x5C),
// 好友列表[完成]
BUDDYLIST((short) 0x5D),
// 0x5E [176+]
// 0x5F [176+]
// 請求回覆[完成]
GUILD_REQUEST((short) 0x60),
// 公會操作[完成]
GUILD_OPERATION((short) 0x61),
// 公會聯盟操作[完成]
ALLIANCE_OPERATION((short) 0x62),
// 時空門[完成]
SPAWN_PORTAL((short) 0x63),
// 開放通道[完成]
MECH_PORTAL((short) 0x64),
// 伺服器訊息[完成]
SERVERMESSAGE((short) 0x65),
// 阿斯旺海防戰訊息[完成]
AZWAN_MSG((short) 0x66),
// 花生機獎勵[完成]
PIGMI_REWARD((short) 0x67),
// 獲得道具[完成]
ITEM_OBTAIN((short) 0x68),
// 智慧貓頭鷹[完成]
OWL_OF_MINERVA((short) 0x69),
// 智慧貓頭鷹回覆
OWL_RESULT((short) 0x6A),
// 0x6B (null)
// 0x6C (null)
// 戒指操作請求[完成]
ENGAGE_REQUEST((short) 0x6D),
// 戒指操作返回[完成]
ENGAGE_RESULT((short) 0x6E),
// 結婚禮物[完成]
WEDDING_GIFT((short) 0x6F),
// 結婚地圖變更[完成] [Int][Int]
WEDDING_MAP_TRANSFER((short) 0x70),
// 使用寵物飼料[完成]
USE_CASH_PET_FOOD((short) 0x71),
// 使用寵物技能[完成]
USE_CASH_PET_SKILL((short) 0x72),
// 0x73 [-]
// 神秘的鐵砧[完成]
FUSION_ANVIL((short) 0x74),
// 0x75 [Byte][Long]
// 黃色公告[完成]
YELLOW_CHAT((short) 0x76),
// 商店優惠[完成]
SHOP_DISCOUNT((short) 0x77),
// 捕捉怪物[完成]
CATCH_MOB((short) 0x78),
// 建立玩家Npc[完成] [Byte]
MAKE_PLAYER_NPC((short) 0x79),
// 玩家Npc[完成]
PLAYER_NPC((short) 0x7A),
// 0x7B(null)
// 隱藏Npc[完成]
DISABLE_NPC((short) 0x7C),
// 獲得卡片[完成]
GET_CARD((short) 0x7D),
// 卡片設置[完成] [Int]
CARD_SET((short) 0x7E),
// 變更小時[完成]
CHANGE_HOUR((short) 0x7F),
// 重置小地圖[完成]
RESET_MINIMAP((short) 0x80),
// 教師更新[完成]
CONSULT_UPDATE((short) 0x81),
// 班級更新[完成]
CLASS_UPDATE((short) 0x82),
// 網頁瀏覽更新[完成]
WEB_BOARD_UPDATE((short) 0x83),
// 擊殺數量[完成]
SESSION_VALUE((short) 0x84),
// 組隊數值[完成]
PARTY_VALUE((short) 0x85),
// 地圖數值[完成]
MAP_VALUE((short) 0x86),
// 0x87 [String][String]
// 精靈墜飾[完成]
EXP_BONUS((short) 0x88),
// 家族系統[已關閉][完成]
SEND_PEDIGREE((short) 0x89),
OPEN_FAMILY((short) 0x8A),
FAMILY_MESSAGE((short) 0x8B),
FAMILY_INVITE((short) 0x8C),
FAMILY_JUNIOR((short) 0x8D),
SENIOR_MESSAGE((short) 0x8E),
FAMILY((short) 0x8F),
REP_INCREASE((short) 0x90),
FAMILY_LOGGEDIN((short) 0x91),
FAMILY_BUFF((short) 0x92),
FAMILY_USE_REQUEST((short) 0x93),
// (公會成員)升級訊息[完成]
LEVEL_UPDATE((short) 0x94),
// 结婚訊息[完成]
MARRIAGE_UPDATE((short) 0x95),
// 轉職訊息[完成]
JOB_UPDATE((short) 0x96),
// 項鍊擴充[完成]
SLOT_UPDATE((short) 0x97),
// 請求跟隨提示[完成]
FOLLOW_REQUEST((short) 0x98),
// 新頂部訊息[完成]
TOP_MSG2((short) 0x99),
// 頂部訊息[完成]
TOP_MSG((short) 0x9A),
// 新頂部訊息[完成]
NEW_TOP_MSG((short) 0x9B),
// 中間訊息[完成]
MID_MSG((short) 0x9C),
// 清理中間的訊息[完成]
CLEAR_MID_MSG((short) 0x9D),
// 特殊訊息[完成]
SPECIAL_MSG((short) 0x9E),
// 楓之谷提示訊息[完成]
MAPLE_TIP_MSG((short) 0x9F),
// 楓之谷管理員訊息[完成]
MAPLE_ADMIN_MSG((short) 0xA0),
// 檢查道具欄位[完成]
INVENTORY_FULL((short) 0xA1),
// 更新美洲豹[完成]
UPDATE_JAGUAR((short) 0xA2),
// 神之子能力值
ZERO_STATS((short) 0xA3),
// 神之子更新
ZERO_UPDATE((short) 0xA4),
// 0xA5
// 終極冒險家[完成]
ULTIMATE_EXPLORER((short) 0xA6),
// 0xA7
// 能力值信息[完成]
SPECIAL_STAT((short) 0xA8),
// 更新培養皿時間[完成]
UPDATE_IMP_TIME((short) 0xA9),
// 使用培養皿[完成]
ITEM_POT((short) 0xAA),
// 0xAB
// 0xAC
// 武陵道場訊息
MULUNG_MESSAGE((short) 0xAD),
// 傳授角色技能
GIVE_CHARACTER_SKILL((short) 0xAE),
// 0xAF【00 00】
// 0xB0
// 0xB1
// 0xB2
// 武陵排行[完成]
MULUNG_DOJO_RANKING((short) 0xB3),
// 0xB4
// 更新潛在能力值
UPDATE_INNER_ABILITY((short) 0xB5),
// 0xB6
// 使用/刪除技能[完成]
REPLACE_SKILLS((short) 0xB7),
// 內在能力值訊息[完成]
INNER_ABILITY_MSG((short) 0xB8),
// 地圖指引[完成] [Int]
MINIMAP_ARROW((short) 0xB9),
// 0xBA [Boolean][Int] true => [Int]
// 角色潛在能力設定[完成]
ENABLE_INNER_ABILITY((short) 0xBB),
// 角色潛在能力重置
DISABLE_INNER_ABILITY((short) 0xBC),
// 獲得名聲值[完成]
UPDATE_HONOUR((short) 0xBD),
// 阿斯旺未知[未知]
AZWAN_UNKNOWN((short) 0xBE),
// 阿斯旺結果[完成] [Int][Int][Int][Int][Int][Int][Int][Int][Boolean]
AZWAN_RESULT((short) 0xBF),
// 阿斯旺擊殺[完成]
AZWAN_KILLED((short) 0xC0),
// 0xC1 【point】
// 0xC2 阿斯旺復活[String(玩家名稱)][Int](復活時間)
// 能力傳播者[完成]
CIRCULATOR_ON_LEVEL((short) 0xC3),
// 十字獵人訊息[完成]
SILENT_CRUSADE_MSG((short) 0xC4),
// 十字獵人商店[完成]
SILENT_CRUSADE_SHOP((short) 0xC5),
// 0xC6 幸運怪物【UI/UIWindow2.img/mapleMuseum】【UI/UIWindow2.img/mapleMuseum2)(UI/UIWindow2.img/luckyMonstery】
// 0xC7
// 0xC8 幸運怪物【UI/UIWindow2.img/mapleMuseum】【UI/UIWindow2.img/mapleMuseum2)(UI/UIWindow2.img/luckyMonstery】
// 0xC9 【state】
// 0xCA 【state】
// 0xCB
// 自動飛行[完成] [Int]
AUTO_FLYING((short) 0xCC),
// 禁止完成任務
DISALLOW_DELIVERY_QUEST((short) 0xCD),
// 0xCE 【彈跳視窗】
// 0xCF 【賓果活動?】 [Byte] 【deck】【bingo】
// 0xD0 【賓果活動?】 [Byte] 【deck】【bingo】
// 0xD1
// 0xD2 【獲取物品?】【---】
// 楓葉點數(完成)
MAPLE_POINT((short) 0xD3),
// 0xD4 [Long]
// 0xD5 【方塊洗洗樂?】
// 0xD6 【重置神聖SP】 [Byte][Int][Byte]
// 0xD7 【Debug信息?】 [Short](年)[Short](月)[Short](日)[Short](點)[Short](分)[Int]((DWORD)%u, (LONG)%d)【(DWORD)%u, (LONG)%d】
// 0xD8 【Debug信息?】 [Int][Long]
// 0xD9
// 0xDA 【沒有可以套用回復效果的對象。】【Recv => 0x176([Int][Byte])】
// 0xDB
// 0xDC 【Recv => 0xC9([Int][Short][Long])】
// 0xDD 【Recv => 0xC9([Int][Short][Long])】
// 0xDE
// 變成破壞天使【Recv => 0x173([Byte])
CHANGE_ANGELIC((short) 0xDF),
// 解鎖充電技能
UNLOCK_CHARGE_SKILL((short) 0xE0),
// 上鎖充電技能
LOCK_CHARGE_SKILL((short) 0xE1),
//自動登入
AUTO_LOGIN((short) 0xE2),
// 0xE3 【寵物名牌戒指?】【[BP:%02d] %d】【///////////////////////////////】
// 進化系統[完成]
EVOLVING_ACTION((short) 0xE4),
// BossPvP技能【Recv => 0x16D】[完成]
BOSSPVP_SKILL_UI((short) 0xE5),
// 0xE6
// 公會搜索
GUILD_SEARCH((short) 0xE7),
// 0xE8
// 0xE9 【幸運怪物】【UI/UIWindow2.img/mapleMuseum】【UI/UIWindow2.img/mapleMuseum2】【UI/UIWindow2.img/luckyMonstery】【UI/UIWindow2.img/luckyMonResult】
// 0xEA 【獲取物品?】
// 0xEB 【10 00 00 00 00 00 00 00 00 00 00 00 00 00 00】
// 0xEC
// 請求進程列表[完成]
SYSTEM_PROCESS_LIST((short) 0xED),
// 0xEE
// 0xEF
// 0xF0
// 情景喇叭訊息[完成]
AVATAR_MEGA_RESULT((short) 0xF1),
// 情景喇叭[完成]
AVATAR_MEGA((short) 0xF2),
// 移除情景喇叭[完成]
AVATAR_MEGA_REMOVE((short) 0xF3),
// 活動清單[完成]
EVENT_LIST((short) 0xF4),
// 楓之谷聊天室
MESSENGER_OPEN((short) 0xF5),
// 0xF6 【簽名】
// 0xF7 【問候玩家】
// 王冠活動[完成]
EVENT_CROWN((short) 0xF8),
// 0xF9 [Byte][Byte]
// 自由轉職[完成]
FREE_CHANGE_JOB((short) 0xFA),
// 0xFB
// 0xFC
// 0xFD
// 0xFE
// 0xFF
// 0x100
// 0x101
// 0x102
// 0x103
// 0x104 【頂部訊息】
// 0x105 【IP驗證】
// 0x106 【Etc/CashPackage.img/%d/SN】
// 0x107 【獸魔激鬥擂台賽】
// 0x108 【UI/UIWindowBT.img/MonsterBattleSelection/num】
// 0x109 【任務抵達】
// 0x10A
// 0x10B
// 0x10C
// 0x10D
// 0x10E
// 開啟墜飾欄(175+)
UPDATE_PENDANT_SLOT((short) 0x10F),
// 魔王競技場配對成功[完成]
BOSSPVP_FOUND((short) 0x110),
// 魔王競技場配對失敗[完成]【Recv => 0x1FD ([Byte])】
BOSSPVP_FAIL((short) 0x111),
// 參加魔王競技場配對[完成]
BOSSPVP_SEARCH((short) 0x112),
// 0x113
// 0x114
// 0x115
// 0x116
// 0x117 【00】
// 0x118 【伺服器移民】
// 0x119 【擴充倉庫欄位】
// 菁英王訊息[完成]
ELITE_BOSS_NOTICE((short) 0x11A),
// 0x11B 【00 00 00 00 00 00 00 00 00】
// 咒文的痕跡[完成]
EQUIPMENT_ENCHANT((short) 0x11C),
// The Seed 排行
TOWER_OF_OZ_RANKING((short) 0x11D),
// The Seed 好友排行
TOWER_OF_OZ_FRIEND_RANKING((short) 0x11E),
// The Seed 獎勵[完成] [Int](樓層)[Int](時間)[Int](The Seed點數)[Int](獲得經驗值)[Int][Int]
TOWER_OF_OZ_REWARD((short) 0x11F),
// 0x120 [Int][Int][Byte]
// 0x121
// 0x122
// 0x123
// 0x124
// 0x125
// 離開遊戲[完成]
EXIT_GAME((short) 0x126),
// 0x127
// 0x128
// 0x129
// 0x12A 【臉部情緒?】【Unlock request Failed】
// 0x12B 【Recv => 0x23D ([Byte][Int][String][Byte])】
// 0x12C 【Item/Cash/0501.img/%08d/effect】
// 0x12D
// 0x12E
// 0x12F
// 0x130
// 0x131
// 0x132 【彈跳視窗】
// 申請變更角色名稱[完成]
NAME_CHANGE((short) 0x133),
// 雪橇活動[完成]【UI/Sboating.img/Basic/backgrnd】【Recv => 0x243 ([Byte])】
SELECT_SLEIGH((short) 0x134),
// 潘姆音樂[完成]
PAM_SONG((short) 0x135),
// 餽贈認證[完成]
MAPLE_FEED_AUTHEN((short) 0x136),
// 速配指數[完成]
QUICK_PAIR_RESULT((short) 0x137),
// 0x138
// 0x139
// 0x13A
// 贈送小鋼珠[完成]
GIFTS_BALL((short) 0x13B),
// 九龍珠
DRAGON_BALL((short) 0x13C),
// 開啟寶箱[完成]
TREASURE_BOX((short) 0x13D), //[Int] [0:金、1:銀、5:神秘開罐器、6:幻想開罐器]
// 0x13E
// 0x13F 【釣魚系統】
// 0x140
// 0x141 【周圍沒有攻擊的怪物。】、【無法連續使用.】
// 管理員警告[完成]
GM_POLICE((short) 0x142),
// 新年賀卡[完成]
NEW_YEAR_CARD((short) 0x143),
// 隨機變身藥水[完成]
RANDOM_MORPH((short) 0x144),
// 個性文字[完成](5480000)
DISPOSITION_TEXT((short) 0x145),
// 經驗值椅子[完成]
CHAIR_EXP_MSG((short) 0x146),
// 0x147
// 0x148
// 變更頻道 + 訊息[完成]
AUTO_CC_MSG((short) 0x149),
// 0x14A
// 0x14B
// 0x14C
// 0x14D [Int][Int]
// 0x14E
// 0x14F
// 0x150
// 獲得獎勵[完成]
REWARD((short) 0x151),
// 0x152
// 0x153
// 閃炫方塊回覆
SHIMMER_CUBE_RESPONSE((short) 0x154),
// 0x155 178新增
// 0x156 【任務抵達】
// 0x157
// 0x158 【購物商城 => [B0 1A 25 00 00 00 00 00 00 80 59 DA 6B 2E CE 01 80 29 A5 02 EC 33 CE 01 18 00 00 00 98 A3 98 00 99 A3 98 00 9A A3 98 00 9B A3 98 00 24 52 A6 00 25 52 A6 00 76 6F 40 01 77 6F 40 01 78 6F 40 01 79 6F 40 01 20 4A CB 01 22 4A CB 01 2E 4A CB 01 2F 4A CB 01 30 4A CB 01 4E 4A CB 01 4F 4A CB 01 50 4A CB 01 55 4A CB 01 6C 4A CB 01 6D 4A CB 01 6E 4A CB 01 6F 4A CB 01 70 4A CB 01]
// 0x159 【[BlackListLoadDone] [BlackSize:%d] [sTargetIGNs:%s]】
// 0x15A 【神奇剪刀】
// 0x15B
// 0x15C 【組隊任務?】
// 0x15D
// 0x15E 【輸入觀戰板內容】【Recv => 0x95】
// 0x15F 【UI/UIMiniGame.img/starPlanetResult/backgrnd】
// 0x160 【新星世界試穿衣服】
// 0x161 【等待列表】
// 0x162
// 0x163
// 0x164
// 0x165 178新增
// 0x166 178新增
// 0x167 178新增
// 0x168 178新增
// 0x169 178新增
// 0x16A 178新增
// 0x16B 178新增
// 0x16C
// 0x16D 179新增
// 0x16E 179新增
// 0x16F 179新增
// 咒文的痕跡(FOREVER_TIME)
FEVER_TIME((short) 0x7FFE),
// 技能組合[完成]
SKILL_MACRO((short) 0x170),
//================================
// CStage::OnPacket 開始(179-完成)
//================================
// 地圖傳送[完成]
WARP_TO_MAP((short) 0x171),
// 農場[台版關閉]
FARM_OPEN((short) 0x172),
// 拍賣系統[完成]
MTS_OPEN((short) 0x173),
// 購物商城[完成]
CS_OPEN((short) 0x174),
// 購物商城信息[完成]
CS_INFO((short) 0x175),
CASH_SHOP((short) 0x7FFE),
//================================
// CMapLoadable::OnPacket 開始(179-完成)
//================================
// 移除BG層[完成]
REMOVE_BG_LAYER((short) 0x176),
// 變更背景[完成]
CHANGE_BACKGROUND((short) 0x177),
// 設置物件狀態
SET_MAP_OBJECT_VISIBLE((short) 0x178),
// 0x179
// 重置畫面[完成]
RESET_SCREEN((short) 0x17A),
//================================
// CField::OnPacket 開始(178-完成)
//================================
// 地圖阻擋[完成]
MAP_BLOCKED((short) 0x17B),
// 伺服器阻擋[完成]
SERVER_BLOCKED((short) 0x17C),
// 隊伍阻擋[完成]
PARTY_BLOCKED((short) 0x17D),
// 裝備效果[完成]
SHOW_EQUIP_EFFECT((short) 0x17E),
// 组队家族聊天[别人说话可抓到]
MULTICHAT((short) 0x17F),
// 世界聊天模式[完成]
WORLD_MULTICHAT((short) 0x180),
// 悄悄话
WHISPER((short) 0x181),
// 夫妻聊天
SPOUSE_CHAT((short) 0x182),
// Boss血條[完成]
BOSS_ENV((short) 0x183),
// 地圖效果[完成]
MAP_EFFECT((short) 0x184),
// 祝賀音樂(5100000)[完成]
CASH_SONG((short) 0x185),
// GM效果[完成]
GM_EFFECT((short) 0x186),
// GM日誌[完成]
GM_LOG((short) 0x187),
// 選邊站[完成]
OX_QUIZ((short) 0x188),
// GM活動說明[完成]
GMEVENT_INSTRUCTIONS((short) 0x189),
// 計時器[完成]
CLOCK((short) 0x18A),
// 船隻移動[完成]
BOAT_MOVE((short) 0x18B),
// 船隻狀態[完成]
BOAT_STATE((short) 0x18C),
// 0x18D
// 0x18E
// 0x18F
// 停止計時[完成]
STOP_CLOCK((short) 0x190),
// 納希競技大會分數[完成]
ARIANT_SCOREBOARD((short) 0x191),
// 0x192
// 金字塔更新[完成]
PYRAMID_UPDATE((short) 0x193),
// 金字塔分數[完成]
PYRAMID_RESULT((short) 0x194),
// 快速按鍵[完成]
QUICK_SLOT((short) 0x195),
// 移動平臺[完成]
MOVE_PLATFORM((short) 0x196),
// 0x197 【接收 => 0x2B7】
// 金字塔擊殺數量[完成]
PYRAMID_KILL_COUNT((short) 0x198),
// 0x199 [Int][Int][Int][Int][String]
// 0x19A [Int][Int][Byte]
// 0x19B [Int][Int]
// sub_697DDF {
// 0x19C [-]
// }
// PvP信息[完成]
PVP_INFO((short) 0x19D),
// 角色站立方向狀態[完成]
DIRECTION_STATUS((short) 0x19E),
// 惡魔之力[完成]
GAIN_FORCE((short) 0x19F),
// 組隊任務達成率[完成]
ACHIEVEMENT_RATIO((short) 0x1A0),
// 快速移動[完成]
QUICK_MOVE((short) 0x1A1),
// 0x1A2
// 0x1A3
// 0x1A4
// 0x1A5
// 0x1A6 // 副本BOSS技能特效
// 0x1A7
// 0x1A8 // 副本BOSS技能特效
// 0x1A9
// 0x1AA
// 0x1AB
// 0x1AC
// 0x1AD
// 0x1AE // 帳號保護
// 0x1AF
// 0x1B0
// 0x1B1
// 0x1B2
// 0x1B3 // 完成造型王預賽參加申請
// 0x1B4 // 菁英怪物
// 0x1B5
// 0x1B6
// 0x1B7
// 0x1B8
// 0x1B9
// 0x1BA
// 0x1BB
// 0x1BC
// 0x1BD
//================================
// CUserPool::OnPacket 開始(179-完成)
//================================
// 召喚玩家[完成]
SPAWN_PLAYER((short) 0x1BE),
// 移除玩家[完成]
REMOVE_PLAYER_FROM_MAP((short) 0x1BF),
//================================
// CUserPool::OnUserCommonPacket 開始(179-完成)
//================================
// 普通聊天[完成]
CHATTEXT((short) 0x1C0),//0x199+1C 176ok
// 黑板[完成]
CHALKBOARD((short) 0x1C1),
// 更新玩家[完成]
UPDATE_CHAR_BOX((short) 0x1C2),
// 消費效果[未知]
SHOW_CONSUME_EFFECT((short) 0x1C3),
// 使用卷軸效果[完成]
SHOW_SCROLL_EFFECT((short) 0x1C4),
// 0x1C5(null)
// 咒文的痕跡[完成]
SHOW_ENCHANTER_EFFECT((short) 0x1C6),
// 使用魂之珠[完成]
SHOW_SOULSCROLL_EFFECT((short) 0x1C7),
// 放大鏡效果[完成]
SHOW_MAGNIFYING_EFFECT((short) 0x1C8),
// 擴充潛能欄位
SHOW_POTENTIAL_EXPANSION((short) 0x1C9),
// 潛能重置效果
SHOW_POTENTIAL_RESET((short) 0x1CA),
// 重新設置潛能效果
SHOW_BONUS_POTENTIAL_RESET((short) 0x1CB),
// 0x1CC 使用幸運卷?
// 顯示煙花效果
SHOW_FIREWORKS_EFFECT((short) 0x1CD),
// 0x1CE
// 0x1CF
// 0x1D0
// 顯示星岩效果
SHOW_NEBULITE_EFFECT((short) 0x1D1),
// 顯示合成效果
SHOW_FUSION_EFFECT((short) 0x1D2),
// PvP攻擊
PVP_ATTACK((short) 0x1D3),
// PvP煙霧[完成] find:[ invenom ]
PVP_MIST((short) 0x1D4),
// 0x1D5
//PvP冷卻時間
PVP_COOL((short) 0x1D6),
//磁場技能
TESLA_TRIANGLE((short) 0x1D7),
//0x1D8
//跟随状态
FOLLOW_EFFECT((short) 0x1D9),
//顯示組隊任務獎勵[完成]
SHOW_PQ_REWARD((short) 0x1DA),
//工藝效果
CRAFT_EFFECT((short) 0x1DB),
//工藝完成
CRAFT_COMPLETE((short) 0x1DC),
//採集結束特效
HARVESTED_EFFECT((short) 0x1DD),
//採集結束
HARVESTED((short) 0x1DE),
// 0x1DF
//玩家傷害
PLAYER_DAMAGED((short) 0x1E0),
//奈特的金字塔
NETT_PYRAMID((short) 0x1E1),
//設定特效
SET_PHASE((short) 0x1E2),
// 0x1E3
// 0x1E4
// 0x1E5
// 0x1E6
//潘姆音樂
PAMS_SONG((short) 0x1E7),
//取消椅子
CANCEL_CHAIR((short) 0x1E8),
// 0x1E9
// 0x1EA
//攻擊Skin[完成]
SHOW_DAMAGE_SKIN((short) 0x1EB),
// 0x1EC (Done)
// 0x1ED (Done)
// 0x1EE
// 0x1EF
// 0x1F0
// 0x1F1
// 0x1F2
// 0x1F3
// 0x1F4
// 0x1F5
// 0x1F6
//================================
// CUserPool::OnUserPetPacket 開始(179-完成)
//================================
//召喚寵物[完成]
SPAWN_PET((short) 0x1F7),
//寵物移動[完成]
MOVE_PET((short) 0x1F8),
//寵物說話[完成]
PET_CHAT((short) 0x1F9),
//變更寵物名稱
PET_NAMECHANGE((short) 0x1FA),
// 0x1FB
//寵物例外清單[完成]
PET_EXCEPTION_LIST((short) 0x1FC),
//寵物顏色[完成]
PET_COLOR((short) 0x1FD),
//寵物大小[完成]
PET_SIZE((short) 0x1FE),
// 0x1FF
//顯示寵物[完成]
SHOW_PET((short) 0x200),
//寵物指令[完成]
PET_COMMAND((short) 0x201),
//================================
// CUserPool::OnUserDragonPacket 開始(179-完成)
//================================
//召喚龍神[完成]
DRAGON_SPAWN((short) 0x202),
//龍神移動[完成]
DRAGON_MOVE((short) 0x203),
//移除龍神[完成]
DRAGON_REMOVE((short) 0x204),
//================================
// CUserPool::OnUserAndroidPacket 開始(179-完成)
//================================
//召喚機器人[完成]
ANDROID_SPAWN((short) 0x205),
//機器人移動[完成]
ANDROID_MOVE((short) 0x206),
//機器人情緒[完成]
ANDROID_EMOTION((short) 0x207),
//更新機器人外觀[完成]
ANDROID_UPDATE((short) 0x208),
//移除機器人[完成]
ANDROID_DEACTIVATED((short) 0x209),
//================================
// CUserPool::OnUserHakuPacket1 開始(179-完成)
//================================
//變更花弧
HAKU_CHANGE_1((short) 0x20A),
// 0x20B
//花狐使用技能後發的(Done)
HAKU_USE_BUFF((short) 0x20C),
//變更花弧
HAKU_CHANGE_0((short) 0x20D),
// 0x20E
//花弧未知
HAKU_UNK((short) 0x20F),
//================================
// CUserPool::OnUserHakuPacket2 開始(179-完成)
//================================
// 0x210
//花狐移動
HAKU_MOVE((short) 0x211),
//花狐更新
HAKU_UPDATE((short) 0x212),
//變更花狐
HAKU_CHANGE((short) 0x213),
// 0x214[NULL]
// 0x215[NULL]
//召喚花狐[完成]
SPAWN_HAKU((short) 0x216),
// 0x217
// 0x218
//================================
// CUserPool::OnUserRemotePacket 開始(179-完成)
//================================
// 玩家移動[完成]
MOVE_PLAYER((short) 0x219),
// 0x21A
// 近距離攻擊[完成]
CLOSE_RANGE_ATTACK((short) 0x21B),
// 遠距離攻擊[完成]
RANGED_ATTACK((short) 0x21C),
// 魔法攻擊[完成]
MAGIC_ATTACK((short) 0x21D),
// 能量攻擊[完成]
ENERGY_ATTACK((short) 0x21E),
//技能效果[完成][用主教的创世之破抓到包]
SKILL_EFFECT((short) 0x21F),
//移動攻擊[完成][33121214 - 狂野機關砲]
MOVE_ATTACK((short) 0x220),
//取消技能效果[完成]
CANCEL_SKILL_EFFECT((short) 0x221),
//玩家受到傷害[完成]
DAMAGE_PLAYER((short) 0x222),
//玩家面部表情[完成]
FACIAL_EXPRESSION((short) 0x223),
// 0x224
//显示物品效果
SHOW_EFFECT((short) 0x225),
//显示头上称号
SHOW_TITLE((short) 0x226),
//天使破壞者變更
ANGELIC_CHANGE((short) 0x227),
// 0x228
// 0x229
// 0x22A
//顯示椅子效果[完成]
SHOW_CHAIR((short) 0x22B),
//更新玩家外觀[完成]
UPDATE_CHAR_LOOK((short) 0x22C),
//玩家外觀效果[完成]
SHOW_FOREIGN_EFFECT((short) 0x22D),
//獲得異常狀態[完成]
GIVE_FOREIGN_BUFF((short) 0x22E),
//取消異常狀態
CANCEL_FOREIGN_BUFF((short) 0x22F),
//更新隊員血量
UPDATE_PARTYMEMBER_HP((short) 0x230),
//讀取公會名稱[完成]
LOAD_GUILD_NAME((short) 0x231),
//讀取公會標誌[完成]
LOAD_GUILD_ICON((short) 0x232),
//讀取隊伍(Done)
LOAD_TEAM((short) 0x233),
//採集
SHOW_HARVEST((short) 0x234),
//PvP血量
PVP_HP((short) 0x235),
// 0x236
// 0x237
// 0x238
// 0x239
// 0x23A
// 0x23B
// 0x23C
// 0x23D
// 0x23E
// 0x23F
//神之子狀態
ZERO_MUITTAG((short) 0x240),
// 0x241
// 0x242
// 0x243
// 0x244[NULL]
// 0x245
// 0x246
// 0x247
// 0x248
//================================
// CUserPool::OnUserLocalPacket 開始(179-完成)
//================================
// 動畫表情[完成]
DIRECTION_FACIAL_EXPRESSION((short) 0x249),
// 畫面移動
MOVE_SCREEN((short) 0x24A),
// 顯示物品效果[完成]
SHOW_SPECIAL_EFFECT((short) 0x24B),
// 武陵道場傳送
CURRENT_MAP_WARP((short) 0x24C),
// 0x24D
// 使用福包成功(5200000)[完成]
MESOBAG_SUCCESS((short) 0x24E),
// 使用福包失敗(5200000)[完成]
MESOBAG_FAILURE((short) 0x24F),
// 更新任務信息
UPDATE_QUEST_INFO((short) 0x250),
// 血量減少
HP_DECREASE((short) 0x251),
// 變更寵物技能[完成]
PET_FLAG_CHANGE((short) 0x252),
// 玩家提示[完成]
PLAYER_HINT((short) 0x253),
// 播放事件音效
PLAY_EVENT_SOUND((short) 0x254),
// 播放迷你遊戲音效
PLAY_MINIGAME_SOUND((short) 0x255),
// 生產用技能
MAKER_SKILL((short) 0x256),
// 0x257 (Null)
// 0x258
// 開啟介面[完成]
OPEN_UI((short) 0x259),
// 0x25A
// 開啟選項介面[完成]
OPEN_UI_OPTION((short) 0x25B),
// 鎖定玩家按鍵動作[完成]
INTRO_LOCK((short) 0x25C),
// 劇情鎖定介面[完成]
INTRO_ENABLE_UI((short) 0x25D),
// 劇情鎖定介面2[完成]
INTRO_DISABLE_UI((short) 0x25E),
// 召喚初心者幫手[完成]
SUMMON_HINT((short) 0x25F),
// 初心者幫手訊息[完成]
SUMMON_HINT_MSG((short) 0x260),
// 0x261
// 0x262
// 0x263
// 狂狼勇士連擊[完成]
ARAN_COMBO((short) 0x264),
// 狂狼勇士鬥氣重生[完成]
ARAN_COMBO_RECHARGE((short) 0x265),
// 0x266
// 0x267
//公告提示[完成]
GAME_MSG((short) 0x268),
//遊戲訊息[完成]
GAME_MESSAGE((short) 0x269),//0x236+3 175ok
// 0x26A [String][Int]
//
BUFF_ZONE_EFFECT((short) 0x26B),
//
DAMAGE_METER((short) 0x26C),
//炸彈攻擊
TIME_BOMB_ATTACK((short) 0x26D),
//跟随移动
FOLLOW_MOVE((short) 0x26E),
//跟随信息
FOLLOW_MSG((short) 0x26F),
// 0x270
//建立終極冒險家
CREATE_ULTIMATE((short) 0x271),
//採集訊息
HARVEST_MESSAGE((short) 0x272),
//符文介面
RUNE_ACTION((short) 0x273),
//礦物背包
OPEN_BAG((short) 0x274),
//龍之氣息
DRAGON_BLINK((short) 0x275),
//PvP冰騎士
PVP_ICEGAGE((short) 0x276),
//位置信息[完成]
DIRECTION_INFO((short) 0x277),
//重新獲得勳章
REISSUE_MEDAL((short) 0x278),
// 0x279
// 0x27A [Int]
//动画播放[完成]
PLAY_MOVIE((short) 0x27B),
//蛋糕 vs 派餅 活動
CAKE_VS_PIE_MSG((short) 0x27C),
//幻影俠盜卡片[完成]
PHANTOM_CARD((short) 0x27D),
// 0x27E [Int]
// 0x27F [Int]
//夜光連擊
LUMINOUS_COMBO((short) 0x280),
// 0x281
// 0x282
// 0x283
// 0x284
// 0x285
// 0x286
// sub_6DB241 {+0xE 178ok
// 0x287
// 0x288
// }
// 0x289
// 0x28A
// 0x28B
// 0x28C
// 0x28D
// 0x28E
// 0x28F
// 0x290
// 0x291
//時間膠囊[完成] (3010587)
TIME_CAPSULE((short) 0x292),
// 0x293
// 0x294
// 0x295
// 0x296
//神之子衝擊波[完成] (101000102)
ZERO_SHOCKWAVE((short) 0x297),
//設定槍的名稱[完成]
SET_GUN_NAME((short) 0x298),
//設定槍彈[完成]
SET_GUN_AMMO((short) 0x299),
//建立槍[完成]
CREATE_GUN((short) 0x29A),
//清除槍[完成]
CLEAR_GUN((short) 0x29B),
// 0x29C
// 0x29D
// 0x29E
// 0x29F
// 0x2A0
// 0x2A1
//戰鬥回復[完成] (101110205)
ZERO_BATTLE_HEAL((short) 0x2A2), //0x28E
// 0x2A3
// 0x2A4
// 0x2A5
// 0x2A6
// 0x2A7
// 0x2A8
// 0x2A9
// 0x2AA
// 0x2AB
// 0x2AC
//神之子參數(Done)
ZERO_OPTION((short) 0x2AD),
//翻轉硬幣(Done)
FLIP_THE_COIN((short) 0x2AE),
// 0x2AF
// 0x2B0
// 0x2B1
// 0x2B2
//幽靈水彩特效(Done) (skill == 80001408)
GHOST_WATERCOLOR_EFFECT((short) 0x2B3),
// 0x2B4
//符文特效(Done) (80001429)
RUNE_EFFECT((short) 0x2B5),
// 0x2B6
// 0x2B7
// 0x2B8
// 0x2B9
// 0x2BA
// 0x2BB
// 0x2BC
// 0x2BD
// 0x2BE
// 0x2BF
// 0x2C0
// 0x2C1
// Setp GiftID[完成]
SETP_GIFT_ID((short) 0x2C2),
// 0x2C3
// Step Coin[完成]
SETP_COIN((short) 0x2C4),
//凱撒快速鍵[完成]
KAISER_QUICK_KEY((short) 0x2C5),
// 0x2C6
// 0x2C7
// 0x2C8
// 0x2C9
// 0x2CA
// 0x2CB
// 0x2CC
// 0x2CD
// 0x2CE
// 0x2CF
// 0x2D0
// 0x2D1
// 0x2D2
// 0x2D3
// 0x2D4
// 0x2D5
// 0x2D6
// 0x2D7
// 0x2D8
// 0x2D9
// 0x2DA
// 0x2DB
// 0x2DC
// 0x2DD
// 0x2DE
// 0x2DF
// 0x2E0
// 0x2E1
// 0x2E2
// 0x2E3
// 0x2E4
//閃耀方塊反饋 (CField頂端內容有/12的用xRef回找)
FLASH_CUBE_RESPONSE((short) 0x2E5),
// 0x2E6
// 0x2E7
// 0x2E8
// 0x2E9
// 0x2EA
// 0x2EB
// 0x2EC
// 0x2ED
// 0x2EE
// 0x2EF
// 0x2F0
// 0x2F1
// 0x2F2
// 0x2F3
// 0x2F4
// 0x2F5
// 0x2F6
// 0x2F7 跟技能冷卻很像的Sub
//技能冷却[完成]
COOLDOWN((short) 0x2F8),
// 0x2F9
//================================
// CUser::OnSummonedPacket 開始(179-完成)
//================================
//招喚招喚獸[完成]
SPAWN_SUMMON((short) 0x02FA),
//移除招喚獸[完成]
REMOVE_SUMMON((short) 0x2FB),
//招喚獸移動[完成]
MOVE_SUMMON((short) 0x2FC),
//招喚獸攻击[完成]
SUMMON_ATTACK((short) 0x2FD),
//PvP招喚獸
PVP_SUMMON((short) 0x2FE),
//招喚獸技能
SUMMON_SKILL_2((short) 0x2FF),
//招喚獸技能
SUMMON_SKILL((short) 0x300),
//招喚獸延遲
SUMMON_DELAY((short) 0x301),
//招喚獸受傷
DAMAGE_SUMMON((short) 0x302),
// 0x303
// 0x304
// 0x305
// 0x306
// 0x307
//================================
// CMobPool::OnMobPacket 開始(179-完成)
//================================
// 怪物召喚[完成]
SPAWN_MONSTER((short) 0x308),
// 殺除怪物[完成]
KILL_MONSTER((short) 0x309),
// 控制召喚怪物[完成]
SPAWN_MONSTER_CONTROL((short) 0x30A),
// 0x30B [Int(MOB_ID)][Short][Int][Byte]
// 怪物移動[完成]
MOVE_MONSTER((short) 0x30C),
// 怪物移動回覆[完成]
MOVE_MONSTER_RESPONSE((short) 0x30D),
// 0x30E (NULL)
//添加怪物状态[完成]
APPLY_MONSTER_STATUS((short) 0x30F),
//取消怪物状态[完成]
CANCEL_MONSTER_STATUS((short) 0x310),
//怪物暫停重置[完成]
MONSTER_SUSPEND_RESET((short) 0x311),
//影響怪物[完成]
MONSTER_AFFECTED((short) 0x312),
//怪物受到伤害
DAMAGE_MONSTER((short) 0x313),
//怪物技能特效[完成]
SKILL_EFFECT_MOB((short) 0x314),
// 0x315 (NULL)
//怪物CRC[完成] 接收=> 0x156
MONSTER_CRC_CHANGE((short) 0x316),
//顯示怪物HP[完成]
SHOW_MONSTER_HP((short) 0x317),
//捕抓怪物[完成]
CATCH_MONSTER((short) 0x318),
//怪物物品特效[完成]
ITEM_EFFECT_MOB((short) 0x319),
// 0x31A
//怪物說話[完成]
TALK_MONSTER((short) 0x31B),
//移除怪物說話
REMOVE_TALK_MONSTER((short) 0x31C),
//怪物技能延遲[完成]
MONSTER_SKILL_DELAY((short) 0x31D),
//怪物護送全部路徑[完成]
MONSTER_ESCORT_FULL_PATH((short) 0x31E),
//怪物護送暫停/停止允許[完成]
MONSTER_ESCORT_STOP_END_PERMISSION((short) 0x31F),
//怪物護送暫停說話[完成]
MONSTER_ESCORT_STOP_SAY((short) 0x320),
//怪物護送返回前[完成]
MONSTER_ESCORT_RETURN_BEFORE((short) 0x321),
//怪物下個攻擊[完成]
MONSTER_NEXT_ATTACK((short) 0x322),
// 0x323
// 0x324
// 0x325
// 0x326
// 0x327
// 0x328
// 0x329
// 0x32A
// 0x32B
// 0x32C
// 0x32D
// 0x32E
// 0x32F
// 0x330
// 0x331
// 0x332
// 0x333
// 0x334
// 0x335
// 0x336
// 0x337
// 0x338
// 0x339
// 0x33A
//怪物攻擊怪物[完成]
MOB_TO_MOB_DAMAGE((short) 0x33B),
// 0x33C (NULL)
//================================
// CMobPool::OnAzwanMobPacket 開始(179-完成)
//================================
// 阿斯旺怪物攻擊怪物[完成]
AZWAN_MOB_TO_MOB_DAMAGE((short) 0x33D),
// 阿斯旺怪物召喚[完成]
AZWAN_SPAWN_MONSTER((short) 0x33E),
// 阿斯旺怪物死亡[完成]
AZWAN_KILL_MONSTER((short) 0x33F),
// 阿斯旺控制召喚怪物[完成]
AZWAN_SPAWN_MONSTER_CONTROL((short) 0x340),
//================================
// CNpcPool::OnPacket 開始(179-完成)
//================================
// 召喚Npc[完成]
SPAWN_NPC((short) 0x341),
// 移除Npc[完成]
REMOVE_NPC((short) 0x342),
// 0x343
// 控制召喚Npc[完成]
SPAWN_NPC_REQUEST_CONTROLLER((short) 0x344),
// Npc動作[完成]
NPC_ACTION((short) 0x345),
// 0x346
// 0x347
// 0x348
// 更新NPC狀態信息
NPC_UPDATE_LIMITED_INFO((short) 0x349),
// 0x34A
// 0x34B
// 0x34C
// 0x34D
// 0x34E
// 0x34F
// 0x350
// 0x351
// 0x352
// 0x353
// 0x354
// Npc特殊事件[完成]
NPC_SET_SPECIAL_ACTION((short) 0x355),
// 設置Npc腳本[完成]
NPC_SCRIPTABLE((short) 0x356),
// 0x357
//================================
// CEmployeePool::OnPacket 開始(179-完成)
//================================
// 召喚精靈商人
SPAWN_HIRED_MERCHANT((short) 0x358),
// 移除精靈商人
DESTROY_HIRED_MERCHANT((short) 0x359),
// 0x35A
// 精靈商人更新
UPDATE_HIRED_MERCHANT((short) 0x35B),
//================================
// CDropPool::OnPacket 開始(179-完成)
//================================
// 物品掉落[完成]
DROP_ITEM_FROM_MAPOBJECT((short) 0x35C),
// 0x35D (null)
// 物品消失[完成]
REMOVE_ITEM_FROM_MAP((short) 0x35E),
//================================
// CMessageBoxPool::OnPacket 開始(179-完成)
//================================
// 召喚風箏錯誤[完成]
SPAWN_KITE_ERROR((short) 0x35F),
// 召喚風箏[完成]
SPAWN_KITE((short) 0x360),
// 移除風箏[完成]
DESTROY_KITE((short) 0x361),
//================================
// CAffectedAreaPool::OnPacket 開始(179-完成)
//================================
// 召喚煙霧[完成]
SPAWN_MIST((short) 0x362),
// 煙霧未知[完成]
MIST_UNK((short) 0x363),
// 移除煙霧[完成]
REMOVE_MIST((short) 0x364),
//================================
// CTownPortalPool::OnPacket 開始(179-完成)
//================================
// 時空門[完成]
SPAWN_DOOR((short) 0x365),
// 移除時空門[完成]
REMOVE_DOOR((short) 0x366),
//================================
// COpenGatePool::OnPacket 開始(179-完成)
//================================
// 召喚開放通道[完成]
MECH_DOOR_SPAWN((short) 0x367),
// 移除開放通道[完成]
MECH_DOOR_REMOVE((short) 0x368),
//================================
// CReactorPool::OnPacket 開始(179-完成)
//================================
// 攻擊箱子[完成]
REACTOR_HIT((short) 0x369),
// 箱子移動[完成]
REACTOR_MOVE((short) 0x36A),
// 召喚箱子[完成]
REACTOR_SPAWN((short) 0x36B),
// 箱子未知[完成]
REACTOR_UNK((short) 0x36C),
// 重置箱子[完成]
REACTOR_DESTROY((short) 0x36D),
//================================
// CReactorPool::OnExtractorPacket 開始(179-完成)
//================================
// 召喚分解機[完成]
SPAWN_EXTRACTOR((short) 0x36E),
// 移除分解機[完成]
REMOVE_EXTRACTOR((short) 0x36F),
//================================
// CEventsPool::OnPacket 开始
//================================
//滾動雪球
ROLL_SNOWBALL((short) 0x36B),
//攻擊雪球
HIT_SNOWBALL((short) 0x36C),
//雪球訊息
SNOWBALL_MESSAGE((short) 0x36D),
//向左擊飛
LEFT_KNOCK_BACK((short) 0x36E),
//攻擊椰子
HIT_COCONUT((short) 0x36F),
//椰子活動分數
COCONUT_SCORE((short) 0x370),
// CField_GuildBoss::OnHealerMove[完成]
MOVE_HEALER((short) 0x371),
// CField_GuildBoss::OnPulleyStateChange[完成]
PULLEY_STATE((short) 0x372),
// 怪物擂台賽開始[完成]
MONSTER_CARNIVAL_START((short) 0x373),
// 怪物擂台賽獲得CP[完成]
MONSTER_CARNIVAL_OBTAINED_CP((short) 0x374),
// 怪物擂台賽狀態[完成]
MONSTER_CARNIVAL_STATS((short) 0x375),
// 0x376 [Int] * 4
// 怪物擂台賽召喚[完成]
MONSTER_CARNIVAL_SUMMON((short) 0x377),
// 怪物擂台賽訊息[完成]
MONSTER_CARNIVAL_MESSAGE((short) 0x378),
// 怪物擂台賽死亡[完成]
MONSTER_CARNIVAL_DIED((short) 0x379),
// 怪物擂台賽離開[完成]
MONSTER_CARNIVAL_LEAVE((short) 0x37A),
// 怪物擂台賽分數[完成]
MONSTER_CARNIVAL_RESULT((short) 0x37B),
// 怪物擂台賽排名[完成]
MONSTER_CARNIVAL_RANKING((short) 0x37C),
// 更新納希競技大會分數[完成]
ARIANT_SCORE_UPDATE((short) 0x37D),
// 0x37E
// 開心牧場資訊
SHEEP_RANCH_INFO((short) 0x37F),
// 開心牧場衣服
SHEEP_RANCH_CLOTHES((short) 0x380),
// 魔女之塔
WITCH_TOWER((short) 0x381),
// 遠征隊挑戰[完成]
EXPEDITION_CHALLENGE((short) 0x382),
// 炎魔祭壇[完成]
ZAKUM_SHRINE((short) 0x383),
// PvP類型[完成]
PVP_TYPE((short) 0x384),
// PvP轉移[完成]
PVP_TRANSFORM((short) 0x385),
// PvP[完成]
PVP_DETAILS((short) 0x386),
// PvP開始[完成]
PVP_ENABLED((short) 0x387),
// PvP分數[完成]
PVP_SCORE((short) 0x388),
// PvP結果[完成]
PVP_RESULT((short) 0x389),
// PvP隊伍[完成]
PVP_TEAM((short) 0x38A),
// PvP計分板[完成]
PVP_SCOREBOARD((short) 0x38B),
// 0x38C [Int][Byte]
// PvP點數[完成]
PVP_POINTS((short) 0x38D),
// PvP擊殺數[完成]
PVP_KILLED((short) 0x38E),
// PvP模式[完成]
PVP_MODE((short) 0x38F),
// PvP冰騎士[完成]
PVP_ICEKNIGHT((short) 0x390),
// sub_688DEC {
// 0x391
// 0x392
// 0x393
// 0x395
// }
// sub_6BAE8E {
// 0x396
// 0x399
// }
// sub_6C093D {
// 0x397
// 0x398
// 0x39A
// }
// sub_6B8599 {
// 0x39B
// 0x39C
// 0x39D
// 0x39E
// 0x39F
// 0x3A0
// 0x3A1
// 0x3A2
// 0x3A3
// }
// sub_6A7E5B {
// 0x3A4
// 0x3A5
// }
// sub_6C8B36 { 【遊戲(未確認)】
// 0x3A7
// 0x3A8
// 0x3A9
// 0x3AA
// 0x3AB
// 0x3AC
// 0x3AD
// 0x3AE
// 0x3AF 【楓葉戰士】
// 0x3B0
// 0x3B1
// 0x3B2
// 0x3B6
// }
// sub_6BDC3E {
// 0x3B3
// 0x3B4
// 0x3B5
// }
// sub_63E919 {
// 0x3B7【排行介面】
// }
// sub_6AF283 {
// 0x3BA
// 0x3BB
//}
// sub_68DCA9 {
// 0x3BD
// 0x3BE
// 0x3BF
// 0x3C0
// }
// sub_679B8A { 【楓葉戰士(未確認)】
// 0x3C1 【楓葉戰士】【Effect/BasicEff.img/rhythmGame/fever%d】 [Int][Int]
// 0x3C2
// 0x3C3
// 0x3C4
// 0x3C5
// }
// sub_697DDF {
// 0x3CB
// 0x3CC
// 0x3CD
// 0x3CE
// 0x3D1
// }
// sub_67E742 { 【BossPvP】
// 0x3C6 [Int]
// 0x3C7 [Int][Int][Int]
// 0x3C8 [Int][Int][Int]
// 0x3C9 【UI/UIWindow4.img/bossArena/selectUi/boss/%d】
// 0x3CA 【UI/UIWindow4.img/bossArena/selectUi/ready】
// 0x3CF
// 0x3D0 [Int]
// 0x3D2
// 0x3D3 【座椅效果?】
// 0x3D4
// 0x3D5
// }
// sub_6D6C10 {
// 0x3D6
// 0x3D7
// 0x3D8
// 0x3D9
// 0x3DA
// 0x3DB
// 0x3DC
// }
// 召喚符文[完成]
SPAWN_RUNE((short) 0x3E3), // 179OK
// 移除符文[完成]
REMOVE_RUNE((short) 0x3E4), // 179OK
// 重新召喚符文[完成]
RESPAWN_RUNE((short) 0x3E5), // 179OK
// sub_63AB26 {
// 0x3E3 【UI/StarCityUI.img/Screen/WorldEvent/%d】
// }
// sub_6E6480 {
// 0x3EE
// 0x3EF
// 0x3F0
// 0x3F1
// 0x3F2
// 0x3F3
// 0x3F4 【UI/UIWindow4.img/typingDefense/Result/gameover】【UI/UIWindow4.img/typingDefense/Result/clear】
// 0x3F5
// 0x3F6
// 0x3F7
// 0x3F8
// 0x3F9
// }
// sub_69A320 { 【迷你遊戲】
// 0x3E4
// 0x3E5
// 0x3E6 【Sound/MiniGame.img/】
// 0x3E7
// 0x3E8
// 0x3E9
// 0x3F0
// 0x3F1
// }
// sub_69D380 {
// 0x3FA
// 0x3FB
// 0x3FC
// 0x3FD
// 0x3FE
// 0x3FF
// 0x400
// }
// sub_6CBFA7 {
// 0x401
// }
// 混沌炎魔祭壇[完成]
CHAOS_ZAKUM_SHRINE((short) 0x402),
// 0x403
// 闇黑龍王祭壇[完成]【未確認】
HORNTAIL_SHRINE((short) 0x404),
// 購物商城更新楓幣
CS_MESO_UPDATE((short) 0x40E),
// 商城搭配
CS_COLLOCATTON((short) 0x411),
// sub_67C061 { 【怪物擂台賽】
// 0x408
// 0x409
// 0x40A [-]
// 0x40B [-]
// 0x40C
// 0x40D
// 0x40E
// 0x40F
// 0x410
// 0x411
// 0x412
// }
// sub_680FAC { 【蛋糕 Vs 派餅 活動】
// 0x415
// 0x416 【%s 陣營的Boss已經被召喚。】
// 0x417 【更新Boss血條】
// 0x418 【攻擊效果】[Byte(00:Miss、01:Cool)]
// 0x41C
// 0x41F
// }
// sub_67FEDA {
// 0x419 [Byte][Int][Byte]
// }
// sub_67F7EB {
// 0x41A
// 0x41B
// }
// sub_67F8C5 {
// 0x41D [Byte]
// }
// sub_6DAE51 {
// 0x422
// 0x423
// 0x424
// 0x425
// 0x426
// 0x427
// 0x428
// }
// sub_6CF7E2 {+0x18 178ok
// 0x429
// 0x42A
// 0x42B
// 0x42C
// 0x42D
// 0x42E
// 0x42F
// }
// PvP(奪旗模式)
CAPTURE_FLAGS((short) 0x458),
CAPTURE_POSITION((short) 0x459),
CAPTURE_RESET((short) 0x45A),
// 粉紅色炎魔祭壇[完成]
PINK_ZAKUM_SHRINE((short) 0x45B),
//================================
// CScriptMan::OnPacket 開始(179-完成)
//================================
// Npc交談[完成]
NPC_TALK((short) 0x461),
//================================
// CShopDlg::OnPacket 開始(179-完成)
//================================
// Npc商店[完成]
OPEN_NPC_SHOP((short) 0x462),
// 購買Npc商店道具[完成]
CONFIRM_SHOP_TRANSACTION((short) 0x463),
//================================
// CAdminShopDlg::OnPacket 開始(179-完成)
//================================
// 管理員商店[完成]
ADMIN_SHOP_RESULT((short) 0x464),
// 管理員商店-商品[完成]
ADMIN_SHOP_COMMODITY((short) 0x465),
//================================
// CAdminShopDlg::OnPacket 結束(179-完成)
//================================
// 0x466
// 0x467
// 0x468
// 0x469
// 0x46A
// 0x46B
// 0x46C
//================================
// sub_6F1C61 開始(179-完成)
//================================
// 0x46D
// 0x46E
// 0x46F 【靈魂陷阱】
// 0x470
// 0x471
// 0x472
// 0x473
// 0x474 【姆勒姆勒地城地圖】、【姆勒姆勒的炸彈】
// 0x475
//================================
// sub_6F1C61 結束(179-完成)
//================================
// 0x476
// 0x477
//================================
// sub_6A7380 開始(179-完成)
//================================
// 0x478
//================================
// sub_6A7380 結束(179-完成)
//================================
// 0x479
// 0x47A
//================================
// CStoreBankDlg::OnPacket 開始(179-完成)
//================================
// 倉庫[完成]
OPEN_STORAGE((short) 0x47A),
//================================
// CStoreBankDlg::OnPacket 結束(179-完成)
//================================
// 富蘭德里訊息
MERCH_ITEM_MSG((short) 0x47B),
// 富蘭德里倉庫
MERCH_ITEM_STORE((short) 0x47C),
// 猜拳遊戲[完成]
RPS_GAME((short) 0x47D),
// 0x47E
// 0x47F
// 聊天室[完成]
MESSENGER((short) 0x480),
// 玩家互動[完成]
PLAYER_INTERACTION((short) 0x481),
// 0x482
// 0x483
// CField_Tournament::OnTournament[完成]
TOURNAMENT((short) 0x484),
// CField_Tournament::OnTournamentMatchTable[完成]
TOURNAMENT_MATCH_TABLE((short) 0x485),
// CField_Tournament::OnTournamentSetPrize[完成]
TOURNAMENT_SET_PRIZE((short) 0x486),
// CField_Tournament::OnTournamentUEW[完成]
TOURNAMENT_UEW((short) 0x487),
// CField_Tournament::OnTournamentAvatarInfo[完成]
TOURNAMENT_CHARACTERS((short) 0x488),
// CField_Wedding::OnWeddingProgress[完成]
WEDDING_PROGRESS((short) 0x489),
// CField_Wedding::OnWeddingCeremonyEnd[完成]
WEDDING_CEREMONY_END((short) 0x48A),
//================================
// CCashShop::OnPacket 開始
//================================
// 0x47E 【購物商城合約】
// sub_6DFA9F {
// 0x47F
// 0x480
// 0x481
// 0x482
// }
// 0x483
// sub_6E782A {
// 0x484
// 0x485
// }
// sub_6A809E {
// 0x486
// 0x487
// }
// 0x488
// 0x489
// sub_6A8D7F { 【小鋼珠】
// 0x48A
// 0x48B
// 0x48C
// }
// 0x48D
// 0x48E
// 0x48F
// 宅配操作(完成)
PACKAGE_OPERATION((short) 0x495),
// 0x496
// 購物商城更新[完成]
CS_UPDATE((short) 0x497),
// 購物商城操作[完成]
CS_OPERATION((short) 0x498),
// CCashShop::OnPurchaseExpChanged[完成]
CS_EXP_PURCHASE((short) 0x499),
// 0x49A
// 0x49B 【00 00 04 00 00 00 00 00 84 11 06 00 00 00 00 00 FF 00 00】
// 0x49C
// 0x49D
// 購物商城未知[完成]
CASH_USE4((short) 0x49E),
// 0x49F
// 0x4A0
// 0x4A1
// 0x4A2
// 0x4A3
// 0x4A4
// 0x4A5
// 0x4A6
// 0x4A7
// 購物商城帳號[完成]
CS_ACCOUNT((short) 0x4A8),
// 購物商城未知[完成]
CASH_USE3((short) 0x4A9),
// 購物商城未知[完成]
CASH_USE((short) 0x4AA),
// 0x4AB
// 0x4AC
// 0x4AD
// 0x4AE
// 0x4AF
// 購物商城未知[完成]
CASH_USE2((short) 0x4B0),
// 0x4B1 【CCashShop::OnMemberShopResult】
// 0x4B2
// 0x4B3
// 0x4B4
// 0x4B5
// 0x4B6
// 0x4B7
// 0x4B8
// 0x4B9
// 0x4BA 神獸學院
// 0x4BB
// 0x4BC
// 0x4BD 羊群牧場[Boolean] 【true => [String][Long]「[String][Long]」* 3】【false => [Int](分數)[Int](排行)[Int](咒文的痕跡)】
//==================================
// CFuncKeyMappedMan::OnPacket 開始(179-完成)
//==================================
// 鍵盤設置[完成]
KEYMAP((short) 0x4D6),
// 寵物技能(HP)[完成]
PET_AUTO_HP((short) 0x4D7),
// 寵物技能(MP)[完成]
PET_AUTO_MP((short) 0x4D8),
// 寵物技能(Buff)[完成]
PET_AUTO_CURE((short) 0x4D9),//+0x2E 178ok
//==================================
// CField::OnGoldHammerRes 開始(179-完成)
//==================================
// 0x4E0
//黃金鐵鎚使用完成[完成]
VICIOUS_HAMMER((short) 0x4E1),
// 0x4E2
//==================================
// CField::OnZeroScroll 開始(179-完成)
//==================================
ZERO_SCROLL_START((short) 0x4E3),
ZERO_SCROLL((short) 0x4E4),
ZERO_RESULT((short) 0x4E5),
// 0x4E6
// 0x4E7
// 0x4E8
//==================================
// CField::OnZeroWeapon 開始(179-完成)
//==================================
// 武器資訊
ZERO_WEAPONINFO((short) 0x4E9),
// 武器成長[完成]
ZERO_UPGRADE((short) 0x4EA),
//==================================
// CField::OnArrowBlaster 開始(179-完成)
//==================================
// 召喚箭座[完成]
SPAWN_ARROW_BLASTER((short) 0x4F0),
// 0x4F1 【dispear】
// 取消箭座[完成]
CANCEL_ARROW_BLASTER((short) 0x4F2),
// 0x4F3
// 0x4F4
// 箭座控制[完成]
ARROW_BLASTER_CONTROL((short) 0x4F5),
// 0x4F6
// 0x4F7 【破除封印】
// 0x4F8
// 0x4F9
// 0x4FA
//==================================
// CField::OnArrowBlaster 結束
//==================================
// sub_50630B {
// 0x4CC
// 0x4CD
// 0x4CE
// 0x4CF
// 0x4D0
// }
// 潛能方塊[完成]
STRENGTHEN_UI((short) 0x54C), //179OK
// sub_63AC91 {
// 0x54D 【階段介面】//179OK
// }
// sub_6921D9 {
// 0x54B
// 0x54C
// }
// sub_63AD6C {
// 0x54D [Byte]
// }
// 每日免費強化任意門[完成]
DAY_OF_CHRONOSPHERE((short) 0x567),//179OK
// 強化任意門錯誤[完成]
ERROR_CHRONOSPHERE((short) 0x568),//179OK
// sub_6DF4C6 {
// 0x567
// 0x568
// 0x569
// 0x56A
// 0x56B
// }
// General
AUTH_RESPONSE((short) 0x16),
// Login
SEND_LINK((short) 0x01),
PIN_OPERATION((short) 0x06),
PIN_ASSIGNED((short) 0x07),
ALL_CHARLIST((short) 0x08),
RELOG_RESPONSE((short) 0x17),
REGISTER_PIC_RESPONSE((short) 0x1A),
EXTRA_CHAR_INFO((short) 0x22),//23
SPECIAL_CREATION((short) 0x23),//24
// Channel
FULL_CLIENT_DOWNLOAD((short) 0x35),
BOOK_INFO((short) 0x999),
REPORT_RESULT((short) 0x4E),//v145
TRADE_LIMIT((short) 0x50),//v145
UPDATE_GENDER((short) 0x51),//50
BBS_OPERATION((short) 0x52),//51
CODEX_INFO_RESPONSE((short) 0x5B),//5C
ECHO_MESSAGE((short) 0x63),//64
BOOK_STATS((short) 0x81),//7E
UPDATE_CODEX((short) 0x82),//7F
CARD_DROPS((short) 0x83),//80
FAMILIAR_INFO((short) 0x84),//81
POTION_BONUS((short) 0x7FFE),
MAPLE_TV_MSG((short) 0x8D),
LUCKY_LUCKY_MONSTORY((short) 0x103),//new v147
POPUP2((short) 0x9D),
CANCEL_NAME_CHANGE((short) 0x9E),
CANCEL_WORLD_TRANSFER((short) 0x9F),
CLOSE_HIRED_MERCHANT((short) 0xA3),//A0
CANCEL_NAME_CHANGE_2((short) 0x999),//A9
GM_STORY_BOARD((short) 0xB7),
FIND_FRIEND((short) 0xBA),
VISITOR((short) 0xBB),
PINKBEAN_CHOCO((short) 0xBC),
EQUIP_STOLEN_SKILL((short) 0xD5),//CE
INNER_ABILITY_RESET_MSG((short) 0x999),
CASSANDRAS_COLLECTION((short) 0xEA),//new v145
SET_OBJECT_STATE((short) 0xEF),//E8
POPUP((short) 0xF0),//E9
YOUR_INFORMATION((short) 0x7FFE),
CANDY_RANKING((short) 0xFF),//F8
ATTENDANCE((short) 0x10A),//102
RANDOM_RESPONSE((short) 0x121),
MAGIC_WHEEL((short) 0x134),//125
MOVE_ENV((short) 0x14A),//13B
UPDATE_ENV((short) 0x14B),//13C
CHATTEXT_1((short) 0x17B),//16A
SPAWN_PET_2((short) 0x192),//16D
SPAWN_FAMILIAR((short) 0x1A8),//183
MOVE_FAMILIAR((short) 0x1A9),//184
TOUCH_FAMILIAR((short) 0x1AA),//185
ATTACK_FAMILIAR((short) 0x1AB),//186
RENAME_FAMILIAR((short) 0x1AC),//187
SPAWN_FAMILIAR_2((short) 0x1AD),//188
UPDATE_FAMILIAR((short) 0x1AE),//189
//((short) 0x1B8),//193弹出奖励
R_MESOBAG_SUCCESS((short) 0x1EE),//1EB
R_MESOBAG_FAILURE((short) 0x1EF),//1EC
MAP_FADE((short) 0x201),//1F0
MAP_FADE_FORCE((short) 0x202),//1F1
RANDOM_EMOTION((short) 0x216),//205
RADIO_SCHEDULE((short) 0x999),//206
OPEN_SKILL_GUIDE((short) 0x218),//207
AP_SP_EVENT((short) 0x999),//215
QUEST_GUIDE_NPC((short) 0x999),//214
REGISTER_FAMILIAR((short) 0x999),//218
FAMILIAR_MESSAGE((short) 0x999),//219
SHOW_MAP_NAME((short) 0x999),
CAKE_VS_PIE((short) 0x228),//225
MOVE_SCREEN_X((short) 0x199),//199
MOVE_SCREEN_DOWN((short) 0x19A),//19A
CAKE_PIE_INSTRUMENTS((short) 0x19B),//19B
SEALED_BOX((short) 0x218),//212
//怪物屬性
MONSTER_PROPERTIES((short) 0x2DB),
//
CYGNUS_ATTACK((short) 0x2DF),
//怪物抗擊
MONSTER_RESIST((short) 0x2E2),
TELE_MONSTER((short) 0x999),
SHOW_MAGNET((short) 0x29E),//287
NPC_TOGGLE_VISIBLE((short) 0x2C2),//2AA
INITIAL_QUIZ((short) 0x2C4),//2AC
RED_LEAF_HIGH((short) 0x2C8),//2B0
LOGOUT_GIFT((short) 0x2FB),
CS_CHARGE_CASH((short) 0x2CA),
GIFT_RESULT((short) 0x23C),
CHANGE_NAME_CHECK((short) 0x23D),
CHANGE_NAME_RESPONSE((short) 0x23E),
//0x314 int itemid int sn
CASH_SHOP_UPDATE((short) 0x3A3),//373
GACHAPON_STAMPS((short) 0x253),
FREE_CASH_ITEM((short) 0x254),
CS_SURPRISE((short) 0x255),
XMAS_SURPRISE((short) 0x256),
ONE_A_DAY((short) 0x258),
NX_SPEND_GIFT((short) 0x999),
RECEIVE_GIFT((short) 0x25A),//new v145
RANDOM_CHECK((short) 0x274),//25E
START_TV((short) 0x380),//37A
REMOVE_TV((short) 0x381),//37B
ENABLE_TV((short) 0x37C),//37C
GM_ERROR((short) 0x26D),
ALIEN_SOCKET_CREATOR((short) 0x341),
BATTLE_RECORD_DAMAGE_INFO((short) 0x27A),
CALCULATE_REQUEST_RESULT((short) 0x27B),
BOOSTER_PACK((short) 0x999),
BOOSTER_FAMILIAR((short) 0x999),
BLOCK_PORTAL((short) 0x999),
NPC_CONFIRM((short) 0x999),
RSA_KEY((short) 0x999),
BUFF_BAR((short) 0x999),
GAME_POLL_REPLY((short) 0x999),
GAME_POLL_QUESTION((short) 0x999),
ENGLISH_QUIZ((short) 0x999),
FISHING_BOARD_UPDATE((short) 0x999),
BOAT_EFFECT((short) 0x999),
FISHING_CAUGHT((short) 0x999),
SIDEKICK_OPERATION((short) 0x999),
FARM_PACKET1((short) 0x35C),
FARM_ITEM_PURCHASED((short) 0x35D),
FARM_ITEM_GAIN((short) 0x358),
HARVEST_WARU((short) 0x35A),
FARM_MONSTER_GAIN((short) 0x999),
FARM_INFO((short) 0x999),
FARM_MONSTER_INFO((short) 0x369),
FARM_QUEST_DATA((short) 0x36A),
FARM_QUEST_INFO((short) 0x36B),
FARM_MESSAGE((short) 0x999),//36C
UPDATE_MONSTER((short) 0x36D),
AESTHETIC_POINT((short) 0x36E),
UPDATE_WARU((short) 0x36F),
FARM_EXP((short) 0x374),
FARM_PACKET4((short) 0x375),
QUEST_ALERT((short) 0x377),
FARM_PACKET8((short) 0x378),
FARM_FRIENDS_BUDDY_REQUEST((short) 0x37B),
FARM_FRIENDS((short) 0x37C),
FARM_USER_INFO((short) 0x3F0),//388
FARM_AVATAR((short) 0x3F2),//38A
FRIEND_INFO((short) 0x3F5),//38D
FARM_RANKING((short) 0x3F7),//38F
SPAWN_FARM_MONSTER1((short) 0x3FB),//393
SPAWN_FARM_MONSTER2((short) 0x3FC),//394
RENAME_MONSTER((short) 0x3FD),//395
//Unplaced:
DEATH_COUNT((short) 0x206),
REDIRECTOR_COMMAND((short) 0x1337),
UNKNOWN((short) 0x7FFE);
private short code;
public static boolean record = false;
private SendPacketOpcode(short code) {
this.code = code;
}
@Override
public void setValue(short code) {
this.code = code;
}
@Override
public short getValue() {
return getValue(true);
}
public short getValue(boolean show) {
if (show && ServerConfig.LOG_PACKETS) {
if (isRecordHeader(this)) {
record = true;
String tab = "";
for (int i = 4; i > name().length() / 8; i--) {
tab += "\t";
}
FileoutputUtil.log(FileoutputUtil.Packet_Record, "[發送]\t" + name() + tab + "\t包頭:0x" + StringUtil.getLeftPaddedStr(String.valueOf(code), '0', 4) + "\r\n");
} else {
record = false;
}
}
return code;
}
public String getType(short code) {
String type = null;
if (code >= 0 && code < 0xE || code >= 0x17 && code < 0x21) {
type = "CLogin";
} else if (code >= 0xE && code < 0x17) {
type = "LoginSecure";
} else if (code >= 0x21 && code < 0xCB) {
type = "CWvsContext";
} else if (code >= 0xD2) {
type = "CField";
}
return type;
}
public static String nameOf(int value) {
for (SendPacketOpcode opcode : SendPacketOpcode.values()) {
if (opcode.getValue(false) == value) {
return opcode.name();
}
}
return "UNKNOWN";
}
public static boolean isRecordHeader(SendPacketOpcode opcode) {
switch (opcode.name()) {
// case "WARP_TO_MAP":
// case "GUILD_OPERATION":
// case "PARTY_OPERATION":
// case "GIVE_BUFF":
case "SPAWN_PLAYER":
// case "DROP_ITEM_FROM_MAPOBJECT":
// case "INVENTORY_OPERATION":
// case "SPAWN_MONSTER":
case "UNKNOWN":
return true;
default:
return false;
}
}
public static boolean isSpamHeader(SendPacketOpcode opcode) {
switch (opcode.name()) {
case "PING":
case "NPC_ACTION":
// case "AUTH_RESPONSE":
// case "SERVERLIST":
case "UPDATE_STATS":
case "MOVE_PLAYER":
// case "SPAWN_NPC":
// case "SPAWN_NPC_REQUEST_CONTROLLER":
// case "REMOVE_NPC":
case "MOVE_MONSTER":
case "MOVE_MONSTER_RESPONSE":
case "SPAWN_MONSTER":
case "SPAWN_MONSTER_CONTROL":
// case "HAKU_MOVE":
// case "MOVE_SUMMON":
// case "MOVE_FAMILIAR":
case "ANDROID_MOVE":
// case "INVENTORY_OPERATION":
// case "MOVE_PET":
// case "SHOW_SPECIAL_EFFECT":
// case "DROP_ITEM_FROM_MAPOBJECT":
// case "REMOVE_ITEM_FROM_MAP":
// case "UPDATE_PARTYMEMBER_HP":
// case "DAMAGE_PLAYER":
// case "SHOW_MONSTER_HP":
// case "CLOSE_RANGE_ATTACK":
// case "RANGED_ATTACK":
// case "ARAN_COMBO":
// case "REMOVE_BG_LAYER":
// case "SPECIAL_STAT":
// case "TOP_MSG":
// case "ANGELIC_CHANGE":
// case "UPDATE_CHAR_LOOK":
// case "KILL_MONSTER":
case "SYSTEM_PROCESS_LIST":
return true;
default:
return false;
}
}
public static void loadValues() {
Properties props = new Properties();
try (FileInputStream fileInputStream = new FileInputStream("sendops.properties")) {
props.load(new BufferedReader(new InputStreamReader(fileInputStream, EncodingDetect.getJavaEncode("sendops.properties"))));
} catch (IOException ex) {
InputStream in = SendPacketOpcode.class.getClassLoader().getResourceAsStream("sendops.properties");
if (in == null) {
System.out.println("未加載 sendops.properties 檔案, 使用內置SendPacketOpcode Enum");
return;
}
try {
props.load(in);
} catch (IOException e) {
throw new RuntimeException("加載 sendops.properties 檔案出現錯誤", e);
}
}
ExternalCodeTableGetter.populateValues(props, values());
}
static {
loadValues();
}
}