小米冒险岛论坛

标题: 點裝領取系統 [打印本页]

作者: 小强    时间: 2022-12-1 17:17
标题: 點裝領取系統


效果
按照點裝分類成 臉飾、眼飾、耳環、帽子、上衣、褲子、手套、套服、披風、戒指、盾牌、鞋子、武器,當然怎麼分全靠你怎麼設定範圍。
輸入代碼領取點裝。
不能領取的點裝會提示不能領取。
代碼
我先解釋一下會用到的一些方法是什麼意思,最後會附上完整的程式碼。
主要會用到 sendGetNumber() 和 isCash() 兩個方法
sendGetNumber 是可以獲取玩家輸入的數值的方法 在 NPCConversationManager.java 可以看到方法是怎麼定義的:
[JavaScript] 纯文本查看 复制代码
public void sendGetNumber(String text, int def, int min, int max) {
        if (lastMsg > -1) {
            return;
        }
        if (text.contains("#L")) { // will dc otherwise!
            sendSimple(text);
            return;
        }
        c.getSession().write(MaplePacketCreator.getNPCTalkNum(npc, text, def, min, max));
        lastMsg = 4;
    }
這裡的 text 為顯示的對話內容,def 為預設的數值,min 為最小值,max 為最大值。
我們將用這個方法來做點裝的分類,至於點裝代碼是怎麼去分類的請看 伺服端\wz\String.wz\Eqp.img
比如說我點裝臉飾是代碼介於 1010001 ~ 1012672 就可以這樣寫:
[JavaScript] 纯文本查看 复制代码
cm.sendGetNumber("#h0#,你想領取什麼臉飾呢?請輸入代碼吧!\r\n",1010001,1010001,1012672);
接收到玩家輸入的數值後就有幾種狀況需要去判斷:

[JavaScript] 纯文本查看 复制代码
if(cm.isCash(id)){ // 判斷是否為點裝
  
  if(id==1112127){ // welcome back戒指 不能直接領取
    cm.sendOk("#z"+id+"##i"+id+"#可不能用領取的哦!!!!");
    cm.dispose();
  }else{
    cm.sendYesNo("你確定要領取#z"+id+"##i"+id+"#嗎?");
  }
  
}else{ // 不是點裝或不存在
  cm.sendOk("你輸入的代碼不存在或者非點裝!");
  cm.dispose();
}



作者: 872958121    时间: 2024-6-29 07:50
666666666666666666666
作者: qweasdqwas    时间: 2025-2-23 10:42
谢谢分享!!!!




欢迎光临 小米冒险岛论坛 (https://www.mimxd.com/) Powered by Discuz! X3.4