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

Project1

 找回密码
 注册会员
搜索

想求助一下怎样做到显示新入队队友的立绘

查看数: 1642 | 评论数: 7 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-12-4 18:04

正文摘要:

使用的插件分别是 DreamX Capture Enemies和MOG_BattleHud

回复

Inkian 发表于 2022-12-5 18:16:21
小秋橙 发表于 2022-12-5 15:37
Battle_Hud.prototype.create_face = function() {
        if (String(Moghunter.bhud_face_visible) != "true")  ...

哇哇哇,太感谢了!太感谢了!!!成功了,真的很感谢!!
小秋橙 发表于 2022-12-5 15:37:43
Battle_Hud.prototype.create_face = function() {
        if (String(Moghunter.bhud_face_visible) != "true") {return};
        this.removeChild(this._face);
        if (!this._battler) {return};       
        this._face = new Sprite(ImageManager.loadBHud(Moghunter.actFace_list[this._battler._actorId])); // 关键在于这一行,也就是BattleHud.js的第3849行
        this._face.anchor.x = 0.5;
        this._face.anchor.y = 0.5;
        this._face_data = [0,0,false,false,false,-1];
        if (String(Moghunter.bhud_face_shake) === "true") {this._face_data[2] = true}
        if (String(Moghunter.bhud_face_animated) === "true") {this._face_data[4] = true}
        this._battler._bhud_face_data = [0,0,0,0]
        this.addChild(this._face);
};

如上,Moghunter.actFace_list[this._battler._actorId]中记录了图片文件名(不含.png后缀),且因为是插件的全局参数所以它是绝对不可能在游戏中途动态变化的。
因此应该把上面的函数整个改成下面的样子:

Battle_Hud.prototype.create_face = function() {
        if (String(Moghunter.bhud_face_visible) != "true") {return};
        this.removeChild(this._face);
        if (!this._battler) {return};       

        var a = $dataActors[this._battler._actorId], b = a.faceName, c = a.faceIndex; // c的范围是0-7
        var file = Moghunter.actFace_list[this._battler._actorId] || (b + '_' + c); // 当插件全局参数中该项【留空】时,使用名为 b_c.png 的文件
        this._face = new Sprite(ImageManager.loadBHud(file));

        this._face.anchor.x = 0.5;
        this._face.anchor.y = 0.5;
        this._face_data = [0,0,false,false,false,-1];
        if (String(Moghunter.bhud_face_shake) === "true") {this._face_data[2] = true}
        if (String(Moghunter.bhud_face_animated) === "true") {this._face_data[4] = true}
        this._battler._bhud_face_data = [0,0,0,0]
        this.addChild(this._face);
};
Inkian 发表于 2022-12-5 14:32:28
小秋橙 发表于 2022-12-5 00:26
虽然没下载那个附件不过看到这个图片里的写法我就猜出个大概了,你想要的大概是图中的那一串文字先被eval ...

对对对,就是这个意思,本质上就是想要个根据脸图显示立绘的效果,无奈不懂代码所以表述的挺绕的
小秋橙 发表于 2022-12-5 00:26:09

虽然没下载那个附件不过看到这个图片里的写法我就猜出个大概了,你想要的大概是图中的那一串文字先被eval以后再作为实际的文件名去加载。
这种需求要么需要修改插件代码增加一步eval操作(但这样就要求其他用到这个插件指令的地方都要把参数文件名加上引号),
要么就不应该使用“插件指令”而应该直接用“脚本”去调用api函数,这样函数的实参才可以使用这种字符串拼接语法。
另外dce之所以不会复制立绘信息可能是因为立绘信息是写在右下角的备注栏的,而备注栏的内容note只会在“加载data文件夹下的json文件”时被一次性解析为meta对象,因此复制角色之后需要手动再次解析(如果复制了note)或者手动复制meta的部分属性,这也是一种解决的思路,挑一种吧~
Inkian 发表于 2022-12-4 19:32:28
感觉还能再精简一下
比如我设置捕捉哥布林会让5号角色入队
dce:复制5号角色的脸图行走图粘贴在3005号,然后入队
mog:指定5.png作为5号角色立绘,3005是谁我不认识
galv:这个角色脸图是第1张第5个,所以把图片文件夹的Actor1_5.png拿来当立绘
我的请求是让mog的指定方式跟galv一样,通过脸图的顺序生成一个文件名,把同名文件作为立绘用
Inkian 发表于 2022-12-4 19:25:07
任小雪 发表于 2022-12-4 19:03
(首先,我不确定我是不是看错了题目意思)
我的思路:通过伤害公式那里获取敌人的id,然后,看你的图片( ...

可能我表述有点怪
就是想让战斗的时候显示角色立绘
DCE的原理是会在捕捉敌人的时候让一个队友入队达到捕捉敌人一样的效果
MOG的战斗立绘则是你设置第几个角色显示x文件名的立绘,就会显示这个立绘
可是DCE生成的队友并不是真的让第几号队友入队而是复制后创建的新角色
所有mog不能给新角色指定立绘
但是我手头有个galv插件,他可以在菜单显示立绘,而他显示的方式不是指定,而是读取脸图的序列
再根据序列把图片文件夹的同名图作为立绘显示在菜单上
所有本质上如果能让mog的读取方式照搬galv的方式,问题就解决了
但是现在的问题是我太小白了,整不来这种代码……
任小雪 发表于 2022-12-4 19:03:04
本帖最后由 任小雪 于 2022-12-4 19:04 编辑

(首先,我不确定我是不是看错了题目意思)
我的思路:通过伤害公式那里获取敌人的id,然后,看你的图片(最好是纯数字命名)怎么和这些id对应上。
话说,不确定这插件需要不需要一点点小改动,没用过。
嗯,给你祈祷一波楼下大佬
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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