2024-09-27 14:04:23 +08:00
|
|
|
/*
|
|
|
|
|
文件名:HorseGuessing.nut
|
|
|
|
|
路径:Project/HorseGuessing/HorseGuessing.nut
|
|
|
|
|
创建日期:2024-09-25 20:30
|
|
|
|
|
文件用途:骑士马战
|
|
|
|
|
*/
|
|
|
|
|
dofile("sqr/Project/HorseGuessing/HorseGuessing_Guide.nut"); //骑士马战指引
|
|
|
|
|
dofile("sqr/Project/HorseGuessing/HorseGuessing_KnightInfo.nut"); //骑士马战资料
|
2024-09-29 16:52:10 +08:00
|
|
|
dofile("sqr/Project/HorseGuessing/HorseGuessing_PastRecord.nut"); //骑士马战过往战绩
|
|
|
|
|
|
|
|
|
|
class HorseGuessingBaseButton extends LenheartNewUI_BaseButton {
|
|
|
|
|
//是否翻转
|
|
|
|
|
IsFlip = false;
|
|
|
|
|
|
|
|
|
|
//ovverride
|
|
|
|
|
//鼠标事件回调
|
|
|
|
|
function OnMouseProc(Flag, MousePos_X, MousePos_Y) {
|
|
|
|
|
if (!IsFlip) {
|
|
|
|
|
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X, Y, Width, Height)) isInRect = true;
|
|
|
|
|
else isInRect = false;
|
|
|
|
|
} else {
|
|
|
|
|
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X - Width, Y, Width, Height)) isInRect = true;
|
|
|
|
|
else isInRect = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//ovverride
|
|
|
|
|
//鼠标左键按下回调
|
|
|
|
|
function OnMouseLbDown(MousePos_X, MousePos_Y) {
|
|
|
|
|
if (!IsFlip) {
|
|
|
|
|
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X, Y, Width, Height)) {
|
|
|
|
|
isLBDown = true;
|
|
|
|
|
if (!OnClickSound) {
|
|
|
|
|
R_Utils.PlaySound("CLICK_BUTTON1");
|
|
|
|
|
} else {
|
|
|
|
|
R_Utils.PlaySound(OnClickSound);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X - Width, Y, Width, Height)) {
|
|
|
|
|
isLBDown = true;
|
|
|
|
|
if (!OnClickSound) {
|
|
|
|
|
R_Utils.PlaySound("CLICK_BUTTON1");
|
|
|
|
|
} else {
|
|
|
|
|
R_Utils.PlaySound(OnClickSound);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//ovverride
|
|
|
|
|
function Show(obj) {
|
|
|
|
|
|
|
|
|
|
local XRate = 1.0;
|
|
|
|
|
if (IsFlip) XRate = -1.0;
|
|
|
|
|
//不可用
|
|
|
|
|
if (State == 8) {
|
|
|
|
|
L_sq_DrawImg(Path, Idx + 3, X, Y + 1, 1, sq_RGBA(255, 255, 255, 250), XRate, 1.0);
|
|
|
|
|
} else {
|
|
|
|
|
//按下
|
|
|
|
|
if (isLBDown) {
|
|
|
|
|
L_sq_DrawImg(Path, Idx + 2, X, Y + 1, 1, sq_RGBA(255, 255, 255, 250), XRate, 1.0);
|
|
|
|
|
}
|
|
|
|
|
//悬停
|
|
|
|
|
else if (isInRect) {
|
|
|
|
|
L_sq_DrawImg(Path, Idx + 1, X, Y, 1, sq_RGBA(255, 255, 255, 250), XRate, 1.0);
|
|
|
|
|
}
|
|
|
|
|
//普通
|
|
|
|
|
else {
|
|
|
|
|
L_sq_DrawImg(Path, Idx, X, Y, 1, sq_RGBA(255, 255, 255, 250), XRate, 1.0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-27 14:04:23 +08:00
|
|
|
class HorseGuessingC extends LenheartNewUI_Windows {
|
|
|
|
|
//调试模式
|
|
|
|
|
//DeBugMode = true;
|
|
|
|
|
|
|
|
|
|
//不是窗口
|
|
|
|
|
// NoWindow = true;
|
|
|
|
|
|
|
|
|
|
//是否可见
|
2024-09-29 16:52:10 +08:00
|
|
|
Visible = false;
|
2024-09-27 14:04:23 +08:00
|
|
|
|
|
|
|
|
//标题栏
|
|
|
|
|
Title = null;
|
|
|
|
|
//当前页面
|
|
|
|
|
Page = 0;
|
|
|
|
|
|
|
|
|
|
//页面选择器
|
|
|
|
|
PageSelectM = 0;
|
|
|
|
|
//指引页面
|
|
|
|
|
GuidePage = null;
|
|
|
|
|
//骑士资料页面
|
|
|
|
|
KnightInfoPage = null;
|
|
|
|
|
//过往战绩页面
|
|
|
|
|
PastRecordPage = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//骑手名称
|
2024-09-29 16:52:10 +08:00
|
|
|
RiderName = null;
|
2024-09-27 14:04:23 +08:00
|
|
|
|
|
|
|
|
//当前选择骑手
|
|
|
|
|
NowSelectRider = 0;
|
|
|
|
|
|
|
|
|
|
//下注
|
|
|
|
|
BetItem = 0;
|
|
|
|
|
|
|
|
|
|
//剩余可下注数量
|
|
|
|
|
ResidueCoin = 10000;
|
|
|
|
|
|
|
|
|
|
//骑手信息
|
|
|
|
|
RiderInfo = null;
|
|
|
|
|
|
2024-09-29 16:52:10 +08:00
|
|
|
//往期战绩
|
|
|
|
|
InfoContestLog = null;
|
|
|
|
|
|
|
|
|
|
//状态
|
|
|
|
|
MyState = 0;
|
|
|
|
|
|
|
|
|
|
//初始化名字包
|
|
|
|
|
function InitRiderNameCallBack(Chunk) {
|
|
|
|
|
local Jso = Json.Decode(Chunk);
|
|
|
|
|
RiderName = Jso.name;
|
|
|
|
|
ResidueCoin = Jso.Max;
|
|
|
|
|
BetItem = Jso.itemId;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取基础配置信息
|
|
|
|
|
function GetBaseConfig() {
|
|
|
|
|
local T = {
|
|
|
|
|
op = 20055001,
|
|
|
|
|
}
|
|
|
|
|
SendPackEx(T);
|
|
|
|
|
}
|
|
|
|
|
//获取基础配置信息回调
|
|
|
|
|
function GetBaseConfigCallBack(Chunk) {
|
|
|
|
|
local Jso = Json.Decode(Chunk);
|
|
|
|
|
if (!("Top8" in Jso.Rank)) return;
|
|
|
|
|
|
|
|
|
|
//同步状态
|
|
|
|
|
MyState = Jso.state;
|
|
|
|
|
|
|
|
|
|
//初始化骑手信息
|
|
|
|
|
RiderInfo = [];
|
|
|
|
|
RiderInfo = Jso.Rank.Top8;
|
|
|
|
|
|
|
|
|
|
//写入骑手下注信息
|
|
|
|
|
for (local i = 0; i< RiderInfo.len(); i++) {
|
|
|
|
|
RiderInfo[i].codeItem <- Jso.codeItem[i];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//重置骑手按钮
|
|
|
|
|
|
|
|
|
|
//构造骑手按钮
|
|
|
|
|
InitKnightButton();
|
|
|
|
|
|
|
|
|
|
//刷新剩余可下注数量
|
|
|
|
|
ResidueCoin = Jso.ResidueCoin;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//请求骑士个人信息
|
|
|
|
|
this.GetRiderInfo();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取过往战绩
|
|
|
|
|
function GetPastRecord() {
|
|
|
|
|
local T = {
|
|
|
|
|
op = 20055009,
|
|
|
|
|
}
|
|
|
|
|
SendPackEx(T);
|
|
|
|
|
}
|
|
|
|
|
//获取过往战绩回调
|
|
|
|
|
function GetPastRecordCallBack(Chunk) {
|
|
|
|
|
local Jso = Json.Decode(Chunk);
|
|
|
|
|
InfoContestLog = Jso.knights;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-09-27 14:04:23 +08:00
|
|
|
//获取选手具体信息
|
|
|
|
|
function GetRiderInfo() {
|
|
|
|
|
local T = {
|
|
|
|
|
op = 20055003,
|
|
|
|
|
code = NowSelectRider,
|
|
|
|
|
}
|
2024-09-29 16:52:10 +08:00
|
|
|
SendPackEx(T);
|
2024-09-27 14:04:23 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取选手具体信息回调包
|
|
|
|
|
function GetRiderInfoCallBack(Chunk) {
|
|
|
|
|
local Jso = Json.Decode(Chunk);
|
2024-09-29 16:52:10 +08:00
|
|
|
RiderInfo[NowSelectRider].outcome <- Jso.outcome;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//通知刷新信息包
|
|
|
|
|
function NotifyRefreshInfoCallBack(Chunk) {
|
|
|
|
|
GetBaseConfig();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//动画脚本状态
|
|
|
|
|
AnimationAct = 0;
|
|
|
|
|
//绘制动画包
|
|
|
|
|
function DrawAniInfoCallBack(Chunk) {
|
|
|
|
|
local Jso = Json.Decode(Chunk);
|
|
|
|
|
AnimationAct = Jso.state;
|
|
|
|
|
|
|
|
|
|
if (AnimationAct == 2) {
|
|
|
|
|
if (CompetitionStartAnimotion) sq_Rewind(CompetitionStartAnimotion);
|
2024-09-27 14:04:23 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-29 16:52:10 +08:00
|
|
|
//战斗信息
|
|
|
|
|
FightInfo = null;
|
|
|
|
|
WinnerEffectTimer = null;
|
|
|
|
|
//战斗信息包
|
|
|
|
|
function FightInfoCallBack(Chunk) {
|
|
|
|
|
local Jso = Json.Decode(Chunk);
|
|
|
|
|
MyState = Jso.state;
|
|
|
|
|
|
|
|
|
|
FightInfo = Jso;
|
|
|
|
|
if (MyState >= 30) {
|
|
|
|
|
WinnerEffectTimer = Clock();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获胜者动画
|
|
|
|
|
NotiState = false; //公告状态
|
|
|
|
|
NotiStr = null; //公告内容
|
|
|
|
|
NotiTime = null; //公告时间
|
|
|
|
|
|
|
|
|
|
function WinnerAniCallBack(Chunk) {
|
|
|
|
|
local Jso = Json.Decode(Chunk);
|
|
|
|
|
NotiState = true; //公告状态
|
|
|
|
|
NotiStr = Jso.Str; //公告内容
|
|
|
|
|
NotiTime = Clock();
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-27 14:04:23 +08:00
|
|
|
|
|
|
|
|
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
|
|
|
|
Childrens = [];
|
|
|
|
|
Title = [];
|
|
|
|
|
RiderInfo = [];
|
2024-09-29 16:52:10 +08:00
|
|
|
RiderName = [
|
|
|
|
|
"伊撒尔",
|
|
|
|
|
"理查德",
|
|
|
|
|
"席恩",
|
|
|
|
|
"吉尔特",
|
|
|
|
|
"爱德华",
|
|
|
|
|
"罗兰",
|
|
|
|
|
"莱奥",
|
|
|
|
|
"贝奥武夫",
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
// //读取配置文件
|
|
|
|
|
// local Config = R_Utils.ReadScriptConfig("etc/rindro/horseguessing/horseguessing.dat", 1024, "utf8");
|
|
|
|
|
|
|
|
|
|
// RiderName = Config.RiderInfo;
|
|
|
|
|
// BetItem = Config.ItemId;
|
|
|
|
|
// //把big的名字 转成 utf8
|
|
|
|
|
// for (local i = 0; i< RiderName.len(); i++) {
|
|
|
|
|
// RiderName[i] = Sq_ConvertWideChar(RiderName[i], "big5");
|
|
|
|
|
// }
|
2024-09-27 14:04:23 +08:00
|
|
|
|
|
|
|
|
//注册控件
|
|
|
|
|
RegisterWidget();
|
|
|
|
|
|
2024-09-29 16:52:10 +08:00
|
|
|
Pack_Control.rawset(20055058, InitRiderNameCallBack.bindenv(this));
|
|
|
|
|
Pack_Control.rawset(20055002, GetBaseConfigCallBack.bindenv(this));
|
|
|
|
|
Pack_Control.rawset(20055010, GetPastRecordCallBack.bindenv(this));
|
|
|
|
|
Pack_Control.rawset(20055004, GetRiderInfoCallBack.bindenv(this));
|
|
|
|
|
Pack_Control.rawset(20055018, NotifyRefreshInfoCallBack.bindenv(this));
|
|
|
|
|
Pack_Control.rawset(20055020, DrawAniInfoCallBack.bindenv(this));
|
|
|
|
|
Pack_Control.rawset(20055012, FightInfoCallBack.bindenv(this));
|
|
|
|
|
Pack_Control.rawset(20055078, WinnerAniCallBack.bindenv(this));
|
|
|
|
|
|
|
|
|
|
//获取基础配置
|
|
|
|
|
GetBaseConfig();
|
|
|
|
|
//获取历史战绩
|
|
|
|
|
GetPastRecord();
|
|
|
|
|
|
|
|
|
|
|
2024-09-27 14:04:23 +08:00
|
|
|
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
|
|
|
|
|
2024-09-29 16:52:10 +08:00
|
|
|
|
2024-09-27 14:04:23 +08:00
|
|
|
GuidePage = HorseGuessing_GuideC("骑士马战_指引窗口", X + 7, Y + 50, 214, 480, 0);
|
|
|
|
|
KnightInfoPage = HorseGuessing_KnightInfoC("骑士马战_资料窗口", X + 7, Y + 50, 214, 480, 0);
|
2024-09-29 16:52:10 +08:00
|
|
|
PastRecordPage = HorseGuessing_PastRecordC("骑士马战_战绩窗口", X + 7, Y + 50, 214, 480, 0);
|
2024-09-27 14:04:23 +08:00
|
|
|
|
|
|
|
|
//默认构造时切换到0页
|
2024-09-29 16:52:10 +08:00
|
|
|
ChangePage(0);
|
2024-09-27 14:04:23 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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(GuidePage);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 1: {
|
|
|
|
|
AddChild(KnightInfoPage);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 2:
|
|
|
|
|
AddChild(PastRecordPage);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-29 16:52:10 +08:00
|
|
|
//初始化骑士按钮
|
|
|
|
|
function InitKnightButton() {
|
|
|
|
|
foreach(pos, v in RiderInfo) {
|
|
|
|
|
local KnightButton = HorseGuessingBaseButton(269 + ((pos / 2) * 121) + ((pos % 2) * 59), 398, 36, 42, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_cha_btn.img", pos * 4);
|
|
|
|
|
//如果是偶数需要翻转骑士
|
|
|
|
|
if (pos % 2 == 1) {
|
|
|
|
|
KnightButton.IsFlip = true;
|
|
|
|
|
KnightButton.Localtion_X += 36;
|
|
|
|
|
}
|
|
|
|
|
KnightButton.Data = v;
|
|
|
|
|
KnightButton.OnClickEx = function(Button) {
|
|
|
|
|
this.NowSelectRider = Button.Data.code;
|
|
|
|
|
ChangePage(1);
|
|
|
|
|
//请求骑士个人信息
|
|
|
|
|
this.GetRiderInfo();
|
|
|
|
|
}.bindenv(this);
|
|
|
|
|
|
|
|
|
|
KnightButton.SetCallBackFunc(function(Button) {
|
|
|
|
|
//是否翻转的偏移
|
|
|
|
|
local FlipXOffset = ((Button.IsFlip == true) ? -35 : 0);
|
|
|
|
|
local horseKey = ((Button.IsFlip == true) ? "right" : "left");
|
|
|
|
|
//绘制旗帜
|
|
|
|
|
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 11 + Button.Data.code, Button.X - 6 + FlipXOffset, Button.Y + 46);
|
|
|
|
|
//绘制赔率信息
|
|
|
|
|
local OddsStr = format("%.2f", Button.Data.Odds.tofloat());
|
|
|
|
|
L_sq_DrawCode(OddsStr, Button.X + 18 + FlipXOffset - LenheartTextClass.GetStringLength(OddsStr) / 2, Button.Y + 53);
|
|
|
|
|
//绘制已投币数量
|
|
|
|
|
local codeItem = Button.Data.codeItem.tostring();
|
|
|
|
|
L_sq_DrawCode(codeItem, Button.X + 18 + FlipXOffset - LenheartTextClass.GetStringLength(codeItem) / 2, Button.Y + 68);
|
|
|
|
|
|
|
|
|
|
//绘制框
|
|
|
|
|
if (FlipXOffset == -35) FlipXOffset = -37; //傻逼国服美工这个偏移和那个翻转的偏移不一样
|
|
|
|
|
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_horse_" + horseKey + "_effect.img", Button.Data.code * 2, Button.X + FlipXOffset - 11, Button.Y - 54);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}.bindenv(this));
|
|
|
|
|
Childrens.append(KnightButton);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-27 14:04:23 +08:00
|
|
|
function RegisterWidget() {
|
|
|
|
|
//关闭按钮
|
|
|
|
|
local CloseButton = LenheartNewUI_BaseButton(750, 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);
|
|
|
|
|
Tabbars2.SetTextOffset(7, 3);
|
|
|
|
|
Title.append(Tabbars2);
|
|
|
|
|
|
|
|
|
|
local Tabbars3 = LenheartNewUI_TabbarsText(136, 27, "过往战绩");
|
|
|
|
|
AddChild(Tabbars3);
|
|
|
|
|
Tabbars3.OnClick = function() {
|
|
|
|
|
ChangePage(2);
|
|
|
|
|
}.bindenv(this);
|
|
|
|
|
Tabbars3.SetTextOffset(7, 3);
|
|
|
|
|
Title.append(Tabbars3);
|
|
|
|
|
|
2024-09-29 16:52:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-09-27 14:04:23 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function DrawInfo(obj) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//绘制主界面
|
|
|
|
|
function DrawMain(obj) {
|
|
|
|
|
//绘制窗口
|
|
|
|
|
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 33, X, Y);
|
|
|
|
|
//绘制左边底槽窗口
|
|
|
|
|
L_sq_DrawWindow(X + 2, Y + 46, 210, 435, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//绘制详情页
|
|
|
|
|
DrawInfo(obj);
|
|
|
|
|
|
|
|
|
|
//BackGround
|
|
|
|
|
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 0, X + 227, Y + 26);
|
|
|
|
|
|
|
|
|
|
// L_sq_DrawCode(L_sq_StringBinById(271069), X + 400, Y + 386, sq_RGBA(255, 255, 255, 250), 0, 1);
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-29 16:52:10 +08:00
|
|
|
//开始动画
|
|
|
|
|
CompetitionStartAnimotion = null;
|
|
|
|
|
//绘制动画
|
|
|
|
|
function DrawAnimation(obj) {
|
|
|
|
|
//绘制321开始
|
|
|
|
|
if (AnimationAct == 1) {
|
|
|
|
|
CompetitionStartAnimotion = T_DrawDynamicAni(obj, "common/horseguessing/countdown.ani", X + 9 + 287 - 14 + 202, Y + 45 + 237 + 64 - 144, "HorseGuessingCompetitionState8");
|
|
|
|
|
}
|
|
|
|
|
//绘制战斗
|
|
|
|
|
else if (AnimationAct == 2) {
|
|
|
|
|
local T = {
|
|
|
|
|
count = 4,
|
|
|
|
|
x = 282,
|
|
|
|
|
y = 346,
|
|
|
|
|
x2 = 282,
|
|
|
|
|
y2 = 346,
|
|
|
|
|
x3 = 282,
|
|
|
|
|
y3 = 346,
|
|
|
|
|
offset = 122,
|
|
|
|
|
}
|
|
|
|
|
// if(MyState < 10)
|
|
|
|
|
if (MyState >= 10 && MyState< 20) {
|
|
|
|
|
T.count = 2;
|
|
|
|
|
T.x = 344;
|
|
|
|
|
T.y = 222;
|
|
|
|
|
T.x2 = 310;
|
|
|
|
|
T.y2 = 232;
|
|
|
|
|
T.x3 = 380;
|
|
|
|
|
T.y3 = 232;
|
|
|
|
|
T.offset = 244;
|
|
|
|
|
} else if (MyState >= 20) {
|
|
|
|
|
T.count = 1;
|
|
|
|
|
T.x = 465;
|
|
|
|
|
T.y = 54;
|
|
|
|
|
T.x2 = 370;
|
|
|
|
|
T.y2 = 120;
|
|
|
|
|
T.x3 = 560;
|
|
|
|
|
T.y3 = 120;
|
|
|
|
|
T.offset = 244;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (local i = 0; i< T.count; i++) {
|
|
|
|
|
T_DrawDynamicAni(obj, "common/horseguessing/battle.ani", X + T.x + (i * T.offset), Y + T.y, "骑士马战战斗动画文字");
|
|
|
|
|
|
|
|
|
|
T_DrawDynamicAni(obj, "common/horseguessing/battleleffect.ani", X + T.x2 + (i * T.offset), Y + T.y2, "骑士马战战斗动画左");
|
|
|
|
|
T_DrawDynamicAni(obj, "common/horseguessing/battlereffect.ani", X + T.x3 + (i * T.offset), Y + T.y3, "骑士马战战斗动画右");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//结束绘制
|
|
|
|
|
else if (AnimationAct == 3) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//绘制骑士和生命值
|
|
|
|
|
function DrawKnightAndHpDrawFunction(T, Key) {
|
|
|
|
|
foreach(i, value in FightInfo[Key]) {
|
|
|
|
|
local DrawX = X + T.x + ((i / 2) * T.offset1) + ((i % 2) * T.offset2);
|
|
|
|
|
local DrawY = Y + T.y;
|
|
|
|
|
|
|
|
|
|
local XRate = (i % 2 == 0 ? 1.0 : -1.0);
|
|
|
|
|
local Xoffset = (i % 2 == 0 ? 0 : 36);
|
|
|
|
|
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_cha_btn.img", value.code * 4, DrawX + Xoffset, DrawY, 1, sq_RGBA(255, 255, 255, 250), XRate, 1.0);
|
|
|
|
|
|
|
|
|
|
//绘制血条
|
|
|
|
|
setClip(DrawX + 2, DrawY - 4, DrawX + 2 + (34.0 * (value.hp.tofloat() / 100.0)).tointeger(), DrawY - 4 + 2);
|
|
|
|
|
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 2, DrawX + 2, DrawY - 4);
|
|
|
|
|
releaseClip();
|
|
|
|
|
|
|
|
|
|
//绘制胜利线
|
|
|
|
|
if (value.win > 0) {
|
|
|
|
|
local XXoffset = (i % 2 == 0 ? 0 : -2);
|
|
|
|
|
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 20 + T.imgoffset, DrawX + XXoffset + T.Xx, DrawY - 65 + T.Xy, 1, sq_RGBA(255, 255, 255, 250), XRate, 1.0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function DrawKnightAndHp(obj) {
|
|
|
|
|
if (!FightInfo) return;
|
|
|
|
|
|
|
|
|
|
if (MyState > 0) {
|
|
|
|
|
local T = {
|
|
|
|
|
x = 268,
|
|
|
|
|
y = 398,
|
|
|
|
|
offset1 = 121,
|
|
|
|
|
offset2 = 59,
|
|
|
|
|
imgoffset = 0,
|
|
|
|
|
Xx = 20,
|
|
|
|
|
Xy = 0
|
|
|
|
|
}
|
|
|
|
|
DrawKnightAndHpDrawFunction(T, "top8");
|
|
|
|
|
}
|
|
|
|
|
if (MyState >= 10) {
|
|
|
|
|
local T = {
|
|
|
|
|
x = 298,
|
|
|
|
|
y = 287,
|
|
|
|
|
offset1 = 242,
|
|
|
|
|
offset2 = 122,
|
|
|
|
|
imgoffset = 1,
|
|
|
|
|
Xx = 19,
|
|
|
|
|
Xy = 0
|
|
|
|
|
};
|
|
|
|
|
DrawKnightAndHpDrawFunction(T, "top4");
|
|
|
|
|
}
|
|
|
|
|
if (MyState >= 20) {
|
|
|
|
|
local T = {
|
|
|
|
|
x = 358,
|
|
|
|
|
y = 176,
|
|
|
|
|
offset1 = 400,
|
|
|
|
|
offset2 = 244,
|
|
|
|
|
imgoffset = 2,
|
|
|
|
|
Xx = 19,
|
|
|
|
|
Xy = 7
|
|
|
|
|
};
|
|
|
|
|
DrawKnightAndHpDrawFunction(T, "top2");
|
|
|
|
|
}
|
|
|
|
|
if (MyState >= 30) {
|
|
|
|
|
local T = {
|
|
|
|
|
x = 482,
|
|
|
|
|
y = 88,
|
|
|
|
|
offset1 = 121,
|
|
|
|
|
offset2 = 59,
|
|
|
|
|
imgoffset = 1,
|
|
|
|
|
Xx = 19,
|
|
|
|
|
Xy = 0
|
|
|
|
|
};
|
|
|
|
|
T_DrawDynamicAni(obj, "common/horseguessing/winnereffect_back.ani", X + T.x, Y + T.y, "骑士马战冠军背景");
|
|
|
|
|
DrawKnightAndHpDrawFunction(T, "top1");
|
|
|
|
|
T_DrawDynamicAni(obj, "common/horseguessing/winnereffect_front.ani", X + T.x - 15, Y + T.y - 10, "骑士马战冠军特效" + WinnerEffectTimer);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//绘制公告
|
|
|
|
|
function DrawNoti(obj) {
|
|
|
|
|
//NotiStr
|
|
|
|
|
if (NotiState) {
|
|
|
|
|
// print(Clock() - NotiTime);
|
|
|
|
|
local A = 0;
|
|
|
|
|
if (Clock() - NotiTime< 2000) {
|
|
|
|
|
A = sq_GetUniformVelocity(0, 250, Clock() - NotiTime, 2000);
|
|
|
|
|
}
|
|
|
|
|
if (Clock() - NotiTime >= 2000 && Clock() - NotiTime< 3000) A = 250;
|
|
|
|
|
if (Clock() - NotiTime >= 3000) {
|
|
|
|
|
A = sq_GetUniformVelocity(250, 0, Clock() - NotiTime, 6000);
|
|
|
|
|
}
|
|
|
|
|
local Xpos = ((getroottable().Rindro_Scr_Width - 647) / 2).tointeger();
|
|
|
|
|
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 26, Xpos, 160, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0);
|
|
|
|
|
L_sq_DrawCode(NotiStr, Xpos + 366 - LenheartTextClass.GetStringLength(NotiStr), 160 + 44, sq_RGBA(255, 255, 255, A), 2, 1);
|
|
|
|
|
if (Clock() - NotiTime >= 6000) {
|
|
|
|
|
NotiState = false;
|
|
|
|
|
}
|
|
|
|
|
// NotiTime
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-27 14:04:23 +08:00
|
|
|
function Show(obj) {
|
|
|
|
|
DrawMain(obj);
|
|
|
|
|
LenheartNewUI_Windows.Show(obj);
|
2024-09-29 16:52:10 +08:00
|
|
|
DrawAnimation(obj);
|
|
|
|
|
DrawKnightAndHp(obj);
|
2024-09-27 14:04:23 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//逻辑入口
|
|
|
|
|
function Proc(obj) {
|
|
|
|
|
LenheartNewUI_Windows.SyncPos(X, Y);
|
|
|
|
|
|
|
|
|
|
//主动调用子对象窗口的Proc
|
|
|
|
|
foreach(Object in Childrens) {
|
|
|
|
|
if (Object instanceof LenheartNewUI_Windows)
|
|
|
|
|
Object.Proc(obj);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-29 16:52:10 +08:00
|
|
|
function TopShow(obj) {
|
|
|
|
|
DrawNoti(obj);
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-27 14:04:23 +08:00
|
|
|
|
|
|
|
|
function OpenCallBack() {
|
|
|
|
|
this.Visible = true;
|
|
|
|
|
ResetFocus();
|
2024-09-29 16:52:10 +08:00
|
|
|
//获取基础配置
|
|
|
|
|
GetBaseConfig();
|
|
|
|
|
//获取历史战绩
|
|
|
|
|
GetPastRecord();
|
2024-09-27 14:04:23 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
getroottable().rawdelete("HorseGuessing_Obj");
|
|
|
|
|
|
|
|
|
|
function Lenheart_HorseGuessing_Fun(obj) {
|
|
|
|
|
local RootTab = getroottable();
|
|
|
|
|
if (!RootTab.rawin("HorseGuessing_Obj")) {
|
|
|
|
|
RootTab.rawset("HorseGuessing_Obj", true);
|
|
|
|
|
local Winobj = LenheartNewUI_CreateWindow(HorseGuessingC, "骑士马战窗口", ((getroottable().Rindro_Scr_Width - 772) / 2).tointeger(), 30, 772, 539, 28);
|
|
|
|
|
|
|
|
|
|
EventList_Obj.AddEvent("骑士马战", 106, Winobj, "interface2/yosin/eventsystemlist2.img");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getroottable()["LenheartFuncTab"].rawset("HorseGuessingFuncN", Lenheart_HorseGuessing_Fun);
|