本帖最后由 涂鸦boy 于 2023-10-11 23:04 编辑
自定义变量 1.体力值, 整数, 初始为0; 2.禁止奔跑, 布尔值, 初始为 false; function 1.重写系统函数 按 shift 键奔跑 if (禁止奔跑 === false) {执行原来的奔跑函数;} else {return;} function 2.重写系统函数 玩家每次移动 if (shift键按下 && 方向键按下) {setTimeout();} if (体力变量 === 100;) else {禁止奔跑 === true;} 3.异步等待函数 setTimeout(function(){ 体力变量++;} ,3000)
自定义变量
1.体力值, 整数, 初始为0;
2.禁止奔跑, 布尔值, 初始为 false;
function 1.重写系统函数 按 shift 键奔跑
if (禁止奔跑 === false)
{执行原来的奔跑函数;}
else {return;}
function 2.重写系统函数 玩家每次移动
if (shift键按下 && 方向键按下)
{setTimeout();}
if (体力变量 === 100;)
else {禁止奔跑 === true;}
3.异步等待函数 setTimeout(function(){
体力变量++;}
,3000)
差不多这样, 需要脚本插件丢给 chatGPT-4 写就行
论坛里有一个【按键触发公共事件】的脚本, 用这个做 shift 键的判断也可
https://rpg.blue/forum.php?mod=viewthread&tid=488813
或者做一个【并行处理】的事件, 需要此玩法的地图就复制一个, 完全不需要脚本插件
对于这个玩法, 事件方法其实最简单最准确
RMMZ 玩家是按'格'走的, 一格是一步, 事件编辑默认每次行走完后自增一次变量,
Javascript 是单线程的, 脚本只要判断成立, 每帧都会执行, 只要不松手, 哪怕主角没动, 也会增加步数
所以插件还要加上异步等待
// 异步等待函数 setTimeout(function(){$gameSelfSwitches.value([1, 3, 'A'])},3000); //例子:地图1的事件3,自开关A启动, 等待3000毫秒 //调用方法 setTimeout(要执行的代码, 等待的毫秒数);
// 异步等待函数
setTimeout(function(){$gameSelfSwitches.value([1, 3, 'A'])},3000); //例子:地图1的事件3,自开关A启动, 等待3000毫秒
//调用方法
setTimeout(要执行的代码, 等待的毫秒数);
最后恢复体力
调查事件(玩家接触)
体力变量 === 0
禁止奔跑 === false
调查事件(玩家接触)
体力变量 === 0
禁止奔跑 === false
|