| 
									
										
										
										
											2024-09-27 14:04:23 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名:HorseGuessing.nut | 
					
						
							|  |  |  | 路径:Project/HorseGuessing/HorseGuessing.nut | 
					
						
							|  |  |  | 创建日期:2024-09-25	20:30 | 
					
						
							|  |  |  | 文件用途:骑士马战 | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2025-05-27 21:24:22 +08:00
										 |  |  | // dofile("sqr/Project/HorseGuessing/HorseGuessing_Guide.nut"); //骑士马战指引 | 
					
						
							|  |  |  | // dofile("sqr/Project/HorseGuessing/HorseGuessing_KnightInfo.nut"); //骑士马战资料 | 
					
						
							|  |  |  | // dofile("sqr/Project/HorseGuessing/HorseGuessing_PastRecord.nut"); //骑士马战过往战绩 | 
					
						
							| 
									
										
										
										
											2024-09-29 16:52:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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); |