696 lines
29 KiB
Plaintext
696 lines
29 KiB
Plaintext
|
|
/*
|
||
|
|
文件名:FiendwarFightSituation.nut
|
||
|
|
路径:Plugins/Fiendwar/FiendwarFightSituation.nut
|
||
|
|
创建日期:2024-04-10 21:28
|
||
|
|
文件用途:超时空攻坚战况
|
||
|
|
*/
|
||
|
|
|
||
|
|
//复选框
|
||
|
|
class Fiendwar_LenheartNewUI_SwitchButton extends LenheartNewUI_CommonUi {
|
||
|
|
//透明度
|
||
|
|
AlphaValue = 1.0;
|
||
|
|
State = 0;
|
||
|
|
ImgIndex = null;
|
||
|
|
|
||
|
|
constructor(X, Y) {
|
||
|
|
LenheartNewUI_CommonUi.constructor(X, Y, 14, 15);
|
||
|
|
}
|
||
|
|
|
||
|
|
function SyncAlpha(Value) {
|
||
|
|
AlphaValue = Value;
|
||
|
|
}
|
||
|
|
|
||
|
|
function Show(obj) {
|
||
|
|
//不可用
|
||
|
|
if (State == 8) {
|
||
|
|
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 3 : 141, X, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
} else {
|
||
|
|
//悬停
|
||
|
|
if (isLBDown) {
|
||
|
|
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
}
|
||
|
|
//按下
|
||
|
|
else if (isInRect) {
|
||
|
|
if (State == 0)
|
||
|
|
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 1 : 139, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
if (State == 1)
|
||
|
|
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
}
|
||
|
|
//普通
|
||
|
|
else {
|
||
|
|
if (State == 0)
|
||
|
|
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex : 138, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
if (State == 1)
|
||
|
|
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
class Fiendwar_LenheartNewUI_ProgressIndicator extends LenheartNewUI_CommonUi {
|
||
|
|
//透明度
|
||
|
|
AlphaValue = 1.0;
|
||
|
|
//宽
|
||
|
|
DWidth = null;
|
||
|
|
//控制者
|
||
|
|
Controller = 0;
|
||
|
|
//回调函数
|
||
|
|
OnChangeControl = null;
|
||
|
|
//球的偏移 因为除不尽 所以这个最好单独写
|
||
|
|
BXposOffset = 0;
|
||
|
|
|
||
|
|
constructor(X, Y, W, H) {
|
||
|
|
this.DWidth = W;
|
||
|
|
LenheartNewUI_CommonUi.constructor(X, Y, W, H);
|
||
|
|
}
|
||
|
|
|
||
|
|
function Show(obj) {
|
||
|
|
//绘制左
|
||
|
|
L_sq_DrawImg("hud/fiendwarl.img", 19, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
|
||
|
|
local OffserIndex = 0;
|
||
|
|
//绘制中
|
||
|
|
for (local i = 0; i< this.DWidth; i++) {
|
||
|
|
if (i > (Controller * this.DWidth).tointeger())
|
||
|
|
OffserIndex = 0;
|
||
|
|
else OffserIndex = 1;
|
||
|
|
L_sq_DrawImg("hud/fiendwarl.img", 21 + OffserIndex, X + 8 + i, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
}
|
||
|
|
//绘制右
|
||
|
|
L_sq_DrawImg("hud/fiendwarl.img", 20, X + 8 + this.DWidth, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
|
||
|
|
// local BXposOffset = 0;
|
||
|
|
// if (BaseX && EndX) BXposOffset = EndX - BaseX;
|
||
|
|
//绘制球
|
||
|
|
L_sq_DrawImg("hud/fiendwarl.img", 23, X + BXposOffset + 1, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
}
|
||
|
|
|
||
|
|
//按下时的基准X
|
||
|
|
BaseX = null;
|
||
|
|
EndX = null;
|
||
|
|
//鼠标左键按下回调
|
||
|
|
function OnMouseLbDown(MousePos_X, MousePos_Y) {
|
||
|
|
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X + BXposOffset + 1, Y + 1, 15, 14)) {
|
||
|
|
isLBDown = true;
|
||
|
|
if (!BaseX) BaseX = MousePos_X;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//鼠标事件回调
|
||
|
|
function OnMouseProc(Flag, MousePos_X, MousePos_Y) {
|
||
|
|
if (isLBDown && Flag == 1) {
|
||
|
|
if (MousePos_X > (X + DWidth + 8))
|
||
|
|
MousePos_X = (X + DWidth + 8);
|
||
|
|
else if (MousePos_X<(X + 8))
|
||
|
|
MousePos_X = (X + 8);
|
||
|
|
EndX = MousePos_X;
|
||
|
|
if (BaseX && EndX) {
|
||
|
|
BXposOffset = EndX - BaseX;
|
||
|
|
Controller = BXposOffset.tofloat() / DWidth.tofloat();
|
||
|
|
AlphaValue = Controller;
|
||
|
|
if (AlphaValue< 0.4) AlphaValue = 0.4;
|
||
|
|
if (OnChangeControl) OnChangeControl(Controller);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//鼠标左键弹起回调
|
||
|
|
function OnMouseLbUp(MousePos_X, MousePos_Y) {
|
||
|
|
isLBDown = false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
class FiendwarFightSituationC extends LenheartNewUI_Windows {
|
||
|
|
|
||
|
|
Visible = false;
|
||
|
|
//调试模式
|
||
|
|
// DeBugMode = true;
|
||
|
|
//透明度
|
||
|
|
AlphaValue = 1.0;
|
||
|
|
//简易战况表复选框
|
||
|
|
BaseSituationBtn = null;
|
||
|
|
//简易战况表是否开启
|
||
|
|
BaseSituationFlag = 0;
|
||
|
|
|
||
|
|
//雷达是否存在
|
||
|
|
RadarFlag = true;
|
||
|
|
//turret2
|
||
|
|
turret2 = true;
|
||
|
|
|
||
|
|
MonsterFace = {
|
||
|
|
m20413 = 1,
|
||
|
|
m20412 = 3,
|
||
|
|
m20411 = 4,
|
||
|
|
m20415 = 15,
|
||
|
|
m20408 = 9,
|
||
|
|
m20409 = 8,
|
||
|
|
m20405 = 5,
|
||
|
|
m20404 = 6,
|
||
|
|
m20406 = 12,
|
||
|
|
m20401 = 13,
|
||
|
|
m20402 = 10,
|
||
|
|
m20403 = 11,
|
||
|
|
};
|
||
|
|
|
||
|
|
SlotPos = [
|
||
|
|
[50, 479],
|
||
|
|
[50, 374],
|
||
|
|
[50, 270],
|
||
|
|
[140, 167],
|
||
|
|
[186, 89],
|
||
|
|
[275, 36],
|
||
|
|
[275, 141],
|
||
|
|
[411, 11],
|
||
|
|
[365, 88],
|
||
|
|
[455, 141],
|
||
|
|
[545, 36],
|
||
|
|
|
||
|
|
[141, 427],
|
||
|
|
[185, 348],
|
||
|
|
[185, 245],
|
||
|
|
[321, 271],
|
||
|
|
[411, 219],
|
||
|
|
[546, 245],
|
||
|
|
[591, 166],
|
||
|
|
|
||
|
|
[141, 530],
|
||
|
|
[276, 505],
|
||
|
|
[320, 375],
|
||
|
|
[410, 478],
|
||
|
|
[546, 504],
|
||
|
|
[456, 401],
|
||
|
|
[681, 478],
|
||
|
|
[545, 348],
|
||
|
|
[680, 374],
|
||
|
|
[725, 244],
|
||
|
|
|
||
|
|
[690, 53],
|
||
|
|
[727, 129],
|
||
|
|
]
|
||
|
|
|
||
|
|
|
||
|
|
Info = null;
|
||
|
|
PackCurT = null;
|
||
|
|
EndTime = null;
|
||
|
|
|
||
|
|
function InfoCallBack(Chunk) {
|
||
|
|
// print(Chunk);
|
||
|
|
local Jso = Json.Decode(Chunk);
|
||
|
|
Info = Jso.fightInfo.platVos;
|
||
|
|
EndTime = Jso.fightInfo.endTime;
|
||
|
|
RadarFlag = Jso.fightInfo.radar;
|
||
|
|
turret2 = Jso.fightInfo.turret2;
|
||
|
|
FiendwarTotal.GetInstance().EndTime = Jso.fightInfo.endTime;
|
||
|
|
local Pt = Clock();
|
||
|
|
PackCurT = Pt;
|
||
|
|
FiendwarTotal.GetInstance().PackCurT = Pt;
|
||
|
|
|
||
|
|
local Win = LenheartNewUI_CreateWindow(FiendwarPartyInfoC, "超时空我的队伍窗口", 430, 15, 354, 290, 18);
|
||
|
|
Win.CloseWindow();
|
||
|
|
local Win = LenheartNewUI_CreateWindow(FiendwarHallC, "超时空攻坚队伍列表", 320, 40, 478, 434, 18);
|
||
|
|
Win.CloseWindow();
|
||
|
|
}
|
||
|
|
|
||
|
|
//收到进入BOSS请求包
|
||
|
|
function GoBossCallBack(Chunk) {
|
||
|
|
local Jso = Json.Decode(Chunk);
|
||
|
|
local Win = LenheartNewUI_CreateWindow(FiendwarHallGoBossDgnC, "超时空攻坚进入罗什", 273, 225, 270, 120, 19);
|
||
|
|
Win.Visible = true;
|
||
|
|
Win.Dark = Jso.boss1;
|
||
|
|
Win.Light = Jso.boss2;
|
||
|
|
Win.RegisterWidget();
|
||
|
|
}
|
||
|
|
|
||
|
|
PlayerGiveUpTime = null;
|
||
|
|
PlayerGiveUpFlagTime = null;
|
||
|
|
//放弃副本包
|
||
|
|
function PlayerGiveUpCallBack(Chunk) {
|
||
|
|
local Jso = Json.Decode(Chunk);
|
||
|
|
PlayerGiveUpTime = Jso.endTime;
|
||
|
|
PlayerGiveUpFlagTime = Clock();
|
||
|
|
}
|
||
|
|
|
||
|
|
function GetInfo() {
|
||
|
|
local T = {
|
||
|
|
op = 20063053,
|
||
|
|
// teamsId = FiendwarTotal.GetInstance().MyPartyId
|
||
|
|
}
|
||
|
|
Rindro_BaseToolClass.SendPackEx(T);
|
||
|
|
}
|
||
|
|
|
||
|
|
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||
|
|
Childrens = [];
|
||
|
|
//注册控件
|
||
|
|
RegisterWidget();
|
||
|
|
|
||
|
|
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||
|
|
|
||
|
|
Pack_Control.rawset(20063016, InfoCallBack.bindenv(this));
|
||
|
|
Pack_Control.rawset(20063022, GoBossCallBack.bindenv(this));
|
||
|
|
Pack_Control.rawset(20063024, PlayerGiveUpCallBack.bindenv(this));
|
||
|
|
|
||
|
|
GetInfo();
|
||
|
|
}
|
||
|
|
|
||
|
|
function RegisterWidget() {
|
||
|
|
//关闭按钮
|
||
|
|
local CloseButton = LenheartNewUI_BaseButton(770, 0, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
|
||
|
|
CloseButton.OnClick = function() {
|
||
|
|
local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationSwitchC, "超时空战况表开关", 770, 9, 30, 30, 0);
|
||
|
|
Win.ResetFocus();
|
||
|
|
this.Visible = false;
|
||
|
|
}.bindenv(this);
|
||
|
|
Childrens.append(CloseButton);
|
||
|
|
|
||
|
|
local PIButton = Fiendwar_LenheartNewUI_ProgressIndicator(264, 11, 80, 10);
|
||
|
|
PIButton.Controller = 1.0;
|
||
|
|
PIButton.BaseX = 273;
|
||
|
|
PIButton.EndX = 352;
|
||
|
|
PIButton.BXposOffset = 79;
|
||
|
|
PIButton.OnChangeControl = function(Controller) {
|
||
|
|
AlphaValue = Controller;
|
||
|
|
if (AlphaValue< 0.4) AlphaValue = 0.4;
|
||
|
|
}.bindenv(this);
|
||
|
|
Childrens.append(PIButton);
|
||
|
|
|
||
|
|
|
||
|
|
//简易战况表复选框
|
||
|
|
BaseSituationBtn = Fiendwar_LenheartNewUI_SwitchButton(198, 9);
|
||
|
|
BaseSituationBtn.State = 0;
|
||
|
|
BaseSituationBtn.ImgIndex = 358;
|
||
|
|
BaseSituationBtn.Width = 19;
|
||
|
|
BaseSituationBtn.Height = 19;
|
||
|
|
BaseSituationBtn.OnClick = function() {
|
||
|
|
switch (BaseSituationFlag) {
|
||
|
|
case 0:
|
||
|
|
BaseSituationFlag = 1;
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
BaseSituationFlag = 0;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
BaseSituationBtn.State = BaseSituationFlag;
|
||
|
|
}.bindenv(this);
|
||
|
|
AddChild(BaseSituationBtn);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
//绘制简易动态Ani // obj -- ani路径 -- X -- Y -- ani名字
|
||
|
|
function T_DrawDynamicAni(obj, aniFileName, x, y, aniname, Alpha) {
|
||
|
|
local ani = obj.getVar().GetAnimationMap(aniname, aniFileName);
|
||
|
|
ani.setRGBA(255, 255, 255, Alpha);
|
||
|
|
sq_AnimationProc(ani);
|
||
|
|
sq_drawCurrentFrame(ani, x, y, true);
|
||
|
|
return ani;
|
||
|
|
}
|
||
|
|
|
||
|
|
function DrawParty() {
|
||
|
|
//绘制我的队伍
|
||
|
|
if (FiendwarTotal.GetInstance().MyTeam) {
|
||
|
|
local Mt = FiendwarTotal.GetInstance().MyTeam;
|
||
|
|
if (!Mt) return;
|
||
|
|
local PartyMaster;
|
||
|
|
foreach(index, PartyMasterIcon in Mt.MembersList) {
|
||
|
|
local XOffset = 0;
|
||
|
|
local YOffset = 9 + (index * 22);
|
||
|
|
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/partyseatnumber.img", 0, X + XOffset + 10, Y + YOffset);
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/partyseatnumber.img", PartyMasterIcon.InfoObj.TeamId, X + XOffset + 10, Y + YOffset + 1);
|
||
|
|
|
||
|
|
sq_DrawBox(X + 30 + XOffset, Y + 1 + YOffset, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]);
|
||
|
|
|
||
|
|
//绘制队长头像
|
||
|
|
foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) {
|
||
|
|
local AXpos = AvatarObj.D[0] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + XOffset - 12;
|
||
|
|
local AYpos = AvatarObj.D[1] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + YOffset;
|
||
|
|
setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切
|
||
|
|
DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos);
|
||
|
|
releaseClip(); //裁切结束
|
||
|
|
}
|
||
|
|
local RgbaValue = sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger());
|
||
|
|
if (PartyMasterIcon.InfoObj.Captain) RgbaValue = sq_RGBA(247, 214, 90, (250 * AlphaValue).tointeger());
|
||
|
|
if (PartyMasterIcon.InfoObj.Captain) DrawImg("hud/fiendwarl.img", 18, X + 42 + XOffset, Y + 1 + YOffset);
|
||
|
|
|
||
|
|
local DrawName = PartyMasterIcon.InfoObj.Name;
|
||
|
|
if (PlayerGiveUpTime && PlayerGiveUpTime[index]) {
|
||
|
|
local STime = ((PlayerGiveUpTime[index] - (Clock() - PlayerGiveUpFlagTime)) / 1000);
|
||
|
|
DrawName = "复活时间: " + STime.tostring() + "秒";
|
||
|
|
if (STime <= 0) DrawName = PartyMasterIcon.InfoObj.Name;
|
||
|
|
}
|
||
|
|
//绘制名字
|
||
|
|
L_sq_DrawCode(DrawName, X + XOffset + 58, Y + YOffset + 4, RgbaValue, 0, 1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//绘制主界面
|
||
|
|
function DrawMain(obj) {
|
||
|
|
//绘制背景框
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 0, X + 7, Y);
|
||
|
|
//绘制建议进度表文字
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 71, X + 130, Y + 10);
|
||
|
|
|
||
|
|
//绘制透明度文字
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 72, X + 220, Y + 10);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
DrawParty();
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
//Boss底层特效
|
||
|
|
T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/boss_effect.ani", X + 720, Y + 110, "超时空战况表背景图BOSS区域", (250 * AlphaValue).tointeger());
|
||
|
|
|
||
|
|
//下路特效
|
||
|
|
Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linebottom.ani", X + 7, Y, "超时空战况表背景图下路特效B");
|
||
|
|
//中路特效
|
||
|
|
Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linemiddle.ani", X + 7, Y, "超时空战况表背景图中路特效B");
|
||
|
|
//上路特效
|
||
|
|
Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linetop.ani", X + 7, Y, "超时空战况表背景图上路特效B");
|
||
|
|
|
||
|
|
//绘制地图
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 64, X + 7, Y + 1);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
if (Info) {
|
||
|
|
foreach(Index, Value in Info) {
|
||
|
|
if (Value.id != -1) {
|
||
|
|
//裁切比例
|
||
|
|
local SliceRate = 0;
|
||
|
|
if (Value.e && Value.s) {
|
||
|
|
SliceRate = (Value.e.tofloat() - (Clock().tofloat() - PackCurT.tofloat())) / Value.s.tofloat();
|
||
|
|
}
|
||
|
|
//BOSS暗
|
||
|
|
if (Value.id == 28) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 60, X - 68 + SlotPos[Value.id][0], Y - 56 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
//BOSS光
|
||
|
|
else if (Value.id == 29) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 61, X - 68 + SlotPos[Value.id][0], Y - 56 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
//兵营
|
||
|
|
else if (Value.id == 10 || Value.id == 17 || Value.id == 27) {
|
||
|
|
local Offset = 0;
|
||
|
|
if (!Value.m) Offset = 7;
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 5 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
|
||
|
|
//复活
|
||
|
|
if (!Value.m) {
|
||
|
|
if (SliceRate != 0) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 55, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
|
||
|
|
DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//生成小怪
|
||
|
|
else {
|
||
|
|
if (SliceRate != 0) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 54, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
|
||
|
|
DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//前哨
|
||
|
|
else if (Value.id == 7 || Value.id == 15 || Value.id == 24) {
|
||
|
|
local Offset = 0;
|
||
|
|
if (!Value.m) Offset = 7;
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 4 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
|
||
|
|
|
||
|
|
if (SliceRate != 0) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 54, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
|
||
|
|
DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
|
||
|
|
} else if (Value.id == 6 || Value.id == 23) {
|
||
|
|
//雷达
|
||
|
|
if (Value.id == 6) {
|
||
|
|
local Offset = 0;
|
||
|
|
if (!Value.m) Offset = 7;
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 2 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
//炮塔
|
||
|
|
else if (Value.id == 23) {
|
||
|
|
local Offset = 0;
|
||
|
|
if (!Value.m) Offset = 7;
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 3 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
//基地和出发点一定有框
|
||
|
|
if (Value.id == 0 || Value.id == 1 || Value.id == 11 || Value.id == 18) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
|
||
|
|
//基地两边都画
|
||
|
|
if (Value.id == 0) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X - 30 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X + 33 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
//有怪物
|
||
|
|
if (Value.m || Value.n) {
|
||
|
|
if (Value.m) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 27, X + 36 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
|
||
|
|
//如果不是这些 那就是移动怪 并且活着
|
||
|
|
if (Value.id != 10 && Value.id != 17 && Value.id != 27 && Value.id != 28 && Value.id != 29 && Value.id != 7 && Value.id != 15 && Value.id != 24 && Value.id != 6 && Value.id != 23 && !Value.n) {
|
||
|
|
//没人打
|
||
|
|
if (Value.u.len()< 1) {
|
||
|
|
if (SliceRate != 0) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 56, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
|
||
|
|
DrawProgress(52, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//战斗中
|
||
|
|
else {
|
||
|
|
if (SliceRate != 0) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 53, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
|
||
|
|
DrawProgress(49, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else if (Value.n) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 59, X + 36 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/monsterface.img", 14, X + 37 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 98, X + 38 + SlotPos[Value.id][0], Y + 37 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//如果有玩家
|
||
|
|
if (Value.u.len() >= 1) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X - 30 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
|
||
|
|
|
||
|
|
//说明有战斗
|
||
|
|
if (Value.m) {
|
||
|
|
//战斗特效
|
||
|
|
T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/hexagon_ef_red.ani", X - 32 + SlotPos[Value.id][0], Y - 25 + SlotPos[Value.id][1], "超时空战况表战斗方格", (250 * AlphaValue).tointeger());
|
||
|
|
} else {
|
||
|
|
//TODO 这里判断有没有商人 没有商人画绿色 有画黄色
|
||
|
|
T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/hexagon_ef_green.ani", X - 32 + SlotPos[Value.id][0], Y - 25 + SlotPos[Value.id][1], "超时空战况表安全方格", (250 * AlphaValue).tointeger());
|
||
|
|
}
|
||
|
|
//绘制队伍编号
|
||
|
|
foreach(index, pos in Value.u) {
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 28 + pos, X - 24 + SlotPos[Value.id][0], Y + (index * 11) + 2 + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
//雷达死完要绘制怪物头像
|
||
|
|
if (!RadarFlag) {
|
||
|
|
if (Value.m || Value.n) {
|
||
|
|
local ImgIndex = 0;
|
||
|
|
if (Value.m && MonsterFace.rawin("m" + Value.m)) ImgIndex = MonsterFace["m" + Value.m];
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/monsterface.img", ImgIndex, X + 37 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
DrawFightTime(obj);
|
||
|
|
}
|
||
|
|
|
||
|
|
function DrawImg(Path, Index, XPos, YPos) {
|
||
|
|
L_sq_DrawImg(Path, Index, XPos, YPos, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
|
||
|
|
}
|
||
|
|
|
||
|
|
function DrawProgress(Index, SliceRate, X, Y) {
|
||
|
|
if (!turret2) return;
|
||
|
|
if (RadarFlag) SliceRate = 1.0;
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 48, X, Y);
|
||
|
|
setClip(X, Y, X + (SliceRate * 61.0).tointeger(), Y + 3); //开始裁切
|
||
|
|
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", Index, X, Y);
|
||
|
|
releaseClip(); //裁切结束
|
||
|
|
}
|
||
|
|
|
||
|
|
function Show(obj) {
|
||
|
|
DrawMain(obj);
|
||
|
|
LenheartNewUI_Windows.Show(obj);
|
||
|
|
}
|
||
|
|
|
||
|
|
//攻坚时间
|
||
|
|
function DrawFightTime(obj) {
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 47, X + 576, Y - 9);
|
||
|
|
if (EndTime) {
|
||
|
|
local RealTime = EndTime - (Clock() - PackCurT);
|
||
|
|
|
||
|
|
local seconds = RealTime / 1000;
|
||
|
|
local hours = seconds / 3600;
|
||
|
|
local minutes = seconds / 60;
|
||
|
|
|
||
|
|
seconds %= 60;
|
||
|
|
hours = format("%02d", hours);
|
||
|
|
seconds = format("%02d", seconds).slice(-2);
|
||
|
|
minutes = format("%02d", minutes).slice(-2);
|
||
|
|
|
||
|
|
local Offset = 0;
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(1).tointeger(), X + 669 + Offset, Y + 2);
|
||
|
|
Offset += 38;
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(1).tointeger(), X + 669 + Offset, Y + 2);
|
||
|
|
Offset += 38;
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(1).tointeger(), X + 669 + Offset, Y + 2);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
MainButton = null;
|
||
|
|
//逻辑入口
|
||
|
|
function Proc(obj) {
|
||
|
|
//在基地
|
||
|
|
if (L_sq_GetRegionIndex() == 2) DrawParty();
|
||
|
|
|
||
|
|
if (getroottable().rawin("FiendwarTotal") && FiendwarTotal.GetInstance().EndTime) {
|
||
|
|
DrawFightTime(obj);
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 13, X + 770, Y);
|
||
|
|
}
|
||
|
|
|
||
|
|
// //界面未打开
|
||
|
|
// if (!this.Visible) {
|
||
|
|
// //在甲板
|
||
|
|
// if (FiendwarTotal.GetInstance().BaseConfig && FiendwarTotal.GetInstance().BaseConfig.channel_index.find("20") && L_sq_GetTownIndex() == FiendwarTotal.GetInstance().BaseConfig.town_index && L_sq_GetRegionIndex() >= 1) {
|
||
|
|
// if (!MainButton) {
|
||
|
|
// MainButton = LenheartBaseButton(X + 770, Y, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
|
||
|
|
// } else {
|
||
|
|
// MainButton.Show();
|
||
|
|
// if (MainButton.isLBActive()) {
|
||
|
|
// this.Visible = true;
|
||
|
|
// GetInfo();
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
LenheartNewUI_Windows.SyncPos(X, Y);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/*
|
||
|
|
文件名:FiendwarHallCreateParty.nut
|
||
|
|
路径:Plugins/Fiendwar/FiendwarHallCreateParty.nut
|
||
|
|
创建日期:2024-03-18 13:20
|
||
|
|
文件用途:
|
||
|
|
*/
|
||
|
|
|
||
|
|
|
||
|
|
class FiendwarFightSituationSwitchC extends LenheartNewUI_Windows {
|
||
|
|
//调试模式
|
||
|
|
// DeBugMode = true;
|
||
|
|
|
||
|
|
//不要窗口模式
|
||
|
|
NoWindow = true;
|
||
|
|
|
||
|
|
function GetInfo() {
|
||
|
|
local T = {
|
||
|
|
op = 20063053,
|
||
|
|
// teamsId = FiendwarTotal.GetInstance().MyPartyId
|
||
|
|
}
|
||
|
|
Rindro_BaseToolClass.SendPackEx(T);
|
||
|
|
}
|
||
|
|
|
||
|
|
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||
|
|
Childrens = [];
|
||
|
|
|
||
|
|
//关闭按钮
|
||
|
|
local CloseButton = LenheartNewUI_BaseButton(0, 0, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
|
||
|
|
CloseButton.OnClick = function() {
|
||
|
|
local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationC, "超时空攻坚战况表", 0, 8, 800, 600, 0);
|
||
|
|
Win.Visible = true;
|
||
|
|
Win.ResetFocus();
|
||
|
|
GetInfo();
|
||
|
|
}.bindenv(this);
|
||
|
|
AddChild(CloseButton);
|
||
|
|
|
||
|
|
|
||
|
|
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||
|
|
}
|
||
|
|
|
||
|
|
//绘制主界面
|
||
|
|
function DrawMain(obj) {
|
||
|
|
if (FiendwarTotal.GetInstance().EndTime)
|
||
|
|
DrawFightTime(obj);
|
||
|
|
}
|
||
|
|
|
||
|
|
//攻坚时间
|
||
|
|
function DrawFightTime(obj) {
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 47, X + 576, Y - 9);
|
||
|
|
if (FiendwarTotal.GetInstance().EndTime) {
|
||
|
|
local RealTime = FiendwarTotal.GetInstance().EndTime - (Clock() - FiendwarTotal.GetInstance().PackCurT);
|
||
|
|
|
||
|
|
local seconds = RealTime / 1000;
|
||
|
|
local hours = seconds / 3600;
|
||
|
|
local minutes = seconds / 60;
|
||
|
|
|
||
|
|
seconds %= 60;
|
||
|
|
hours = format("%02d", hours);
|
||
|
|
seconds = format("%02d", seconds).slice(-2);
|
||
|
|
minutes = format("%02d", minutes).slice(-2);
|
||
|
|
|
||
|
|
local Offset = 0;
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(1).tointeger(), X + 669 + Offset, Y + 2);
|
||
|
|
Offset += 38;
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(1).tointeger(), X + 669 + Offset, Y + 2);
|
||
|
|
Offset += 38;
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
|
||
|
|
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(1).tointeger(), X + 669 + Offset, Y + 2);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function CloseWindow() {
|
||
|
|
// print(1233);
|
||
|
|
// local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationSwitchC, "超时空战况表开关", 770, 9, 30, 30, 0);
|
||
|
|
// Win.Visible = true;
|
||
|
|
// Win.ResetFocus();
|
||
|
|
// LenheartNewUI_Windows.CloseWindow();
|
||
|
|
}
|
||
|
|
|
||
|
|
function Show(obj) {
|
||
|
|
DrawMain(obj);
|
||
|
|
LenheartNewUI_Windows.Show(obj);
|
||
|
|
}
|
||
|
|
|
||
|
|
//逻辑入口
|
||
|
|
function Proc(obj) {
|
||
|
|
if (!FiendwarTotal.GetInstance().EndTime) {
|
||
|
|
Visible = false;
|
||
|
|
} else {
|
||
|
|
Visible = true;
|
||
|
|
}
|
||
|
|
LenheartNewUI_Windows.SyncPos(X, Y);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
LenheartNewUI_CreateWindow(FiendwarFightSituationC, "超时空攻坚战况表", 0, 8, 800, 600, 0);
|