507 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			507 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名:CombatRank.nut | ||
|  | 路径:Project/CombatRank/CombatRank.nut | ||
|  | 创建日期:2024-08-12	20:07 | ||
|  | 文件用途:战斗力系统 | ||
|  | */ | ||
|  | 
 | ||
|  | class CombatRankC extends LenheartNewUI_Windows { | ||
|  |     //调试模式 | ||
|  |     // DeBugMode = true; | ||
|  | 
 | ||
|  |     //默认显示状态需要是关闭 因为要通过收包打开 | ||
|  |     Visible = false; | ||
|  | 
 | ||
|  |     //排行榜显示的第几页 | ||
|  |     Page = 1; | ||
|  |     MaxPage = 1; | ||
|  |     //当前显示页面的数据对象 | ||
|  |     PageInfo = null; | ||
|  |     //我的数据 | ||
|  |     MyInfo = null; | ||
|  | 
 | ||
|  | 
 | ||
|  |     //殿堂模特数组 | ||
|  |     ShowCharacter = null; | ||
|  | 
 | ||
|  |     function GetRankInfo() { | ||
|  |         local T = { | ||
|  |             op = 20072003, | ||
|  |             page = Page | ||
|  |         } | ||
|  |         SendPackEx(T); | ||
|  |     } | ||
|  | 
 | ||
|  |     function GetRankInfoCallBack(Chunk) { | ||
|  |         PageInfo = null; | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         PageInfo = Jso.ranking; | ||
|  |         MyInfo = PageInfo.pop(); | ||
|  |         MyInfo.rank <- Jso.on; | ||
|  |         MaxPage = Jso.size; | ||
|  | 
 | ||
|  |         //如果是在第一页 才会有123名 | ||
|  |         if (Page == 1) { | ||
|  |             ShowCharacter = array(3); | ||
|  | 
 | ||
|  |             for (local i = 0; i< 3; i++) { | ||
|  |                 local T = { | ||
|  |                     op = 20069001, | ||
|  |                     items = PageInfo[i].avaS, | ||
|  |                     job = PageInfo[i].job.tointeger(), | ||
|  |                     flag = i | ||
|  |                 } | ||
|  |                 SendPackEx(T); | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //时装 帽子 头部 脸 上衣 下装 鞋子  胸部  腰部  皮肤 光环 | ||
|  |     AvatarInfoIdx = [0x3038, 0x3010, 0x3014, 0x3018, 0x301c, 0x3020, 0x3024, 0x3028, 0x302c, 0x3030, 0x3034]; | ||
|  |     creInfoIdx = [0x3068, 0x306C, 0x3070, 0x3074]; | ||
|  |     //更换装备事件回调 | ||
|  |     function PlayerChanageEquCallBack(Chunk) { | ||
|  |         local obj = sq_GetMyMasterCharacter(); | ||
|  |         if (!obj) return; | ||
|  |         local C_Object = L_sq_RA(0x1ab7cdc); | ||
|  |         //记录时装 | ||
|  |         local avataritemsbuf = []; | ||
|  |         foreach(offset in AvatarInfoIdx) { | ||
|  |             local AvatarEquiAddress = L_sq_RA(C_Object + offset); | ||
|  |             if (AvatarEquiAddress >= 0x400000) { | ||
|  |                 local Ab = []; | ||
|  |                 local NormalIndex = L_sq_RA(AvatarEquiAddress + 0x1c); | ||
|  |                 local ExIndex = L_sq_RA(AvatarEquiAddress + 0x13E0); | ||
|  |                 Ab.append(NormalIndex); | ||
|  |                 Ab.append(ExIndex); | ||
|  |                 avataritemsbuf.append(Ab); | ||
|  |             } else { | ||
|  |                 local Ab = []; | ||
|  |                 Ab.append(0); | ||
|  |                 Ab.append(0); | ||
|  |                 avataritemsbuf.append(Ab); | ||
|  |             } | ||
|  |         } | ||
|  |         //记录装备 | ||
|  |         local equiitemsbuf = []; | ||
|  |         local equiupbuf = []; | ||
|  |         for (local i = 1; i< 13; ++i) { | ||
|  |             //编号 | ||
|  |             local Index = L_sq_GetCharacterAttribute(0x1c, i); | ||
|  |             //强化 | ||
|  |             local Upvalue = L_sq_GetCharacterAttribute(0x1054, i) | ||
|  |             //是否有增幅属性 | ||
|  |             local IsZf = L_sq_GetCharacterAttribute(0x10A8, i) | ||
|  |             //锻造 | ||
|  |             local DsUpvalue = L_sq_GetCharacterAttribute(0x10E8, i); | ||
|  |             //附魔卡片 | ||
|  |             local Enchanting = L_sq_GetCharacterAttribute(0x1084, i); | ||
|  | 
 | ||
|  |             equiitemsbuf.append(Index); | ||
|  | 
 | ||
|  |             local Info = []; | ||
|  |             if (IsZf) { | ||
|  |                 Info.append(0); | ||
|  |                 Info.append(Upvalue); | ||
|  |             } else { | ||
|  |                 Info.append(Upvalue); | ||
|  |                 Info.append(0); | ||
|  |             } | ||
|  |             Info.append(DsUpvalue); | ||
|  |             Info.append(Enchanting); | ||
|  |             equiupbuf.append(Info); | ||
|  | 
 | ||
|  |             // print(i); | ||
|  |             // print(equiupbuf.len()); | ||
|  |         } | ||
|  |         //记录宠物 | ||
|  |         local creitemsbuf = []; | ||
|  |         foreach(offset in creInfoIdx) { | ||
|  |             local creEquiAddress = L_sq_RA(C_Object + offset); | ||
|  |             if (creEquiAddress >= 0x400000) { | ||
|  |                 local NormalIndex = L_sq_RA(creEquiAddress + 0x1c); | ||
|  |                 creitemsbuf.append(NormalIndex); | ||
|  |             } else { | ||
|  |                 creitemsbuf.append(0); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //记录四维三攻属强i | ||
|  |         local Attributes = 0; | ||
|  |         Attributes += L_sq_GetCharacterAttribute(0x2364); | ||
|  |         Attributes += L_sq_GetCharacterAttribute(0x2394); | ||
|  |         Attributes += L_sq_GetCharacterAttribute(0x237c); | ||
|  |         Attributes += L_sq_GetCharacterAttribute(0x23ac); | ||
|  | 
 | ||
|  | 
 | ||
|  |         local AttackValue = 0; | ||
|  |         AttackValue += L_sq_GetCharacterAttribute(0x1E54); | ||
|  |         AttackValue += L_sq_GetCharacterAttribute(0x1E84); | ||
|  |         AttackValue += L_sq_GetCharacterAttribute(0x22C8); | ||
|  | 
 | ||
|  | 
 | ||
|  |         local Enhancement = 0; //火冰光暗 大概 | ||
|  |         Enhancement += L_sq_GetCharacterAttribute(0x1b54); | ||
|  |         Enhancement += L_sq_GetCharacterAttribute(0x1b60); | ||
|  |         Enhancement += L_sq_GetCharacterAttribute(0x1b78); | ||
|  |         Enhancement += L_sq_GetCharacterAttribute(0x1b6c); | ||
|  | 
 | ||
|  |         local T = { | ||
|  |             op = 20072001, | ||
|  |             ava = avataritemsbuf, | ||
|  |             equ = equiitemsbuf, | ||
|  |             sw = Attributes, | ||
|  |             atk = AttackValue, | ||
|  |             ele = Enhancement, | ||
|  |             cre = creitemsbuf, | ||
|  |             job = sq_getJob(obj), | ||
|  |             exjob = sq_getGrowType(obj), | ||
|  |             name = L_Sq_GetObjectName(obj), | ||
|  |             equUp = equiupbuf | ||
|  |         } | ||
|  |         SendPackEx(T); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     ChanageCombat = null; | ||
|  |     MyCombat = null; | ||
|  |     DrawAniTimeFlag = null; | ||
|  | 
 | ||
|  |     function PlayerCombatChanageCallBack(Chunk) { | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         //战斗力变动 绘制动画 | ||
|  |         if (Jso.Combat != 0) { | ||
|  |             ChanageCombat = Jso.Combat; | ||
|  |             MyCombat = Jso.zdlS; | ||
|  |             DrawAniTimeFlag = Clock(); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { | ||
|  |         Childrens = []; | ||
|  |         //注册控件 | ||
|  |         RegisterWidget(); | ||
|  | 
 | ||
|  |         LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20069002, GetAvatarDrawInfoCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20072004, GetRankInfoCallBack.bindenv(this)); | ||
|  | 
 | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20072002, PlayerCombatChanageCallBack.bindenv(this)); | ||
|  | 
 | ||
|  |         Pack_Control.rawset(20072102, PlayerChanageEquCallBack.bindenv(this)); | ||
|  | 
 | ||
|  | 
 | ||
|  |         //上传自身信息 | ||
|  |         PlayerChanageEquCallBack(1); | ||
|  |         //获取排行榜信息 | ||
|  |         GetRankInfo(); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     function GetAvatarDrawInfoCallBack(Chunk) { | ||
|  |         local Jso = Json.Decode(Chunk); | ||
|  |         local ZlibStr = Jso.ZipS; | ||
|  |         Jso.ZipS = Json.Decode(L_sq_Dezlib(Jso.ZipS)); | ||
|  | 
 | ||
|  |         local DrawAniArr = []; | ||
|  |         foreach(DrawObj in Jso.ZipS.MoniPack) { | ||
|  |             local FrameArr = []; | ||
|  |             foreach(Buf in DrawObj.F) { | ||
|  |                 local T = { | ||
|  |                     ImgIndex = Buf[0], | ||
|  |                     Delay = Buf[1], | ||
|  |                     Pos = [Buf[2], Buf[3]] | ||
|  |                 } | ||
|  |                 FrameArr.append(T); | ||
|  |             } | ||
|  |             local Ani = Lenheart_Ani(DrawObj.B, FrameArr, [400, 400]); | ||
|  |             DrawAniArr.append(Ani); | ||
|  |         } | ||
|  |         ShowCharacter[Jso.ZipS.flag] = DrawAniArr; | ||
|  |     } | ||
|  | 
 | ||
|  |     chrobj = null; | ||
|  | 
 | ||
|  |     function GetAvatarDrawInfo(obj) { | ||
|  |         local C_Object = L_Sq_GetObjectAddress(obj); | ||
|  |         // 武器 帽子 头部 脸 上衣 下装 鞋子  胸部  腰部  皮肤 光环 | ||
|  |         local AvatarIdx = [0x3038, 0x3010, 0x3014, 0x3018, 0x301c, 0x3020, 0x3024, 0x3028, 0x302c, 0x3030, 0x3034]; | ||
|  |         local itemsbuf = []; | ||
|  |         foreach(offset in AvatarIdx) { | ||
|  |             local AvatarEquiAddress = L_sq_RA(C_Object + offset); | ||
|  |             if (AvatarEquiAddress >= 0x400000) { | ||
|  |                 local Ab = []; | ||
|  |                 local NormalIndex = L_sq_RA(AvatarEquiAddress + 0x1c); | ||
|  |                 local ExIndex = L_sq_RA(AvatarEquiAddress + 0x13E0); | ||
|  |                 Ab.append(NormalIndex); | ||
|  |                 Ab.append(ExIndex); | ||
|  |                 itemsbuf.append(Ab); | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     function RegisterWidget() { | ||
|  |         //关闭按钮 | ||
|  |         local CloseButton = LenheartNewUI_BaseButton(520, 2, 11, 12, "interface/lenheartwindowcommon.img", 276); | ||
|  |         CloseButton.OnClick = function() { | ||
|  |             this.Visible = false; | ||
|  |         }.bindenv(this); | ||
|  |         Childrens.append(CloseButton); | ||
|  | 
 | ||
|  | 
 | ||
|  |         //左按钮 | ||
|  |         local LeftButton = LenheartNewUI_BaseButton(236, 500, 12, 9, "interface/lenheartwindowcommon.img", 511); | ||
|  |         LeftButton.OnClick = function() { | ||
|  |             if (Page > 1) Page--; | ||
|  |         }.bindenv(this); | ||
|  |         Childrens.append(LeftButton); | ||
|  |         //关闭按钮 | ||
|  |         local RightButton = LenheartNewUI_BaseButton(304, 500, 12, 9, "interface/lenheartwindowcommon.img", 521); | ||
|  |         RightButton.OnClick = function() { | ||
|  |             if (Page< MaxPage) Page++; | ||
|  |         }.bindenv(this); | ||
|  |         Childrens.append(RightButton); | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  |     //绘制主界面 | ||
|  |     function DrawMain(obj) { | ||
|  |         if (!PageInfo) return; | ||
|  | 
 | ||
|  |         //窗口 | ||
|  |         L_sq_DrawImg("interface/rindro/new_rank.img", 0, X, Y); | ||
|  | 
 | ||
|  |         //排名图标 | ||
|  |         L_sq_DrawImg("interface2/hud/information_button/information_button_cn.img", 136, X + 5, Y + 295); | ||
|  |         for (local i = 0; i< PageInfo.len(); i++) { | ||
|  |             local StrBuf = (i + 1 + (Page - 1) * 10).tostring(); | ||
|  |             L_sq_DrawCode(StrBuf, X + 16 - LenheartTextClass.GetStringLength(StrBuf) / 2, Y + 318 + (i * 16), sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  |         } | ||
|  |         //职业 | ||
|  |         L_sq_DrawCode("职业", X + 58, Y + 299, sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  |         //角色名 | ||
|  |         L_sq_DrawCode("角色名", X + 152, Y + 299, sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  |         //公会名 | ||
|  |         L_sq_DrawCode("公会名", X + 280, Y + 299, sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  |         //战斗力 | ||
|  |         L_sq_DrawCode("战斗力", X + 438, Y + 299, sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  | 
 | ||
|  |         //绘制页数 | ||
|  |         local PageStr = (Page + "/" + MaxPage); | ||
|  |         L_sq_DrawCode(PageStr, X + 276 - LenheartTextClass.GetStringLength(PageStr) / 2, Y + 499, sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  | 
 | ||
|  | 
 | ||
|  |         foreach(Index, CharObj in PageInfo) { | ||
|  |             //绘制职业 | ||
|  |             L_sq_DrawCode(CharObj.jobname, X + 70 - LenheartTextClass.GetStringLength(CharObj.jobname) / 2, Y + 318 + (Index * 16), sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  | 
 | ||
|  |             //绘制角色名 | ||
|  |             L_sq_DrawCode(CharObj.name, X + 169 - LenheartTextClass.GetStringLength(CharObj.name) / 2, Y + 318 + (Index * 16), sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  | 
 | ||
|  |             local GuildName = "无公会"; | ||
|  |             //绘制公会名 | ||
|  |             if ("guildname" in CharObj) { | ||
|  |                 GuildName = CharObj.guildname; | ||
|  |             } | ||
|  |             L_sq_DrawCode(GuildName, X + 298 - LenheartTextClass.GetStringLength(GuildName) / 2, Y + 318 + (Index * 16), sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  | 
 | ||
|  |             //绘制战斗力 | ||
|  |             L_sq_DrawCode(CharObj.zdlS, X + 456 - LenheartTextClass.GetStringLength(CharObj.zdlS) / 2, Y + 318 + (Index * 16), sq_RGBA(179, 169, 135, 255), 0, 1); | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  |         //绘制我自己 | ||
|  |         { | ||
|  |             local StrBuf = (MyInfo.rank).tostring(); | ||
|  |             L_sq_DrawCode(StrBuf, X + 16 - LenheartTextClass.GetStringLength(StrBuf) / 2, Y + 321 + 160, sq_RGBA(229, 180, 83, 255), 0, 1); | ||
|  | 
 | ||
|  |             //绘制职业 | ||
|  |             L_sq_DrawCode(MyInfo.jobname, X + 70 - LenheartTextClass.GetStringLength(MyInfo.jobname) / 2, Y + 321 + 160, sq_RGBA(229, 180, 83, 255), 0, 1); | ||
|  | 
 | ||
|  |             //绘制角色名 | ||
|  |             L_sq_DrawCode(MyInfo.name, X + 169 - LenheartTextClass.GetStringLength(MyInfo.name) / 2, Y + 321 + 160, sq_RGBA(229, 180, 83, 255), 0, 1); | ||
|  | 
 | ||
|  |             local GuildName = "无公会"; | ||
|  |             //绘制公会名 | ||
|  |             if ("guildname" in MyInfo) { | ||
|  |                 GuildName = MyInfo.guildname; | ||
|  |             } | ||
|  |             L_sq_DrawCode(GuildName, X + 298 - LenheartTextClass.GetStringLength(GuildName) / 2, Y + 321 + 160, sq_RGBA(229, 180, 83, 255), 0, 1); | ||
|  | 
 | ||
|  |             //绘制战斗力 | ||
|  |             L_sq_DrawCode(MyInfo.zdlS, X + 456 - LenheartTextClass.GetStringLength(MyInfo.zdlS) / 2, Y + 321 + 160, sq_RGBA(229, 180, 83, 255), 0, 1); | ||
|  |         } | ||
|  | 
 | ||
|  |         if (ShowCharacter) { | ||
|  |             foreach(Index, AniDrawObj in ShowCharacter) { | ||
|  |                 local OffsetX = 270; | ||
|  |                 local OffsetY = 268; | ||
|  |                 if (Index == 1) { | ||
|  |                     OffsetX = 130; | ||
|  |                     OffsetY = 268; | ||
|  |                 } | ||
|  |                 if (Index == 2) { | ||
|  |                     OffsetX = 410; | ||
|  |                     OffsetY = 268; | ||
|  |                 } | ||
|  |                 if (AniDrawObj) { | ||
|  |                     foreach(AniObj in AniDrawObj) { | ||
|  |                         AniObj.X = X + OffsetX; | ||
|  |                         AniObj.Y = Y + OffsetY; | ||
|  |                         AniObj.Show(Duration); | ||
|  |                     } | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     AlphaValue = 1.0; | ||
|  | 
 | ||
|  |     function DrawImg(Path, Index, XPos, YPos, rate) { | ||
|  |         L_sq_DrawImg(Path, Index, XPos, YPos, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), rate, rate); | ||
|  |     } | ||
|  | 
 | ||
|  |     NormalNumOffset = [22, 11, 22, 21, 21, 21, 22, 19, 22, 21]; | ||
|  | 
 | ||
|  |     function DrawCombatNormal(Num) { | ||
|  |         local XLength = 0; | ||
|  |         foreach(ac in Num) { | ||
|  |             local Idx = (ac - 48).tointeger(); | ||
|  |             XLength += NormalNumOffset[Idx]; | ||
|  |         } | ||
|  | 
 | ||
|  |         local NumOffset = { | ||
|  |             X = ((getroottable().Rindro_Scr_Width - 55) / 2).tointeger(), | ||
|  |             Y = 473 | ||
|  |         }; | ||
|  |         NumOffset.X -= XLength; | ||
|  | 
 | ||
|  |         local Xoffset = 0; | ||
|  |         foreach(index, value in Num) { | ||
|  |             local Idx = (value - 48).tointeger(); | ||
|  |             DrawImg("interface/rindro/new_ranknum.img", 10 + Idx, NumOffset.X + Xoffset, NumOffset.Y, 1.0); | ||
|  |             Xoffset += (NormalNumOffset[Idx]); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     function DrawCombatChanage(Num, type) { | ||
|  |         DrawImg("interface/rindro/new_rank.img", type ? 4 : 3, ((getroottable().Rindro_Scr_Width - 55) / 2).tointeger() + 60, 478, 0.5); | ||
|  | 
 | ||
|  |         local NumOffset = { | ||
|  |             X = ((getroottable().Rindro_Scr_Width - 55) / 2).tointeger() + 80, | ||
|  |             Y = 473 | ||
|  |         }; | ||
|  | 
 | ||
|  |         local Xoffset = 0; | ||
|  | 
 | ||
|  |         local ImgType = 30; | ||
|  |         if (type) ImgType = 40; | ||
|  |         foreach(index, value in Num) { | ||
|  |             local Idx = (value - 48).tointeger(); | ||
|  |             DrawImg("interface/rindro/new_ranknum.img", ImgType + Idx, NumOffset.X + Xoffset, NumOffset.Y, 1.0); | ||
|  |             Xoffset += (NormalNumOffset[Idx]); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     function DrawCombat() { | ||
|  |         if (DrawAniTimeFlag) { | ||
|  |             local NowTime = Clock(); | ||
|  |             if ((NowTime - DrawAniTimeFlag) >= 2000) { | ||
|  |                 ChanageCombat = null; | ||
|  |                 MyCombat = null; | ||
|  |                 DrawAniTimeFlag = null; | ||
|  |                 return; | ||
|  |             } | ||
|  | 
 | ||
|  |             local PlayT = (NowTime - DrawAniTimeFlag); | ||
|  |             AlphaValue = sq_GetUniformVelocity(300, 30, PlayT, 2000).tofloat() / 100.0; | ||
|  |             if (AlphaValue > 1.0) AlphaValue = 1.0; | ||
|  | 
 | ||
|  |             local IconOffset = { | ||
|  |                 X = ((getroottable().Rindro_Scr_Width - 55) / 2).tointeger(), | ||
|  |                 Y = 450 | ||
|  |             }; | ||
|  |             L_sq_SetDrawImgModel(2, 0); | ||
|  |             L_sq_DrawImg("interface/rindro/new_rank.img", 2, IconOffset.X, IconOffset.Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 0.5, 0.5); | ||
|  |             L_sq_ReleaseDrawImgModel(); | ||
|  |             L_sq_DrawImg("interface/rindro/new_rank.img", 1, IconOffset.X + 5, IconOffset.Y + 6, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 0.5, 0.5); | ||
|  | 
 | ||
|  |             if (PlayT <= 300) { | ||
|  |                 local Str = (MyCombat[0] - 48).tostring(); | ||
|  |                 for (local i = 0; i< MyCombat.len(); i++) { | ||
|  |                     if (i != 0) Str += (sq_getRandom(0, 9)); | ||
|  |                 } | ||
|  |                 DrawCombatNormal(Str); | ||
|  |             } else { | ||
|  |                 DrawCombatNormal(MyCombat); | ||
|  |             } | ||
|  | 
 | ||
|  |             DrawCombatChanage(abs(ChanageCombat).tostring(), (ChanageCombat > 0) ? false : true); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     function Show(obj) { | ||
|  |         DrawMain(obj); | ||
|  |         LenheartNewUI_Windows.Show(obj); | ||
|  | 
 | ||
|  |         if (Visible) { | ||
|  |             DrawCombat(); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |     //逻辑入口 | ||
|  |     function Proc(obj) { | ||
|  |         LenheartNewUI_Windows.SyncPos(X, Y); | ||
|  | 
 | ||
|  | 
 | ||
|  |         if (!Visible) { | ||
|  |             DrawCombat(); | ||
|  |         } | ||
|  | 
 | ||
|  |         MainState = Visible; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     MainState = false; | ||
|  | 
 | ||
|  |     function OpenCallBack() { | ||
|  |         Visible = true; | ||
|  |         ResetFocus(); | ||
|  | 
 | ||
|  |         //上传自身信息 | ||
|  |         PlayerChanageEquCallBack(1); | ||
|  |         //获取排行榜信息 | ||
|  |         GetRankInfo(); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | getroottable().rawdelete("CombatRankC_Obj"); | ||
|  | 
 | ||
|  | 
 | ||
|  | function Lenheart_CombatRank_New(obj) { | ||
|  |     local RootTab = getroottable(); | ||
|  |     if (!RootTab.rawin("CombatRankC_Obj")) { | ||
|  |         RootTab.rawset("CombatRankC_Obj", true); | ||
|  |         local Winobj = LenheartNewUI_CreateWindow(CombatRankC, "新战力排行榜窗口", ((getroottable().Rindro_Scr_Width - 542) / 2).tointeger(), 28, 542, 515, 28); | ||
|  |         EventList_Obj.AddEvent("荣誉殿堂", 136, Winobj, "interface2/hud/information_button/information_button_cn.img"); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | if (getroottable().rawin("LenheartFuncTab")) { | ||
|  |     getroottable()["LenheartFuncTab"].rawset("Lenheart_CombatRank_NewFunc", Lenheart_CombatRank_New); | ||
|  | } else { | ||
|  |     local T = {}; | ||
|  |     T.rawset("Lenheart_CombatRank_NewFunc", Lenheart_CombatRank_New); | ||
|  |     getroottable().rawset("LenheartFuncTab", T); | ||
|  | } |