188 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			188 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名: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); | ||
|  | } |