/* 文件名:Fiendwar.nut 路径:Project/Fiendwar/Fiendwar.nut 创建日期:2024-11-16 20:19 文件用途: */ dofile("sqr/Project/Fiendwar/FiendwarHall.nut"); //大厅 dofile("sqr/Project/Fiendwar/FiendwarHallParty.nut"); //大厅的队伍 dofile("sqr/Project/Fiendwar/FiendwarPartyInfo.nut"); //攻坚队具体信息窗口 dofile("sqr/Project/Fiendwar/FiendwarPartyMemberInfo.nut"); //攻坚队具体信息中的队员信息UI dofile("sqr/Project/Fiendwar/FiendwarPlayerInteractive.nut"); //攻坚队玩家交互 dofile("sqr/Project/Fiendwar/FiendwarPartyFormation.nut"); //攻坚队具体信息中的编队 dofile("sqr/Project/Fiendwar/FiendwarHallCreateParty.nut"); dofile("sqr/Project/Fiendwar/FiendwarHallApplyJoin.nut"); dofile("sqr/Project/Fiendwar/FiendwarFightSituation.nut"); //战况表 dofile("sqr/Project/Fiendwar/FiendwarHallGoBossDgn.nut"); //前往BOSS框 dofile("sqr/Project/Fiendwar/FiendwarNoti.nut"); //超时空信息分发 dofile("sqr/Project/Fiendwar/FiendReward.nut"); //超时空奖励 dofile("sqr/Project/Fiendwar/FiendFightLogic.nut"); //战斗逻辑 class FiendwarTotal extends Rindro_BaseToolClass { //基础配置 BaseConfig = null; /* town_index 城镇编号 channel_index 频道编号 */ //我的客户端cid MyCid = null; //我的攻坚队ID MyPartyId = null; //我是否是攻坚队队长 IsCaptain = null; //我的队伍 MyTeam = null; //开始攻坚动画 StartAniFlag = false; //攻坚结束时间 EndTime = null; PackCurT = null; //全局获取对象方法 function GetInstance() { if (getroottable().rawin("FiendwarCObj")) return getroottable()["FiendwarCObj"]; else { local RootTab = getroottable(); local Cobj = FiendwarTotal(); RootTab.rawset("FiendwarCObj", Cobj); Cobj.InitWindow(); return Cobj; } } //请求基础信息配置 function GetFiendwarBase() { local T = { op = 20063501, } SendPack(T); } //请求掉线配置信息 function GetFiendwarDown() { local T = { op = 20063063, } SendPack(T); } //基础信息配置 function FiendwarBase(Chunk) { BaseConfig = Json.Decode(Chunk); FiendwarChannelTownLogicCallBack(); } //团本专属频道上线城镇移动包 function FiendwarChannelTownLogicCallBack() { if (BaseConfig.channel_index.find("20")) { if (L_sq_GetTownIndex() != BaseConfig.town_index) { L_sq_MoveTown(BaseConfig.town_index, 0, 474, 249); } } else { //在超时空区域的 要转移回普通城镇 if (L_sq_GetTownIndex() == BaseConfig.town_index) { L_sq_MoveTown(1, 1, 474, 249); } } } //开团Flag包 function StartFight(Chunk) { FiendwarTotal.GetInstance().StartAniFlag = true; } FiendwarHallC_Window = null; FiendwarFightSituationSwitchC_Window = null; FiendwarNotiC_Window = null; FiendRewardC_Window = null; FiendFightLogicC_Object = null; constructor() { //获取基础配置回调包 Pack_Control.rawset(20063502, FiendwarBase.bindenv(this)); Pack_Control.rawset(20063028, StartFight.bindenv(this)); //第一次上线要重新请求一下位置信息 GetFiendwarBase(); //请求掉线配置信息 GetFiendwarDown(); } //初始化窗口 function InitWindow() { FiendwarHallC_Window = LenheartNewUI_CreateWindow(FiendwarHallC, "超时空攻坚队伍列表", 320, 40, 478, 434, 18); FiendwarFightSituationSwitchC_Window = LenheartNewUI_CreateWindow(FiendwarFightSituationSwitchC, "超时空战况表开关", 770, 9, 30, 30, 0); FiendwarNotiC_Window = LenheartNewUI_CreateWindow(FiendwarNotiC, "超时空攻坚队伍消息分发", 0, 0, 0, 0, 0); FiendRewardC_Window = LenheartNewUI_CreateWindow(FiendRewardC, "超时空奖励界面", 0, 0, 800, 600, 0); FiendFightLogicC_Object = FiendFightLogicC(); } function ClearInfo() { //我的客户端cid MyCid = null; //我的攻坚队ID MyPartyId = null; //我是否是攻坚队队长 IsCaptain = null; //我的队伍 MyTeam = null; //开始攻坚动画 StartAniFlag = false; //攻坚结束时间 EndTime = null; PackCurT = null; } function Proc(obj) { //开始攻坚动画 if (FiendwarTotal.GetInstance().StartAniFlag) { local Ani = Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/common/title/start_back.ani", 400, 260, "超时空开始攻坚Ani1"); if (sq_IsEnd(Ani)) { FiendwarTotal.GetInstance().StartAniFlag = false; sq_Rewind(Ani); } } if (FiendFightLogicC_Object) FiendFightLogicC_Object.Proc(obj); } } getroottable().rawdelete("FiendwarCObj"); function LenheartFiendwar(obj) { local RootTab = getroottable(); if (!RootTab.rawin("FiendwarCObj")) { local Cobj = FiendwarTotal(); RootTab.rawset("FiendwarCObj", Cobj); Cobj.InitWindow(); } else { RootTab["FiendwarCObj"].Proc(obj); } } if (getroottable().rawin("LenheartTopFuncTab")) { getroottable()["LenheartTopFuncTab"].rawset("LenheartFiendwarFunc", LenheartFiendwar); } else { local T = {}; T.rawset("LenheartFiendwarFunc", LenheartFiendwar); getroottable().rawset("LenheartTopFuncTab", T); }