Lon

Lv.1 初心者
管理成員
管理員
註冊
2022-08-27
文章
13
評分
4
聲望
0
這篇是關於召喚怪物的JS語法教學
可以利用道具、金錢,甚至是能力點數來召喚怪物
當然語法要靠自己想

本篇只介紹用道具召喚的語法

以下這個是召喚怪物NPC的基本語法內容
JavaScript:
function start() {
cm.sendSimple ("★內文");
}

function action(mode, type, selection) {
                cm.dispose();

        switch(selection){
                case 連結代號:
                        if (cm.haveItem(道具代碼 ,需要數量) == true && cm.getPlayer().getMap().getMonsterById(怪
物代碼) == null) {
                        cm.gainItem(道具代碼  ,需要數量);
                        cm.spawnMonster(怪物代碼 , 怪物HP, 怪物MP, 怪物等級, 怪物經驗, 0, 0, 怪物數量, 召喚X座標,
召喚Y座標);
                        cm.sendOk("內文 ");
                        cm.dispose();
                        }else{
                        cm.sendOk("內文 ");
                        cm.dispose();
                        }
                break;
                case 連結代號 :
                        cm.warp(地圖代碼, 0);
                        cm.dispose();
                        }
                }
要修改的並不少
主要有三篇內文,打星號那篇內文必須製作連結NPC(詳情看本文第三部分)
怪物資料也是個麻煩的東西
不過整題來說 召喚怪物的JS應該算很容易了
(備註:那個地圖代碼是指:我選擇離開的時後傳送過去的地圖)

先解釋幾個比較麻煩的兩個東西好了...
(1)
連結代號的部分,一樣看本文第三部分
(2)
JavaScript:
cm.getPlayer().getMap().getMonsterById(怪物代碼)
這個部分是確認地圖有沒有這隻怪物 如果地圖內有那隻怪物就不會給你召喚
說白一點 就是跟召喚皮卡丘一樣不能重複召喚的設定
(3)
座標的部分本文不做任何說明

以下舉個例子來說明....
怪物代碼:100100(嫩寶) HP:10 MP:0 等級:1 經驗:3 數量:1 X座標:206 Y座標:146
道具代碼:4000038(獎盃) 所需數量:1
地圖代碼:910000000(自由市場入口)

JavaScript:
function start() {
cm.sendSimple ("#e#r召喚嫩寶測試NPC。\r\n#b#L1#召喚\r\n#b#L2#離開");
}

function action(mode, type, selection) {
                cm.dispose();

        switch(selection){
                case 1:
                        if (cm.haveItem(4000038 ,1) == true && cm.getPlayer().getMap().getMonsterById(100100)
== null) {
                        cm.gainItem(4000038  ,1);
                        cm.spawnMonster(100100, 10, 0, 1, 3, 0, 0, 1, 206, 146);
                        cm.sendOk("#g召喚成功。");
                        cm.dispose();
                        }else{
                        cm.sendOk("#g召喚失敗,可能有兩種原因。\r\n#d1:身上並沒有獎杯#i4000038#。\r\n#d2:該地
圖已經有一隻嫩寶。");
                        cm.dispose();
                        }
                break;
                case 2:
                        cm.warp(910000000, 0);
                        cm.dispose();
                        }
                }
1662103286702.png
1662103291884.png
1662103298309.png
左邊那隻嫩寶就是用NPC召喚出來的

順帶一提,如果多幾組cm.spawnMonster 可以召喚更多種怪物
例如皮卡丘+五神像 女皇+五騎士 混炎八手本體三段 就可以用這種語法寫
舉個一次召喚多隻怪物的例子好了
怪物代碼:5120001(紅色獨角獅) HP:2500 MP:600 等級:46 經驗:116 數量:1 X座標:227 Y座標:386
怪物代碼:5120002(黃色獨角獅) HP:2500 MP:600 等級:46 經驗:116 數量:1 X座標:339 Y座標:386
怪物代碼:5120003(藍色獨角獅) HP:2500 MP:600 等級:46 經驗:116 數量:1 X座標:438 Y座標:386
道具代碼:4000038(獎盃) 所需數量:1
地圖代碼:910000000(自由市場入口)
(我以紅色獨角獅為判斷基準)

JavaScript:
function start() {
cm.sendSimple ("#e#r召喚三色獨角獅測試NPC。\r\n#b#L1#召喚\r\n#b#L2#離開");
}

function action(mode, type, selection) {
                cm.dispose();

        switch(selection){
                case 1:
                        if (cm.haveItem(4000038 ,1) == true &&
cm.getPlayer().getMap().getMonsterById(5120001) == null) {
                        cm.gainItem(4000038 ,1);
                        cm.spawnMonster(5120001, 2500, 600, 46, 116, 0, 0, 1, 227, 386);
                        cm.spawnMonster(5120002, 2500, 600, 46, 116, 0, 0, 1, 339, 386);
                        cm.spawnMonster(5120003, 2500, 600, 46, 116, 0, 0, 1, 438, 386);
                        cm.sendOk("#g召喚成功。");
                        cm.dispose();
                        }else{
                        cm.sendOk("#g召喚失敗,可能有兩種原因。\r\n#d1:身上並沒有獎杯#i4000038#。\r\n#d2:該地
圖已經有一隻紅色獨角獅。");
                        cm.dispose();
                        }
                break;
                case 2:
                        cm.warp(910000000 , 0);
                        cm.dispose();
                        }
                }
1662103349609.png
1662103353203.png
1662103357403.png
----------------------教學結束----------------------
[轉發自 小馬論壇 紅茶]