2138 lines
108 KiB
Plaintext
2138 lines
108 KiB
Plaintext
/*
|
|
文件名:antondungeoninfo.nut
|
|
路径:Plugins/Luke/antondungeoninfo.nut
|
|
创建日期:2022-09-13 15:21
|
|
文件用途:卢克攻坚中 信息
|
|
*/
|
|
class LukeDungeonInfoControl_C extends BasicsDrawTool {
|
|
X = 0;
|
|
Y = 0;
|
|
State = -1; //卢克攻坚状态
|
|
|
|
FHMAX = null; //最大复活币
|
|
FHNOW = null; //当前复活币
|
|
|
|
PageState = 0; //攻坚信息面板展开状态
|
|
PageCardState = false; //攻坚信息面板查看卡牌状态
|
|
MouseTask = 0; //鼠标类型事件
|
|
|
|
OpenMainButtonObject = null; //展开攻坚信息按钮
|
|
FightMaxTime = null; //剩余时间最大值
|
|
FightTimer = null; //剩余时间计时器
|
|
|
|
PartyMove_SelectDungeon_Button = null; //小队移动选择地下城按钮
|
|
PartyMove_ReturnTown_Button = null; //PartyMove_ReturnTown_Button
|
|
|
|
ReturnTwonFlag = 0; //返回城镇的flag
|
|
|
|
DrawStartAniMark = false; //开始攻坚动画Mark
|
|
|
|
MapTimer = null; //地图时间容器
|
|
MapVar = null; //地图暂存器
|
|
|
|
//1阶段对象
|
|
DanShengObject = null; //诞生圣所对象
|
|
DanShengBuffObject = null; //诞生圣所BUFF对象
|
|
ManYanObject = null; //蔓延圣所对象
|
|
ManYanBuffObject = null; //蔓延圣所BUFF对象
|
|
YanMieObject = null; //湮灭圣所对象
|
|
YanMieBuffObject = null; //湮灭圣所BUFF对象
|
|
|
|
|
|
|
|
JianPaoObject = null; //舰炮防御战对象
|
|
JianPaoTimer = null; //舰炮时间容器对象
|
|
ZhenChan_A_Object = null; //震颤A对象
|
|
ZhenChan_A_Timer = null; //震颤A时间容器对象
|
|
ZhenChan_B_Object = null; //震颤B对象
|
|
ZhenChan_B_Timer = null; //震颤B时间容器对象
|
|
QingTian_A_Object = null; //擎天A对象
|
|
QingTian_B_Object = null; //擎天B对象
|
|
|
|
|
|
//2阶段对象
|
|
|
|
GuangJitanRuKouObject = null; //光祭坛入口对象
|
|
AnJitanRuKouObject = null; //光祭坛入口对象
|
|
|
|
GuangJitanObject = null; //光祭坛对象
|
|
AnJitanObject = null; //暗祭坛对象
|
|
|
|
LiLiangObject = null; //力量祭坛对象
|
|
ZhiHuiObject = null; //智慧祭坛对象
|
|
|
|
|
|
NengYuanKongZhiObject = null; //能源控制对象
|
|
NengYuanKongZhiTimerObject = null; //能源控制时间对象
|
|
|
|
GuangShengDianObject = null; //光圣殿对象
|
|
AnShengDianObject = null; //暗圣殿对象
|
|
|
|
JiXieWangZuoGuangObject = null; //光卢克
|
|
JiXieWangZuoAnObject = null; //暗卢克
|
|
|
|
NengYuanChuCangObject = null; //能源储藏对象
|
|
NengYuanChuCangTimerObject = null; //能源储藏时间对象
|
|
|
|
|
|
NengLiangObject = null; //能源阻截站对象
|
|
HuoShanObject = null; //黑色火山对象
|
|
FuHua1_Object = null; //孵化1对象
|
|
FuHua1_Timer = null; //孵化1时间容器对象
|
|
FuHua2_Object = null; //孵化2对象
|
|
FuHua2_Timer = null; //孵化2时间容器对象
|
|
FuHua3_Object = null; //孵化3对象
|
|
FuHua3_Timer = null; //孵化3时间容器对象
|
|
FuHua4_Object = null; //孵化4对象
|
|
FuHua4_Timer = null; //孵化4时间容器对象
|
|
XinZang_Object = null; //心脏对象
|
|
|
|
MapIndexTable = null; //判断孵化进入的操作表
|
|
MapMoveMark = false; //副本中移动的标志
|
|
HuoShanMonserTable = null; //火山怪物投放表
|
|
|
|
Reward_Object = null; //奖励包
|
|
AllReward_Object = null; //全体奖励包
|
|
Reward_Timer_Object = null; //奖励包时间对象
|
|
Reward_Info = null; //通过时间和复活币使用量
|
|
|
|
//卢克攻坚信息包
|
|
function ReadLukeDungeonInfoPack(chunk) {
|
|
//Sout("\n\n收到卢克攻坚信息包 :\n %L", chunk)
|
|
local RootTab = getroottable();
|
|
BasicsDrawTool.InitClass("LukeDungeonInfoJson"); //自动判断清空
|
|
local JsonObj = Json_STL("LukeDungeonInfoJson");
|
|
RootTab.rawset("LukeDungeonInfoJson", JsonObj);
|
|
RootTab["LukeDungeonInfoJson"].Parse(chunk, 0, false);
|
|
|
|
|
|
//告诉副本类开始计时
|
|
if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) {
|
|
local Cobj = RootTab["LUKEDUNGEONINFOCONTROL"];
|
|
Cobj.FightMaxTime = JsonObj.Get("JiShiQi->GongJian_End_ShiJian");
|
|
if (Cobj.FightTimer) {
|
|
Cobj.FightTimer.Delete();
|
|
}
|
|
|
|
//时间倒计时开始
|
|
Cobj.FightTimer = TimeSTL("FightTimer", Cobj.FightMaxTime);
|
|
Cobj.FightTimer.Reset();
|
|
Cobj.FightTimer.Start();
|
|
|
|
//同步攻坚状态
|
|
Cobj.State = JsonObj.Get("Party_State") - 1;
|
|
|
|
Cobj.FHMAX = JsonObj.Get("ZuiDaFuFuoBi"); //最大复活币
|
|
Cobj.FHNOW = JsonObj.Get("DangQianFuFuoBi"); //当前复活币
|
|
|
|
//一阶段收包机制
|
|
if (Cobj.State == 0) {
|
|
|
|
//诞生圣所收包
|
|
{
|
|
Cobj.DanShengObject = null;
|
|
Cobj.DanShengBuffObject = null;
|
|
Cobj.DanShengBuffObject = [];
|
|
if (JsonObj.Get("DanSheng_State") != false) {
|
|
for (local e = 0; e < 2; e++) {
|
|
Cobj.DanShengBuffObject.append(JsonObj.Get("DanSheng_Buff->" + e));
|
|
}
|
|
//得到副本剩余生命
|
|
local gClearNumber = 3 - JsonObj.Get("DanSheng_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("DanSheng_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.DanShengObject = {
|
|
Name = "dansheng",
|
|
NameImg = 0,
|
|
X = 100,
|
|
Y = 250,
|
|
BloodType = 3,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 1,
|
|
};
|
|
} else {
|
|
Cobj.DanShengObject = {
|
|
Name = "dansheng",
|
|
NameImg = 0,
|
|
X = 100,
|
|
Y = 250,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//蔓延圣所收包
|
|
{
|
|
Cobj.ManYanObject = null;
|
|
Cobj.ManYanBuffObject = null;
|
|
Cobj.ManYanBuffObject = [];
|
|
if (JsonObj.Get("ManYan_State") != false) {
|
|
for (local e = 0; e < 2; e++) {
|
|
Cobj.ManYanBuffObject.append(JsonObj.Get("ManYan_Buff->" + e));
|
|
}
|
|
//得到副本剩余生命
|
|
local gClearNumber = 3 - JsonObj.Get("ManYan_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("ManYan_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("ManYan_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("ManYan_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("ManYan_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("ManYan_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.ManYanObject = {
|
|
Name = "dansheng",
|
|
NameImg = 2,
|
|
X = 490,
|
|
Y = 120,
|
|
BloodType = 3,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 3,
|
|
};
|
|
} else {
|
|
Cobj.ManYanObject = {
|
|
Name = "dansheng",
|
|
NameImg = 2,
|
|
X = 490,
|
|
Y = 120,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//湮灭圣所收包
|
|
{
|
|
Cobj.YanMieObject = null;
|
|
Cobj.YanMieBuffObject = null;
|
|
Cobj.YanMieBuffObject = [];
|
|
if (JsonObj.Get("YanMie_State") != false) {
|
|
for (local e = 0; e < 2; e++) {
|
|
Cobj.YanMieBuffObject.append(JsonObj.Get("YanMie_Buff->" + e));
|
|
}
|
|
//得到副本剩余生命
|
|
local gClearNumber = 3 - JsonObj.Get("YanMie_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("YanMie_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("YanMie_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("YanMie_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("YanMie_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("YanMie_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.YanMieObject = {
|
|
Name = "dansheng",
|
|
NameImg = 1,
|
|
X = 490,
|
|
Y = 380,
|
|
BloodType = 3,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 2,
|
|
};
|
|
} else {
|
|
Cobj.YanMieObject = {
|
|
Name = "dansheng",
|
|
NameImg = 1,
|
|
X = 490,
|
|
Y = 380,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
//诞生圣所收包
|
|
{
|
|
Cobj.DanShengObject = null;
|
|
if (JsonObj.Get("DanSheng_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 4 - JsonObj.Get("DanSheng_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("DanSheng_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("DanSheng_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.DanShengObject = {
|
|
Name = "dansheng",
|
|
NameImg = 0,
|
|
X = 78,
|
|
Y = 330,
|
|
BloodType = 4,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 0,
|
|
};
|
|
} else {
|
|
Cobj.DanShengObject = {
|
|
Name = "dansheng",
|
|
X = 78,
|
|
Y = 330,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//舰炮防御战收包
|
|
{
|
|
Cobj.JianPaoObject = null;
|
|
if (JsonObj.Get("JianPao_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("JianPao_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("JianPao_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("JianPao_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("JianPao_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("JianPao_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("JianPao_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
//如果舰炮时间容器存在则先删除他
|
|
if (Cobj.JianPaoTimer) Cobj.JianPaoTimer.Delete();
|
|
Cobj.JianPaoTimer = null;
|
|
Cobj.JianPaoTimer = TimeSTL("JianPaoTimer", JsonObj.Get("JiShiQi->JianPao_BaoZhaShiJian"));
|
|
Cobj.JianPaoTimer.Start();
|
|
Cobj.JianPaoObject = {
|
|
Name = "jianpao",
|
|
NameImg = 1,
|
|
X = 334,
|
|
Y = 200,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 3,
|
|
Reload = 1,
|
|
Timer = Cobj.JianPaoTimer,
|
|
TimeMax = JsonObj.Get("JiShiQi->JianPaoBaoZha_Zong"),
|
|
TimeOffset = JsonObj.Get("JiShiQi->JianPao_BaoZhaShiJian"),
|
|
};
|
|
} else {
|
|
//如果舰炮时间容器存在则先删除他
|
|
if (Cobj.JianPaoTimer) Cobj.JianPaoTimer.Delete();
|
|
Cobj.JianPaoTimer = null;
|
|
Cobj.JianPaoTimer = TimeSTL("JianPaoTimer", JsonObj.Get("JiShiQi->JianPao_FuHuoShiJian"));
|
|
Cobj.JianPaoTimer.Start();
|
|
Cobj.JianPaoObject = {
|
|
Name = "jianpao",
|
|
X = 334,
|
|
Y = 200,
|
|
ClearNumber = 0,
|
|
Reload = 1,
|
|
Timer = Cobj.JianPaoTimer,
|
|
TimeMax = JsonObj.Get("JiShiQi->JianPaoFuHuo_Zong"),
|
|
TimeOffset = JsonObj.Get("JiShiQi->JianPao_FuHuoShiJian"),
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//震颤A收包
|
|
{
|
|
Cobj.ZhenChan_A_Object = null;
|
|
if (JsonObj.Get("ZhenChan_A_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("ZhenChan_A_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("ZhenChan_A_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("ZhenChan_A_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("ZhenChan_A_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("ZhenChan_A_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("ZhenChan_A_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
//如果震颤A时间容器存在则先删除他
|
|
if (Cobj.ZhenChan_A_Timer) Cobj.ZhenChan_A_Timer.Delete();
|
|
Cobj.ZhenChan_A_Timer = null;
|
|
Cobj.ZhenChan_A_Timer = TimeSTL("ZhenChan_A_Timer", JsonObj.Get("JiShiQi->ZhenChan_A_BaoZhaShiJian"));
|
|
Cobj.ZhenChan_A_Timer.Start();
|
|
Cobj.ZhenChan_A_Object = {
|
|
Name = "zhenchan_A",
|
|
NameImg = 4,
|
|
X = 234,
|
|
Y = 330,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Reload = 1,
|
|
Party = gParty,
|
|
DungeonUID = 1,
|
|
Timer = Cobj.ZhenChan_A_Timer,
|
|
TimeMax = JsonObj.Get("JiShiQi->ZhenChanBaoZha_Zong"),
|
|
TimeOffset = JsonObj.Get("JiShiQi->ZhenChan_A_BaoZhaShiJian"),
|
|
};
|
|
} else {
|
|
//如果震颤A时间容器存在则先删除他
|
|
if (Cobj.ZhenChan_A_Timer) Cobj.ZhenChan_A_Timer.Delete();
|
|
Cobj.ZhenChan_A_Timer = null;
|
|
Cobj.ZhenChan_A_Timer = TimeSTL("ZhenChan_A_Timer", JsonObj.Get("JiShiQi->ZhenChan_A_FuHuoShiJian"));
|
|
Cobj.ZhenChan_A_Timer.Start();
|
|
Cobj.ZhenChan_A_Object = {
|
|
Name = "zhenchan_a",
|
|
X = 234,
|
|
Y = 330,
|
|
ClearNumber = 0,
|
|
Reload = 1,
|
|
Timer = Cobj.ZhenChan_A_Timer,
|
|
TimeMax = JsonObj.Get("JiShiQi->ZhenChanFuHuo_Zong"),
|
|
TimeOffset = JsonObj.Get("JiShiQi->ZhenChan_A_FuHuoShiJian"),
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//震颤B收包
|
|
{
|
|
Cobj.ZhenChan_B_Object = null;
|
|
if (JsonObj.Get("ZhenChan_B_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("ZhenChan_B_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("ZhenChan_B_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("ZhenChan_B_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("ZhenChan_B_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("ZhenChan_B_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("ZhenChan_B_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
//如果震颤B时间容器存在则先删除他
|
|
if (Cobj.ZhenChan_B_Timer) Cobj.ZhenChan_B_Timer.Delete();
|
|
Cobj.ZhenChan_B_Timer = null;
|
|
Cobj.ZhenChan_B_Timer = TimeSTL("ZhenChan_B_Timer", JsonObj.Get("JiShiQi->ZhenChan_B_BaoZhaShiJian"));
|
|
Cobj.ZhenChan_B_Timer.Start();
|
|
Cobj.ZhenChan_B_Object = {
|
|
Name = "zhenchan_B",
|
|
NameImg = 5,
|
|
X = 450,
|
|
Y = 330,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Reload = 1,
|
|
Party = gParty,
|
|
DungeonUID = 11,
|
|
Timer = Cobj.ZhenChan_B_Timer,
|
|
TimeMax = JsonObj.Get("JiShiQi->ZhenChanBaoZha_Zong"),
|
|
TimeOffset = JsonObj.Get("JiShiQi->ZhenChan_B_BaoZhaShiJian"),
|
|
};
|
|
} else {
|
|
//如果震颤B时间容器存在则先删除他
|
|
if (Cobj.ZhenChan_B_Timer) Cobj.ZhenChan_B_Timer.Delete();
|
|
Cobj.ZhenChan_B_Timer = null;
|
|
Cobj.ZhenChan_B_Timer = TimeSTL("ZhenChan_B_Timer", JsonObj.Get("JiShiQi->ZhenChan_B_FuHuoShiJian"));
|
|
Cobj.ZhenChan_B_Timer.Start();
|
|
Cobj.ZhenChan_B_Object = {
|
|
Name = "zhenchan_B",
|
|
X = 450,
|
|
Y = 330,
|
|
ClearNumber = 0,
|
|
Reload = 1,
|
|
Timer = Cobj.ZhenChan_B_Timer,
|
|
TimeMax = JsonObj.Get("JiShiQi->ZhenChanFuHuo_Zong"),
|
|
TimeOffset = JsonObj.Get("JiShiQi->ZhenChan_B_FuHuoShiJian"),
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//擎天A收包
|
|
{
|
|
Cobj.QingTian_A_Object = null;
|
|
if (JsonObj.Get("QingTian_A_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 2 - JsonObj.Get("QingTian_A_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("QingTian_A_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("QingTian_A_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("QingTian_A_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("QingTian_A_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("QingTian_A_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.QingTian_A_Object = {
|
|
Name = "qingtian_A",
|
|
NameImg = 2,
|
|
X = 224,
|
|
Y = 430,
|
|
BloodType = 2,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 2,
|
|
};
|
|
} else {
|
|
Cobj.QingTian_A_Object = {
|
|
Name = "qingtian_a",
|
|
X = 224,
|
|
Y = 430,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//擎天B收包
|
|
{
|
|
Cobj.QingTian_B_Object = null;
|
|
if (JsonObj.Get("QingTian_B_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 2 - JsonObj.Get("QingTian_B_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("QingTian_B_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("QingTian_B_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("QingTian_B_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("QingTian_B_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("QingTian_B_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.QingTian_B_Object = {
|
|
Name = "qingtian_B",
|
|
NameImg = 3,
|
|
X = 470,
|
|
Y = 430,
|
|
BloodType = 2,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 21,
|
|
};
|
|
} else {
|
|
Cobj.QingTian_B_Object = {
|
|
Name = "qingtian_b",
|
|
X = 470,
|
|
Y = 430,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
}
|
|
|
|
//二阶段收包机制
|
|
if (Cobj.State == 3) {
|
|
{
|
|
Cobj.DanShengObject = null; //诞生圣所对象
|
|
Cobj.DanShengBuffObject = null; //诞生圣所BUFF对象
|
|
Cobj.ManYanObject = null; //蔓延圣所对象
|
|
Cobj.ManYanBuffObject = null; //蔓延圣所BUFF对象
|
|
Cobj.YanMieObject = null; //湮灭圣所对象
|
|
Cobj.YanMieBuffObject = null; //湮灭圣所BUFF对象
|
|
|
|
Cobj.GuangJitanRuKouObject = null; //光祭坛入口对象
|
|
Cobj.AnJitanRuKouObject = null; //光祭坛入口对象
|
|
|
|
Cobj.GuangJitanObject = null; //光祭坛对象
|
|
Cobj.AnJitanObject = null; //暗祭坛对象
|
|
|
|
Cobj.LiLiangObject = null; //力量祭坛对象
|
|
Cobj.ZhiHuiObject = null; //智慧祭坛对象
|
|
|
|
|
|
Cobj.NengYuanKongZhiObject = null; //能源控制对象
|
|
|
|
Cobj.GuangShengDianObject = null; //光圣殿对象
|
|
Cobj.AnShengDianObject = null; //暗圣殿对象
|
|
|
|
Cobj.JiXieWangZuoGuangObject = null; //光卢克
|
|
Cobj.JiXieWangZuoAnObject = null; //暗卢克
|
|
|
|
Cobj.NengYuanChuCangObject = null; //能源储藏对象
|
|
}
|
|
|
|
|
|
|
|
//光祭坛入口收包
|
|
{
|
|
Cobj.GuangJitanRuKouObject = null;
|
|
if (JsonObj.Get("GuangJitanRuKou_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("GuangJitanRuKou_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("GuangJitanRuKou_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("GuangJitanRuKou_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("GuangJitanRuKou_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("GuangJitanRuKou_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("GuangJitanRuKou_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.GuangJitanRuKouObject = {
|
|
Name = "GuangJitanRuKou",
|
|
NameImg = 9,
|
|
X = 170,
|
|
Y = 160,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 4,
|
|
Xian = 101,
|
|
XianX = 230,
|
|
XianY = 180,
|
|
};
|
|
} else {
|
|
Cobj.GuangJitanRuKouObject = {
|
|
Name = "GuangJitanRuKou",
|
|
NameImg = 9,
|
|
X = 170,
|
|
Y = 160,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//暗祭坛入口收包
|
|
{
|
|
Cobj.AnJitanRuKouObject = null;
|
|
if (JsonObj.Get("AnJitanRuKou_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("AnJitanRuKou_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("AnJitanRuKou_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("AnJitanRuKou_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("AnJitanRuKou_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("AnJitanRuKou_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("AnJitanRuKou_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.AnJitanRuKouObject = {
|
|
Name = "AnJitanRuKou",
|
|
NameImg = 10,
|
|
X = 170,
|
|
Y = 340,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 9,
|
|
Xian = 102,
|
|
XianX = 230,
|
|
XianY = 355,
|
|
};
|
|
} else {
|
|
Cobj.AnJitanRuKouObject = {
|
|
Name = "AnJitanRuKou",
|
|
NameImg = 10,
|
|
X = 170,
|
|
Y = 340,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//光祭坛收包
|
|
{
|
|
Cobj.GuangJitanObject = null;
|
|
if (JsonObj.Get("GuangJitan_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("GuangJitan_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("GuangJitan_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("GuangJitan_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("GuangJitan_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("GuangJitan_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("GuangJitan_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.GuangJitanObject = {
|
|
Name = "GuangJitan",
|
|
NameImg = 3,
|
|
X = 310,
|
|
Y = 190,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 5,
|
|
Xian = 103,
|
|
XianX = 370,
|
|
XianY = 210,
|
|
};
|
|
} else {
|
|
Cobj.GuangJitanObject = {
|
|
Name = "GuangJitan",
|
|
NameImg = 3,
|
|
X = 310,
|
|
Y = 190,
|
|
ClearNumber = 0,
|
|
Xian = 103,
|
|
XianX = 370,
|
|
XianY = 210,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//暗祭坛收包
|
|
{
|
|
Cobj.AnJitanObject = null;
|
|
if (JsonObj.Get("AnJitan_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("AnJitan_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("AnJitan_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("AnJitan_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("AnJitan_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("AnJitan_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("AnJitan_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.AnJitanObject = {
|
|
Name = "AnJitan",
|
|
NameImg = 4,
|
|
X = 310,
|
|
Y = 310,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 10,
|
|
Xian = 104,
|
|
XianX = 370,
|
|
XianY = 340,
|
|
};
|
|
} else {
|
|
Cobj.AnJitanObject = {
|
|
Name = "AnJitan",
|
|
NameImg = 4,
|
|
X = 310,
|
|
Y = 310,
|
|
ClearNumber = 0,
|
|
Xian = 104,
|
|
XianX = 370,
|
|
XianY = 340,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//力量祭坛收包
|
|
{
|
|
Cobj.LiLiangObject = null;
|
|
if (JsonObj.Get("LiLiang_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("LiLiang_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("LiLiang_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("LiLiang_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("LiLiang_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("LiLiang_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("LiLiang_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.LiLiangObject = {
|
|
Name = "LiLiang",
|
|
NameImg = 5,
|
|
X = 460,
|
|
Y = 190,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 6,
|
|
};
|
|
} else {
|
|
Cobj.LiLiangObject = {
|
|
Name = "LiLiang",
|
|
NameImg = 5,
|
|
X = 460,
|
|
Y = 190,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//智慧祭坛收包
|
|
{
|
|
Cobj.ZhiHuiObject = null;
|
|
if (JsonObj.Get("ZhiHui_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("ZhiHui_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("ZhiHui_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("ZhiHui_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("ZhiHui_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("ZhiHui_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("ZhiHui_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.ZhiHuiObject = {
|
|
Name = "ZhiHui",
|
|
NameImg = 6,
|
|
X = 460,
|
|
Y = 310,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 11,
|
|
};
|
|
} else {
|
|
Cobj.ZhiHuiObject = {
|
|
Name = "ZhiHui",
|
|
NameImg = 6,
|
|
X = 460,
|
|
Y = 310,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//能源控制室收包
|
|
{
|
|
Cobj.NengYuanKongZhiObject = null;
|
|
if (JsonObj.Get("NengYuanKongZhi_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("NengYuanKongZhi_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("NengYuanKongZhi_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("NengYuanKongZhi_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("NengYuanKongZhi_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("NengYuanKongZhi_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("NengYuanKongZhi_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.NengYuanKongZhiObject = {
|
|
Name = "NengYuanKongZhi",
|
|
NameImg = 18,
|
|
X = 385,
|
|
Y = 250,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 14,
|
|
};
|
|
} else {
|
|
if (Cobj.NengYuanKongZhiTimerObject) Cobj.NengYuanKongZhiTimerObject.Delete();
|
|
Cobj.NengYuanKongZhiTimerObject = null;
|
|
Cobj.NengYuanKongZhiTimerObject = TimeSTL("NengYuanKongZhiTimerObject", JsonObj.Get("JiShiQi->NengYuanKongZhi_FuHuoShiJian"));
|
|
Cobj.NengYuanKongZhiTimerObject.Start();
|
|
Cobj.NengYuanKongZhiObject = {
|
|
Name = "NengYuanKongZhi",
|
|
NameImg = 19,
|
|
X = 385,
|
|
Y = 250,
|
|
ClearNumber = 0,
|
|
Timer = Cobj.NengYuanKongZhiTimerObject,
|
|
TimeMax = JsonObj.Get("JiShiQi->NengYuanKongZhi_Zong"),
|
|
TimeOffset = JsonObj.Get("JiShiQi->NengYuanKongZhi_FuHuoShiJian"),
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//光圣殿收包
|
|
{
|
|
Cobj.GuangShengDianObject = null;
|
|
if (JsonObj.Get("GuangShengDian_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("GuangShengDian_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("GuangShengDian_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("GuangShengDian_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("GuangShengDian_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("GuangShengDian_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("GuangShengDian_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.GuangShengDianObject = {
|
|
Name = "GuangShengDian",
|
|
NameImg = 12,
|
|
X = 510,
|
|
Y = 100,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 7,
|
|
};
|
|
} else {
|
|
Cobj.GuangShengDianObject = {
|
|
Name = "GuangShengDian",
|
|
NameImg = 12,
|
|
X = 510,
|
|
Y = 100,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//暗圣殿收包
|
|
{
|
|
Cobj.AnShengDianObject = null;
|
|
if (JsonObj.Get("AnShengDian_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("AnShengDian_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("AnShengDian_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("AnShengDian_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("AnShengDian_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("AnShengDian_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("AnShengDian_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.AnShengDianObject = {
|
|
Name = "AnShengDian",
|
|
NameImg = 14,
|
|
X = 510,
|
|
Y = 395,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 12,
|
|
};
|
|
} else {
|
|
Cobj.AnShengDianObject = {
|
|
Name = "AnShengDian",
|
|
NameImg = 14,
|
|
X = 510,
|
|
Y = 395,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//光卢克收包
|
|
{
|
|
Cobj.JiXieWangZuoGuangObject = null;
|
|
if (JsonObj.Get("JiXieWangZuoGuang_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("JiXieWangZuoGuang_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("JiXieWangZuoGuang_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("JiXieWangZuoGuang_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("JiXieWangZuoGuang_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("JiXieWangZuoGuang_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("JiXieWangZuoGuang_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.JiXieWangZuoGuangObject = {
|
|
Name = "JiXieWangZuoGuang",
|
|
NameImg = 16,
|
|
NameImg2 = 13,
|
|
X = 530,
|
|
Y = 210,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 8,
|
|
};
|
|
} else {
|
|
Cobj.JiXieWangZuoGuangObject = {
|
|
Name = "JiXieWangZuoGuang",
|
|
NameImg = 16,
|
|
NameImg2 = 13,
|
|
X = 530,
|
|
Y = 210,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
//暗卢克收包
|
|
{
|
|
Cobj.JiXieWangZuoAnObject = null;
|
|
if (JsonObj.Get("JiXieWangZuoAn_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("JiXieWangZuoAn_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("JiXieWangZuoAn_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("JiXieWangZuoAn_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("JiXieWangZuoAn_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("JiXieWangZuoAn_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("JiXieWangZuoAn_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
Cobj.JiXieWangZuoAnObject = {
|
|
Name = "JiXieWangZuoAn",
|
|
NameImg = 16,
|
|
NameImg2 = 15,
|
|
X = 530,
|
|
Y = 280,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 13,
|
|
};
|
|
} else {
|
|
Cobj.JiXieWangZuoAnObject = {
|
|
Name = "JiXieWangZuoAn",
|
|
NameImg = 16,
|
|
NameImg2 = 15,
|
|
X = 530,
|
|
Y = 280,
|
|
ClearNumber = 0,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//能源储藏收包
|
|
{
|
|
Cobj.NengYuanChuCangObject = null;
|
|
if (JsonObj.Get("NengYuanChuCang_State") != false) {
|
|
//得到副本剩余生命
|
|
local gClearNumber = 1 - JsonObj.Get("NengYuanChuCang_State");
|
|
//如果副本还没有死亡
|
|
if (gClearNumber != 0) {
|
|
local gParty = [];
|
|
local Size = JsonObj.Get("NengYuanChuCang_Party->size");
|
|
for (local i = 0; i < Size; i++) {
|
|
local PartyInfo = [];
|
|
PartyInfo.append(JsonObj.Get("NengYuanChuCang_Party->TeamInfoVos->" + i + "->PartyID"));
|
|
PartyInfo.append(JsonObj.Get("NengYuanChuCang_Party->TeamInfoVos->" + i + "->PlayerJob"));
|
|
PartyInfo.append(JsonObj.Get("NengYuanChuCang_Party->TeamInfoVos->" + i + "->PlayerJobEx"));
|
|
PartyInfo.append(JsonObj.Get("NengYuanChuCang_Party->TeamInfoVos->" + i + "->size"));
|
|
gParty.append(PartyInfo);
|
|
}
|
|
if (Cobj.NengYuanChuCangTimerObject) Cobj.NengYuanChuCangTimerObject.Delete();
|
|
Cobj.NengYuanChuCangTimerObject = null;
|
|
Cobj.NengYuanChuCangTimerObject = TimeSTL("NengYuanChuCangTimerObject", JsonObj.Get("JiShiQi->NengYuanChuCang_BaoZhaShiJian"));
|
|
Cobj.NengYuanChuCangTimerObject.Start();
|
|
Cobj.NengYuanChuCangObject = {
|
|
Name = "NengYuanChuCang",
|
|
NameImg = 17,
|
|
X = 630,
|
|
Y = 260,
|
|
BloodType = 1,
|
|
ClearNumber = gClearNumber,
|
|
Party = gParty,
|
|
DungeonUID = 15,
|
|
Timer = Cobj.NengYuanChuCangTimerObject,
|
|
TimeMax = JsonObj.Get("JiShiQi->NengYuanChuCang_BaoZhaZong"),
|
|
TimeOffset = JsonObj.Get("JiShiQi->NengYuanChuCang_BaoZhaShiJian"),
|
|
};
|
|
} else {
|
|
if (Cobj.NengYuanChuCangTimerObject) Cobj.NengYuanChuCangTimerObject.Delete();
|
|
Cobj.NengYuanChuCangTimerObject = null;
|
|
Cobj.NengYuanChuCangTimerObject = TimeSTL("NengYuanChuCangTimerObject", JsonObj.Get("JiShiQi->NengYuanChuCang_FuHuoShiJian"));
|
|
Cobj.NengYuanChuCangTimerObject.Start();
|
|
Cobj.NengYuanChuCangObject = {
|
|
Name = "NengYuanChuCang",
|
|
NameImg = 19,
|
|
X = 630,
|
|
Y = 260,
|
|
ClearNumber = 0,
|
|
Timer = Cobj.NengYuanChuCangTimerObject,
|
|
TimeMax = JsonObj.Get("JiShiQi->NengYuanChuCang_FuHuoZong"),
|
|
TimeOffset = JsonObj.Get("JiShiQi->NengYuanChuCang_FuHuoShiJian"),
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
//收取奖励包
|
|
function ReadReward(chunk) {
|
|
//Sout("\n\n收到奖励包 :\n %L", chunk)
|
|
local RootTab = getroottable();
|
|
BasicsDrawTool.InitClass("ReadRewardJson"); //自动判断清空
|
|
local JsonObj = Json_STL("ReadRewardJsonBuffer");
|
|
RootTab.rawset("ReadRewardJson", JsonObj);
|
|
RootTab["ReadRewardJson"].Parse(chunk, 0, false);
|
|
|
|
if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) {
|
|
local Cobj = RootTab["LUKEDUNGEONINFOCONTROL"];
|
|
Cobj.Reward_Object = null;
|
|
local ArrBuffer = [];
|
|
for (local i = 0; i < 4; i++) {
|
|
if (JsonObj.Get("Items->" + i + "->IsGolden") == false) continue;
|
|
local TabBuffer = {
|
|
SetFlagAniIndex = JsonObj.Get("Items->" + i + "->IsGolden"),
|
|
PlayerJob = JsonObj.Get("Items->" + i + "->PlayerJob"),
|
|
PlayerJobEx = JsonObj.Get("Items->" + i + "->PlayerJobEx"),
|
|
Name = JsonObj.Get("Items->" + i + "->Name"),
|
|
ItemGrade = JsonObj.Get("Items->" + i + "->Grade"),
|
|
ItemId = JsonObj.Get("Items->" + i + "->Item"),
|
|
ItemCount = JsonObj.Get("Items->" + i + "->Num"),
|
|
ItemName = JsonObj.Get("Items->" + i + "->ItemName"),
|
|
ItemColor = JsonObj.Get("Items->" + i + "->ItemColour"),
|
|
}
|
|
ArrBuffer.append(TabBuffer);
|
|
}
|
|
Cobj.Reward_Object = ArrBuffer;
|
|
Cobj.State = JsonObj.Get("State");
|
|
|
|
local AllArrBuffer = [];
|
|
for (local i = 0; i < 20; i++) {
|
|
if (JsonObj.Get("Items2->" + i + "->IsGolden") == false) continue;
|
|
local TabBuffer = {
|
|
SetFlagAniIndex = JsonObj.Get("Items2->" + i + "->IsGolden"),
|
|
PlayerJob = JsonObj.Get("Items2->" + i + "->PlayerJob"),
|
|
PlayerJobEx = JsonObj.Get("Items2->" + i + "->PlayerJobEx"),
|
|
Name = JsonObj.Get("Items2->" + i + "->Name"),
|
|
ItemGrade = JsonObj.Get("Items2->" + i + "->Grade"),
|
|
ItemId = JsonObj.Get("Items2->" + i + "->Item"),
|
|
ItemCount = JsonObj.Get("Items2->" + i + "->Num"),
|
|
ItemName = JsonObj.Get("Items2->" + i + "->ItemName"),
|
|
ItemColor = JsonObj.Get("Items2->" + i + "->ItemColour"),
|
|
}
|
|
AllArrBuffer.append(TabBuffer);
|
|
}
|
|
Cobj.AllReward_Object = AllArrBuffer;
|
|
|
|
Cobj.Reward_Timer_Object = TimeSTL("Luke_Reward_Timer_Object", 10000);
|
|
Cobj.Reward_Timer_Object.Delete();
|
|
Cobj.Reward_Timer_Object = null;
|
|
Cobj.Reward_Timer_Object = TimeSTL("Luke_Reward_Timer_Object", 10000);
|
|
Cobj.Reward_Timer_Object.Start();
|
|
Cobj.Reward_Info = [
|
|
JsonObj.Get("SuccessTime"),
|
|
JsonObj.Get("DeathNum"),
|
|
];
|
|
}
|
|
}
|
|
|
|
//攻坚开始传送玩家进区域 1阶段开始
|
|
function StartMovePlayer(chunk) {
|
|
//Sout("\n\n收到攻坚开始传送玩家进区域包 :\n %L", chunk)
|
|
local RootTab = getroottable();
|
|
BasicsDrawTool.InitClass("MovePlayerJson"); //自动判断清空
|
|
local JsonObj = Json_STL("MovePlayerJsonBuffer");
|
|
RootTab.rawset("MovePlayerJson", JsonObj);
|
|
RootTab["MovePlayerJson"].Parse(chunk, 0, false);
|
|
|
|
|
|
local TownIndex = RootTab["MovePlayerJson"].Get("TownIndex");
|
|
local ReIndex = RootTab["MovePlayerJson"].Get("ReIndex");
|
|
|
|
L_sq_MoveTown(TownIndex, ReIndex, 200, 200);
|
|
|
|
//告诉副本类开始攻坚一阶段了
|
|
if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) {
|
|
RootTab["LUKEDUNGEONINFOCONTROL"].State = 0;
|
|
RootTab["LUKEDUNGEONINFOCONTROL"].DrawStartAniMark = true;
|
|
}
|
|
}
|
|
|
|
//攻坚二阶段开始事件
|
|
function StartTwoR(chunk) {
|
|
//Sout("\n\n收到攻坚2阶段开始包 :\n %L", chunk)
|
|
local RootTab = getroottable();
|
|
if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) {
|
|
RootTab["LUKEDUNGEONINFOCONTROL"].DrawStartAniMark = true;
|
|
}
|
|
}
|
|
|
|
//退出攻坚队传送玩家进区域
|
|
function ExitMovePlayer(chunk) {
|
|
//Sout("\n\n收到退出攻坚队传送玩家进区域包 :\n %L", chunk)
|
|
local RootTab = getroottable();
|
|
BasicsDrawTool.InitClass("MovePlayerJson"); //自动判断清空
|
|
local JsonObj = Json_STL("MovePlayerJsonBuffer");
|
|
RootTab.rawset("MovePlayerJson", JsonObj);
|
|
RootTab["MovePlayerJson"].Parse(chunk, 0, false);
|
|
|
|
|
|
local TownIndex = RootTab["MovePlayerJson"].Get("TownIndex");
|
|
local ReIndex = RootTab["MovePlayerJson"].Get("ReIndex");
|
|
|
|
L_sq_MoveTown(TownIndex, ReIndex, 1036, 335);
|
|
}
|
|
|
|
//队长进入副本事件
|
|
function PartyMSelectDungeon(chunk) {
|
|
//Sout("\n\n收到队长进入副本事件包 :\n %L", chunk)
|
|
local RootTab = getroottable();
|
|
BasicsDrawTool.InitClass("PartyMSelectDungeonJson"); //自动判断清空
|
|
local JsonObj = Json_STL("PartyMSelectDungeonJsonBuffer");
|
|
RootTab.rawset("PartyMSelectDungeonJson", JsonObj);
|
|
RootTab["PartyMSelectDungeonJson"].Parse(chunk, 0, false);
|
|
|
|
local DungeonTID = RootTab["PartyMSelectDungeonJson"].Get("DungeonTID");
|
|
L_sq_GoDungeon(DungeonTID);
|
|
}
|
|
|
|
//队长返回城镇事件
|
|
function PartyMReturnTown(chunk) {
|
|
//Sout("\n\n收到队长返回城镇事件包 :\n %L", chunk)
|
|
local RootTab = getroottable();
|
|
BasicsDrawTool.InitClass("PartyMReturnTownJson"); //自动判断清空
|
|
local JsonObj = Json_STL("PartyMReturnTownJsonBuffer");
|
|
RootTab.rawset("PartyMReturnTownJson", JsonObj);
|
|
RootTab["PartyMReturnTownJson"].Parse(chunk, 0, false);
|
|
|
|
if (RootTab.rawin("LUKEDUNGEONINFOCONTROL")) {
|
|
local Cobj = RootTab["LUKEDUNGEONINFOCONTROL"];
|
|
if (sq_GetCurrentModuleType() == 3) {
|
|
local LukeBackTown = Json_STL("LukeBackTown");
|
|
LukeBackTown.Put("op", 25600159);
|
|
local str = LukeBackTown.GetString();
|
|
L_sq_SendPackType(130);
|
|
L_sq_SendPackWChar(str);
|
|
L_sq_SendPack();
|
|
LukeBackTown.Delete();
|
|
} else {
|
|
Cobj.ReturnTwonFlag = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
//火山怪物投放包
|
|
function HuoShanMonsterEvent(chunk) {
|
|
//Sout("\n\n收到火山投放怪物事件包 :\n %L", chunk)
|
|
local RootTab = getroottable();
|
|
BasicsDrawTool.InitClass("PartyMReturnTownJson"); //自动判断清空
|
|
local JsonObj = Json_STL("PartyMReturnTownJsonBuffer");
|
|
RootTab.rawset("PartyMReturnTownJson", JsonObj);
|
|
RootTab["PartyMReturnTownJson"].Parse(chunk, 0, false);
|
|
local Cobj = RootTab["LUKEDUNGEONINFOCONTROL"];
|
|
if (sq_GetCurrentModuleType() == 3) {
|
|
local obj = sq_GetMyMasterCharacter();
|
|
obj = sq_ObjectToSQRCharacter(obj);
|
|
//print(Cobj.HuoShanMonserTable[JsonObj.Get("FuHuaId")]);
|
|
obj.sq_SendCreatePassiveObjectPacket(Cobj.HuoShanMonserTable[JsonObj.Get("FuHuaId")], 0, 120, 1, 0);
|
|
}
|
|
}
|
|
|
|
//查询是否回城包
|
|
function CheckPlayerGoTwonEvent(chunk) {
|
|
if (sq_GetCurrentModuleType() == 1) {
|
|
local LukePlayerGoTwonPack = Json_STL("LukePlayerGoTwonPack");
|
|
LukePlayerGoTwonPack.Put("op", 25600185);
|
|
local str = LukePlayerGoTwonPack.GetString();
|
|
L_sq_SendPackType(130);
|
|
L_sq_SendPackWChar(str);
|
|
L_sq_SendPack();
|
|
LukePlayerGoTwonPack.Delete();
|
|
}
|
|
}
|
|
|
|
//设置死亡包
|
|
function SetPlayerDeadPack(chunk) {
|
|
local obj = sq_GetMyMasterCharacter();
|
|
obj = sq_ObjectToSQRCharacter(obj);
|
|
obj.setHp(0, null, true);
|
|
}
|
|
|
|
function LukeRaid_getMonsterObject(obj, idNeed) {
|
|
|
|
if (!obj)
|
|
return null;
|
|
|
|
local objectManager = obj.getObjectManager();
|
|
|
|
if (objectManager == null)
|
|
return null;
|
|
|
|
for (local i = 0; i < objectManager.getCollisionObjectNumber(); i += 1) {
|
|
local object = objectManager.getCollisionObject(i);
|
|
|
|
if (object && object.isObjectType(OBJECTTYPE_MONSTER)) {
|
|
local object2 = sq_GetCNRDObjectToCollisionObject(object);
|
|
local id = object2.getCollisionObjectIndex(object2);
|
|
if (id == idNeed) {
|
|
return object2;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
function getLukeRaid_QuattuorManusMK2ChangeLayer(obj) {
|
|
local mob = LukeRaid_getMonsterObject(obj, 560650);
|
|
if (mob)
|
|
sq_ChangeDrawLayer(mob, ENUM_DRAWLAYER_MIDDLEBACK);
|
|
//
|
|
}
|
|
|
|
constructor() {
|
|
//读取卢克攻坚信息包
|
|
Pack_Control.rawset(25600152, ReadLukeDungeonInfoPack);
|
|
//攻坚开始传送玩家事件
|
|
Pack_Control.rawset(25600144, StartMovePlayer);
|
|
//攻坚二阶段开始事件
|
|
Pack_Control.rawset(25600146, StartTwoR);
|
|
//退出攻坚队传送玩家事件
|
|
Pack_Control.rawset(25600138, ExitMovePlayer);
|
|
//队长进入副本事件
|
|
Pack_Control.rawset(25600154, PartyMSelectDungeon);
|
|
//队长返回城镇事件
|
|
Pack_Control.rawset(25600156, PartyMReturnTown);
|
|
//收取奖励包
|
|
Pack_Control.rawset(25600172, ReadReward);
|
|
//收取火山怪物投放包
|
|
Pack_Control.rawset(25600182, HuoShanMonsterEvent);
|
|
//查询是否回城包
|
|
Pack_Control.rawset(25600184, CheckPlayerGoTwonEvent);
|
|
//设置玩家死亡包
|
|
Pack_Control.rawset(25600164, SetPlayerDeadPack);
|
|
//初始化判断孵化进入操作表
|
|
MapIndexTable = {};
|
|
MapIndexTable.rawset(33100, 1);
|
|
MapIndexTable.rawset(33103, 2);
|
|
MapIndexTable.rawset(33119, 3);
|
|
MapIndexTable.rawset(33116, 4);
|
|
//火山怪物投放表
|
|
HuoShanMonserTable = {};
|
|
HuoShanMonserTable.rawset(1, 202210052);
|
|
HuoShanMonserTable.rawset(2, 202210053);
|
|
HuoShanMonserTable.rawset(3, 202210054);
|
|
HuoShanMonserTable.rawset(4, 202210055);
|
|
}
|
|
|
|
//绘制攻坚剩余时间
|
|
function DrawTime(obj) {
|
|
|
|
//如果还没收到配置包的时候直接返回
|
|
if (!FightMaxTime) return;
|
|
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", X + 528, Y + 23, 1, "卢克剩余攻坚时间主界面");
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", X + 566, Y + 25, 2, "卢克剩余攻坚时间文字");
|
|
|
|
//计算剩余时间并绘制
|
|
local Time = (FightMaxTime - FightTimer.Get());
|
|
local Hours = (Time / 3600000).tostring();
|
|
if (Hours.len() < 2) Hours = "0" + Hours;
|
|
if (Hours.len() > 2) Hours = Hours.slice(Hours.len() - 2, Hours.len());
|
|
local minutes = (Time / 60000).tostring();
|
|
if (minutes.len() < 2) minutes = "0" + minutes;
|
|
if (minutes.len() > 2) minutes = minutes.slice(minutes.len() - 2, minutes.len());
|
|
local seconds = (Time / 1000 % 60).tostring();
|
|
if (seconds.len() < 2) seconds = "0" + seconds;
|
|
if (seconds.len() > 2) seconds = seconds.slice(seconds.len() - 2, seconds.len());
|
|
|
|
for (local i = 0; i < 2; i++) {
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeonnum.ani", X + 538 + (i * 18), Y + 51, Hours.slice(0 + i, 1 + i).tointeger(), "卢克剩余攻坚时间时" + i);
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeonnum.ani", X + 584 + (i * 18), Y + 51, minutes.slice(0 + i, 1 + i).tointeger(), "卢克剩余攻坚时间分" + i);
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeonnum.ani", X + 628 + (i * 18), Y + 51, seconds.slice(0 + i, 1 + i).tointeger(), "卢克剩余攻坚时间分" + i);
|
|
}
|
|
|
|
//Sout("时: %L 分: %L 秒: %L",Hours,minutes,seconds);
|
|
}
|
|
|
|
|
|
//绘制展开攻坚信息按钮
|
|
function DrawMainButton(obj) {
|
|
//如果展开按钮不存在
|
|
if (!OpenMainButtonObject) {
|
|
OpenMainButtonObject = LukeButtonPro(obj, "LukeDungeonOpenMainButtonObject", 690, 35, "common/anton/new/newopendungeoninfobutton.ani", 103, 22, 0);
|
|
OpenMainButtonObject.SetRectEnble(true, "LukeDungeonOpenMainButtonObjectr", 690, 35, "common/anton/new/newopendungeoninfobutton.ani", 1);
|
|
OpenMainButtonObject.SetCustomClickEnble(true, "LukeDungeonOpenMainButtonObjectc", 690, 35, "common/anton/new/newopendungeoninfobutton.ani", 2);
|
|
}
|
|
//未点击 窗口也未打开
|
|
if (!sq_GetPopupWindowMainCotrol(267)) {
|
|
OpenMainButtonObject.Show();
|
|
if (OpenMainButtonObject.isLBActive()) {
|
|
PageState = 1;
|
|
L_NewWindows("Lenheart", 267, 0x65535);
|
|
|
|
|
|
//local RootTab = getroottable();
|
|
//RootTab["LUKETOWNMAINCONTROLLIST"].NowSelectTeamFunc = null; //把功能选择页关掉
|
|
//RootTab["LUKETOWNMAINCONTROLLIST"].NowSelectTeam = null; //把功能选择页关掉
|
|
//RootTab["LUKETEAMMAINBUTTON"].State = 0;
|
|
//RootTab["LUKETEAMMAINBUTTON"].WindowSwitch = false;
|
|
|
|
}
|
|
}
|
|
if (PageState == 1 && !sq_GetPopupWindowMainCotrol(267)) {
|
|
PageState = 0;
|
|
}
|
|
}
|
|
|
|
|
|
//绘制副本对象
|
|
function DrawDungeonObjInfo(obj, DgnObj) {
|
|
//如果副本已经死亡
|
|
if (DgnObj.ClearNumber == 0) {
|
|
//2阶段副本绘制线
|
|
if (DgnObj.rawin("Xian")) {
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", DgnObj.XianX, DgnObj.XianY, DgnObj.Xian, "卢克攻坚战况副本血槽线a" + DgnObj.Name + DgnObj.Xian);
|
|
}
|
|
//绘制副本血槽背景
|
|
local Bkani = 6;
|
|
if (DgnObj.rawin("Reload")) Bkani = 15;
|
|
if (DgnObj.rawin("Ani")) Bkani = DgnObj.Ani;
|
|
/*
|
|
if (DgnObj.rawin("GanRan")) {
|
|
Bkani = 18;
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 1, DgnObj.Y + 1, 19, "卢克攻坚战况副本血槽背景感染外框");
|
|
}
|
|
*/
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X, DgnObj.Y, Bkani, "D卢克攻坚战况副本血槽背景" + DgnObj.Name);
|
|
//绘制复活副本血槽名称背景
|
|
//T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 42, DgnObj.Y - 16, 5, "D卢克攻坚战况副本血槽名称背景" + DgnObj.Name);
|
|
//绘制副本血槽名称
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.ani", DgnObj.X - 17, DgnObj.Y + 72, DgnObj.NameImg, "卢克攻坚战况副本血槽名称a" + DgnObj.Name);
|
|
if (DgnObj.rawin("NameImg2")) {
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.ani", DgnObj.X - 17, DgnObj.Y + 95, DgnObj.NameImg2, "卢克攻坚战况副本血槽名称c" + DgnObj.NameImg2);
|
|
}
|
|
//绘制复活副本血槽名称
|
|
//T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 42, DgnObj.Y - 16, 7, "D卢克攻坚战况副本血槽名称" + DgnObj.Name);
|
|
//判断是否需要绘制复活时间
|
|
if (DgnObj.rawin("Timer")) {
|
|
local TimeMax = (DgnObj.TimeMax / 1000);
|
|
local Time = ((DgnObj.Timer.Get() + (DgnObj.TimeMax - DgnObj.TimeOffset)) / 1000);
|
|
local TimeStr = (TimeMax - Time).tostring();
|
|
L_Code_STL(TimeStr, DgnObj.X + 34 - (TimeStr.len() * 2), DgnObj.Y + 28, 0xffffffff, 1);
|
|
//绘制复活时间进度条
|
|
local TimeHun = ((Time.tofloat() / TimeMax.tofloat()) * 100.0).tointeger();
|
|
T_DrawStayAni(obj, "common/anton/new/newantonloading2.ani", DgnObj.X, DgnObj.Y, TimeHun, "卢克攻坚战况副本复活时间进度条" + TimeHun);
|
|
}
|
|
}
|
|
//如果还没死亡
|
|
else {
|
|
//2阶段副本绘制线
|
|
if (DgnObj.rawin("Xian")) {
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", DgnObj.XianX, DgnObj.XianY, DgnObj.Xian, "卢克攻坚战况副本血槽线a" + DgnObj.Name + DgnObj.Xian);
|
|
}
|
|
//绘制副本血槽背景
|
|
local Bkani = 4;
|
|
if (DgnObj.rawin("Reload")) Bkani = 15;
|
|
if (DgnObj.rawin("Ani")) Bkani = DgnObj.Ani;
|
|
//绘制感染
|
|
if (DgnObj.rawin("GanRan")) {
|
|
Bkani = 18;
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 1, DgnObj.Y + 1, 19, "卢克攻坚战况副本血槽背景感染外框");
|
|
}
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X, DgnObj.Y, Bkani, "卢克攻坚战况副本血槽背景" + DgnObj.Name);
|
|
//绘制副本血槽名称背景
|
|
//T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X + 42, DgnObj.Y - 16, 5, "卢克攻坚战况副本血槽名称背景" + DgnObj.Name);
|
|
//绘制副本血槽名称
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.ani", DgnObj.X - 17, DgnObj.Y + 72, DgnObj.NameImg, "卢克攻坚战况副本血槽名称a" + DgnObj.Name);
|
|
if (DgnObj.rawin("NameImg2")) {
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/dungeon_name/luke_dungeon_name.ani", DgnObj.X - 17, DgnObj.Y + 95, DgnObj.NameImg2, "卢克攻坚战况副本血槽名称c" + DgnObj.NameImg2);
|
|
}
|
|
//绘制副本血量
|
|
//火山单独绘制
|
|
if (DgnObj.BloodType == 99) {
|
|
local NengLiangstr = DgnObj.NengLiang.tostring();
|
|
if (NengLiangstr.len() == 1) NengLiangstr = "00" + NengLiangstr;
|
|
if (NengLiangstr.len() == 2) NengLiangstr = "0" + NengLiangstr;
|
|
for (local i = 0; i < 3; i++) {
|
|
local index = NengLiangstr.slice(0 + i, 1 + i).tointeger();
|
|
T_DrawStayAni(obj, "common/anton/new/newnum.ani", DgnObj.X + 23 + (i * 8), DgnObj.Y + 40, index "卢克剩余火山能量" + i + index);
|
|
}
|
|
local NengLiang = abs(DgnObj.NengLiang - 100)
|
|
T_DrawStayAni(obj, "common/anton/new/newantonloading3.ani", DgnObj.X, DgnObj.Y, NengLiang, "卢克攻坚战况副本火山血" + NengLiang);
|
|
}
|
|
//别的副本绘制 马勒戈壁写烦起来了 瞎比乱写了 架构去他妈
|
|
else {
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeonblood/" + DgnObj.BloodType + "_" + DgnObj.ClearNumber + ".ani", DgnObj.X, DgnObj.Y, 0, "卢克攻坚战况副本血" + DgnObj.BloodType + "_" + DgnObj.ClearNumber);
|
|
}
|
|
//判断是否需要绘制爆炸时间
|
|
if (DgnObj.rawin("Timer")) {
|
|
local TimeMax = (DgnObj.TimeMax / 1000);
|
|
local Time = ((DgnObj.Timer.Get() + (DgnObj.TimeMax - DgnObj.TimeOffset)) / 1000);
|
|
local TimeStr = (TimeMax - Time).tostring();
|
|
L_Code_STL(TimeStr, DgnObj.X + 34 - (TimeStr.len() * 2), DgnObj.Y + 28, 0xffffffff, 1);
|
|
//绘制爆炸时间进度条
|
|
local TimeHun = ((Time.tofloat() / TimeMax.tofloat()) * 100.0).tointeger();
|
|
T_DrawStayAni(obj, "common/anton/new/newantonloading2.ani", DgnObj.X, DgnObj.Y, TimeHun, "卢克攻坚战况副本爆炸时间进度条c" + TimeHun);
|
|
}
|
|
|
|
|
|
//绘制队伍
|
|
for (local i = 0; i < DgnObj.Party.len(); i++) {
|
|
//绘制底框
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X - 66, DgnObj.Y - 20 + (i * 22), 8 + i, "卢克攻坚战况队伍底框" + i);
|
|
//绘制队伍编号 注意:因为这个傻逼图TM的不对称 要单独 判断位置
|
|
local Offset = 0;
|
|
if (i == 1 || i == 2) Offset = 1;
|
|
if (i == 3) Offset = 6;
|
|
if (i == 4) Offset = 7;
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeonpartymark.ani", DgnObj.X - 63, DgnObj.Y - 17 + (i * 22) + Offset, DgnObj.Party[i][0], "卢克攻坚战况队伍编号" + DgnObj.Party[0]);
|
|
//绘制队伍人数
|
|
for (local z = 0; z < DgnObj.Party[i][3] - 1; z++) {
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", DgnObj.X - 27 + (z * 7), DgnObj.Y - 14 + (i * 22) + Offset, 13, "卢克攻坚战况队伍人数");
|
|
}
|
|
//绘制队长头像TM的这个傻逼东西又偏了 在+1
|
|
if (Offset == 6 || Offset == 7) ++Offset;
|
|
T_DrawStayAniRate(obj, "common/anton/face/" + DgnObj.Party[i][1] + "/" + (DgnObj.Party[i][2] % 16) + ".ani", DgnObj.X - 44, DgnObj.Y - 16 + (i * 22) + Offset, 0, "缩小卢克头像编号" + DgnObj.Party[i][1] + DgnObj.Party[i][2], 0.50);
|
|
}
|
|
}
|
|
if (MouseTask == 1 && sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 5, 5, DgnObj.X, DgnObj.Y, 71, 71) && IMouse.isButtonUpEvent()) {
|
|
if (!DgnObj.rawin("DungeonUID")) return;
|
|
obj.sq_PlaySound("CLICK_BUTTON1");
|
|
local LukeSelectDungeon = Json_STL("LukeSelectDungeon");
|
|
LukeSelectDungeon.Put("op", 25600151);
|
|
LukeSelectDungeon.Put("DungeonUID", DgnObj.DungeonUID);
|
|
local str = LukeSelectDungeon.GetString();
|
|
L_sq_SendPackType(130);
|
|
L_sq_SendPackWChar(str);
|
|
L_sq_SendPack();
|
|
LukeSelectDungeon.Delete();
|
|
MouseTask = 2;
|
|
}
|
|
}
|
|
|
|
//绘制小队移动类
|
|
function DrawPartyMoveClss(obj) {
|
|
local ThisX = X + 540;
|
|
local ThisY = Y + 508;
|
|
T_DrawStayAni(obj, "common/anton/new/newopendungeoninfo.ani", ThisX, ThisY, 14, "卢克攻坚战况主界面小队移动背景");
|
|
|
|
//如果 小队移动选择地下城按钮 未初始化时 初始化
|
|
if (PartyMove_SelectDungeon_Button == null) {
|
|
PartyMove_SelectDungeon_Button = LukeButtonPro(obj, "LukePartyMove_SelectDungeon_Button", ThisX + 7, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 95, 29, 6);
|
|
PartyMove_SelectDungeon_Button.SetRectEnble(true, "LukePartyMove_SelectDungeon_Buttonr", ThisX + 7, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 7);
|
|
PartyMove_SelectDungeon_Button.SetCustomClickEnble(true, "LukePartyMove_SelectDungeon_Buttonc", ThisX + 7, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 8);
|
|
}
|
|
PartyMove_SelectDungeon_Button.Show();
|
|
if (PartyMove_SelectDungeon_Button.isLBActive()) {
|
|
obj.sq_PlaySound("CLICK_BUTTON1");
|
|
MouseTask = 1;
|
|
}
|
|
//如果 小队移动返回城镇按钮 未初始化时 初始化
|
|
if (PartyMove_ReturnTown_Button == null) {
|
|
PartyMove_ReturnTown_Button = LukeButtonPro(obj, "LukePartyMove_ReturnTown_Button", ThisX + 108, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 95, 29, 9);
|
|
PartyMove_ReturnTown_Button.SetRectEnble(true, "LukePartyPartyMove_ReturnTown_Buttonr", ThisX + 108, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 10);
|
|
PartyMove_ReturnTown_Button.SetCustomClickEnble(true, "LukePartyPartyMove_ReturnTown_Buttonc", ThisX + 108, ThisY + 30, "common/anton/new/newopendungeoninfobutton.ani", 11);
|
|
}
|
|
PartyMove_ReturnTown_Button.Show();
|
|
if (PartyMove_ReturnTown_Button.isLBActive()) {
|
|
obj.sq_PlaySound("CLICK_BUTTON1");
|
|
//不在城镇里点击返回城镇按钮才会发包
|
|
if (sq_GetCurrentModuleType() != 1) {
|
|
local TryLukeBackTown = Json_STL("TryLukeBackTown");
|
|
TryLukeBackTown.Put("op", 25600153);
|
|
local str = TryLukeBackTown.GetString();
|
|
L_sq_SendPackType(130);
|
|
L_sq_SendPackWChar(str);
|
|
L_sq_SendPack();
|
|
TryLukeBackTown.Delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
//绘制开始攻坚动画
|
|
function DrawStartAni(obj, Type) {
|
|
if (Type == 0) Type = 1;
|
|
else if (Type == 3) Type = 2;
|
|
if (DrawStartAniMark == true) {
|
|
local anieff = BasicsDrawTool.T_DrawDynamicAni(obj, "common/luke/new/starteff.ani", 250, 210, "l开始攻坚标题背景eff");
|
|
local ani1 = BasicsDrawTool.T_DrawDynamicAni(obj, "common/luke/new/start" + Type + ".ani", 250, 210 + 26, "l开始攻坚标题背景1");
|
|
if (sq_GetAnimationFrameIndex(ani1) >= 28) {
|
|
sq_Rewind(anieff);
|
|
sq_Rewind(ani1);
|
|
DrawStartAniMark = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
//绘制卢克信息卡牌
|
|
function DrawLukeInfoCard(obj) {
|
|
//绘制卡牌信息背景
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X, Y, 0, "卢克攻坚战况主界面卡牌信息背景");
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X, Y, 1, "卢克攻坚战况主界面卡牌信息背景a");
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X, Y, 2, "卢克攻坚战况主界面卡牌信息背景b");
|
|
|
|
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X + 80, Y + 150, 3, "卢克攻坚战况主界面卡牌信息背景c");
|
|
for (local i = 0; i < 2; i++) {
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/card_buff_icon.ani", X + 90 + (i * 25), Y + 186, DanShengBuffObject[i], "卢克攻坚战况主界面卡牌信息背景cb" + i);
|
|
}
|
|
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 86, Y + 240, 2, "卢克攻坚战况主界面卡牌信息背景c1", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 110, Y + 240, 3, "卢克攻坚战况主界面卡牌信息背景c2", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 134, Y + 240, 10, "卢克攻坚战况主界面卡牌信息背景c3", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 158, Y + 240, 16, "卢克攻坚战况主界面卡牌信息背景c4", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 182, Y + 240, 21, "卢克攻坚战况主界面卡牌信息背景c5", 0.5);
|
|
|
|
|
|
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X + 370, Y + 80, 4, "卢克攻坚战况主界面卡牌信息背景d");
|
|
for (local e = 0; e < 2; e++) {
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/card_buff_icon.ani", X + 380 + (e * 25), Y + 116, YanMieBuffObject[e], "卢克攻坚战况主界面卡牌信息背景db" + e);
|
|
}
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 480, Y + 80 + 40, 4, "卢克攻坚战况主界面卡牌信息背景d1", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 504, Y + 80 + 40, 7, "卢克攻坚战况主界面卡牌信息背景d2", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 528, Y + 80 + 40, 8, "卢克攻坚战况主界面卡牌信息背景d3", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 552, Y + 80 + 40, 14, "卢克攻坚战况主界面卡牌信息背景d4", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 576, Y + 80 + 40, 17, "卢克攻坚战况主界面卡牌信息背景d5", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 600, Y + 80 + 40, 21, "卢克攻坚战况主界面卡牌信息背景d6", 0.5);
|
|
|
|
|
|
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/luke_cardsystem.ani", X + 370, Y + 340, 5, "卢克攻坚战况主界面卡牌信息背景e");
|
|
for (local r = 0; r < 2; r++) {
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_card_system/card_buff_icon.ani", X + 380 + (r * 25), Y + 120 + 260, ManYanBuffObject[r], "卢克攻坚战况主界面卡牌信息背景db" + r);
|
|
}
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 480, Y + 340 + 40, 0, "卢克攻坚战况主界面卡牌信息背景e1", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 504, Y + 340 + 40, 4, "卢克攻坚战况主界面卡牌信息背景e2", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 528, Y + 340 + 40, 12, "卢克攻坚战况主界面卡牌信息背景e3", 0.5);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/luke_card_system/tarotcard.ani", X + 552, Y + 340 + 40, 17, "卢克攻坚战况主界面卡牌信息背景e4", 0.5);
|
|
|
|
}
|
|
|
|
|
|
//绘制攻坚队攻坚信息
|
|
function DrawLukePartyInfo(obj) {
|
|
local backgroundType = 0;
|
|
if (State >= 3) backgroundType = 1;
|
|
//绘制主界面背景
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", X, Y, 2, "卢克攻坚战况主界面背景a");
|
|
//绘制主界面背景乌龟
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_state_full/luke_state_full.ani", X, Y, backgroundType, "卢克攻坚战况主界面背景乌龟e" + State);
|
|
//绘制主界面小队移动类
|
|
DrawPartyMoveClss(obj);
|
|
|
|
|
|
|
|
//1阶段
|
|
if (State == 0) {
|
|
//诞生圣所对象绘制
|
|
if (DanShengObject) DrawDungeonObjInfo(obj, DanShengObject);
|
|
//蔓延圣所对象绘制
|
|
if (ManYanObject) DrawDungeonObjInfo(obj, ManYanObject);
|
|
//湮灭圣所对象绘制
|
|
if (YanMieObject) DrawDungeonObjInfo(obj, YanMieObject);
|
|
|
|
//震颤A对象绘制
|
|
if (ZhenChan_A_Object) DrawDungeonObjInfo(obj, ZhenChan_A_Object);
|
|
//震颤B对象绘制
|
|
if (ZhenChan_B_Object) DrawDungeonObjInfo(obj, ZhenChan_B_Object);
|
|
//擎天A对象绘制
|
|
if (QingTian_A_Object) DrawDungeonObjInfo(obj, QingTian_A_Object);
|
|
//擎天B对象绘制
|
|
if (QingTian_B_Object) DrawDungeonObjInfo(obj, QingTian_B_Object);
|
|
//舰炮防御战对象绘制
|
|
if (JianPaoObject) DrawDungeonObjInfo(obj, JianPaoObject);
|
|
}
|
|
|
|
|
|
|
|
//2阶段
|
|
if (State == 3) {
|
|
if (GuangJitanRuKouObject) DrawDungeonObjInfo(obj, GuangJitanRuKouObject); //光祭坛入口对象
|
|
if (AnJitanRuKouObject) DrawDungeonObjInfo(obj, AnJitanRuKouObject); //光祭坛入口对象
|
|
|
|
if (GuangJitanObject) DrawDungeonObjInfo(obj, GuangJitanObject); //光祭坛对象
|
|
if (AnJitanObject) DrawDungeonObjInfo(obj, AnJitanObject); //暗祭坛对象
|
|
|
|
if (LiLiangObject) DrawDungeonObjInfo(obj, LiLiangObject); //力量祭坛对象
|
|
if (ZhiHuiObject) DrawDungeonObjInfo(obj, ZhiHuiObject); //智慧祭坛对象
|
|
|
|
|
|
if (NengYuanKongZhiObject) DrawDungeonObjInfo(obj, NengYuanKongZhiObject); //能源控制对象
|
|
|
|
if (GuangShengDianObject) DrawDungeonObjInfo(obj, GuangShengDianObject); //光圣殿对象
|
|
if (AnShengDianObject) DrawDungeonObjInfo(obj, AnShengDianObject); //暗圣殿对象
|
|
|
|
if (JiXieWangZuoGuangObject) DrawDungeonObjInfo(obj, JiXieWangZuoGuangObject); //光卢克
|
|
if (JiXieWangZuoAnObject) DrawDungeonObjInfo(obj, JiXieWangZuoAnObject); //暗卢克
|
|
|
|
if (NengYuanChuCangObject) DrawDungeonObjInfo(obj, NengYuanChuCangObject); //能源储藏对象
|
|
}
|
|
|
|
|
|
//绘制主界面复活币剩余
|
|
T_DrawStayAni(obj, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", X + 45, Y + 510, 93, "卢克攻坚战况主界面复活币剩余");
|
|
|
|
|
|
//绘制主界面复活币剩余
|
|
local CoinCount = (FHMAX - FHNOW).tostring();
|
|
for (local i = 0; i < 2; i++) {
|
|
if (CoinCount.len() >= (i + 1)) T_DrawStayAni(obj, "common/anton/new/newtime.ani", X + 45 + 75 + (i * 18), Y + 537, CoinCount.slice(0 + i, 1 + i).tointeger(), "卢克剩余复活币" + i);
|
|
}
|
|
}
|
|
|
|
//设置鼠标事件类型
|
|
function SetMouseTesk() {
|
|
//有活动设置
|
|
if (MouseTask == 1) IMouse.SetMouseTask(47);
|
|
//点击就还原
|
|
if (IMouse.GetRButton() == 2 && MouseTask == 1) MouseTask = 2;
|
|
//还原以后在解锁
|
|
if (MouseTask == 2) {
|
|
IMouse.SetMouseTask(0);
|
|
MouseTask = 0;
|
|
}
|
|
}
|
|
|
|
//判断是否可重合
|
|
function PosEvent(Pos, MPos) {
|
|
local Offset = abs(Pos - MPos);
|
|
if (Offset < 10) return true;
|
|
else return false;
|
|
}
|
|
//判断自身地图相关事件
|
|
function MapEventTest(obj) {
|
|
if (sq_GetCurrentModuleType() != 3) return;
|
|
local stage = sq_GetGlobaludpModuleStage();
|
|
local MapIndex = sq_GetMapIndex(stage);
|
|
if (MapIndexTable.rawin(MapIndex)) {
|
|
local X = obj.getXPos();
|
|
local Y = obj.getYPos();
|
|
local Mark = false;
|
|
if (MapIndex == 33103 && PosEvent(X, 737) && PosEvent(Y, 354)) Mark = true;
|
|
if (MapIndex == 33100 && PosEvent(X, 369) && PosEvent(Y, 387)) Mark = true;
|
|
if (MapIndex == 33116 && PosEvent(X, 365) && PosEvent(Y, 374)) Mark = true;
|
|
if (MapIndex == 33119 && PosEvent(X, 838) && PosEvent(Y, 424)) Mark = true;
|
|
|
|
if (Mark == true && MapMoveMark == false) {
|
|
local LukeFHMoveDungeon = Json_STL("LukeFHMoveDungeon");
|
|
LukeFHMoveDungeon.Put("op", 25600157);
|
|
LukeFHMoveDungeon.Put("DungeonUID", MapIndexTable[MapIndex]);
|
|
local str = LukeFHMoveDungeon.GetString();
|
|
L_sq_SendPackType(130);
|
|
L_sq_SendPackWChar(str);
|
|
L_sq_SendPack();
|
|
LukeFHMoveDungeon.Delete();
|
|
MapMoveMark = true;
|
|
} else if (Mark == false) MapMoveMark = false;
|
|
} else {
|
|
MapMoveMark = false;
|
|
}
|
|
}
|
|
|
|
//绘制透明度静态图片
|
|
function Luke_DrawStayAniAlpha(obj, aniFileName, x, y, index, aniname, Alpha) {
|
|
local SelectAni = obj.getVar().GetAnimationMap(aniname, aniFileName);
|
|
sq_DrawSpecificFrameEffect_SIMPLE(SelectAni, x, y, index, sq_RGB(255, 255, 255), sq_ALPHA(Alpha), false);
|
|
return SelectAni;
|
|
}
|
|
|
|
//绘制透明度静态图片
|
|
function Luke_DrawStayAniAlphaRate(obj, aniFileName, x, y, index, aniname, Alpha, rate) {
|
|
local SelectAni = obj.getVar().GetAnimationMap(aniname, aniFileName);
|
|
SelectAni.setImageRateFromOriginal(rate, rate);
|
|
sq_DrawSpecificFrameEffect_SIMPLE(SelectAni, x, y, index, sq_RGB(255, 255, 255), sq_ALPHA(Alpha), false);
|
|
return SelectAni;
|
|
}
|
|
|
|
|
|
//绘制翻牌奖励
|
|
function DrawReward(obj, Time, Reward_Object, AllReward_Object, Reward_Info) {
|
|
local PassTime = Reward_Info[0];
|
|
local Coin = Reward_Info[1];
|
|
|
|
//绘制背景图
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X, Y, 10, "卢克翻牌主界面背景", 230);
|
|
|
|
|
|
//绘制阶段状态
|
|
local Reani = 1;
|
|
if (State == 4) Reani = 7;
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 300, Y + 40, 0, "a卢克翻牌阶段状态", 250);
|
|
//绘制成功标志
|
|
local Rate = sq_GetAccel(400, 100, Time, 500, false);
|
|
T_DrawStayAniRate(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 300, Y + 40, Reani, "a卢克翻牌成功标志1", Rate.tofloat() / 100.0);
|
|
|
|
//绘制通关信息条划出
|
|
if (Time >= 500) {
|
|
local Xpos;
|
|
if (Time < 3000) Xpos = sq_GetAccel(675, 0, Time - 500, 300, false);
|
|
if (Time >= 3000) Xpos = sq_GetAccel(0, -675, Time - 3000, 300, false);
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 115 + Xpos, Y + 200, 11, "a卢克翻牌阶段状态", 250);
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 115 + Xpos, Y + 200, 12, "a卢克翻牌阶段状态1", 250);
|
|
}
|
|
|
|
//绘制时间
|
|
if (Time >= 800) {
|
|
local Xpos;
|
|
if (Time < 3000) Xpos = sq_GetAccel(675, 0, Time - 800, 300, false);
|
|
if (Time >= 3000) Xpos = sq_GetAccel(0, -675, Time - 3000, 300, false);
|
|
//计算剩余时间并绘制
|
|
local Hours = (PassTime / 3600000).tostring();
|
|
if (Hours.len() < 2) Hours = "0" + Hours;
|
|
if (Hours.len() > 2) Hours = Hours.slice(Hours.len() - 2, Hours.len());
|
|
local minutes = (PassTime / 60000).tostring();
|
|
if (minutes.len() < 2) minutes = "0" + minutes;
|
|
if (minutes.len() > 2) minutes = minutes.slice(minutes.len() - 2, minutes.len());
|
|
local seconds = (PassTime / 1000 % 60).tostring();
|
|
if (seconds.len() < 2) seconds = "0" + seconds;
|
|
if (seconds.len() > 2) seconds = seconds.slice(seconds.len() - 2, seconds.len());
|
|
|
|
for (local i = 0; i < 2; i++) {
|
|
T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 538 - 300 + (i * 15), Y + 59 + 164, Hours.slice(0 + i, 1 + i).tointeger(), "卢克奖励部分时间时" + i);
|
|
T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 588 - 300 + (i * 15), Y + 59 + 164, minutes.slice(0 + i, 1 + i).tointeger(), "卢克奖励部分时间分" + i);
|
|
T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 638 - 300 + (i * 15), Y + 59 + 164, seconds.slice(0 + i, 1 + i).tointeger(), "卢克奖励部分时间分" + i);
|
|
}
|
|
T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 270, Y + 57 + 164, 10, "卢克奖励部分时间时分");
|
|
T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 320, Y + 57 + 164, 11, "卢克奖励部分时间时秒");
|
|
|
|
for (local z = 0; z < Coin.tostring().len(); z++) {
|
|
T_DrawStayAni(obj, "common/luke/new/newtime.ani", X + Xpos + 520 + (z * 15), Y + 59 + 164, Coin.tostring().slice(0 + z, 1 + z).tointeger(), "卢克奖励部分时间复活币" + z);
|
|
}
|
|
//T_DrawStayAni(obj, "common/anton/new/newtime.ani", X + 348 , Y + 51 + 164, 10, "卢克奖励部分时间时点");
|
|
}
|
|
|
|
local CradTab = Reward_Object;
|
|
|
|
//绘制卡牌
|
|
if (Time >= 1300) {
|
|
local Alpha;
|
|
if (Time < 3000) Alpha = sq_GetAccel(0, 250, Time - 1300, 700, false);
|
|
if (Time >= 3000) Alpha = sq_GetAccel(250, 0, Time - 3000, 700, false);
|
|
for (local i = 0; i < 4; i++) {
|
|
local BackGroundAniIndex = 20;
|
|
if (i >= CradTab.len()) {
|
|
//绘制卡牌背景图
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 94 + (153 * i), Y + 300, BackGroundAniIndex, "a卢克翻牌卡片界面背景", Alpha);
|
|
//Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 160 + (153 * i), Y + 416, 19, "卢克翻牌无卡片背景", Alpha);
|
|
//Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 160 + (153 * i), Y + 416, 20, "卢克翻牌无卡片背景Eff", Alpha);
|
|
continue;
|
|
}
|
|
if (CradTab[i].SetFlagAniIndex == 1) BackGroundAniIndex = 22;
|
|
//绘制卡牌背景图
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 94 + (153 * i), Y + 300, BackGroundAniIndex, "a卢克翻牌卡片界面背景1", Alpha);
|
|
//绘制自己的卡牌选择光效
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 94 + (153 * i) - 19, Y + 300 - 18, 21, "a卢克翻牌卡片界面背景", Alpha);
|
|
//绘制角色标记
|
|
local SetFlagAniIndex = 9;
|
|
SetFlagAniIndex += CradTab[i].SetFlagAniIndex;
|
|
//Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + 97 + (153 * i), Y + 330, SetFlagAniIndex, "a卢克翻牌卡片界面人物框" + SetFlagAniIndex, Alpha);
|
|
|
|
if (Time >= 2000) {
|
|
local mat = 3000;
|
|
//绘制角色头像
|
|
Luke_DrawStayAniAlphaRate(obj, "common/anton/face/" + CradTab[i].PlayerJob + "/" + (CradTab[i].PlayerJobEx % 16) + ".ani", X + 102 + (153 * i) + 22, Y + 334 - 14, 0, "翻牌卢克头像编号" + CradTab[i].PlayerJob + CradTab[i].PlayerJobEx, Alpha, 0.70);
|
|
//绘制角色名字
|
|
if (Time < mat) L_Code_STL(CradTab[i].Name, X + 145 + (153 * i) + 8, Y + 324, 0xFFffffff, 1);
|
|
|
|
local sssq = 8;
|
|
local sssw = 50;
|
|
//绘制道具边框
|
|
if (Time < mat) T_DrawStayAni(obj, "common/anton/new/newreward.ani", X + 153 + (153 * i) + sssq, Y + 412 - sssw, CradTab[i].ItemGrade + 12, "卢克翻牌卡片道具边框" + CradTab[i].ItemGrade);
|
|
//绘制道具
|
|
if (Time < mat) L_Sq_DrawItem(X + 156 + (153 * i) + sssq, Y + 415 - sssw, CradTab[i].ItemId, CradTab[i].ItemCount, 0, 0, 0);
|
|
//绘制道具名字
|
|
if (Time < mat) L_Code_STL(CradTab[i].ItemName, X + 167 + (153 * i) - BasicsDrawTool.GetOffserFromLen(CradTab[i].ItemName, 1.5) + sssq, Y + 450 - sssw, 0xffffffff, 1);
|
|
}
|
|
}
|
|
}
|
|
//直接跳过一阶段的全体翻牌
|
|
if (State == 1 && Time >= 3100) State = 2;
|
|
|
|
if (State == 4) {
|
|
local AllCradTab = AllReward_Object;
|
|
//绘制所有人卡牌
|
|
if (Time >= 3700) {
|
|
local Xoffset = -80;
|
|
local Yoffset = -200;
|
|
local Alpha;
|
|
Alpha = sq_GetAccel(0, 250, Time - 3700, 700, false);
|
|
|
|
for (local i = 0; i < 8; i++) {
|
|
|
|
local BackGroundAniIndex = 20;
|
|
if (i >= AllCradTab.len()) {
|
|
|
|
//绘制卡牌背景图
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + Xoffset + 118 + (180 * (i % 4)), Y + Yoffset - 30 + 392 + (190 * (i / 4)), 15, "卢克翻牌卡片界面背景acaww", Alpha);
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + Xoffset + 130 + (180 * (i % 4)), Y + Yoffset - 30 + 420 + (190 * (i / 4)), BackGroundAniIndex, "卢克翻牌卡片界面背景aca", Alpha);
|
|
continue;
|
|
}
|
|
|
|
if (AllCradTab[i].SetFlagAniIndex == 1) BackGroundAniIndex = 22;
|
|
//绘制卡牌背景图
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + Xoffset + 118 + (180 * (i % 4)), Y + Yoffset - 30 + 392 + (190 * (i / 4)), 15, "卢克翻牌卡片界面背景acaww" + 15, Alpha);
|
|
Luke_DrawStayAniAlpha(obj, "common/luke/raid/luke/reward/luke_reward_new.ani", X + Xoffset + 130 + (180 * (i % 4)), Y + Yoffset - 30 + 420 + (190 * (i / 4)), BackGroundAniIndex, "卢克翻牌卡片界面背景aca" + BackGroundAniIndex, Alpha);
|
|
|
|
|
|
//绘制角色头像
|
|
Luke_DrawStayAniAlphaRate(obj, "common/anton/face/" + AllCradTab[i].PlayerJob + "/" + (AllCradTab[i].PlayerJobEx % 16) + ".ani", X + Xoffset + 102 + (180 * (i % 4)) + 22 + 37, Y + Yoffset - 30 + 388 + (190 * (i / 4)) - 14 + 67, 0, "翻牌卢克头像编号" + AllCradTab[i].PlayerJob + AllCradTab[i].PlayerJobEx, Alpha, 0.70);
|
|
|
|
|
|
if (Time >= 4400) {
|
|
//绘制角色名字
|
|
L_Code_STL(AllCradTab[i].Name, X + Xoffset + 137 + (180 * (i % 4)) + 50, Y + Yoffset - 30 + 394 + (190 * (i / 4)) + 50, 0xFF9bc8e6, 1);
|
|
//绘制道具边框
|
|
T_DrawStayAni(obj, "common/anton/new/newreward.ani", X + Xoffset + 153 + (180 * (i % 4)) + 43, Y + Yoffset - 30 + 417 + (190 * (i / 4)) + 68, AllCradTab[i].ItemGrade + 12, "卢克翻牌卡片道具边框" + AllCradTab[i].ItemGrade);
|
|
//绘制道具
|
|
L_Sq_DrawItem(X + Xoffset + 156 + (180 * (i % 4)) + 43, Y + Yoffset - 30 + 420 + (190 * (i / 4)) + 68, AllCradTab[i].ItemId, AllCradTab[i].ItemCount, 0, 0, 0);
|
|
//绘制道具名字
|
|
L_Code_STL(AllCradTab[i].ItemName, X + Xoffset + 167 + (180 * (i % 4)) - BasicsDrawTool.GetOffserFromLen(AllCradTab[i].ItemName, 1.5) + 43, Y + Yoffset - 30 + 455 + (190 * (i / 4)) + 68, 0xffffffff, 1);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//获取BUFF对应的OBJ编号
|
|
function GETBUFFOBJINDEX(num) {
|
|
switch (num) {
|
|
case 0:
|
|
return 537170;
|
|
case 1:
|
|
return 537190;
|
|
case 2:
|
|
return 537210;
|
|
case 4:
|
|
return 537270;
|
|
case 6:
|
|
return 537300;
|
|
case 8:
|
|
return 537240;
|
|
case 10:
|
|
return 537330;
|
|
case 11:
|
|
return 537360;
|
|
case 12:
|
|
return 537370;
|
|
}
|
|
}
|
|
|
|
|
|
//卢克BUFF obj 机制
|
|
function MachineLukeBuffPassObject(obj) {
|
|
obj = sq_GetCNRDObjectToSQRCharacter(obj);
|
|
local stage = sq_GetGlobaludpModuleStage();
|
|
local dungeon = sq_GetDungeonByStage(stage);
|
|
local dungeonIndex = sq_GetDuegonIndex(dungeon);
|
|
local MapIndex = sq_GetMapIndex(stage);
|
|
if (MapIndex != -1) {
|
|
if (!MapVar || MapVar != MapIndex) {
|
|
//同步地图暂存器
|
|
MapVar = MapIndex;
|
|
//诞生之圣所
|
|
if (dungeonIndex == 15154 || dungeonIndex == 15155 || dungeonIndex == 15156) {
|
|
local objindex = GETBUFFOBJINDEX(DanShengBuffObject[0]);
|
|
obj.sq_SendCreatePassiveObjectPacket(objindex, 0, 120, 1, 0);
|
|
}
|
|
//湮灭之圣所
|
|
if (dungeonIndex == 15157 || dungeonIndex == 15158 || dungeonIndex == 15159) {
|
|
local objindex = GETBUFFOBJINDEX(YanMieBuffObject[0]);
|
|
obj.sq_SendCreatePassiveObjectPacket(objindex, 0, 120, 1, 0);
|
|
}
|
|
//蔓延之圣所
|
|
if (dungeonIndex == 15160 || dungeonIndex == 15161 || dungeonIndex == 15162) {
|
|
local objindex = GETBUFFOBJINDEX(ManYanBuffObject[0]);
|
|
obj.sq_SendCreatePassiveObjectPacket(objindex, 0, 120, 1, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
//如果时间容器不存在就启动时间容器
|
|
if (MapTimer == null) {
|
|
MapTimer = TimeSTL("LukeMapTimer", 500);
|
|
MapTimer.Reset();
|
|
MapTimer.Start();
|
|
} else {
|
|
|
|
|
|
local T = MapTimer.Get();
|
|
if (T >= 500) {
|
|
MapTimer.Reset();
|
|
MapTimer.Start();
|
|
|
|
//如果在四个祭坛中
|
|
if (dungeonIndex == 15057 || dungeonIndex == 15058 || dungeonIndex == 15059 || dungeonIndex == 15060) {
|
|
if (NengYuanKongZhiObject && NengYuanKongZhiObject.rawin("ClearNumber") && NengYuanKongZhiObject.ClearNumber != 0) {
|
|
obj.sq_SendCreatePassiveObjectPacket(202303008, 0, 120, 1, 0);
|
|
}
|
|
}
|
|
//如果是在光暗卢克中
|
|
if (dungeonIndex == 15057 || dungeonIndex == 15058) {
|
|
if (NengYuanChuCangObject && NengYuanChuCangObject.rawin("ClearNumber") && NengYuanChuCangObject.ClearNumber != 0) {
|
|
obj.sq_SendCreatePassiveObjectPacket(202303008, 0, 120, 1, 0);
|
|
}
|
|
}
|
|
|
|
getLukeRaid_QuattuorManusMK2ChangeLayer(obj);
|
|
|
|
//遍历对象管理器并执行操作
|
|
local objectManager = obj.getObjectManager();
|
|
if (!objectManager) return;
|
|
local CollisionObjectNumber = objectManager.getCollisionObjectNumber();
|
|
for (local i = 0; i < CollisionObjectNumber; i += 1) {
|
|
local object = objectManager.getCollisionObject(i);
|
|
local ObjectIndex = object.getCollisionObjectIndex();
|
|
if (ObjectIndex == 202303004) {
|
|
local LukeBrokePwoerPack = Json_STL("LukeBrokePwoerPack");
|
|
LukeBrokePwoerPack.Put("op", 25600181);
|
|
local str = LukeBrokePwoerPack.GetString();
|
|
L_sq_SendPackType(130);
|
|
L_sq_SendPackWChar(str);
|
|
L_sq_SendPack();
|
|
LukeBrokePwoerPack.Delete();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function Run(obj) {
|
|
if (State < 0) return;
|
|
|
|
//卢克BUFFObj 机制
|
|
MachineLukeBuffPassObject(obj);
|
|
|
|
DrawStartAni(obj, State);
|
|
|
|
//如果被人已经通关了那么寻找时间返回城镇
|
|
if (ReturnTwonFlag == 1 && sq_GetCurrentModuleType() == 3 && obj.getState() != 0) {
|
|
local LukeFlagBackTown = Json_STL("LukeFlagBackTownJson");
|
|
LukeFlagBackTown.Put("op", 25600167);
|
|
local str = LukeFlagBackTown.GetString();
|
|
L_sq_SendPackType(130);
|
|
L_sq_SendPackWChar(str);
|
|
L_sq_SendPack();
|
|
LukeFlagBackTown.Delete();
|
|
ReturnTwonFlag = 0;
|
|
}
|
|
|
|
//设置鼠标类型事件
|
|
SetMouseTesk();
|
|
//判断自身地图相关事件
|
|
MapEventTest(obj);
|
|
|
|
//绘制展开攻坚信息按钮
|
|
DrawMainButton(obj);
|
|
//绘制攻坚剩余时间
|
|
if (PageState == 0 && (State == 0 || State == 3)) {
|
|
DrawStartAni(obj, State);
|
|
DrawTime(obj);
|
|
}
|
|
|
|
//如果是翻牌奖励阶段 没有打开主窗口
|
|
if (State == 1 || State == 4) {
|
|
if (!sq_GetPopupWindowMainCotrol(267)) {
|
|
L_NewWindows("Lenheart", 267, 0x65535);
|
|
PageState = 1;
|
|
}
|
|
}
|
|
|
|
if (State == 0) {
|
|
local CheckLukeCardPower_Button = LukeButtonPro(obj, "aLukeCheckLukeCardPower_Button", 690, 60, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", 103, 22, 86);
|
|
CheckLukeCardPower_Button.SetRectEnble(true, "aLukeCheckLukeCardPower_Buttonr", 690, 60, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", 87);
|
|
CheckLukeCardPower_Button.SetCustomClickEnble(true, "aLukeCheckLukeCardPower_Buttonc", 690, 60, "common/luke/raid/luke/luke_game_navigation/luke_game_navigation.ani", 88);
|
|
CheckLukeCardPower_Button.Show();
|
|
if (CheckLukeCardPower_Button.isLBActive()) {
|
|
obj.sq_PlaySound("CLICK_BUTTON1");
|
|
L_NewWindows("Lenheart", 267, 0x65535);
|
|
PageCardState = true;
|
|
}
|
|
if (!sq_GetPopupWindowMainCotrol(267)) PageCardState = false;
|
|
}
|
|
}
|
|
|
|
|
|
function Draw(obj) {
|
|
|
|
//如果页面被打开 绘制攻坚队攻坚信息
|
|
if (PageState == 1 && (State == 0 || State == 3)) DrawLukePartyInfo(obj);
|
|
|
|
//绘制攻坚剩余时间
|
|
if (State == 0 || State == 3) DrawTime(obj);
|
|
|
|
if (State == 1 || State == 4) DrawReward(obj, Reward_Timer_Object.Get(), Reward_Object, AllReward_Object, Reward_Info);
|
|
|
|
DrawStartAni(obj, State);
|
|
|
|
//查看卡牌
|
|
if (PageCardState) {
|
|
DrawLukeInfoCard(obj);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
function LukeDungeonInfoControlFunc(obj) {
|
|
local RootTab = getroottable();
|
|
if (RootTab.rawin("LUKEDUNGEONINFOCONTROL") == false) {
|
|
local LUKEDUNGEONINFOCONTROLOBJ = LukeDungeonInfoControl_C();
|
|
RootTab.rawset("LUKEDUNGEONINFOCONTROL", LUKEDUNGEONINFOCONTROLOBJ);
|
|
}
|
|
RootTab["LUKEDUNGEONINFOCONTROL"].Run(obj);
|
|
} |