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