- UID
- 137702
- 閱讀權限
- 20
- 主題
- 32
- 帖子
- 64
- 精華
- 1
- A幣
- 338
- 在線時間
- 111 小時
- 最後登錄
- 2024-11-12
初窺門道
- 主題
- 32
- 帖子
- 64
- 精華
- 1
- 綜合社群主題發文量
- 0
- 電玩社群主題發文量
- 0
- 娛樂社群主題發文量
- 0
- 技術社群主題發文量
- 32
- 閱讀權限
- 20
- 註冊時間
- 2021-11-15
TA的每日心情 | 奮鬥 2024-1-28 13:17 |
---|
簽到天數: 1 天 連續簽到: 1 天 [LV.1]初來乍到
|
本帖最後由 chenhui540 於 2023-1-31 09:19 編輯
/*
名字: 克魯特
地圖: 第一次同行<1號門&g
描述: 910340100
*/
var stage1Questions = Array(
"請聽題:戰士一轉需要的最低等級是多少,請搜集答案數量的通行證給我。",
"請聽題:戰士一轉需要的最低力量是多少,請搜集答案數量的通行證給我。",
"請聽題:法師一轉需要的最低智力是多少,請搜集答案數量的通行證給我。",
"請聽題:弓箭手一轉需要的最低敏捷是多少,請搜集答案數量的通行證給我。",
"請聽題:盜賊一轉需要的最低敏捷是多少,請搜集答案數量的通行證給我。",
"請聽題:二轉需要的等級是多少,請搜集答案數量的通行證給我。",
"請聽題:法師一轉需要的最低等級是多少,請搜集答案數量的通行證給我。");
var stage1Answers = Array(10, 35, 20, 25, 25, 30, 8);
function start() {
var eim = cm.getPlayer().getEventInstance();
switch(cm.getPlayer().getMap().getId()) {
case 910340100:
if (eim.getProperty("stage1") == null) {
if (cm.isLeader()) {
var numpasses = eim.getPlayerCount() - 1;
var stage2 = cm.getParty().getMembers().size() -1 ;//需要繳納的通行證數量
if (cm.haveItem(4001008, numpasses)) {
cm.sendNext("你收集了" + numpasses + "通行證,恭喜你們通過了這一關。通往下一區域的傳送門已經打開,到達那裡有時間限制,所以請快點。");
eim.setProperty("stage1", 1);
cm.showEffect(true, "quest/party/clear");
cm.playSound(true, "Party1/Clear");
cm.getMap().changeEnvironment("gate", 2);//開啟下傳送門特效
cm.removeAll(4001008);
cm.dispose();
return;
}
cm.sendNext("歡迎來到#m" + cm.getPlayer().getMap().getId() + "#,在這個階段,組長需要從組員那裡集齊#b" + numpasses + "#k張通行證交給我,才能進入下一區域,請讓每個組員都分別完成我交代的任務,才能獲得通行證。");
cm.dispose();
return;
}
if (!cm.isLeader()) {
var data = eim.getProperty(cm.getName());//加入隊員名稱判斷
if (data == 0) {
cm.sendNext("謝謝你給我帶來的通行證,請把這個#b#v4001008:##t4001008##k交給你的組長。");
cm.dispose();
return;
}
if (data == null) {
data = Math.floor(Math.random() * stage1Questions.length) + 1;
eim.setProperty(cm.getName(), data);//給與隊員問題判斷
var question = stage1Questions[data - 1];
cm.sendNext("歡迎來到#m" + cm.getPlayer().getMap().getId() + "#,在這個階段,你必須狩獵附近怪物,獲取我所提問的正確答案相應數量的通行證交給我。\r\n\r\n" + question);
cm.dispose();
return;
}
var answer = stage1Answers[data - 1];
if (cm.itemQuantity(4001007) == answer) {
cm.sendNext("答案是對的,囙此,你剛剛收到了一張#b#v4001008:##t4001008##k,請把這個通行證交給你的組長。");
cm.gainItem(4001007, -answer);
cm.gainItem(4001008, 1);
eim.setProperty(cm.getName(), 0);//給與隊員答題判斷
cm.dispose();
return;
}
var question = stage1Questions[eim.getProperty(cm.getName()) - 1];//問題識別判斷
cm.sendNext("很抱歉,你所帶來的通行證數量與問題正確答案不一致,目前持有:#b#c4001007##k張通行證\r\n" + question);
cm.dispose();
return;
}
}
cm.sendOk("通往下一區域的入口,已經開啟。");
cm.dispose();
break;
case 910340200:
if (eim.getProperty("stage2") == null) {
if (!cm.isLeader()) {
cm.sendOk("歡迎來到#m" + cm.getPlayer().getMap().getId() + "#,請根據組長的指示進行這一關挑戰。");
cm.dispose();
return;
}
if (eim.getProperty("stage2a") == null) {
cm.sendOk("歡迎來到#m" + cm.getPlayer().getMap().getId() + "#,你會發現一些#b繩索#k,其中有兩根連接著通往下一關的傳送門,你們需要做的是讓兩名組員#b爬#k上正確的繩子。當隊員爬好了位置,請隊長與我對話。\r\n\r\n注意,如果爬的太低,將得不到正確答案,如果你們組合正確了,傳送門就會打開。");
eim.setProperty("stage2a", 1);
cm.dispose();
return;
}
if (eim.getProperty("stage2b") == null) {
eim.setProperty("stage2b", (Math.random() < 0.3) ? "0101" : (Math.random() < 0.5) ? "0011" : "1001");//給予隨機答案 可以改進寫法 設置更多
}
var chenhui = 0;//設置基礎數值0
for (var i = 0; i < 4; i++)//繩索的數量
if (cm.getMap().getNumPlayersItemsInArea(i) > 0) {//判斷繩索上是否有玩家
chenhui++;//以0為基礎 遞增繩索上玩家數量
}
if (chenhui != 2) {//繩索玩家數量不是2名的時候提示
cm.sendOk("看起來你還沒有找到正確的方法,需要讓兩名組員#b爬#k到繩子上面,以形成不同的組合。");
cm.dispose();
return;
}
var x = "";//空值,如果不設置 下麵 x+= 會報錯
for (var i = 0; i < 4; i++)//繩索的數量
x += cm.getMap().getNumPlayersItemsInArea(i);//讀取4跟繩索上玩家的組合 數字顯示為 1100, 1010,0011,等。
y = x;//固定x的數值
if (y == eim.getProperty("stage2b")) {//當讀取繩索上玩家的組合與之前隨機載入的答案一致的時候
eim.setProperty("stage2", 1);
cm.showEffect(true, "quest/party/clear");//動畫特效
cm.playSound(true, "Party1/Clear");//聲音特效
cm.getMap().changeEnvironment("gate", 2);
cm.sendOk("組合正確,通往下一區域的入口,已經開啟。");
cm.dispose();
return;
}
cm.showEffect(true, "quest/party/wrong_kor");//動畫特效
cm.playSound(true, "Party1/Failed");//聲音特效
cm.sendNext("組合是錯誤的,看來你還沒有找到正確的2個平臺,請再繼續調整一下位置。");
cm.dispose();
return;
}
cm.sendOk("通往下一區域的入口,已經開啟。");
cm.dispose();
break;
case 910340300:
if (eim.getProperty("stage3") == null) {
if (!cm.isLeader()) {
cm.sendOk("歡迎來到#m" + cm.getPlayer().getMap().getId() + "#,請根據組長的指示進行這一關挑戰。");
cm.dispose();
return;
}
if (eim.getProperty("stage3a") == null) {
cm.sendOk("歡迎來到#m" + cm.getPlayer().getMap().getId() + "#,你會發現一些#b平臺#k,其中有兩個連接著通往下一關的傳送門,你們需要做的是讓兩名組員#b站#k到正確的平臺上。當隊員站好了位置,請隊長與我對話。\r\n\r\n注意,如果站的太接近邊緣,將得不到正確答案,如果你們組合正確了,傳送門就會打開。");
eim.setProperty("stage3a", 1);
cm.dispose();
return;
}
if (eim.getProperty("stage3b") == null) {
eim.setProperty("stage3b", (Math.random() < 0.3) ? "00101" : (Math.random() < 0.5) ? "00011" : "10001");//給予隨機答案
}
var chenhui = 0;
for (var i = 0; i < 5; i++)//平臺的數量
if (cm.getMap().getNumPlayersItemsInArea(i) > 0) {
chenhui++;
}
if (chenhui != 2) {
cm.sendOk("看起來你還沒有找到正確的方法,需要讓兩名組員#b站#k到平臺上面,以形成不同的組合。");
cm.dispose();
return;
}
var x = "";
for (var i = 0; i < 5; i++)//平臺的數量
x += cm.getMap().getNumPlayersItemsInArea(i);
y = x;
if (y == eim.getProperty("stage3b")) {
eim.setProperty("stage3", 1);
cm.showEffect(true, "quest/party/clear");
cm.playSound(true, "Party1/Clear");
cm.getMap().changeEnvironment("gate", 2);
cm.sendOk("組合正確,通往下一區域的入口,已經開啟。");
cm.dispose();
return;
}
cm.showEffect(true, "quest/party/wrong_kor");
cm.playSound(true, "Party1/Failed");
cm.sendNext("組合是錯誤的,看來你還沒有找到正確的2個平臺,請再繼續調整一下位置。");
cm.dispose();
return;
}
cm.sendOk("通往下一區域的入口,已經開啟。");
cm.dispose();
break;
case 910340400:
if (eim.getProperty("stage4") == null) {
if (cm.isLeader()) {
if (cm.haveItem(4001008, 19)) {
cm.sendOk("大家表現得非常好,通往下一區域的入口,已經開啟。");
cm.gainItem(4001008, -19);
eim.setProperty("stage4", 1);
cm.showEffect(true, "quest/party/clear");
cm.playSound(true, "Party1/Clear");
cm.getMap().changeEnvironment("gate", 2);
cm.dispose();
return;
}
cm.sendOk("你好,歡迎進入#m" + cm.getPlayer().getMap().getId() + "#,繞著地圖走一圈,你就能找到一些怪物,擊敗所有怪物,收集好全部的通行證後,再轉交給我。");
cm.dispose();
return;
}
cm.sendOk("你好,歡迎進入#m" + cm.getPlayer().getMap().getId() + "#,繞著地圖走一圈,你就能找到一些怪物,請擊敗所有怪物,收集好全部的通行證後,讓組長轉交給我。");
cm.dispose();
return;
}
cm.sendOk("通往下一區域的入口,已經開啟。");
cm.dispose();
break;
case 910340500:
if (eim.getProperty("stage5") == null) {
if (cm.isLeader()) {
if (cm.getMap(910340500).getAllMonstersThreadsafe().size() == 0) {
cm.sendNext("恭喜你們完成了所有挑戰,請等待傳送到最終的獎勵關卡,裡面的怪物比普通的更容易打敗,你會有一段時間盡可能多的狩獵,也可以與NPC對話提前結束。");
cm.mapMessage(6, "恭喜你們完成了所有挑戰,請等待傳送到最終的獎勵關卡,裡面的怪物比普通的更容易打敗,你會有一段時間盡可能多的狩獵,也可以與NPC對話提前結束。");
eim.setProperty("stage5", 1);
cm.showEffect(true, "quest/party/clear");
cm.playSound(true, "Party1/Clear");
cm.getEventInstance().startEventTimer(1 * 10000);
cm.dispose();
return;
}
}
cm.sendOk("你好。歡迎來到第五階段,也是最後一階段。 請消滅地圖中的綠水靈王,就可以進入獎勵階段了哦。");
cm.dispose();
return;
}
cm.sendOk("請耐心等待,倒數計時後將進入最終的獎勵關卡。");
cm.dispose();
}
}
遺棄之塔踩箱子脚本
/*
名字: 藍氣球
地圖: 遺棄之塔<第5階段>
描述: 922010800
*/
function start() {
var eim = cm.getPlayer().getEventInstance();
if (eim.getProperty("stage8status") == null) {//判斷條件
if (!cm.isLeader()) {//判斷組長
cm.sendOk("歡迎來到#m" + cm.getPlayer().getMap().getId() + "#,請根據組長的指示進行這一關挑戰。");
cm.dispose();
return;
}
if (eim.getProperty("stage8a") == null) {
cm.sendOk("歡迎來到遺棄之塔<第5階段>,在這個階段中,需要2名組員分別站在這些標有數位的方塊上面,以形成正確的組合來解鎖下一階段。");
eim.setProperty("stage8a", 0);
cm.dispose();
return;
}
if (eim.getProperty("stage8b") == null) {
hui = ["100000001", "010010000", "001010000", "000010100", "000001010", "000100001", "000000110", "010000010", "001000100"];
eim.setProperty("stage8b", hui[parseInt(Math.random() * hui.length)]);
}
var chenhui = 0;
for (var i = 0; i < 9; i++)
if (cm.getMap().getNumPlayersItemsInArea(i) > 0) {
chenhui++;
}
if (chenhui != 2) {
cm.sendOk("看起来你还没有找到正确的方法,需要2名組員分別站在這些標有數位的方塊上面,以形成正確的組合。");
cm.dispose();
return;
}
var x = "";
for (var i = 0; i < 9; i++)
x += cm.getMap().getNumPlayersItemsInArea(i);
y = x;
if (y == eim.getProperty("stage8b")) {
eim.setProperty("stage8status", 1);
cm.showEffect(true, "quest/party/clear");
cm.playSound(true, "Party1/Clear");
cm.getMap().changeEnvironment("gate", 2);
cm.sendOk("組合正確,通往下一區域的入口,已经開啟。");
cm.dispose();
return;
}
cm.showEffect(true, "quest/party/wrong_kor");
cm.playSound(true, "Party1/Failed");
cm.dispose();
return;
}
cm.sendOk("通往下一區域的入口,已经開啟。");
}
cm.dispose();
}
方法很簡單,基本上這樣的導入隨機設置與讀取 對很多腳本通用!只需要簡單的修改下對應讀取的函數
反應堆的讀取 雅典娜禁地 為例:
var chenhui = 0;
for (var i = 1; i < 4; i++)
if (cm.getMap().getReactorByName("" + i).getState() > 0) {
chenhui++;
}
var x = "";
for (var i = 1; i < 4; i++)
x += cm.getMap().getReactorByName("" + i).getState();
y = x;
关于随机答案,另一种写法:
hui = ["0101", "1010", "0110", "0011", "1001"];
eim.setProperty("stage2b", hui[parseInt(Math.random() * hui.length)]);
注意:此脚本只适用于改版之后的内容,但方法是一致的。不知道是系统语言不支持还是什么问题 脚本里含有 [i] 的发到论坛上 会消失掉!
9020001.rar
(2.43 KB, 下載次數: 837)
|
|