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

Project1

 找回密码
 注册会员
搜索

如何在等级和经验值的位置按队友显示不同的自定义变量

查看数: 642 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-3-16 23:50

正文摘要:

本帖最后由 MichaelPolo 于 2024-3-16 23:57 编辑 我现在的游戏,用不到等级,改成了年龄,用不到经验值,改成了声望,我想按不同队友显示不同的年龄变量和声望变量,应该如何修改rmmz_objects.js文件? 在Game_A ...

回复

MichaelPolo 发表于 2024-3-19 14:31:53
Arrose 发表于 2024-3-18 21:36
用actor._actorId,actorId才是数据库的角色id,

Game_Actor.prototype.index = function() {

感谢,已经修改成功了
Arrose 发表于 2024-3-18 21:36:49
MichaelPolo 发表于 2024-3-18 21:10
感谢,我折腾了半天终于搞定了。
问题主要是出在我用了AltMenuScreen2MZ.js插件,这个插件管着主菜单界面 ...

用actor._actorId,actorId才是数据库的角色id,

JAVASCRIPT 代码复制
  1. Game_Actor.prototype.index = function() {
  2.     return $gameParty.members().indexOf(this);
  3. };


你写的actor.index()获得是队列位置,如果你的角色的id是10,你怎么判断
Arrose 发表于 2024-3-18 14:32:00
本帖最后由 Arrose 于 2024-3-18 14:38 编辑
MichaelPolo 发表于 2024-3-18 13:49
我改的就是这里,但是只能让点状态选角色后或点技能选角色后的界面里的年龄改成不同变量,刚按esc出来的 ...


你别用this._actor啊,this._actor是不存在,你的if里的条件都是false,你这个函数不是自己传了actor参数进去了,你直接用actor,

我建议你应该先去看下js的基础语法再来改插件,特别是作用域及this对象指向。
MichaelPolo 发表于 2024-3-18 13:49:55
Arrose 发表于 2024-3-18 11:29
Window_StatusBase.prototype.drawActorLevel = function(actor, x, y) {
    this.changeTextColor(Colo ...

我改的就是这里,但是只能让点状态选角色后或点技能选角色后的界面里的年龄改成不同变量,刚按esc出来的那个主菜单里没法变,我现在的脚本如下:

Window_StatusBase.prototype.drawActorLevel = function(actor, x, y) {
    this.changeTextColor(ColorManager.systemColor());
    this.drawText(TextManager.levelA, x, y, 48);
    this.resetTextColor();
    if (this._actor._actorId===1) {
        this.drawText($gameVariables.value(14), x + 84, y, 36, "right");
    }
    if (this._actor._actorId===2) {
        this.drawText($gameVariables.value(15), x + 84, y, 36, "right");
    }
    if (this._actor._actorId===3) {
        this.drawText($gameVariables.value(16), x + 84, y, 36, "right");
    }
};
Arrose 发表于 2024-3-18 11:29:02
本帖最后由 Arrose 于 2024-3-18 11:30 编辑
MichaelPolo 发表于 2024-3-17 23:35
感谢指导,现在状态和技能详细里的年龄都可以分别用不同变量表示了,唯独menu界面还不行,找了半天没有头 ...


JAVASCRIPT 代码复制
  1. Window_StatusBase.prototype.drawActorLevel = function(actor, x, y) {
  2.     this.changeTextColor(ColorManager.systemColor());
  3.     this.drawText(TextManager.levelA, x, y, 48);
  4.     this.resetTextColor();
  5.     this.drawText(actor.level, x + 84, y, 36, "right");
  6. };
Arrose 发表于 2024-3-17 21:11:12
本帖最后由 Arrose 于 2024-3-17 21:17 编辑
MichaelPolo 发表于 2024-3-17 20:31
大佬,我改了一下脚本如下,但是好像不对,判断没有起作用,是不是语法写错了,我不太会写脚本。
我希望 ...


=表示赋值,==会进行自动类型转换,然后才判断是否相等,===才是判断是否类型和值都相等,建议用===

还有你应该写成插件,而不是直接在MZ源码里修改,参考:https://rpgmakerofficial.com/product/mz/plugin/make/koushiki.html
MichaelPolo 发表于 2024-3-17 20:31:04
Arrose 发表于 2024-3-17 15:12
给每个actor绑定不同的变量不就好了,比如id为0的actor使用id为0的变量,然后在下面的方法中判断当前actor ...

大佬,我改了一下脚本如下,但是好像不对,判断没有起作用,是不是语法写错了,我不太会写脚本。
我希望角色1显示变量13的数值作为声望,其他角色都返回"-------"

Window_Status.prototype.expTotalValue = function() {
if (this._actor._actorId=1) {
        return $gameVariables.value(13);
    } else {
        return "-------";
    }   
};

点评

已经搞定了,原来是if (this._actor.actorId()==1)  发表于 2024-3-17 20:48
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-22 03:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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