底比斯天堂
瘋天堂私服發佈網站廣告欄位!
害怕天堂私服倒閉嗎?快使用天堂分析師!
天堂私服抽獎扭蛋物品及機率測試器
天堂私服稱號顏色製造器
瘋天堂私服發佈網站教您註冊推文收藏私服!
天堂私服血量魔力計算器
瘋天堂私服發布網站廣告贊助及爆料私服客服
教您如何不用註冊也可以推文天堂私服!
天堂私服270怪物查詢掉落資料庫
天堂私服盟徽製造器
test0428
2010-02-21 17:10

天堂版本升級3.63的教學!

Opcodes.java

/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package l1j.server.server;

public class Opcodes {

public Opcodes() {
}
/** 3.63C測試 Client Packet */

/** 3.3新地圖系統 */
public static final int C_OPCODE_MAPSYSTEM = 41;//59;//254;

/** 登入伺服器OK */
public static final int C_OPCODE_LOGINTOSERVEROK = 75;//118;//196;

/** 要求打開郵箱 */
public static final int C_OPCODE_MAIL = 22;//73;//46;

/** 要求登入測試 ( 接收伺服器版本 ) */
public static final int C_OPCODE_CLIENTVERSION = 127;//211;//160;

/** 要求血盟數據(例如盟標) */
public static final int C_OPCODE_CLAN = 246;//156;//197;

/** 要求離開遊戲 */
public static final int C_OPCODE_QUITGAME = 104;//66;//30;

/** 要求使用一般聊天頻道 */
public static final int C_OPCODE_CHAT = 190;//193;//146;

/** 要求角色移動 */
public static final int C_OPCODE_MOVECHAR = 95;//163;//190;

/** 要求給予角色血盟階級 C_Rank */
public static final int C_OPCODE_SECOND_PLEDGE = 88;//244;//113;

/** 要求角色攻擊 */
public static final int C_OPCODE_ATTACK = 68;//120;//165;

/** 要求使用遠距武器 */
public static final int C_OPCODE_ARROWATTACK = 247;//243;

/** 要求進入遊戲 */
public static final int C_OPCODE_LOGINTOSERVER = 131;//20;//63;

/** 要求更新時間 */
public static final int C_OPCODE_KEEPALIVE = 182;//245;//176;

/** 要求使用物品 */
public static final int C_OPCODE_USEITEM = 44;//0;//106;

/** 要求使用技能 */
public static final int C_OPCODE_USESKILL = 115;//94;//206;

/** 要求自動登錄伺服器 與 師徒系統*/
public static final int C_OPCODE_AUTOLOGIN = 162;//62;//204;

/** 要求紀錄快速鍵 */
public static final int C_OPCODE_CHARACTERCONFIG = 129;//129;//42;

/** 要求切換角色 (到選人畫面) */
public static final int C_OPCODE_CHANGECHAR = 237;//112;//227;

/** 要求讀取公佈欄 */
public static final int C_OPCODE_BOARD = 73;//247;//13;

/** 要求閱讀佈告單個欄訊息 */
public static final int C_OPCODE_BOARDREAD = 59;//13;//55;

/** 要求使用密語聊天頻道 */
public static final int C_OPCODE_CHATWHISPER = 122;//172;//171;

/** 要求物件對話視窗結果 */
public static final int C_OPCODE_NPCACTION = 37;//33;//178;

/** 要求丟棄物品 */
public static final int C_OPCODE_DROPITEM = 54;//4;//52;

/** 要求物件對話視窗 */
public static final int C_OPCODE_NPCTALK = 58;//184;//21;

/** 要求使用廣播聊天頻道 */
public static final int C_OPCODE_CHATGLOBAL = 62;//176;//210;

/** 要求刪除物品 */
public static final int C_OPCODE_DELETEINVENTORYITEM = 209;//107;//39;

/** 要求撿取物品 */
public static final int C_OPCODE_PICKUPITEM = 188;//131;//92;

/** 要求開關門 */
public static final int C_OPCODE_DOOR = 199;//77;//143;

/** 要求列表物品取得 */
public static final int C_OPCODE_RESULT = 40;//115;//115;

/** 要求刪除角色 */
public static final int C_OPCODE_DELETECHAR = 10;//50;//188;

/** 要求查詢血盟成員 */
public static final int C_OPCODE_PLEDGE = 225;//18;//252;

/** 要求創造角色 */
public static final int C_OPCODE_NEWCHAR = 253;//93;//245;

/** 玩家傳送鎖定 (回溯檢測用)*/
public static final int C_OPCODE_TELEPORTLOCK = 226;//7;//134;

/** 要求維修物品清單 */
public static final int C_OPCODE_FIX_WEAPON_LIST = 106;//151;//183;

/** 要求學習魔法(金幣) */
public static final int C_OPCODE_SKILLBUY = 173;//9;//140;

/** 要求傳送 更新周圍物件 ( 無動畫傳送後 ) */
public static final int C_OPCODE_TELEPORT = 242;//25;//225;

/** 要求開個人商店 */
public static final int C_OPCODE_SHOP = 16;//198;//69;

/** 要求改變角色面向 */
public static final int C_OPCODE_CHANGEHEADING = 65;//205;//234;

/** 要求死亡後重新開始 */
public static final int C_OPCODE_RESTART = 71;//55;//103;

/** 要求查詢遊戲人數 */
public static final int C_OPCODE_WHO = 49;//157;//8;

/** 要求攻擊指定物件(寵物&召喚) */
public static final int C_OPCODE_SELECTTARGET = 155;//38;//96;

/** 要求變更倉庫密碼 && 送出倉庫密碼 */
public static final int C_OPCODE_WAREHOUSELOCK = 81;//147;//137;

/** 要求賦予封號 */
public static final int C_OPCODE_TITLE = 96;//79;//195;

/** 要求查詢PK次數 */
public static final int C_OPCODE_CHECKPK = 137;//83;//230;

/** 要求新增好友 */
public static final int C_OPCODE_ADDBUDDY = 99;//135;//175;

/** 要求增加記憶座標 */
public static final int C_OPCODE_ADDBOOKMARK = 134;//29;//255;

/** 要求刪除記憶座標 */
public static final int C_OPCODE_BOOKMARKDELETE = 223;//23;//149;

/** 要求寫入公佈欄訊息 */
public static final int C_OPCODE_BOARDWRITE = 14;//8;//28;

/** 要求刪除公佈欄內容 */
public static final int C_OPCODE_BOARDDELETE = 12;//63;//29;

/** 要求給予物品 */
public static final int C_OPCODE_GIVEITEM = 244;//250;//98;

/** 要求寵物回報選單(顯示寵物背包物品窗口) */
public static final int C_OPCODE_PETMENU = 217;//160;//127;

/** 要求查詢朋友名單 */
public static final int C_OPCODE_BUDDYLIST = 60;//132;//222;

/** 要求刪除好友 */
public static final int C_OPCODE_DELBUDDY = 211;//72;//233;

/** 要求退出觀看模式 */
public static final int C_OPCODE_EXIT_GHOST = 210;//154;//59;

/** 要求角色表情動作 */
public static final int C_OPCODE_EXTCOMMAND = 157;//182;//108;

/** 要求驅逐人物離開血盟 */
public static final int C_OPCODE_BANCLAN = 222;//200;//118;

/** 要求確定數量選取 */
public static final int C_OPCODE_AMOUNT = 109;//67;//62;

/** 要求使用拒絕名單(開啟指定人物訊息)/exclude 名字*/
public static final int C_OPCODE_EXCLUDE = 101;//37;//72;

/** 要求點選項目的結果 */
public static final int C_OPCODE_ATTR = 61;//10;//5;

/** 要求交易(個人) */
public static final int C_OPCODE_TRADE = 103;//181;//19;

/** 要求交易(添加物品) */
public static final int C_OPCODE_TRADEADDITEM = 241;//188;//211;

/** 要求完成交易(個人) */
public static final int C_OPCODE_TRADEADDOK = 110;//170;//50;

/** 要求加入血盟 */
public static final int C_OPCODE_JOINCLAN = 30;;//224;//217;

/** 要求創立血盟 */
public static final int C_OPCODE_CREATECLAN = 154;//148;//166;

/** 要求取消交易(個人) */
public static final int C_OPCODE_TRADEADDCANCEL = 167;//88;//94;

/** 要求個人商店 (物品列表) */
public static final int C_OPCODE_PRIVATESHOPLIST = 193;//123;//105;

/** 要求決鬥 */
public static final int C_OPCODE_FIGHT = 47;//41;//38;

/** 要求邀請加入隊伍(要求創立隊伍) 3.3新增委任隊長功能*/
public static final int C_OPCODE_CREATEPARTY = 66;//16;//145;

/** 要求隊伍對話控制(命令/chatparty) */
public static final int C_OPCODE_CAHTPARTY = 113;//61;//2;

/** 要求脫離隊伍 */
public static final int C_OPCODE_LEAVEPARTY = 204;//43;//84;

/** 要求結婚 (指令 /求婚)*/
public static final int C_OPCODE_PROPOSE = 185;//201;//33;

/** 要求鼠標右鍵傳入洞穴 */
public static final int C_OPCODE_ENTERPORTAL = 249;//239;//229;

/** 要求配置城牆上弓手 */
public static final int C_OPCODE_PUTBOWSOLDIER = 7;//45;//104;

/** 要求僱傭傭兵列表 (購買) */
public static final int C_OPCODE_HIRESOLDIER = 170;//17;//105;

/** 要求查看隊伍 */
public static final int C_OPCODE_PARTYLIST = 42;//190;//174;

/** 要求領出資金 */
public static final int C_OPCODE_DRAWAL = 192;//232;//108;

/** 要求存入資金 */
public static final int C_OPCODE_DEPOSIT = 35;//206;//109;

/** 要求踢出隊伍 */
public static final int C_OPCODE_BANPARTY = 70;//213;//170;

/** 要求釣魚收桿 */
public static final int C_OPCODE_FISHCLICK = 26;//161;//23;

/** 要求上傳盟標 */
public static final int C_OPCODE_EMBLEM = 107;//253;//9;

/** 要求物品維修/取出寵物 */
public static final int C_OPCODE_SELECTLIST = 238;//166;//205;

/** 要求宣戰 */
public static final int C_OPCODE_WAR = 235;//;//100;//246;

/** 要求脫離血盟 */
public static final int C_OPCODE_LEAVECLANE = 121;//102;//220;

/** 要求學習魔法完成 */
public static final int C_OPCODE_SKILLBUYOK = 207;//177;

/** 要求重置人物點數 */
public static final int C_OPCODE_CHARRESET = 236;//125;//-1016;

/** 要求設置治安管理 */
public static final int C_OPCODE_CASTLESECURITY = 125;//76;//-1011;

/** 要求血盟推薦數據 */
public static final int C_OPCODE_CLAN_RECOMMEND = 228;

/** 要求下一步 ( 公告資訊 ) */
public static final int C_OPCODE_COMMONCLICK = 53;//;//178;//1013;

/** 要求登入伺服器 */
public static final int C_OPCODE_LOGINPACKET = 57;//199;//191;

/** 要求召喚到身邊(gm) */
public static final int C_OPCODE_CALL = 144;//90;//179;

/** 要求使用寵物裝備 */
public static final int C_OPCODE_USEPETITEM = 213;//49;//-1014;

/** 要求寄送簡訊 未用 */
public static final int C_OPCODE_SMS = 45;//122;//82;

/** 要求下一頁 ( 公佈欄 )*/
public static final int C_OPCODE_BOARDNEXT = 221;//98;//49;

/** 要求船票數量 */
public static final int C_OPCODE_SHIP = 117;//97;//-101;

/** 要求選擇 變更攻城時間 */
public static final int C_OPCODE_SELECTWARTIME = 150;//44;//103;

/** 要求配置已僱傭 傭兵 選擇配置數量*/
public static final int C_OPCODE_PUTHIRESOLDIERLIST = 138;//208;//

/** 要求配置已僱傭 傭兵 OK */
public static final int C_OPCODE_PUTHIRESOLDIER = 172;//138;//107;

/** 要求稅收設定封包 */
public static final int C_OPCODE_TAXRATE = 200;//165;//1010;

/** 要求治安管理 OK*/
public static final int C_OPCODE_SETCASTLESECURITY = 149;//177;//1012;


/** 進入遊戲 */
public static final int S_OPCODE_LOGINTOGAME = 131;//27;//163;

/** 重置設定 */
public static final int S_OPCODE_CHARRESET = 33;//57;//130;

/** 界面寵物控制菜單消失 */
public static final int S_OPCODE_DELPETMENU = 33;//57;//130;

/** 角色資訊 */
public static final int S_OPCODE_CHARLIST = 184;//167;//15;

/** 物品名單 */
public static final int S_OPCODE_INVLIST = 180;//51;//204;

/** 物品顯示名稱 */
public static final int S_OPCODE_ITEMNAME = 195;//230;//225;

/** 初始化OpCode */
public static final int S_OPCODE_INITPACKET = 161;//206;//180;

/** 角色選擇視窗 / 開啟拒絕名單 (封包盒子) */
public static final int S_OPCODE_PACKETBOX = 40;//29;//249;
public static final int S_OPCODE_ACTIVESPELLS = 40;//29;//249;
public static final int S_OPCODE_SKILLICONGFX = 40;//29;//249;
public static final int S_OPCODE_UNKNOWN2 = 40;//29;//249;


/** 魔法攻擊力與魔法防禦力 */
public static final int S_OPCODE_SPMR = 174;//85;//210;

/** 增加魔法進魔法名單 */
public static final int S_OPCODE_ADDSKILL = 48;//61;//108;

/** 角色屬性與能力值 */
public static final int S_OPCODE_OWNCHARSTATUS = 145;//238;//255;

/** 更新角色所在的地圖 */
public static final int S_OPCODE_MAPID = 150;//82;//113;

/** 物件封包 */
public static final int S_OPCODE_CHARPACK = 3;//39;//176;

/** 伺服器版本 */
public static final int S_OPCODE_SERVERVERSION = 151;//106;//221;

/** 丟棄物品封包 */
public static final int S_OPCODE_DROPITEM = 3;//39;//176;

/** 角色狀態 (2) */
public static final int S_OPCODE_OWNCHARSTATUS2 = 216;//203;//41;

/** 更新目前遊戲時間 ( 遊戲時間 ) */
public static final int S_OPCODE_GAMETIME = 194;//17;//38;

/** 物件刪除 */
public static final int S_OPCODE_REMOVE_OBJECT = 185;//75;//169;

/** 登入狀態 */
public static final int S_OPCODE_LOGINRESULT = 51;//109;//5;

/** 角色列表 */
public static final int S_OPCODE_CHARAMOUNT = 126;//103;//62;

/** 廣播聊天頻道 */
public static final int S_OPCODE_GLOBALCHAT = 10;//124;//137;

/** 廣播聊天頻道 / 伺服器訊息 ( 字串 ) */
public static final int S_OPCODE_SYSMSG = 10;//124;//137;

/** 伺服器訊息 ( 行數 ) / ( 行數, 附加字串 ) */
public static final int S_OPCODE_SERVERMSG = 14;//242;//212;

/** 一般聊天頻道 */
public static final int S_OPCODE_NORMALCHAT = 76;//81;//216;

/** 非玩家聊天頻道 { 一般 & 大喊 } NPC */
public static final int S_OPCODE_NPCSHOUT = 133;//251;//119;

/** 郵件封包 */
public static final int S_OPCODE_MAIL = 1;//113;//231;

/** 物件移動 */
public static final int S_OPCODE_MOVEOBJECT = 122;//137;//80;

/** 正義值更新 */
public static final int S_OPCODE_LAWFUL = 140;//56;//36;

/** 角色封號 */
public static final int S_OPCODE_CHARTITLE = 202;//127;//233;

/** 角色記憶座標名單 */
public static final int S_OPCODE_BOOKMARKS = 11;//97;//70;

/** 魔法購買 (金幣) */
public static final int S_OPCODE_SKILLBUY = 222;//25;//90;

/** 物品可用次數 */
public static final int S_OPCODE_ITEMAMOUNT = 127;//227;//97;

/** 物品狀態更新 */
public static final int S_OPCODE_ITEMSTATUS = 127;//227;//97;

/** 物件動作種類 ( 短時間 ) */
public static final int S_OPCODE_DOACTIONGFX = 218;//189;//72;

/** 產生動畫 [ 物件 ] */
public static final int S_OPCODE_SKILLSOUNDGFX = 232;//95;//254;

/** 物件面向 */
public static final int S_OPCODE_CHANGEHEADING = 199;//77;//124;

/** 物件屬性 (門 開關)*/
public static final int S_OPCODE_ATTRIBUTE = 35;//138;//60;

/** 物件攻擊 */
public static final int S_OPCODE_ATTACKPACKET = 142;//67;//240;

/** 角色盟徽 */
public static final int S_OPCODE_EMBLEM = 50;//140;//202;

/** 產生動畫 [ 地點 ] */
public static final int S_OPCODE_EFFECTLOCATION = 112;//132;//159;

/** 魔法 | 物品效果 { 加速纇 } */
public static final int S_OPCODE_SKILLHASTE = 149;//185;//24;

/** 效果圖示 { 水底呼吸 } */
public static final int S_OPCODE_BLESSOFEVA = 12;//52;//0;

/** 產生對話視窗 */
public static final int S_OPCODE_SHOWHTML = 119;//135;//105;

/** 物品購買 */
public static final int S_OPCODE_SHOWSHOPBUYLIST = 254;//4;//206;

/** 體力更新 */
public static final int S_OPCODE_HPUPDATE = 42;//245;//47;

/** 魔力更新 */
public static final int S_OPCODE_MPUPDATE = 73;//195;//126;

/** 物品增加封包 */
public static final int S_OPCODE_ADDITEM = 63;//37;//149;

/** 物品刪除 */
public static final int S_OPCODE_DELETEINVENTORYITEM = 148;//38;//156;

/** NPC物品販賣 */
public static final int S_OPCODE_SHOWSHOPSELLLIST = 170;//9;//53;

/** NPC外型改變 */
public static final int S_OPCODE_POLY = 164;//100;//182;

/** 物件動作種類 ( 長時間 ) */
public static final int S_OPCODE_CHARVISUALUPDATE = 113;//118;//220;

/** 損壞武器名單 */
public static final int S_OPCODE_SELECTLIST = 208;//129;//147;

/** 人物回碩檢測 OR 傳送鎖定 ( 無動畫 ) */
public static final int S_OPCODE_TELEPORTLOCK = 135;//102;//8;

/** 要求傳送 ( NPC傳送反手 ) */
public static final int S_OPCODE_TELEPORT = 4;//50;//170;

/** 魔法效果 - 暗盲咒術 { 編號 } */
public static final int S_OPCODE_CURSEBLIND = 238;//144;//178;

/** 遊戲天氣 */
public static final int S_OPCODE_WEATHER = 193;//239;//42;

/** 角色皇冠 */
public static final int S_OPCODE_CASTLEMASTER = 66;//48;//85;

/** 角色防禦 & 屬性防禦 更新 */
public static final int S_OPCODE_OWNCHARATTRDEF = 15;//26;//226;

/** 倉庫物品名單 */
public static final int S_OPCODE_SHOWRETRIEVELIST = 250;//70;//248;

/** 選項封包 { Yes | No } */
public static final int S_OPCODE_YES_NO = 155;//24;//160;

/** 交易狀態 */
public static final int S_OPCODE_TRADESTATUS = 239;//46;//181;

/** 物件復活 */
public static final int S_OPCODE_RESURRECTION = 227;//7;//13;

/** 物件血條 */
public static final int S_OPCODE_HPMETER = 128;//33;//150;

/** 交易封包 */
public static final int S_OPCODE_TRADE = 77;//2;//146;

/** 增加交易物品封包 */
public static final int S_OPCODE_TRADEADDITEM = 86;//40;//131;

/** 改變物件名稱 */
public static final int S_OPCODE_CHANGENAME = 204;//175;//104;

/** 選擇一個目標 */
public static final int S_OPCODE_SELECTTARGET = 177;//5;//239;

/** 魔法效果 : 中毒 { 編號 } */
public static final int S_OPCODE_POISON = 93;//91;//183;

/** 魔法動畫 { 精準目標 } */
public static final int S_OPCODE_TRUETARGET = 110;//6;//138;

/** 魔法效果 : 防禦纇 */
public static final int S_OPCODE_SKILLICONSHIELD = 69;//44;//81;

/** 物品資訊訊息 { 使用String-h.tbl } */
public static final int S_OPCODE_IDENTIFYDESC = 43;//224;//76;

/** 海底波紋(第三段加速) */
public static final int S_OPCODE_LIQUOR = 31;//23;//120;

/** 魔法 | 物品效果圖示 { 勇敢藥水纇 } */
public static final int S_OPCODE_SKILLBRAVE = 200;//198;//3;

/** 力量提升封包 */
public static final int S_OPCODE_STRUP = 120;//31;//25;

/** 敏捷提升封包 */
public static final int S_OPCODE_DEXUP = 28;//253;//103;

/** 血盟小屋名單 */
public static final int S_OPCODE_HOUSELIST = 24;//252;//51;

/** 血盟小屋地圖 [ 地點 ] */
public static final int S_OPCODE_HOUSEMAP = 44;//101;//188;

/** 物件亮度 */
public static final int S_OPCODE_LIGHT = 53;//177;//1;

/** 撥放音效 */
public static final int S_OPCODE_SOUND = 84;//161;//172;

/** 拍賣公告欄選取金幣數量 選取物品數量 */
public static final int S_OPCODE_INPUTAMOUNT = 253;//141;//136;

/** 要求使用密語聊天頻道 */
public static final int S_OPCODE_WHISPERCHAT = 255;//157;//75;

/** 角色名稱變紫色 */
public static final int S_OPCODE_PINKNAME = 252;//162;//174;

/** 魔法效果 : 詛咒類 { 編號 } 麻痺,癱瘓 */
public static final int S_OPCODE_PARALYSIS = 165;//226;//253;

/** 角色個人商店 { 購買 } */
public static final int S_OPCODE_PRIVATESHOPLIST = 190;//28;

/** 夜視功能 */
public static final int S_OPCODE_ABILITY = 116;//114;//144;

/** 範圍魔法 */
public static final int S_OPCODE_RANGESKILLS = 16;//174;//201;

/** 佈告欄 ( 訊息列表 ) */
public static final int S_OPCODE_BOARD = 64;//45;//189;

/** 佈告欄( 訊息閱讀 ) */
public static final int S_OPCODE_BOARDREAD = 56;//194;//195;

/** 物件隱形 & 現形 */
public static final int S_OPCODE_INVIS = 57;//3;//186;

/** 角色創造失敗 */
public static final int S_OPCODE_NEWCHARWRONG = 153;//19;//74;

/** 創造角色封包 */
public static final int S_OPCODE_NEWCHARPACK = 212;//197;//141;

/** 角色移除 [ 非立即 ] */
public static final int S_OPCODE_DETELECHAROK = 5;//231;//222;

/** 移除魔法出魔法名單 */
public static final int S_OPCODE_DELSKILL = 18;//146;//30;

/** 動作自帶魔法動畫的範圍魔法封包(無指定動畫) */
public static final int S_OPCODE_NO_GFX_RANGE_ATTACK = 8;//22;//37;

/** 物品狀態 (祝福 & 詛咒)*/
public static final int S_OPCODE_ITEMCOLOR = 144;//98;//236;

/** 公告視窗 */
public static final int S_OPCODE_COMMONNEWS = 30;//249;//145;

/** 配置牆上弓手 */
public static final int S_OPCODE_PUTBOWSOLDIERLIST = 240;//131;//241;

/** 經驗值更新封包 */
public static final int S_OPCODE_EXP = 121;//229;//59;

/** 畫面正中出現紅色字(Account ? has just logged in form)*/
public static final int S_OPCODE_REDMESSAGE = 90;//53;//237;

/** 圍城時間設定 */
public static final int S_OPCODE_WARTIME = 49;//232;//247;

/** 取出城堡寶庫金幣 (1) */
public static final int S_OPCODE_DRAWAL = 224;//16;//96;

/** 存入資金城堡寶庫 (2) */
public static final int S_OPCODE_DEPOSIT = 203;//84;//58;

/** 稅收設定封包 */
public static final int S_OPCODE_TAXRATE = 72;//128;//43;

/** 配置擁有 傭兵名單 */
public static final int S_OPCODE_PUTSOLDIERLIST = 256;//43;//33;

/** 僱傭傭兵 傭兵名單(購買列表) */
public static final int S_OPCODE_HIRESOLDIER = 210;//213;//16;

/** 配置傭兵 */
public static final int S_OPCODE_PUTHIRESOLDIER = 39;//14;//200;

/** 立即中斷連線 */
public static final int S_OPCODE_DISCONNECT = 95;//15;//175;

/** 血盟戰爭訊息 { 編號, 血盟名稱, 目標血盟名稱 } */
public static final int S_OPCODE_WAR = 123;//55;//123;

/** 藍色訊息 { 使用String-h.tbl } 紅色字(地獄顯示字)*/
public static final int S_OPCODE_BLUEMESSAGE = 59;//171;//177;
}

