111
This commit is contained in:
137
Project/Shapeshifting/Shapeshifting.nut
Normal file
137
Project/Shapeshifting/Shapeshifting.nut
Normal file
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
文件名:Shapeshifting.nut
|
||||
路径:Project/Shapeshifting/Shapeshifting.nut
|
||||
创建日期:2024-08-24 23:53
|
||||
文件用途:时装变身
|
||||
*/
|
||||
class ShapeshiftingC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
// Visible = false;
|
||||
|
||||
//信息
|
||||
Info = null;
|
||||
|
||||
//服务器装备配置
|
||||
SeverEquInfo = null;
|
||||
|
||||
ShapeMonsterId = null;
|
||||
|
||||
//初始化时间
|
||||
Timer = 0;
|
||||
|
||||
//收到信息包
|
||||
function GetInfoCallBack(Chunk) {
|
||||
if (!this) return;
|
||||
local Jso = Json.Decode(Chunk);
|
||||
SeverEquInfo = Jso.info;
|
||||
X = Jso.btnX;
|
||||
Y = Jso.btnY;
|
||||
}
|
||||
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
Timer = Clock();
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
|
||||
//信息包
|
||||
Pack_Control.rawset(20074002, GetInfoCallBack.bindenv(this));
|
||||
}
|
||||
|
||||
function RegisterWidget() {
|
||||
//关闭按钮
|
||||
local CloseButton = LenheartNewUI_BaseButton(0, 0, 28, 28, "interface2/yosin/bianshen.img", 0);
|
||||
CloseButton.OnClick = function() {
|
||||
if (ShapeMonsterId) {
|
||||
L_sq_SendPackType(214);
|
||||
L_sq_SendPackByte(2);
|
||||
L_sq_SendPackWord(ShapeMonsterId);
|
||||
L_sq_SendPack();
|
||||
}
|
||||
}.bindenv(this);
|
||||
CloseButton.SetCallBackFunc(function(Button) {
|
||||
|
||||
})
|
||||
Childrens.append(CloseButton);
|
||||
}
|
||||
|
||||
//绘制主界面
|
||||
function DrawMain(obj) {
|
||||
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function CheckPlayerInfoToSeverShapeInfo() {
|
||||
if(!SeverEquInfo)return;
|
||||
local Toubu = L_sq_GetCharacterAttribute(0x1C, 14);
|
||||
local Maozi = L_sq_GetCharacterAttribute(0x1C, 13);
|
||||
local Lianbu = L_sq_GetCharacterAttribute(0x1C, 15);
|
||||
local Guanghuan = L_sq_GetCharacterAttribute(0x1C, 22);
|
||||
local Xiongbu = L_sq_GetCharacterAttribute(0x1C, 19);
|
||||
local Shangyi = L_sq_GetCharacterAttribute(0x1C, 16);
|
||||
local Pifu = L_sq_GetCharacterAttribute(0x1C, 21);
|
||||
local Yaobu = L_sq_GetCharacterAttribute(0x1C, 20);
|
||||
local Xiazhuang = L_sq_GetCharacterAttribute(0x1C, 17);
|
||||
local Xie = L_sq_GetCharacterAttribute(0x1C, 18);
|
||||
|
||||
foreach(v in SeverEquInfo) {
|
||||
if (v.Toubu != Toubu && v.Toubu != 0) continue;
|
||||
if (v.Maozi != Maozi && v.Maozi != 0) continue;
|
||||
if (v.Lianbu != Lianbu && v.Lianbu != 0) continue;
|
||||
if (v.Guanghuan != Guanghuan && v.Guanghuan != 0) continue;
|
||||
if (v.Xiongbu != Xiongbu && v.Xiongbu != 0) continue;
|
||||
if (v.Shangyi != Shangyi && v.Shangyi != 0) continue;
|
||||
if (v.Pifu != Pifu && v.Pifu != 0) continue;
|
||||
if (v.Yaobu != Yaobu && v.Yaobu != 0) continue;
|
||||
if (v.Xiazhuang != Xiazhuang && v.Xiazhuang != 0) continue;
|
||||
if (v.Xie != Xie && v.Xie != 0) continue;
|
||||
ShapeMonsterId = v.MonsterId;
|
||||
return;
|
||||
}
|
||||
ShapeMonsterId = null;
|
||||
}
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y);
|
||||
|
||||
//每五秒获取一次本地数据信息
|
||||
if (Clock() - Timer >= 5000) {
|
||||
Timer = Clock();
|
||||
CheckPlayerInfoToSeverShapeInfo();
|
||||
}
|
||||
|
||||
if (!ShapeMonsterId) {
|
||||
Visible = false;
|
||||
} else {
|
||||
Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
getroottable().rawdelete("Shapeshifting_Obj");
|
||||
|
||||
function Lenheart_Shapeshifting_Fun(obj) {
|
||||
local RootTab = getroottable();
|
||||
if (!RootTab.rawin("Shapeshifting_Obj")) {
|
||||
RootTab.rawset("Shapeshifting_Obj", true);
|
||||
LenheartNewUI_CreateWindow(ShapeshiftingC, "时装变身窗口", 430, 500, 28, 28, 0);
|
||||
}
|
||||
}
|
||||
|
||||
getroottable()["LenheartFuncTab"].rawset("ShapeshiftingFuncN", Lenheart_Shapeshifting_Fun);
|
||||
Reference in New Issue
Block a user