Class CWvsContext
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic byte[]BombLieDetector(boolean error, int mapid, int channel) 建構「炸彈測謊器」事件的封包(BOMB_LIE_DETECTOR)。static byte[]catchMob(int mobid, int itemid, byte success) 建構「捕捉怪物」結果的封包。static byte[]changeCardSet(int set) 建構切換「怪物卡片組」的封包。static byte[]changeChannelMsg(int channel, String msg) 建構「自動換頻」提示訊息的封包。static byte[]charInfo(MapleCharacter chr, boolean isSelf) 建構角色詳細資訊(人物卡)的封包(CHAR_INFO)。static byte[]建構清除畫面中央訊息的封包。static byte[]disabledNPC(List<Integer> ids) 建構停用一組 NPC 的封包。static byte[]echoMegaphone(String name, String message) 建構回音喇叭訊息的封包(ECHO_MESSAGE)。static byte[]建構「解除動作鎖定」封包。static byte[]expandCharacterSlots(int mode) 建構擴充角色欄位結果的封包(EXPAND_CHARACTER_SLOTS)。static byte[]fairyPendantMessage(int termStart, int incExpR) 建構「妖精吊墜」額外經驗加成提示的封包。static byte[]findFriendResult(List<MapleCharacter> friends) 建構「尋友」搜尋結果清單的封包。static byte[]finishedGather(int type) 建構物品欄整理(聚集)完成的封包。static byte[]finishedSort(int type) 建構物品欄排序完成的封包。static byte[]followRequest(int chrid) 建構「跟隨(組隊同行)邀請」的封包。static byte[]建構「尋友」角色詳細資訊的封包。static byte[]建構「尋友」錯誤提示的封包。static byte[]gatherSortItem(boolean gather, int type) 建構物品欄聚集/排序完成的封包。static byte[]getAniMsg(int questID, int time) 建構動畫訊息(Ani Message)的封包(SERVERMESSAGE類型 23)。static byte[]getAvatarMega(MapleCharacter chr, int channel, int itemId, String text, boolean ear) 建構「大聲公頭像喇叭(Avatar Megaphone)」訊息的封包。static byte[]getCard(int itemid, int level) 建構取得「怪物卡片」的封包。static byte[]getCardDrops(int cardid, List<Integer> drops) 建構顯示某張怪物卡片掉落來源怪物清單的封包。static byte[]建構角色「夥伴怪物(Familiar)」總覽資訊的封包。static byte[]getGachaponMega(String name, Item item, boolean isChest, int ch) 建構轉蛋/寶箱中獎全頻廣播的封包(SERVERMESSAGE)。static byte[]建構指定位置之畫面中央訊息的封包。static byte[]建構怪物圖鑑資訊的封包(BOOK_INFO)。static byte[]getMulungMessage(boolean dc, String msg) 建構武陵道場系統訊息的封包。static byte[]建構武陵道場排行榜的封包。static byte[]getOwlMessage(int msg) 建構智慧之鳥(商店進入)結果提示的封包(OWL_RESULT)。static byte[]建構開啟智慧之鳥(雪域貓頭鷹)搜尋介面的封包(OWL_OF_MINERVA)。static byte[]getOwlSearched(int itemSearch, List<HiredMerchant> hms) 建構智慧之鳥搜尋結果的封包(OWL_OF_MINERVA)。static byte[]getPeanutResult(int itemId, short quantity, int itemId2, short quantity2, int ourItem) 建構「豆豆」(Pigmi)兌換結果的封包(PIGMI_REWARD)。static byte[]getShowQuestCompletion(int id) 建構顯示任務完成動畫的封包(SHOW_QUEST_COMPLETION)。static byte[]建構畫面頂端跑馬燈訊息的封包。static byte[]giveFameErrorResponse(int op) 建構名聲操作的錯誤回應封包。static byte[]建構贈送結婚禮物結果的封包(WEDDING_GIFT子操作 11)。static byte[]GMPoliceMessage(boolean dc) 建構「GM 警察(檢舉處置)」提示的封包。static byte[]itemMegaphone(String msg, boolean whisper, int channel, Item item) 建構道具喇叭(Item Megaphone)的封包(SERVERMESSAGE類型 8)。static byte[]建構開啟「個人資訊(Your Information)」面板的封包。static byte[]mechPortal(Point pos) 建構機械師傳送門的封包(MECH_PORTAL)。static byte[]Mulung_Pts(int recv, int total) 建構武陵道場修練分數提示的封包。static byte[]MulungEnergy(int energy) 建構更新武陵道場「氣」能量值的封包。static byte[]建構開啟「尋友(Friend Finder)」時的個人結果封包。static byte[]OnClaimSvrStatusChanged(boolean enable) 建構檢舉伺服器啟用狀態變更的封包(REPORT_STATUS)。static byte[]OnFameResult(int op, String charname, boolean raise, int newFame) 建構名聲操作結果的封包(FAME_RESPONSE)。static byte[]OnSetClaimSvrAvailableTime(int from, int to) 建構設定檢舉伺服器可用時段的封包(REPORT_TIME)。static byte[]建構開啟「Pam 之歌(記憶之歌)」介面的封包。static byte[]pendantSlot(boolean p) 建構啟用/停用「吊墜額外欄位(slot -59)」的封包。static byte[]potionDiscountMessage(int type, int potionDiscR) 建構「藥水折扣」加成提示的封包。static byte[]professionInfo(String skil, int level1, int level2, int chance) 建構「專業技能(採集/製作)」資訊的封包。static byte[]建構「收取結婚禮物」結果的封包。static byte[]report(int mode) 建構玩家檢舉結果的封包(REPORT_RESPONSE)。static byte[]saveInformation(boolean fail) 建構「個人資訊」儲存結果的封包。static byte[]sendCashPetFood(boolean success, byte index) 建構使用「現金寵物食品」結果的封包。static byte[]sendEngagement(byte msg, int item, MapleCharacter male, MapleCharacter female) 建構訂婚/結婚相關結果的封包(ENGAGE_RESULT)。static byte[]sendEngagementRequest(String name, int cid) 建構求婚邀請的封包(ENGAGE_REQUEST)。static byte[]sendGhostPoint(String type, String amount) 建構更新「組隊(party)」自訂數值的封包。static byte[]sendGhostStatus(String type, String amount) 建構更新「地圖(map)」自訂數值的封包。static byte[]建構家族/公會成員轉職廣播的封包。static byte[]sendLevelup(boolean family, int level, String name) 建構家族/公會成員升級廣播的封包。static byte[]sendMarriage(boolean family, String name) 建構家族/公會成員結婚廣播的封包。static byte[]建構開啟「粉紅豆巧克力」收集介面的封包。static byte[]sendPyramidEnergy(String type, String amount) 建構更新「連線階段(session)」自訂數值的封包。static byte[]sendString(int type, String object, String amount) 建構更新自訂鍵值對數值的通用封包。static byte[]建構結婚禮物「贈送」介面的封包(WEDDING_GIFT子操作 9)。static byte[]建構結婚禮物「接收」介面的封包(WEDDING_GIFT子操作 10)。static byte[]serverMessage(String message) 建構伺服器訊息(捲動橫幅)的封包。static byte[]serverNotice(int type, int channel, String message) 建構指定類型與頻道的伺服器公告封包。static byte[]serverNotice(int type, int channel, String message, boolean smegaEar) 建構指定類型、頻道與耳語旗標的伺服器公告封包。static byte[]serverNotice(int type, String message) 建構指定類型的伺服器公告封包。static byte[]shopDiscount(int percent) 建構商店折扣比率的封包。static byte[]建構「阿斯旺(Azwan)擊殺」提示的封包。static byte[]showBackgroundEffect(String eff, int value) 建構顯示地圖背景特效的封包。static byte[]showMidMsg(String s, int l) 建構畫面中央訊息的封包。static byte[]showQuestMsg(String msg) 建構粉紅色任務系統訊息的封包。static byte[]spawnPlayerNPC(PlayerNPC npc) 建構生成「玩家 NPC」的封包。static byte[]spawnPortal(int townId, int targetId, int skillId, Point pos) 建構生成傳送門(如回城卷/組隊傳送)的封包(SPAWN_PORTAL)。static byte[]temporaryStats(Map<MapleStat.Temp, Integer> mystats) 建構設定臨時能力值的封包(TEMP_STATS)。static byte[]建構英雄(阿戰/默劇)教學用的臨時能力值封包。static byte[]建構「魔幻黑龍」(Balrog) 戰鬥用的臨時能力值封包。static byte[]建構重設(清除)臨時能力值的封包(TEMP_STATS_RESET)。static byte[]tripleSmega(List<String> message, boolean ear, int channel) 建構三行高級喇叭(Three Line Megaphone)的封包(SERVERMESSAGE類型 10)。static byte[]建構開啟「終極冒險家(Ultimate Explorer)」介面的封包。static byte[]updateAzwanFame(int level, int fame, boolean levelup) 建構更新「阿斯旺(Azwan)名譽 / Honour」的封包。static byte[]建構更新「核心光環(Core Aura)」的封包。static byte[]updateExpPotion(int mode, int id, int itemId, boolean firstTime, int level, int potionDstLevel, int exp) 建構更新經驗藥水(升等藥水)狀態的封包(EXP_POTION)。static byte[]建構更新角色性別的封包(UPDATE_GENDER)。static byte[]建構更新「小惡魔寵物罐(Imp)」狀態的封包。static byte[]建構更新「小惡魔寵物罐(Imp)」時間欄位的封包。static byte[]updateJaguar(MapleCharacter from) 建構更新獵人「美洲豹(Jaguar)」騎乘資訊的封包。static byte[]updateMount(MapleCharacter chr, boolean levelup) 建構更新騎寵狀態的封包(UPDATE_MOUNT)。static byte[]updatePlayerStats(Map<MapleStat, Integer> mystats, boolean itemReaction, MapleCharacter chr) 建構更新角色能力值的封包(UPDATE_STATS)。static byte[]updatePlayerStats(Map<MapleStat, Integer> stats, MapleCharacter chr) 建構更新角色能力值的封包(非道具反應)。static byte[]updateSkills(Map<Skill, SkillEntry> update) 建構更新技能等級/熟練度的封包(UPDATE_SKILLS)。static byte[]upgradeBook(Item book, MapleCharacter chr) 建構更新「怪物卡片圖鑑」道具資訊的封包。static byte[]useAPSPReset(boolean spReset, int cid) 建構 AP/SP 重置結果的封包。static byte[]useSkillBook(MapleCharacter chr, int skillid, int maxlevel, boolean canuse, boolean success) 建構使用技能書結果的封包(USE_SKILL_BOOK)。static byte[]yellowChat(String msg) 建構顯示黃色系統聊天訊息的封包。
-
Constructor Details
-
CWvsContext
public CWvsContext()
-
-
Method Details
-
enableActions
public static byte[] enableActions()建構「解除動作鎖定」封包。以空的
MapleStat異動集合呼叫updatePlayerStats(Map, boolean, MapleCharacter)(itemReaction=true),用於在伺服器處理完一次操作後解除客戶端的動作鎖定,使角色可再次行動。- Returns:
- 封包位元組陣列
-
updatePlayerStats
建構更新角色能力值的封包(非道具反應)。以
itemReaction=false委派至updatePlayerStats(Map, boolean, MapleCharacter)。- Parameters:
stats- 欲更新的MapleStat與其數值對應表chr- 目標角色(可為null)- Returns:
- 封包位元組陣列
-
updatePlayerStats
public static byte[] updatePlayerStats(Map<MapleStat, Integer> mystats, boolean itemReaction, MapleCharacter chr) 建構更新角色能力值的封包(UPDATE_STATS)。依
mystats鍵集合計算 64 位元的更新遮罩後寫入,再依每個MapleStat的型別(byte/short/int/long)逐一序列化其數值;部分能力值 (如AVAILABLEAP/AVAILABLESP)有特殊寫法。itemReaction旗標決定客戶端是否將此更新視為道具反應(解除動作鎖定)。- Parameters:
mystats- 欲更新的MapleStat與其數值對應表itemReaction- 是否為道具反應(true解除動作鎖定)chr- 目標角色(部分能力值序列化時讀取其狀態,可為null)- Returns:
- 封包位元組陣列
-
temporaryStats_Aran
public static byte[] temporaryStats_Aran()建構英雄(阿戰/默劇)教學用的臨時能力值封包。填入一組固定的高數值臨時能力值(力/敏/智/運皆 999、攻擊 255、命中/迴避 999、 移速 140、跳躍 120)後委派至
temporaryStats(Map);亦用於默劇(Mercedes)教學。- Returns:
- 封包位元組陣列
-
temporaryStats_Balrog
建構「魔幻黑龍」(Balrog) 戰鬥用的臨時能力值封包。讀取角色的總能力值(力/敏/智/運/物攻/魔攻),依等級每超過 90 等每 20 等遞增的 除數縮放後填入臨時能力值,再委派至
temporaryStats(Map)。- Parameters:
chr- 目標角色(讀取其等級與總能力值)- Returns:
- 封包位元組陣列
-
temporaryStats
建構設定臨時能力值的封包(TEMP_STATS)。依
mystats鍵集合計算 32 位元更新遮罩後寫入,再逐一序列化每個MapleStat.Temp數值(移速/跳躍/未知為 byte,其餘為 short)。常用於特定地圖或 教學情境下暫時覆寫角色能力值。- Parameters:
mystats- 欲設定的臨時能力值MapleStat.Temp與其數值對應表- Returns:
- 封包位元組陣列
-
temporaryStats_Reset
public static byte[] temporaryStats_Reset()建構重設(清除)臨時能力值的封包(TEMP_STATS_RESET)。僅寫入 opcode,使客戶端移除先前由
temporaryStats(Map)套用的臨時能力值。- Returns:
- 封包位元組陣列
-
updateSkills
建構更新技能等級/熟練度的封包(UPDATE_SKILLS)。逐一寫入每個
Skill的技能 ID、當前等級、精通等級與到期時間 (SkillEntry),用於通知客戶端技能習得、升級或到期。- Parameters:
update- 欲更新的Skill與其SkillEntry對應表- Returns:
- 封包位元組陣列
-
giveFameErrorResponse
public static byte[] giveFameErrorResponse(int op) 建構名聲操作的錯誤回應封包。以無角色名、無新名聲值委派至
OnFameResult(int, String, boolean, int),op為錯誤碼(如使用者名稱錯誤、等級不足、本日/本月次數已滿等)。- Parameters:
op- 名聲錯誤碼- Returns:
- 封包位元組陣列
-
OnFameResult
建構名聲操作結果的封包(FAME_RESPONSE)。寫入操作碼
op;當op為 0(給予名聲)或 5(收到名聲)時,附帶對方 角色名與升/降旗標,op==0時再寫入更新後的名聲值。其餘op值為各類錯誤提示。- Parameters:
op- 操作碼(0=給予、5=收到,其餘為錯誤碼)charname- 對方角色名(null視為空字串)raise-true為提升名聲、false為降低newFame- 更新後的名聲值(僅op==0時寫入)- Returns:
- 封包位元組陣列
-
BombLieDetector
public static byte[] BombLieDetector(boolean error, int mapid, int channel) 建構「炸彈測謊器」事件的封包(BOMB_LIE_DETECTOR)。寫入錯誤旗標(
error為 2、否則 1)、地圖 ID 與頻道(255 代表全頻道)。- Parameters:
error- 是否為錯誤狀態mapid- 目標地圖 IDchannel- 目標頻道(255 代表全頻道)- Returns:
- 封包位元組陣列
-
report
public static byte[] report(int mode) 建構玩家檢舉結果的封包(REPORT_RESPONSE)。寫入結果碼
mode;當mode==2(成功登記)時附帶額外的旗標與計數。 其餘mode值對應各類失敗提示(如稍後再試、楓幣不足、次數超限等)。- Parameters:
mode- 檢舉結果碼(2=成功登記)- Returns:
- 封包位元組陣列
-
OnSetClaimSvrAvailableTime
public static byte[] OnSetClaimSvrAvailableTime(int from, int to) 建構設定檢舉伺服器可用時段的封包(REPORT_TIME)。寫入可檢舉的起迄時間(時),客戶端據以顯示「僅可於 X 至 Y 時檢舉」等提示。
- Parameters:
from- 可檢舉起始時間(時)to- 可檢舉結束時間(時)- Returns:
- 封包位元組陣列
-
OnClaimSvrStatusChanged
public static byte[] OnClaimSvrStatusChanged(boolean enable) 建構檢舉伺服器啟用狀態變更的封包(REPORT_STATUS)。寫入啟用旗標,通知客戶端目前是否開放檢舉功能。
- Parameters:
enable-true啟用檢舉、false停用- Returns:
- 封包位元組陣列
-
updateMount
建構更新騎寵狀態的封包(UPDATE_MOUNT)。讀取角色騎寵的等級、經驗值與疲勞度並寫入,附帶是否升級旗標, 用於同步騎寵成長狀態。
- Parameters:
chr- 目標角色(讀取其騎寵狀態)levelup- 騎寵是否升級- Returns:
- 封包位元組陣列
-
getShowQuestCompletion
public static byte[] getShowQuestCompletion(int id) 建構顯示任務完成動畫的封包(SHOW_QUEST_COMPLETION)。寫入任務 ID,使客戶端播放對應任務的完成特效。
- Parameters:
id- 完成的任務 ID- Returns:
- 封包位元組陣列
-
useSkillBook
public static byte[] useSkillBook(MapleCharacter chr, int skillid, int maxlevel, boolean canuse, boolean success) 建構使用技能書結果的封包(USE_SKILL_BOOK)。寫入角色 ID、習得的技能 ID 與最高等級,並附帶是否可用、是否成功的旗標, 用於告知客戶端技能書習得結果。
- Parameters:
chr- 使用技能書的角色(讀取其 ID)skillid- 習得的技能 IDmaxlevel- 該技能的最高等級canuse- 是否可使用該技能success- 技能書是否使用成功- Returns:
- 封包位元組陣列
-
useAPSPReset
public static byte[] useAPSPReset(boolean spReset, int cid) 建構 AP/SP 重置結果的封包。依
spReset選用SP_RESET或AP_RESET的 opcode, 寫入角色 ID 與成功旗標(0為失敗)。- Parameters:
spReset-true為 SP 重置、false為 AP 重置cid- 目標角色 ID- Returns:
- 封包位元組陣列
-
updateExpPotion
public static byte[] updateExpPotion(int mode, int id, int itemId, boolean firstTime, int level, int potionDstLevel, int exp) 建構更新經驗藥水(升等藥水)狀態的封包(EXP_POTION)。依
mode寫入不同欄位:mode==2時附帶首次使用旗標、藥水道具 ID、 起始等級、可達上限等級與經驗值等資訊,用於同步升等藥水的進度。- Parameters:
mode- 操作模式(1/2 對應不同寫法)id- 經驗藥水識別值(0時不寫入後續欄位)itemId- 藥水道具 IDfirstTime- 是否為首次使用level- 起始等級potionDstLevel- 使用藥水可達的上限等級exp- 經驗值(隨機,近似藥水 ID)- Returns:
- 封包位元組陣列
-
expandCharacterSlots
public static byte[] expandCharacterSlots(int mode) 建構擴充角色欄位結果的封包(EXPAND_CHARACTER_SLOTS)。寫入結果碼
mode:-1表示已擴充過、0表示失敗、1表示成功增加角色欄位數。- Parameters:
mode- 擴充結果碼- Returns:
- 封包位元組陣列
-
finishedGather
public static byte[] finishedGather(int type) 建構物品欄整理(聚集)完成的封包。以
gather=true委派至gatherSortItem(boolean, int)。- Parameters:
type- 物品欄類型- Returns:
- 封包位元組陣列
-
finishedSort
public static byte[] finishedSort(int type) 建構物品欄排序完成的封包。以
gather=false委派至gatherSortItem(boolean, int)。- Parameters:
type- 物品欄類型- Returns:
- 封包位元組陣列
-
gatherSortItem
public static byte[] gatherSortItem(boolean gather, int type) 建構物品欄聚集/排序完成的封包。依
gather選用FINISH_GATHER或FINISH_SORT的 opcode, 並寫入物品欄類型,通知客戶端整理動作已完成。- Parameters:
gather-true為聚集完成、false為排序完成type- 物品欄類型- Returns:
- 封包位元組陣列
-
updateGender
建構更新角色性別的封包(UPDATE_GENDER)。寫入角色性別;通常於進入商城(Cash Shop)時送出。
- Parameters:
chr- 目標角色(讀取其性別)- Returns:
- 封包位元組陣列
-
charInfo
建構角色詳細資訊(人物卡)的封包(CHAR_INFO)。大量讀取目標角色狀態並序列化,包含等級、職業、PVP 階級、名聲、是否結婚、專業技能、 公會與聯盟名稱、已召喚寵物資訊、騎寵狀態、願望清單、勳章與已完成勳章任務,以及各項 性向(
MapleTrait.MapleTraitType)等級。isSelf影響其中一個旗標的寫入。- Parameters:
chr- 欲查看資訊的目標角色isSelf- 是否為查看自身資訊- Returns:
- 封包位元組陣列
-
getMonsterBookInfo
建構怪物圖鑑資訊的封包(BOOK_INFO)。寫入角色 ID 與等級後,委由角色的
怪物圖鑑寫入其卡片收集資訊。- Parameters:
chr- 目標角色(讀取其等級與怪物圖鑑)- Returns:
- 封包位元組陣列
-
spawnPortal
建構生成傳送門(如回城卷/組隊傳送)的封包(SPAWN_PORTAL)。寫入起點城鎮地圖與目標地圖 ID;當兩者皆非
999999999時再寫入技能 ID 與座標。- Parameters:
townId- 起點城鎮地圖 IDtargetId- 目標地圖 IDskillId- 產生傳送門的技能 IDpos- 傳送門座標- Returns:
- 封包位元組陣列
-
mechPortal
建構機械師傳送門的封包(MECH_PORTAL)。寫入傳送門座標,用於機械師(Mechanic)職業的傳送門技能。
- Parameters:
pos- 傳送門座標- Returns:
- 封包位元組陣列
-
echoMegaphone
-
showQuestMsg
建構粉紅色任務系統訊息的封包。以類型 5(粉紅色文字)委派至
serverNotice(int, String)。- Parameters:
msg- 訊息內容- Returns:
- 封包位元組陣列
-
Mulung_Pts
public static byte[] Mulung_Pts(int recv, int total) 建構武陵道場修練分數提示的封包。組成「獲得 N 分修練分數」的粉紅色訊息並委派至
showQuestMsg(String)。- Parameters:
recv- 本次獲得的修練分數total- 累積的修練分數- Returns:
- 封包位元組陣列
-
serverMessage
建構伺服器訊息(捲動橫幅)的封包。以類型 4(Server Message)委派至內部的
serverMessage(int, int, String, boolean)。- Parameters:
message- 訊息內容- Returns:
- 封包位元組陣列
-
serverNotice
建構指定類型的伺服器公告封包。以頻道 0、非耳語委派至內部的
serverMessage(int, int, String, boolean)。- Parameters:
type- 訊息類型(0=系統通知、1=彈窗、4=伺服器訊息、5=粉紅文字等)message- 訊息內容- Returns:
- 封包位元組陣列
-
serverNotice
建構指定類型與頻道的伺服器公告封包。以非耳語委派至內部的
serverMessage(int, int, String, boolean);channel對部分喇叭類型表示來源頻道(顯示時會減 1),對道具喇叭類型則可能表示道具 ID。- Parameters:
type- 訊息類型channel- 來源頻道(或依類型作為道具 ID)message- 訊息內容- Returns:
- 封包位元組陣列
-
serverNotice
建構指定類型、頻道與耳語旗標的伺服器公告封包。委派至內部的
serverMessage(int, int, String, boolean);smegaEar對應高級喇叭是否附帶頻道入口(聽筒)。- Parameters:
type- 訊息類型channel- 來源頻道(或依類型作為道具 ID)message- 訊息內容smegaEar- 高級喇叭是否附帶頻道入口- Returns:
- 封包位元組陣列
-
getGachaponMega
建構轉蛋/寶箱中獎全頻廣播的封包(SERVERMESSAGE)。依
isChest寫入訊息類型(寶箱 21、轉蛋 20),附帶來源頻道、獲得者角色名, 並透過PacketHelper.addItemInfo(MaplePacketLittleEndianWriter, Item)寫入中獎道具資訊。- Parameters:
name- 獲得道具的角色名item- 中獎的道具isChest-true為寶箱、false為轉蛋ch- 來源頻道- Returns:
- 封包位元組陣列
-
getAniMsg
public static byte[] getAniMsg(int questID, int time) 建構動畫訊息(Ani Message)的封包(SERVERMESSAGE類型 23)。寫入訊息類型 23、任務 ID 與顯示時間,用於播放與任務關聯的畫面動畫提示。
- Parameters:
questID- 關聯的任務 IDtime- 顯示時間- Returns:
- 封包位元組陣列
-
tripleSmega
-
itemMegaphone
建構道具喇叭(Item Megaphone)的封包(SERVERMESSAGE類型 8)。寫入訊息類型 8、訊息文字、來源頻道(顯示時減 1)與耳語旗標,並附帶道具位置; 當
item非null時再寫入完整道具資訊,使廣播訊息可顯示連結道具。- Parameters:
msg- 喇叭訊息文字whisper- 是否為耳語模式channel- 來源頻道item- 欲附帶顯示的道具(可為null)- Returns:
- 封包位元組陣列
-
getPeanutResult
public static byte[] getPeanutResult(int itemId, short quantity, int itemId2, short quantity2, int ourItem) 建構「豆豆」(Pigmi)兌換結果的封包(PIGMI_REWARD)。寫入兩組產出道具的 ID 與數量,以及投入的道具 ID,用於顯示豆豆兌換獲得的道具。
- Parameters:
itemId- 第一項產出道具 IDquantity- 第一項產出道具數量itemId2- 第二項產出道具 IDquantity2- 第二項產出道具數量ourItem- 投入兌換的道具 ID- Returns:
- 封包位元組陣列
-
getOwlOpen
public static byte[] getOwlOpen()建構開啟智慧之鳥(雪域貓頭鷹)搜尋介面的封包(OWL_OF_MINERVA)。寫入子操作 9,並列出
GameConstants.owlItems中預設的熱門搜尋道具 ID。- Returns:
- 封包位元組陣列
-
getOwlSearched
建構智慧之鳥搜尋結果的封包(OWL_OF_MINERVA)。寫入子操作 8 與搜尋道具 ID,彙整所有
雇傭商人中符合搜尋的MaplePlayerShopItem並逐筆寫入店主名、地圖、商店描述、數量、組數、價格與店家識別 (依InventoryHandler.OWL_ID決定使用店主 ID/商店 ID/物件 ID);裝備類道具另附完整道具資訊。- Parameters:
itemSearch- 欲搜尋的道具 IDhms- 在售雇傭商人清單- Returns:
- 封包位元組陣列
-
getOwlMessage
public static byte[] getOwlMessage(int msg) 建構智慧之鳥(商店進入)結果提示的封包(OWL_RESULT)。寫入結果碼
msg:0為成功,其餘對應各類失敗提示 (房間已關閉、人數已滿、死亡中無法操作、僅限自由市場使用等)。- Parameters:
msg- 結果碼- Returns:
- 封包位元組陣列
-
sendEngagementRequest
建構求婚邀請的封包(ENGAGE_REQUEST)。寫入模式 0(求婚)、求婚者角色名與其角色 ID,用於向對象發出訂婚請求。
- Parameters:
name- 求婚者角色名cid- 求婚者角色 ID- Returns:
- 封包位元組陣列
-
sendEngagement
建構訂婚/結婚相關結果的封包(ENGAGE_RESULT)。寫入結果碼
msg(11=訂婚、12=結婚、各類錯誤碼等);當為訂婚或結婚時附帶戒指道具、 男女雙方角色 ID 與姓名;當為 15(開啟喜帖)時寫入雙方姓名與婚禮類型。- Parameters:
msg- 結果碼(11=訂婚、12=結婚、15=開啟喜帖,其餘為各類提示)item- 戒指道具 IDmale- 男方角色(讀取其 ID 與姓名)female- 女方角色(讀取其 ID 與姓名)- Returns:
- 封包位元組陣列
-
sendWeddingGive
public static byte[] sendWeddingGive()建構結婚禮物「贈送」介面的封包(WEDDING_GIFT子操作 9)。寫入子操作 9 與空的道具數量,用於開啟贈送結婚禮物的介面。
- Returns:
- 封包位元組陣列
-
sendWeddingReceive
public static byte[] sendWeddingReceive()建構結婚禮物「接收」介面的封包(WEDDING_GIFT子操作 10)。寫入子操作 10 與空的道具數量,用於開啟接收結婚禮物的介面。
- Returns:
- 封包位元組陣列
-
giveWeddingItem
public static byte[] giveWeddingItem()建構贈送結婚禮物結果的封包(WEDDING_GIFT子操作 11)。寫入子操作 11 與空的道具資訊欄位,表示贈送結果;相鄰的結果碼 12/13/14 分別對應「每項願望清單僅能贈送一份禮物」與贈送失敗等提示。
- Returns:
- 封包位元組陣列
-
receiveWeddingItem
public static byte[] receiveWeddingItem()建構「收取結婚禮物」結果的封包。固定回傳結果碼
15(搭配SendPacketOpcode.WEDDING_GIFT), 用於提示玩家無法領取一次性道具等情況;之後寫入保留的時間與空的道具清單。- Returns:
- 封包位元組陣列
-
sendCashPetFood
public static byte[] sendCashPetFood(boolean success, byte index) 建構使用「現金寵物食品」結果的封包。使用
SendPacketOpcode.USE_CASH_PET_FOOD:先寫入成功旗標 (0成功、1失敗),成功時再寫入餵食的寵物欄位索引。- Parameters:
success- 餵食是否成功index- 被餵食寵物的欄位索引(僅在成功時序列化)- Returns:
- 封包位元組陣列
-
yellowChat
建構顯示黃色系統聊天訊息的封包。使用
SendPacketOpcode.YELLOW_CHAT,將msg以畫面上方 的黃色提示文字呈現。- Parameters:
msg- 要顯示的黃色提示文字- Returns:
- 封包位元組陣列
-
shopDiscount
public static byte[] shopDiscount(int percent) 建構商店折扣比率的封包。使用
SendPacketOpcode.SHOP_DISCOUNT,寫入折扣百分比, 供客戶端套用商店購買價格。- Parameters:
percent- 折扣百分比- Returns:
- 封包位元組陣列
-
catchMob
public static byte[] catchMob(int mobid, int itemid, byte success) 建構「捕捉怪物」結果的封包。使用
SendPacketOpcode.CATCH_MOB,依序寫入成功旗標、所用道具 編號與目標怪物編號(如捕獲球之類的捕捉道具)。- Parameters:
mobid- 被捕捉的怪物編號itemid- 用於捕捉的道具編號success- 捕捉是否成功的旗標- Returns:
- 封包位元組陣列
-
spawnPlayerNPC
建構生成「玩家 NPC」的封包。使用
SendPacketOpcode.PLAYER_NPC,寫入 NPC 編號與名稱,並透過PacketHelper.addCharLook(MaplePacketLittleEndianWriter, MapleCharacterLook, boolean)附上其外觀資料。- Parameters:
npc- 要生成的玩家 NPC,提供編號、名稱與外觀- Returns:
- 封包位元組陣列
-
disabledNPC
建構停用一組 NPC 的封包。使用
SendPacketOpcode.DISABLE_NPC,先寫入數量,再依序寫入每個 要停用的 NPC 編號。- Parameters:
ids- 要停用的 NPC 編號清單- Returns:
- 封包位元組陣列
-
getCard
public static byte[] getCard(int itemid, int level) 建構取得「怪物卡片」的封包。使用
SendPacketOpcode.GET_CARD:當itemid > 0時寫入旗標1並接著序列化卡片道具編號與等級,否則僅寫入旗標0。- Parameters:
itemid- 取得的卡片道具編號;<= 0表示未取得卡片level- 該卡片的等級(僅在itemid > 0時序列化)- Returns:
- 封包位元組陣列
-
changeCardSet
public static byte[] changeCardSet(int set) 建構切換「怪物卡片組」的封包。使用
SendPacketOpcode.CARD_SET,寫入要切換到的卡片組編號。- Parameters:
set- 卡片組編號- Returns:
- 封包位元組陣列
-
upgradeBook
建構更新「怪物卡片圖鑑」道具資訊的封包。使用
SendPacketOpcode.BOOK_STATS,寫入圖鑑道具的欄位位置(位於 特殊負欄位 -55),並透過PacketHelper.addItemInfo(MaplePacketLittleEndianWriter, Item)附上完整道具資料。- Parameters:
book- 卡片圖鑑道具chr- 持有該道具的角色,供道具資訊序列化參考- Returns:
- 封包位元組陣列
-
getCardDrops
建構顯示某張怪物卡片掉落來源怪物清單的封包。使用
SendPacketOpcode.CARD_DROPS,先寫入卡片編號,再寫入掉落 怪物數量與各怪物編號;drops為null時數量視為 0。- Parameters:
cardid- 怪物卡片編號drops- 會掉落該卡片的怪物編號清單,可為null- Returns:
- 封包位元組陣列
-
getFamiliarInfo
建構角色「夥伴怪物(Familiar)」總覽資訊的封包。使用
SendPacketOpcode.FAMILIAR_INFO:先序列化角色已註冊的所有MonsterFamiliar,再掃描其 USE 道具列表中卡片類別為 287 的夥伴 召喚卡(透過MapleItemInformationProvider.getFamiliarByItem(int)),並寫入這些 尚可註冊的夥伴項目。會讀取角色的道具與夥伴狀態。- Parameters:
chr- 目標角色,提供已註冊夥伴與道具清單- Returns:
- 封包位元組陣列
-
MulungEnergy
public static byte[] MulungEnergy(int energy) 建構更新武陵道場「氣」能量值的封包。委派至
sendPyramidEnergy(String, String),以鍵"energy"傳遞能量值字串。- Parameters:
energy- 目前的氣能量值- Returns:
- 封包位元組陣列
-
sendPyramidEnergy
建構更新「連線階段(session)」自訂數值的封包。委派至
sendString(int, String, String)並以type=1(SendPacketOpcode.SESSION_VALUE)送出。常見鍵包含energy、massacre_*、PRaid_Team、kill_count等。- Parameters:
type- 要更新的數值鍵名amount- 對應的數值(字串)- Returns:
- 封包位元組陣列
-
sendGhostPoint
建構更新「組隊(party)」自訂數值的封包。委派至
sendString(int, String, String)並以type=2(SendPacketOpcode.PARTY_VALUE)送出,例如PRaid_Point。- Parameters:
type- 要更新的數值鍵名amount- 對應的數值(字串)- Returns:
- 封包位元組陣列
-
sendGhostStatus
建構更新「地圖(map)」自訂數值的封包。委派至
sendString(int, String, String)並以type=3(SendPacketOpcode.MAP_VALUE)送出,常見鍵如Red_Stage、Blue_Stage、blueTeamDamage、Bamboo_Used等。- Parameters:
type- 要更新的數值鍵名amount- 對應的數值(字串)- Returns:
- 封包位元組陣列
-
sendString
建構更新自訂鍵值對數值的通用封包。依
type選擇對應的送出操作碼:1→SendPacketOpcode.SESSION_VALUE、2→SendPacketOpcode.PARTY_VALUE、3→SendPacketOpcode.MAP_VALUE;接著依序寫入鍵名與數值字串。為sendPyramidEnergy(String, String)/sendGhostPoint(String, String)/sendGhostStatus(String, String)的共用底層。- Parameters:
type- 數值範圍類型(1=session、2=party、3=map)object- 要更新的數值鍵名amount- 對應的數值(字串)- Returns:
- 封包位元組陣列
-
fairyPendantMessage
public static byte[] fairyPendantMessage(int termStart, int incExpR) 建構「妖精吊墜」額外經驗加成提示的封包。使用
SendPacketOpcode.EXP_BONUS,寫入加成種類(0x11=吊墜)、 起算時數(配戴時固定為 0)與額外經驗加成比率。注意termStart參數實際被 忽略,序列化時固定寫入 0。- Parameters:
termStart- 加成起算時數(目前未使用,序列化為 0)incExpR- 額外經驗加成比率(<= 0x3D)- Returns:
- 封包位元組陣列
-
potionDiscountMessage
public static byte[] potionDiscountMessage(int type, int potionDiscR) 建構「藥水折扣」加成提示的封包。使用
SendPacketOpcode.POTION_BONUS,寫入加成種類 (0x11=吊墜、0x31=Evan 勳章)與藥水折扣比率。- Parameters:
type- 加成種類旗標potionDiscR- 藥水折扣比率(<= 0x3D)- Returns:
- 封包位元組陣列
-
sendLevelup
建構家族/公會成員升級廣播的封包。使用
SendPacketOpcode.LEVEL_UPDATE:先寫入來源旗標 (family ? 1 : 2,區分家族或公會通知),再寫入新等級與角色名稱。- Parameters:
family-true為家族通知,false為公會通知level- 升級後的等級name- 升級的角色名稱- Returns:
- 封包位元組陣列
-
sendMarriage
建構家族/公會成員結婚廣播的封包。使用
SendPacketOpcode.MARRIAGE_UPDATE:先寫入來源旗標 (family ? 1 : 0),再寫入角色名稱。- Parameters:
family-true為家族通知,false為公會通知name- 結婚的角色名稱- Returns:
- 封包位元組陣列
-
sendJobup
建構家族/公會成員轉職廣播的封包。使用
SendPacketOpcode.JOB_UPDATE:寫入來源旗標 (family ? 1 : 0)、新職業編號,以及角色名稱(非家族通知時於名稱前加上"> "前綴)。- Parameters:
family-true為家族通知,false為公會通知jobid- 轉職後的職業編號name- 轉職的角色名稱- Returns:
- 封包位元組陣列
-
getAvatarMega
public static byte[] getAvatarMega(MapleCharacter chr, int channel, int itemId, String text, boolean ear) 建構「大聲公頭像喇叭(Avatar Megaphone)」訊息的封包。使用
SendPacketOpcode.AVATAR_MEGA:依序寫入喇叭道具編號、發送者 名稱、訊息文字、頻道(以channel - 1序列化)與「擴音耳機」旗標,最後透過PacketHelper.addCharLook(MaplePacketLittleEndianWriter, MapleCharacterLook, boolean)附上發送者外觀。- Parameters:
chr- 發送喇叭的角色,提供名稱與外觀channel- 發送所在頻道(序列化時減 1)itemId- 使用的喇叭道具編號text- 喇叭訊息文字ear- 是否為含擴音耳機效果的喇叭- Returns:
- 封包位元組陣列
-
GMPoliceMessage
public static byte[] GMPoliceMessage(boolean dc) 建構「GM 警察(檢舉處置)」提示的封包。使用
SendPacketOpcode.GM_POLICE,寫入處置碼 (dc ? 10 : 0)以決定是否將該客戶端中斷連線。- Parameters:
dc- 是否要將客戶端中斷連線- Returns:
- 封包位元組陣列
-
pendantSlot
public static byte[] pendantSlot(boolean p) 建構啟用/停用「吊墜額外欄位(slot -59)」的封包。使用
SendPacketOpcode.PENDANT_SLOT,寫入旗標 (p ? 1 : 0)以開放或關閉第二個吊墜裝備欄位。- Parameters:
p-true啟用額外吊墜欄位,false停用- Returns:
- 封包位元組陣列
-
followRequest
public static byte[] followRequest(int chrid) 建構「跟隨(組隊同行)邀請」的封包。使用
SendPacketOpcode.FOLLOW_REQUEST,寫入發起跟隨邀請的 角色編號。- Parameters:
chrid- 發起跟隨邀請的角色編號- Returns:
- 封包位元組陣列
-
getTopMsg
建構畫面頂端跑馬燈訊息的封包。使用
SendPacketOpcode.TOP_MSG,將msg顯示為畫面頂端的 系統訊息。- Parameters:
msg- 要顯示的頂端訊息文字- Returns:
- 封包位元組陣列
-
showMidMsg
建構畫面中央訊息的封包。使用
SendPacketOpcode.MID_MSG:寫入位置/旗標l、訊息 文字,再寫入是否移除的旗標(依s是否為空字串而定)。- Parameters:
s- 要顯示的中央訊息文字l- 訊息位置/顯示旗標- Returns:
- 封包位元組陣列
-
getMidMsg
建構指定位置之畫面中央訊息的封包。使用
SendPacketOpcode.MID_MSG:寫入訊息應出現的螢幕位置index、訊息文字,以及是否保留顯示的旗標(keep ? 0 : 1)。- Parameters:
msg- 要顯示的中央訊息文字keep- 是否持續保留訊息(true保留)index- 訊息在螢幕上出現的位置- Returns:
- 封包位元組陣列
-
clearMidMsg
public static byte[] clearMidMsg()建構清除畫面中央訊息的封包。使用
SendPacketOpcode.CLEAR_MID_MSG,僅含操作碼以移除目前顯示 的中央訊息。- Returns:
- 封包位元組陣列
-
updateJaguar
建構更新獵人「美洲豹(Jaguar)」騎乘資訊的封包。使用
SendPacketOpcode.UPDATE_JAGUAR,透過PacketHelper.addJaguarInfo(MaplePacketLittleEndianWriter, MapleCharacter)序列化角色目前的美洲豹資料。會讀取角色狀態。- Parameters:
from- 擁有美洲豹的角色- Returns:
- 封包位元組陣列
-
loadInformation
public static byte[] loadInformation()建構開啟「個人資訊(Your Information)」面板的封包。使用
SendPacketOpcode.YOUR_INFORMATION,以載入模式2開啟 面板,並寫入地區、生日、偏好活動旗標與常出沒地點旗標等欄位(此處皆序列化為佔位 0)。- Returns:
- 封包位元組陣列
-
saveInformation
public static byte[] saveInformation(boolean fail) 建構「個人資訊」儲存結果的封包。使用
SendPacketOpcode.YOUR_INFORMATION,以儲存模式4寫入 成功旗標(fail ? 0 : 1)。- Parameters:
fail- 儲存是否失敗(true失敗)- Returns:
- 封包位元組陣列
-
myInfoResult
public static byte[] myInfoResult()建構開啟「尋友(Friend Finder)」時的個人結果封包。使用
SendPacketOpcode.FIND_FRIEND,以模式6回應,於玩家 開啟尋友介面時送出(其餘欄位為佔位 0)。- Returns:
- 封包位元組陣列
-
findFriendResult
建構「尋友」搜尋結果清單的封包。使用
SendPacketOpcode.FIND_FRIEND,以模式8寫入結果數量, 並對每位角色序列化編號、名稱、等級、職業等欄位(遊玩風格與所在地以 0 佔位)。 會讀取每位角色的狀態。- Parameters:
friends- 搜尋到的角色清單- Returns:
- 封包位元組陣列
-
friendFinderError
public static byte[] friendFinderError()建構「尋友」錯誤提示的封包。使用
SendPacketOpcode.FIND_FRIEND,以模式9寫入錯誤碼12(請稍後再試)。- Returns:
- 封包位元組陣列
-
friendCharacterInfo
建構「尋友」角色詳細資訊的封包。使用
SendPacketOpcode.FIND_FRIEND,以模式11寫入角色編號, 並透過PacketHelper.addCharLook(MaplePacketLittleEndianWriter, MapleCharacterLook, boolean)附上其外觀資料。會讀取角色狀態。- Parameters:
chr- 要顯示詳細資訊的角色- Returns:
- 封包位元組陣列
-
showBackgroundEffect
建構顯示地圖背景特效的封包。使用
SendPacketOpcode.VISITOR,寫入特效名稱(例如"Visitor") 與其數值參數。- Parameters:
eff- 背景特效名稱value- 特效數值參數- Returns:
- 封包位元組陣列
-
sendPinkBeanChoco
public static byte[] sendPinkBeanChoco()建構開啟「粉紅豆巧克力」收集介面的封包。使用
SendPacketOpcode.PINKBEAN_CHOCO,寫入開啟模式(1=開啟、0=更新)、是否全滿旗標與已收集巧克力的旗標位元(此處皆以佔位 0 序列化)。- Returns:
- 封包位元組陣列
-
changeChannelMsg
建構「自動換頻」提示訊息的封包。使用
SendPacketOpcode.AUTO_CC_MSG,寫入目標頻道與提示文字, 用於通知玩家即將自動切換頻道。- Parameters:
channel- 目標頻道編號msg- 提示文字- Returns:
- 封包位元組陣列
-
pamSongUI
public static byte[] pamSongUI()建構開啟「Pam 之歌(記憶之歌)」介面的封包。使用
SendPacketOpcode.PAM_SONG,僅含操作碼以開啟對應介面。- Returns:
- 封包位元組陣列
-
ultimateExplorer
public static byte[] ultimateExplorer()建構開啟「終極冒險家(Ultimate Explorer)」介面的封包。使用
SendPacketOpcode.ULTIMATE_EXPLORER,僅含操作碼以觸發對應介面。- Returns:
- 封包位元組陣列
-
professionInfo
建構「專業技能(採集/製作)」資訊的封包。使用
SendPacketOpcode.PROFESSION_INFO,寫入技能識別字串、兩個等級 欄位與成功率;其中採礦/製藥類(識別字串以"9200"或"9201"開頭)會 強制以 100% 序列化,其餘採用傳入的chance。- Parameters:
skil- 專業技能識別字串level1- 技能等級欄位一level2- 技能等級欄位二chance- 成功率(特定採集類技能會被覆寫為 100)- Returns:
- 封包位元組陣列
-
updateAzwanFame
public static byte[] updateAzwanFame(int level, int fame, boolean levelup) 建構更新「阿斯旺(Azwan)名譽 / Honour」的封包。使用
SendPacketOpcode.UPDATE_HONOUR,依序寫入名譽等級、名譽值與 是否升級的旗標。- Parameters:
level- 名譽等級fame- 名譽值levelup- 是否伴隨名譽升級- Returns:
- 封包位元組陣列
-
showAzwanKilled
public static byte[] showAzwanKilled()建構「阿斯旺(Azwan)擊殺」提示的封包。使用
SendPacketOpcode.AZWAN_KILLED,僅含操作碼以觸發對應提示。- Returns:
- 封包位元組陣列
-
updateCoreAura
建構更新「核心光環(Core Aura)」的封包。使用
SendPacketOpcode.UPDATE_CORE_AURA,寫入旗標1後透過PacketHelper.addCharacterInfo(MaplePacketLittleEndianWriter, MapleCharacter)附上角色完整資訊。會讀取角色狀態。- Parameters:
chr- 套用核心光環的角色- Returns:
- 封包位元組陣列
-
updateImpTime
public static byte[] updateImpTime()建構更新「小惡魔寵物罐(Imp)」時間欄位的封包。使用
SendPacketOpcode.UPDATE_IMP_TIME,寫入小惡魔編號與時間欄位 (此處皆以佔位 0 序列化)。- Returns:
- 封包位元組陣列
-
updateImp
建構更新「小惡魔寵物罐(Imp)」狀態的封包。使用
SendPacketOpcode.ITEM_POT:先寫入變更旗標 (login ? 0 : 1)、欄位索引(index + 1)與屬性遮罩mask,再依MapleImp.ImpFlag各位元選擇性寫入對應屬性(飽食度、親密度、 等級、各時間戳等),時間欄位以PacketHelper.getTime(long)取當前系統時間序列化。當遮罩含
MapleImp.ImpFlag.SUMMONED而查無對應道具罐資料 (MapleItemInformationProvider.getPot(int))時,改回傳enableActions()。 會讀取imp與道具資料的狀態。- Parameters:
imp- 小惡魔寵物罐物件,提供道具編號與各屬性mask- 要更新的屬性位元遮罩(見MapleImp.ImpFlag)index- 小惡魔在欄位中的索引(序列化時加 1)login- 是否為登入時的初始化(true標記為未變更)- Returns:
- 封包位元組陣列;查無道具罐資料時為
enableActions()
-
getMulungMessage
建構武陵道場系統訊息的封包。使用
SendPacketOpcode.MULUNG_MESSAGE,寫入是否關閉客戶端視窗的 旗標(dc ? 1 : 0)與訊息文字。- Parameters:
dc- 是否在顯示後關閉客戶端(道場)視窗msg- 要顯示的訊息文字- Returns:
- 封包位元組陣列
-
getMulungRanks
建構武陵道場排行榜的封包。使用
SendPacketOpcode.MULUNG_DOJO_RANKING:以rs.last()取得 總筆數,再rs.beforeFirst()重頭逐列寫入名次、角色名稱與通關時間;查無資料時寫入 一筆空白佔位列。需傳入可捲動(scrollable)的ResultSet(連線層在 Connector/J 8.x 須以 scrollable cursor 建立,否則last()/beforeFirst()會 失敗)。會讀取資料庫查詢結果。- Parameters:
rs- 道場排行查詢結果(須為可捲動 ResultSet,含name、time欄位)- Returns:
- 封包位元組陣列
- Throws:
SQLException- 讀取rs發生資料庫錯誤時
-