1.NPC腳本方法整理

快捷鍵:'Shift'+'Ctrl'+'-'('+') 代碼折疊和展開

以下在NPC腳本中可以cm.xxx()調用
基類 [AbstractPlayerInteraction]:

代碼間調用:
public boolean        canHoldAllAfterRemoving(List<Integer> toAddItemids, List<Integer> toAddQuantity, List<Integer> toRemoveItemids, List<Integer> toRemoveQuantity)
public boolean         forceStartQuest(int id);//強制開始某任務,對標NPC逆碼仙
public Item            gainEquip(int id装备ID, Short str力量, Short dex敏捷, Short _int智力, Short luk运气, Short hp血量, Short mp蓝量,
                                 Short pAtk物理攻击, Short mAtk魔法攻击, Short pDef物理防御, Short mDef魔法防御,
                                 Short acc命中, Short avoid回避, Short speed移速, Short jump跳跃, Long expire期限,
								 short quantity獲取數量)獲取帶屬性的裝備,為NULL則取原屬性的值.
public void            removePartyItems(int id);//移除組隊物品s
public void            giveCharacterExp(int amount, MapleCharacter chr);//給指定角色經驗
public void            givePartyExp(String PQ, boolean instance);
public void            showInfoText(String msg);//
public int             createExpedition(MapleExpeditionType type, boolean silent, int minPlayers, int maxPlayers)//創建遠征隊
public List<Item>      getUnclaimedMarriageGifts();//獲取無所有權的結婚禮物

腳本調用:
public MapleClient    getClient();//獲取客戶端對象,返回的c.
public MapleCharacter getPlayer();//獲取當前角色對象
public MapleCharacter getChar();//獲取當前角色對象
public int            getJobId();//獲取當前角色新職業ID
public MapleJob       getJob();//獲取當前角色職業枚舉
public int            getLevel();//獲取當前角色等級
public MapleMap       getMap();//獲取當前角色所在的地圖對象
public int            getHourOfDay();//
public int            getMarketPortalId(int mapId)//獲取地圖中的市場入口ID
public void           warp(int mapid);//傳送到指定地圖
public void           warp(int map, int portal);//傳送到指定地圖的指定入口
public void           warp(int map, String portal);//傳送到指定地圖的指定入口
public void           warpMap(int map);//傳送到指定地圖
public void           warpParty(int id);//組隊傳送指定地圖
public void           warpParty(int id, int portalId);//組隊傳送到指定地圖的指定入口
public void           warpParty(int id, int fromMinId, int fromMaxId);
public void           warpParty(int id, int portalId, int fromMinId, int fromMaxId);
public MapleMap       getWarpMap(int map);//獲取指定地圖的地圖對象
public MapleMap       getMap(int map);//獲取指定地圖的地圖對象
public int            countAllMonstersOnMap(int map);//統計指定地圖內的所有怪物數量
public int            countMonster();//獲取當前地圖中的怪物數量
public void           resetMapObjects(int mapid);//重置指定地圖對象
public EventManager   getEventManager(String event);//獲取事件管理器對象
public EventInstanceManager getEventInstance();//獲取事件實例化對象
public MapleInventory getInventory(int type);//
public MapleInventory getInventory(MapleInventoryType type);
public boolean        hasItem(int itemid);//玩家是否有某道具
public boolean        hasItem(int itemid, int quantity);//玩家是否有指定數量的某道具
public boolean        haveItem(int itemid);//玩家是否有某道具
public boolean        haveItem(int itemid, int quantity);//玩家是否有指定數量的某道具
public int            getItemQuantity(int itemid);//獲取玩家所持有的某物品的數量
public boolean        haveItemWithId(int itemid);//玩家是否有某道具
public boolean        haveItemWithId(int itemid, boolean checkEquipped);//玩家是否有某道具,是否檢查是否裝備了.
public boolean        canHold(int itemid);//某道具能否持有
public boolean        canHold(int itemid, int quantity);
public boolean        canHold(int itemid, int quantity, int removeItemid, int removeQuantity);
public boolean        canHold(int itemid, int quantity, int removeItemid, int removeQuantity);
public boolean        canHoldAll(List<Object> itemids);
public boolean        canHoldAll(List<Object> itemids, List<Object> quantity);
public final(無法繼承) MapleQuestStatus getQuestRecord(final int id);//獲取任務記錄
public final           MapleQuestStatus getQuestNoRecord(final int id);
public void            openNpc(int npcid)//打開NPC,不執行腳本
public void            openNpc(int npcid, String script);//打開NPC,并另其執行指定腳本,string可以為:"海龍腳本/海龍造型"
public int             getQuestStatus(int id);//獲取指定任務狀態
public boolean         isQuestCompleted(int id);//查詢指定任務是否完成
public boolean         isQuestActive(int id);//獲取指定任務是否已接受
public boolean         isQuestStarted(int id);//獲取指定任務是否已接受
public void            setQuestProgress(int id, String progress)//設置指定任務的進度
public void            setQuestProgress(int id, int progress)//設置指定任務的進度
public void            setQuestProgress(int id, int infoNumber, int progress)//設置指定任務的進度
public void            setQuestProgress(int id, int infoNumber, String progress)//設置指定任務的進度
public String          getQuestProgress(int id);
public String          getQuestProgress(int id, int infoNumber);
public int             getQuestProgressInt(int id);
public int             getQuestProgressInt(int id, int infoNumber);
public void            resetAllQuestProgress(int id);
public void            resetQuestProgress(int id, int infoNumber);
public boolean         forceCompleteQuest(int id);//強制完成某任務,對標NPC逆碼仙
public boolean         forceStartQuest(int id, int npc);//強制開啟某任務,對標指定的NPC
public boolean         forceCompleteQuest(int id, int npc);強制完成某任務,對標指定的NPC
public boolean         startQuest(short id);//開始指定任務
public boolean         completeQuest(short id);//完成指定任務
public boolean         startQuest(int id);//讓冒險島運營員9010000開啟指定任務
public boolean         completeQuest(int id)//向冒險島運營員9010000完成指定任務
public boolean         startQuest(short id, int npc);//讓指定NPC開啟指定任務
public boolean         completeQuest(short id, int npc)//向指定NPC完成指定任務
public boolean         startQuest(int id, int npc)//讓指定NPC開啟指定任務
public boolean         completeQuest(int id, int npc)//向指定NPC完成指定任務
public Item            evolvePet(byte slot, int afterId)//進化寵物
public void            gainItem(int id, short quantity);//給玩家指定道具和指定的數量
public void            gainItem(int id, short quantity, boolean show);//給玩家指定道具和指定的數量,并決定是否顯示.
public void            gainItem(int id, boolean show);//給玩家指定道具,并決定是否顯示
public void            gainItem(int id);//給玩家指定道具
public Item            gainItem(int id, short quantity, boolean randomStats, boolean showMessage)//給玩家指定道具和指定的數量(randomStats 數量是否隨機),并決定是否顯示
public Item            gainItem(int id, short quantity, boolean randomStats, boolean showMessage, long expires)//給玩家指定期限(expires=-1為永久)的道具和數量,,并決定是否顯示
public Item            gainItem(int id, short quantity, boolean randomStats, boolean showMessage, long expires, MaplePet from);//以上gainItem的原本函數,最後一個參數MaplePet與寵物有關,不知道怎麼使用的話一般為null.
public void            gainFame(int delta);//給玩家聲望
public void            changeMusic(String songName);//改變地圖BGM
public void            playerMessage(int type, String message);//根據類型在左下角顯示服務器消息
public void            message(String message);//打印信息
public void            dropMessage(int type, String message);//打印信息
public void            mapMessage(int type, String message);//打印地圖信息
public void            mapEffect(String path);//地圖特效
public void            mapSound(String path);//地圖音效
public void            displayAranIntro();
public void            showIntro(String path);//顯示介紹
public void            showInfo(String path); 
public void            guildMessage(int type, String message);//引導信息
public MapleGuild      getGuild();//獲取家族對象
public MapleParty      getParty();//獲取組隊對象
public boolean         isLeader();//當前玩家是否為組隊隊長
public boolean         isGuildLeader();//是否為家族組長
public boolean         isPartyLeader();//是否為組隊隊長
public boolean         isEventLeader();
public void            givePartyItems(int id, short quantity, List<MapleCharacter> party);//給打組隊物品
public void            removeHPQItems();//移除組隊物品,內部定義了一些道具調用 removePartyItems
public void            givePartyExp(int amount, List<MapleCharacter> party)//給組隊經驗
public void            givePartyExp(String PQ);
public void            removeFromParty(int id, List<MapleCharacter> party);//從組隊移除
public void            removeAll(int id);
public void            removeAll(int id, MapleClient cl);
public int             getMapId();//獲取當前地圖ID,實際上是獲取地圖對象通過地圖對象調用getID();
public int             getPlayerCount(int mapid);//獲取當前地圖玩家數量
public void            showInstruction(String msg, int width, int height);//顯示指令框
public void            disableMinimap();//關閉小地圖
public boolean         isAllReactorState(final int reactorId, final int state)
public void            resetMap(int mapid)//重置地圖
public void            useItem(int id);//使用指定物品
public void            cancelItem(final int id)//銷毀物品
public void            teachSkill(int skillid, byte level, byte masterLevel, long expiration);教技能,并賦予期限
public void            teachSkill(int skillid, byte level, byte masterLevel, long expiration, boolean force);//是否強制教技能
public                 void removeEquipFromSlot(short slot);//從裝備欄移除裝備
public void            gainAndEquip(int itemid, short slot);//獲取指定道具并裝備
public void            spawnNpc(int npcId, Point pos, MapleMap map);//在地圖指定位置生成NPC
public void            spawnMonster(int id, int x, int y);//在當前地圖指定位置召喚怪物
public MapleMonster    getMonsterLifeFactory(int mid);//獲取怪物生存週期
public MobSkill        getMobSkill(int skill, int level);//獲取怪物技能對象
public void            spawnGuide();//生成家族
public void            removeGuide();//解散家族
public void            displayGuide(int num);//顯示家族標誌
public void            goDojoUp();
public void            resetDojoEnergy();
public void            resetPartyDojoEnergy();
public void            enableActions();
public void            showEffect(String effect);//顯示特效
public void            dojoEnergy();
public void            talkGuide(String message);//引導對話
public void            guideHint(int hint);//引導提示
public void            updateAreaInfo(Short area, String info);//更新地區信息
public boolean         containsAreaInfo(short area, String info);//
public void            earnTitle(String msg);//獲取標題
public void            openUI(byte ui);
public void            lockUI();
public void            unlockUI();
public void            playSound(String sound);
public void            environmentChange(String env, int mode);
public String          numberWithCommas(int number);
public Pyramid         getPyramid();//金字塔對象
public int             createExpedition(MapleExpeditionType type);//創建遠征隊,內部設定silent=false,minPlayers=0,maxPlayers=0
public void            endExpedition(MapleExpedition exped);//結束遠征隊
public MapleExpedition getExpedition(MapleExpeditionType type);//獲取遠征隊對象
public String          getExpeditionMemberNames(MapleExpeditionType type);//獲取遠征隊成員名
public boolean         isLeaderExpedition(MapleExpeditionType type);//是否為遠征隊隊長
public long            getJailTimeLeft();//獲取監禁時間還剩多久
public List<MaplePet>  getDriedPets();//獲取玩家背包內死亡的寵物
public boolean         startDungeonInstance(int dungeonid);//指定的地牢實例是否獲取成功
public boolean         canGetFirstJob(int jobType);//當前角色能否一轉為指定職業
public String          getFirstJobStatRequirement(int jobType);//獲得指定的一轉職業能力值的需求
public void            npcTalk(int npcid, String message);//NPC說話
public long            getCurrentTime();//獲取當前時間.