C_UseSkill.java
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/

package l1j.server.server.clientpackets;

import static l1j.server.server.model.skill.L1SkillId.ABSOLUTE_BARRIER;
import static l1j.server.server.model.skill.L1SkillId.CALL_CLAN;
import static l1j.server.server.model.skill.L1SkillId.FIRE_WALL;
import static l1j.server.server.model.skill.L1SkillId.LIFE_STREAM;
import static l1j.server.server.model.skill.L1SkillId.MASS_TELEPORT;
import static l1j.server.server.model.skill.L1SkillId.MEDITATION;
import static l1j.server.server.model.skill.L1SkillId.RUN_CLAN;
import static l1j.server.server.model.skill.L1SkillId.TELEPORT;
import static l1j.server.server.model.skill.L1SkillId.TRUE_TARGET;

import java.util.logging.Logger;

import l1j.server.Config;
import l1j.server.server.ActionCodes;
import l1j.server.server.ClientThread;
import l1j.server.server.datatables.SkillsTable;
import l1j.server.server.model.AcceleratorChecker;
import l1j.server.server.model.L1World;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.model.skill.L1SkillUse;
import l1j.server.server.serverpackets.S_ServerMessage;

// Referenced classes of package l1j.server.server.clientpackets:
// ClientBasePacket

