1415 lines
		
	
	
		
			52 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			1415 lines
		
	
	
		
			52 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名:HorseGuessing.nut | ||
|  | 路径:Plugins/HorseGuessing/HorseGuessing.nut | ||
|  | 创建日期:2023-10-02	14:19 | ||
|  | 文件用途: | ||
|  | */ | ||
|  | 
 | ||
|  | //TabTextButtonPro按钮类 | ||
|  | class HorseGuessingTabTextButtonPro extends BasicsDrawTool //  obj  --  按钮名称  --  X坐标  --  Y坐标  --  Ani调用路径  --  宽度  --  高度 | ||
|  | { | ||
|  |     obj = null; //Obj对象 | ||
|  |     State = 0; //按钮状态 | ||
|  |     ClickEnble = false; //点击效果 | ||
|  |     ButtonDynamic = false; //动态按钮效果 | ||
|  |     SwitchState = false; //复选框是否选中 | ||
|  |     str = null; | ||
|  |     strx = null; | ||
|  |     stry = null; | ||
|  | 
 | ||
|  |     CustomClickEnble = false; //自定义点击效果 | ||
|  |     CustomClickAnifile = null; //自定义点击效果Ani路径 | ||
|  |     CustomButtonName = null; //自定义点击效果名称 | ||
|  |     CustomClickFrame = null; //自定义点击效果Ani编号 | ||
|  |     CustomClickx = null; //自定义点击效果X坐标 | ||
|  |     CustomClicky = null; //自定义点击效果Y坐标 | ||
|  | 
 | ||
|  | 
 | ||
|  |     RectEnble = false; //悬停效果 | ||
|  |     RectButtonName = null; //悬停名称 | ||
|  |     RectBaseAnifile = null; //悬停Ani路径 | ||
|  |     RectFrame = null; //非动态按钮的悬停调用Ani编号 | ||
|  |     Rectx = null; //悬停X坐标 | ||
|  |     Recty = null; //悬停Y坐标 | ||
|  | 
 | ||
|  | 
 | ||
|  |     ButtonName = null; //按钮名称 | ||
|  |     x = null; //X坐标 | ||
|  |     y = null; //Y坐标 | ||
|  |     BaseAnifile = null; //调用Ani路径 | ||
|  |     BaseAnifileFrame = null; //调用的Ani帧数 | ||
|  |     width = null; //可点击宽度 | ||
|  |     length = null; //可点击高度 | ||
|  | 
 | ||
|  |     Mobj = null; //鼠标对象 | ||
|  | 
 | ||
|  |     ex = 0; | ||
|  |     ey = 0; | ||
|  | 
 | ||
|  |     //构造函数 | ||
|  |     constructor(gObj, gButtonName, gX, gY, gAnifile, gBaseAnifileFrame, gWidth, gLength, gstr, gstrx, gstry) { | ||
|  |         obj = gObj; | ||
|  |         ButtonName = gButtonName; | ||
|  |         x = gX; | ||
|  |         y = gY; | ||
|  |         BaseAnifile = gAnifile; | ||
|  |         BaseAnifileFrame = gBaseAnifileFrame; | ||
|  |         width = gWidth; | ||
|  |         length = gLength; | ||
|  |         str = gstr; | ||
|  |         strx = gstrx; | ||
|  |         stry = gstry; | ||
|  |         if (getroottable().rawin("MouseObject")) Mobj = getroottable()["MouseObject"]; | ||
|  |     } | ||
|  |     //绘制按钮 | ||
|  |     function Show() { | ||
|  |         if (ClickEnble) //是否开启点击效果 | ||
|  |         { | ||
|  |             if (isLBDown() && State == 0) //按下左键并且按钮处于弹起状态 | ||
|  |             { | ||
|  |                 State = 1; //按键进入按下状态 | ||
|  |                 //++y; | ||
|  |             } | ||
|  |             if (!isLBDown() && State == 1) //按下左键并且按钮处于弹起状态 | ||
|  |             { | ||
|  |                 State = 0; //按键进入弹起状态 | ||
|  |                 //--y; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         if (CustomClickEnble) //是否开启自定义点击效果 | ||
|  |         { | ||
|  |             if (isLBDown() && SwitchState == false) //按下左键并且按钮处于弹起状态 | ||
|  |             { | ||
|  |                 // T_DrawStayAni(obj, CustomClickAnifile, CustomClickx, CustomClicky, CustomClickFrame, CustomButtonName); | ||
|  |                 L_sq_DrawImg(CustomClickAnifile, CustomClickFrame, CustomClickx + ex, CustomClicky + ey); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         if (RectEnble && SwitchState == false) //开启悬停效果时 | ||
|  |         { | ||
|  |             if ((isInRect()) || (isInRect() && !CustomClickEnble)) //如果鼠标悬停的时候  并且没有点击的时候 | ||
|  |             { | ||
|  |                 //IMouse.SetMouseTask(44); | ||
|  |                 // T_DrawStayAni(obj, RectBaseAnifile, Rectx, Recty, RectFrame, RectButtonName); | ||
|  |                 L_sq_DrawImg(RectBaseAnifile, RectFrame, Rectx + ex, Recty + ey); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         if (!isInRect() && !SwitchState) //如果鼠标没有悬停的时候 | ||
|  |         { | ||
|  |             //IMouse.SetMouseTask(0); | ||
|  |             // T_DrawStayAni(obj, BaseAnifile, x, y, BaseAnifileFrame, ButtonName); | ||
|  |             L_sq_DrawImg(BaseAnifile, BaseAnifileFrame, x + ex, y + ey); | ||
|  |         } | ||
|  | 
 | ||
|  |         if (SwitchState) { | ||
|  |             // T_DrawStayAni(obj, CustomClickAnifile, CustomClickx, CustomClicky, CustomClickFrame, CustomButtonName); | ||
|  |             L_sq_DrawImg(CustomClickAnifile, CustomClickFrame, CustomClickx + ex, CustomClicky + ey); | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置自定义点击效果 | ||
|  |     function SetCustomClickEnble(bool, gButtonName, gX, gY, gAnifile, gFrame) { | ||
|  |         CustomClickEnble = bool; //自定义点击效果 | ||
|  |         CustomClickAnifile = gAnifile; //自定义点击效果Ani路径 | ||
|  |         CustomButtonName = gButtonName; //自定义点击效果名称 | ||
|  |         CustomClickFrame = gFrame; //自定义点击效果Ani编号 | ||
|  |         CustomClickx = gX; //自定义点击效果X坐标 | ||
|  |         CustomClicky = gY; //自定义点击效果Y坐标 | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置悬停效果 | ||
|  |     function SetRectEnble(bool, gButtonName, gX, gY, gAnifile, gFrame) { | ||
|  |         RectEnble = bool; //悬停效果 | ||
|  |         RectButtonName = gButtonName; //悬停名称 | ||
|  |         RectBaseAnifile = gAnifile; //悬停Ani路径 | ||
|  |         RectFrame = gFrame; //非动态按钮的悬停调用Ani编号 | ||
|  |         Rectx = gX; //悬停X坐标 | ||
|  |         Recty = gY; //悬停Y坐标 | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置动态按钮 | ||
|  |     function SetClickEnble(bool) { | ||
|  |         ButtonDynamic = bool; | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置点击效果 | ||
|  |     function SetClickEnble(bool) { | ||
|  |         ClickEnble = bool; | ||
|  |     } | ||
|  | 
 | ||
|  |     //悬停状态 | ||
|  |     function isInRect() { | ||
|  |         if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 5, 5, x + ex, y + ey, width, length)) return true; | ||
|  |         else return false; | ||
|  |     } | ||
|  |     //左键按下状态 | ||
|  |     function isLBDown() { | ||
|  |         if (isInRect() && Mobj.Lb == 1) return true; | ||
|  |         else return false; | ||
|  |     } | ||
|  |     //左键弹起状态 | ||
|  |     function isLBUp() { | ||
|  |         if (isInRect() && Mobj.Lb == 0) return true; | ||
|  |         else return false; | ||
|  |     } | ||
|  | 
 | ||
|  |     //左键单击状态 | ||
|  |     function isLBActive() { | ||
|  |         if (isInRect() && Mobj.LbEvent) return true; | ||
|  |         else return false; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | //HudPro按钮类 | ||
|  | class HorseGuessingPro extends BasicsDrawTool //  obj  --  按钮名称  --  X坐标  --  Y坐标  --  Ani调用路径  --  宽度  --  高度 | ||
|  | { | ||
|  |     obj = null; //Obj对象 | ||
|  |     State = 0; //按钮状态 | ||
|  |     ClickEnble = false; //点击效果 | ||
|  |     ButtonDynamic = false; //动态按钮效果 | ||
|  |     BaseFrame = null; | ||
|  | 
 | ||
|  |     CustomClickEnble = false; //自定义点击效果 | ||
|  |     CustomClickAnifile = null; //自定义点击效果Ani路径 | ||
|  |     CustomButtonName = null; //自定义点击效果名称 | ||
|  |     CustomClickFrame = null; //自定义点击效果Ani编号 | ||
|  |     CustomClickx = null; //自定义点击效果X坐标 | ||
|  |     CustomClicky = null; //自定义点击效果Y坐标 | ||
|  | 
 | ||
|  | 
 | ||
|  |     RectEnble = false; //悬停效果 | ||
|  |     RectButtonName = null; //悬停名称 | ||
|  |     RectBaseAnifile = null; //悬停Ani路径 | ||
|  |     RectFrame = null; //非动态按钮的悬停调用Ani编号 | ||
|  |     Rectx = null; //悬停X坐标 | ||
|  |     Recty = null; //悬停Y坐标 | ||
|  | 
 | ||
|  | 
 | ||
|  |     ButtonName = null; //按钮名称 | ||
|  |     x = null; //X坐标 | ||
|  |     y = null; //Y坐标 | ||
|  |     BaseAnifile = null; //调用Ani路径 | ||
|  |     width = null; //可点击宽度 | ||
|  |     length = null; //可点击高度 | ||
|  | 
 | ||
|  |     Mobj = null; //鼠标对象 | ||
|  | 
 | ||
|  |     Overturn = false; //翻转 | ||
|  | 
 | ||
|  | 
 | ||
|  |     //构造函数 | ||
|  |     constructor(gButtonName, gX, gY, gAnifile, gWidth, gLength, gBaseFrame) { | ||
|  |         ButtonName = gButtonName; | ||
|  |         x = gX; | ||
|  |         y = gY; | ||
|  |         BaseAnifile = gAnifile; | ||
|  |         width = gWidth; | ||
|  |         length = gLength; | ||
|  |         BaseFrame = gBaseFrame; | ||
|  |         if (getroottable().rawin("MouseObject")) Mobj = getroottable()["MouseObject"]; | ||
|  |     } | ||
|  |     //绘制按钮 | ||
|  |     function Show() { | ||
|  |         if (ClickEnble) //是否开启点击效果 | ||
|  |         { | ||
|  |             if (isLBDown() && State == 0) //按下左键并且按钮处于弹起状态 | ||
|  |             { | ||
|  |                 State = 1; //按键进入按下状态 | ||
|  |                 ++y; | ||
|  |             } | ||
|  |             if (!isLBDown() && State == 1) //按下左键并且按钮处于弹起状态 | ||
|  |             { | ||
|  |                 State = 0; //按键进入弹起状态 | ||
|  |                 --y; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         local Xr = 1.0 | ||
|  |         local Xoffset = 0; | ||
|  | 
 | ||
|  |         if (Overturn) { | ||
|  |             Xr = -1.0; | ||
|  |             Xoffset = width; | ||
|  |         } | ||
|  |         //L_sq_DrawImg("common/etc/combo.img", 0, 100, 100, 0, sq_RGBA(255, 255, 255, 250), 1.0, 1.0); | ||
|  | 
 | ||
|  |         if (CustomClickEnble) //是否开启自定义点击效果 | ||
|  |         { | ||
|  |             if (isLBDown()) //按下左键并且按钮处于弹起状态 | ||
|  |             { | ||
|  |                 if (!ButtonDynamic) L_sq_DrawImg(CustomClickAnifile, CustomClickFrame, CustomClickx + Xoffset, CustomClicky, 0, sq_RGBA(255, 255, 255, 250), Xr, 1.0); | ||
|  |                 else T_DrawDynamicAni(obj, CustomClickAnifile, CustomClickx, CustomClicky, CustomButtonName); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         if (RectEnble) //开启悬停效果时 | ||
|  |         { | ||
|  |             if ((isInRect() && !isLBDown()) || (isInRect() && !CustomClickEnble)) //如果鼠标悬停的时候  并且没有点击的时候 | ||
|  |             { | ||
|  |                 //IMouse.SetMouseTask(44); | ||
|  |                 if (!ButtonDynamic) L_sq_DrawImg(RectBaseAnifile, RectFrame, Rectx + Xoffset, Recty, 0, sq_RGBA(255, 255, 255, 250), Xr, 1.0); | ||
|  |                 else T_DrawDynamicAni(obj, RectBaseAnifile, Rectx, Recty, RectButtonName); | ||
|  |             } | ||
|  |         } | ||
|  |         if (!isInRect()) //如果鼠标没有悬停的时候 | ||
|  |         { | ||
|  |             //IMouse.SetMouseTask(0); | ||
|  |             if (!ButtonDynamic) L_sq_DrawImg(BaseAnifile, BaseFrame, x + Xoffset, y, 0, sq_RGBA(255, 255, 255, 250), Xr, 1.0); | ||
|  |             else T_DrawDynamicAni(obj, BaseAnifile, x, y, ButtonName); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置自定义点击效果 | ||
|  |     function SetCustomClickEnble(bool, gButtonName, gX, gY, gAnifile, gFrame) { | ||
|  |         CustomClickEnble = bool; //自定义点击效果 | ||
|  |         CustomClickAnifile = gAnifile; //自定义点击效果Ani路径 | ||
|  |         CustomButtonName = gButtonName; //自定义点击效果名称 | ||
|  |         CustomClickFrame = gFrame; //自定义点击效果Ani编号 | ||
|  |         CustomClickx = gX; //自定义点击效果X坐标 | ||
|  |         CustomClicky = gY; //自定义点击效果Y坐标 | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置悬停效果 | ||
|  |     function SetRectEnble(bool, gButtonName, gX, gY, gAnifile, gFrame) { | ||
|  |         RectEnble = bool; //悬停效果 | ||
|  |         RectButtonName = gButtonName; //悬停名称 | ||
|  |         RectBaseAnifile = gAnifile; //悬停Ani路径 | ||
|  |         RectFrame = gFrame; //非动态按钮的悬停调用Ani编号 | ||
|  |         Rectx = gX; //悬停X坐标 | ||
|  |         Recty = gY; //悬停Y坐标 | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置动态按钮 | ||
|  |     function SetClickEnble(bool) { | ||
|  |         ButtonDynamic = bool; | ||
|  |     } | ||
|  | 
 | ||
|  |     //设置点击效果 | ||
|  |     function SetClickEnble(bool) { | ||
|  |         ClickEnble = bool; | ||
|  |     } | ||
|  | 
 | ||
|  |     //悬停状态 | ||
|  |     function isInRect() { | ||
|  |         if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 5, 5, x, y, width, length)) return true; | ||
|  |         else return false; | ||
|  |     } | ||
|  |     //左键按下状态 | ||
|  |     function isLBDown() { | ||
|  |         if (isInRect() && Mobj.Lb == 1) return true; | ||
|  |         else return false; | ||
|  |     } | ||
|  |     //左键弹起状态 | ||
|  |     function isLBUp() { | ||
|  |         if (isInRect() && Mobj.Lb == 0) return true; | ||
|  |         else return false; | ||
|  |     } | ||
|  | 
 | ||
|  |     //左键单击状态 | ||
|  |     function isLBActive() { | ||
|  |         if (isInRect() && Mobj.LbEvent) return true; | ||
|  |         else return false; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | class HorseGuessingWindow extends BasicsDrawTool { | ||
|  |     //宽度 | ||
|  |     Width = null; | ||
|  |     //高度 | ||
|  |     Height = null; | ||
|  |     //标题高度 | ||
|  |     TitleH = null; | ||
|  | 
 | ||
|  |     //X坐标 | ||
|  |     X = null; | ||
|  |     B_X = null; | ||
|  |     //Y坐标 | ||
|  |     Y = null; | ||
|  |     B_Y = null; | ||
|  | 
 | ||
|  |     YMouseSw = true; | ||
|  |     DeBugMode = false; | ||
|  | 
 | ||
|  |     Mobj = null; | ||
|  |     M_Xpos = null; | ||
|  |     M_Ypos = null; | ||
|  | 
 | ||
|  | 
 | ||
|  |     constructor(gX, gY, gWidth, gHeight, gTitleH) { | ||
|  |         //宽度 | ||
|  |         Width = gWidth; | ||
|  |         //高度 | ||
|  |         Height = gHeight; | ||
|  |         //标题高度 | ||
|  |         TitleH = gTitleH; | ||
|  | 
 | ||
|  |         //X坐标 | ||
|  |         X = gX; | ||
|  |         //Y坐标 | ||
|  |         Y = gY; | ||
|  | 
 | ||
|  |         if (getroottable().rawin("MouseObject")) Mobj = getroottable()["MouseObject"]; | ||
|  |     } | ||
|  | 
 | ||
|  |     //设定鼠标逻辑 | ||
|  |     function LockMouse() { | ||
|  |         if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X, Y, Width, Height)) { | ||
|  |             IMouse.LockMouseClick(); | ||
|  |             YMouseSw = false; | ||
|  |             L_sq_WA(0x1b46898, 1); | ||
|  |         } else { | ||
|  |             if (YMouseSw == false && sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, 0, 0, 800, 600)) { | ||
|  |                 IMouse.ReleaseMouseClick(); | ||
|  |                 YMouseSw = true; | ||
|  |                 L_sq_WA(0x1b46898, 0); | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //设定窗口拖动逻辑 | ||
|  |     function MoveWindow() { | ||
|  |         if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X, Y, Width, TitleH)) { | ||
|  | 
 | ||
|  |             if (Mobj.Lb == 1) { | ||
|  |                 if (!M_Xpos) M_Xpos = IMouse.GetXPos(); //原始鼠标位置数据 | ||
|  |                 if (!M_Ypos) M_Ypos = IMouse.GetYPos(); | ||
|  |                 if (!B_X) B_X = X; //原始窗口位置 | ||
|  |                 if (!B_Y) B_Y = Y; | ||
|  | 
 | ||
|  |                 X = B_X - (M_Xpos - IMouse.GetXPos()); | ||
|  |                 Y = B_Y - (M_Ypos - IMouse.GetYPos()); | ||
|  | 
 | ||
|  |             } else if (Mobj.Lb == 0) { | ||
|  |                 M_Xpos = null; | ||
|  |                 M_Ypos = null; | ||
|  |                 B_X = null; | ||
|  |                 B_Y = null; | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     function Show(obj) { | ||
|  |         if (DeBugMode) sq_DrawBox(X, Y, Width, Height, 0xffffffff); | ||
|  | 
 | ||
|  |         //设定鼠标逻辑 | ||
|  |         LockMouse(); | ||
|  | 
 | ||
|  |         //设定窗口拖动逻辑 | ||
|  |         MoveWindow(); | ||
|  | 
 | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | class HorseGuessingC extends BasicsDrawTool { | ||
|  | 
 | ||
|  |     Mobj = null; //鼠标对象 | ||
|  | 
 | ||
|  |     CompetitionState = null; //比赛状态 | ||
|  |     CompetitionStartAnimotion = null; | ||
|  |     NotiState = false; //公告状态 | ||
|  |     NotiStr = null; //公告内容 | ||
|  |     NotiTime = null; //公告时间 | ||
|  | 
 | ||
|  |     ResidueCoin = 10000; | ||
|  | 
 | ||
|  |     WindowObj = null; //窗口对象 | ||
|  |     MainState = false; //主状态 | ||
|  |     X = 13; | ||
|  |     Y = 10; | ||
|  | 
 | ||
|  |     //当前选择骑手资料 | ||
|  |     NowSelectRider = 0; | ||
|  |     //投注道具 | ||
|  |     ItemId = null; | ||
|  |     ItemInfo = null; | ||
|  |     ItemObject = null; | ||
|  |     ItemDrawState = false; | ||
|  |     //骑手名称 | ||
|  |     RiderName = [ | ||
|  |         "伊撒尔", | ||
|  |         "理查德", | ||
|  |         "席恩", | ||
|  |         "吉尔特", | ||
|  |         "爱德华", | ||
|  |         "罗兰", | ||
|  |         "莱奥", | ||
|  |         "贝奥武夫", | ||
|  |     ]; | ||
|  |     //InfoType | ||
|  |     InfoType = 1; | ||
|  |     //InfoTabButton | ||
|  |     InfoTabButton1 = null; | ||
|  |     InfoTabButton2 = null; | ||
|  |     InfoTabButton3 = null; | ||
|  |     //InfoContestLog | ||
|  |     InfoContestLog = null; | ||
|  | 
 | ||
|  | 
 | ||
|  |     Rider8T = null; | ||
|  |     Rider4T = null; | ||
|  |     Rider2T = null; | ||
|  |     Rider1T = null; | ||
|  | 
 | ||
|  |     RiderInfo = null; | ||
|  | 
 | ||
|  |     RankInfo = null; | ||
|  | 
 | ||
|  | 
 | ||
|  |     //获取基础配置包 | ||
|  |     function GetBaseInfo() { | ||
|  |         local T = { | ||
|  |             op = 20055079 | ||
|  |         }; | ||
|  |         SendPack(T); | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取基础道具信息 | ||
|  |     function GetItemInfo() { | ||
|  |         local T = { | ||
|  |             realop = 20055200, | ||
|  |             op = 2023100901, | ||
|  |             ItemId = this.ItemId | ||
|  |         }; | ||
|  |         SendPack(T); | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取基础道具信息包回调 | ||
|  |     function GetItemInfoCallBack(Chunk) { | ||
|  |         // Sout("收到包内容: %L", Chunk); | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  | 
 | ||
|  |         ItemInfo = Jso.item; | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取基础配置包回调 | ||
|  |     function GetBaseInfoCallBack(Chunk) { | ||
|  |         // Sout("收到包内容: %L", Chunk); | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         ItemId = Jso.itemId; | ||
|  |         ItemInfo = Jso.itemInfo[0]; | ||
|  |         ItemInfo.Name2 = "Yosin-Team"; | ||
|  | 
 | ||
|  |         for (local i = 0; i< Jso.nameS.len(); i++) { | ||
|  |             local NameBuf = Jso.nameS[i]; | ||
|  |             if (i == 0) { | ||
|  |                 RiderName = []; | ||
|  |             } | ||
|  |             RiderName.append(NameBuf); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取信息包 | ||
|  |     function GetInfo() { | ||
|  |         local T = { | ||
|  |             op = 20055001 | ||
|  |         }; | ||
|  |         SendPack(T); | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取信息包回调 | ||
|  |     function GetInfoCallBack(Chunk) { | ||
|  |         // Sout("收到包内容: %L", Chunk); | ||
|  | 
 | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         if (Jso.Rank.len() == 0) return; | ||
|  | 
 | ||
|  |         ResidueCoin = Jso.ResidueCoin; | ||
|  |         //同步状态 | ||
|  |         CompetitionState = Jso.state; | ||
|  |         //获取8位 | ||
|  |         for (local i = 0; i< Jso.Rank.Top8.len(); i++) { | ||
|  |             //获取赔率 | ||
|  |             local gOdds = Jso.Rank.Top8[i].SOdds; | ||
|  |             local gcodeItem = Jso.codeItem[i]; | ||
|  | 
 | ||
|  |             if (i == 0) { | ||
|  |                 if (Rider8T == null); | ||
|  |                 Rider8T = []; | ||
|  |             } | ||
|  | 
 | ||
|  |             local T; | ||
|  |             if (i< Rider8T.len()) { | ||
|  |                 T = Rider8T[i]; | ||
|  |                 T.Odds <- gOdds; | ||
|  |                 T.CodeItem <- gcodeItem; | ||
|  |             } else { | ||
|  |                 T = { | ||
|  |                     Odds = gOdds, | ||
|  |                     CodeItem = gcodeItem, | ||
|  |                 }; | ||
|  |                 Rider8T.append(T); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //获取4位 | ||
|  |         for (local i = 0; i< Jso.Rank.Top4.len(); i++) { | ||
|  |             //获取骑手信息 | ||
|  |             local gCode = Jso.Rank.Top4[i].code; | ||
|  | 
 | ||
|  |             if (i == 0) { | ||
|  |                 if (Rider4T == null); | ||
|  |                 Rider4T = []; | ||
|  |             } | ||
|  | 
 | ||
|  |             local T; | ||
|  |             if (i< Rider4T.len()) { | ||
|  |                 T = Rider4T[i]; | ||
|  |                 T.Code <- gCode; | ||
|  |             } else { | ||
|  |                 T = { | ||
|  |                     Code = gCode, | ||
|  |                 }; | ||
|  |                 Rider4T.append(T); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //获取2位 | ||
|  |         for (local i = 0; i< Jso.Rank.Top2.len(); i++) { | ||
|  |             //获取骑手信息 | ||
|  |             local gCode = Jso.Rank.Top2[i].code; | ||
|  |             if (i == 0) { | ||
|  |                 if (Rider2T == null); | ||
|  |                 Rider2T = []; | ||
|  |             } | ||
|  | 
 | ||
|  |             local T; | ||
|  |             if (i< Rider2T.len()) { | ||
|  |                 T = Rider2T[i]; | ||
|  |                 T.Code <- gCode; | ||
|  |             } else { | ||
|  |                 T = { | ||
|  |                     Code = gCode, | ||
|  |                 }; | ||
|  |                 Rider2T.append(T); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //获取1位 | ||
|  |         for (local i = 0; i< Jso.Rank.Top1.len(); i++) { | ||
|  |             //获取骑手信息 | ||
|  |             local gCode = Jso.Rank.Top1[i].code; | ||
|  | 
 | ||
|  |             if (i == 0) { | ||
|  |                 if (Rider1T == null); | ||
|  |                 Rider1T = []; | ||
|  |             } | ||
|  | 
 | ||
|  |             local T; | ||
|  |             if (i< Rider1T.len()) { | ||
|  |                 T = Rider1T[i]; | ||
|  |                 T.Code <- gCode; | ||
|  |             } else { | ||
|  |                 T = { | ||
|  |                     Code = gCode, | ||
|  |                 }; | ||
|  |                 Rider1T.append(T); | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取选手具体信息 | ||
|  |     function GetRiderInfo() { | ||
|  |         local T = { | ||
|  |             op = 20055003, | ||
|  |             code = NowSelectRider, | ||
|  |         } | ||
|  |         SendPack(T); | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取选手具体信息回调包 | ||
|  |     function GetRiderInfoCallBack(Chunk) { | ||
|  |         // Sout("收到包内容: %L", Chunk); | ||
|  | 
 | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  | 
 | ||
|  |         RiderInfo = []; | ||
|  |         for (local i = 0; i< Jso.outcome.len(); i++) { | ||
|  |             RiderInfo.append(Jso.outcome[i]); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取过往战绩 | ||
|  |     function GetPastInfo() { | ||
|  |         local T = { | ||
|  |             op = 20055009, | ||
|  |         } | ||
|  |         SendPack(T); | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取过往战绩回调包 | ||
|  |     function GetPastInfoCallBack(Chunk) { | ||
|  |         // Sout("收到包内容: %L", Chunk); | ||
|  | 
 | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  | 
 | ||
|  |         InfoContestLog = []; | ||
|  |         for (local i = 0; i< Jso.knights.len(); i++) { | ||
|  |             local gPeriods = Jso.knights[i].Periods; | ||
|  |             if (gPeriods == false) break; | ||
|  |             local gWinner = Jso.knights[i].code; | ||
|  |             local gRate = Jso.knights[i].SOdds; | ||
|  |             local T = { | ||
|  |                 Periods = gPeriods, | ||
|  |                 Winner = gWinner, | ||
|  |                 Rate = gRate | ||
|  |             } | ||
|  |             InfoContestLog.append(T); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //战斗开始包 | ||
|  |     function FightStartCallBack(Chunk) { | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         CompetitionState = Jso.state; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //战斗状态包 | ||
|  |     function RefreshFightStateCallback(Chunk) { | ||
|  | 
 | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         if (!MainState) return; | ||
|  | 
 | ||
|  |         CompetitionState = Jso.state; | ||
|  | 
 | ||
|  |         if (Rider8T) { | ||
|  |             //获取8位 | ||
|  |             for (local i = 0; i< Jso.Rank.Top8.len(); i++) { | ||
|  |                 //获取编号 | ||
|  |                 local gHp = Jso.Rank.Top8[i].hp; | ||
|  |                 local T = Rider8T[i]; | ||
|  |                 T.rawset("hp", gHp); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  |         if (Rider4T) { | ||
|  |             //获取4位 | ||
|  |             for (local i = 0; i< Jso.Rank.Top4.len(); i++) { | ||
|  |                 //获取编号 | ||
|  |                 local gHp = Jso.Rank.Top4[i].hp; | ||
|  |                 local T = Rider4T[i]; | ||
|  |                 T.rawset("hp", gHp); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  |         if (Rider2T) { | ||
|  |             //获取2位 | ||
|  |             for (local i = 0; i< Jso.Rank.Top2.len(); i++) { | ||
|  |                 //获取编号 | ||
|  |                 local gHp = Jso.Rank.Top2[i].hp; | ||
|  |                 local T = Rider2T[i]; | ||
|  |                 T.rawset("hp", gHp); | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //玩家获取包刷新回调 | ||
|  |     function UserRefreshCallBack(Chunk) { | ||
|  |         GetInfo(); | ||
|  |     } | ||
|  | 
 | ||
|  |     //获胜者公告包 | ||
|  |     function WinnerRefreshCallBack(Chunk) { | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  | 
 | ||
|  |         NotiState = true; //公告状态 | ||
|  |         NotiStr = Jso.Str; //公告内容 | ||
|  |         NotiTime = Clock(); | ||
|  |     } | ||
|  | 
 | ||
|  |     //排行榜信息包 | ||
|  |     function WinnerRankCallBack(Chunk) { | ||
|  | 
 | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         RankInfo = Jso.RankInfo; | ||
|  |     } | ||
|  | 
 | ||
|  |     HookInputState = false; | ||
|  |     InputValue = null; | ||
|  |     //Hook输入 | ||
|  |     function HookInput(Code) { | ||
|  |         if (Code >= 96 && Code <= 105) { | ||
|  |             Code -= 96; | ||
|  |         } else if (Code >= 48 && Code <= 57) { | ||
|  |             Code -= 48; | ||
|  |         } else return; | ||
|  | 
 | ||
|  |         if (InputValue == null) InputValue = Code.tostring(); | ||
|  |         else InputValue += Code.tostring(); | ||
|  |         if (InputValue.tointeger() > ResidueCoin) InputValue = ResidueCoin.tostring(); | ||
|  |     } | ||
|  | 
 | ||
|  |     constructor() { | ||
|  |         if (getroottable().rawin("MouseObject")) Mobj = getroottable()["MouseObject"]; | ||
|  | 
 | ||
|  |         //获取信息包回调 | ||
|  |         // Pack_Control.rawset(20055080, GetItemInfoCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20055002, GetInfoCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20055004, GetRiderInfoCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20055010, GetPastInfoCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20055012, RefreshFightStateCallback.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20055080, GetBaseInfoCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20055020, FightStartCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20055066, UserRefreshCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20055078, WinnerRefreshCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20055088, WinnerRankCallBack.bindenv(this)); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     function DrawInfo(obj) { | ||
|  | 
 | ||
|  |         if (!InfoTabButton1) { | ||
|  |             InfoTabButton1 = HorseGuessingTabTextButtonPro(obj, "骑士马战指引Tab", 5, 24, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 27, 63, 19, "", 8, 5); | ||
|  |             InfoTabButton1.SwitchState = true; | ||
|  |             InfoTabButton1.SetRectEnble(true, "a骑士马战指引Tab", 5, 24 + 1, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 30); | ||
|  |             InfoTabButton1.SetCustomClickEnble(true, "a骑士马战指引Tab", 5, 24, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 30); | ||
|  |         } | ||
|  |         InfoTabButton1.ex = X; | ||
|  |         InfoTabButton1.ey = Y; | ||
|  |         InfoTabButton1.Show(); | ||
|  |         if (!InfoTabButton2) { | ||
|  |             InfoTabButton2 = HorseGuessingTabTextButtonPro(obj, "骑士马战骑士资料Tab", 5 + 63, 24, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 28, 63, 19, "", 8, 5); | ||
|  |             InfoTabButton2.SwitchState = false; | ||
|  |             InfoTabButton2.SetRectEnble(true, "a骑士马战骑士资料Tab", 5 + 63, 24 + 1, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 31); | ||
|  |             InfoTabButton2.SetCustomClickEnble(true, "a骑士马战骑士资料Tab", 5 + 63, 24, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 31); | ||
|  |         } | ||
|  |         InfoTabButton2.ex = X; | ||
|  |         InfoTabButton2.ey = Y; | ||
|  |         InfoTabButton2.Show(); | ||
|  |         if (!InfoTabButton3) { | ||
|  |             InfoTabButton3 = HorseGuessingTabTextButtonPro(obj, "骑士马战过往战绩Tab", 5 + 63 + 63, 24, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 29, 63, 19, "", 8, 5); | ||
|  |             InfoTabButton3.SwitchState = false; | ||
|  |             InfoTabButton3.SetRectEnble(true, "a骑士马战过往战绩Tab", 5 + 63 + 63, 24 + 1, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 32); | ||
|  |             InfoTabButton3.SetCustomClickEnble(true, "a骑士马战过往战绩Tab", 5 + 63 + 63, 24, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 32); | ||
|  |         } | ||
|  |         InfoTabButton3.ex = X; | ||
|  |         InfoTabButton3.ey = Y; | ||
|  |         InfoTabButton3.Show(); | ||
|  | 
 | ||
|  |         if (InfoTabButton1.isLBActive()) { | ||
|  |             InfoTabButton1.SwitchState = true; | ||
|  |             InfoTabButton2.SwitchState = false; | ||
|  |             InfoTabButton3.SwitchState = false; | ||
|  |             InfoType = 0; | ||
|  |         } | ||
|  |         if (InfoTabButton2.isLBActive()) { | ||
|  |             InfoTabButton1.SwitchState = false; | ||
|  |             InfoTabButton2.SwitchState = true; | ||
|  |             InfoTabButton3.SwitchState = false; | ||
|  |             InfoType = 1; | ||
|  |         } | ||
|  |         if (InfoTabButton3.isLBActive()) { | ||
|  |             InfoTabButton1.SwitchState = false; | ||
|  |             InfoTabButton2.SwitchState = false; | ||
|  |             InfoTabButton3.SwitchState = true; | ||
|  |             InfoType = 2; | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  |         //指引页 | ||
|  |         if (InfoType == 0) { | ||
|  |             L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 0, X + 10, Y + 36 + 18); | ||
|  |         } | ||
|  | 
 | ||
|  |         //骑士资料页 | ||
|  |         if (InfoType == 1) { | ||
|  |             L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 1, X + 10, Y + 36 + 18); | ||
|  |             L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 50, X + 17, Y + 48 + 18); | ||
|  | 
 | ||
|  |             //DrawRiderInfo | ||
|  |             T_DrawDynamicAni(obj, "common/horseguessing/knight" + NowSelectRider + ".ani", X + 12, Y + 166 + 18, "HorseGuessingRiderAnimotion" + NowSelectRider); | ||
|  |             T_DrawDynamicAni(obj, "common/horseguessing/knightinfoeffect.ani", X + 9, Y + 45, "HorseGuessingRiderAnimotionEff"); | ||
|  | 
 | ||
|  |             L_sq_DrawCode(RiderName[NowSelectRider], X + 12 + 80 + 14, Y + 166 + 18 + 146 + 7, sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  | 
 | ||
|  | 
 | ||
|  |             //DrawItem | ||
|  |             if (ItemId && ItemInfo) { | ||
|  |                 L_Sq_DrawItem(X + 84, Y + 374, ItemId, 1, 0, 0, 0); | ||
|  |                 if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 84, Y + 374, 24, 24)) { | ||
|  |                     ItemDrawState = true; | ||
|  |                 } else { | ||
|  |                     ItemDrawState = false; | ||
|  |                 } | ||
|  |             } | ||
|  |             // ItemId | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |             //DrawInvestButton | ||
|  |             local Button = HorseGuessingPro("骑士马战投出支援按钮", X + 54, Y + 477 + 18, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 129, 33, 22); | ||
|  |             Button.SetRectEnble(true, "骑士马战投出支援按钮", X + 54, Y + 477 + 18, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 23); | ||
|  |             Button.SetCustomClickEnble(true, "骑士马战投出支援按钮", X + 54, Y + 477 + 18, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 24); | ||
|  |             Button.Show(); | ||
|  |             if (Button.isLBActive()) { | ||
|  |                 if (InputValue) { | ||
|  |                     local T = { | ||
|  |                         op = 20055005, | ||
|  |                         code = NowSelectRider, | ||
|  |                         num = InputValue.tointeger(), | ||
|  |                     } | ||
|  |                     SendPack(T); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 ErasesInputHook("HorseGuessingInput"); | ||
|  |                 HookInputState = false; | ||
|  |                 InputValue = null; | ||
|  |             } | ||
|  | 
 | ||
|  |             //骑手胜率信息 | ||
|  |             if (RiderInfo && RiderInfo.len() >= 5) { | ||
|  | 
 | ||
|  |                 L_sq_DrawCode("获胜 : " + RiderInfo[2] + "次", X + 25 + 5, Y + 56 + 17, sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  |                 L_sq_DrawCode(RiderInfo[0] + "胜" + RiderInfo[1] + "败", X + 25 + 5, Y + 56 + 17 + 19, sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  |                 local WinRate = 0; | ||
|  |                 if (RiderInfo[0] + RiderInfo[1] != 0) | ||
|  |                     WinRate = ((RiderInfo[0].tofloat() / (RiderInfo[0] + RiderInfo[1]).tofloat()) * 100.0).tointeger(); | ||
|  |                 L_sq_DrawCode("胜率 : " + WinRate + "%", X + 25 + 5, Y + 56 + 17 + 19 + 15, sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  | 
 | ||
|  |                 if (RiderInfo[3] != 0 && RiderInfo[4] != 0) { | ||
|  |                     L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", RiderInfo[3], X + 25 + 5 + 152, Y + 62); | ||
|  |                     L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", RiderInfo[4], X + 25 + 5 + 152, Y + 62 + 36); | ||
|  |                 } | ||
|  |             } | ||
|  | 
 | ||
|  | 
 | ||
|  |             //DrawInput 95 421 158 434 | ||
|  |             if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 5, 5, X + 84, Y + 412, 70, 14)) { | ||
|  |                 if (Mobj.Lb == 1) { | ||
|  |                     RegisterInputHook("HorseGuessingInput", HookInput.bindenv(this)); | ||
|  |                     HookInputState = true; | ||
|  |                 } | ||
|  |             } else { | ||
|  |                 if (Mobj.Lb == 1 && !Button.isInRect()) { | ||
|  |                     ErasesInputHook("HorseGuessingInput"); | ||
|  |                     HookInputState = false; | ||
|  |                     InputValue = null; | ||
|  |                 } | ||
|  |             } | ||
|  |             if (HookInputState) { | ||
|  |                 L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 34, X + 45, Y + 390 + 18); | ||
|  |             } | ||
|  |             if (InputValue) { | ||
|  |                 L_sq_DrawCode(InputValue, X + 45 + 42, Y + 390 + 18 + 3, sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  |             } | ||
|  |             if (ResidueCoin != null) { | ||
|  |                 L_sq_DrawCode(ResidueCoin.tostring(), X + 45 + 42 + 52, Y + 390 + 18 + 3 + 18 + 11, sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //往期战绩 | ||
|  |         if (InfoType == 2) { | ||
|  |             L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 26, X + 10, Y + 36 + 18); | ||
|  |             if (InfoContestLog) { | ||
|  |                 foreach(Pos, Value in InfoContestLog) { | ||
|  |                     L_sq_DrawCode((format("%03d", Value.Periods)).tostring(), X + 10 + 6, Y + 36 + 18 + 26 + (Pos * 20), sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  |                     L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 38 + Value.Winner, X + 10 + 32, Y + 36 + 18 + 24 + (Pos * 20)); | ||
|  |                     L_sq_DrawCode(RiderName[Value.Winner], X + 10 + 32 + 28, Y + 36 + 18 + 26 + (Pos * 20), sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  | 
 | ||
|  |                     L_sq_DrawCode((format("%.2f", Value.Rate.tofloat())).tostring(), X + 10 + 32 + 28 + 100, Y + 36 + 18 + 26 + (Pos * 20), sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  |                 } | ||
|  |             } | ||
|  | 
 | ||
|  |             local Button = HorseGuessingPro("骑士马战买手战绩", X + 54 + 126 + 10, Y + 477 + 18 + 10, "interface/windowcommon.img", 23, 22, 268); | ||
|  |             Button.SetRectEnble(true, "骑士马战买手战绩", X + 54 + 126 + 10, Y + 477 + 18 + 10, "interface/windowcommon.img", 269); | ||
|  |             Button.SetCustomClickEnble(true, "骑士马战买手战绩", X + 54 + 126 + 10, Y + 477 + 18 + 10, "interface/windowcommon.img", 270); | ||
|  |             Button.Show(); | ||
|  |             if (Button.isInRect()) { | ||
|  |                 PlayerRankButtonInfo = true; | ||
|  |             } else { | ||
|  |                 PlayerRankButtonInfo = false; | ||
|  |             } | ||
|  |             if (Button.isLBActive()) { | ||
|  |                 PlayerRankMainState = !PlayerRankMainState; | ||
|  |                 local T = { | ||
|  |                     op = 20055087, | ||
|  |                     type = 0, | ||
|  |                 } | ||
|  |                 SendPack(T); | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     PlayerRankMainState = false; | ||
|  |     PlayerRankButtonInfo = false; | ||
|  | 
 | ||
|  |     function DrawRider(obj) { | ||
|  |         //BackGround | ||
|  |         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 0, X + 227, Y + 26); | ||
|  | 
 | ||
|  |         //DrawRiderButton | ||
|  |         for (local i = 0; i< 8; i++) { | ||
|  |             local Button = HorseGuessingPro("HorseGuessingRider" + i, X + 269 + ((i / 2) * 121) + ((i % 2) * 59), Y + 398, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_cha_btn.img", 36, 42, 0 + (i * 4)); | ||
|  |             Button.SetRectEnble(true, "HorseGuessingRider" + i, X + 269 + ((i / 2) * 121) + ((i % 2) * 59), Y + 398, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_cha_btn.img", 1 + (i * 4)); | ||
|  |             Button.SetCustomClickEnble(true, "HorseGuessingRider" + i, X + 269 + ((i / 2) * 121) + ((i % 2) * 59), Y + 398, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_cha_btn.img", 2 + (i * 4)); | ||
|  |             if (i != 0 && (i == 1 || i % 2 != 0)) Button.Overturn = true; | ||
|  |             Button.Show(); | ||
|  |             if (Button.isLBActive()) { | ||
|  |                 NowSelectRider = i; | ||
|  |                 InfoTabButton1.SwitchState = false; | ||
|  |                 InfoTabButton2.SwitchState = true; | ||
|  |                 InfoTabButton3.SwitchState = false; | ||
|  |                 InfoType = 1; | ||
|  | 
 | ||
|  |                 //获取选手具体信息 | ||
|  |                 GetRiderInfo(); | ||
|  |             } | ||
|  | 
 | ||
|  |             local PathBuf = "right"; | ||
|  |             local PathXbuf = -1; | ||
|  |             if (i % 2 == 0) { | ||
|  |                 PathBuf = "left"; | ||
|  |                 PathXbuf = 0; | ||
|  |             } | ||
|  |             L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_horse_" + PathBuf + "_effect.img", i * 2, X + 258 + ((i / 2) * 121) + ((i % 2) * 59) + PathXbuf, Y + 337); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |             L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 11 + i, X + 263 + ((i / 2) * 121) + ((i % 2) * 59), Y + 441); | ||
|  | 
 | ||
|  |             //如果有赔率信息 | ||
|  |             if (Rider8T && Rider8T.len() > 0) { | ||
|  |                 local ValueBuf = Rider8T[i].Odds.tofloat(); | ||
|  |                 if (ValueBuf > 10) { | ||
|  |                     L_sq_DrawCode((format("%.1f", ValueBuf)).tostring(), X + 278 + ((i / 2) * 121) + ((i % 2) * 59), Y + 441 + 8, sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  |                 } else { | ||
|  |                     L_sq_DrawCode((format("%.2f", ValueBuf)).tostring(), X + 278 + ((i / 2) * 121) + ((i % 2) * 59), Y + 441 + 8, sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 local ValueBuf2 = Rider8T[i].CodeItem.tofloat(); | ||
|  |                 L_sq_DrawCode(ValueBuf2.tostring(), X + 273 + ((i / 2) * 121) + ((i % 2) * 59), Y + 441 + 8 + 14, sq_RGBA(229, 192, 123, 250), 0, 1); | ||
|  | 
 | ||
|  |                 if (CompetitionState< 10) { | ||
|  |                     if (CompetitionState == 1) L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 2, X + 270 + ((i / 2) * 121) + ((i % 2) * 59), Y + 441 + 8 + 14 - 69); | ||
|  |                     //如果存在生命值绘制生命值 | ||
|  |                     if ("hp" in Rider8T[i]) { | ||
|  |                         setClip(X + 270 + ((i / 2) * 121) + ((i % 2) * 59), Y + 441 + 8 + 14 - 69, X + 270 + ((i / 2) * 121) + ((i % 2) * 59) + (34.0 * (Rider8T[i].hp.tofloat() / 100.0)).tointeger(), 2); //开始裁切 | ||
|  |                         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 2, X + 270 + ((i / 2) * 121) + ((i % 2) * 59), Y + 441 + 8 + 14 - 69); | ||
|  |                         releaseClip(); //裁切结束 | ||
|  |                     } | ||
|  |                 } else { | ||
|  |                     local fr = 6; | ||
|  |                     if (Rider4T && Rider4T.len() > 0) { | ||
|  |                         foreach(Pos, Value in Rider4T) { | ||
|  |                             if (i == Value.Code) { | ||
|  |                                 fr = 5; | ||
|  |                             } | ||
|  |                         } | ||
|  |                     } | ||
|  |                     //绘制胜负 | ||
|  |                     L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", fr, X + 269 + ((i / 2) * 121) + ((i % 2) * 59), Y + 398); | ||
|  |                 } | ||
|  |             } | ||
|  | 
 | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |         if ((CompetitionState != 8 && CompetitionState != 18 && CompetitionState != 28 && CompetitionState != 38) && CompetitionStartAnimotion) | ||
|  |             sq_Rewind(CompetitionStartAnimotion); | ||
|  |         //第一轮正在打 | ||
|  |         if (CompetitionState< 10 && CompetitionState > 0) { | ||
|  |             if (CompetitionState != 8) { | ||
|  |                 for (local i = 0; i< 4; i++) { | ||
|  |                     T_DrawDynamicAni(obj, "common/horseguessing/battle.ani", X + 9 + 287 - 14 + (i * 122), Y + 45 + 237 + 64, "HorseGuessingCompetitionState10"); | ||
|  |                 } | ||
|  |             } else { | ||
|  |                 CompetitionStartAnimotion = T_DrawDynamicAni(obj, "common/horseguessing/countdown.ani", X + 9 + 287 - 14 + 202, Y + 45 + 237 + 64 - 144, "HorseGuessingCompetitionState8"); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //第二轮后的情况 | ||
|  |         if (CompetitionState >= 10) { | ||
|  |             //4强信息包 | ||
|  |             if (Rider4T && Rider4T.len() > 0) { | ||
|  |                 foreach(Pos, Value in Rider4T) { | ||
|  |                     local Xf = 1.0; | ||
|  |                     local Xoffset = 0; | ||
|  |                     if (Pos != 0 && (Pos == 1 || Pos % 2 != 0)) { | ||
|  |                         Xf = -1.0; | ||
|  |                         Xoffset = 36; | ||
|  | 
 | ||
|  |                     } else { | ||
|  | 
 | ||
|  |                     } | ||
|  | 
 | ||
|  |                     if (Value.Code != 0 && (Value.Code == 1 || Value.Code % 2 != 0)) { | ||
|  |                         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 23, X + 28 + 296 - 9 + ((Pos / 2) * 242) + ((Pos % 2) * 122), Y + 238 - 12 + 107); | ||
|  |                     } else { | ||
|  |                         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 20, X + 297 - 9 + ((Pos / 2) * 242) + ((Pos % 2) * 122), Y + 238 - 12 + 107); | ||
|  |                     } | ||
|  | 
 | ||
|  |                     L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_cha_btn.img", Value.Code * 4, X + 298 + ((Pos / 2) * 242) + ((Pos % 2) * 122) + Xoffset, Y + 287, 0, sq_RGBA(255, 255, 255, 250), Xf, 1.0); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |                     local PathBuf = "right"; | ||
|  |                     local PathXbuf = -1; | ||
|  |                     if (Pos % 2 == 0) { | ||
|  |                         PathBuf = "left"; | ||
|  |                         PathXbuf = 0; | ||
|  |                     } | ||
|  |                     L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_horse_" + PathBuf + "_effect.img", Value.Code * 2, X + 296 - 9 + ((Pos / 2) * 242) + ((Pos % 2) * 122) + PathXbuf, Y + 238 - 12); | ||
|  | 
 | ||
|  |                     if (CompetitionState< 20) { | ||
|  |                         if (CompetitionState == 11) L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 2, X + 308 - 9 + ((Pos / 2) * 242) + ((Pos % 2) * 122), Y + 238 - 12 + 57); | ||
|  |                         //如果存在生命值绘制生命值 | ||
|  |                         if ("hp" in Rider4T[Pos]) { | ||
|  |                             setClip(X + 308 - 9 + ((Pos / 2) * 242) + ((Pos % 2) * 122), Y + 238 - 12 + 57, X + 308 - 9 + ((Pos / 2) * 242) + ((Pos % 2) * 122) + (34.0 * (Rider4T[Pos].hp.tofloat() / 100.0)).tointeger(), 2); //开始裁切 | ||
|  |                             L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 2, X + 308 - 9 + ((Pos / 2) * 242) + ((Pos % 2) * 122), Y + 238 - 12 + 57); | ||
|  |                             releaseClip(); //裁切结束 | ||
|  |                         } | ||
|  |                     } else { | ||
|  |                         local fr = 6; | ||
|  |                         if (Rider2T && Rider2T.len() > 0) { | ||
|  |                             foreach(Pos, TValue in Rider2T) { | ||
|  |                                 if (Value.Code == TValue.Code) { | ||
|  |                                     fr = 5; | ||
|  |                                 } | ||
|  |                             } | ||
|  |                         } | ||
|  |                         //绘制胜负 | ||
|  |                         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", fr, X + 298 + ((Pos / 2) * 242) + ((Pos % 2) * 122), Y + 287); | ||
|  |                     } | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //第二轮正在打 | ||
|  |         if (CompetitionState< 20 && CompetitionState > 10) { | ||
|  |             if (CompetitionState != 18) { | ||
|  |                 for (local i = 0; i< 2; i++) { | ||
|  |                     T_DrawDynamicAni(obj, "common/horseguessing/semifinalbattle.ani", X + 9 + 349 - 14 + (i * 244), Y + 45 + 237 + 64 - 90, "HorseGuessingCompetitionState21"); | ||
|  |                 } | ||
|  |             } else { | ||
|  |                 CompetitionStartAnimotion = T_DrawDynamicAni(obj, "common/horseguessing/countdown.ani", X + 9 + 287 - 14 + 202, Y + 45 + 237 + 64 - 144, "HorseGuessingCompetitionState8"); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |         //第三轮后的情况 | ||
|  |         if (CompetitionState >= 20) { | ||
|  |             //4强信息包 | ||
|  |             if (Rider2T && Rider2T.len() > 0) { | ||
|  |                 foreach(Pos, Value in Rider2T) { | ||
|  |                     local Xf = 1.0; | ||
|  |                     local Xoffset = 0; | ||
|  |                     if (Pos != 0 && (Pos == 1 || Pos % 2 != 0)) { | ||
|  |                         Xf = -1.0; | ||
|  |                         Xoffset = 36; | ||
|  |                     } | ||
|  | 
 | ||
|  | 
 | ||
|  |                     if ((Value.Code / 2) != 0 && ((Value.Code / 2) == 1 || (Value.Code / 2) % 2 != 0)) { | ||
|  |                         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 24, X + 28 + 296 + 60 - 9 + ((Pos / 2) * 484) + ((Pos % 2) * 244), Y + 115 + 107); | ||
|  |                     } else { | ||
|  |                         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 21, X - 32 + 297 + 60 - 9 + ((Pos / 2) * 484) + ((Pos % 2) * 244), Y + 115 + 107); | ||
|  |                     } | ||
|  | 
 | ||
|  |                     L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_cha_btn.img", Value.Code * 4, X + 358 + ((Pos / 2) * 484) + ((Pos % 2) * 244) + Xoffset, Y + 176, 0, sq_RGBA(255, 255, 255, 250), Xf, 1.0); | ||
|  | 
 | ||
|  | 
 | ||
|  |                     local PathBuf = "right"; | ||
|  |                     local PathXbuf = -1; | ||
|  |                     if (Pos % 2 == 0) { | ||
|  |                         PathBuf = "left"; | ||
|  |                         PathXbuf = 0; | ||
|  |                     } | ||
|  | 
 | ||
|  |                     L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_horse_" + PathBuf + "_effect.img", Value.Code * 2, X + 296 + 60 - 9 + ((Pos / 2) * 484) + ((Pos % 2) * 244) + PathXbuf, Y + 115); | ||
|  | 
 | ||
|  |                     if (CompetitionState< 30) { | ||
|  |                         if (CompetitionState == 21) L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 2, X + 60 + 308 - 9 + ((Pos / 2) * 484) + ((Pos % 2) * 244), Y + 238 - 12 + 57 - 111); | ||
|  |                         //如果存在生命值绘制生命值 | ||
|  |                         if ("hp" in Rider2T[Pos]) { | ||
|  |                             setClip(X + 60 + 308 - 9 + ((Pos / 2) * 484) + ((Pos % 2) * 244), Y + 238 - 12 + 57 - 111, X + 60 + 308 - 9 + ((Pos / 2) * 484) + ((Pos % 2) * 244) + (34.0 * (Rider2T[Pos].hp.tofloat() / 100.0)).tointeger(), 2); //开始裁切 | ||
|  |                             L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 2, X + 60 + 308 - 9 + ((Pos / 2) * 484) + ((Pos % 2) * 244), Y + 238 - 12 + 57 - 111); | ||
|  |                             releaseClip(); //裁切结束 | ||
|  |                         } | ||
|  |                     } else { | ||
|  |                         local fr = 6; | ||
|  |                         if (Rider1T && Rider1T.len() > 0) { | ||
|  |                             foreach(Pos, TValue in Rider1T) { | ||
|  |                                 if (Value.Code == TValue.Code) { | ||
|  |                                     fr = 5; | ||
|  |                                 } | ||
|  |                             } | ||
|  |                         } | ||
|  |                         //绘制胜负 | ||
|  |                         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", fr, X + 358 + ((Pos / 2) * 484) + ((Pos % 2) * 244), Y + 176); | ||
|  |                     } | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //第三轮正在打 | ||
|  |         if (CompetitionState< 30 && CompetitionState > 20) { | ||
|  |             if (CompetitionState != 28) { | ||
|  |                 T_DrawDynamicAni(obj, "common/horseguessing/finalbattle.ani", X + 9 + 469 - 14, Y + 45 + 237 + 64 - 90 - 80, "HorseGuessingCompetitionState30"); | ||
|  |             } else { | ||
|  |                 CompetitionStartAnimotion = T_DrawDynamicAni(obj, "common/horseguessing/countdown.ani", X + 9 + 287 - 14 + 202, Y + 45 + 237 + 64 - 144, "HorseGuessingCompetitionState8"); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         // CompetitionState = 30; | ||
|  |         //第四轮后的情况 | ||
|  |         if (CompetitionState >= 30) { | ||
|  |             //4强信息包 | ||
|  |             if (Rider1T && Rider1T.len() > 0) { | ||
|  |                 foreach(Pos, Value in Rider1T) { | ||
|  |                     local Xf = 1.0; | ||
|  |                     local Xoffset = 0; | ||
|  |                     if (Pos != 0 && (Pos == 1 || Pos % 2 != 0)) { | ||
|  |                         Xf = -1.0; | ||
|  |                         Xoffset = 36; | ||
|  |                     } | ||
|  | 
 | ||
|  |                     if ((Value.Code / 4) != 0 && ((Value.Code / 4) == 1 || (Value.Code / 4) % 2 != 0)) { | ||
|  |                         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 25, X + 185 + 296 + 60 - 9 + ((Pos / 2) * 484) + ((Pos % 2) * 244), Y + 115 + 107 - 104); | ||
|  |                     } else { | ||
|  | 
 | ||
|  |                         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 22, X - 32 + 62 + 296 + 60 - 9 + ((Pos / 2) * 484) + ((Pos % 2) * 244), Y + 115 + 107 - 104); | ||
|  |                     } | ||
|  | 
 | ||
|  |                     T_DrawDynamicAni(obj, "common/horseguessing/winnereffect_back.ani", X + 481 + ((Pos / 2) * 968) + ((Pos % 2) * 488) + Xoffset, Y + 88, "HorseGuessingWinnerBack"); | ||
|  |                     L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_cha_btn.img", Value.Code * 4, X + 481 + ((Pos / 2) * 968) + ((Pos % 2) * 488) + Xoffset, Y + 88, 0, sq_RGBA(255, 255, 255, 250), Xf, 1.0); | ||
|  |                     T_DrawDynamicAni(obj, "common/horseguessing/winnereffect_front.ani", X + 481 + ((Pos / 2) * 968) + ((Pos % 2) * 488) + Xoffset, Y + 88, "HorseGuessingWinnerFront"); | ||
|  | 
 | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制悬浮窗图层 | ||
|  |     function DrawSuspendedLayer(obj) { | ||
|  |         if (ItemDrawState) { | ||
|  |             if (!ItemObject) { | ||
|  |                 ItemObject = ItemInfoClass(ItemInfo); | ||
|  |             } | ||
|  |             ItemObject.Show(X + 84 - (211 / 2), Y + 374 - ItemObject.PageLength); | ||
|  |         } | ||
|  | 
 | ||
|  |         if (PlayerRankButtonInfo) { | ||
|  |             //Item信息框一般为211的宽度 | ||
|  |             L_sq_DrawWindow(X + 54 + 126 + 10 - 33, Y + 477 + 18 + 10 - 50 + 18, 110, 20, "interface2/popup/popup.img", 134, 6, 12, 6, 13); | ||
|  |             L_sq_DrawCode("点击查看买手排行榜", X + 54 + 126 + 10 - 33 + 5, Y + 477 + 18 + 10 - 50 + 18 + 7, sq_RGBA(255, 255, 255, 250), 0, 1); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     DRBTN = null; | ||
|  |     SRBTN = null; | ||
|  |     ABTN = null; | ||
|  | 
 | ||
|  |     //绘制排行榜 | ||
|  |     function DrawRank(obj) { | ||
|  | 
 | ||
|  |         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 0, X + 227, Y + 26); | ||
|  | 
 | ||
|  |         L_sq_DrawWindow(X + 228, Y + 27, 530, 460, "interface2/popup/popup.img", 134, 6, 12, 6, 13); | ||
|  | 
 | ||
|  |         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 35, X + 227, Y + 26); | ||
|  | 
 | ||
|  |         L_sq_DrawCode("马战排行榜", X + 227 + 236, Y + 32, sq_RGBA(255, 198, 0, 250), 0, 1); | ||
|  | 
 | ||
|  |         L_sq_DrawCode("排名", X + 227 + 23, Y + 35 + 288, sq_RGBA(255, 198, 0, 250), 0, 1); | ||
|  | 
 | ||
|  |         L_sq_DrawCode("角色名", X + 227 + 23 + 106, Y + 35 + 288, sq_RGBA(255, 198, 0, 250), 0, 1); | ||
|  | 
 | ||
|  |         L_sq_DrawCode("获胜货币", X + 227 + 23 + 106 + 146, Y + 35 + 288, sq_RGBA(255, 198, 0, 250), 0, 1); | ||
|  | 
 | ||
|  |         L_sq_DrawCode("命中战绩", X + 227 + 23 + 106 + 146 + 158, Y + 35 + 288, sq_RGBA(255, 198, 0, 250), 0, 1); | ||
|  | 
 | ||
|  | 
 | ||
|  |         if (!DRBTN) { | ||
|  |             DRBTN = LenheartcommonSwitchButtonText(X + 227 + 23, Y + 35 + 288 + 192, "今日战况"); | ||
|  |             DRBTN.State = 1; | ||
|  |         } | ||
|  |         DRBTN.SyncPos(X + 227 + 23, Y + 35 + 288 + 192); | ||
|  |         DRBTN.Show(); | ||
|  |         if (DRBTN.isLBActive()) { | ||
|  |             SRBTN.State = 0; | ||
|  |             ABTN.State = 0; | ||
|  |             local T = { | ||
|  |                 op = 20055087, | ||
|  |                 type = 0, | ||
|  |             } | ||
|  |             SendPack(T); | ||
|  |         } | ||
|  | 
 | ||
|  |         if (!SRBTN) SRBTN = LenheartcommonSwitchButtonText(X + 227 + 23 + 216, Y + 35 + 288 + 192, "三日战况"); | ||
|  |         SRBTN.SyncPos(X + 227 + 23 + 216, Y + 35 + 288 + 192); | ||
|  |         SRBTN.Show(); | ||
|  |         if (SRBTN.isLBActive()) { | ||
|  |             DRBTN.State = 0; | ||
|  |             ABTN.State = 0; | ||
|  |             local T = { | ||
|  |                 op = 20055087, | ||
|  |                 type = 1, | ||
|  |             } | ||
|  |             SendPack(T); | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  |         if (!ABTN) ABTN = LenheartcommonSwitchButtonText(X + 227 + 23 + 216 + 216, Y + 35 + 288 + 192, "全部战况"); | ||
|  |         ABTN.SyncPos(X + 227 + 23 + 216 + 216, Y + 35 + 288 + 192); | ||
|  |         ABTN.Show(); | ||
|  |         if (ABTN.isLBActive()) { | ||
|  |             DRBTN.State = 0; | ||
|  |             SRBTN.State = 0; | ||
|  |             local T = { | ||
|  |                 op = 20055087, | ||
|  |                 type = 2, | ||
|  |             } | ||
|  |             SendPack(T); | ||
|  |         } | ||
|  | 
 | ||
|  |         //如果有排行榜信息 | ||
|  |         if (RankInfo) { | ||
|  |             foreach(Pos, Value in RankInfo) { | ||
|  |                 L_sq_DrawCode((Pos + 1).tostring(), X + 227 + 23 + 15 - LenheartTextClass.GetStringLength((Pos + 1).tostring()) / 2, Y + 35 + 288 + 20 + (Pos * 16), sq_RGBA(255, 198, 0, 250), 0, 1); | ||
|  |                 L_sq_DrawCode(Value.name, X + 227 + 148 - LenheartTextClass.GetStringLength(Value.name) / 2, Y + 35 + 288 + 20 + (Pos * 16), sq_RGBA(104, 237, 161, 250), 0, 1); | ||
|  |                 L_sq_DrawCode(Value.win.tostring(), X + 227 + 172 + 128 - LenheartTextClass.GetStringLength(Value.win.tostring()) / 2, Y + 35 + 288 + 20 + (Pos * 16), sq_RGBA(217, 193, 144, 250), 0, 1); | ||
|  |                 foreach(_i, ok in Value.victoryFieldInt) { | ||
|  |                     L_sq_DrawImg("interface/lenheartwindowcommon.img", 50 + ok, X + 227 + 182 + 211 + (_i * 16), Y + 35 + 288 + 20 + (Pos * 16)); | ||
|  |                 } | ||
|  |             } | ||
|  | 
 | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制主界面 | ||
|  |     function DrawMain(obj) { | ||
|  |         //绘制窗口 | ||
|  |         L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 33, X, Y); | ||
|  | 
 | ||
|  | 
 | ||
|  |         //绘制详情页 | ||
|  |         DrawInfo(obj); | ||
|  | 
 | ||
|  |         //绘制骑手页 | ||
|  |         if (!PlayerRankMainState) DrawRider(obj); | ||
|  |         else DrawRank(obj); | ||
|  | 
 | ||
|  |         //绘制悬浮窗图层 | ||
|  |         DrawSuspendedLayer(obj); | ||
|  |     } | ||
|  | 
 | ||
|  |     //开启界面回调 | ||
|  |     function OpenClassCallBack() { | ||
|  | 
 | ||
|  |         L_NewWindows("Lenheart", 170, 0x65535); | ||
|  |         local W = sq_GetPopupWindowMainCotrol(170); | ||
|  |         W.SetVisible(false); | ||
|  |         W.SetEnable(false); | ||
|  | 
 | ||
|  |         //获取基础信息 | ||
|  |         GetBaseInfo(); | ||
|  |         //获取信息 | ||
|  |         GetInfo(); | ||
|  |         //获取选手具体信息 | ||
|  |         GetRiderInfo(); | ||
|  |         //获取过往战绩 | ||
|  |         GetPastInfo(); | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制公告 | ||
|  |     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); | ||
|  |             } | ||
|  |             L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 26, 74, 160, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0); | ||
|  |             L_sq_DrawCode(NotiStr, 74 + 270, 160 + 44, sq_RGBA(255, 255, 255, A), 2, 1); | ||
|  |             if (Clock() - NotiTime >= 6000) { | ||
|  |                 NotiState = false; | ||
|  |             } | ||
|  |             // NotiTime | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //绘制入口 | ||
|  |     function Draw(obj) { | ||
|  |         if (MainState) { | ||
|  |             if (WindowObj) { | ||
|  |                 DrawMain(obj); | ||
|  |                 WindowObj.Show(obj); | ||
|  |                 X = WindowObj.X; | ||
|  |                 Y = WindowObj.Y; | ||
|  |             } else { | ||
|  |                 WindowObj = HorseGuessingWindow(X, Y, 800, 600, 28); //坐标 大小 标题栏高度 | ||
|  |                 //WindowObj.DeBugMode = true; | ||
|  |             } | ||
|  |         } else { | ||
|  |             if (WindowObj && WindowObj.YMouseSw == false) { | ||
|  |                 IMouse.ReleaseMouseClick(); | ||
|  |                 WindowObj.YMouseSw = true; | ||
|  |                 WindowObj = null; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         DrawNoti(obj); | ||
|  |     } | ||
|  | 
 | ||
|  |     //逻辑入口 | ||
|  |     function Proc(obj) { | ||
|  |         if (KeyPressNB.isKeyPress(48, "HorseGuessingCloseKey")) { | ||
|  |             MainState = false; | ||
|  | 
 | ||
|  |             ErasesInputHook("HorseGuessingInput"); | ||
|  |             HookInputState = false; | ||
|  |             InputValue = null; | ||
|  |         } | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | function HorseGuessing(obj) { | ||
|  |     local RootTab = getroottable(); | ||
|  |     if (!RootTab.rawin("HorseGuessingCObj")) { | ||
|  |         local Cobj = HorseGuessingC(); | ||
|  |         RootTab.rawset("HorseGuessingCObj", Cobj); | ||
|  |         EventIcon("骑士马战", 106, 106, Cobj); | ||
|  |     } else { | ||
|  |         RootTab["HorseGuessingCObj"].Proc(obj); | ||
|  |         RootTab["HorseGuessingCObj"].Draw(obj); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | if (getroottable().rawin("LenheartFuncTab")) { | ||
|  |     getroottable()["LenheartFuncTab"].rawset("HorseGuessingFunc", HorseGuessing); | ||
|  | } else { | ||
|  |     local T = {}; | ||
|  |     T.rawset("HorseGuessingFunc", HorseGuessing); | ||
|  |     getroottable().rawset("LenheartFuncTab", T); | ||
|  | } |