/* 文件名:Tuguan.nut 路径:Plugins/Tuguan/Tuguan.nut 创建日期:2022-12-15 07:09 文件用途:土罐的袖珍罐 */ class TuguanButton // obj -- 按钮名称 -- 鼠标对象 -- X坐标 -- Y坐标 -- 宽度 -- 高度 -- Ani调用路径 -- Ani宽度 -- Ani高度 -- AniRGB -- { obj = null; buttonName = null; IMouse = null; x = null; y = null; width = null; length = null; aniFileName = null; BoxStetu = null; Mobj = null; //鼠标对象 constructor(gObj, gButtonName, gIMouse, gX, gY, gWidth, gLength, ganiFileName) { obj = gObj; buttonName = gButtonName; IMouse = gIMouse; x = gX; y = gY; width = gWidth; length = gLength; aniFileName = ganiFileName; BoxStetu = BoxStetu; if (getroottable().rawin("MouseObject")) Mobj = getroottable()["MouseObject"]; } function drawButtonImage() { if (isDown()) y++; if (isInRect()) { local buttonAniEff = obj.getVar().GetAnimationMap(buttonName + "rect", aniFileName.tostring() + "_2.ani"); sq_AnimationProc(buttonAniEff); sq_drawCurrentFrame(buttonAniEff, x, y, true); } if (!isInRect()) { local buttonAni = obj.getVar().GetAnimationMap(buttonName, aniFileName.tostring() + "_1.ani"); sq_AnimationProc(buttonAni); sq_drawCurrentFrame(buttonAni, x, y, true); } } //悬停状态 function isInRect() { if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 5, 5, x, y, width, length)) return true; else return false; } //左键按下状态 function isDown() { if (isInRect() && Mobj.Lb == 1) return true; else return false; } //左键弹起状态 function isLBUp() { if (isInRect() && Mobj.Lb == 0) return true; else return false; } //左键单击状态 function isActive() { if (isInRect() && Mobj.LbEvent) return true; else return false; } } class TuguanTextButton // obj -- 按钮名称 -- 鼠标对象 -- X坐标 -- Y坐标 -- 宽度 -- 高度 -- Ani调用路径 -- Ani宽度 -- Ani高度 -- AniRGB -- { obj = null; IMouse = null; x = null; y = null; width = null; length = null; BoxStetu = null; str = null; type = null; mb = null; rgb = null; irgb = null; Mobj = null; //鼠标对象 constructor(gObj, gIMouse, gX, gY, gWidth, gLength, gstr, grgba, girgba, gtype, gmb) { obj = gObj; IMouse = gIMouse; x = gX; y = gY; width = gWidth; length = gLength; BoxStetu = BoxStetu; str = gstr; type = gtype; mb = gmb; rgb = grgba; irgb = girgba; if (getroottable().rawin("MouseObject")) Mobj = getroottable()["MouseObject"]; } function draw() { if (isDown()) y++; if (isInRect()) { L_sq_DrawCode(str, x, y, irgb, type, mb); } if (!isInRect()) { L_sq_DrawCode(str, x, y, rgb, type, mb); } } //悬停状态 function isInRect() { if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 5, 5, x, y, width, length)) return true; else return false; } //左键按下状态 function isDown() { if (isInRect() && Mobj.Lb == 1) return true; else return false; } //左键弹起状态 function isLBUp() { if (isInRect() && Mobj.Lb == 0) return true; else return false; } //左键单击状态 function isActive() { if (isInRect() && Mobj.LbEvent) return true; else return false; } } class TuguanSystem extends BasicsDrawTool { State = 0; MainSoundsSw = 0; ASoundSw = 0; SSoundSw = 0; SelectModel = 0; BoxName = null; BoxId = null; BoxNameXpos = null; BoxNameYpos = null; BoxCount = null; ProbabilityTab = null; AniType = null; //Ani对象 P1_01 = null; P2_01 = null; P3_01 = null; P4_02 = null; MainEffAni = null; MainEffAniArr = null; //奖励包对象 RewardObj = null; RewardObjTen = null; SendBackChunk = null; //ItemInfo ItemInfoObject = null; ItemInfoDrawS = null; //界面回包 function TuguanOpenCallBack(Chunk) { local Jso = Json.Decode(Chunk); if (State == 0) { BoxName = Jso.BoxName; BoxId = Jso.BoxId; BoxNameXpos = Jso.BoxNameXpos; BoxNameYpos = Jso.BoxNameYpos; BoxCount = Jso.BoxCount; ProbabilityTab = Jso.ProbabilityTab; State = 1; } if (!ItemInfoObject.rawin(BoxId)) { local arr = [BoxId]; local T = { op = 20231010, realop = 20008668, itemId = arr, Type = 2, } SendPack(T); } } //抽奖回包 function TuguanRewardCallBack(Chunk) { local Jso = Json.Decode(Chunk); AniType = Jso.AniType; BoxCount = Jso.BoxCount; RewardObj = Jso.RewardObj; State = 3; local ItemGetArray = {}; foreach(P, V in RewardObj.ItemBuffer) { for (local i = 0; i< 2; i++) { local ItemId = V["itemid" + i]; if (!ItemInfoObject.rawin(ItemId)) { if (!ItemGetArray.rawin(ItemId)) ItemGetArray.rawset(ItemId, true); } } } if (ItemGetArray.len() > 0) { local arr = []; foreach(Key, Value in ItemGetArray) { arr.append(Key); } local T = { op = 20231010, realop = 20008668, itemId = arr, Type = 2, } SendPack(T); } } function SendCallBackChunk(Chunk) { local RootTab = getroottable(); if (RootTab.rawin("TuguanObj")) { local Tobj = RootTab["TuguanObj"]; Tobj.SendBackChunk = Chunk; Tobj.State = 3; } } function GetItemInfoCallBack(Chunk) { local Jso = Json.Decode(Chunk); foreach(Pos, Value in Jso.itemInfo) { if (Value.Name2.len() == 0) Value.Name2 = "Yosin-Team"; ItemInfoObject.rawset(Jso.itemId[Pos], Value); } } constructor() { MainEffAniArr = {}; ItemInfoObject = {}; Pack_Control.rawset(20008002, TuguanOpenCallBack.bindenv(this)); Pack_Control.rawset(20008004, TuguanRewardCallBack.bindenv(this)); Pack_Control.rawset(20008666, SendCallBackChunk.bindenv(this)); Pack_Control.rawset(20008668, GetItemInfoCallBack.bindenv(this)); } //退出 function Exit() { State = 0; MainEffAniArr.rawset("P1_01", P1_01); MainEffAniArr.rawset("P2_01", P2_01); MainEffAniArr.rawset("P3_01", P3_01); MainEffAniArr.rawset("P4_02", P4_02); ResetRewardMainAni(); } //打开窗口 function OpenWindow(obj) { //窗口关闭 if (!sq_GetPopupWindowMainCotrol(267)) { L_NewWindows("Lenheart", 267, 0x65535); //打开土罐窗口 State = 2; } } //重置特效Ani function ResetRewardMainAni() { foreach(Pos, value in MainEffAniArr) { sq_Rewind(value); } MainEffAniArr = null; MainEffAniArr = {}; } //绘制抽奖动画 function DrawRewardAni(obj) { //停止斗篷风声 obj.stopSound(2022121701); P1_01 = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/" + AniType + "/" + AniType + "1_01.ani", X + 20, Y + 30, "TuguanSystemDrawReward" + AniType + "1_01"); //土罐眼睛闪光 if (P1_01 && sq_GetAnimationFrameIndex(P1_01) == 13) { if (AniType == "a" || AniType == "s") obj.sq_PlaySound("DANJIN_START_AS"); else obj.sq_PlaySound("DANJIN_START_N"); } if (P1_01 && sq_IsEnd(P1_01)) P2_01 = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/" + AniType + "/" + AniType + "2_01.ani", X + 20, Y + 30, "TuguanSystemDrawReward" + AniType + "2_01"); if (P2_01 && sq_GetAnimationFrameIndex(P2_01) == 0) { if (AniType == "b") obj.sq_PlaySound("DANJIN_SUMMON_B"); else if (AniType == "a") obj.sq_PlaySound("DANJIN_SUMMON_A"); else if (AniType == "s") obj.sq_PlaySound("DANJIN_SUMMON_S"); } if (P2_01 && sq_GetAnimationFrameIndex(P2_01) == 8) { if (AniType == "b") obj.sq_PlaySound("DANJIN_GAMBLE_B"); else if (AniType == "a") obj.sq_PlaySound("DANJIN_GAMBLE_A"); else if (AniType == "s") obj.sq_PlaySound("DANJIN_GAMBLE_S"); } if (P2_01 && sq_IsEnd(P2_01)) P3_01 = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/" + AniType + "/" + AniType + "3_01.ani", X + 20, Y + 30, "TuguanSystemDrawReward" + AniType + "3_01"); if (P3_01 && sq_IsEnd(P3_01)) P4_02 = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/" + AniType + "/" + AniType + "4_02.ani", X + 20, Y + 30, "TuguanSystemDrawReward" + AniType + "4_02"); if (P4_02 && sq_IsEnd(P4_02)) { MainEffAniArr.rawset("P1_01", P1_01); MainEffAniArr.rawset("P2_01", P2_01); MainEffAniArr.rawset("P3_01", P3_01); MainEffAniArr.rawset("P4_02", P4_02); sq_Rewind(P1_01); sq_Rewind(P2_01); sq_Rewind(P3_01); sq_Rewind(P4_02); // ResetRewardMainAni(); obj.sq_PlaySound("DANJIN_GAMBLE_FIN"); State = 4; } } //绘制奖励列表 function DrawRewardItem(obj) { //单抽 if (SelectModel == 1) { T_DrawStayAni(obj, "common/tuguan/main.ani", X + 20, Y + 30, 5, "TuguanRewardMain"); L_sq_DrawCode("最后结果", (X - 195) + 377, (Y - 100) + 182, sq_RGBA(255, 177, 0, 250), 1, 1); T_DrawStayAni(obj, "common/tuguan/main.ani", X + 20 + 141, Y + 30 + 91, 7, "TuguanRewardMainOneX"); for (local z = 0; z< 2; z++) { //绘制槽 T_DrawStayAni(obj, "common/tuguan/main.ani", X + 20 + 141 + 9 + (z * 34), Y + 30 + 91 + 9, 8, "TuguanRewardMainOneXx"); } for (local x = 0; x< 2; x++) { //品级背景光 local Rarity = RewardObj.ItemBuffer[0]["itemrarity" + x]; switch (Rarity) { case 2: T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/light_iconslot.ani", X + 20 + 141 + 9 + (x * 34), Y + 30 + 91 + 9, "TuguanRewardMainoieff" + Rarity); break; case 3: T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/light_iconslot_1.ani", X + 20 + 141 + 9 + (x * 34), Y + 30 + 91 + 9, "TuguanRewardMainoieff" + Rarity); break; } } ItemInfoDrawS = null; for (local i = 0; i< 2; i++) { local ItemId = RewardObj.ItemBuffer[0]["itemid" + i]; local ItemCount = RewardObj.ItemBuffer[0]["itemcount" + i]; //绘制物品 L_Sq_DrawItem(X + 20 + 141 + 9 + (i * 34) + 3, Y + 30 + 91 + 9 + 3, ItemId, ItemCount, 0, 0, 0); if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 20 + 141 + 9 + (i * 34) + 3, Y + 30 + 91 + 9 + 3, 24, 24)) { ItemInfoDrawS = {}; ItemInfoDrawS.X <- X + 20 + 141 + 9 + (i * 34) + 3; ItemInfoDrawS.Y <- Y + 30 + 91 + 9 + 3; ItemInfoDrawS.ItemId <- ItemId; } //物品刷新光 local Ani = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/common_excute_icon_front_a.ani", X + 20 + 141 + 13 + (i * 34), Y + 30 + 91 + 12, "TuguanRewardMainoieff" + i); MainEffAniArr.rawset("TuguanRewardMainoieff" + i, Ani); //品级闪烁光 local Rarity = RewardObj.ItemBuffer[0]["itemrarity" + i]; switch (Rarity) { case 2: if (ASoundSw == 0) { obj.sq_PlaySound("DANJIN_GAMBLE_CLASS_A"); ASoundSw = 1; } local RAni = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/iconslot_00.ani", X + 20 + 141 + 13 + (i * 34), Y + 30 + 91 + 12, "TuguanRewardMainoreff" + 2); MainEffAniArr.rawset("TuguanRewardMainoreff" + 2, RAni); break; case 3: if (SSoundSw == 0) { obj.sq_PlaySound("DANJIN_GAMBLE_FANFARE"); SSoundSw = 1; } local RAni = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/iconslot_01.ani", X + 20 + 141 + 13 + (i * 34), Y + 30 + 91 + 12, "TuguanRewardMainoreff" + 3); MainEffAniArr.rawset("TuguanRewardMainoreff" + 3, RAni); break; } } L_sq_DrawCode("祝你发大财!", (X - 195) + 371, (Y - 100) + 320, sq_RGBA(255, 177, 0, 250), 1, 1); } //10连抽 else if (SelectModel == 10) { T_DrawStayAni(obj, "common/tuguan/main.ani", X + 20, Y + 30, 6, "TuguanRewardMainT"); L_sq_DrawCode("最后结果", (X - 195) + 377, (Y - 100) + 142, sq_RGBA(255, 177, 0, 250), 1, 1); //T_DrawStayAni(obj, "common/tuguan/main.ani", X + 20 + 141, Y + 30 + 91, 7, "TuguanRewardMainTenX"); ItemInfoDrawS = null; for (local i = 0; i< 10; i++) { local ofs = i; if (i > 7) ofs += 1; T_DrawStayAni(obj, "common/tuguan/main.ani", (X - 195) + 198 + 30 + ((ofs % 4) * 86), Y + 62 + ((ofs / 4) * 50), 7, "TuguanRewardMainTenX"); for (local y = 0; y< 2; y++) { //绘制槽 T_DrawStayAni(obj, "common/tuguan/main.ani", (X - 195) + 198 + 30 + 9 + ((ofs % 4) * 86) + (y * 34), Y + 62 + 9 + ((ofs / 4) * 50), 8, "TuguanRewardMainOneXx"); } for (local x = 0; x< 2; x++) { //品级背景光 local Rarity = RewardObj.ItemBuffer[i]["itemrarity" + x]; switch (Rarity) { case 2: T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/light_iconslot.ani", (X - 195) + 198 + 30 + 10 + ((ofs % 4) * 86) + (x * 34), Y + 62 + 10 + ((ofs / 4) * 50), "TuguanRewardMainoieff" + Rarity); break; case 3: T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/light_iconslot_1.ani", (X - 195) + 198 + 30 + 10 + ((ofs % 4) * 86) + (x * 34), Y + 62 + 10 + ((ofs / 4) * 50), "TuguanRewardMainoieff" + Rarity); break; } } for (local z = 0; z< 2; z++) { local ItemId = RewardObj.ItemBuffer[i]["itemid" + z]; local ItemCount = RewardObj.ItemBuffer[i]["itemcount" + z]; //绘制物品 L_Sq_DrawItem((X - 195) + 198 + 30 + 9 + ((ofs % 4) * 86) + (z * 34) + 3, Y + 62 + 9 + ((ofs / 4) * 50) + 3, ItemId, ItemCount, 0, 0, 0); if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, (X - 195) + 198 + 30 + 9 + ((ofs % 4) * 86) + (z * 34) + 3, Y + 62 + 9 + ((ofs / 4) * 50) + 3, 24, 24)) { ItemInfoDrawS = {}; ItemInfoDrawS.X <- (X - 195) + 198 + 30 + 9 + ((ofs % 4) * 86) + (z * 34) + 3; ItemInfoDrawS.Y <- Y + 62 + 9 + ((ofs / 4) * 50) + 3; ItemInfoDrawS.ItemId <- ItemId; } //物品刷新光 local Ani = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/common_excute_icon_front_a.ani", (X - 195) + 198 + 30 + 13 + ((ofs % 4) * 86) + (z * 34), Y + 62 + 12 + ((ofs / 4) * 50), "TuguanRewardMainoieff" + z); MainEffAniArr.rawset("TuguanRewardMainoieff" + z, Ani); //品级闪烁光 local Rarity = RewardObj.ItemBuffer[i]["itemrarity" + z]; switch (Rarity) { case 2: if (ASoundSw == 0) { obj.sq_PlaySound("DANJIN_GAMBLE_CLASS_A"); ASoundSw = 1; } local RAni = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/iconslot_00.ani", (X - 195) + 198 + 30 + 13 + ((ofs % 4) * 86) + (z * 34), Y + 62 + 12 + ((ofs / 4) * 50), "TuguanRewardMainoreff" + 2); MainEffAniArr.rawset("TuguanRewardMainoreff" + 2, RAni); break; case 3: if (SSoundSw == 0) { obj.sq_PlaySound("DANJIN_GAMBLE_FANFARE"); SSoundSw = 1; } local RAni = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/iconslot_01.ani", (X - 195) + 198 + 30 + 13 + ((ofs % 4) * 86) + (z * 34), Y + 62 + 12 + ((ofs / 4) * 50), "TuguanRewardMainoreff" + 3); MainEffAniArr.rawset("TuguanRewardMainoreff" + 3, RAni); break; } } } L_sq_DrawCode("祝你发大财!", (X - 195) + 371, (Y - 100) + 336, sq_RGBA(255, 177, 0, 250), 1, 1); } MainEffAni = T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/background_excute_front_supreme.ani", X + 20, Y + 30, "TuguanSystemDrawRewardMainAniL"); MainEffAniArr.rawset("TuguanSystemDrawRewardMainAniL", MainEffAni); } //播放主界面音效 function PlayMainSounds(obj) { if (State == 2 && MainSoundsSw == 0) { obj.sq_PlaySound("DANJIN_START_LOOP", 2022121701); MainSoundsSw = 1; } if (State != 2 && State != 3) { obj.stopSound(2022121701); MainSoundsSw = 0; } if (State != 4) { SSoundSw = 0; ASoundSw = 0; } } //绘制主界面 function DrawMain(obj) { //窗口 T_DrawStayAni(obj, "common/tuguan/main.ani", X, Y, 0, "TuguanSystemMain"); //标题 L_sq_DrawCode(BoxName, X + BoxNameXpos, Y + BoxNameYpos, sq_RGBA(230, 200, 155, 250), 1, 1); //动画 if (State == 2) T_DrawDynamicAni(obj, "common/tuguan/0510_danjinjar/lobby/lobby_wait_rank_1step_1_step_common_0510_danjin_body.ani", X + 20, Y + 30, "TuguanSystemMainbackgroundeff"); //抽奖动画 if (State == 3) { DrawRewardAni(obj); } //奖励列表 if (State == 4) { DrawRewardItem(obj); if (SendBackChunk) { L_sq_SendPackType(130); L_sq_SendPackWChar(SendBackChunk); L_sq_SendPack(); SendBackChunk = null; } } //遮罩 T_DrawStayAni(obj, "common/tuguan/main.ani", X + 17, Y + 26, 1, "TuguanSystemMainbackgroundblack"); //图标框 T_DrawStayAni(obj, "common/tuguan/main.ani", X + 187, Y + 26 + 250, 3, "TuguanSystemMainbackgrounditem"); //盒子数量 L_Sq_DrawItem(X + 187 + 3, Y + 26 + 250 + 3, BoxId, BoxCount, 0, 0, 0); if (State == 2) ItemInfoDrawS = null; if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 187 + 3, Y + 26 + 250, 24, 24)) { ItemInfoDrawS = {}; ItemInfoDrawS.X <- X + 187 + 3; ItemInfoDrawS.Y <- Y + 26 + 250; ItemInfoDrawS.ItemId <- BoxId; } //绘制模式字体 L_sq_DrawCode("开启1个", X + 90, Y + 287, sq_RGBA(230, 200, 155, 250), 0, 1); L_sq_DrawCode("开启10个", X + 90 + 200, Y + 287, sq_RGBA(230, 200, 155, 250), 0, 1); //单抽按钮 local OneButton = TuguanButton(obj, "TuguanOneButton", IMouse, X + 68, Y + 286, 72, 20, "common/tuguan/db_newani_sel"); OneButton.drawButtonImage(); if (OneButton.isActive() && (State == 2 || State == 4)) //单抽按钮按下 { SelectModel = 1; State = 2; } //单抽按钮 local TenButton = TuguanButton(obj, "TuguanTenButton", IMouse, X + 68 + 201, Y + 286, 72, 20, "common/tuguan/db_newani_sel"); TenButton.drawButtonImage(); if (TenButton.isActive() && (State == 2 || State == 4)) //单抽按钮按下 { SelectModel = 10; State = 2; } if (SelectModel != 0) { local Box_Statu_Button_Offset = 0; if (SelectModel == 10) Box_Statu_Button_Offset = 201; T_DrawStayAni(obj, "common/tuguan/db_newani_sel_3.ani", X + 68 + Box_Statu_Button_Offset, Y + 286, 0, "TuguanSelectModelp"); T_DrawStayAni(obj, "common/tuguan/main.ani", X + 68 + Box_Statu_Button_Offset - 41, Y + 286 - 6, 4, "TuguanSystemMainbackgrounditem"); } local ProbabilityButton = TuguanTextButton(obj, IMouse, X + 68 - 46, Y + 286 + 40, 62, 18, "※查看概率", sq_RGBA(230, 200, 155, 150), sq_RGBA(230, 200, 155, 250), 1, 1); ProbabilityButton.draw(); if (ProbabilityButton.isActive()) { L_Cmd(ProbabilityTab); } local doselectbutton = TuguanButton(obj, "Tuguandoselectbutton", IMouse, X + 68 + 98, Y + 347, 72, 20, "common/tuguan/open"); doselectbutton.drawButtonImage(); if (doselectbutton.isActive()) { if (SelectModel != 0 && (State == 2 || State == 4)) { //抽奖包 local TuguanDoselectPack = Json_STL("TuguanDoselectPack"); TuguanDoselectPack.Put("op", 20008003); TuguanDoselectPack.Put("doselect", SelectModel); TuguanDoselectPack.Put("itemindex", BoxId); local str = TuguanDoselectPack.GetString(); L_sq_SendPackType(130); L_sq_SendPackWChar(str); L_sq_SendPack(); TuguanDoselectPack.Delete(); } else if (State == 3) { MainEffAniArr.rawset("P1_01", P1_01); MainEffAniArr.rawset("P2_01", P2_01); MainEffAniArr.rawset("P3_01", P3_01); MainEffAniArr.rawset("P4_02", P4_02); ResetRewardMainAni(); State = 4; } } } ItemObject = null; function DrawItemInfo(obj) { if (ItemInfoDrawS) { if (!ItemInfoObject.rawin(ItemInfoDrawS.ItemId)) return; if (!ItemObject) { local ItemId = ItemInfoDrawS.ItemId; ItemObject = ItemInfoClass(ItemInfoObject[ItemId]); } ItemObject.Show(ItemInfoDrawS.X, ItemInfoDrawS.Y - ItemObject.PageLength); } else { ItemObject = null; } } function DrawAMain(obj) { //如果是打开状态 if (State >= 2) { //窗口被关闭类状态写回未开启 if (KeyPressNB.isKeyPress(48, "TuguanFucCloseKey")) { MainState = false; Exit(); } //播放主界面音效 PlayMainSounds(obj); //绘制主界面 DrawMain(obj); //绘制道具信息 DrawItemInfo(obj); } } X = 195; Y = 100; MainState = false; WindowObj = null; //运行主函数 function Run(obj) { if (State == 1) { MainState = true; State = 2; } if (MainState) { if (WindowObj) { DrawAMain(obj); WindowObj.Show(obj); X = WindowObj.X; Y = WindowObj.Y; } else { WindowObj = LenheartWindow(X, Y, 405, 372, 28); //坐标 大小 标题栏高度 // WindowObj.DeBugMode = true; L_NewWindows("Lenheart", 170, 0x65535); local W = sq_GetPopupWindowMainCotrol(170); W.SetVisible(false); W.SetEnable(false); } } else { if (WindowObj && WindowObj.YMouseSw == false) { IMouse.ReleaseMouseClick(); WindowObj.YMouseSw = true; WindowObj = null; } } } } function TuguanFuc(obj) { local RootTab = getroottable(); if (sq_GetCurrentModuleType() == 1) { if (!RootTab.rawin("TuguanObj")) { local Cobj = TuguanSystem(); RootTab.rawset("TuguanObj", Cobj); } else { RootTab["TuguanObj"].Run(obj); } } else { if (RootTab.rawin("TuguanObj")) { RootTab.rawdelete("TuguanObj"); } } } if (getroottable().rawin("LenheartFuncTab")) { getroottable()["LenheartFuncTab"].rawset("TuguanFucFunc", TuguanFuc); } else { local T = {}; T.rawset("TuguanFucFunc", TuguanFuc); getroottable().rawset("LenheartFuncTab", T); }