| 
									
										
										
										
											2024-03-30 00:19:16 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名:MarrySystem.nut | 
					
						
							|  |  |  | 路径:Plugins/MarrySystem/MarrySystem.nut | 
					
						
							|  |  |  | 创建日期:2023-06-16	10:29 | 
					
						
							|  |  |  | 文件用途: | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MarrySystemWindow 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; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             if (YMouseSw == false && sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, 0, 0, 800, 600)) { | 
					
						
							|  |  |  |                 IMouse.ReleaseMouseClick(); | 
					
						
							|  |  |  |                 YMouseSw = true; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //设定窗口拖动逻辑 | 
					
						
							|  |  |  |     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 MarrySystemC extends BasicsDrawTool { | 
					
						
							|  |  |  |     WindowObj = null; //窗口对象 | 
					
						
							|  |  |  |     MainState = false; //主状态 | 
					
						
							|  |  |  |     X = 235; | 
					
						
							|  |  |  |     Y = 52; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Avatar = null; | 
					
						
							|  |  |  |     LevelInfo = null; | 
					
						
							|  |  |  |     NameInfo = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     TabName = [ | 
					
						
							|  |  |  |         "力量 +", | 
					
						
							|  |  |  |         "体力 +", | 
					
						
							|  |  |  |         "智力 +", | 
					
						
							|  |  |  |         "精神 +", | 
					
						
							|  |  |  |         "独立攻击力 +", | 
					
						
							|  |  |  |         "物理攻击力 +", | 
					
						
							|  |  |  |         "魔法攻击力 +", | 
					
						
							|  |  |  |         "物理防御 +", | 
					
						
							|  |  |  |         "魔法防御 +", | 
					
						
							|  |  |  |         "移动速度 +", | 
					
						
							|  |  |  |         "攻击速度 +", | 
					
						
							|  |  |  |         "释放速度 +", | 
					
						
							|  |  |  |         "物理暴击 +", | 
					
						
							|  |  |  |         "魔法暴击 +", | 
					
						
							|  |  |  |         "命中率 +", | 
					
						
							|  |  |  |         "光属性强化 +", | 
					
						
							|  |  |  |         "暗属性强化 +", | 
					
						
							|  |  |  |         "水属性强化 +", | 
					
						
							|  |  |  |         "火属性强化 +", | 
					
						
							|  |  |  |         "全属性强化 +" | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  |     PrintAbTab = null; | 
					
						
							|  |  |  |     AbTab = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     DgnAddBuff = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function PleaseMarryMe(gname) { | 
					
						
							|  |  |  |         local T = { | 
					
						
							|  |  |  |             op = 20019101, | 
					
						
							|  |  |  |             name = gname | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         local str = Json.Encode(T); | 
					
						
							|  |  |  |         L_sq_SendPackType(130); | 
					
						
							|  |  |  |         L_sq_SendPackWChar(str); | 
					
						
							|  |  |  |         L_sq_SendPack(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function PleaseDivorceMe(gname) { | 
					
						
							|  |  |  |         local T = { | 
					
						
							|  |  |  |             op = 20019103, | 
					
						
							|  |  |  |             name = gname | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         local str = Json.Encode(T); | 
					
						
							|  |  |  |         L_sq_SendPackType(130); | 
					
						
							|  |  |  |         L_sq_SendPackWChar(str); | 
					
						
							|  |  |  |         L_sq_SendPack(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function CheckOtherPlayerMarryInfo(gname) { | 
					
						
							|  |  |  |         local T = { | 
					
						
							|  |  |  |             op = 20019011, | 
					
						
							|  |  |  |             name = gname | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         local str = Json.Encode(T); | 
					
						
							|  |  |  |         L_sq_SendPackType(130); | 
					
						
							|  |  |  |         L_sq_SendPackWChar(str); | 
					
						
							|  |  |  |         L_sq_SendPack(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function CheckPlayerMarryInfo() { | 
					
						
							|  |  |  |         local T = { | 
					
						
							|  |  |  |             op = 20019009 | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         local str = Json.Encode(T); | 
					
						
							|  |  |  |         L_sq_SendPackType(130); | 
					
						
							|  |  |  |         L_sq_SendPackWChar(str); | 
					
						
							|  |  |  |         L_sq_SendPack(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function CheckPlayerMarryInfoCallBack(Chunk) { | 
					
						
							|  |  |  |         local Buffer = Json_STL("CheckPlayerMarryInfoCallBackBuffer"); | 
					
						
							|  |  |  |         Buffer.Parse(Chunk, 0, false); | 
					
						
							|  |  |  |         local RootTab = getroottable(); | 
					
						
							|  |  |  |         if (RootTab.rawin("MarrySystemCObj")) { | 
					
						
							|  |  |  |             local Tobj = RootTab["MarrySystemCObj"]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             Tobj.Avatar = { | 
					
						
							|  |  |  |                 Player1 = Buffer.Get("job"), | 
					
						
							|  |  |  |                 Player2 = Buffer.Get("partnerJob"), | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             Tobj.LevelInfo = { | 
					
						
							|  |  |  |                 level = Buffer.Get("lv"), | 
					
						
							|  |  |  |                 nexp = Buffer.Get("experience"), | 
					
						
							|  |  |  |                 mexp = Buffer.Get("experienceMax"), | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             Tobj.NameInfo = { | 
					
						
							|  |  |  |                 Player1 = Buffer.Get("name"), | 
					
						
							|  |  |  |                 Player2 = Buffer.Get("partnerName"), | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             Tobj.PrintAbTab = null; | 
					
						
							|  |  |  |             Tobj.PrintAbTab = []; | 
					
						
							|  |  |  |             Tobj.AbTab = null; | 
					
						
							|  |  |  |             Tobj.AbTab = []; | 
					
						
							| 
									
										
										
										
											2024-04-01 17:26:17 +08:00
										 |  |  |             for (local i = 0; i< 20; i++) { | 
					
						
							| 
									
										
										
										
											2024-03-30 00:19:16 +08:00
										 |  |  |                 local buf = Buffer.Get("attribute->" + i); | 
					
						
							|  |  |  |                 if (!buf && i == 0) break; | 
					
						
							|  |  |  |                 Tobj.PrintAbTab.append(buf); | 
					
						
							|  |  |  |                 Tobj.AbTab.append(buf); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             local EventTab = null; | 
					
						
							|  |  |  |             if (RootTab.rawin("YosinPlayerEachSystem")) { | 
					
						
							|  |  |  |                 EventTab = RootTab["YosinPlayerEachSystem"]; | 
					
						
							|  |  |  |                 local pos1 = null; | 
					
						
							|  |  |  |                 local pos2 = null; | 
					
						
							|  |  |  |                 foreach(pos, value in EventTab) { | 
					
						
							|  |  |  |                     if (value.Name == "邀请结婚") { | 
					
						
							|  |  |  |                         pos1 = pos; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     if (value.Name == "我要离婚") { | 
					
						
							|  |  |  |                         pos2 = pos; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 if (pos1) EventTab.remove(pos1); | 
					
						
							|  |  |  |                 if (pos2) EventTab.remove(pos2); | 
					
						
							|  |  |  |                 if (Tobj.PrintAbTab == null) PlayerEachIcon("邀请结婚", Tobj.PleaseMarryMe); | 
					
						
							|  |  |  |                 else PlayerEachIcon("我要离婚", Tobj.PleaseDivorceMe); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             if (EventTab) { | 
					
						
							|  |  |  |                 RootTab.rawdelete("YosinPlayerEachSystem"); | 
					
						
							|  |  |  |                 RootTab.rawset("YosinPlayerEachSystem", EventTab); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function CheckOtherPlayerMarryInfoCallBack(Chunk) { | 
					
						
							|  |  |  |         local Buffer = Json_STL("CheckOtherPlayerMarryInfoCallBackBuffer"); | 
					
						
							|  |  |  |         Buffer.Parse(Chunk, 0, false); | 
					
						
							|  |  |  |         local RootTab = getroottable(); | 
					
						
							|  |  |  |         if (RootTab.rawin("MarrySystemCObj")) { | 
					
						
							|  |  |  |             local Tobj = RootTab["MarrySystemCObj"]; | 
					
						
							|  |  |  |             Tobj.MainState = true; | 
					
						
							|  |  |  |             L_NewWindows("Lenheart", 170, 0x65535); | 
					
						
							|  |  |  |             local W = sq_GetPopupWindowMainCotrol(170); | 
					
						
							|  |  |  |             W.SetVisible(false); | 
					
						
							|  |  |  |             W.SetEnable(false); | 
					
						
							|  |  |  |             // BandObject.OpenClassCallBack(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             Tobj.Avatar = null; | 
					
						
							|  |  |  |             if (Buffer.Get("job")) { | 
					
						
							|  |  |  |                 Tobj.Avatar = { | 
					
						
							|  |  |  |                     Player1 = Buffer.Get("job"), | 
					
						
							|  |  |  |                     Player2 = Buffer.Get("partnerJob"), | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             Tobj.LevelInfo = null; | 
					
						
							|  |  |  |             if (Buffer.Get("lv")) { | 
					
						
							|  |  |  |                 Tobj.LevelInfo = { | 
					
						
							|  |  |  |                     level = Buffer.Get("lv"), | 
					
						
							|  |  |  |                     nexp = Buffer.Get("experience"), | 
					
						
							|  |  |  |                     mexp = Buffer.Get("experienceMax"), | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             Tobj.NameInfo = null; | 
					
						
							|  |  |  |             if (Buffer.Get("name")) { | 
					
						
							|  |  |  |                 Tobj.NameInfo = { | 
					
						
							|  |  |  |                     Player1 = Buffer.Get("name"), | 
					
						
							|  |  |  |                     Player2 = Buffer.Get("partnerName"), | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             Tobj.PrintAbTab = null; | 
					
						
							|  |  |  |             Tobj.PrintAbTab = []; | 
					
						
							| 
									
										
										
										
											2024-04-01 17:26:17 +08:00
										 |  |  |             for (local i = 0; i< 20; i++) { | 
					
						
							| 
									
										
										
										
											2024-03-30 00:19:16 +08:00
										 |  |  |                 local buf = Buffer.Get("attribute->" + i); | 
					
						
							|  |  |  |                 if (!buf && i == 0) break; | 
					
						
							|  |  |  |                 Tobj.PrintAbTab.append(buf); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function DivorceCallBack(Chunk) { | 
					
						
							|  |  |  |         local RootTab = getroottable(); | 
					
						
							|  |  |  |         if (RootTab.rawin("MarrySystemCObj")) { | 
					
						
							|  |  |  |             RootTab.rawdelete("MarrySystemCObj"); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor() { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         Pack_Control.rawset(20019010, CheckPlayerMarryInfoCallBack); | 
					
						
							|  |  |  |         Pack_Control.rawset(20019012, CheckOtherPlayerMarryInfoCallBack); | 
					
						
							|  |  |  |         Pack_Control.rawset(20019106, DivorceCallBack); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         CheckPlayerMarryInfo(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function T_DrawDynamicAni(obj, aniFileName, x, y, aniname) { | 
					
						
							|  |  |  |         local ani = obj.getVar().GetAnimationMap(aniname, aniFileName); | 
					
						
							|  |  |  |         sq_AnimationProc(ani); | 
					
						
							|  |  |  |         sq_drawCurrentFrame(ani, x, y, true); | 
					
						
							|  |  |  |         return ani; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function T_DrawDynamicAni_Fx(obj, aniFileName, x, y, aniname) { | 
					
						
							|  |  |  |         local ani = obj.getVar().GetAnimationMap(aniname, aniFileName); | 
					
						
							|  |  |  |         ani.setImageRateFromOriginal(-1.0, 1.0); | 
					
						
							|  |  |  |         sq_AnimationProc(ani); | 
					
						
							|  |  |  |         sq_drawCurrentFrame(ani, x, y, true); | 
					
						
							|  |  |  |         return ani; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //绘制等级相关信息 | 
					
						
							|  |  |  |     function DrawLevelInfo(obj) { | 
					
						
							|  |  |  |         if (Avatar && LevelInfo) { | 
					
						
							|  |  |  |             local PosArr = [ | 
					
						
							|  |  |  |                 [40, 75], | 
					
						
							|  |  |  |                 [40, 75], | 
					
						
							|  |  |  |                 [54, 24], | 
					
						
							|  |  |  |                 [60, 86], | 
					
						
							|  |  |  |                 [40, 45], | 
					
						
							|  |  |  |                 [50, 50], | 
					
						
							|  |  |  |                 [50, 50], | 
					
						
							|  |  |  |                 [50, 45], | 
					
						
							|  |  |  |                 [55, 70], | 
					
						
							|  |  |  |                 [40, 75], | 
					
						
							|  |  |  |                 [60, 86], | 
					
						
							|  |  |  |             ]; | 
					
						
							|  |  |  |             //绘制职业 | 
					
						
							|  |  |  |             // for (local i = 0; i < 10; i++) { | 
					
						
							|  |  |  |             //     local SSS = Avatar.Player1 + i; | 
					
						
							|  |  |  |             //     T_DrawDynamicAni(obj, "common/marrysystem/avatar/" + SSS + ".ani", X + PosArr[SSS][0], Y + PosArr[SSS][1], "MarrySystem_player" + SSS); | 
					
						
							|  |  |  |             // } | 
					
						
							|  |  |  |             T_DrawDynamicAni(obj, "common/marrysystem/avatar/" + Avatar.Player1 + ".ani", X + PosArr[Avatar.Player1][0], Y + PosArr[Avatar.Player1][1], "MarrySystem_player1" + Avatar.Player1); | 
					
						
							|  |  |  |             T_DrawDynamicAni_Fx(obj, "common/marrysystem/avatar/" + Avatar.Player2 + ".ani", X + 215 + PosArr[Avatar.Player2][0], Y + PosArr[Avatar.Player2][1], "MarrySystem_player2" + Avatar.Player2); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             //婚姻名字 | 
					
						
							|  |  |  |             L_sq_DrawCode(NameInfo.Player1, X + 68, Y + 190, sq_RGBA(230, 200, 155, 250), 1, 1); | 
					
						
							|  |  |  |             L_sq_DrawCode(NameInfo.Player2, X + 68 + 158, Y + 190, sq_RGBA(230, 200, 155, 250), 1, 1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             //婚戒等级 | 
					
						
							|  |  |  |             T_DrawStayAni(obj, "common/marrysystem/coupleinfopopupui.ani", X + 14, Y + 221, 1 + LevelInfo.level, "MarrySystem_LEVEL_c"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             //婚姻等级 | 
					
						
							|  |  |  |             L_sq_DrawCode("Lv . " + LevelInfo.level, X + 80, Y + 236, sq_RGBA(230, 200, 155, 250), 1, 1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             //婚姻经验 | 
					
						
							|  |  |  |             L_sq_DrawCode(LevelInfo.nexp + " / " + LevelInfo.mexp, X + 208, Y + 220, sq_RGBA(230, 200, 155, 250), 1, 1); | 
					
						
							|  |  |  |             //进度条 | 
					
						
							|  |  |  |             T_DrawStayAni(obj, "common/marrysystem/main.ani", X + 144, Y + 228, 1, "MarrySystem_Now_Main"); | 
					
						
							|  |  |  |             setClip(X + 144, Y + 228, X + 144 + ((LevelInfo.nexp.tofloat() / LevelInfo.mexp.tofloat()) * 174.0).tointeger(), Y + 228 + 23); //开始裁切 | 
					
						
							|  |  |  |             T_DrawStayAni(obj, "common/marrysystem/main.ani", X + 144, Y + 228, 2, "MarrySystem_Max_Main"); | 
					
						
							|  |  |  |             releaseClip(); //裁切结束 | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //附加属性 | 
					
						
							|  |  |  |     function AddAb(obj) { | 
					
						
							|  |  |  |         if (sq_GetCurrentModuleType() == 3) { | 
					
						
							|  |  |  |             if (!AbTab) return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (DgnAddBuff == false) { | 
					
						
							|  |  |  |                 DgnAddBuff = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, -1, false, "appendage/marry/marry.nut", true); | 
					
						
							|  |  |  |                 CNSquirrelAppendage.sq_Append(appendage, obj, obj); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 local change_appendage = appendage.sq_getChangeStatus("Yosin_MarryDgnBuff"); | 
					
						
							|  |  |  |                 if (!change_appendage) { | 
					
						
							|  |  |  |                     change_appendage = appendage.sq_AddChangeStatusAppendageID(obj, obj, 0, | 
					
						
							|  |  |  |                         CHANGE_STATUS_TYPE_COOLTIME_DECLINE, | 
					
						
							|  |  |  |                         false, 0, 114515); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 if (change_appendage) { | 
					
						
							|  |  |  |                     change_appendage.clearParameter(); | 
					
						
							|  |  |  |                     //print(WearSlotM.Item.TabName[0]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     foreach(Key, Value in AbTab) { | 
					
						
							|  |  |  |                         if (Key == 0) change_appendage.addParameter(0, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 1) change_appendage.addParameter(3, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 2) change_appendage.addParameter(2, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 3) change_appendage.addParameter(1, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 4) change_appendage.addParameter(53, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 5) change_appendage.addParameter(4, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 6) change_appendage.addParameter(31, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 7) change_appendage.addParameter(5, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 8) change_appendage.addParameter(32, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 9) change_appendage.addParameter(11, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 10) change_appendage.addParameter(10, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 11) change_appendage.addParameter(12, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 12) change_appendage.addParameter(15, false, Value.tofloat() / 10.0); | 
					
						
							|  |  |  |                         else if (Key == 13) change_appendage.addParameter(16, false, Value.tofloat() / 10.0); | 
					
						
							|  |  |  |                         else if (Key == 14) change_appendage.addParameter(33, false, 0 - (Value.tofloat() / 10.0)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                         else if (Key == 15) change_appendage.addParameter(45, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 16) change_appendage.addParameter(44, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 17) change_appendage.addParameter(43, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 18) change_appendage.addParameter(42, false, Value.tofloat()); | 
					
						
							|  |  |  |                         else if (Key == 19) change_appendage.addParameter(46, false, Value.tofloat()); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             DgnAddBuff = false; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //绘制属性 | 
					
						
							|  |  |  |     function DrawAttribute(obj) { | 
					
						
							|  |  |  |         if (PrintAbTab) { | 
					
						
							| 
									
										
										
										
											2024-04-01 17:26:17 +08:00
										 |  |  |             for (local i = 0; i< 20; i++) { | 
					
						
							| 
									
										
										
										
											2024-03-30 00:19:16 +08:00
										 |  |  |                 L_sq_DrawCode(TabName[i] + "  " + PrintAbTab[i], X + 20 + ((i / 10) * 170), Y + 264 + ((i % 10) * 17), sq_RGBA(255, 255, 255, 250), 1, 1); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //绘制主界面 | 
					
						
							|  |  |  |     function DrawMain(obj) { | 
					
						
							|  |  |  |         //窗口 | 
					
						
							|  |  |  |         T_DrawStayAni(obj, "common/marrysystem/main.ani", X, Y, 0, "MarrySystemMain"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //绘制等级相关信息 | 
					
						
							|  |  |  |         if (LevelInfo) DrawLevelInfo(obj); | 
					
						
							|  |  |  |         //绘制属性相关信息 | 
					
						
							|  |  |  |         DrawAttribute(obj); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //开启界面回调 | 
					
						
							|  |  |  |     function OpenClassCallBack() { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         L_NewWindows("Lenheart", 170, 0x65535); | 
					
						
							|  |  |  |         local W = sq_GetPopupWindowMainCotrol(170); | 
					
						
							|  |  |  |         W.SetVisible(false); | 
					
						
							|  |  |  |         W.SetEnable(false); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         CheckPlayerMarryInfo(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //绘制入口 | 
					
						
							|  |  |  |     function Draw(obj) { | 
					
						
							|  |  |  |         if (MainState) { | 
					
						
							|  |  |  |             if (WindowObj) { | 
					
						
							|  |  |  |                 DrawMain(obj); | 
					
						
							|  |  |  |                 WindowObj.Show(obj); | 
					
						
							|  |  |  |                 X = WindowObj.X; | 
					
						
							|  |  |  |                 Y = WindowObj.Y; | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 WindowObj = MarrySystemWindow(X, Y, 329, 404, 28); //坐标 大小 标题栏高度 | 
					
						
							|  |  |  |                 // WindowObj.DeBugMode = true; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             if (WindowObj && WindowObj.YMouseSw == false) { | 
					
						
							|  |  |  |                 IMouse.ReleaseMouseClick(); | 
					
						
							|  |  |  |                 WindowObj.YMouseSw = true; | 
					
						
							|  |  |  |                 WindowObj = null; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //逻辑入口 | 
					
						
							|  |  |  |     function Proc(obj) { | 
					
						
							|  |  |  |         //附加属性 | 
					
						
							|  |  |  |         AddAb(obj); | 
					
						
							|  |  |  |         if (KeyPressNB.isKeyPress(48, "MarrySystemCloseKey")) { | 
					
						
							|  |  |  |             MainState = false; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-01 17:26:17 +08:00
										 |  |  |         if (obj.isDead()) { | 
					
						
							| 
									
										
										
										
											2024-03-30 00:19:16 +08:00
										 |  |  |             DgnAddBuff = false; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function MarrySystem(obj) { | 
					
						
							|  |  |  |     local RootTab = getroottable(); | 
					
						
							|  |  |  |     if (!RootTab.rawin("MarrySystemCObj")) { | 
					
						
							|  |  |  |         local Cobj = MarrySystemC(); | 
					
						
							|  |  |  |         RootTab.rawset("MarrySystemCObj", Cobj); | 
					
						
							|  |  |  |         EventIcon("婚姻殿堂", 31, 31, Cobj); | 
					
						
							|  |  |  |         PlayerEachIcon("查看婚姻信息", Cobj.CheckOtherPlayerMarryInfo); | 
					
						
							|  |  |  |         // PlayerEachIcon("我要离婚", PleaseDivorceMe); | 
					
						
							|  |  |  |         if (RootTab.rawin("YosinPlayerEachSystem")) { | 
					
						
							|  |  |  |             local EventTab = RootTab["YosinPlayerEachSystem"]; | 
					
						
							|  |  |  |             local pos1 = null; | 
					
						
							|  |  |  |             local pos2 = null; | 
					
						
							|  |  |  |             foreach(pos, value in EventTab) { | 
					
						
							|  |  |  |                 if (value.Name == "邀请结婚") { | 
					
						
							|  |  |  |                     pos1 = pos; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 if (value.Name == "我要离婚") { | 
					
						
							|  |  |  |                     pos2 = pos; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             if (pos1) EventTab.remove(pos1); | 
					
						
							|  |  |  |             if (pos2) EventTab.remove(pos2); | 
					
						
							|  |  |  |             if (Cobj.PrintAbTab == null) PlayerEachIcon("邀请结婚", Cobj.PleaseMarryMe); | 
					
						
							|  |  |  |             else PlayerEachIcon("我要离婚", Cobj.PleaseDivorceMe); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         RootTab["MarrySystemCObj"].Proc(obj); | 
					
						
							|  |  |  |         RootTab["MarrySystemCObj"].Draw(obj); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |