快捷鍵:'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();
1.NPC腳本方法整理
于 2023-10-16 16:31:20 首次发布