public class C_UseSkill extends ClientBasePacket {

private static Logger _log = Logger.getLogger(C_UseSkill.class.getName());

public C_UseSkill(byte abyte0[], ClientThread client) throws Exception {
super(abyte0);
int row = readC();
int column = readC();
int skillId = (row * 8) + column + 1;
String charName = null;
String message = null;
int targetId = 0;
int targetX = 0;
int targetY = 0;
L1PcInstance pc = client.getActiveChar();

if (pc.isTeleport() || pc.isDead()) {
return;
}
if (!pc.getMap().isUsableSkill()) {
pc.sendPackets(new S_ServerMessage(563)); // \f1ここでは使えません。
return;
}
if (!pc.isSkillMastery(skillId)) {
return;
}

// 要求間隔をチェックする
if (Config.CHECK_SPELL_INTERVAL) {
int result;
// FIXME どのスキルがdir/no dirであるかの判断が適当
if (SkillsTable.getInstance().getTemplate(skillId).getActionId() == ActionCodes.ACTION_SkillAttack) {
result = pc.getAcceleratorChecker().checkInterval(AcceleratorChecker.ACT_TYPE.SPELL_DIR);
} else {
result = pc.getAcceleratorChecker().checkInterval(AcceleratorChecker.ACT_TYPE.SPELL_NODIR);
}
if (result == AcceleratorChecker.R_DISCONNECTED) {
return;
}
}

if (abyte0.length > 4) {
try {
if (skillId == CALL_CLAN || skillId == RUN_CLAN) { // コールクラン、ランクラン
charName = readS();
} else if (skillId == TRUE_TARGET) { // トゥルーターゲット
targetId = readD();
targetX = readH();
targetY = readH();
message = readS();
} else if (skillId == TELEPORT || skillId == MASS_TELEPORT) {
targetId = readH();//TODO BookmarkMapID
targetX = readH();//TODO BookmarkX
targetY = readH();//TODO BookmarkY
} else if (skillId == FIRE_WALL || skillId == LIFE_STREAM) { // ファイアーウォール、ライフストリーム
targetX = readH();
targetY = readH();
} else {
targetId = readD();
targetX = readH();
targetY = readH();
}
} catch (Exception e) {
// _log.log(Level.SEVERE, "", e);
}
}

if (pc.hasSkillEffect(ABSOLUTE_BARRIER)) { // アブソルート バリアの解除
pc.killSkillEffectTimer(ABSOLUTE_BARRIER);
pc.startHpRegeneration();
pc.startMpRegeneration();
pc.startMpRegenerationByDoll();
}
pc.killSkillEffectTimer(MEDITATION);

try {
if (skillId == CALL_CLAN || skillId == RUN_CLAN) { // コールクラン、ランクラン
if (charName.isEmpty()) {
// 名前が空の場合クライアントで弾かれるはず
return;
}

L1PcInstance target = L1World.getInstance().getPlayer(charName);

if (target == null) {
// メッセージが正確であるか未調査
pc.sendPackets(new S_ServerMessage(73, charName)); // \f1%0はゲームをしていません。
return;
}
if (pc.getClanid() != target.getClanid()) {
pc.sendPackets(new S_ServerMessage(414)); // 同じ血盟員ではありません。
return;
}
targetId = target.getId();
if (skillId == CALL_CLAN) {
// 移動せずに連続して同じクラン員にコールクランした場合、向きは前回の向きになる
int callClanId = pc.getCallClanId();
if (callClanId == 0 || callClanId != targetId) {
pc.setCallClanId(targetId);
pc.setCallClanHeading(pc.getHeading());
}
}
}
L1SkillUse l1skilluse = new L1SkillUse();
l1skilluse.handleCommands(pc, skillId, targetId, targetX, targetY,message, 0, L1SkillUse.TYPE_NORMAL);

} catch (Exception e) {
e.printStackTrace();
}
}
}

