969 lines
39 KiB
Plaintext
969 lines
39 KiB
Plaintext
|
|
/*
|
|||
|
|
文件名:AradPass.nut
|
|||
|
|
路径:Plugins/AradPass/AradPass.nut
|
|||
|
|
创建日期:2023-10-18 08:38
|
|||
|
|
文件用途:
|
|||
|
|
*/
|
|||
|
|
class AradPassC extends BasicsDrawTool {
|
|||
|
|
WindowObj = null; //窗口对象
|
|||
|
|
MainState = false; //主状态
|
|||
|
|
X = 124;
|
|||
|
|
Y = 34;
|
|||
|
|
|
|||
|
|
Page = 0;
|
|||
|
|
|
|||
|
|
Title = null;
|
|||
|
|
QuestTitle = null;
|
|||
|
|
QuestPage = 0;
|
|||
|
|
|
|||
|
|
BaseInfo = null;
|
|||
|
|
|
|||
|
|
Mobj = null;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//每日任务数组
|
|||
|
|
DailyTasks = null;
|
|||
|
|
//重复任务数组
|
|||
|
|
RepeatingTasks = null;
|
|||
|
|
//赛季任务数组
|
|||
|
|
SeasonTasks = null;
|
|||
|
|
|
|||
|
|
//标签提示
|
|||
|
|
TabSuccessTips = null;
|
|||
|
|
|
|||
|
|
//等级按钮
|
|||
|
|
LevelButton = null;
|
|||
|
|
LevelPage = 0;
|
|||
|
|
|
|||
|
|
//战令等级
|
|||
|
|
MyPassLevel = 2;
|
|||
|
|
|
|||
|
|
//ItemInfo
|
|||
|
|
ItemInfoObject = null;
|
|||
|
|
ItemInfoDrawS = null;
|
|||
|
|
|
|||
|
|
RewardInfoObject = null;
|
|||
|
|
RewardInfoEffTimer = null;
|
|||
|
|
RewardSuccessTips = null;
|
|||
|
|
|
|||
|
|
function GetBaseInfo() {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059001
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
local T2 = {
|
|||
|
|
op = 20059005
|
|||
|
|
}
|
|||
|
|
SendPack(T2);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function GetBaseInfoCallBack(Chunk) {
|
|||
|
|
// Sout("收到包 : \n %L", Chunk);
|
|||
|
|
local Jso = Json.Decode(Chunk);
|
|||
|
|
foreach(Value in Jso.itemInfo) {
|
|||
|
|
if (Value.Name2.len() == 0)
|
|||
|
|
Value.Name2 = "Yosin-Team";
|
|||
|
|
ItemInfoObject[Value.Id] <- Value;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function GetBaseInfoCallBack2(Chunk) {
|
|||
|
|
// Sout("收到包 : \n %L", Chunk);
|
|||
|
|
local Jso = Json.Decode(Chunk);
|
|||
|
|
BaseInfo = {};
|
|||
|
|
BaseInfo = clone(Jso);
|
|||
|
|
|
|||
|
|
LevelPage = ((BaseInfo.Exp / 1000) + 1) / 10;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
QuestSuccessTips = null;
|
|||
|
|
|
|||
|
|
function GetPlayerQuestCallBack(Chunk) {
|
|||
|
|
// Sout("收到包 : \n %L", Chunk);
|
|||
|
|
local Jso = Json.Decode(Chunk);
|
|||
|
|
DailyTasks = Jso.task[0];
|
|||
|
|
RepeatingTasks = Jso.task[1];
|
|||
|
|
SeasonTasks = Jso.task[2];
|
|||
|
|
|
|||
|
|
QuestSuccessTips = [0, 0, 0];
|
|||
|
|
TabSuccessTips[1] = 0;
|
|||
|
|
|
|||
|
|
foreach(Pos, Value in Jso.task) {
|
|||
|
|
foreach(QuestObject in Value) {
|
|||
|
|
if (QuestObject.SuccessState == 0) {
|
|||
|
|
if (QuestObject.NowSuccessCount >= QuestObject.MaxSuccessCount) {
|
|||
|
|
QuestSuccessTips[Pos] = 1;
|
|||
|
|
TabSuccessTips[1] = 1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function GetPlayerReward() {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059003
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function GetPlayerQuest() {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059031
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function GetPlayerRewardCallBack(Chunk) {
|
|||
|
|
// Sout("收到包 : \n %L", 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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//发包成功
|
|||
|
|
function SendSuccessAradPass(a2, a3, a4) {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059023,
|
|||
|
|
id = a2,
|
|||
|
|
count = a4,
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function RegisterQuestSu() {
|
|||
|
|
L_CompleteTaskTable.rawset("AradPass", SendSuccessAradPass.bindenv(this));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
constructor() {
|
|||
|
|
if (getroottable().rawin("MouseObject")) Mobj = getroottable()["MouseObject"];
|
|||
|
|
|
|||
|
|
//注册完成任务回调
|
|||
|
|
RegisterQuestSu();
|
|||
|
|
|
|||
|
|
ItemInfoObject = {};
|
|||
|
|
|
|||
|
|
//标签完成提示
|
|||
|
|
TabSuccessTips = [0, 0, 0];
|
|||
|
|
|
|||
|
|
Pack_Control.rawset(20059002, GetBaseInfoCallBack.bindenv(this));
|
|||
|
|
Pack_Control.rawset(20059006, GetBaseInfoCallBack2.bindenv(this));
|
|||
|
|
Pack_Control.rawset(20059004, GetPlayerRewardCallBack.bindenv(this));
|
|||
|
|
Pack_Control.rawset(20059032, GetPlayerQuestCallBack.bindenv(this));
|
|||
|
|
|
|||
|
|
GetBaseInfo();
|
|||
|
|
GetPlayerReward();
|
|||
|
|
GetPlayerQuest();
|
|||
|
|
|
|||
|
|
RewardInfoEffTimer = Clock();
|
|||
|
|
RewardSuccessTips = [0, 0, 0, 0, 0];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//绘制等级数字
|
|||
|
|
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 DrawItemEx(X, Y, Id, Count) {
|
|||
|
|
L_Sq_DrawItem(X, Y, Id, Count, 0, 0, 0);
|
|||
|
|
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X, Y, 24, 24)) {
|
|||
|
|
ItemInfoDrawS = {};
|
|||
|
|
ItemInfoDrawS.X <- X;
|
|||
|
|
ItemInfoDrawS.Y <- Y;
|
|||
|
|
ItemInfoDrawS.ItemId <- Id;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//绘制道具相信信息
|
|||
|
|
ItemObject = null;
|
|||
|
|
|
|||
|
|
function DrawItemInfo(obj) {
|
|||
|
|
if (ItemInfoDrawS) {
|
|||
|
|
if (!ItemObject) {
|
|||
|
|
local ItemId = ItemInfoDrawS.ItemId;
|
|||
|
|
if (ItemInfoObject.rawin(ItemId)) {
|
|||
|
|
ItemObject = ItemInfoClass(ItemInfoObject[ItemId]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
ItemObject.Show(ItemInfoDrawS.X, ItemInfoDrawS.Y - ItemObject.PageLength);
|
|||
|
|
} else {
|
|||
|
|
ItemObject = null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function DrawRewardItem(obj) {
|
|||
|
|
local Idx = LevelPage * 10;
|
|||
|
|
for (local i = 0; i< 10; i++) {
|
|||
|
|
//奖励下标
|
|||
|
|
local RealPos = Idx + i;
|
|||
|
|
|
|||
|
|
if (RealPos in RewardInfoObject) {
|
|||
|
|
|
|||
|
|
local RewardObject = RewardInfoObject[RealPos];
|
|||
|
|
|
|||
|
|
//普通道具
|
|||
|
|
if ("itemid" in RewardObject) {
|
|||
|
|
//普通底
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 21, X + 11 + 45 + (i * 47), Y + 50 + 162 + 61);
|
|||
|
|
|
|||
|
|
DrawItemEx(X + 64 + (i * 47), Y + 296, RewardObject.itemid, RewardObject.num);
|
|||
|
|
|
|||
|
|
//已领取
|
|||
|
|
if (RewardObject.isOrdinary) {
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 23, X + 11 + 45 + (i * 47), Y + 50 + 162 + 61);
|
|||
|
|
}
|
|||
|
|
//未领取
|
|||
|
|
else if (!RewardObject.isOrdinary) {
|
|||
|
|
//快达到等级
|
|||
|
|
if ((RealPos + 1) == MyPassLevel + 1) {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
//已达到等级
|
|||
|
|
else if ((RealPos + 1) <= MyPassLevel) {
|
|||
|
|
local A = 60;
|
|||
|
|
if (RewardInfoEffTimer) {
|
|||
|
|
if (Clock() - RewardInfoEffTimer <= 1000) {
|
|||
|
|
A = sq_GetUniformVelocity(60, 255, Clock() - RewardInfoEffTimer, 1000);
|
|||
|
|
}
|
|||
|
|
if (Clock() - RewardInfoEffTimer <= 2000 && Clock() - RewardInfoEffTimer > 1000) {
|
|||
|
|
A = sq_GetUniformVelocity(255, 60, Clock() - RewardInfoEffTimer - 1000, 1000);
|
|||
|
|
}
|
|||
|
|
if (Clock() - RewardInfoEffTimer > 2000) {
|
|||
|
|
RewardInfoEffTimer = Clock();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
L_sq_SetDrawImgModel(2, 0);
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 29, X + 7 + 45 + (i * 47), Y + 50 + 162 + 58, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0);
|
|||
|
|
L_sq_ReleaseDrawImgModel();
|
|||
|
|
|
|||
|
|
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 7 + 45 + (i * 47), Y + 50 + 162 + 58, 44, 74)) {
|
|||
|
|
if (Mobj.LbEvent) {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059007,
|
|||
|
|
Type = 0,
|
|||
|
|
lv = RealPos + 1,
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//未达到等级
|
|||
|
|
else {
|
|||
|
|
//普通底Eff 未领取
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 33, X + 11 + 45 + (i * 47), Y + 50 + 162 + 61);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//是不是VIP
|
|||
|
|
local IsVip = BaseInfo.isVip;
|
|||
|
|
|
|||
|
|
//进阶道具
|
|||
|
|
if ("additionalItemId" in RewardObject && "additionalItemId2" in RewardObject) {
|
|||
|
|
//普通底
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 26, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138);
|
|||
|
|
|
|||
|
|
DrawItemEx(X + 64 + (i * 47), Y + 356, RewardObject.additionalItemId, RewardObject.additionalNum);
|
|||
|
|
DrawItemEx(X + 64 + (i * 47), Y + 390, RewardObject.additionalItemId2, RewardObject.additionalNum2);
|
|||
|
|
|
|||
|
|
if (RewardObject.isadditional) {
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 28, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138);
|
|||
|
|
} else {
|
|||
|
|
if (!IsVip) {
|
|||
|
|
//普通底
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 32, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138);
|
|||
|
|
} else {
|
|||
|
|
//快达到等级
|
|||
|
|
if ((RealPos + 1) == MyPassLevel + 1) {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
//已达到等级
|
|||
|
|
else if ((RealPos + 1) <= MyPassLevel) {
|
|||
|
|
local A = 60;
|
|||
|
|
if (RewardInfoEffTimer) {
|
|||
|
|
if (Clock() - RewardInfoEffTimer <= 1000) {
|
|||
|
|
A = sq_GetUniformVelocity(60, 255, Clock() - RewardInfoEffTimer, 1000);
|
|||
|
|
}
|
|||
|
|
if (Clock() - RewardInfoEffTimer <= 2000 && Clock() - RewardInfoEffTimer > 1000) {
|
|||
|
|
A = sq_GetUniformVelocity(255, 60, Clock() - RewardInfoEffTimer - 1000, 1000);
|
|||
|
|
}
|
|||
|
|
if (Clock() - RewardInfoEffTimer > 2000) {
|
|||
|
|
RewardInfoEffTimer = Clock();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
L_sq_SetDrawImgModel(2, 0);
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 30, X + 7 + 45 + (i * 47), Y + 45 + 162 + 138, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0);
|
|||
|
|
L_sq_ReleaseDrawImgModel();
|
|||
|
|
|
|||
|
|
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 7 + 45 + (i * 47), Y + 45 + 162 + 138, 44, 74)) {
|
|||
|
|
if (Mobj.LbEvent) {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059007,
|
|||
|
|
Type = 1,
|
|||
|
|
lv = RealPos + 1,
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//未达到等级
|
|||
|
|
else {
|
|||
|
|
//普通底Eff 未领取
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 33, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
//普通底
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 25, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138);
|
|||
|
|
|
|||
|
|
DrawItemEx(X + 64 + (i * 47), Y + 373, RewardObject.additionalItemId, RewardObject.additionalNum);
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (RewardObject.isadditional) {
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 27, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138);
|
|||
|
|
} else {
|
|||
|
|
if (!IsVip) {
|
|||
|
|
//普通底
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 31, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138);
|
|||
|
|
} else {
|
|||
|
|
//快达到等级
|
|||
|
|
if ((RealPos + 1) == MyPassLevel + 1) {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
//已达到等级
|
|||
|
|
else if ((RealPos + 1) <= MyPassLevel) {
|
|||
|
|
local A = 60;
|
|||
|
|
if (RewardInfoEffTimer) {
|
|||
|
|
if (Clock() - RewardInfoEffTimer <= 1000) {
|
|||
|
|
A = sq_GetUniformVelocity(60, 255, Clock() - RewardInfoEffTimer, 1000);
|
|||
|
|
}
|
|||
|
|
if (Clock() - RewardInfoEffTimer <= 2000 && Clock() - RewardInfoEffTimer > 1000) {
|
|||
|
|
A = sq_GetUniformVelocity(255, 60, Clock() - RewardInfoEffTimer - 1000, 1000);
|
|||
|
|
}
|
|||
|
|
if (Clock() - RewardInfoEffTimer > 2000) {
|
|||
|
|
RewardInfoEffTimer = Clock();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
L_sq_SetDrawImgModel(2, 0);
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 30, X + 7 + 45 + (i * 47), Y + 45 + 162 + 138, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0);
|
|||
|
|
L_sq_ReleaseDrawImgModel();
|
|||
|
|
|
|||
|
|
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 7 + 45 + (i * 47), Y + 45 + 162 + 138, 44, 74)) {
|
|||
|
|
if (Mobj.LbEvent) {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059007,
|
|||
|
|
Type = 1,
|
|||
|
|
lv = RealPos + 1,
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//未达到等级
|
|||
|
|
else {
|
|||
|
|
//普通底Eff 未领取
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 33, X + 11 + 45 + (i * 47), Y + 50 + 162 + 138);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (MyPassLevel >= LevelPage * 10) {
|
|||
|
|
|
|||
|
|
//是不是VIP
|
|||
|
|
local IsVip = BaseInfo.isVip;
|
|||
|
|
|
|||
|
|
local MyExp;
|
|||
|
|
local Rate;
|
|||
|
|
if (MyPassLevel == LevelPage * 10) {
|
|||
|
|
MyExp = (BaseInfo.Exp + 1000.0) % 10000.0;
|
|||
|
|
Rate = MyExp.tofloat() / 10000.0;
|
|||
|
|
} else if (MyPassLevel<(LevelPage + 1) * 10) {
|
|||
|
|
MyExp = BaseInfo.Exp % 10000.0 + 1000.0;
|
|||
|
|
Rate = MyExp.tofloat() / 10000.0;
|
|||
|
|
} else {
|
|||
|
|
Rate = 100.0;
|
|||
|
|
}
|
|||
|
|
local ImgIndex = 34;
|
|||
|
|
if (IsVip) ImgIndex = 35;
|
|||
|
|
|
|||
|
|
if (Rate <= 0) Rate = 0.01;
|
|||
|
|
setClip(X + 11 + 45, Y, X + 11 + 45 + (470 * Rate).tointeger(), Y + 264 + 4); //开始裁切
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", ImgIndex, X + 11 + 45, Y + 264);
|
|||
|
|
releaseClip(); //裁切结束
|
|||
|
|
|
|||
|
|
L_sq_SetDrawImgModel(2, 0);
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", ImgIndex + 2, X + 11 + 34 + (470 * Rate).tointeger(), Y + 255);
|
|||
|
|
L_sq_ReleaseDrawImgModel();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//绘制主界面
|
|||
|
|
function DrawMain(obj) {
|
|||
|
|
if (!BaseInfo) return;
|
|||
|
|
|
|||
|
|
//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_DrawWindow(X + 5, Y + 28, 530, 390, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
|
|||
|
|
|
|||
|
|
//绘制背景框标题栏
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpassmain.img", 0, X + 1, Y);
|
|||
|
|
|
|||
|
|
//构造标题栏
|
|||
|
|
if (!Title) {
|
|||
|
|
Title = [];
|
|||
|
|
for (local i = 0; i< 3; i++) {
|
|||
|
|
local Str = "奖励";
|
|||
|
|
if (i == 1) Str = "任务";
|
|||
|
|
if (i == 2) Str = "社交";
|
|||
|
|
local ButtonBuf = LenheartTabbarsText(X, Y, Str);
|
|||
|
|
if (i == 0) ButtonBuf.State = 1;
|
|||
|
|
Title.append(ButtonBuf);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
foreach(Pos, Value in Title) {
|
|||
|
|
Value.SyncPos(X + 12 + (Pos * 62), Y + 27);
|
|||
|
|
Value.Show();
|
|||
|
|
//如果有可领取实践 还要画上感叹号标记
|
|||
|
|
if (Value.isLBActive()) {
|
|||
|
|
foreach(Pp, Vv in Title) {
|
|||
|
|
if (Pp != Pos) Vv.State = 0;
|
|||
|
|
Page = Pos;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//绘制完成事件的感叹号
|
|||
|
|
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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//绘制主题栏
|
|||
|
|
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 + 11 + 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;
|
|||
|
|
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);
|
|||
|
|
|
|||
|
|
//绘制激活按钮
|
|||
|
|
if (!(BaseInfo.isVip)) {
|
|||
|
|
local ActivationButton = LenheartButtonText(X + 11 + 91, Y + 50 + 20 + 31 + 20, 22, "激 活");
|
|||
|
|
ActivationButton.SetFrame(null, 323);
|
|||
|
|
ActivationButton.SetTextOffset(6, 1);
|
|||
|
|
ActivationButton.Show();
|
|||
|
|
if (ActivationButton.isLBActive()) {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059013
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//绘制主要奖励框
|
|||
|
|
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);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//绘制奖励页
|
|||
|
|
if (Page == 0) {
|
|||
|
|
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 1, X + 11, Y + 50 + 162);
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 2, X + 11, Y + 50 + 162 + 214);
|
|||
|
|
|
|||
|
|
L_sq_DrawCode("区", X + 11 + 14, Y + 50 + 162 + 14, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
L_sq_DrawCode("间", X + 11 + 14, Y + 50 + 162 + 14 + 19, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
|
|||
|
|
L_sq_DrawCode("免", X + 11 + 14, Y + 50 + 162 + 14 + 19 + 47, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
L_sq_DrawCode("费", X + 11 + 14, Y + 50 + 162 + 14 + 19 + 47 + 19, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
|
|||
|
|
|
|||
|
|
L_sq_DrawCode("追", X + 11 + 14, Y + 50 + 162 + 14 + 19 + 47 + 19 + 54, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
L_sq_DrawCode("加", X + 11 + 14, Y + 50 + 162 + 14 + 19 + 47 + 19 + 54 + 19, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 19, X + 11, Y + 240);
|
|||
|
|
|
|||
|
|
|
|||
|
|
// local SuccessButton = LenheartBaseButtonText(X + 60, Y + 215, 88, 25, "interface2/ui/aradpass/chn/aradpass.img", 15, "1 - 10");
|
|||
|
|
// local SuccessButton = LenheartTabbarsText(X + 60, Y + 215, "1 - 10", 88, 25);
|
|||
|
|
// SuccessButton.SetFrame("interface2/ui/aradpass/chn/aradpass.img", 15);
|
|||
|
|
// SuccessButton.SetTextOffset(30, 5);
|
|||
|
|
// SuccessButton.Show();
|
|||
|
|
|
|||
|
|
|
|||
|
|
//构造等级按钮
|
|||
|
|
if (!LevelButton) {
|
|||
|
|
LevelButton = [];
|
|||
|
|
for (local i = 0; i< 5; i++) {
|
|||
|
|
local Str = "1 - 10";
|
|||
|
|
if (i == 1) Str = "11 - 20";
|
|||
|
|
if (i == 2) Str = "21 - 30";
|
|||
|
|
if (i == 3) Str = "31 - 40";
|
|||
|
|
if (i == 4) Str = "41 - 50";
|
|||
|
|
local ButtonBuf = LenheartTabbarsText(X + 11 + 50 + (i * 93), Y + 215, Str, 88, 25);
|
|||
|
|
ButtonBuf.SetFrame("interface2/ui/aradpass/chn/aradpass.img", 15);
|
|||
|
|
ButtonBuf.SetTextOffset(50 - LenheartTextClass.GetStringLength(Str) / 2, 6);
|
|||
|
|
if (i == 0) ButtonBuf.State = 1;
|
|||
|
|
LevelButton.append(ButtonBuf);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
foreach(Pos, Value in LevelButton) {
|
|||
|
|
Value.SyncPos(X + 11 + 50 + (Pos * 93), Y + 215);
|
|||
|
|
Value.Show();
|
|||
|
|
if (Pos == LevelPage) Value.State = 1;
|
|||
|
|
else Value.State = 0;
|
|||
|
|
//如果有可领取实践 还要画上感叹号标记
|
|||
|
|
if (Value.isLBActive()) {
|
|||
|
|
LevelPage = Pos;
|
|||
|
|
}
|
|||
|
|
if (Value.State == 1) {
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 18, X + 11 + 50 + (Pos * 93), Y + 215);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//绘制是否可领取奖励的感叹号
|
|||
|
|
if (RewardSuccessTips[Pos] == 1) {
|
|||
|
|
L_sq_DrawImg("interface/Lenheartwindowcommon.img", 301, X + 125 + (Pos * 93), Y + 224, 0, sq_RGBA(255, 255, 255, 210), 0.8, 0.8);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for (local i = 0; i< 10; i++) {
|
|||
|
|
DrawSmallNumber(i + 1 + (LevelPage * 10), 124 - 91 + (i * 47));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
DrawRewardItem(obj);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
L_sq_DrawImg("interface/Lenheartwindowcommon.img", 504, X + 24, Y + 438, 0, sq_RGBA(255, 255, 255, 250), 0.8, 0.8);
|
|||
|
|
L_sq_DrawImg("interface/Lenheartwindowcommon.img", 504, X + 24, Y + 460, 0, sq_RGBA(255, 255, 255, 250), 0.8, 0.8);
|
|||
|
|
L_sq_DrawCode("获得的物品将发放至物品栏。", X + 44, Y + 438, sq_RGBA(179, 169, 135, 150), 1, 1);
|
|||
|
|
L_sq_DrawCode("未使用的奖励道具将在本季通行券结束时删除。", X + 44, Y + 460, sq_RGBA(179, 169, 135, 150), 1, 1);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//绘制领取全部奖励按钮
|
|||
|
|
local ClaimAllButton = LenheartButtonText(X + 460, Y + 440, 22, "全部领取");
|
|||
|
|
// ClaimAllButton.SetFrame(null, 323);
|
|||
|
|
ClaimAllButton.SetTextOffset(-3, 1);
|
|||
|
|
ClaimAllButton.Show();
|
|||
|
|
if (ClaimAllButton.isLBActive()) {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059009
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//绘制任务页
|
|||
|
|
if (Page == 1) {
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 43, X + 11, Y + 50 + 162);
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 38, X + 13, Y + 50 + 184);
|
|||
|
|
|
|||
|
|
|
|||
|
|
//构造标题栏
|
|||
|
|
if (!QuestTitle) {
|
|||
|
|
QuestTitle = [];
|
|||
|
|
for (local i = 0; i< 3; i++) {
|
|||
|
|
local Str = "每日任务";
|
|||
|
|
if (i == 1) Str = "重复任务";
|
|||
|
|
if (i == 2) Str = "赛季任务";
|
|||
|
|
local ButtonBuf = LenheartTabbarsText(X, Y, Str);
|
|||
|
|
if (i == 0) ButtonBuf.State = 1;
|
|||
|
|
ButtonBuf.SetTextOffset(8, 3);
|
|||
|
|
QuestTitle.append(ButtonBuf);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
foreach(Pos, Value in QuestTitle) {
|
|||
|
|
Value.SyncPos(X + 12 + (Pos * 62), Y + 213);
|
|||
|
|
Value.Show();
|
|||
|
|
//如果有可领取实践 还要画上感叹号标记
|
|||
|
|
if (Value.isLBActive()) {
|
|||
|
|
foreach(Pp, Vv in QuestTitle) {
|
|||
|
|
if (Pp != Pos) Vv.State = 0;
|
|||
|
|
}
|
|||
|
|
QuestPage = Pos;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (QuestSuccessTips && QuestSuccessTips.len() == 3) {
|
|||
|
|
//绘制是否可领取奖励的感叹号
|
|||
|
|
if (QuestSuccessTips[Pos] == 1) {
|
|||
|
|
L_sq_DrawImg("interface/Lenheartwindowcommon.img", 301, X + 64 + (Pos * 62), Y + 216, 0, sq_RGBA(255, 255, 255, 210), 0.8, 0.8);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
L_sq_DrawCode("任务内容", X + 120, Y + 7 + 231, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
L_sq_DrawCode("完成次数", X + 288, Y + 7 + 231, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
L_sq_DrawCode("经验值", X + 388, Y + 7 + 231, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
L_sq_DrawCode("状态", X + 492, Y + 7 + 231, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
|
|||
|
|
local QuestTasks = null;
|
|||
|
|
//每日
|
|||
|
|
if (QuestPage == 0) {
|
|||
|
|
//每日任务数组
|
|||
|
|
QuestTasks = DailyTasks;
|
|||
|
|
}
|
|||
|
|
//重复
|
|||
|
|
else if (QuestPage == 1) {
|
|||
|
|
//重复任务数组
|
|||
|
|
QuestTasks = RepeatingTasks;
|
|||
|
|
}
|
|||
|
|
//赛季
|
|||
|
|
else {
|
|||
|
|
//赛季任务数组
|
|||
|
|
QuestTasks = SeasonTasks;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (QuestTasks) {
|
|||
|
|
QuestWheelMax = QuestTasks.len();
|
|||
|
|
local SuccessCount = 0;
|
|||
|
|
local Incomplete = 0;
|
|||
|
|
foreach(Pos, Value in QuestTasks) {
|
|||
|
|
local OffsetPos = Pos - QuestWheelNow - SuccessCount;
|
|||
|
|
if (Pos >= QuestWheelNow && Pos <= QuestWheelNow + 5) {
|
|||
|
|
if (Value.SuccessState == 0) {
|
|||
|
|
Incomplete++;
|
|||
|
|
L_sq_DrawCode(Value.QuestExplain, X + 20, Y + 50 + 162 + 53 + (OffsetPos * 30) + (OffsetPos), sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
local SuccessStr = Value.NowSuccessCount + " / " + Value.MaxSuccessCount;
|
|||
|
|
L_sq_DrawCode(SuccessStr, X + 320 - LenheartTextClass.GetStringLength(SuccessStr) / 2, Y + 50 + 162 + 53 + (OffsetPos * 30) + (OffsetPos), sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
L_sq_DrawCode(Value.Experience.tostring(), X + 404 - LenheartTextClass.GetStringLength(Value.Experience.tostring()) / 2, Y + 50 + 162 + 53 + (OffsetPos * 30) + (OffsetPos), sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
//绘制完成按钮
|
|||
|
|
local SuccessButton = LenheartButtonText(X + 472, Y + 261 + (OffsetPos * 30) + (OffsetPos), 10, "完成");
|
|||
|
|
SuccessButton.SetTextOffset(3, 1);
|
|||
|
|
if (Value.NowSuccessCount >= Value.MaxSuccessCount) {
|
|||
|
|
if (SuccessButton.isLBActive()) {
|
|||
|
|
Value.op <- 20059033;
|
|||
|
|
SendPack(Value);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
SuccessButton.State = 8;
|
|||
|
|
}
|
|||
|
|
SuccessButton.Show();
|
|||
|
|
} else {
|
|||
|
|
SuccessCount++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
local SuccessPos = 0;
|
|||
|
|
foreach(Pos, Value in QuestTasks) {
|
|||
|
|
local SuccessOffsetPos = SuccessPos - QuestWheelNow + Incomplete;
|
|||
|
|
if (Value.SuccessState == 1) {
|
|||
|
|
SuccessPos++;
|
|||
|
|
L_sq_DrawCode(Value.QuestExplain, X + 20, Y + 50 + 162 + 53 + (SuccessOffsetPos * 30) + (SuccessOffsetPos), sq_RGBA(179, 169, 135, 150), 1, 1);
|
|||
|
|
local SuccessStr = Value.NowSuccessCount + " / " + Value.MaxSuccessCount;
|
|||
|
|
L_sq_DrawCode(SuccessStr, X + 320 - LenheartTextClass.GetStringLength(SuccessStr) / 2, Y + 50 + 162 + 53 + (SuccessOffsetPos * 30) + (SuccessOffsetPos), sq_RGBA(179, 169, 135, 150), 1, 1);
|
|||
|
|
L_sq_DrawCode(Value.Experience.tostring(), X + 404 - LenheartTextClass.GetStringLength(Value.Experience.tostring()) / 2, Y + 50 + 162 + 53 + (SuccessOffsetPos * 30) + (SuccessOffsetPos), sq_RGBA(179, 169, 135, 150), 1, 1);
|
|||
|
|
//绘制完成按钮
|
|||
|
|
local SuccessButton = LenheartButtonText(X + 472, Y + 261 + (SuccessOffsetPos * 30) + (SuccessOffsetPos), 10, "已完成");
|
|||
|
|
SuccessButton.SetTextOffset(-2, 1);
|
|||
|
|
SuccessButton.State = 8;
|
|||
|
|
SuccessButton.Show();
|
|||
|
|
// L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 41, X + 14, Y + 50 + 160 + 50 + (SuccessOffsetPos * 30) + (SuccessOffsetPos));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 25, Y + 456, 16, 16)) {
|
|||
|
|
L_sq_DrawImg("interface/lenheartwindowcommon.img", 240, X + 25, Y + 456);
|
|||
|
|
QuestTips = true;
|
|||
|
|
} else {
|
|||
|
|
L_sq_DrawImg("interface/lenheartwindowcommon.img", 239, X + 25, Y + 456);
|
|||
|
|
QuestTips = false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 周获取的经验
|
|||
|
|
local MaxExp = BaseInfo.ExpLimitMax;
|
|||
|
|
local NowExp = BaseInfo.ExpLimit;
|
|||
|
|
L_sq_DrawCode("每周重复任务经验获取上限 " + NowExp + "/" + MaxExp, X + 40 + 7, Y + 7 + 451, sq_RGBA(179, 169, 135, 255), 1, 1);
|
|||
|
|
|
|||
|
|
|
|||
|
|
local ReceiveExpButton = LenheartButtonText(X + 464, Y + 7 + 446, 22, "全部领取");
|
|||
|
|
ReceiveExpButton.SetTextOffset(-2, 1);
|
|||
|
|
ReceiveExpButton.Show();
|
|||
|
|
if (ReceiveExpButton.isLBActive()) {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059035
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//绘制助力页
|
|||
|
|
if (Page == 2) {
|
|||
|
|
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 42, X + 11, Y + 50 + 162);
|
|||
|
|
|
|||
|
|
L_sq_DrawCode("助力奖励", X + 11 + 115, Y + 50 + 162 + 7, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
L_sq_DrawCode("[发起助力]说明", X + 11 + 372, Y + 50 + 162 + 7, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
L_sq_DrawCode("获得助力 : " + BaseInfo.helpNum + " 次", X + 11 + 96, Y + 50 + 162 + 111, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//助力按钮
|
|||
|
|
local UpButton = LenheartButtonText(X + 11 + 115 + 20, Y + 50 + 162 + 7 + 48, 4, "发起助力");
|
|||
|
|
if (BaseInfo.help == 1) {
|
|||
|
|
UpButton.State = 8;
|
|||
|
|
}
|
|||
|
|
UpButton.SetTextOffset(-12, 1);
|
|||
|
|
UpButton.Show();
|
|||
|
|
if (UpButton.isLBActive()) {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059011,
|
|||
|
|
Type = 0,
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
L_sq_DrawCode("社交功能将于每日凌晨6点重置。", X + 11 + 322, Y + 50 + 162 + 77, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
L_sq_DrawCode("点击[发起助力]按钮时,立即获得通行", X + 11 + 308, Y + 50 + 162 + 77 + 20, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
L_sq_DrawCode("券经验值。", X + 11 + 380, Y + 50 + 162 + 77 + 40, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
L_sq_DrawCode("获得助力次数将根据服务器玩家的发起", X + 11 + 300, Y + 50 + 162 + 77 + 60, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
L_sq_DrawCode("助力次数而更新。", X + 11 + 364, Y + 50 + 162 + 77 + 80, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
L_sq_DrawCode("每10秒可以点击刷新按钮更新信息。", X + 11 + 310, Y + 50 + 162 + 77 + 100, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
L_sq_DrawCode("5次", X + 11 + 48, Y + 50 + 162 + 148, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
L_sq_DrawCode("10次", X + 11 + 132, Y + 50 + 162 + 148, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
L_sq_DrawCode("20次", X + 11 + 216, Y + 50 + 162 + 148, sq_RGBA(124, 110, 82, 255), 1, 0);
|
|||
|
|
|
|||
|
|
|
|||
|
|
//刷新按钮
|
|||
|
|
local RefreshButton = LenheartTabbars(X + 11 + 256, Y + 50 + 162 + 108, 19, 19);
|
|||
|
|
RefreshButton.SetFrame(null, 445);
|
|||
|
|
RefreshButton.Show();
|
|||
|
|
if (RefreshButton.isLBActive()) {}
|
|||
|
|
|
|||
|
|
local SuccBtnArr = [BaseInfo.help5, BaseInfo.help10, BaseInfo.help20];
|
|||
|
|
//完成按钮
|
|||
|
|
foreach(Pos, Kf in SuccBtnArr) {
|
|||
|
|
local ButtonBuf = LenheartButtonText(X + 11 + 27 + (Pos * 85), Y + 50 + 162 + 206, 4, "完成");
|
|||
|
|
local RealP = Pos;
|
|||
|
|
if (RealP == 0) RealP = 5;
|
|||
|
|
if (RealP == 1) RealP = 10;
|
|||
|
|
if (RealP == 2) RealP = 20;
|
|||
|
|
if (Kf == 1 || RealP > BaseInfo.helpNum) ButtonBuf.State = 8;
|
|||
|
|
// ButtonBuf.SetFrame(null, 323);
|
|||
|
|
ButtonBuf.SetTextOffset(0, 1);
|
|||
|
|
ButtonBuf.Show();
|
|||
|
|
if (ButtonBuf.isLBActive()) {
|
|||
|
|
local T = {
|
|||
|
|
op = 20059011,
|
|||
|
|
Type = RealP,
|
|||
|
|
}
|
|||
|
|
SendPack(T);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//TODO 临时绘制道具 2022110703
|
|||
|
|
//绘制道具
|
|||
|
|
L_Sq_DrawItem(X + 103, Y + 262, 1232, BaseInfo.helpExp, 0, 0, 0);
|
|||
|
|
|
|||
|
|
|
|||
|
|
L_Sq_DrawItem(X + 11 + 43, Y + 50 + 162 + 167, 1232, BaseInfo.helpExp5, 0, 0, 0);
|
|||
|
|
L_Sq_DrawItem(X + 11 + 128, Y + 50 + 162 + 167, 1232, BaseInfo.helpExp10, 0, 0, 0);
|
|||
|
|
L_Sq_DrawItem(X + 11 + 213, Y + 50 + 162 + 167, 1232, BaseInfo.helpExp20, 0, 0, 0);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
QuestTips = false;
|
|||
|
|
QuestWheelNow = 0;
|
|||
|
|
QuestWheelMax = 0;
|
|||
|
|
|
|||
|
|
//悬浮层
|
|||
|
|
function DrawSuspensionLayer(obj) {
|
|||
|
|
//任务提示
|
|||
|
|
if (QuestTips) {
|
|||
|
|
L_sq_DrawWindow(X + 40, Y + 350, 224, 100, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
|
|||
|
|
local QuestTipsStr = "每周可以通过完成重复任务获得的最大经验值。\n达到每周经验获取上限后,无法进行重复任务。\n通过每日任务以及赛季任务获得的经验值,不受每周经验获取上限的限制。\n每周星期四将初始化每周经验获取量。\n每周四凌晨6点初始化重复任务的进度,并删除未领取的重复任务经验值。";
|
|||
|
|
local QuestTipsArray = L_sq_GetStringDrawArray(QuestTipsStr, 251);
|
|||
|
|
foreach(Pos, va in QuestTipsArray) {
|
|||
|
|
// Sout("文本内容嗯: %L", va);
|
|||
|
|
L_sq_DrawCode(va, X + 40 + 7, Y + 7 + 350 + (Pos * 16), 0xFFFFFFFF, 1, 1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//开启界面回调
|
|||
|
|
function OpenClassCallBack() {
|
|||
|
|
L_NewWindows("Lenheart", 170, 0x65535);
|
|||
|
|
local W = sq_GetPopupWindowMainCotrol(170);
|
|||
|
|
W.SetVisible(false);
|
|||
|
|
W.SetEnable(false);
|
|||
|
|
|
|||
|
|
GetBaseInfo();
|
|||
|
|
GetPlayerReward();
|
|||
|
|
GetPlayerQuest();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//绘制入口
|
|||
|
|
function Draw(obj) {
|
|||
|
|
if (MainState) {
|
|||
|
|
if (WindowObj) {
|
|||
|
|
ItemInfoDrawS = null;
|
|||
|
|
DrawMain(obj);
|
|||
|
|
DrawSuspensionLayer(obj);
|
|||
|
|
DrawItemInfo(obj);
|
|||
|
|
WindowObj.Show(obj);
|
|||
|
|
X = WindowObj.X;
|
|||
|
|
Y = WindowObj.Y;
|
|||
|
|
} else {
|
|||
|
|
WindowObj = LenheartWindow(X, Y, 558, 470, 15); //坐标 大小 标题栏高度
|
|||
|
|
// WindowObj.DeBugMode = true;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
if (WindowObj && WindowObj.YMouseSw == false) {
|
|||
|
|
IMouse.ReleaseMouseClick();
|
|||
|
|
WindowObj.YMouseSw = true;
|
|||
|
|
WindowObj = null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//逻辑入口
|
|||
|
|
function Proc(obj) {
|
|||
|
|
if (IMouse.IsWheelUp()) {
|
|||
|
|
if (QuestWheelNow > 0) QuestWheelNow--;
|
|||
|
|
if (LevelPage > 0) LevelPage--;
|
|||
|
|
}
|
|||
|
|
if (IMouse.IsWheelDown()) {
|
|||
|
|
if (QuestWheelNow< QuestWheelMax - 6) QuestWheelNow++;
|
|||
|
|
if (LevelPage< 4) LevelPage++;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (KeyPressNB.isKeyPress(48, "AradPassCloseKey")) {
|
|||
|
|
MainState = false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function AradPass(obj) {
|
|||
|
|
local RootTab = getroottable();
|
|||
|
|
if (!RootTab.rawin("AradPassCObj")) {
|
|||
|
|
local Cobj = AradPassC();
|
|||
|
|
RootTab.rawset("AradPassCObj", Cobj);
|
|||
|
|
EventIcon("阿拉德探险记", 43, 43, Cobj);
|
|||
|
|
} else {
|
|||
|
|
RootTab["AradPassCObj"].Proc(obj);
|
|||
|
|
RootTab["AradPassCObj"].Draw(obj);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (getroottable().rawin("LenheartFuncTab")) {
|
|||
|
|
getroottable()["LenheartFuncTab"].rawset("AradPassFunc", AradPass);
|
|||
|
|
} else {
|
|||
|
|
local T = {};
|
|||
|
|
T.rawset("AradPassFunc", AradPass);
|
|||
|
|
getroottable().rawset("LenheartFuncTab", T);
|
|||
|
|
}
|