219 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			219 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名:Sq_SettingWindow.nut | ||
|  | 路径:LenheartCallBack/Sq_SettingWindow.nut | ||
|  | 创建日期:2022-10-21	08:29 | ||
|  | 文件用途:设置窗口回调函数 | ||
|  | */ | ||
|  | 
 | ||
|  | //切换武器回调 | ||
|  | // function SelectWeapon(Type) { | ||
|  | //     SetUpgradeRate(); | ||
|  | // } | ||
|  | // if (getroottable().rawin("SendPackTypeTable")) getroottable()["SendPackTypeTable"].rawset(19, SelectWeapon); | ||
|  | 
 | ||
|  | //上传设置发包 | ||
|  | function ReqPlayerSettingSet(Type) { | ||
|  |     local MonsterBloodSB = getroottable()["MonsterBloodSwitchButtonObj"]; | ||
|  |     local GameShakeSB = getroottable()["GameShakeSwitchButtonObj"]; | ||
|  |     local DamageNumSB = getroottable()["DamageNumSwitchButtonObj"]; | ||
|  |     local Tabbuffer = { | ||
|  |         MonsterBloodSB = MonsterBloodSB.SwitchState, | ||
|  |         GameShakeSB = GameShakeSB.SwitchState, | ||
|  |         DamageNumSB = DamageNumSB.SwitchState, | ||
|  |     } | ||
|  |     local PlayerSettingSetPack = Json_STL("PlayerSettingSetPack"); | ||
|  |     PlayerSettingSetPack.Put("op", 20001001); | ||
|  |     PlayerSettingSetPack.Put("Setting", Json_STL.Encode(Tabbuffer)); | ||
|  | 
 | ||
|  | 
 | ||
|  |     local str = PlayerSettingSetPack.GetString(); | ||
|  |     L_sq_SendPackType(130); | ||
|  |     L_sq_SendPackWChar(str); | ||
|  |     L_sq_SendPack(); | ||
|  |     PlayerSettingSetPack.Delete(); | ||
|  | } | ||
|  | if (getroottable().rawin("SendPackTypeTable")) getroottable()["SendPackTypeTable"].rawset(200, ReqPlayerSettingSet); | ||
|  | 
 | ||
