设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 864|回复: 5
打印 上一主题 下一主题

[搬运汉化] Iavra Self Variables-为事件提供独立变量的插件

[复制链接]

Lv4.逐梦者

梦石
0
星屑
5420
在线时间
1228 小时
注册时间
2016-12-6
帖子
389
跳转到指定楼层
1
发表于 2023-10-19 16:18:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 shiroin 于 2023-10-19 16:44 编辑

作者及插件来源(使用插件请署名作者为Iavra):
https://forums.rpgmakerweb.com/i ... lf-variables.51106/

RPGmaker里虽然有独立开关但没有独立变量的功能,所以就有这个插件的用武之地

YEP系列虽然也有自变量/自开关的插件,但使用较为繁琐,而且不知道为什么在我的工程文件里特别不兼容无法使用……所以想办法找了一个轻量版的

而这个插件用法上和全局变量几乎无区别,也有脚本、插件指令均兼容的优势,没有示例图,这里就只贴上帮助文档:


* 为事件增加独立变量,工作原理类似独立开关。
* 独立变量通过地图ID、事件ID和一个关键词(关键词不能包含空格)进行唯一识别。
* 帮助文档里出现的脚本名或插件命令格式都采取默认的参数,请根据自己实际使用的格式进行适当修改。
* mapId:事件所在的地图ID
* eventId:独立变量对应的事件ID
* key:独立变量的关键词命名(不能包含空格,且使用字符串命名需要使用单引号来包围,例如'friendship')
* value:独立变量对应的值
*
* 通过脚本的形式获取或改变独立变量的值:
* $gameSelfVariables.setValue([mapId, eventId, key], value);
* $gameSelfVariables.value([mapId, eventId, key]);
*
* 如果是想要获取或改变当前事件的独立变量,你可以使用以下格式的脚本:
* $gameSelfVariables.get(this, key);
* $gameSelfVariables.set(this, key, value);
*
* 独立变量也可以通过插件指令进行改变,你可以进行以下运算:
* =   为独立变量代入一个值
* +   对独立变量进行加法运算
* -   对独立变量进行减法运算
* /   对独立变量进行除法运算
* *   对独立变量进行乘法运算
* %   将独立变量除以操作数的余数保存进变量里(即取模)
*
* 要应用这些运算方式,你可以使用以下格式的插件指令(将operation替换为需要的运算符号):
*
* SelfVariable key operation value             // 使用常量值并应用指定的运算方式
* SelfVariable key operation v[value]          // 使用指定的普通变量并应用指定的运算方式
* SelfVariable key operation self[value]       // 使用指定的独立变量并应用指定的运算方式
* SelfVariable key operation (value1 ~ value2) // 在一个区间内取一个随机数并应用指定的运算方式
* SelfVariable key operation "value"           // 先将文本内的JS代码运算求值再应用指定的运算方式(即脚本的用法)
*
* 还有延伸的插件指令:
*
* SelfVariable key abs                         // 令独立变量的值变为绝对值

Iavra Self Variables.zip

3.5 KB, 下载次数: 22

即插即用

评分

参与人数 2+2 收起 理由
千寒-YuukakeID + 1 精品文章
小怪兽奇奇侠 + 1 精品文章

查看全部评分

Lv3.寻梦者

梦石
0
星屑
1555
在线时间
79 小时
注册时间
2023-3-12
帖子
61
6
发表于 2023-11-10 10:23:12 | 只看该作者
本帖最后由 千寒-YuukakeID 于 2023-11-10 10:27 编辑
shiroin 发表于 2023-11-9 16:27
额,如果你去翻源代码,会发现一个BUG……

//======================================================= ...


不好意思大佬,昨天被P1群友提醒了,发现是我写正则表达式有问题(同时使用了^和$导致匹配出错【整花活,翻译+学习】)
最后实测已经没BUG了
云书2群:976623094
欢迎加群学习~
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5420
在线时间
1228 小时
注册时间
2016-12-6
帖子
389
5
 楼主| 发表于 2023-11-9 20:04:21 | 只看该作者
RyanYe 发表于 2023-11-9 19:43
这个插件特别好用,比YEP的强很多,我已经用疯了
唯一小遗憾的是这个变量不能存储小数点,必须乘个100之类 ...

是啊,但简约美更重要,额外投入学习成本和维护成本就本末倒置了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7089
在线时间
722 小时
注册时间
2021-3-5
帖子
821
4
发表于 2023-11-9 19:43:22 | 只看该作者
这个插件特别好用,比YEP的强很多,我已经用疯了
唯一小遗憾的是这个变量不能存储小数点,必须乘个100之类的存进去,用的时候读出来再除100
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5420
在线时间
1228 小时
注册时间
2016-12-6
帖子
389
3
 楼主| 发表于 2023-11-9 16:27:33 | 只看该作者
千寒-YuukakeID 发表于 2023-11-9 16:08
大佬,为啥YEP的独立变量只会返回true和false呀,学的头大

额,如果你去翻源代码,会发现一个BUG……

//=============================================================================
// Game_Variables
//=============================================================================

Yanfly.SSV.Game_Variables_value = Game_Variables.prototype.value;
Game_Variables.prototype.value = function(variableId) {
  if (DataManager.isSelfVariable(variableId) && $gameTemp.getSelfSwVarEvent()) {
    var mapId = $gameTemp.getSelfSwVarEvent()[0];
    var eventId = $gameTemp.getSelfSwVarEvent()[1];
    var variableId = 'SELF VARIABLE ' + variableId;
    var key = [mapId, eventId, variableId];
    return $gameSelfSwitches.value(key);
  } else {
    return Yanfly.SSV.Game_Variables_value.call(this, variableId);
  }
};

【 $gameSelfSwitches.value(key)】明明是自变量的函数,却返回了开关的值……
因为有各种奇怪的问题,所以我放弃了YEP的插件,改用这个了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1555
在线时间
79 小时
注册时间
2023-3-12
帖子
61
2
发表于 2023-11-9 16:08:32 | 只看该作者
大佬,为啥YEP的独立变量只会返回true和false呀,学的头大
云书2群:976623094
欢迎加群学习~
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 02:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表