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);
 | |
| } |