增加绘制时装时隐藏图层的显示

This commit is contained in:
Lenheart 2025-07-16 15:20:05 +08:00
parent e28a2c3189
commit a95f9e94d3
1 changed files with 15 additions and 1 deletions

View File

@ -218,6 +218,9 @@ class Rindro_Draw_Character {
//绘制体信息 //绘制体信息
DrawInfo = null; DrawInfo = null;
//隐藏图层Map
HideMap = null;
ENUM_RINDRO_JOB_NAME = ["swordman", "fighter", "gunner", "mage", "priest", "atgunner", "thief", "atfighter", "atmage", "demonicswordman", "creatormage"]; ENUM_RINDRO_JOB_NAME = ["swordman", "fighter", "gunner", "mage", "priest", "atgunner", "thief", "atfighter", "atmage", "demonicswordman", "creatormage"];
ENUM_RINDRO_JOB_TITLE_HEIGHT = [ ENUM_RINDRO_JOB_TITLE_HEIGHT = [
@ -408,8 +411,16 @@ class Rindro_Draw_Character {
//没有Ani 就那种透明时装 //没有Ani 就那种透明时装
if (!(Equ.rawin("Ani_" + JobName))) return AniList; if (!(Equ.rawin("Ani_" + JobName))) return AniList;
//记录时装的隐藏图层值
if (Equ.rawin("hidelayer")) {
foreach(value in Equ["hidelayer"]) {
HideMap.rawset(value, true);
}
}
//读取Ani配置 //读取Ani配置
local AniScript = Equ["Ani_" + JobName]; local AniScript = Equ["Ani_" + JobName];
// printT(AniScript);
if (Equ.equipment_type == "skin avatar") { if (Equ.equipment_type == "skin avatar") {
local Path; local Path;
if (JobName.find("at") >= 0) { if (JobName.find("at") >= 0) {
@ -430,7 +441,7 @@ class Rindro_Draw_Character {
local AniBuf = Rindro_Animation(Path, Ao); local AniBuf = Rindro_Animation(Path, Ao);
AniList.append({ AniList.append({
Ani = AniBuf, Ani = AniBuf,
Layer = 0, Layer = -1,
}); });
} else { } else {
foreach(Info in AniScript.layer_variation) { foreach(Info in AniScript.layer_variation) {
@ -456,6 +467,7 @@ class Rindro_Draw_Character {
} }
constructor(Job, EquipmentArr, Action, Name) { constructor(Job, EquipmentArr, Action, Name) {
HideMap = {};
DrawInfo = GetCharacAniByEqu(Job, EquipmentArr, Action); DrawInfo = GetCharacAniByEqu(Job, EquipmentArr, Action);
this.Job = Job; this.Job = Job;
this.Name = Name; this.Name = Name;
@ -463,6 +475,8 @@ class Rindro_Draw_Character {
function Draw(X, Y) { function Draw(X, Y) {
foreach(AniInfo in DrawInfo) { foreach(AniInfo in DrawInfo) {
// print(AniInfo.Layer);
if(!HideMap.rawin(AniInfo.Layer))
AniInfo.Ani.Draw(X, Y); AniInfo.Ani.Draw(X, Y);
} }