微信扫一扫 分享朋友圈

已有 5043 人浏览分享

[服務器教學] [轉] NPC對話腳本函數

  [複製鏈接]

站長

Rank: 12Rank: 12Rank: 12

1963

威望

3459

金錢

11

A幣
主題
1324
帖子
2477
精華
3
綜合社群主題發文量
267
電玩社群主題發文量
1
娛樂社群主題發文量
4
技術社群主題發文量
31
閱讀權限
200
註冊時間
2013-1-28

我是傳奇贊助感謝勳章精華作者勳章

  • TA的每日心情

    2024-11-9 23:41
  • 簽到天數: 397 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    TWAICL 發表於  2016-12-14 19:39:17 | 顯示全部樓層 | 閱讀模式
    首先以下所有函數或方法,都需要在腳本對話中做適當的處理才能夠使用,所謂的處理就是修改一些函數的調用格式,目前最通用也最常用的調用方式就是 
    cm.函數名(調用參數)  打頭的調用方式。

    下面舉例說明:

       public 
    void dispose() {
         
       NPCScriptManager.getInstance().dispose(this);
        
    }


    這個函數是NPC對話裡最常用的函數,它的用途是強制關閉NPC對話窗口,一般在NPC腳本對話的最後面都要加上這個函數,避免NPC出現假死情況。


    那麼它的調用方式需要進行處理:cm.dispose(); 這樣修改才能夠被NPC腳本執行。

        
    //強制關閉NPC對話 cm.dispose();
        public void dispose() {}
      
      //顯示一個帶“繼續”按鈕的對話窗口 cm.sendNext("[text]");
        public void 
    sendNext(String text) {}
        //顯示一個帶“返回”按鈕的對話窗口 
    cm.sendPrev("[text]");
        public void sendPrev(String text) { 
    }
        //顯示一個帶“繼續”和“返回”按鈕的對話窗口 cm.sendNextPrev("[text]");
      
      public void sendNextPrev(String text) { }
        
    //顯示一個帶“好”按鈕的對話窗口 cm.sendOk("[text]");
        public void 
    sendOk(String text) { }
        //顯示一個帶“是”和“否”按鈕的對話窗口,選“否”結束對話,否則做相反處理。 
    cm.sendYesNo("[text]");
        public void sendYesNo(String text) { 
    }
        //顯示一個帶“接受”和“拒絕”按鈕的對話窗口,選“拒絕”結束對話,否則做相反處理。 
    cm.sendAcceptDecline("[text]");
        public void 
    sendAcceptDecline(String text) { }
        //顯示一個無按鈕的對話窗口 
    cm.sendAcceptSimple("[text]");
        public void sendSimple(String 
    text) { }
        //顯示一個選擇性的對話窗口 cm.sendStyle("[Text]", [variable]); 
    //需要聲明一個變量
        public void sendStyle(String text, int styles[]) { 
    }
        //顯示一個要求玩家輸入數字的彈出界面 
    text是顯示文字,def是默認數字,min是最小數字,max是最大數字
        public void 
    sendGetNumber(String text, int def, int min, int max) { }
        
    //顯示一個要求玩家輸入文本的彈出界面 txt是文字內容
        public void sendGetText(String 
    text) { }
        //得到玩家輸入的文字內容
        public void 
    setGetText(String text) { }
        //重新設置玩家輸入餓文字內容
        
    public String getText() { }
        //關閉指定地圖的某個傳送點 cm.closePortal(地圖ID, 
    "[傳送點名稱]")
        public void closePortal(int mapid, String pName) 
    {  }
        //打開指定地圖的某個傳送點 cm.openPortal(地圖ID, 
    "[傳送點名稱]")
        public void openPortal(int mapid, String pName) { 
    }
        //贈送成對效果的戒指給指定玩家 cm.makeRing("[玩家角色名]", 戒指ID)
      
      public void makeRing(String partner, int ringId) { }
        
    //關閉指定的地圖門 cm.closeDoor(地圖ID) 好像老扎門口/鬧鐘門口用的比較多
        public void 
    closeDoor(int mapid) { }
        //打開指定的地圖門 cm.openDoor(地圖ID) 
    好像老扎門口/鬧鐘門口用的比較多
        public void openDoor(int mapid) { }
      
      //打開指定的商店 cm.openShop(商店ID)
        public void openShop(int id) 
    { }
        //打開指定的NPC對話 cm.openNpc(NPCID)
        public void 
    openNpc(int id) { }
        //判斷整個組隊的所有成員是否在當前地圖裡 
    cm.isPartyAllHere()
        public boolean isPartyAllHere() { 
    }
        //改變玩家職業 cm.changeJob(職業)
        public void 
    changeJob(MapleJob job) { }
        //得到玩家職業 cm.getJob()
      
      public MapleJob getJob() { }
        //開始一個任務 
    cm.startQuest(任務ID) 這裡是原版遊戲的任務ID,通過WZ裡查詢。
        public void 
    startQuest(int id) {  }
        //完成一個任務 
    cm.completeQuest(任務ID)
        public void completeQuest(int id) { 
    }
        //解除一個任務 cm.forfeitQuest(任務ID)
        public void 
    forfeitQuest(int id) { }
        //取得玩家當前背包金幣數量值 cm.getMeso()
      
      public int getMeso() { }
        //給予或取走玩家指定數量金幣 cm.gainMeso(錢數) 
    注意這裡錢數如果是負數,那麼是取走玩家的錢
        public void gainMeso(int gain) 
    {  }
        //給予或取走玩家指定數量經驗值 cm.gainExp(經驗數) 
    注意這裡經驗數如果是負數,那麼是扣掉玩家的經驗數
        public void gainExp(int gain) { 
    }
        //返回當前的NPC
        public int getNpc() 
    {  }
        //取得玩家當前的角色等級值 cm.getLevel()
        
    public int getLevel() { }
        //卸載戴在玩家身上的所有物品 
    cm.unequipEverything()
        public void unequipEverything() { 
    }
        //讓玩家學會指定技能 
    cm.teachSkill([技能id],[技能當前級別],[技能最大級別]);
        public void 
    teachSkill(int id, int level, int masterlevel) { }
        
    //清理玩家所學會的所有技能 cm.clearSkills()  轉生時候要用的
        public void 
    clearSkills() { }
        //得到玩家角色數據
        public 
    MapleCharacter getChar() { }
        //得到玩家客戶端數據
        
    public MapleClient getC() { }

        public void rechargeStars() 
    { }

        public EventManager getEventManager(String event) { 
    }
        //得到玩家顯示效果?cm.showEffect(String effect)
        
    public void showEffect(String effect) { }
        //在當前地圖播放音樂 
    cm.playSound(String sound) 
        public void playSound(String sound) 
    {  }

        //增加或減少好友最大容量 cm.updateBuddyCapacity(好友數) 
    這裡注意,如果是負數就是減少好友最大容量
        public void updateBuddyCapacity(int 
    capacity) {  }
        //達到玩家當前的好友最大容量數 
    cm.getBuddyCapacity()
        public int getBuddyCapacity() { 
    }
        //設置當前玩家的角色髮型 cm.setHair(髮型ID) 在發廊用
        public 
    void setHair(int hair) {  }
        //設置當前玩家的角色臉型 
    cm.setFace(臉型ID) 在整容用
        public void setFace(int face) 
    {  }
        //設置當前玩家的角色膚色 cm.setSkin(膚色ID) 在美容用
      
      @SuppressWarnings("static-access")
        public void 
    setSkin(int color) {  }
        //傳送當前玩家所在組隊的所有成員到指定地圖 
    cm.warpParty(地圖ID)
        public void warpParty(int mapId) 
    {  }
        //傳送當前玩家所在組隊的所有成員到指定地圖並給予經驗值 
    cm.warpPartyWithExp(地圖ID,經驗值) 一般是通關後的獎勵經驗
        public void 
    warpPartyWithExp(int mapId, int exp) {  }
        
    //傳送當前玩家所在組隊的所有成員到指定地圖並給予經驗值和遊戲幣 cm.warpPartyWithExpMeso(地圖ID,經驗值,遊戲幣) 
    一般是通關後的獎勵經驗
        public void warpPartyWithExpMeso(int mapId, int 
    exp, int meso) {  }
        //傳送玩家到一個地圖的隨機位置 
    cm.warpRandom(地圖ID)
        public void warpRandom(int mapid) 
    {  }
        //得到當前玩家背包裡某種物品的數量 cm.itemQuantity(物品id) 

        public int itemQuantity(int itemid) { }
        
    //為當前玩家開設一個遠征隊伍 cm.createMapleSquad(MapleSquadType type)
        public 
    MapleSquad createMapleSquad(MapleSquadType type) {  }
        
    //得到當前玩家指定索引的遠征隊伍成員數據 cm.getSquadMember(MapleSquadType type, int 
    index)
        public Maple
    共收到 0 A幣
    打賞榜
    暫無
    暫無
    暫無
    暫無
    ----
    暫無
    ----
    暫無
    ----
    暫無
    ----
    您需要登錄後才可以回帖 登錄 | 註冊會員

    本版積分規則

    2477

    發文

    3459

    金錢

    11

    A幣

    ----------榮譽勳章----------

    我是傳奇 贊助感謝勳章 精華作者勳章

    熱門推薦
    圖文推薦
    • 聯繫我們

    小黑屋|AICL社群娛樂集團

    GMT+8, 2024-11-21 20:26 , 網路刷新 0.109392 秒 .

    歡迎來到 AICL網路社群

    版權AICL社群所有 2011-2021.

    Total:123 Today:213 Online:322