Sqr/LenheartCallBack/Sq_SettingWindow.nut

219 lines
9.6 KiB
Plaintext
Raw Permalink Normal View History

2024-03-18 21:37:40 +08:00
/*
文件名: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);