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

Project1

 找回密码
 注册会员
搜索
查看: 1489|回复: 7

[有事请教] 想求助一下怎样做到显示新入队队友的立绘

[复制链接]

Lv1.梦旅人

梦石
0
星屑
127
在线时间
20 小时
注册时间
2013-2-12
帖子
7
发表于 2022-12-4 18:04:40 | 显示全部楼层 |阅读模式

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

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

x
使用的插件分别是
DreamX Capture Enemies和MOG_BattleHud
QQ图片20221204175011.png QQ图片20221204175015.png
DCE捕捉后会生成一个角色,复制你角色的信息后再加入你的小队,MOG则负责显示角色立绘
但是DCE捕捉的角色不会复制立绘信息,MOG的立绘显示是固定死的,一个角色一个立绘都需要手动输入
我这里突发奇想,看到个状态栏显示立绘的工具GALV_BustMenu
QQ截图20221204175806.png
他显示立绘的方法是
QQ图片20221204175859.png
直接读取脸图然后+序号名之后,去PIC文件夹里查找同名立绘图片拿来用
可是我实在不懂代码,就是想实现一个
QQ图片20221204180044.png
同款的立绘显示效果,但是这么写在MOG的插件里没有效果,所以来跪求一下大神支个招
找了好多工具,都感觉就差一点点了,_(:з」∠)_……

插件就这些
plugins.7z (25.93 KB, 下载次数: 8)

Lv3.寻梦者

梦石
0
星屑
2851
在线时间
446 小时
注册时间
2016-9-26
帖子
1222
发表于 2022-12-4 19:03:04 | 显示全部楼层
本帖最后由 任小雪 于 2022-12-4 19:04 编辑

(首先,我不确定我是不是看错了题目意思)
我的思路:通过伤害公式那里获取敌人的id,然后,看你的图片(最好是纯数字命名)怎么和这些id对应上。
话说,不确定这插件需要不需要一点点小改动,没用过。
嗯,给你祈祷一波楼下大佬
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
127
在线时间
20 小时
注册时间
2013-2-12
帖子
7
 楼主| 发表于 2022-12-4 19:25:07 | 显示全部楼层
任小雪 发表于 2022-12-4 19:03
(首先,我不确定我是不是看错了题目意思)
我的思路:通过伤害公式那里获取敌人的id,然后,看你的图片( ...

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
127
在线时间
20 小时
注册时间
2013-2-12
帖子
7
 楼主| 发表于 2022-12-4 19:32:28 | 显示全部楼层
感觉还能再精简一下
比如我设置捕捉哥布林会让5号角色入队
dce:复制5号角色的脸图行走图粘贴在3005号,然后入队
mog:指定5.png作为5号角色立绘,3005是谁我不认识
galv:这个角色脸图是第1张第5个,所以把图片文件夹的Actor1_5.png拿来当立绘
我的请求是让mog的指定方式跟galv一样,通过脸图的顺序生成一个文件名,把同名文件作为立绘用
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5298
在线时间
378 小时
注册时间
2021-12-4
帖子
388
发表于 2022-12-5 00:26:09 | 显示全部楼层

虽然没下载那个附件不过看到这个图片里的写法我就猜出个大概了,你想要的大概是图中的那一串文字先被eval以后再作为实际的文件名去加载。
这种需求要么需要修改插件代码增加一步eval操作(但这样就要求其他用到这个插件指令的地方都要把参数文件名加上引号),
要么就不应该使用“插件指令”而应该直接用“脚本”去调用api函数,这样函数的实参才可以使用这种字符串拼接语法。
另外dce之所以不会复制立绘信息可能是因为立绘信息是写在右下角的备注栏的,而备注栏的内容note只会在“加载data文件夹下的json文件”时被一次性解析为meta对象,因此复制角色之后需要手动再次解析(如果复制了note)或者手动复制meta的部分属性,这也是一种解决的思路,挑一种吧~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
127
在线时间
20 小时
注册时间
2013-2-12
帖子
7
 楼主| 发表于 2022-12-5 14:32:28 | 显示全部楼层
小秋橙 发表于 2022-12-5 00:26
虽然没下载那个附件不过看到这个图片里的写法我就猜出个大概了,你想要的大概是图中的那一串文字先被eval ...

对对对,就是这个意思,本质上就是想要个根据脸图显示立绘的效果,无奈不懂代码所以表述的挺绕的
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5298
在线时间
378 小时
注册时间
2021-12-4
帖子
388
发表于 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);
};
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
127
在线时间
20 小时
注册时间
2013-2-12
帖子
7
 楼主| 发表于 2022-12-5 18:16:21 | 显示全部楼层
小秋橙 发表于 2022-12-5 15:37
Battle_Hud.prototype.create_face = function() {
        if (String(Moghunter.bhud_face_visible) != "true")  ...

哇哇哇,太感谢了!太感谢了!!!成功了,真的很感谢!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 02:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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