查看: 1677|回复: 5

[有事请教] 请问MZ有体力值限制奔跑和调查行动的插件吗?

[复制链接]
梦石
0
星屑
31
在线时间
3 小时
注册时间
2023-9-27
回帖
1
发表于 2023-10-8 20:45:41 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
RT,我的企划组已确定游戏需要加入体力值系统,大概是:游戏全程都有一个显目的HUD,如果玩家进行奔跑;调查等操作,这个HUD将会直观的反映体力值的扣除,一旦体力值耗尽,玩家们就必须暂时停止奔跑或停止调查一段时间以恢复体力方可继续奔跑\调查,有这种插件吗?或者MZ该如何做才能实现此操作?
梦石
0
星屑
6412
在线时间
1700 小时
注册时间
2018-1-16
回帖
364
发表于 2023-10-8 22:04:56 | 显示全部楼层
变量带入步数,步数增加,减少体力,体力 = 多少强制无法行动,或者体力为0,直接强制猝死,步数为0,则增加体力,上限100
回复

使用道具 举报

梦石
0
星屑
31
在线时间
3 小时
注册时间
2023-9-27
回帖
1
 楼主| 发表于 2023-10-8 23:25:15 | 显示全部楼层
l734273398 发表于 2023-10-8 22:04
变量带入步数,步数增加,减少体力,体力 = 多少强制无法行动,或者体力为0,直接强制猝死,步数为0,则增 ...

在哪或者如何阻止玩家角色进行移动或奔跑?
回复

使用道具 举报

梦石
0
星屑
6412
在线时间
1700 小时
注册时间
2018-1-16
回帖
364
发表于 2023-10-9 20:30:15 | 显示全部楼层
公共事件才能全地图,阻止行动?体力为0,把行动速度和行动频率都降到最低
回复

使用道具 举报

梦石
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]
回复

使用道具 举报

梦石
0
星屑
3234
在线时间
566 小时
注册时间
2020-8-20
回帖
71
发表于 2023-10-12 18:18:14 | 显示全部楼层
本帖最后由 pkeasygod 于 2023-10-12 18:45 编辑

监制玩家是否移动比较好 监制步数归0好像有冲突

圖片_2023-10-12_183042127.png
圖片_2023-10-12_183845853.png
螢幕擷取畫面 2023-10-12 153016.png

var p = $gamePlayer, d = p.getInputDirection(); $gamePlayer.isMoving() || (d > 0 && p.canPass(p.x, p.y, d)) || $gameTemp.isDestinationValid()
$gamePlayer.setMoveSpeed(3);

出處
https://forums.rpgmakerweb.com/i ... em-with-hud.125037/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部