WTS NimeraCP: A Modern Web Control Panel for L2java
-
Posts
-
I have a EU client of Grand Crusade with protocol 110. I have added russian locale, but adding necessary .dat files and Localization.ini file : [LanguageSet] Language=8 0=Korea 1=English 2=Japan 3=Taiwan 4=China 5=Thailand 6=Philippine 7=Indonesia 8=Russia 9=Europe 10=Germany 11=France 12=Poland 13=Turkey EnableEngSelection=true ANd now I able to run with urssian locale, but... I wish able to choose betwwen two of them 8(Russian) and 9(Europe), but now is accessible just one of them: I have tried also change L2.ini: [LanguageSet] Language=8,9 But same result: I also has read that some logic might be at OptionWnd class of my Interface.u package, but didn't found has it initialize, just : class OptionWnd extends L2UIGFxScript; const PARTY_MODIFY_REQUEST = 9; const DIALOGID_proc1 = 10; const DIALOGID_proc2 = 11; const DIALOGID_proc3 = 12; const DIALOGID_proc4 = 13; const ID_CALL_DIALOG = 10; const ID_EXEC_FUNCTION = 11; const ID_OPENWINDOW = 12; var bool m_bL2Shader; var bool m_bDOF; var bool m_bShaderWater; var int m_AntiAliasing; var int m_PostProc; var bool m_bAutoPartyMatching; var int g_CurrentMaxWidth; var int g_CurrentMaxHeight; var int nPixelShaderVersion; var int nVertexShaderVersion; var bool isGAMINGSTATE; var DialogBox dScript; var bool bPartyMember; var bool bPartyMaster; var FlightShipCtrlWnd scriptShip; var FlightTransformCtrlWnd scriptTrans; var array<string> m_datasheetKeyReplace; var array<string> m_datasheetKeyReplaced; var bool isOpenShortCut; var WindowHandle m_hPartyMatchWnd; var WindowHandle m_hUnionMatchWnd; var bool preEnterChattingOption; function OnRegisterEvent() { RegisterEvent(9170); RegisterEvent(9175); RegisterEvent(1710); RegisterEvent(1720); RegisterEvent(3410); RegisterEvent(4910); RegisterEvent(4911); RegisterGFxEvent(5870); RegisterGFxEvent(3420); RegisterGFxEvent(3430); RegisterGFxEvent(510); RegisterEvent(520); RegisterEvent(4913); RegisterEvent(4916); RegisterEvent(4914); RegisterEvent(4915); RegisterEvent(4918); RegisterEvent(4919); RegisterEvent(1560); RegisterEvent(40); RegisterEvent(4917); RegisterGFxEvent(3452); RegisterGFxEvent(5871); RegisterGFxEvent(691); RegisterGFxEvent(692); RegisterGFxEvent(6210); RegisterGFxEvent(9320); RegisterGFxEvent(9330); return; } function LoadAudioOption() { local bool bMute; // End:0x4A if(CanUseAudio()) { bMute = GetOptionBool("Audio", "AudioMuteOn"); SetOptionBool("Audio", "AudioMuteOn", bMute); } return; } function LoadVideoOption() { local bool bKeepMinFrameRate; m_AntiAliasing = GetOptionInt("Video", "AntiAliasing"); m_PostProc = GetOptionInt("Video", "PostProc"); m_bL2Shader = GetOptionBool("Video", "L2Shader"); m_bDOF = GetOptionBool("Video", "S30DOFBOX"); m_bShaderWater = GetOptionBool("Video", "S30WaterEffectBox"); bKeepMinFrameRate = GetOptionBool("Video", "IsKeepMinFrameRate"); // End:0x11C if(!bKeepMinFrameRate) { // End:0x11C if((nPixelShaderVersion >= 30) && nVertexShaderVersion >= 30) { SetL2Shader(m_bL2Shader); // End:0x11C if(m_bL2Shader) { SetDOF(m_bDOF); SetShaderWaterEffect(m_bShaderWater); } } } return; } function LoadGameOption() { local bool bChecked; local int iChecked; bChecked = false; bChecked = GetOptionBool("Control", "RightClickBox"); SetFixedDefaultCamera(bChecked); // End:0x92 if(!GetINIBool("ScreenInfo", "ShowZoneTitle", iChecked, "Option.ini")) { SetOptionBool("ScreenInfo", "ShowZoneTitle", true); } // End:0xED if(!GetINIBool("ScreenInfo", "ShowGameTipMsg", iChecked, "Option.ini")) { SetOptionBool("ScreenInfo", "ShowGameTipMsg", true); } return; } function OnLoad() { SetContainerWindow("SkinnedWindow", 205); AddState("GAMINGSTATE"); AddState("LOGINSTATE"); AddState("PAWNVIEWERSTATE"); AddState("ARENAGAMINGSTATE"); AddState("ARENABATTLESTATE"); SetOptionBool("ScreenInfo", "HideDropItem", false); GetShaderVersion(nPixelShaderVersion, nVertexShaderVersion); LoadVideoOption(); LoadAudioOption(); LoadGameOption(); DataSheetAssignKeyReplacement(); scriptShip = FlightShipCtrlWnd(GetScript("FlightShipCtrlWnd")); scriptTrans = FlightTransformCtrlWnd(GetScript("FlightTransformCtrlWnd")); m_hPartyMatchWnd = GetWindowHandle("PartyMatchWnd"); m_hUnionMatchWnd = GetWindowHandle("UnionMatchWnd"); return; } function DataSheetAssignKeyReplacement() { m_datasheetKeyReplace[1] = "LEFTMOUSE"; m_datasheetKeyReplace[2] = "RIGHTMOUSE"; m_datasheetKeyReplace[3] = "BACKSPACE"; m_datasheetKeyReplace[4] = "ENTER"; m_datasheetKeyReplace[5] = "SHIFT"; m_datasheetKeyReplace[6] = "CTRL"; m_datasheetKeyReplace[7] = "ALT"; m_datasheetKeyReplace[8] = "PAUSE"; m_datasheetKeyReplace[9] = "CAPSLOCK"; m_datasheetKeyReplace[10] = "ESCAPE"; m_datasheetKeyReplace[11] = "SPACE"; m_datasheetKeyReplace[12] = "PAGEUP"; m_datasheetKeyReplace[13] = "PAGEDOWN"; m_datasheetKeyReplace[14] = "END"; m_datasheetKeyReplace[15] = "HOME"; m_datasheetKeyReplace[16] = "LEFT"; m_datasheetKeyReplace[17] = "UP"; m_datasheetKeyReplace[18] = "RIGHT"; m_datasheetKeyReplace[19] = "DOWN"; m_datasheetKeyReplace[20] = "SELECT"; m_datasheetKeyReplace[21] = "PRINT"; m_datasheetKeyReplace[22] = "PRINTSCRN"; m_datasheetKeyReplace[23] = "INSERT"; m_datasheetKeyReplace[24] = "DELETE"; m_datasheetKeyReplace[25] = "HELP"; m_datasheetKeyReplace[26] = "NUMPAD0"; m_datasheetKeyReplace[27] = "NUMPAD1"; m_datasheetKeyReplace[28] = "NUMPAD2"; m_datasheetKeyReplace[29] = "NUMPAD3"; m_datasheetKeyReplace[30] = "NUMPAD4"; m_datasheetKeyReplace[31] = "NUMPAD5"; m_datasheetKeyReplace[32] = "NUMPAD6"; m_datasheetKeyReplace[33] = "NUMPAD7"; m_datasheetKeyReplace[34] = "NUMPAD8"; m_datasheetKeyReplace[35] = "NUMPAD9"; m_datasheetKeyReplace[36] = "GREYSTAR"; m_datasheetKeyReplace[37] = "GREYPLUS"; m_datasheetKeyReplace[38] = "SEPARATOR"; m_datasheetKeyReplace[39] = "GREYMINUS"; m_datasheetKeyReplace[40] = "NUMPADPERIOD"; m_datasheetKeyReplace[41] = "GREYSLASH"; m_datasheetKeyReplace[42] = "NUMLOCK"; m_datasheetKeyReplace[43] = "SCROLLLOCK"; m_datasheetKeyReplace[44] = "UNICODE"; m_datasheetKeyReplace[45] = "SEMICOLON"; m_datasheetKeyReplace[46] = "EQUALS"; m_datasheetKeyReplace[47] = "COMMA"; m_datasheetKeyReplace[48] = "MINUS"; m_datasheetKeyReplace[49] = "SLASH"; m_datasheetKeyReplace[50] = "TILDE"; m_datasheetKeyReplace[51] = "LEFTBRACKET"; m_datasheetKeyReplace[52] = "BACKSLASH"; m_datasheetKeyReplace[53] = "RIGHTBRACKET"; m_datasheetKeyReplace[54] = "SINGLEQUOTE"; m_datasheetKeyReplace[55] = "PERIOD"; m_datasheetKeyReplace[56] = "MIDDLEMOUSE"; m_datasheetKeyReplace[57] = "MOUSEWHEELDOWN"; m_datasheetKeyReplace[58] = "MOUSEWHEELUP"; m_datasheetKeyReplace[59] = "UNKNOWN16"; m_datasheetKeyReplace[60] = "UNKNOWN17"; m_datasheetKeyReplace[61] = "BACKSLASH"; m_datasheetKeyReplace[62] = "UNKNOWN19"; m_datasheetKeyReplace[63] = "UNKNOWN5C"; m_datasheetKeyReplace[64] = "UNKNOWN5D"; m_datasheetKeyReplace[65] = "UNKNOWN0C"; m_datasheetKeyReplaced[1] = GetSystemString(1670); m_datasheetKeyReplaced[2] = GetSystemString(1671); m_datasheetKeyReplaced[3] = GetSystemString(1517); m_datasheetKeyReplaced[4] = "Enter"; m_datasheetKeyReplaced[5] = "Shift"; m_datasheetKeyReplaced[6] = "Ctrl"; m_datasheetKeyReplaced[7] = "Alt"; m_datasheetKeyReplaced[8] = "Pause"; m_datasheetKeyReplaced[9] = "CapsLock"; m_datasheetKeyReplaced[10] = "ESC"; m_datasheetKeyReplaced[11] = GetSystemString(1672); m_datasheetKeyReplaced[12] = "PageUp"; m_datasheetKeyReplaced[13] = "PageDown"; m_datasheetKeyReplaced[14] = "End"; m_datasheetKeyReplaced[15] = "Home"; m_datasheetKeyReplaced[16] = "Left"; m_datasheetKeyReplaced[17] = "Up"; m_datasheetKeyReplaced[18] = "Right"; m_datasheetKeyReplaced[19] = "Down"; m_datasheetKeyReplaced[20] = "Select"; m_datasheetKeyReplaced[21] = "Print"; m_datasheetKeyReplaced[22] = "PrintScrn"; m_datasheetKeyReplaced[23] = "Insert"; m_datasheetKeyReplaced[24] = "Delete"; m_datasheetKeyReplaced[25] = "Help"; m_datasheetKeyReplaced[26] = GetSystemString(1657); m_datasheetKeyReplaced[27] = GetSystemString(1658); m_datasheetKeyReplaced[28] = GetSystemString(1659); m_datasheetKeyReplaced[29] = GetSystemString(1660); m_datasheetKeyReplaced[30] = GetSystemString(1661); m_datasheetKeyReplaced[31] = GetSystemString(1662); m_datasheetKeyReplaced[32] = GetSystemString(1663); m_datasheetKeyReplaced[33] = GetSystemString(1664); m_datasheetKeyReplaced[34] = GetSystemString(1665); m_datasheetKeyReplaced[35] = GetSystemString(1666); m_datasheetKeyReplaced[36] = "*"; m_datasheetKeyReplaced[37] = "+"; m_datasheetKeyReplaced[38] = "Separator"; m_datasheetKeyReplaced[39] = "-"; m_datasheetKeyReplaced[40] = "."; m_datasheetKeyReplaced[41] = "/"; m_datasheetKeyReplaced[42] = "NumLock"; m_datasheetKeyReplaced[43] = "ScrollLock"; m_datasheetKeyReplaced[44] = "Unicode"; m_datasheetKeyReplaced[45] = ";"; m_datasheetKeyReplaced[46] = "="; m_datasheetKeyReplaced[47] = ","; m_datasheetKeyReplaced[48] = "-"; m_datasheetKeyReplaced[49] = "/"; m_datasheetKeyReplaced[50] = "`"; m_datasheetKeyReplaced[51] = "["; m_datasheetKeyReplaced[52] = ""; m_datasheetKeyReplaced[53] = "]"; m_datasheetKeyReplaced[54] = "'"; m_datasheetKeyReplaced[55] = "."; m_datasheetKeyReplaced[56] = GetSystemString(1669); m_datasheetKeyReplaced[57] = GetSystemString(1667); m_datasheetKeyReplaced[58] = GetSystemString(1668); m_datasheetKeyReplaced[59] = "-"; m_datasheetKeyReplaced[60] = "="; m_datasheetKeyReplaced[61] = GetSystemString(1676); m_datasheetKeyReplaced[62] = GetSystemString(1673); m_datasheetKeyReplaced[63] = GetSystemString(1674); m_datasheetKeyReplaced[64] = GetSystemString(1675); m_datasheetKeyReplaced[65] = GetSystemString(1677); return; } function string GetUserReadableKeyName(string Input) { local int i; local string output; i = 0; J0x07: // End:0x47 [Loop If] if(i < m_datasheetKeyReplace.Length) { // End:0x3D if(m_datasheetKeyReplace[i] == Input) { output = m_datasheetKeyReplaced[i]; } ++i; // [Loop Continue] goto J0x07; } // End:0x5E if(output == "") { output = Input; } return output; return; } function PartyLootingChanged(int selectedNum) { // End:0x62 if(bPartyMaster || (IsRoomMaster()) && !bPartyMember) { // End:0x50 if(GetOptionInt("Communication", "PartyLooting") == selectedNum) { return; } setEnableLootingBox(false); RequestPartyLootingModify(selectedNum); } return; } function chkRequestRegistWaitingSubstitute(bool checked) { // End:0x3C if(checked == GetOptionBool("Communication", "StartupAutoPartyMatching")) { return; } // End:0x47 if(m_bAutoPartyMatching) { return; } // End:0x57 if(checked) { RequestRegistWaitingSubstitute(1); } return; } function HandleSwitchEnterchatting() { local bool enableEnterChatting; local FlightTransformCtrlWnd scriptFlgithForm; local FlightShipCtrlWnd scriptFlightShip; local ShortcutCommandItem shortcutItem; scriptFlgithForm = FlightTransformCtrlWnd(GetScript("FlightTransformCtrlWnd")); // End:0x3D if(scriptFlgithForm.isNowActiveFlightTransShortcut) { return; } scriptFlightShip = FlightShipCtrlWnd(GetScript("FlightShipCtrlWnd")); // End:0x75 if(scriptFlightShip.isNowActiveFlightShipShortcut) { return; } Class'NWindow.ShortcutAPI'.static.ActivateGroup("GamingStateDefaultShortcut"); Class'NWindow.ShortcutAPI'.static.ActivateGroup("CameraControl"); Class'NWindow.ShortcutAPI'.static.ActivateGroup("GamingStateGMShortcut"); // End:0x196 if(getInstanceUIData().getIsArenaServer()) { Class'NWindow.ShortcutAPI'.static.ActivateGroup("TempStateShortcut"); preEnterChattingOption = GetChatFilterBool("Global", "EnterChatting"); SetChatFilterBool("Global", "EnterChatting", true); enableEnterChatting = true; CallGFxFunction(getCurrentWindowName(string(self)), "onSwitchDisableEnterChatting", string(true)); } else { // End:0x201 if(GetChatFilterBool("Global", "EnterChatting")) { Class'NWindow.ShortcutAPI'.static.ActivateGroup("TempStateShortcut"); SetChatFilterBool("Global", "EnterChatting", true); enableEnterChatting = true; } else { Class'NWindow.ShortcutAPI'.static.DeactivateGroup("TempStateShortcut"); SetChatFilterBool("Global", "EnterChatting", false); enableEnterChatting = false; } } // End:0x30C if((GetGameStateName() == "ARENABATTLESTATE") || GetGameStateName() == "ARENAGAMINGSTATE") { Class'NWindow.ShortcutAPI'.static.DeactivateGroup("ArenaPickEnterChattingShortcut"); Class'NWindow.ShortcutAPI'.static.ActivateGroup("ArenaGamingShortcut"); Class'NWindow.ShortcutAPI'.static.ActivateGroup("ArenaGamingEnterChattingShortcut"); } else { // End:0x3CD if(GetGameStateName() == "ARENAPICKSTATE") { Class'NWindow.ShortcutAPI'.static.ActivateGroup("ArenaPickEnterChattingShortcut"); Class'NWindow.ShortcutAPI'.static.DeactivateGroup("TempStateShortcut"); Class'NWindow.ShortcutAPI'.static.DeactivateGroup("ArenaGamingShortcut"); Class'NWindow.ShortcutAPI'.static.DeactivateGroup("ArenaGamingEnterChattingShortcut"); } } CallGFxFunction(getCurrentWindowName(string(self)), "onSwitchEnterChatting", string(enableEnterChatting)); return; } function ToggleOpenMeWnd(bool isShortCut) { isOpenShortCut = isShortCut; // End:0x1F if(IsShowWindow()) { HideWindow(); } else { ShowWindow(); } return; } function ShortCutReset() { ActiveFlightShort(); HandleSwitchEnterchatting(); return; } function OnCallUCFunction(string funcName, string param) { switch(funcName) { // End:0x22 case "ShortCutReset": ShortCutReset(); // End:0x132 break; // End:0x49 case "HandleSwitchEnterchatting": HandleSwitchEnterchatting(); // End:0x132 break; // End:0x71 case "PartyLootingChanged": PartyLootingChanged(int(param)); // End:0x132 break; // End:0xA4 case "RequestRegistWaitingSubstitute": chkRequestRegistWaitingSubstitute(bool(param)); // End:0x132 break; // End:0xC9 case "SetPcRoomBoxData": SetPcRoomBoxData(bool(param)); // End:0x132 break; // End:0xEA case "StateBoxShow": StateBoxShow(bool(param)); // End:0x132 break; // End:0x110 case "handleShaderOptionChange": handleShaderOptionChange(); // End:0x132 break; // End:0x12F case "setChattingOption": setChattingOption(); // End:0x132 break; // End:0xFFFF default: break; } return; } function SetDefaultPositionByClick() { GetCurrentResolution(g_CurrentMaxWidth, g_CurrentMaxHeight); SetDefaultPosition(); return; } function InitControlOption() { CallGFxFunction(getCurrentWindowName(string(self)), "InitControlOption", ""); return; } function InitScreenInfoOption() { CallGFxFunction(getCurrentWindowName(string(self)), "InitScreenInfoOption", ""); return; } function StateBoxShow(bool bChecked) { local TargetStatusWnd util; util = TargetStatusWnd(GetScript("TargetStatusWnd")); util.StateBoxShow(bChecked); return; } function SetPcRoomBoxData(bool bOption) { local InfoWnd Script; Script = InfoWnd(GetScript("InfoWnd")); // End:0x46 if((Script != none) && isGAMINGSTATE) { Script.HandleToggleShowPCCafeEventWnd(true, bOption); } return; } function ActiveFlightShort() { // End:0xC8 if(scriptShip.Me.IsShowWindow()) { SetChatFilterBool("Global", "EnterChatting", true); CallGFxFunction(getCurrentWindowName(string(self)), "onSwitchEnterChatting", string(true)); CallGFxFunction(getCurrentWindowName(string(self)), "onSwitchDisableEnterChatting", string(true)); Class'NWindow.ShortcutAPI'.static.ActivateGroup("FlightStateShortcut"); scriptShip.updateLockButton(); } else { // End:0x191 if(scriptTrans.Me.IsShowWindow()) { SetChatFilterBool("Global", "EnterChatting", true); CallGFxFunction(getCurrentWindowName(string(self)), "onSwitchEnterChatting", string(true)); CallGFxFunction(getCurrentWindowName(string(self)), "onSwitchDisableEnterChatting", string(true)); scriptTrans.updateLockButton(); Class'NWindow.ShortcutAPI'.static.ActivateGroup("FlightTransformShortcut"); } } return; } function handleShaderOptionChange() { m_AntiAliasing = GetOptionInt("Video", "AntiAliasing"); m_PostProc = GetOptionInt("Video", "PostProc"); m_bL2Shader = GetOptionBool("Video", "L2Shader"); m_bDOF = GetOptionBool("Video", "S30DOFBOX"); m_bShaderWater = GetOptionBool("Video", "S30WaterEffectBox"); SetHDR(m_PostProc); SetAntialiasing(m_AntiAliasing); SetShaderWaterEffect(m_bShaderWater); SetDOF(m_bDOF); SetL2Shader(m_bL2Shader); return; } function OnEvent(int a_EventID, string a_Param) { switch(a_EventID) { // End:0x19 case 1710: HandleDialogResult(true); // End:0x1CC break; // End:0x2B case 1720: HandleDialogResult(false); // End:0x1CC break; // End:0x41 case 3410: UIActivationUponStateChanges(a_Param); // End:0x1CC break; // End:0x57 case 4910: OnAskPartyLootingModify(a_Param); // End:0x1CC break; // End:0x6D case 4911: OnPartyLootingHasModified(a_Param); // End:0x1CC break; // End:0x75 case 4917: // End:0x7D case 4916: // End:0x9E case 4913: bPartyMember = false; bPartyMaster = false; OnPartyHasDismissed(); // End:0x1CC break; // End:0xC4 case 4914: bPartyMember = true; bPartyMaster = false; OnBecamePartyMember(a_Param); // End:0x1CC break; // End:0xEA case 4915: bPartyMember = false; bPartyMaster = true; OnBecamePartyMaster(a_Param); // End:0x1CC break; // End:0x153 case 4918: bPartyMember = true; bPartyMaster = false; OnHandOverPartyMaster(); // End:0x12C if(m_hPartyMatchWnd.IsShowWindow() == true) { m_hPartyMatchWnd.HideWindow(); } // End:0x150 if(m_hUnionMatchWnd.IsShowWindow() == true) { m_hUnionMatchWnd.HideWindow(); } // End:0x1CC break; // End:0x174 case 4919: bPartyMember = false; bPartyMaster = true; OnRecvPartyMaster(); // End:0x1CC break; // End:0x192 case 40: bPartyMember = false; bPartyMaster = false; OnRestart(); // End:0x1CC break; // End:0x1A3 case 1560: OnPartyMatchRoomClose(); // End:0x1CC break; // End:0x1B6 case 9170: m_bAutoPartyMatching = true; // End:0x1CC break; // End:0x1C9 case 9175: m_bAutoPartyMatching = false; // End:0x1CC break; // End:0xFFFF default: break; } return; } function HandleDialogResult(bool bOK) { local DialogBox dialogBoxScript; dialogBoxScript = DialogBox(GetScript("DialogBox")); // End:0x53 if(Class'UICommonAPI'.static.DialogIsOwnedBy(string(self))) { // End:0x53 if(dialogBoxScript.DialogGetID() == 9) { SetRequestPartyLootingModifyAgreement(bOK); } } return; } function setEnableLootingBox(bool bEnable) { CallGFxFunction(getCurrentWindowName(string(self)), "setEnableLootingBox", string(bEnable)); return; } function setLootingBoxSelection(int SelectNum) { CallGFxFunction(getCurrentWindowName(string(self)), "setLootingBoxSelection", string(SelectNum)); return; } function saveLootingBoxSelection() { CallGFxFunction(getCurrentWindowName(string(self)), "saveLootingBoxSelection", ""); return; } function SetRequestPartyLootingModifyAgreement(bool bOK) { // End:0x13 if(bOK) { RequestPartyLootingModifyAgreement(1); } else { dScript.SetButtonName(1337, 1342); RequestPartyLootingModifyAgreement(0); } return; } function OnPartyMatchRoomClose() { // End:0x41 if(!bPartyMember && !bPartyMaster) { setLootingBoxSelection(GetOptionInt("Communication", "PartyLooting")); } return; } function OnPartyHasDismissed() { setLootingBoxSelection(GetOptionInt("Communication", "PartyLooting")); setEnableLootingBox(true); return; } function OnBecamePartyMember(string a_Param) { local int Lootingtype; ParseInt(a_Param, "Lootingtype", Lootingtype); setLootingBoxSelection(Lootingtype); setEnableLootingBox(false); return; } function OnBecamePartyMaster(string a_Param) { local int Lootingtype; ParseInt(a_Param, "Lootingtype", Lootingtype); setLootingBoxSelection(Lootingtype); setEnableLootingBox(true); return; } function OnHandOverPartyMaster() { setEnableLootingBox(false); return; } function OnRecvPartyMaster() { saveLootingBoxSelection(); setEnableLootingBox(true); return; } function OnRestart() { setLootingBoxSelection(GetOptionInt("Communication", "PartyLooting")); setEnableLootingBox(true); // End:0x66 if(getInstanceUIData().getIsArenaServer()) { SetChatFilterBool("Global", "EnterChatting", preEnterChattingOption); } return; } function bool IsRoomMaster() { local PartyWnd Script; Script = PartyWnd(GetScript("PartyWnd")); return Script.m_AmIRoomMaster; return; } function OnPartyLootingHasModified(string a_Param) { local int IsSuccess, LootingScheme; local string Schemestr, strParam; local PartyWnd Script; local SystemMsgData SystemMsgCurrent; local TextBoxHandle t_handle; local L2Util util; util = L2Util(GetScript("L2Util")); Script = PartyWnd(GetScript("PartyWnd")); ParseInt(a_Param, "IsSuccess", IsSuccess); ParseInt(a_Param, "LootingScheme", LootingScheme); // End:0xE8 if(IsSuccess != 0) { Script.SetMasterTooltip(LootingScheme); Schemestr = util.getLootingString(LootingScheme); t_handle = GetTextBoxHandle("PartyMatchRoomWnd.LootingMethod"); t_handle.SetText(Schemestr); } // End:0x16D if(bPartyMaster || IsRoomMaster()) { AddSystemMessage(3136); // End:0x13D if(IsSuccess != 0) { SetOptionInt("Communication", "PartyLooting", LootingScheme); } else { setLootingBoxSelection(GetOptionInt("Communication", "PartyLooting")); } setEnableLootingBox(true); } // End:0x17B if(IsSuccess == 0) { } else { // End:0x345 if(IsSuccess == 1) { Schemestr = util.getLootingString(LootingScheme); GetSystemMsgInfo(3138, SystemMsgCurrent); ParamAdd(strParam, "MsgType", string(1)); ParamAdd(strParam, "WindowType", string(SystemMsgCurrent.WindowType)); ParamAdd(strParam, "FontType", string(SystemMsgCurrent.FontType)); ParamAdd(strParam, "BackgroundType", string(SystemMsgCurrent.BackgroundType)); ParamAdd(strParam, "LifeTime", string(SystemMsgCurrent.Lifetime * 1000)); ParamAdd(strParam, "AnimationType", string(SystemMsgCurrent.AnimationType)); ParamAdd(strParam, "Msg", MakeFullSystemMsg(SystemMsgCurrent.OnScrMsg, Schemestr)); ParamAdd(strParam, "MsgColorR", string(SystemMsgCurrent.FontColor.R)); ParamAdd(strParam, "MsgColorG", string(SystemMsgCurrent.FontColor.G)); ParamAdd(strParam, "MsgColorB", string(SystemMsgCurrent.FontColor.B)); ExecuteEvent(140, strParam); PlaySound(SystemMsgCurrent.Sound); setLootingBoxSelection(LootingScheme); } else { // End:0x50D if(IsSuccess == 2) { Schemestr = util.getLootingString(LootingScheme); GetSystemMsgInfo(3138, SystemMsgCurrent); ParamAdd(strParam, "MsgType", string(1)); ParamAdd(strParam, "WindowType", string(SystemMsgCurrent.WindowType)); ParamAdd(strParam, "FontType", string(SystemMsgCurrent.FontType)); ParamAdd(strParam, "BackgroundType", string(SystemMsgCurrent.BackgroundType)); ParamAdd(strParam, "LifeTime", string(SystemMsgCurrent.Lifetime * 1000)); ParamAdd(strParam, "AnimationType", string(SystemMsgCurrent.AnimationType)); ParamAdd(strParam, "Msg", MakeFullSystemMsg(SystemMsgCurrent.OnScrMsg, Schemestr)); ParamAdd(strParam, "MsgColorR", string(SystemMsgCurrent.FontColor.R)); ParamAdd(strParam, "MsgColorG", string(SystemMsgCurrent.FontColor.G)); ParamAdd(strParam, "MsgColorB", string(SystemMsgCurrent.FontColor.B)); ExecuteEvent(140, strParam); PlaySound(SystemMsgCurrent.Sound); setLootingBoxSelection(LootingScheme); } } } return; } function OnAskPartyLootingModify(string a_Param) { local string LeaderName; local int LootingScheme; local string Schemestr; local L2Util util; util = L2Util(GetScript("L2Util")); // End:0x3F if(Class'NWindow.UIAPI_WINDOW'.static.IsShowWindow("DialogBox")) { SetRequestPartyLootingModifyAgreement(false); return; } dScript.SetButtonName(184, 185); Class'UICommonAPI'.static.DialogSetID(9); Class'UICommonAPI'.static.DialogSetParamInt64((10 * 1000)); Class'UICommonAPI'.static.DialogSetDefaultCancle(); ParseString(a_Param, "LeaderName", LeaderName); ParseInt(a_Param, "LootingScheme", LootingScheme); Schemestr = util.getLootingString(LootingScheme); Class'UICommonAPI'.static.DialogShow(1, 7, MakeFullSystemMsg(GetSystemMessage(3134), Schemestr), string(self)); return; } function UIActivationUponStateChanges(string a_Param) { // End:0x8F if((((a_Param == "GAMINGSTATE") || a_Param == "ARENAGAMINGSTATE") || a_Param == "ARENABATTLESTATE") || a_Param == "ARENAPICKSTATE") { HandleSwitchEnterchatting(); Class'NWindow.ShortcutAPI'.static.RequestList(); isGAMINGSTATE = true; } else { isGAMINGSTATE = false; } SetAlwaysOnTop(!isGAMINGSTATE); InitControlOption(); return; } function setChattingOption() { local ChatWnd Script; local SystemMsgWnd SysMsgScript; local int tempVal, i, resultNum; Script = ChatWnd(GetScript("ChatWnd")); SysMsgScript = SystemMsgWnd(GetScript("ChatWnd.SystemMsgWnd")); i = 0; J0x48: // End:0x575 [Loop If] if(i < Script.m_sectionName.Length) { GetINIBool(Script.m_sectionName[i], "system", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bSystem = tempVal; GetINIBool(Script.m_sectionName[i], "useitems", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bUseitem = tempVal; GetINIBool(Script.m_sectionName[i], "damage", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bDamage = tempVal; GetINIBool(Script.m_sectionName[i], "chat", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bChat = tempVal; GetINIBool(Script.m_sectionName[i], "normal", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bNormal = tempVal; GetINIBool(Script.m_sectionName[i], "party", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bParty = tempVal; GetINIBool(Script.m_sectionName[i], "shout", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bShout = tempVal; GetINIBool(Script.m_sectionName[i], "market", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bTrade = tempVal; GetINIBool(Script.m_sectionName[i], "pledge", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bClan = tempVal; GetINIBool(Script.m_sectionName[i], "tell", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bWhisper = tempVal; GetINIBool(Script.m_sectionName[i], "ally", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bAlly = tempVal; GetINIBool(Script.m_sectionName[i], "hero", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bHero = tempVal; GetINIBool(Script.m_sectionName[i], "union", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bUnion = tempVal; GetINIBool(Script.m_sectionName[i], "nonpcmessage", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bNoNpcMessage = tempVal; GetINIBool(Script.m_sectionName[i], "worldChat", tempVal, "chatfilter.ini"); Script.m_filterInfo[i].bWorldChat = tempVal; i++; // [Loop Continue] goto J0x48; } Script.m_UseChatSymbol = int(GetChatFilterBool("Global", "OldChatting")); GetINIBool("global", "keywordsound", resultNum, "chatfilter.ini"); Script.m_KeywordFilterSound = resultNum; GetINIBool("global", "keywordactivate", resultNum, "chatfilter.ini"); Script.m_KeywordFilterActivate = resultNum; GetINIBool("global", "UseAlpha", resultNum, "chatfilter.ini"); Script.m_UseAlpha = resultNum; GetINIBool("global", "ChatResizing", resultNum, "chatfilter.ini"); Script.m_ChatResizeOnOff = resultNum; GetINIBool("global", "SystemMsgWnd", resultNum, "chatfilter.ini"); Script.m_bUseSystemMsgWnd = resultNum; GetINIBool("global", "UseSystemMsg", resultNum, "chatfilter.ini"); Script.m_bSystemMsgWnd = resultNum; GetINIBool("global", "SystemMsgWndDamage", resultNum, "chatfilter.ini"); Script.m_bDamageOption = resultNum; GetINIBool("global", "SystemMsgWndExpendableItem", resultNum, "chatfilter.ini"); Script.m_bUseSystemItem = resultNum; GetINIBool("global", "UseWorldChatSpeaker", resultNum, "chatfilter.ini"); Script.m_bWorldChatSpeaker = resultNum; GetINIString("global", "Keyword0", Script.m_Keyword0, "chatfilter.ini"); GetINIString("global", "Keyword1", Script.m_Keyword1, "chatfilter.ini"); GetINIString("global", "Keyword2", Script.m_Keyword2, "chatfilter.ini"); GetINIString("global", "Keyword3", Script.m_Keyword3, "chatfilter.ini"); // End:0x933 if(bool(Script.m_bUseSystemMsgWnd)) { Class'NWindow.UIAPI_WINDOW'.static.ShowWindow("SystemMsgWnd"); } else { Class'NWindow.UIAPI_WINDOW'.static.HideWindow("SystemMsgWnd"); } // End:0x96D if(bool(Script.m_ChatResizeOnOff)) { EnableChatWndResizing(false); } else { EnableChatWndResizing(true); } Script.SetDefaultAlpha(Script.m_UseAlpha); SysMsgScript.SetDefaultAlpha(Script.m_UseAlpha); Script.GetAllcurrentAssignedChatTypeID(); return; } Help me able to add 8 and 9 langugges into drop list of Language. Many thanks for any advice!
-
I wish to make a compile of Classic Interlude Client - generally it is modified client of Grand Crusade with protocol 110. I am able to compile a new Interface based on Grand Crusade Client Compiler archive and even it works, but... I found that UE Explorer 1.4.5 able to decompile just Interface.u package. For Instance Core.u and Engine.u I can't decompile with. it thrwong message that "This package has unknown signature".: I also installed UT Package Tool v2.0 beta 5 - and I able to decompile package.... but the source code that it produce Compile can't recognize: Compiler_Interface-Grand_Crusade\Core\Classes\Object.uc(25) : Error, Unrecognized type 'Vector' Compile aborted due to errors. Failure - 1 error(s), 0 warning(s) More over, I found that UE Explorer source code that produce UT Package Tool are sligtly different, for instanse : function openDialogNumpad (INT64 Adena) { Class'UICommonAPI'.DialogSetID(200001); Class'UICommonAPI'.DialogSetEditType("number"); Class'UICommonAPI'.DialogSetParamInt64(Adena); Class'UICommonAPI'.DialogSetDefaultOK(); Class'UICommonAPI'.DialogShow(1,6,GetSystemString(3138),string(self)); } function HandleDialogCancel () { } function HandleDialogOK () { local INT64 inputNum; local int Id; if ( !Class'UICommonAPI'.DialogIsOwnedBy(string(self)) ) { return; } Id = Class'UICommonAPI'.DialogGetID(); if ( Id == 200001 ) { } UE Explorer: function openDialogNumpad(INT64 Adena) { Class'UICommonAPI'.static.DialogSetID(200001); Class'UICommonAPI'.static.DialogSetEditType("number"); Class'UICommonAPI'.static.DialogSetParamInt64(Adena); Class'UICommonAPI'.static.DialogSetDefaultOK(); Class'UICommonAPI'.static.DialogShow(1, 6, GetSystemString(3138), string(self)); return; } function HandleDialogCancel() { return; } function HandleDialogOK() { local INT64 inputNum; local int Id; // End:0x19 if(!Class'UICommonAPI'.static.DialogIsOwnedBy(string(self))) { return; } Id = Class'UICommonAPI'.static.DialogGetID(); // End:0x87 if(Id == 200001) { inputNum = (Class'UICommonAPI'.static.DialogGetString()); CallGFxFunction("AdenaDistributionWnd", "HandleDialogOK", (inputNum)); } return; } It seems like compiler requires to have return, cause otherwise it throws: Compiler_Interface-Grand_Crusade\Interface\Classes\AdenaDistributionWnd.uc(96) : Error, Unexpected end of file at end of Class Compile aborted due to errors. Failure - 1 error(s), 0 warning(s) After considering compilers and content of UE Explorer and UT Package Tooll I found that it seems like they noth rely on UCC . I also found documentation how to use it : UCC-wiki BatchExport Package: Editor Syntax: batchexport package.ext classname export_ext [path] Availability: Unreal v226* onwards, UT v436 onwards, Unreal II, UT2003, UT2004. Exports resources from Unreal packages in bulk. package.ext: Package whose objects you wish to export. Extension and directory are optional: (e.g. Botpack.u, ..\Maps\CTF-Face.unr or just CTF-Face) classname: The type of objects to export from the package. It can be one of class, texture, sound, music, level, model, polys or textbuffer. export_ext: Extension used for the exported files. The accepted file extensions per class are as follows: class: uc, h. texture: bmp, pcx. sound: wav. music: s3m, xm, it or any other tracker format. level, model and polys: t3d. level exports the complete map with all actors and brushes; model exports all the brushes used in a map (with the red builder being Brush.t3d while the other brushes being Model##.t3d); and polys exports polygons (?) to files named Polys#.t3d. textbuffer: txt. Exports all kinds of text sources in the package. Script code is exported as ScriptCode.txt for each class, so the files will instantly overwrite each other. Maps have an additional text buffer with camera settings for UnrealEd. path: Path to export files to, like C:\MyPath. but when I tried to execute it: \Compiler_Interface-Grand_Crusade\System>UCC.exe batchexport Interface.u class uc Classes\ ======================================= ucc.exe: UnrealOS execution environment Copyright 2001 Epic Games Inc ======================================= Commandlet batchexport not found So, please help me to found proper decompiler. Many thanks!
-
Interlude TNT x7 – Well-Configured, Just Needs More Players! This is not my server, but it's a new project that is very well-configured—it just lacks a community! If you're looking for a fresh, balanced, and exciting Interlude experience, this is the place. Join it, bring your clan or party, and help the server grow! 🔹 Special Offer for Clans/Parties: ✔ For every 9 players, you get: ✅ 2 VIP Accounts ✅ 2 Auto-Farm Licenses ✅ 50 Tickets 📜 General Server Rates: Exp/SP: x7 Adena: x3 Drop/Spoil/Seal Stones: x1 RB Exp/SP: x1 Epic RB Drop: x1 📌 Quest Rate Adjustments: Gather the Flames – x2 rate, more torches, choose reward, added resources Relics of the Old Empire – x2 rate, more relic parts, choose reward, added resources The Finest Food – x2 Alliance with Varka Silenos / Ketra Orcs – x2 quest items War with Ketra / Varka – x2 quest items The Zero Hour – x2 Stakato Fang Yoke of the Past / Fragments of Dimension / Guardians of the Holy Grail / Seekers of the Holy Grail – x2 items Exploration of Giants Cave – x2 drop rate Legacy of Insolence / Whisper of Dreams 1 & 2 – x2 items Four Goblets – x2 (more sealed boxes at 4 sepulchers) 🛡 Gameplay Features: No auto-learn skills Auto-loot enabled Universal game menu (.menu) Max 200 players per clan, 3 clans per ally Epic RB zones limited to 27 players per ally 3rd buff bar for Dances/Songs (High Five mechanics) Box limit: 3 clients per PC (2 free, +1 via item use) Blessed Enchant failure resets to +3, normal Enchant destroys the item Increased weight limit, inventory slots, and shop lots Mana Drug 2000 MP – 20 sec CD Daily Rewards System (play daily, get gifts!) Time Shop – trade online points for special goods Reduced penalties for XP, drop, and adena when killing lower-level mobs ⚔ Equipment & Crafting: D-Grade gear – Available in GM shop for adena C-Grade gear – Available in Luxury Shop for D/C-grade crystals C/B/A/S-Grade gear – Craft only (Quests & Recipes still available) 🕰 Seven Signs Schedule: Seal Stones Farm: Monday 18:00 – Friday 06:00 (server time) Mammon's Period: Friday 06:15 – Monday 17:45 (server time) 🏰 Clans & Alliances: Max 3 clans per alliance, 200 players per clan Leaving/kicking penalty: 24h cooldown Epic Areas Limited to 27 players per alliance (excess players auto-teleported to town) 🔹 Restricted Zones (Max 27 Players per Ally): Ant Nest (Epic) Cruma Tower (Epic) Sea of Spores (Epic) Devil Island (Epic) Antharas Nest (Epic) Valakas Lair (Epic) Valley of Saints (Barakiel) Primeval Island (Raid) 💎 Premium Benefits: Premium Bronze (5 Days) 🔹 +20% Exp/SP 🔹 +10% Adena 🔹 +5% Drop/Spoil Premium Silver (10 Days) 🔹 +30% Exp/SP 🔹 +15% Adena 🔹 +10% Drop/Spoil Premium Gold (30 Days) 🔹 +40% Exp/SP 🔹 +20% Adena 🔹 +15% Drop/Spoil 🔹 Purchase Premium from the in-game Prime Shop (Supplies tab). 🏆 Professions, Subclasses & Noblesse 📌 Class Transfers: 1st Class – Lv20, costs 30k adena 2nd Class – Lv40, costs 100k adena 3rd Class – 350 Halisha’s Marks (drops at Shrine of Loyalty) No quest required – Just farm and exchange at Buzz the Cat in Einhasad Temple. 📌 Sub-Class Unlocking: Items Needed: Reiria’s Soul Orb (Cabrio Chest) 3 Infernium Scepters (Tower of Insolence RB Chests) No Reorin’s Quest required! Just loot from chests after bosses die. 📌 Noblesse Unlocking: Barakiel Last Hit Method: Your party must last-hit Barakiel to get the Noblesse Pass. Required Lv75+ sub-class & must be near RB when it dies. Noblesse status is not repeatable once acquired. Alternative Noblesse Method: After Barakiel dies, a chest spawns – all nearby Lv76+ subclass players can get a Noblesse Pass Piece. Items Required: Noblesse Pass + 50,000,000 Adena. Join >> DISCORD << Site L2ACDC
-
By tomlondon12 · Posted
We are taking new orders. DM us on Telegram!
-
-
Topics
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.