2024-09-16 17:09:36 +08:00
|
|
|
/*
|
|
|
|
|
文件名:AradPass.nut
|
|
|
|
|
路径:Project/AradPass/AradPass.nut
|
|
|
|
|
创建日期:2024-08-13 09:39
|
|
|
|
|
文件用途:阿拉德战令
|
|
|
|
|
*/
|
|
|
|
|
dofile("sqr/Project/AradPass/AradPass_Reward.nut");
|
|
|
|
|
dofile("sqr/Project/AradPass/AradPass_Quest.nut");
|
|
|
|
|
dofile("sqr/Project/AradPass/AradPass_Help.nut");
|
|
|
|
|
class AradPassC extends LenheartNewUI_Windows {
|
|
|
|
|
//调试模式
|
|
|
|
|
// DeBugMode = true;
|
|
|
|
|
|
|
|
|
|
//不是窗口
|
|
|
|
|
// NoWindow = true;
|
|
|
|
|
|
|
|
|
|
//是否可见
|
|
|
|
|
Visible = false;
|
|
|
|
|
|
|
|
|
|
//基础信息
|
|
|
|
|
BaseInfo = null;
|
|
|
|
|
|
|
|
|
|
//标题栏
|
|
|
|
|
Title = null;
|
|
|
|
|
//当前页面
|
|
|
|
|
Page = 0;
|
|
|
|
|
|
|
|
|
|
QuestTitle = null;
|
|
|
|
|
QuestPage = 0;
|
|
|
|
|
|
|
|
|
|
//标签提示
|
|
|
|
|
TabSuccessTips = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//标签提示
|
|
|
|
|
TabSuccessTips = null;
|
|
|
|
|
|
|
|
|
|
//等级按钮
|
|
|
|
|
LevelButton = null;
|
|
|
|
|
LevelPage = 0;
|
|
|
|
|
|
|
|
|
|
//战令等级
|
|
|
|
|
MyPassLevel = 2;
|
|
|
|
|
|
|
|
|
|
//ItemInfo
|
|
|
|
|
ItemInfoObject = null;
|
|
|
|
|
ItemInfoDrawS = null;
|
|
|
|
|
|
|
|
|
|
RewardInfoObject = null;
|
|
|
|
|
RewardInfoEffTimer = null;
|
|
|
|
|
//奖励完成提示
|
|
|
|
|
RewardSuccessTips = null;
|
|
|
|
|
|
|
|
|
|
//页面选择器
|
|
|
|
|
PageSelectM = 0;
|
|
|
|
|
//奖励页面
|
|
|
|
|
RewardPage = null;
|
|
|
|
|
//任务页面
|
|
|
|
|
QuestPage = null;
|
|
|
|
|
//助力页面
|
|
|
|
|
HelpPage = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function GetBaseInfoCallBack2(Chunk) {
|
|
|
|
|
local Jso = Json.Decode(Chunk);
|
|
|
|
|
BaseInfo = {};
|
|
|
|
|
BaseInfo = clone(Jso);
|
|
|
|
|
|
|
|
|
|
LevelPage = ((BaseInfo.Exp / 1000) + 1) / 10;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function GetPlayerRewardCallBack(Chunk) {
|
|
|
|
|
//还原奖励领取提示数组
|
|
|
|
|
RewardSuccessTips = [0, 0, 0, 0, 0];
|
|
|
|
|
TabSuccessTips[0] = 0;
|
|
|
|
|
|
|
|
|
|
RewardInfoObject = {};
|
|
|
|
|
local Jso = Json.Decode(Chunk);
|
|
|
|
|
foreach(Pos, Value in Jso.reward) {
|
|
|
|
|
RewardInfoObject.rawset(Pos, Value);
|
|
|
|
|
if ((Pos)<(BaseInfo.Exp / 1000 + 1)) {
|
|
|
|
|
//判断是否有未领取的道具绘制感叹号要用
|
|
|
|
|
local Page = (Pos / 10);
|
|
|
|
|
if (RewardSuccessTips[Page] == 0) {
|
|
|
|
|
if (Value.isOrdinary == 0) {
|
|
|
|
|
RewardSuccessTips[Page] = 1;
|
|
|
|
|
TabSuccessTips[0] = 1;
|
|
|
|
|
}
|
|
|
|
|
if (BaseInfo.isVip) {
|
|
|
|
|
if (Value.isadditional == 0) {
|
|
|
|
|
RewardSuccessTips[Page] = 1;
|
|
|
|
|
TabSuccessTips[0] = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
|
|
|
|
Childrens = [];
|
|
|
|
|
Title = [];
|
|
|
|
|
RewardSuccessTips = [0, 0, 0, 0, 0];
|
|
|
|
|
//标签完成提示
|
|
|
|
|
TabSuccessTips = [0, 0, 0];
|
|
|
|
|
//奖励动画时间
|
|
|
|
|
RewardInfoEffTimer = Clock();
|
|
|
|
|
//注册控件
|
|
|
|
|
RegisterWidget();
|
|
|
|
|
|
|
|
|
|
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
|
|
|
|
|
|
|
|
|
RewardPage = AradPass_RewardC("阿拉德战令_奖励窗口", X, Y + 210, 558, 274, 0);
|
|
|
|
|
QuestPage = AradPass_QuestC("阿拉德战令_任务窗口", X, Y + 210, 558, 274, 0);
|
|
|
|
|
HelpPage = AradPass_HelpC("阿拉德战令_助力窗口", X, Y + 210, 558, 274, 0);
|
|
|
|
|
|
|
|
|
|
Pack_Control.rawset(20059006, GetBaseInfoCallBack2.bindenv(this));
|
|
|
|
|
Pack_Control.rawset(20059004, GetPlayerRewardCallBack.bindenv(this));
|
|
|
|
|
|
|
|
|
|
GetBaseInfo();
|
|
|
|
|
GetPlayerReward();
|
|
|
|
|
|
|
|
|
|
//默认构造时切换到0页
|
|
|
|
|
ChangePage(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ChangePage(ToPage) {
|
|
|
|
|
|
|
|
|
|
foreach(ButtonObj in Title) {
|
|
|
|
|
ButtonObj.State = 0;
|
|
|
|
|
}
|
|
|
|
|
Page = ToPage;
|
|
|
|
|
Title[ToPage].State = 1;
|
|
|
|
|
|
|
|
|
|
RemoveChild("阿拉德战令_奖励窗口");
|
|
|
|
|
RemoveChild("阿拉德战令_任务窗口");
|
|
|
|
|
RemoveChild("阿拉德战令_助力窗口");
|
|
|
|
|
|
|
|
|
|
PageSelectM = ToPage;
|
|
|
|
|
switch (ToPage) {
|
|
|
|
|
case 0: {
|
|
|
|
|
AddChild(RewardPage);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 1: {
|
|
|
|
|
AddChild(QuestPage);
|
|
|
|
|
QuestPage.OpenCallBack();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 2:
|
|
|
|
|
AddChild(HelpPage);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function RegisterWidget() {
|
|
|
|
|
//关闭按钮
|
|
|
|
|
local CloseButton = LenheartNewUI_BaseButton(540, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
|
|
|
|
|
CloseButton.OnClick = function() {
|
|
|
|
|
this.Visible = false;
|
|
|
|
|
}.bindenv(this);
|
|
|
|
|
Childrens.append(CloseButton);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local Tabbars1 = LenheartNewUI_TabbarsText(12, 27, "奖励");
|
|
|
|
|
Tabbars1.State = 1;
|
|
|
|
|
AddChild(Tabbars1);
|
|
|
|
|
Tabbars1.OnClick = function() {
|
|
|
|
|
ChangePage(0);
|
|
|
|
|
}.bindenv(this);
|
|
|
|
|
Title.append(Tabbars1);
|
|
|
|
|
|
|
|
|
|
local Tabbars2 = LenheartNewUI_TabbarsText(74, 27, "任务");
|
|
|
|
|
AddChild(Tabbars2);
|
|
|
|
|
Tabbars2.OnClick = function() {
|
|
|
|
|
ChangePage(1);
|
|
|
|
|
}.bindenv(this);
|
|
|
|
|
Title.append(Tabbars2);
|
|
|
|
|
|
|
|
|
|
local Tabbars3 = LenheartNewUI_TabbarsText(136, 27, "社交");
|
|
|
|
|
AddChild(Tabbars3);
|
|
|
|
|
Tabbars3.OnClick = function() {
|
|
|
|
|
ChangePage(2);
|
|
|
|
|
}.bindenv(this);
|
|
|
|
|
Title.append(Tabbars3);
|
|
|
|
|
|
|
|
|
|
//激活按钮
|
|
|
|
|
local ActiveButton = LenheartNewUI_ButtonText(102, 121, 15, "激 活");
|
|
|
|
|
ActiveButton.SetFrame(null, 323);
|
|
|
|
|
ActiveButton.SetTextOffset(-3, 1);
|
|
|
|
|
ActiveButton.OnClick = function() {
|
|
|
|
|
local T = {
|
|
|
|
|
op = 20059013
|
|
|
|
|
}
|
|
|
|
|
SendPackEx(T);
|
|
|
|
|
}.bindenv(this);
|
|
|
|
|
ActiveButton.SetCallBackFunc(function(Win) {
|
|
|
|
|
if (!BaseInfo.isVip)
|
|
|
|
|
Win.Visible = true;
|
|
|
|
|
else
|
|
|
|
|
Win.Visible = false;
|
|
|
|
|
}.bindenv(this))
|
|
|
|
|
AddChild(ActiveButton);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//绘制等级数字
|
|
|
|
|
function DrawNumber(num, ...) {
|
|
|
|
|
num = num.tostring();
|
|
|
|
|
local x = X + 38;
|
|
|
|
|
local y = Y + 110;
|
|
|
|
|
if (num.len() == 2) x = X + 28;
|
|
|
|
|
for (local i = 0; i< num.len(); i++) {
|
|
|
|
|
local n = num.slice(i, i + 1);
|
|
|
|
|
n = n.tointeger();
|
|
|
|
|
local Img = "interface2/ui/aradpass/chn/aradpassnum.img";
|
|
|
|
|
if (BaseInfo.isVip) Img = "interface2/ui/aradpass/chn/aradpassnumy.img";
|
|
|
|
|
L_sq_DrawImg(Img, n, x + (i * 18), y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//绘制等级数字
|
|
|
|
|
function DrawSmallNumber(num, bx) {
|
|
|
|
|
num = num.tostring();
|
|
|
|
|
local x = X + 38 + bx;
|
|
|
|
|
local y = Y + 250;
|
|
|
|
|
if (num.len() == 2) x = X + 33 + bx;
|
|
|
|
|
for (local i = 0; i< num.len(); i++) {
|
|
|
|
|
local n = num.slice(i, i + 1);
|
|
|
|
|
n = n.tointeger();
|
|
|
|
|
local Img = "interface2/ui/aradpass/chn/aradpassnum.img";
|
|
|
|
|
if (BaseInfo.isVip) Img = "interface2/ui/aradpass/chn/aradpassnumy.img";
|
|
|
|
|
L_sq_DrawImg(Img, n, x + (i * 9), y, 0, sq_RGBA(255, 255, 255, 255), 0.5, 0.5);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//绘制主界面
|
|
|
|
|
function DrawMain(obj) {
|
|
|
|
|
//Item信息框一般为211的宽度
|
|
|
|
|
L_sq_DrawWindow(X, Y + 10, 540, 420, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
|
|
|
|
|
L_sq_DrawWindow(X + 6, Y + 45, 528, 384, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
|
|
|
|
|
//绘制背景框标题栏
|
|
|
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpassmain.img", 0, X + 1, Y);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//绘制主题栏
|
|
|
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 0, X + 11, Y + 50);
|
|
|
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass_banner.img", 0, X + 11, Y + 50);
|
|
|
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 3, X + 547 - 252, Y + 207 - 47);
|
|
|
|
|
|
|
|
|
|
//绘制等级与经验值
|
|
|
|
|
MyPassLevel = BaseInfo.Exp / 1000 + 1;
|
|
|
|
|
DrawNumber(MyPassLevel);
|
|
|
|
|
local jystr = (BaseInfo.Exp % 1000) + " / " + 1000;
|
|
|
|
|
L_sq_DrawCode(jystr, X + 50 - LenheartTextClass.GetStringLength(jystr) / 2, Y + 50 + 20 + 80, sq_RGBA(179, 169, 135, 255), 0, 1);
|
|
|
|
|
if (BaseInfo.isVip) {
|
|
|
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 6, X + 11 + 22, Y + 50 + 24);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//绘制战令名
|
|
|
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpassl.img", 0, X + 11 + 91, Y + 50 + 20);
|
|
|
|
|
|
|
|
|
|
//绘制时装套装名
|
|
|
|
|
local szstr = BaseInfo.Apn;
|
|
|
|
|
// local szstr = "使用时,选择的装备无论目前强化 /增幅数值多寡";
|
|
|
|
|
L_sq_DrawCode(szstr, X + 500 - LenheartTextClass.GetStringLength(szstr) / 2, Y + 192, sq_RGBA(179, 169, 135, 255), 0, 1);
|
|
|
|
|
|
|
|
|
|
//绘制结束时间
|
|
|
|
|
L_sq_DrawCode("距离结束还有" + BaseInfo.EndTime + "天", X + 11 + 91, Y + 50 + 20 + 31, sq_RGBA(134, 120, 79, 255), 0, 1);
|
|
|
|
|
|
|
|
|
|
//绘制主要奖励框
|
|
|
|
|
for (local i = 0; i< 5; i++) {
|
|
|
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 4, X + 11 + 91 + (36 * i), Y + 31 + 124);
|
|
|
|
|
DrawItemEx(X + 11 + 95 + (36 * i), Y + 33 + 124, BaseInfo.showItemIds[i], 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//上层绘制
|
|
|
|
|
function DrawTop(obj) {
|
|
|
|
|
//绘制标签栏的感叹号
|
|
|
|
|
foreach(Pos, Value in Title) {
|
|
|
|
|
//绘制完成事件的感叹号
|
|
|
|
|
if (TabSuccessTips[Pos] == 1) {
|
|
|
|
|
L_sq_DrawImg("interface/Lenheartwindowcommon.img", 301, X + 58 + (Pos * 62), Y + 31, 0, sq_RGBA(255, 255, 255, 210), 0.8, 0.8);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function Show(obj) {
|
|
|
|
|
if (!BaseInfo) return;
|
|
|
|
|
DrawMain(obj);
|
|
|
|
|
LenheartNewUI_Windows.Show(obj);
|
|
|
|
|
|
|
|
|
|
DrawTop(obj);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//逻辑入口
|
|
|
|
|
function Proc(obj) {
|
|
|
|
|
LenheartNewUI_Windows.SyncPos(X, Y);
|
|
|
|
|
|
|
|
|
|
//主动调用子对象窗口的Proc
|
|
|
|
|
foreach(Object in Childrens) {
|
|
|
|
|
if (Object instanceof LenheartNewUI_Windows)
|
|
|
|
|
Object.Proc(obj);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function GetBaseInfo() {
|
|
|
|
|
local T = {
|
|
|
|
|
op = 20059001
|
|
|
|
|
}
|
|
|
|
|
SendPackEx(T);
|
|
|
|
|
local T2 = {
|
|
|
|
|
op = 20059005
|
|
|
|
|
}
|
|
|
|
|
SendPackEx(T2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetPlayerReward() {
|
|
|
|
|
local T = {
|
|
|
|
|
op = 20059003
|
|
|
|
|
}
|
|
|
|
|
SendPackEx(T);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//开启界面回调
|
|
|
|
|
function OpenCallBack() {
|
|
|
|
|
GetBaseInfo();
|
|
|
|
|
GetPlayerReward();
|
|
|
|
|
|
|
|
|
|
Visible = true;
|
|
|
|
|
ResetFocus();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
getroottable().rawdelete("AradPass_Obj");
|
|
|
|
|
|
|
|
|
|
function Lenheart_AradPass_Fun(obj) {
|
|
|
|
|
local RootTab = getroottable();
|
|
|
|
|
if (!RootTab.rawin("AradPass_Obj")) {
|
|
|
|
|
RootTab.rawset("AradPass_Obj", true);
|
|
|
|
|
local Win = LenheartNewUI_CreateWindow(AradPassC, "阿拉德战令窗口", ((getroottable().Rindro_Scr_Width - 558) / 2).tointeger(), 46, 558, 484, 15);
|
2024-09-27 14:04:23 +08:00
|
|
|
EventList_Obj.AddEvent("阿拉德战令", 928, Win, "interface2/hud/information_button/information_button_cn.img");
|
2024-09-16 17:09:36 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getroottable()["LenheartFuncTab"].rawset("AradPassFuncN", Lenheart_AradPass_Fun);
|