<div style="text-align: center;"><div style="position:relative; top:0; margin-right:auto;margin-left:auto; z-index:99999">
Sponsored By <a href="http://www.fantastic-host.net/" target="_blank">FantasticHost</a> & <a href="http://tw.hostphoenix.net/" target="_blank">HostPhoenix</a> & <a href="http://www.hostfreeweb.net/" target="_blank">HostFreeWEB</a>
<br>
<script>var q = "z=2998&w=728&h=90";</script>
<script src="http://ads.doublemax.net/adx/rt_publisher.js" ></script>


</div></div>


S_BookMarkLogin.java
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/

package l1j.server.server.serverpackets;

import java.util.ArrayList;

import l1j.server.server.Opcodes;
import l1j.server.server.templates.L1BookMark;

/**
* 登陸時記憶封包
* @author 透明的冰
*/

public class S_BookMarkLogin extends ServerBasePacket{

public S_BookMarkLogin(ArrayList<L1BookMark> bookmarks) {
writeC(Opcodes.S_OPCODE_DELPETMENU);
writeC(0x2a);
writeH(0x80);
writeC(0x02);
for (int i = 0; i < 127; i++) {
writeC(0xff);
}
writeH(122);//TODO 數量
writeH(bookmarks.size());
L1BookMark bookmark = null;
for (int i = 0; i < bookmarks.size(); i++) {
bookmark = bookmarks.get(i);
writeD(bookmark.getId());
writeS(bookmark.getName());
writeH(bookmark.getMapId());
writeH(bookmark.getLocX());//TODO 記憶的X軸
writeH(bookmark.getLocY());//TODO 記憶的Y軸
}
}
@Override
public byte[] getContent() {
return getBytes();
}
}


