85207889 發表於 2016-9-9 00:14

進入某地圖後廣播

【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這是不能判定的。只能判定所需金幣量。【至少在我的端是這樣的】。
========================================================================


qoo99281 發表於 2016-9-9 02:06

很棒真的!!:)

heaven 發表於 2016-9-16 03:41

謝謝分享

vn523205 發表於 2017-1-5 12:23

感謝您的分享

0916073307 發表於 2019-5-17 01:39

超棒對於自創地圖的人

殺破狼 發表於 2019-8-3 04:23

感謝分享 立馬學習研究看看!

野性覺醒 發表於 2019-8-22 19:05

謝謝分享
馬上試試看

blackjack 發表於 2019-8-23 14:03

感謝分享知識^^

瑪奇 發表於 2019-8-23 16:49

謝謝分享

19870922 發表於 2019-8-23 19:29

感謝分享

506545 發表於 2019-12-22 23:31

       
感谢分享
:)

ApacheHorse 發表於 2020-1-23 19:17

感謝版主的分享

youpinpeng 發表於 2021-5-15 11:52

感謝分享知識^^

joe41324 發表於 2023-12-28 00:43

感謝分享

大家安安 發表於 2024-1-13 08:12

感謝大大教學

joe41324 發表於 2024-1-13 08:50


感謝分享

jelly90240 發表於 2024-1-18 13:52

66666666666666666

mlb2002x 發表於 2024-1-19 17:27

非常感謝分享~~
頁: [1]
查看完整版本: 進入某地圖後廣播