111
This commit is contained in:
361
Project/AradPass/AradPass.nut
Normal file
361
Project/AradPass/AradPass.nut
Normal file
@@ -0,0 +1,361 @@
|
||||
/*
|
||||
文件名: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);
|
||||
EventList_Obj.AddEvent("阿拉德战令", 928, Win,"interface2/hud/information_button/information_button_cn.img");
|
||||
}
|
||||
}
|
||||
|
||||
getroottable()["LenheartFuncTab"].rawset("AradPassFuncN", Lenheart_AradPass_Fun);
|
||||
Reference in New Issue
Block a user