S_Bookmarks.java
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package l1j.server.server.serverpackets;

import java.util.logging.Logger;

import l1j.server.server.Opcodes;

/**
* 角色座標名單
*/
public class S_Bookmarks extends ServerBasePacket {
private static final String _S__1F_S_Bookmarks = "[S] S_Bookmarks";

private static Logger _log = Logger.getLogger(S_Bookmarks.class.getName());

private byte[] _byte = null;

public S_Bookmarks(String name, int map, int bX, int bY, int id) {
buildPacket(name, map, bX, bY, id);
}

private void buildPacket(String name, int map, int bX, int bY, int id) {
writeC(Opcodes.S_OPCODE_BOOKMARKS);
writeS(name);
writeH(map);
writeH(bX);
writeH(bY);
writeD(id);
}

@Override
public byte[] getContent() {
if (_byte == null) {
_byte = getBytes();
}

return _byte;
}

@Override
public String getType() {
return _S__1F_S_Bookmarks;
}
}


S_ServerVersion.java
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package l1j.server.server.serverpackets;

import l1j.server.Config;
import l1j.server.server.Opcodes;

public class S_ServerVersion extends ServerBasePacket {
private static final String S_SERVER_VERSION = "[S] ServerVersion";

private static final int CLIENT_LANGUAGE = Config.CLIENT_LANGUAGE;

/** 系統時間驗證 */
private static final int UPTIME = 1327204035;// (int) (System.currentTimeMillis() / 1000);

/** 服務器版本. */
private static final int SERVER_VERSION = 120913203;

/** 緩存版本. */
private static final int CACHE_VERSION = 120913200;

/** 認證(身份驗證)版本. */
private static final int AUTH_VERSION = 2010083002;

/** NPC版本. */
private static final int NPC_VERSION = 120913201;

/** 伺服器驗證. */
private static final int SERVER_TYPE = 490882;

public S_ServerVersion() {
writeC(Opcodes.S_OPCODE_SERVERVERSION);
writeC(0x00);
writeC(0x01);//TODO 第幾個伺服器
writeD(SERVER_VERSION);//TODO 3.63Cserver version
writeD(CACHE_VERSION);//TODO 3.63Ccache version
writeD(AUTH_VERSION);//TODO 3.63Cauth version
writeD(NPC_VERSION);//TODO 3.63npc version
writeD(0x0);//TODO server start time
writeC(0x00);//TODO 未知封包
writeC(0x00);//TODO 未知封包
writeC(CLIENT_LANGUAGE);
writeD(SERVER_TYPE);
writeD(UPTIME);
writeH(0x01);
}

@Override
public byte[] getContent() {
return getBytes();
}

@Override
public String getType() {
return S_SERVER_VERSION;
}
}



上一篇文章:天堂城堡主人專用物品的java教學!
下一篇文章:天堂設定跟隨祭司的寫法!

分享文章:分享到微博! 分享到臉書! 分享到噗浪! 分享到維特! 分享到Google+! 分享到LINE!