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);
 | |
| } |