111
This commit is contained in:
140
Project/HellExLogic/HellExLogic.nut
Normal file
140
Project/HellExLogic/HellExLogic.nut
Normal file
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
文件名:HellExLogic.nut
|
||||
路径:Project/HellExLogic/HellExLogic.nut
|
||||
创建日期:2024-08-09 11:11
|
||||
文件用途:
|
||||
*/
|
||||
class HellExLogicC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
Visible = true;
|
||||
|
||||
//被击数
|
||||
HitCount = 0;
|
||||
|
||||
//总被击次数
|
||||
MaxHitCount = 50;
|
||||
|
||||
//深渊派对难度
|
||||
Difficulty = 1;
|
||||
|
||||
//难度文字数组
|
||||
DifficultyStr = ["未开启深渊", "非常困难", "困难"];
|
||||
|
||||
//深渊状态 0进行 1成功 2失败
|
||||
HellState = 0;
|
||||
|
||||
|
||||
function OpenWindowCallBack(Chunk) {
|
||||
local Jso = Json.Decode(Chunk);
|
||||
MaxHitCount = Jso.HitCounts;
|
||||
Difficulty = Jso.Diff;
|
||||
HitCount = 0;
|
||||
HellState = 0;
|
||||
Visible = true;
|
||||
ResetFocus();
|
||||
}
|
||||
|
||||
function HitSucCallBack(Chunk) {
|
||||
local obj = sq_getMyCharacter();
|
||||
obj = sq_GetCNRDObjectToActiveObject(obj);
|
||||
sq_SendCreatePassiveObjectPacket(obj, 85905, 100, 0, 0, 0, obj.getDirection());
|
||||
try {
|
||||
onHellDungeonHitCountMax(obj, Difficulty);
|
||||
} catch (exception) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function HellFail(Chunk) {
|
||||
HellState = 2;
|
||||
}
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
|
||||
//开启界面回包
|
||||
Pack_Control.rawset(20069006, OpenWindowCallBack.bindenv(this));
|
||||
//击打次数到了
|
||||
Pack_Control.rawset(20069004, HitSucCallBack.bindenv(this));
|
||||
//深渊派对失败
|
||||
Pack_Control.rawset(20069008, HellFail.bindenv(this));
|
||||
|
||||
getroottable().sq_SendHitConfirmPacket <- HitLogic.bindenv(this);
|
||||
}
|
||||
|
||||
function RegisterWidget() {
|
||||
//关闭按钮
|
||||
local CloseButton = LenheartNewUI_BaseButton(278, 8, 11, 12, "interface/windowcommon.img", 276);
|
||||
CloseButton.OnClick = function() {
|
||||
this.Visible = false;
|
||||
}.bindenv(this);
|
||||
Childrens.append(CloseButton);
|
||||
}
|
||||
|
||||
//HitLogic
|
||||
function HitLogic() {
|
||||
if (HellState == 2) return;
|
||||
local T = {
|
||||
op = 20069003
|
||||
}
|
||||
SendPackEx(T);
|
||||
HitCount++;
|
||||
}
|
||||
|
||||
//绘制主界面
|
||||
function DrawMain(obj) {
|
||||
//Item信息框一般为211的宽度
|
||||
L_sq_DrawWindow(X, Y, 260, 80, "interface/windowcommon.img", 204, 4, 14, 4, 14);
|
||||
|
||||
L_sq_DrawCode("封印之门的进展情况", X + 82, Y + 12, sq_RGBA(230, 200, 155, 250), 1, 1);
|
||||
L_sq_DrawCode("- 被击数", X + 6, Y + 40, sq_RGBA(230, 200, 155, 250), 1, 1);
|
||||
L_sq_DrawCode("- 深渊派对难度:", X + 6, Y + 58, sq_RGBA(230, 200, 155, 250), 1, 1);
|
||||
|
||||
local Color = sq_RGBA(230, 200, 155, 250);
|
||||
if (HitCount >= MaxHitCount) Color = sq_RGBA(255, 50, 50, 250);
|
||||
local HitStr = HitCount + "/" + MaxHitCount;
|
||||
L_sq_DrawCode(HitStr, X + 254 - LenheartTextClass.GetStringLength(HitStr), Y + 40, Color, 1, 1);
|
||||
L_sq_DrawCode(DifficultyStr[Difficulty], X + 254 - LenheartTextClass.GetStringLength(DifficultyStr[Difficulty]), Y + 58, sq_RGBA(255, 50, 50, 250), 1, 1);
|
||||
|
||||
if (HellState == 2) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
|
||||
}
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
//如果不在副本中
|
||||
if (sq_GetCurrentModuleType() == 1) {
|
||||
if (Visible) CloseWindow();
|
||||
}
|
||||
LenheartNewUI_Windows.SyncPos(X, Y);
|
||||
}
|
||||
|
||||
}
|
||||
getroottable().rawdelete("HellExLogic_Obj");
|
||||
|
||||
function Lenheart_HellExLogic_Fun(obj) {
|
||||
local RootTab = getroottable();
|
||||
if (!RootTab.rawin("HellExLogic_Obj")) {
|
||||
RootTab.rawset("HellExLogic_Obj", true);
|
||||
LenheartNewUI_CreateWindow(HellExLogicC, "深渊派对特殊逻辑窗口", ((getroottable().Rindro_Scr_Width - 261)).tointeger(), 64, 260, 80, 80);
|
||||
}
|
||||
}
|
||||
|
||||
getroottable()["LenheartFuncTab"].rawset("HellExLogicFuncN", Lenheart_HellExLogic_Fun);
|
||||
Reference in New Issue
Block a user