Project1

标题: 用脚本给游戏数据赋值的方法 [打印本页]

作者: pandeng421    时间: 2023-1-10 19:31
标题: 用脚本给游戏数据赋值的方法
举个例子,可以通过$gameActors.actor(actorId).mhp来获得角色的最大HP,但怎么可以通过脚本给它赋值来改变最大HP呢?

换句话说,就是想给游戏内置数据(不是自定义的变量)赋值,语法是什么呢?

求大神指导,谢谢!!
作者: 风雨妙    时间: 2023-1-10 19:31
本帖最后由 风雨妙 于 2023-1-11 18:47 编辑

MV 是通过paramMax 方法来控制属性最大值,因为默认是写死的固定数值,在游戏内基本上是改不了的。除非重写这个方法。改数据一般 属性名 = 值 就可以直接改掉,比如$gameParty._gold = 1000 就直接把钱变成1000。不能改的一般都是Object.defineProperties方法生成的 这种就要看它有没有设setting方法,没设就只能看,设了的话也是直接一个等号就行。这种具体还得看它get方法写了什么 比如MHP 写的就是this.param(0) 是一个方法的返回值,只要把这个方法改掉也是变相的改掉了这个属性。就比如你直接重写这个方法 return 1000 你游戏内所有MHP都会变成1000。
作者: pandeng421    时间: 2023-1-10 20:00
$gameActors.actor(1).addParam(0,100);
自己找到了……
作者: xiamumomo    时间: 2023-1-10 22:27
https://shimo.im/sheets/RykXT9vdTXWtqwT3  这是事件指令的脚本形式
作者: 小怪兽奇奇侠    时间: 2023-1-11 01:18
额,话说直接$gameActors.actor(actorId).mhp=最大hp 难道不行吗
作者: 小秋橙    时间: 2023-1-11 02:12
小怪兽奇奇侠 发表于 2023-1-11 01:18
额,话说直接$gameActors.actor(actorId).mhp=最大hp 难道不行吗

mhp mmp atk def mat mdf agi luk
这八个东西其实是8个getter,只能读不能写,只有当前的_hp _mp _tp可以写。
8个getter的具体公式是:
(职业和等级决定的基础值+永久补药和事件增加的常数值+装备增加的常数值)*装备增加的百分比*0.5~1.5的buff值。
实际上能改的只有那个“永久补药和事件增加的常数值”,也就是_paramPlus数组。




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