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