|  | //获取设置收包 | ||
|  | function RcvPlayerSettingSet(Chunk) { | ||
|  |     local RootTab = getroottable(); | ||
|  |     local Buffer = Json_STL("RcvPlayerSettingSetBuffer"); | ||
|  |     Buffer.Parse(Chunk, 0, false); | ||
|  |     local str = Buffer.Get("Setting"); | ||
|  |     Buffer.Delete(); | ||
|  |     if (str && str.len() > 0) { | ||
|  |         local SettingBuffer = Json_STL("SettingBuffer"); | ||
|  |         SettingBuffer.Parse(str, 0, false); | ||
|  |         RootTab.rawset("S_MonsterBloodSB", SettingBuffer.Get("MonsterBloodSB")); | ||
|  |         RootTab.rawset("S_GameShakeSB", SettingBuffer.Get("GameShakeSB")); | ||
|  |         RootTab.rawset("S_DamageNumSB", SettingBuffer.Get("DamageNumSB")); | ||
|  |         SettingBuffer.Delete(); | ||
|  |     } else { | ||
|  |         RootTab.rawset("S_MonsterBloodSB", false); | ||
|  |         RootTab.rawset("S_GameShakeSB", false); | ||
|  |         RootTab.rawset("S_DamageNumSB", false); | ||
|  |     } | ||
|  |     //设置一下伤害字体上限 | ||
|  |     if (RootTab["S_DamageNumSB"]) { | ||
|  |         L_sq_WA(0x7EEA7A, 999999999); | ||
|  |         L_sq_WA(0x7EEAA7, 999999999); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | if (getroottable().rawin("Pack_Control")) getroottable()["Pack_Control"].rawset(20001002, RcvPlayerSettingSet); | ||
|  | 
 | ||
|  | 
 | ||
|  | function InitGameSetting(obj) { | ||
|  |     local PlayerSettingGetPack = Json_STL("PlayerSettingGetPack"); | ||
|  |     PlayerSettingGetPack.Put("op", 20001003); | ||
|  |     local str = PlayerSettingGetPack.GetString(); | ||
|  |     L_sq_SendPackType(130); | ||
|  |     L_sq_SendPackWChar(str); | ||
|  |     L_sq_SendPack(); | ||
|  |     PlayerSettingGetPack.Delete(); | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | function Sq_SettingWindowCallBack(Xpos, Ypos) { | ||
|  |     local obj = sq_GetMyMasterCharacter(); | ||
|  | 
 | ||
|  |     L_sq_DrawCode(":: 开启新版怪物血条", Xpos + 228, Ypos + 32, 0xFF93C5DD, 0, 1); | ||
|  |     L_sq_DrawCode(" ┄┄┄┄┄", Xpos + 338, Ypos + 32, 0x9693C5DD, 0, 1); | ||
|  |     L_sq_DrawCode(":: 关闭震动屏幕效果", Xpos + 228, Ypos + 32 + 19, 0xFF93C5DD, 0, 1); | ||
|  |     L_sq_DrawCode(" ┄┄┄┄┄", Xpos + 338, Ypos + 32 + 19, 0x9693C5DD, 0, 1); | ||
|  |     L_sq_DrawCode(":: 新版伤害字体上限", Xpos + 228, Ypos + 32 + 19 + 19, 0xFF93C5DD, 0, 1); | ||
|  |     L_sq_DrawCode(" ┄┄┄┄┄", Xpos + 338, Ypos + 32 + 19 + 19, 0x9693C5DD, 0, 1); | ||
|  | 
 | ||
|  | 
 | ||
|  |     //怪物血条 | ||
|  |     //if (!getroottable().rawin("MonsterBloodSwitchButtonObj")) { | ||
|  |     local MonsterBloodSB = SettingWindowSwitchButtonPro(obj, "MonsterBloodSwitchButton", Xpos + 410, Ypos + 32, "ui/optionwindow/custombutton/switchbutton.ani", 0, 16, 15); | ||
|  |     MonsterBloodSB.SetRectEnble(true, "MonsterBloodSwitchButtonR", Xpos + 410, Ypos + 32, "ui/optionwindow/custombutton/switchbutton.ani", 1); | ||
|  |     MonsterBloodSB.SetCustomClickEnble(true, "MonsterBloodSwitchButtonC", Xpos + 410, Ypos + 32, "ui/optionwindow/custombutton/switchbutton.ani", 1); | ||
|  |     MonsterBloodSB.SetSwitchStateAni("MonsterBloodSwitchButtonS", "ui/optionwindow/custombutton/switchbutton.ani", 2); | ||
|  |     if (getroottable().rawin("S_MonsterBloodSB")) MonsterBloodSB.SwitchState = getroottable()["S_MonsterBloodSB"]; | ||
|  |     else MonsterBloodSB.SwitchState = false; | ||
|  |     getroottable().rawset("MonsterBloodSwitchButtonObj", MonsterBloodSB); | ||
|  |     //} | ||
|  |     if (getroottable().rawin("MonsterBloodSwitchButtonObj")) { | ||
|  |         local MonsterBloodSB = getroottable()["MonsterBloodSwitchButtonObj"]; | ||
|  |         MonsterBloodSB.Show(); | ||
|  |         if (MonsterBloodSB.isLBActive()) { | ||
|  |             MonsterBloodSB.SwitchState = !MonsterBloodSB.SwitchState; | ||
|  |             getroottable().rawset("S_MonsterBloodSB", MonsterBloodSB.SwitchState); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //游戏震动 | ||
|  |     //if (!getroottable().rawin("GameShakeSwitchButtonObj")) { | ||
|  |     local GameShakeSB = SettingWindowSwitchButtonPro(obj, "GameShakeSwitchButton", Xpos + 410, Ypos + 32 + 19, "ui/optionwindow/custombutton/switchbutton.ani", 0, 16, 15); | ||
|  |     GameShakeSB.SetRectEnble(true, "GameShakeSwitchButtonR", Xpos + 410, Ypos + 32 + 19, "ui/optionwindow/custombutton/switchbutton.ani", 1); | ||
|  |     GameShakeSB.SetCustomClickEnble(true, "GameShakeSwitchButtonC", Xpos + 410, Ypos + 32 + 19, "ui/optionwindow/custombutton/switchbutton.ani", 1); | ||
|  |     GameShakeSB.SetSwitchStateAni("GameShakeSwitchButtonS", "ui/optionwindow/custombutton/switchbutton.ani", 2); | ||
|  |     if (getroottable().rawin("S_GameShakeSB")) GameShakeSB.SwitchState = getroottable()["S_GameShakeSB"]; | ||
|  |     else GameShakeSB.SwitchState = false; | ||
|  |     getroottable().rawset("GameShakeSwitchButtonObj", GameShakeSB); | ||
|  |     //} | ||
|  |     if (getroottable().rawin("GameShakeSwitchButtonObj")) { | ||
|  |         local GameShakeSB = getroottable()["GameShakeSwitchButtonObj"]; | ||
|  |         GameShakeSB.Show(); | ||
|  |         if (GameShakeSB.isLBActive()) { | ||
|  |             GameShakeSB.SwitchState = !GameShakeSB.SwitchState; | ||
|  |             getroottable().rawset("S_GameShakeSB", GameShakeSB.SwitchState); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //伤害字体上限 | ||
|  |     //if (!getroottable().rawin("DamageNumSwitchButtonObj")) { | ||
|  |     local DamageNumSB = SettingWindowSwitchButtonPro(obj, "DamageNumSwitchButton", Xpos + 410, Ypos + 32 + 19 + 19, "ui/optionwindow/custombutton/switchbutton.ani", 0, 16, 15); | ||
|  |     DamageNumSB.SetRectEnble(true, "DamageNumSwitchButtonR", Xpos + 410, Ypos + 32 + 19 + 19, "ui/optionwindow/custombutton/switchbutton.ani", 1); | ||
|  |     DamageNumSB.SetCustomClickEnble(true, "DamageNumSwitchButtonC", Xpos + 410, Ypos + 32 + 19 + 19, "ui/optionwindow/custombutton/switchbutton.ani", 1); | ||
|  |     DamageNumSB.SetSwitchStateAni("DamageNumSwitchButtonS", "ui/optionwindow/custombutton/switchbutton.ani", 2); | ||
|  |     if (getroottable().rawin("S_DamageNumSB")) DamageNumSB.SwitchState = getroottable()["S_DamageNumSB"]; | ||
|  |     else DamageNumSB.SwitchState = false; | ||
|  |     getroottable().rawset("DamageNumSwitchButtonObj", DamageNumSB); | ||
|  |     //} | ||
|  |     if (getroottable().rawin("DamageNumSwitchButtonObj")) { | ||
|  |         local DamageNumSB = getroottable()["DamageNumSwitchButtonObj"]; | ||
|  |         DamageNumSB.Show(); | ||
|  |         if (DamageNumSB.isLBActive()) { | ||
|  |             DamageNumSB.SwitchState = !DamageNumSB.SwitchState; | ||
|  |             getroottable().rawset("S_DamageNumSB", DamageNumSB.SwitchState); | ||
|  |         } | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | //踢自己 | ||
|  | function KickMySelf(chunk) { | ||
|  |     local KickMySelf = Json_STL("KickMySelf"); | ||
|  |     KickMySelf.Put("op", 77777); | ||
|  |     local str = KickMySelf.GetString(); | ||
|  |     L_sq_SendPackType(130); | ||
|  |     L_sq_SendPackWChar(str); | ||
|  |     L_sq_SendPack(); | ||
|  |     KickMySelf.Delete(); | ||
|  |     L_sq_SendPack(); | ||
|  | } | ||
|  | if (getroottable().rawin("Pack_Control")) getroottable()["Pack_Control"].rawset(77778, KickMySelf); | ||
|  | 
 | ||
|  | //全屏拾物 | ||
|  | function MoveItems(chunk) { | ||
|  |     local obj = sq_GetMyMasterCharacter(); | ||
|  |     local objectManager = obj.getObjectManager(); | ||
|  |     if (!objectManager) return; | ||
|  |     local CollisionObjectNumber = objectManager.getCollisionObjectNumber(); | ||
|  |     for (local i = 0; i < CollisionObjectNumber; i += 1) { | ||
|  |         local object = objectManager.getCollisionObject(i); | ||
|  |         if (object.isObjectType(OBJECTTYPE_ITEM)) { | ||
|  |             sq_SetCurrentPos(object, obj.getXPos(), obj.getYPos(), 0); | ||
|  |         } | ||
|  |     } | ||
|  | } | ||
|  | if (getroottable().rawin("Pack_Control")) getroottable()["Pack_Control"].rawset(900, MoveItems); | ||
|  | 
 | ||
|  | 
 | ||
|  | //充值全服公告动画 | ||
|  | function ChargeNotiFunc(obj) { | ||
|  |     if (getroottable().rawin("ChargeNotiTab") && getroottable()["ChargeNotiTab"].len() > 0) { | ||
|  |         local BaseAni = BasicsDrawTool.T_DrawDynamicAni(obj, "common/addpoint/dh.ani", 0, -180, "ChargeNotiAni"); | ||
|  |         if (sq_GetAnimationFrameIndex(BaseAni) >= 80) { | ||
|  |             //L_sq_DrawCode("      [" + getroottable()["ChargeNotiTab"][0].name + "]", 170, 286 - 173, sq_RGBA(255, 177, 0, 250), 1, 0); | ||
|  |             local NotiObj = getroottable()["ChargeNotiTab"][0]; | ||
|  |             local StrArr = NotiObj.Noti; | ||
|  | 
 | ||
|  |             L_sq_DrawCode(StrArr[0] + NotiObj.name + StrArr[1] + StrArr[2] + NotiObj.point + StrArr[3], NotiObj.nameposx,NotiObj.nameposy, NotiObj.color, 1, 0); | ||
|  |         } | ||
|  |         if (sq_GetCurrentTime(BaseAni) >= 6000) { | ||
|  |             sq_Rewind(BaseAni); | ||
|  |             getroottable()["ChargeNotiTab"].remove(0); | ||
|  |         } | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | //大佬充值全服公告 | ||
|  | function ChargeNoti(Chunk) { | ||
|  |     local Buffer = Json_STL("ChargeNotiBuffer"); | ||
|  |     Buffer.Parse(Chunk, 0, false); | ||
|  |     local Tab = { | ||
|  |         name = Buffer.Get("name"), | ||
|  |         point = Buffer.Get("Point"), | ||
|  |         nameposx = Buffer.Get("NameXpos"), | ||
|  |         nameposy = Buffer.Get("NameYpos"), | ||
|  |         Noti = [Buffer.Get("ExNot0"), Buffer.Get("ExNot1"), Buffer.Get("ExNot2"), Buffer.Get("ExNot3")], | ||
|  |         color = sq_RGBA(Buffer.Get("R"),Buffer.Get("G"),Buffer.Get("B"),Buffer.Get("A")), | ||
|  |     } | ||
|  |     local arr; | ||
|  |     if (!getroottable().rawin("ChargeNotiTab")) { | ||
|  |         arr = []; | ||
|  |     } else { | ||
|  |         arr = getroottable()["ChargeNotiTab"]; | ||
|  |     } | ||
|  |     arr.append(Tab); | ||
|  |     getroottable().rawset("ChargeNotiTab", arr); | ||
|  | 
 | ||
|  |     Buffer.Delete(); | ||
|  | } | ||
|  | if (getroottable().rawin("Pack_Control")) getroottable()["Pack_Control"].rawset(20005002, ChargeNoti); |