 | 【Java教學】【★★★★★】進入某地圖後廣播
你想要進入某個地圖後 廣播 某某某玩家進入某某某地圖?沒錯 答案就在這裡!
我做的一個進入地圖公告 是利用NPC的傳送功能製作出來的。
在於NPC對話的同時判定身上是否帶有進入該地圖所需的物品。
若無物品。則提示。沒有XXX物品。
若有。則扣除1個物品 進入地圖 公告:XXX進入XXX地圖。
以下是修改:
server\server\clientpackets\C_NPCAction.java
隨便在一個地方插入,或者可以插入到製作NPC下面。搜索:
htmlid = "eris7";
}
}
}
在 第三個}下面加入:
} else if (s.equalsIgnoreCase("BOSS")){
if (pc.getInventory().checkItem(輸入你進入地圖需要的物品ID,1)){
L1Teleport.teleport(pc, 32700, 32899, (short) 93, 5,true);
pc.getInventory().consumeItem(輸入要扣除的物品ID數量為,1);
L1World.getInstance().broadcastServerMessage((new StringBuilder("玩家【 ")).append(pc.getName()).append(" 】進入BOSS地圖!").toString());
}else{
pc.sendPackets(new S_SystemMessage("地圖所需鑰匙不足,無法進入。"));
}
=================================================================
解析:
if (s.equalsIgnoreCase("BOSS")){
在這裡的類【BOSS】是指你在對話檔中的代碼。
對話檔:
<body>
<font fg=FFFFFF>BOSS地圖:</font><br>
<a action="BOSS">進入BOSS地圖</a><br>
</body>
這裡的BOSS對應核心裡的BOSS類名稱。
在DB裡找到npcaction。這裡是設置NPC對應對話檔。
NPCID:輸入你創建的NPC ID
normal_action: 輸入你對話檔的名稱。
caotic_action:一樣輸入對話檔名稱。
後面的都不管他。留空白。
大陸對話檔名稱因該為 -h.html
做好了這些後把你製作好的對話檔丟到用戶端裡的text然後吃檔 完成 進入遊戲刷出NPC。即大功告成。
核心代碼解析========================================================================
L1Teleport.teleport(pc, 32700, 32899, (short) 93, 5,true);
這裡的32700 32899,(short)93 就是地圖的座標 93是地圖代碼。其他2個分別是地圖的X 和 Y座標.具體怎麼找座標.可以參考DB裡的L1Loc指令.
========================================================================
pc.getInventory().consumeItem(輸入要扣除的物品ID數量為,1);
這句。顧名思義。就是進入地圖要扣除的物品ID。數量為1個。假設可以這樣。你進入一個地圖 需要一個BOSS地圖證明。
然後進入地圖。你也可以選擇扣除金幣3E。BOSS地圖證明設置為可以交易,這樣。遊戲就會有更大的市場空間。
========================================================================
pc.sendPackets(new S_SystemMessage("地圖所需鑰匙不足,無法進入。"));
這句話因該看的懂吧。就是當你指定的ID物品不足時,提示框會顯示這句話。
========================================================================
當你點擊進入BOSS地圖的時候。他就會按照核心的代碼進入指定地圖了。
當然。有些人會說。幹嘛要這麼麻煩。我直接到data\xml\NpcActions\Teleporter.xml 加入傳送就可以了。
可是我問你。你在這能用你所需要指定的物品嗎?例如說我要用BOSS鑰匙進入。Teleporter.xml這是不能判定的。只能判定所需金幣量。【至少在我的端是這樣的】。
========================================================================
| |