子類 [NPCConversationManager] extends AbstractPlayerInteraction:
調用方式cm.xxx();
代碼間調用:
public int      cpqCalcAvgLvl(int map);//獲取當前地圖下所有角色的平均等級
public boolean  fieldTaken(int field);
public boolean  fieldLobbied(int field)
public void     cancelCPQLobby();
public void     startCPQ(final MapleCharacter challenger, final int field);
public void     startCPQ2(final MapleCharacter challenger, final int field);
public boolean  fieldTaken2(int field);
public boolean  fieldLobbied2(int field);
public void     mapClock(int time);


腳本調用:
/*Override*/
public boolean forceStartQuest(int id);//強制開啟任務
public boolean forceCompleteQuest(int id);//強制完成任務
public boolean startQuest(short id);//開啟任務
public boolean startQuest(int id);
public boolean completeQuest(short id);//完成任務
public boolean completeQuest(int id);
public void    showEffect(String effect);
public void    resetMap(int mapid);//重載地圖
public MapleParty getParty();//獲取組隊
/*public*/
public void    dispose();    //close talking
public void    sendDefault();//顯示默認說的話
public void    sendNext(String text);//type=0;下一個mode=1;結束mode=-1
public void    sendPrev(String text);//type=0;上一個mode=0,結束mode=-1
public void    sendNextPrev(String text);//type=0,下mode=1;上mode=0;結束mode=-1
public void    sendOk(String text);//type=0;mode=1;結束mode=-1
public void    sendYesNo(String text);//type=1;是mode=1;否mode=0;結束mode=-1
public void    sendAcceptDecline(String text);//type=12;接受mode=1,拒絕mode=0;結束mode=-1
public void    sendSimple(String text);//type=4;選擇mode=1;結束mode=0
public void    sendStyle(String text, int styles[])//頭臉預覽框,確定mode=1;取消mode=0;結束mode=-1
public void    sendGetNumber(String text, int def, int min, int max)//彈出輸入數字框,selection=輸入的數字;確定mode=1;結束mode=0
public void    sendGetText(String text);//彈出輸入字符串;確定mode=1;結束mode=0
public void    setGetText(String text);//非對話框的方式保存字符串
public String  getText();//獲取 sendGetText&setGetText 輸入的字符串
/*public*/
public int     getNpc();//獲取當前NPC的ID
public int     getMeso();//獲取角色money數量
public void    gainMeso(int gain);//給角色指定數量的money
public void    gainExp(int gain);給角色指定數量的exp
public void    setHair(int hair);//換頭髮
public void    setFace(int face);//換臉型
public void    setSkin(int color);//換皮膚
public int     itemQuantity(int itemid);//獲取角色有某道具的數量
public String  getName();//獲取玩家名字
public int     getGender();//獲取玩家性別
public void    changeJobById(int a);//通過ID更換職業
public void    changeJob(MapleJob job);//通過職業枚舉更換職業
public String  getJobName(int id);//獲取職業名
public void    openShopNPC(int id);//通過ID打開商店NPC
public boolean itemExists(int itemid);//物品是否存在
public int     getCosmeticItem(int itemid);//獲取美容物品ID(修正)
public boolean isCosmeticEquipped(int itemid);//角色是否裝備相應的頭臉
public MapleCharacter getChrById(int id);//根據角色ID獲取角色對象
public int      getNpcObjectId();//獲取NPC對象的ID
public String   getScriptName();//獲取當前腳本名稱
public boolean  isItemScript();//是否為物品腳本
public void     resetItemScript();//重置物品腳本
public void     sendDimensionalMirror(String text);
public void     sendServerChatContent(final int type, final String msg);
public MapleStatEffect getItemEffect(int itemId);//獲取物品特效
public void     displayGuildRanks()//展示家族等級
public boolean  canSpawnPlayerNpc(int mapid);//能否生成玩家NPC
public MaplePlayerNPC  getPlayerNPCByScriptId(int scriptId);//通過腳本ID獲取玩家NPC
public void     gainCloseness(int closeness);//獲取寵物親密度
public void     resetStats();//角色狀態復位
public void     maxMastery();//滿技能
public void     doGachapon();//轉蛋(抽到稀有會上公屏,抽到藥水給100個)
public void     upgradeAlliance();//提升聯盟等級
public void     disbandAlliance(MapleClient c, int allianceId);//解散聯盟
public boolean  canBeUsedAllianceName(String name);//聯盟名稱是否可用
public MapleAlliance createAlliance(String name);//創建聯盟
public int      getAllianceCapacity();//獲取聯盟成員容量
public boolean  hasMerchant();//是否有商人
public boolean  hasMerchantItems();//是否有商人物品
public          void showFredrick();
public int      partyMembersInMap();//在當前地圖中的組隊成員人數
public MapleEvent getEvent();//獲取事件對象
public void     divideTeams();//解散隊伍
public MapleCharacter getMapleCharacter(String player);//根據玩家名稱獲取玩家對象
public void logLeaf(String prize);
public boolean  createPyramid(String mode, boolean party);//開啟金字塔任務
public boolean  isUsingOldPqNpcStyle();
public Object[] getAvailableMasteryBooks();//獲取可用的能手冊
public Object[] getAvailableSkillBooks();//獲取可用的技能書
public Object[] getNamesWhoDropsItem(Integer itemId);//查詢物品掉落者
public String   getSkillBookInfo(int itemid);//技能書來源查詢
public boolean  sendCPQMapLists();
public boolean  sendCPQMapLists2();
public void     cpqLobby2(int field);
public void     answerCPQChallenge(boolean accept); 
public void     challengeParty2(int field);
public void     challengeParty(int field);
public String startAriantBattle(MapleExpeditionType expedType, int mapid);
public void    sendMarriageWishlist(boolean groom);
public void    sendMarriageGifts(List<Item> gifts);
public boolean createMarriageWishlist();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圆圆的枫树

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值