Project1

标题: 如何用腳本判斷或設定做隔山打牛的氣功師? [打印本页]

作者: play337    时间: 2021-12-2 15:27
标题: 如何用腳本判斷或設定做隔山打牛的氣功師?
本帖最后由 play337 于 2021-12-2 16:18 编辑

如何用腳本判斷或設定做隔山打牛的氣功師?

我想讓主角一定要隔一個事件才可以打第二個事件
我條件分支應該要怎麼寫呢?

我現在想到的是...

氣功的威力是7格 所以我要判斷6次因為第1格不能打所以不需要判斷.只要有打到人後面的就不需要判斷了
所以是

左邊
迴圈-->處理次數=1-->變數X軸-1-->判斷是否有人-->如果有人撥放動畫(攻擊)-->處理次數=7-->跳出迴圈
右邊
迴圈-->處理次數=1-->變數X軸+1-->判斷是否有人-->如果有人撥放動畫(攻擊)-->處理次數=7-->跳出迴圈

這樣講可能很難講清楚... 附上圖...可能比較清楚





作者: 任小雪    时间: 2021-12-2 15:39
获取所有事件的坐标,不断往前反复数格子判断第一个人到第二个人
作者: 仇九    时间: 2021-12-2 19:59
这是脚本指令:
JAVASCRIPT 代码复制
  1. let distance=7,dir=$gamePlayer.direction();
  2. let x=$gamePlayer.x,y=$gamePlayer.y,hasFindOne=false;
  3. for (let i=0;i<distance;i++) {
  4.     switch(dir){case 2:y+=1;break;case 4:x-=1;break;case 6:x+=1;break;case 8:y-=1;break;}
  5.     let result = $gameMap.events().filter((event)=>{return event.pos(x, y);});
  6.     //return 后面的是判断事件是否在某个坐标上,后面可以加上判断事件是否是敌人事件的相关指令。其实相当于$gameMap.eventsXy(x,y)
  7.     if (result.length>0) {
  8.         if (hasFindOne) {//第二次找到敌人
  9.             $gameVariables.setValue(1,result[0]._eventId);//将第二次找到的敌人的id赋予变量1,也可以直接写有关伤害的指令。
  10.             break;
  11.         } else hasFindOne = true;//第一次找到敌人
  12.     }
  13. }

这是事件指令:





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1