незнаю, попробуй скачать тут на форуме клиент и патч, после попробовать залить все содержимое интерфейса в клиентда, но почему-то у меня на клиенте она не работает, скачивал последнюю версию что тут доступна.
Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
незнаю, попробуй скачать тут на форуме клиент и патч, после попробовать залить все содержимое интерфейса в клиентда, но почему-то у меня на клиенте она не работает, скачивал последнюю версию что тут доступна.
Понял, спасибо большое, в принципе понял куда копать.незнаю, попробуй скачать тут на форуме клиент и патч, после попробовать залить все содержимое интерфейса в клиент
Ого, ожидал что всё будет сложнее, спасибо большое, пошло делотам в архиве есть компилятор и батник для запуска. в папке систем смотри
class ChatWnd extends UICommonAPI;
const TIMER_CLOSE_PARTYMATCH = 1992;
struct ChatFilterInfo
{
var int bSystem;
var int bChat;
var int bDamage;
var int bNormal;
var int bShout;
var int bClan;
var int bParty;
var int bTrade;
var int bWhisper;
var int bAlly;
var int bUseItem;
var int bHero;
var int bUnion;
var int bBattle;
var int bNpc;
};
//Global Setting
var int m_NoUnionCommanderMessage;
var int m_KeywordFilterSound;
var int m_KeywordFilterActivate;
var string m_Keyword0;
var string m_Keyword1;
var string m_Keyword2;
var int contextID;
var string contextName;
var bool contextOwner;
var bool saveFocus;
var array<ChatFilterInfo> m_filterInfo;
var array<string> m_sectionName;
struct native ChatUIType
{
var int ID;
var int UI;
};
var ChatUIType m_ChatUI[8];
var ChatUIType m_chatType;
const CHAT_WINDOW_NORMAL = 0;
const CHAT_WINDOW_TRADE = 1;
const CHAT_WINDOW_PARTY = 2;
const CHAT_WINDOW_CLAN = 3;
const CHAT_WINDOW_ALLY = 4;
const CHAT_WINDOW_COUNT = 9;
const CHAT_WINDOW_SYSTEM = 9; // 시스템 메시지 창 // system message window // окно системного сообщения
//(10.1.28 문선준 추가)
//Link 이벤트 const 값.
//(Added by Sunjun Moon on 10.1.28)
//Link event const value.
//(Добавлено Сунджун Мун 10.1.28)
//Константное значение события связи.
const DIALOGID_GoWeb = 10;
//Url 값 저장. //Save URL value. //Сохраняем значение URL.
var string Url;
var string Text;
// 지휘채널 OnScreenMessage 한줄에 최대로 들어갈 수 있는 글자 수(글로벌용)
// Command Channel OnScreenMessage Maximum number of characters per line (for global use)
// Канал команд OnScreenMessage Максимальное количество символов в строке (для глобального использования)
const CHAT_UNION_MAX = 35;
//Handle List
var ChatWindowHandle NormalChat;
var ChatWindowHandle TradeChat;
var ChatWindowHandle PartyChat;
var ChatWindowHandle ClanChat;
var ChatWindowHandle AllyChat;
var ChatWindowHandle SystemMsg;
var TabHandle ChatTabCtrl;
var EditBoxHandle ChatEditBox;
var WindowHandle m_hChatWnd;
var WindowHandle wnd_ContextMenuWnd;
var WindowHandle wnd_ChatDetectWnd;
var TextureHandle tex_ChatWndHeadTex;
var TextureHandle tex_ChatWndBodyTex;
var TextureHandle tex_ChatWndBottomTex;
var TextureHandle tex_ChatWndBottomTex1;
var TextureHandle tex_DetectBodyChatWnd;
var TextureHandle tex_DetectRightChatWnd;
var TextureHandle tex_DetectUpChatWnd;
var AttributeEnchantWnd AttributeEnchantScript;
var ContextMenuWnd script_ContextMenuWnd;
var bool b_EnableSystemMessageInSystemChat;
var bool b_DisableAllSystemMessagesInCommonChat;
var int bgTransparency;
function OnLoad()
{
// 실제로 쓰이는 것은 CHAT_WINDOW_COUNT 만큼이지만 CheckFilter를 좀 더 간편하게 짜기위해 CHAT_WINDOW_SYSTEM 용 더미를 한개 더 할당한다.
// Actually, only CHAT_WINDOW_COUNT is used, but to make CheckFilter simpler, allocate one more dummy for CHAT_WINDOW_SYSTEM.
// На самом деле используется только CHAT_WINDOW_COUNT, но чтобы упростить CheckFilter, выделите еще одну пустышку для CHAT_WINDOW_SYSTEM.
m_filterInfo.Length = CHAT_WINDOW_COUNT + 1;
// chatfilter.ini에서의 항목
// Entry in chatfilter.ini
// Запись в чатfilter.ini
m_sectionName.Length = CHAT_WINDOW_COUNT;
m_sectionName[0] = "entire_tab";
m_sectionName[1] = "market_tab";
m_sectionName[2] = "party_tab";
m_sectionName[3] = "pledge_tab";
m_sectionName[4] = "ally_tab";
m_sectionName[5] = "hero_tab";
m_sectionName[6] = "union_tab";
m_sectionName[7] = "shout_tab";
m_sectionName[8] = "battlefield_tab";
// xml 에서 GaimingState에 등록해 주고 여기서 추가로 OlympiadObserverState에도 등록해 준다.
// Register GaimingState in xml and additionally register OlympiadObserverState here.
// Регистрируем GaimingState в xml и дополнительно регистрируем здесь OlympiadObserverState.
RegisterState("ChatWnd","GAMINGSTATE");
RegisterState( "ChatWnd", "OLYMPIADOBSERVERSTATE" );
RegisterState("SystemMsgWnd","GAMINGSTATE");
RegisterState( "SystemMsgWnd", "OLYMPIADOBSERVERSTATE" );
RegisterState("SystemMsgWndBG","GAMINGSTATE");
RegisterState( "SystemMsgWndBG", "OLYMPIADOBSERVERSTATE" );
InitHandle();
InitStartValues();
InitScrollBarPosition();
//Enable TextLink
ChatEditBox.SetEnableTextLink( true );
m_chatType.UI = 0;
m_chatType.ID = -1;
AttributeEnchantScript = AttributeEnchantWnd(GetScript("AttributeEnchantWnd"));
script_ContextMenuWnd = ContextMenuWnd(GetScript("ContextMenuWnd"));
tex_DetectBodyChatWnd.ShowWindow();
SetChatTransparency(bgTransparency);
contextOwner = false;
contextID = -1;
contextName = "";
}
function InitHandle()
{
NormalChat = GetChatWindowHandle( "ChatWnd.NormalChat" );
TradeChat = GetChatWindowHandle( "ChatWnd.TradeChat" );
PartyChat = GetChatWindowHandle( "ChatWnd.PartyChat" );
ClanChat = GetChatWindowHandle( "ChatWnd.ClanChat" );
AllyChat = GetChatWindowHandle( "ChatWnd.AllyChat" );
SystemMsg = GetChatWindowHandle( "SystemMsgWnd.SystemMsgList" );
ChatTabCtrl = GetTabHandle( "ChatWnd.ChatTabCtrl" );
ChatEditBox = GetEditBoxHandle( "ChatWnd.ChatEditBox" );
m_hChatWnd=GetWindowHandle("ChatWnd");
wnd_ContextMenuWnd = GetWindowHandle("ContextMenuWnd");
wnd_ChatDetectWnd = GetWindowHandle("ChatWnd.ChatDetectWnd");
tex_DetectBodyChatWnd = GetTextureHandle("ChatWnd.texDetectBodyChatWnd");
tex_DetectRightChatWnd = GetTextureHandle("ChatWnd.ChatDetectWnd.texDetectRightChatWnd");
tex_DetectUpChatWnd = GetTextureHandle("ChatWnd.ChatDetectWnd.texDetectUpChatWnd");
tex_ChatWndHeadTex = GetTextureHandle("ChatWnd.ChatWndHeadTex");
tex_ChatWndBodyTex = GetTextureHandle("ChatWnd.ChatWndBodyTex");
tex_ChatWndBottomTex = GetTextureHandle("ChatWnd.ChatWndBottomTex");
tex_ChatWndBottomTex1 = GetTextureHandle("ChatWnd.ChatWndBottomTex1");
}
function InitScrollBarPosition()
{
NormalChat.SetScrollBarPosition( 5, 10, -18 );
TradeChat.SetScrollBarPosition( 5, 10, -18 );
PartyChat.SetScrollBarPosition( 5, 10, -18 );
ClanChat.SetScrollBarPosition( 5, 10, -18 );
AllyChat.SetScrollBarPosition( 5, 10, -18 );
}
function OnRegisterEvent()
{
registerEvent( EV_ChatMessage );
//registerEvent( EV_IMEStatusChange );
//registerEvent( EV_ChatWndStatusChange );
registerEvent( EV_ChatWndSetString );
registerEvent( EV_ChatWndSetFocus );
registerEvent( EV_ChatWndMsnStatus );
registerEvent( EV_ChatWndMacroCommand );
//TextLink
registerEvent( EV_TextLinkLButtonClick );
registerEvent(EV_GamingStateEnter);
registerEvent(EV_GamingStateExit);
//진정창, 채팅 url링크 이벤트(10.1.28 문선준 추가)
//Calm window, chat url link event (added by Moon Seon-jun on 10.1.28)
//Окно «Спокойствие», событие ссылки на URL-адрес чата (добавлено Moon Seon-jun 10.1.28)
registerEvent( EV_UrlLinkClick );
registerEvent( EV_DialogOK );
registerEvent( EV_DialogCancel );
// registerEvent( EV_StateChanged );
registerEvent( EV_TextLinkRButtonClick );
RegisterEvent(EV_AITimer); // by monokini for switch window style
}
function OnCompleteEditBox( String strID )
{
local String strInput;
local EChatType Type;
if( strID == "ChatEditBox" )
{
strInput = ChatEditBox.GetString();
if ( Len( strInput ) < 1 )
return;
ProcessChatMessage( strInput, m_chatType.ID, true );
ChatEditBox.SetString( "" );
//채팅기호 //Chat symbol //Символ чата
if( GetOptionBool( "Game", "OldChatting" ) == true)
{
Type = GetChatTypeByTabIndex( m_chatType.ID );
//일반탭이 아닌 경우, Prefix를 붙여준다.
//If it is not a regular tab, add a prefix.
//Если это не обычная вкладка, добавьте префикс.
if ( m_chatType.ID != 0 )
{
//debug ("m_chatType.UI " @ m_chatType.UI );
//debug ("m_chatType.ID " @ m_chatType.ID );
if(GetChatPrefix( Type ) != "~")
{
ChatEditBox.AddString( GetChatPrefix( Type ) );
}
}
}
//엔터채팅 //enter chat //входим в чат
if( GetOptionBool( "Game", "EnterChatting" ) == true)
{
ChatEditBox.ReleaseFocus();
}
saveFocus = false;
}
}
function Clear()
{
ChatEditBox.Clear();
NormalChat.Clear();
PartyChat.Clear();
ClanChat.Clear();
TradeChat.Clear();
AllyChat.Clear();
SystemMsg.Clear();
}
function OnShow()
{
GetAllcurrentAssignedChatTypeID();
m_chatType.UI = 0;
m_chatType.ID = -1;
}
function OnClickButton( String strID )
{
local WindowHandle TaskWnd;
local PartyMatchWnd script;
local OptionWnd script_OptionWnd;
local PartyMatchRoomWnd p2_script;
p2_script = PartyMatchRoomWnd( GetScript( "PartyMatchRoomWnd" ) );
script = PartyMatchWnd( GetScript( "PartyMatchWnd" ) );
switch( strID )
{
case "ChatTabCtrl0":
case "ChatTabCtrl1":
case "ChatTabCtrl2":
case "ChatTabCtrl3":
case "ChatTabCtrl4":
HandleTabClick(strID);
break;
case "ChatFilterBtn":
script_OptionWnd = OptionWnd( GetScript( "OptionWnd" ) );
if (class'UIAPI_WINDOW'.static.isShowWindow("OptionWnd"))
{
if (class'UIAPI_WINDOW'.static.isShowWindow("OptionWnd.ChannelChatTab"))
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd");
else
script_OptionWnd.OnClickButton("btn6");
}
else
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd");
script_OptionWnd.OnClickButton("btn6");
}
break;
case "MessengerBtn":
ToggleMsnWindow();
// ExecuteCommandEx("stat script");
// ExecuteCommandEx("show windowname");
// ExecuteCommandEx("reloadui");
break;
case "PartyMatchingBtn":
TaskWnd = GetWindowHandle("PartyMatchWnd");
if (TaskWnd.IsShowWindow())
{
ClosePartyMatchingWnd();
}
else
{
TaskWnd = GetWindowHandle("PartyMatchRoomWnd");
if (TaskWnd.IsShowWindow())
{
TaskWnd.HideWindow();
p2_script.OnSendPacketWhenHiding();
TaskWnd = GetWindowHandle("ChatWnd");
TaskWnd.SetTimer( TIMER_CLOSE_PARTYMATCH, 500 );
}
else
{
class'PartyMatchAPI'.static.RequestOpenPartyMatch();
}
}
break;
default:
break;
}
}
function ClosePartyMatchingWnd()
{
local WindowHandle TaskWnd;
local PartyMatchWnd p_script;
p_script = PartyMatchWnd( GetScript( "PartyMatchWnd" ) );
TaskWnd = GetWindowHandle("PartyMatchWnd");
TaskWnd.HideWindow();
p_script.OnSendPacketWhenHiding();
}
function OnTimer(int TimerID)
{
if(TimerID == TIMER_CLOSE_PARTYMATCH)
{
ClosePartyMatchingWnd();
m_hChatWnd.KillTimer(TIMER_CLOSE_PARTYMATCH);
}
}
function OnTabSplit( string sTabButton )
{
//~ local int width;
//~ local int height;
local ChatWindowHandle handle;
InitScrollBarPosition();
switch( sTabButton )
{
case "ChatTabCtrl0":
handle = NormalChat;
HandleTabClick(sTabButton);
break;
case "ChatTabCtrl1":
handle = TradeChat;
HandleTabClick(sTabButton);
break;
case "ChatTabCtrl2":
handle = PartyChat;
HandleTabClick(sTabButton);
break;
case "ChatTabCtrl3":
handle = ClanChat;
HandleTabClick(sTabButton);
break;
case "ChatTabCtrl4":
handle = AllyChat;
HandleTabClick(sTabButton);
break;
default:
break;
}
if (handle != None)
{
//~ handle.Move(0,-4);
handle.SetWindowSizeRel( -1.0f, -1.0f, 0, 0); //RelativeSize해제 //Turn off RelativeSize /Отключаем RelativeSize
//~ handle.GeWindowSize( width, height );
//~ handle.SetWindowSize( width , height + 4 );
handle.Move(0,4);
//handle.SetSettledWnd( true );
handle.EnableTexture( true );
}
}
function OnTabMerge( string sTabButton )
{
local ChatWindowHandle handle;
local int width, height;
local Rect rectWnd;
InitScrollBarPosition();
switch( sTabButton )
{
case "ChatTabCtrl0":
handle = NormalChat;
break;
case "ChatTabCtrl1":
handle = TradeChat;
break;
case "ChatTabCtrl2":
handle = PartyChat;
break;
case "ChatTabCtrl3":
handle = ClanChat;
break;
case "ChatTabCtrl4":
handle = AllyChat;
break;
default:
break;
}
if (handle != None)
{
rectWnd = NormalChat.GetRect();
NormalChat.GetWindowSize( width, height );
handle.Move(0,-4);
handle.SetSettledWnd( false );
handle.MoveTo( rectWnd.nX, rectWnd.nY );
handle.SetWindowSize( width, height - 46 );
handle.SetWindowSizeRel( 1.0f, 1.0f, 0, -46 );
handle.EnableTexture( false );
}
}
function HandleTabClick( string strID )
{
local string strInput;
local string strPrefix;
local int strLen;
m_chatType.UI = ChatTabCtrl.GetTopIndex();
//~ debug("CurrentTopIndex" @ m_chatType.UI);
m_chatType.ID = GetCurrentChatTypeID(m_chatType.UI);
InitScrollBarPosition();
//채팅기호 //Chat symbol //Символ чата
if( GetOptionBool( "Game", "OldChatting" ) == true)
{
//~ debug("Arrange me");
strInput = ChatEditBox.GetString();
// 모든 기존 접두사 제거 (루프 사용)
// Remove all existing prefixes (using a loop)
// Удаляем все существующие префиксы (используя цикл)
while (Len(strInput) > 0)
{
strPrefix = Left(strInput, 1);
if (IsSameChatPrefix(CHAT_MARKET, strPrefix)
|| IsSameChatPrefix(CHAT_PARTY, strPrefix)
|| IsSameChatPrefix(CHAT_CLAN, strPrefix)
|| IsSameChatPrefix(CHAT_ALLIANCE, strPrefix)
|| IsSameChatPrefix(CHAT_HERO, strPrefix)
|| IsSameChatPrefix(CHAT_INTER_PARTYMASTER_CHAT, strPrefix)
|| IsSameChatPrefix(CHAT_SHOUT, strPrefix)
|| IsSameChatPrefix(CHAT_DOMINIONWAR, strPrefix))
{
strInput = Right(strInput, Len(strInput) - 1);
}
else
{
break;
}
}
//일반탭이 아닌 경우, 변경된 Prefix를 붙여준다.
//If it is not a regular tab, attach the changed prefix.
//Если это не обычная вкладка, прикрепите измененный префикс.
if ( m_chatType.UI != 0 )
{
strPrefix = GetChatPrefix(GetChatTypeByTabIndex(m_chatType.ID));
if (strPrefix != "~")
strInput = strPrefix $ strInput;
}
else
{
m_chatType.ID = 0; // Force ID 0 for the first tab
strPrefix = "";
strInput = strPrefix $ strInput;
}
ChatEditBox.SetString(strInput);
}
}
function OnEnterState( name a_PrevStateName )
{
// 게임 중에 다른 스테이트(스페셜카메라 등)으로 갔다가 다시 들어오는 경우는 Clear()를 불러주면 안되기때문에
// If you go to another state (special camera, etc.) during the game and then come back, you should not call Clear().
// Если вы во время игры перешли в другое состояние (специальная камера и т.п.), а затем вернулись, то не следует вызывать Clear().
if( a_PrevStateName == 'LoadingState' )
{
Clear();
}
}
function OnEvent(int Event_ID, String param)
{
local Color MsgColor;
MsgColor.R = 175;
MsgColor.G = 125;
MsgColor.B = 50;
switch( Event_ID )
{
case EV_ChatMessage:
//~ debug (param);
HandleChatMessage( param );
break;
// case EV_IMEStatusChange:
// HandleIMEStatusChange();
// break;
//case EV_ChatWndStatusChange:
// HandleChatWndStatusChange();
// break;
case EV_ChatWndSetFocus:
HandleSetFocus();
break;
case EV_ChatWndSetString:
HandleSetString( param );
break;
case EV_ChatWndMsnStatus:
HandleMsnStatus(param);
break;
case EV_ChatWndMacroCommand:
HandleChatWndMacroCommand( param );
break;
case EV_TextLinkLButtonClick:
HandleTextLinkLButtonClick( param );
break;
case EV_TextLinkRButtonClick:
HandleTextLinkRButtonClick( param );
break;
case EV_DominionWarChannelSet:
HandleDominionWarChannelSet( param );
break;
case EV_GamingStateEnter:
HandleTabClick("ChatTabCtrl0");
saveFocus = false;
break;
case EV_GamingStateExit:
ChatEditBox.ClearHistory();
break;
// case EV_StateChanged:
// HandleStateChanged(param);
// break;
//진정창, 채팅 url링크 이벤트 리스너(10.1.28 문선준 추가)
//Calm window, chat url link event listener (added by Moon Seon-jun on 10.1.28)
//Окно «Спокойствие», прослушиватель событий ссылки на URL-адрес чата (добавлено Moon Seon-jun 10.1.28)
case EV_UrlLinkClick:
linkWebPage( param );
break;
case EV_DialogOK:
HandleDialogOK();
break;
case EV_DialogCancel:
break;
case EV_AITimer:
SwitchWindowStyle(param);
break;
default:
break;
}
}
function SwitchWindowStyle(string param)
{
local int EventID;
local string newStyle;
local int newSubStyle;
ParseInt(param, "EventID", EventID);
if (EventID == 10)
{
ParseString(param, "Style", newStyle);
ParseInt(param, "SubStyle", newSubStyle);
DrawLocalUI(newStyle, newSubStyle);
}
}
function DrawLocalUI (string newStyle, int newSubStyle)
{
switch (newStyle)
{
case "HF":
if (newSubStyle == 1)
m_hChatWnd.SetAnchor("", "BottomLeft", "BottomLeft", 0, -18);
else
m_hChatWnd.SetAnchor("", "BottomLeft", "BottomLeft", 0, 0);
break;
case "ES":
m_hChatWnd.SetAnchor("", "BottomLeft", "BottomLeft", 0, -29);
break;
case "AS":
case "MN":
m_hChatWnd.SetAnchor("", "BottomLeft", "BottomLeft", 0, -26);
break;
}
}
function HandleStateChanged (string a_NewState)
{
switch (a_NewState)
{
case "LOGINSTATE":
case "LOGINWAITSTATE":
case "EULAMSGSTATE":
case "CHINAWARNMSGSTATE":
case "SERVERLISTSTATE":
case "REPLAYSELECTSTATE":
case "CARDKEYLOGINSTATE":
case "LOADINGSTATE":
break;
case "GAMINGSTATE":
case "OLYMPIADOBSERVERSTATE":
m_hChatWnd.ShowWindow();
m_hChatWnd.SetFocus();
break;
}
}
//홈페이지 링크(10.1.28 문선준 추가)
//Homepage link (added by Sunjun Moon on 10.1.28)
//Ссылка на домашнюю страницу (добавлена Сунджун Мун 10.1.28)
function HandleDialogOK()
{
if( !DialogIsMine() )
return;
switch( DialogGetID() )
{
case DIALOGID_GoWeb:
OpenGivenURL( Url );
break;
}
}
function linkWebPage( string param )
{
if ( !ParseString(param, "Url", Url) )
return;
if ( !ParseString(param, "Text", Text) )
{
Text = "";
}
//debug( "Url---->" $ Url @ GetSystemString( 2265 ));
//debug( "Text---->" $ Text );
DialogSetID( DIALOGID_GoWeb );
if( Text != "" )
{
DialogShow( DIALOG_Modalless, DIALOG_OKCancel, MakeFullSystemMsg( GetSystemMessage( 3211 ) , Text, "" ) );
}
else
{
if( Url == GetSystemString( 2265 ) )
{
DialogShow( DIALOG_Modalless, DIALOG_OKCancel, MakeFullSystemMsg( GetSystemMessage( 3211 ) , GetSystemString( 2259 ), "" ) );
}
else if( Url == GetSystemString( 2266 ) )
{
DialogShow( DIALOG_Modalless, DIALOG_OKCancel, MakeFullSystemMsg( GetSystemMessage( 3211 ) , GetSystemString( 2261 ), "" ) );
}
else if( Url == GetSystemString( 2267 ) )
{
DialogShow( DIALOG_Modalless, DIALOG_OKCancel, MakeFullSystemMsg( GetSystemMessage( 3211 ) , GetSystemString( 2263 ), "" ) );
}
}
}
//매크로커맨드의 실행, UC의 ChatType에 맞게 실행되어야한다.
//Execution of macro command, must be executed according to UC’s ChatType.
//Выполнение макрокоманды должно выполняться в соответствии с ChatType UC.
function HandleChatWndMacroCommand( string param )
{
local string Command;
if (!ParseString(param, "Command", Command))
return;
//Say("HandleChatWndMacroCommand 2_" $ Command $ "_");
if (CustomMacroCommand(Command))
return;
ProcessChatMessage( Command, m_chatType.ID );
}
function bool CustomMacroCommand(string Command)
{
local int nTmp;
if (Left(Command, 11) == "/dispelbuff")
{
nTmp = int(Right(Command, Len(Command) - InStr(Command, " ")));
if (nTmp < 1)
return false;
if (Left(Command, 14) == "/dispelbuffpet")
DispelBuffByMacroCommand(nTmp, 2);
else
DispelBuffByMacroCommand(nTmp, 1);
return true;
}
return false;
}
function DispelBuffByMacroCommand(int ID, int buffOwner)
{
local StatusIconHandle StatusIcon;
local SkillInfo skillInfo;
local int serverID;
local int skillLevel;
switch (buffOwner)
{
case 1:
StatusIcon = GetStatusIconHandle("AbnormalStatusWnd.StatusIcon");
CheckAbnomalStatus(StatusIcon, ID, serverID, skillLevel);
break;
case 2:
if (IsShowWindow("SummonedStatusWnd"))
{
StatusIcon = GetStatusIconHandle("SummonedStatusWnd.StatusIconBuff");
if (!CheckAbnomalStatus(StatusIcon, ID, serverID, skillLevel))
{
StatusIcon = GetStatusIconHandle("SummonedStatusWnd.StatusIconTriggerSkill");
if (!CheckAbnomalStatus(StatusIcon, ID, serverID, skillLevel))
{
StatusIcon = GetStatusIconHandle("SummonedStatusWnd.StatusIconDeBuff");
if (!CheckAbnomalStatus(StatusIcon, ID, serverID, skillLevel))
{
StatusIcon = GetStatusIconHandle("SummonedStatusWnd.StatusIconSongDance");
CheckAbnomalStatus(StatusIcon, ID, serverID, skillLevel);
}
}
}
}
else if (IsShowWindow("PetStatusWnd"))
{
StatusIcon = GetStatusIconHandle("PetStatusWnd.StatusIconBuff");
if (!CheckAbnomalStatus(StatusIcon, ID, serverID, skillLevel))
{
StatusIcon = GetStatusIconHandle("PetStatusWnd.StatusIconDeBuff");
if (!CheckAbnomalStatus(StatusIcon, ID, serverID, skillLevel))
{
StatusIcon = GetStatusIconHandle("PetStatusWnd.StatusIconSongDance");
CheckAbnomalStatus(StatusIcon, ID, serverID, skillLevel);
}
}
}
break;
}
if (StatusIcon == none)
return;
if (serverID == 0)
return;
if (!GetSkillInfo(ID, skillLevel, skillInfo))
return;
if (skillInfo.IsDebuff == false && skillInfo.OperateType == 1)
RequestDispel(serverID, GetItemID(skillInfo.SkillID), skillLevel);
}
function bool CheckAbnomalStatus(StatusIconHandle StatusCheck, int ID, out int serverID, out int skillLevel)
{
local StatusIconInfo info;
local int i,
j,
RowCount,
ColCount;
RowCount = StatusCheck.GetRowCount();
for (i = 0; i < RowCount; i++)
{
ColCount = StatusCheck.GetColCount(i);
for (j = 0; j < ColCount; j++)
{
StatusCheck.GetItem(i, j, info);
if (IsValidItemID(info.ID))
{
if (info.bEtcItem==false && info.bShortItem==false)
{
if (ID == info.ID.ClassID)
{
serverID = info.ServerID;
skillLevel = info.Level;
return true;
}
}
}
}
}
return false;
}
function HandleChatMessage( String param )
{
local int nTmp;
local int SayType;
local int SysMsgIndex;
local int foundID;
local EChatType type;
local ESystemMsgType systemType;
local string text;
local Color color;
local SystemMsgData SysMsgData;
//~ debug(param);
ParseInt(param, "Type", nTmp);
type = EChatType(nTmp);
SayType=nTmp;
ParseString(param, "Msg", text);
// 시스템 메시지일때는 스크립트의 색상을 사용 - lancelot 2008. 8. 18.
// When it is a system message, use the color of the script - lancelot 2008. 8. 18.
// Если это системное сообщение, используйте цвет скрипта - lancelot 2008. 8. 18.
if(type==CHAT_SYSTEM)
{
ParseInt(param, "SysMsgIndex", SysMsgIndex);
if(SysMsgIndex == -1)
{
Color = GetChatColorByType(SayType); // 시스템 메시지는 5 // system message is 5 // системное сообщение — 5
}
else
{
GetSystemMsgInfo(SysMsgIndex, SysMsgData);
color=SysMsgData.FontColor;
}
switch (SysMsgIndex)
{
/*
// damage
case 2261: //out
case 2262: //in
case 2281: //out transfer pain
// drop
case 28:
case 52: // + adena
case 672:
case 29: // spoil?
case 53: // add n item
case 301: // delete n item
case 608: // party spoil
case 299: // party drop
case 45: // quest EXP
case 331: // quest SP
case 3259:
case 1707: // PC Cafe
case 2393: // PC Cafe
text = CreateCostString(text);
break;
*/
case 3163:
case 3144:
case 2147:
case 2148:
text = text @ "by" @ AttributeEnchantScript.UpdateTargetInfo() $ ".";
break;
case 1589:
class'CommandChannelAPI'.static.RequestCommandChannelInfo();
break;
}
ParseInt(param, "SysType", nTmp);
systemType = ESystemMsgType(nTmp);
}
else
{
Color=GetChatColorByType(SayType);
systemType = SYSTEM_NONE;
}
if (m_KeywordFilterActivate == 1)
foundID = ChatNotificationFilter(text, m_Keyword0, m_Keyword1, m_Keyword2);
//~ debug ("현재 채팅 타입" @ m_chatType.ID @ m_chatType.UI @ type);
//~ debug ("Current chat type" @ m_chatType.ID @ m_chatType.UI @ type);
//~ отладка ("Текущий тип чата" @ m_chatType.ID @ m_chatType.UI @ type);
if( CheckFilter( type, 0, systemType ) )
{
//~ switch (m_chatType.UI)
NormalChat.AddStringToChatWindow( text, color );
//~ debug("Add String Goes Here" @ Type @ systemType);
if (foundID > 0 && m_KeywordFilterSound == 1 && ChatTabCtrl.GetTopIndex()== 0)
PlaySound("ItemSound3.Sys_Chat_Keyword");
}
//if( CheckFilter( type, 2, systemType ) )
if( CheckFilter( type, m_ChatUI[2].ID, systemType ) )
{
PartyChat.AddStringToChatWindow( text, color );
//~ debug("Add String Goes Here" @ Type @ systemType);
//~ debug(text @ color.r @ color.g @color.b);
if (foundID > 0 && m_KeywordFilterSound == 1 && ChatTabCtrl.GetTopIndex()== 2)
PlaySound("ItemSound3.Sys_Chat_Keyword");
}
//if( CheckFilter( type, 3, systemType ) )
if( CheckFilter( type, m_ChatUI[3].ID, systemType ) )
{
ClanChat.AddStringToChatWindow( text, color );
//~ debug("Add String Goes Here" @ Type @ systemType);
if (foundID > 0 && m_KeywordFilterSound == 1 && ChatTabCtrl.GetTopIndex()== 3)
PlaySound("ItemSound3.Sys_Chat_Keyword");
}
//if( CheckFilter( type, 1, systemType ) )
if( CheckFilter( type, m_ChatUI[1].ID, systemType ) )
{
TradeChat.AddStringToChatWindow( text, color );
//~ debug("Add String Goes Here" @ Type @ systemType);
if (foundID > 0 && m_KeywordFilterSound == 1 && ChatTabCtrl.GetTopIndex()== 1)
PlaySound("ItemSound3.Sys_Chat_Keyword");
}
//if( CheckFilter( type, 4, systemType) )
if( CheckFilter( type, m_ChatUI[4].ID, systemType ) )
{
AllyChat.AddStringToChatWindow( text, color );
//~ debug("Add String Goes Here" @ Type @ systemType);
if (foundID > 0 && m_KeywordFilterSound == 1 && ChatTabCtrl.GetTopIndex()== 4)
PlaySound("ItemSound3.Sys_Chat_Keyword");
}
if( CheckFilter( type, 9, systemType ) )
{
SystemMsg.AddStringToChatWindow( text, color );
//~ debug("Add String Goes Here" @ Type @ systemType);
if (foundID > 0 && m_KeywordFilterSound == 1 )
PlaySound("ItemSound3.Sys_Chat_Keyword");
}
//Union Commander Message
if ( type == CHAT_COMMANDER_CHAT && m_NoUnionCommanderMessage == 0 )
{
ShowUnionCommanderMessgage( text );
}
if ( type == CHAT_SCREEN_ANNOUNCE )
{
NormalChat.AddStringToChatWindow( text, color );
ShowAnnounceMessgage( text );
}
}
function string CreateCostString(string sourceString)
{
local string currentSymbol,
finalString,
numberString;
local int i,
lengthNumber;
lengthNumber = 0;
finalString = "";
numberString = "";
for (i = 0; i < Len(sourceString); i++)
{
currentSymbol = Mid(sourceString, i, 1);
if (Asc(currentSymbol) >= 48 && Asc(currentSymbol) <= 57)
{
if (lengthNumber == 0)
{
if (Right(finalString, 1) == " " || finalString == "" || finalString == "(")
{
numberString = numberString $ currentSymbol;
lengthNumber++;
}
else
{
finalString = finalString $ currentSymbol;
}
}
else
{
numberString = numberString $ currentSymbol;
lengthNumber++;
}
}
else
{
if (lengthNumber <= 0)
{
finalString = finalString $ currentSymbol;
}
else
{
if (lengthNumber > 3)
if (currentSymbol == " " || currentSymbol == "." || currentSymbol == "" || currentSymbol == ")")
numberString = MakeCostString(numberString);
finalString = finalString $ numberString;
finalString = finalString $ currentSymbol;
numberString = "";
lengthNumber = 0;
}
}
}
if (lengthNumber > 0) // if system message ends with number
{
if (lengthNumber > 3)
numberString = MakeCostString(numberString);
finalString = finalString $ numberString;
}
return finalString;
}
function ShowUnionCommanderMessgage(string Msg)
{
local string strParam;
local string MsgTemp;
local string MsgTemp2;
local int maxlength;
maxlength = Len(Msg);
if (maxlength > CHAT_UNION_MAX)
{
MsgTemp = Left(Msg, CHAT_UNION_MAX);
MsgTemp2 = Right(Msg, maxlength - CHAT_UNION_MAX);
Msg = MsgTemp $ "#" $ MsgTemp2 ;
}
if (Len(Msg)>0)
{
ParamAdd(strParam, "MsgType", String(1));
ParamAdd(strParam, "WindowType", String(8));
ParamAdd(strParam, "FontType", String(0));
ParamAdd(strParam, "BackgroundType",String(0));
ParamAdd(strParam, "LifeTime", String(5000));
ParamAdd(strParam, "AnimationType", String(1));
ParamAdd(strParam, "Msg", Msg);
ParamAdd(strParam, "MsgColorR", String(255));
ParamAdd(strParam, "MsgColorG", String(150));
ParamAdd(strParam, "MsgColorB", String(149));
ExecuteEvent(EV_ShowScreenMessage, strParam);
}
}
function ShowAnnounceMessgage(string Msg)
{
local string strParam;
local string MsgTemp;
local string MsgTemp2;
local int maxlength;
maxlength = Len(Msg);
if (maxlength > CHAT_UNION_MAX)
{
MsgTemp = Left(Msg, CHAT_UNION_MAX);
MsgTemp2 = Right(Msg, maxlength - CHAT_UNION_MAX);
Msg = MsgTemp $"#"$ MsgTemp2 ;
}
if (Len(Msg)>0)
{
ParamAdd(strParam, "MsgType", String(1));
ParamAdd(strParam, "WindowType", String(8));
ParamAdd(strParam, "FontType", String(1));
ParamAdd(strParam, "BackgroundType",String(0));
ParamAdd(strParam, "LifeTime", String(5000));
ParamAdd(strParam, "AnimationType", String(1));
ParamAdd(strParam, "Msg", Msg);
ParamAdd(strParam, "MsgColorR", String(255));
ParamAdd(strParam, "MsgColorG", String(150));
ParamAdd(strParam, "MsgColorB", String(149));
ExecuteEvent(EV_ShowScreenMessage, strParam);
}
}
function HandleIMEStatusChange()
{
local string texture;
local EIMEType imeType;
imeType = GetCurrentIMELang();
switch( imeType )
{
case IME_KOR:
texture = "L2UI.ChatWnd.IME_kr";
break;
case IME_ENG:
texture = "L2UI.ChatWnd.IME_en";
break;
case IME_JPN:
texture = "L2UI.ChatWnd.IME_jp";
break;
case IME_CHN:
texture = "L2UI.ChatWnd.IME_jp";
break;
case IME_TAIWAN_CHANGJIE:
texture = "L2UI.ChatWnd.IME_tw2";
break;
case IME_TAIWAN_DAYI:
texture = "L2UI.ChatWnd.IME_tw3";
break;
case IME_TAIWAN_NEWPHONETIC:
texture = "L2UI.ChatWnd.IME_tw1";
break;
case IME_CHN_MS:
texture = "L2UI.ChatWnd.IME_cn1";
break;
case IME_CHN_JB:
texture = "L2UI.ChatWnd.IME_cn2";
break;
case IME_CHN_ABC:
texture = "L2UI.ChatWnd.IME_cn3";
break;
case IME_CHN_WUBI:
texture = "L2UI.ChatWnd.IME_cn4";
break;
case IME_CHN_WUBI2:
texture = "L2UI.ChatWnd.IME_cn4";
break;
case IME_THAI:
texture = "L2UI.ChatWnd.IME_th";
break;
//branch
case IME_RUSSIA:
texture = "BranchSys.symbol.IME_ru";
break;
//end of branch
default:
texture = "L2UI.ChatWnd.IME_en";
break;
}
//m_hChatWndLanguageTexture.SetTexture(texture);
}
// systemType은 CHAT_SYSTEM일 경우만 넘겨주면된다
// systemType only needs to be passed if it is CHAT_SYSTEM
// systemType необходимо передавать только в том случае, если это CHAT_SYSTEM
function bool CheckFilter( EChatType type, int windowType, ESystemMsgType systemType )
{
if( !( windowType >= 0 && windowType < CHAT_WINDOW_COUNT ) && windowType != CHAT_WINDOW_SYSTEM )
{
return false;
}
if( type == CHAT_MARKET && m_filterInfo[windowType].bTrade != 0)
{
return true;
}
else if( type == CHAT_NORMAL && m_filterInfo[windowType].bNormal != 0 )
{
return true;
}
else if( type == CHAT_CLAN && m_filterInfo[windowType].bClan != 0 )
{
return true;
}
else if( type == CHAT_PARTY && m_filterInfo[windowType].bParty != 0 )
{
return true;
}
else if( type == CHAT_SHOUT && m_filterInfo[windowType].bShout != 0 )
{
return true;
}
else if( type == CHAT_TELL && m_filterInfo[windowType].bWhisper != 0 )
{
return true;
}
else if( type == CHAT_ALLIANCE && m_filterInfo[windowType].bAlly != 0 )
{
return true;
}
else if( type == CHAT_HERO && m_filterInfo[windowType].bHero != 0 )
{
return true;
}
else if( type == CHAT_DOMINIONWAR && m_filterInfo[windowType].bBattle != 0 )
{
return true;
}
else if( type == CHAT_ANNOUNCE || type == CHAT_CRITICAL_ANNOUNCE || type == CHAT_GM_PET )
{
return true;
}
else if( ( type == CHAT_INTER_PARTYMASTER_CHAT || type == CHAT_COMMANDER_CHAT ) && m_filterInfo[windowType].bUnion != 0 )
{
return true;
}
else if( type == CHAT_SYSTEM )
{
//ShowOnScreenMessage(1,2261,2,0,colorGold,2000, "CHAT_SYSTEM systemType" @ systemType);
if( systemType == SYSTEM_SERVER || systemType == SYSTEM_PETITION )
return true;
// 시스템 메시지 창이면 옵션을 보고
// If it is a system message window, look at the options
// Если это окно системного сообщения, посмотрите параметры
else if( windowType == CHAT_WINDOW_SYSTEM )
{
if( systemType == SYSTEM_DAMAGE )
{
if( GetOptionBool("Game", "SystemMsgWndDamage") )
return true;
else
return false;
}
else if( systemType == SYSTEM_USEITEMS )
{
if( GetOptionBool("Game", "SystemMsgWndExpendableItem" ) )
return true;
else
return false;
}
else if (!b_EnableSystemMessageInSystemChat)
return false;
else if( systemType == SYSTEM_BATTLE || systemType == SYSTEM_NONE )
return true;
return false;
}
else if (b_DisableAllSystemMessagesInCommonChat)
return false;
/*
else if( m_filterInfo[windowType].bSystem != 0 )
{
if( systemType == SYSTEM_DAMAGE )
{
if( m_filterInfo[windowType].bDamage != 0 )
return true;
else
return false;
}
else if( systemType == SYSTEM_USEITEMS )
{
if( m_filterInfo[windowType].bUseItem != 0 )
return true;
else
return false;
}
return true;
}
*/
if( systemType == SYSTEM_DAMAGE )
{
if( m_filterInfo[windowType].bDamage != 0 )
return true;
else
return false;
}
else if( systemType == SYSTEM_USEITEMS )
{
if( m_filterInfo[windowType].bUseItem != 0 )
return true;
else
return false;
}
else if( m_filterInfo[windowType].bSystem != 0 )
return true;
else
return false;
return false;
}
//else if( ( type == CHAT_NPC_NORMAL || type == CHAT_NPC_SHOUT ) && m_NoNpcMessage == 0 ) // NPC 대사 필터링 - 2010.9.8 winkey // NPC dialogue filtering - 2010.9.8 winkey
else if( ( type == CHAT_NPC_NORMAL || type == CHAT_NPC_SHOUT ) && m_filterInfo[windowType].bNpc != 0 ) // NPC 대사 필터링 - 2010.9.8 winkey // by monkini: separate bNpc for each tab
{
return true;
}
return false;
}
// init with chatfilter.ini
function InitStartValues()
{
local bool bCheck;
local int i;
local int tempVal;
local string tempstring;
// enable transparency for ChatWnd and SystemMsgWnd
i = 0;
if (GetINIBool("Game", "TransparencyChat", i, SETTINGSINI))
bCheck = bool(i);
else
bCheck = false;
if (bCheck)
bgTransparency = 60;
else
bgTransparency = 255;
// don't show all system messages in chat channels
i = 0;
if (GetINIBool("Game", "NotShowInChatChannel", i, SETTINGSINI))
b_DisableAllSystemMessagesInCommonChat = bool(i);
else
b_DisableAllSystemMessagesInCommonChat = false;
if (b_DisableAllSystemMessagesInCommonChat)
class'UIAPI_WINDOW'.static.ShowWindow("ChannelChatTab.ChannelChatDisableBox");
else
class'UIAPI_WINDOW'.static.HideWindow("ChannelChatTab.ChannelChatDisableBox");
// turn on/off normal system messages in System Message Window
if (GetINIBool("Game", "SystemMsgWndMessages", i, SETTINGSINI))
b_EnableSystemMessageInSystemChat = bool(i);
else
b_EnableSystemMessageInSystemChat = false;
SetDefaultFilterValue();
for( i=0; i < CHAT_WINDOW_COUNT ; ++i )
{
if( GetINIBool( m_sectionName[i], "system", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bSystem = tempVal;
if( GetINIBool( m_sectionName[i], "chat", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bChat = tempVal;
if( GetINIBool( m_sectionName[i], "normal", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bNormal = tempVal;
if( GetINIBool( m_sectionName[i], "shout", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bShout = tempVal;
if( GetINIBool( m_sectionName[i], "pledge", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bClan = tempVal;
if( GetINIBool( m_sectionName[i], "party", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bParty = tempVal;
if( GetINIBool( m_sectionName[i], "market", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bTrade = tempVal;
if( GetINIBool( m_sectionName[i], "tell", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bWhisper = tempVal;
if( GetINIBool( m_sectionName[i], "damage", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bDamage = tempVal;
if( GetINIBool( m_sectionName[i], "ally", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bAlly = tempVal;
if( GetINIBool( m_sectionName[i], "useitems", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bUseItem = tempVal;
if( GetINIBool( m_sectionName[i], "hero", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bHero = tempVal;
if( GetINIBool( m_sectionName[i], "union", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bUnion = tempVal;
if( GetINIBool( m_sectionName[i], "battle", tempVal, "chatfilter.ini" ) )
m_filterInfo[i].bBattle = tempVal;
}
// 기존의 잘못된 INI를 가진 유저들을 위해 기본 값을 항상 리셋한다.
// Always reset the default value for users with existing incorrect INI.
// Всегда сбрасывать значение по умолчанию для пользователей с неправильным INI.
SetDefaultFilterOn();
//Global Setting
if( GetINIBool( "global", "command", tempVal, "chatfilter.ini" ) )
m_NoUnionCommanderMessage = tempVal;
//if( GetINIBool( "global", "npc", tempVal, "chatfilter.ini" ) ) // NPC 대사 필터링 - 2010.9.8 winkey
// m_NoNpcMessage = tempVal;
if( GetINIBool( "global", "keywordsound", tempVal, "chatfilter.ini" ) )
m_KeywordFilterSound = tempVal;
if( GetINIBool( "global", "keywordactivate", tempVal, "chatfilter.ini" ) )
m_KeywordFilterActivate = tempVal;
if ( GetINIString("global", "Keyword0", tempstring, "chatfilter.ini") )
m_Keyword0 = tempstring;
if ( GetINIString("global", "Keyword1", tempstring, "chatfilter.ini") )
m_Keyword1 = tempstring;
if ( GetINIString("global", "Keyword2", tempstring, "chatfilter.ini") )
m_Keyword2 = tempstring;
}
function SetDefaultFilterOn()
{
m_filterInfo[ CHAT_WINDOW_TRADE ].bTrade = 1;
m_filterInfo[ CHAT_WINDOW_PARTY ].bParty = 1;
m_filterInfo[ CHAT_WINDOW_CLAN ].bClan = 1;
m_filterInfo[ CHAT_WINDOW_ALLY ].bAlly = 1;
}
function SetDefaultFilterValue()
{
m_filterInfo[ 0 ].bSystem = 1;
m_filterInfo[ 0 ].bChat = 1;
m_filterInfo[ 0 ].bNormal = 1;
m_filterInfo[ 0 ].bShout = 1;
m_filterInfo[ 0 ].bClan = 1;
m_filterInfo[ 0 ].bParty = 1;
m_filterInfo[ 0 ].bTrade = 0;
m_filterInfo[ 0 ].bWhisper = 1;
m_filterInfo[ 0 ].bDamage = 1;
m_filterInfo[ 0 ].bAlly = 0;
m_filterInfo[ 0 ].bUseItem = 0;
m_filterInfo[ 0 ].bHero = 0;
m_filterInfo[ 0 ].bUnion = 1;
m_filterInfo[ 0 ].bBattle = 1;
m_filterInfo[ 0 ].bNpc = 1;
m_filterInfo[ 1 ].bSystem = 1;
m_filterInfo[ 1 ].bChat = 1;
m_filterInfo[ 1 ].bNormal = 0;
m_filterInfo[ 1 ].bShout = 1;
m_filterInfo[ 1 ].bClan = 0;
m_filterInfo[ 1 ].bParty = 0;
m_filterInfo[ 1 ].bTrade = 1;
m_filterInfo[ 1 ].bWhisper = 1;
m_filterInfo[ 1 ].bDamage = 1;
m_filterInfo[ 1 ].bAlly = 0;
m_filterInfo[ 1 ].bUseItem = 0;
m_filterInfo[ 1 ].bHero = 0;
m_filterInfo[ 1 ].bUnion = 0;
m_filterInfo[ 1 ].bBattle = 0;
m_filterInfo[ 1 ].bNpc = 0;
m_filterInfo[ 2 ].bSystem = 1;
m_filterInfo[ 2 ].bChat = 1;
m_filterInfo[ 2 ].bNormal = 0;
m_filterInfo[ 2 ].bShout = 1;
m_filterInfo[ 2 ].bClan = 0;
m_filterInfo[ 2 ].bParty = 1;
m_filterInfo[ 2 ].bTrade = 0;
m_filterInfo[ 2 ].bWhisper = 1;
m_filterInfo[ 2 ].bDamage = 1;
m_filterInfo[ 2 ].bAlly = 0;
m_filterInfo[ 2 ].bUseItem = 0;
m_filterInfo[ 2 ].bHero = 0;
m_filterInfo[ 2 ].bUnion = 0;
m_filterInfo[ 2 ].bBattle = 0;
m_filterInfo[ 2 ].bNpc = 0;
m_filterInfo[ 3 ].bSystem = 1;
m_filterInfo[ 3 ].bChat = 1;
m_filterInfo[ 3 ].bNormal = 0;
m_filterInfo[ 3 ].bShout = 1;
m_filterInfo[ 3 ].bClan = 1;
m_filterInfo[ 3 ].bParty = 0;
m_filterInfo[ 3 ].bTrade = 0;
m_filterInfo[ 3 ].bWhisper = 1;
m_filterInfo[ 3 ].bDamage = 1;
m_filterInfo[ 3 ].bAlly = 0;
m_filterInfo[ 3 ].bUseItem = 0;
m_filterInfo[ 3 ].bHero = 0;
m_filterInfo[ 3 ].bUnion = 0;
m_filterInfo[ 3 ].bBattle = 0;
m_filterInfo[ 3 ].bNpc = 0;
m_filterInfo[ 4 ].bSystem = 1;
m_filterInfo[ 4 ].bChat = 1;
m_filterInfo[ 4 ].bNormal = 0;
m_filterInfo[ 4 ].bShout = 1;
m_filterInfo[ 4 ].bClan = 0;
m_filterInfo[ 4 ].bParty = 0;
m_filterInfo[ 4 ].bTrade = 0;
m_filterInfo[ 4 ].bWhisper = 1;
m_filterInfo[ 4 ].bDamage = 1;
m_filterInfo[ 4 ].bAlly = 1;
m_filterInfo[ 4 ].bUseItem = 0;
m_filterInfo[ 4 ].bHero = 0;
m_filterInfo[ 4 ].bUnion = 0;
m_filterInfo[ 4 ].bBattle = 0;
m_filterInfo[ 4 ].bNpc = 0;
m_filterInfo[ 5 ].bSystem = 0;
m_filterInfo[ 5 ].bChat = 0;
m_filterInfo[ 5 ].bNormal = 0;
m_filterInfo[ 5 ].bShout = 0;
m_filterInfo[ 5 ].bClan = 0;
m_filterInfo[ 5 ].bParty = 0;
m_filterInfo[ 5 ].bTrade = 0;
m_filterInfo[ 5 ].bWhisper = 1;
m_filterInfo[ 5 ].bDamage = 0;
m_filterInfo[ 5 ].bAlly = 0;
m_filterInfo[ 5 ].bUseItem = 0;
m_filterInfo[ 5 ].bHero = 1;
m_filterInfo[ 5 ].bUnion = 0;
m_filterInfo[ 5 ].bBattle = 0;
m_filterInfo[ 5 ].bNpc = 0;
m_filterInfo[ 6 ].bSystem = 0;
m_filterInfo[ 6 ].bChat = 0;
m_filterInfo[ 6 ].bNormal = 0;
m_filterInfo[ 6 ].bShout = 0;
m_filterInfo[ 6 ].bClan = 0;
m_filterInfo[ 6 ].bParty = 0;
m_filterInfo[ 6 ].bTrade = 0;
m_filterInfo[ 6 ].bWhisper = 1;
m_filterInfo[ 6 ].bDamage = 0;
m_filterInfo[ 6 ].bAlly = 0;
m_filterInfo[ 6 ].bUseItem = 0;
m_filterInfo[ 6 ].bHero = 0;
m_filterInfo[ 6 ].bUnion = 1;
m_filterInfo[ 6 ].bBattle = 0;
m_filterInfo[ 6 ].bNpc = 0;
m_filterInfo[ 7 ].bSystem = 0;
m_filterInfo[ 7 ].bChat = 0;
m_filterInfo[ 7 ].bNormal = 0;
m_filterInfo[ 7 ].bShout = 1;
m_filterInfo[ 7 ].bClan = 0;
m_filterInfo[ 7 ].bParty = 0;
m_filterInfo[ 7 ].bTrade = 0;
m_filterInfo[ 7 ].bWhisper = 1;
m_filterInfo[ 7 ].bDamage = 0;
m_filterInfo[ 7 ].bAlly = 0;
m_filterInfo[ 7 ].bUseItem = 0;
m_filterInfo[ 7 ].bHero = 0;
m_filterInfo[ 7 ].bUnion = 0;
m_filterInfo[ 7 ].bBattle = 0;
m_filterInfo[ 7 ].bNpc = 0;
m_filterInfo[ 8 ].bSystem = 0;
m_filterInfo[ 8 ].bChat = 0;
m_filterInfo[ 8 ].bNormal = 0;
m_filterInfo[ 8 ].bShout = 1;
m_filterInfo[ 8 ].bClan = 0;
m_filterInfo[ 8 ].bParty = 0;
m_filterInfo[ 8 ].bTrade = 0;
m_filterInfo[ 8 ].bWhisper = 1;
m_filterInfo[ 8 ].bDamage = 0;
m_filterInfo[ 8 ].bAlly = 0;
m_filterInfo[ 8 ].bUseItem = 0;
m_filterInfo[ 8 ].bHero = 0;
m_filterInfo[ 8 ].bUnion = 0;
m_filterInfo[ 8 ].bBattle = 1;
m_filterInfo[ 8 ].bNpc = 0;
//실제 사용되지는 않는 더미 값들
//Dummy values that are not actually used
//Фиктивные значения, которые на самом деле не используются
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bSystem = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bChat = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bNormal = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bShout = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bClan = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bParty = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bTrade = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bWhisper = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bDamage = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bAlly = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bUseItem = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bHero = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bUnion = 0;
m_filterInfo[ CHAT_WINDOW_SYSTEM ].bNpc = 0; // by monokini
//Global Setting
m_NoUnionCommanderMessage = 0;
m_KeywordFilterSound = 0;
m_KeywordFilterActivate = 0;
m_Keyword0 = "";
m_Keyword1 = "";
m_Keyword2 = "";
}
/*
function HandleChatWndStatusChange()
{
//~ local UserInfo userInfo;
//~ GetPlayerInfo( userInfo );
//~ if( userInfo.nClanID > 0 )
//~ ChatTabCtrl.SetDisable(CHAT_WINDOW_CLAN, false);
//~ else
//~ ChatTabCtrl.SetDisable(CHAT_WINDOW_CLAN, true);
//~ if( userInfo.nAllianceID > 0 )
//~ ChatTabCtrl.SetDisable(CHAT_WINDOW_ALLY, false);
//~ else
//~ ChatTabCtrl.SetDisable(CHAT_WINDOW_ALLY, true);
}
*/
function HandleSetString( String a_Param )
{
local int IsAppend;
local string tmpString;
IsAppend = 0;
ParseInt( a_Param, "IsAppend", IsAppend );
if( ParseString( a_Param, "String", tmpString ) )
{
if( IsAppend > 0 )
ChatEditBox.AddString(tmpString);
else
ChatEditBox.SetString(tmpString);
}
}
function HandleSetFocus()
{
if (!ChatEditBox.IsFocused())
ChatEditBox.SetFocus();
saveFocus = true;
}
function OnChangeEditBox( String strID )
{
// local int selectedIndex;
switch( strID )
{
case "ChatEditBox":
if (ChatEditBox.IsFocused()) // click on chat tabs also spawn this event
saveFocus = true;
break;
}
}
function HandleMsnStatus( string param )
{
local string status;
local ButtonHandle handle;
handle = GetButtonHandle("Chatwnd.MessengerBtn");
ParseString( param, "status", status );
if( status == "online" )
handle.SetTexture("L2UI_CH3.Msn.chatting_msn1", "L2UI_CH3.Msn.chatting_msn1_down", "L2UI_CH3.Msn.chatting_msn1_over");
else if( status == "berightback" || status == "idle" || status == "away" || status == "lunch" )
handle.SetTexture("L2UI_CH3.Msn.chatting_msn2", "L2UI_CH3.Msn.chatting_msn2_down", "L2UI_CH3.Msn.chatting_msn2_over");
else if( status == "busy" || status == "onthephone" )
handle.SetTexture("L2UI_CH3.Msn.chatting_msn3", "L2UI_CH3.Msn.chatting_msn3_down", "L2UI_CH3.Msn.chatting_msn3_over");
else if( status == "offline" || status == "invisible" )
handle.SetTexture("L2UI_CH3.Msn.chatting_msn4", "L2UI_CH3.Msn.chatting_msn4_down", "L2UI_CH3.Msn.chatting_msn4_over");
else if( status == "none" )
handle.SetTexture("L2UI_CH3.Msn.chatting_msn5", "L2UI_CH3.Msn.chatting_msn5_down", "L2UI_CH3.Msn.chatting_msn5_over");
}
function EChatType GetChatTypeByTabIndex(int Index)
{
local EChatType Type;
switch( m_chatType.ID )
{
case 0:
Type = CHAT_NORMAL;
break;
case 1:
Type = CHAT_MARKET;
break;
case 2:
Type = CHAT_PARTY;
break;
case 3:
Type = CHAT_CLAN;
break;
case 4:
Type = CHAT_ALLIANCE;
break;
case 5:
Type = CHAT_HERO;
break;
case 6:
Type =CHAT_INTER_PARTYMASTER_CHAT;
break;
case 7:
Type = CHAT_SHOUT;
break;
case 8:
Type = CHAT_DOMINIONWAR;
break;
default:
break;
}
return Type;
}
function OnLButtonDown (WindowHandle a_WindowHandle, int X, int Y)
{
if (contextOwner && wnd_ContextMenuWnd.isShowWindow())
{
wnd_ContextMenuWnd.HideWindow();
}
saveFocus = false;
}
function OnRButtonUp( WindowHandle a_WindowHandle, int X, int Y )
{
local Rect ContextMenuRect;
local Rect ChatWndRect;;
local int userX;
local int userY;
local int playerID;
playerID = class'UIDATA_PLAYER'.static.GetplayerID();
if (contextID > 0 && contextID != playerID)
{
contextOwner = true;
if (wnd_ContextMenuWnd.isShowWindow())
{
wnd_ContextMenuWnd.HideWindow();
}
GetCurrentResolution(userX, userY);
ChatWndRect = m_hChatWnd.GetRect();
ContextMenuRect = wnd_ContextMenuWnd.GetRect();
y = userY - y;
if (y > ContextMenuRect.nHeight + 45) // 45 = visota editbox + tab
{
wnd_ContextMenuWnd.SetAnchor("ChatWnd", "TopLeft", "TopLeft", x + 30, ChatWndRect.nHeight - y); // 30 dlya udobstva
}
else
{
wnd_ContextMenuWnd.SetAnchor("ChatWnd", "BottomLeft", "BottomLeft", x + 30, 35 - y);
}
script_ContextMenuWnd.SummonContextMenu(1, contextID, contextName);
contextID = -1;
contextName = "";
}
}
function HandleTextLinkRButtonClick( string Param )
{
local ETextLinkType eType;
local int Type;
local int ID;
local string Title;
// local UserInfo uInfo;
ParseInt( Param, "Type", Type );
ParseInt( Param, "ID", ID );
ParseString( Param, "Title", Title );
eType = ETextLinkType( Type );
if( eType == TLT_User )
{
// if (GetUserInfo(ID, uInfo))
// {
// if (!uInfo.bNpc)
// {
contextID = ID;
contextName = Title;
// }
// }
}
}
//TextLink L click
function HandleTextLinkLButtonClick( string Param )
{
local ETextLinkType eType;
local int Type;
local int ID;
local string Title;
local string LinkName;
local UserInfo uInfo;
ParseInt( Param, "Type", Type );
ParseInt( Param, "ID", ID );
ParseString( Param, "Title", Title );
ParseString( Param, "LinkName", LinkName );
eType = ETextLinkType( Type );
if( eType == TLT_User )
{
if ( IsKeyDown(IK_Alt) )
{
if ( GetUserInfo(ID, uInfo) )
{
RequestTargetUser(ID);
Class'QuestAPI'.static.SetQuestTargetInfo(true,true,true,uInfo.Name,uInfo.Loc,-1);
}
}
else
{
if( Left( Title, 2 ) == "->" )
Title = Mid( Title, 2 );
if ( IsKeyDown(IK_Shift) )
RequestInviteParty(Title);
else
SetChatMessage( "\"" $ Title $ " " );
}
}
}
function OnMouseOver (WindowHandle a_WindowHandle )
{
switch (a_WindowHandle)
{
case tex_DetectBodyChatWnd:
if (ChatEditBox.IsFocused())
saveFocus = true;
else
saveFocus = false;
tex_DetectBodyChatWnd.HideWindow();
wnd_ChatDetectWnd.ShowWindow();
tex_DetectRightChatWnd.SetFocus();
tex_DetectUpChatWnd.SetFocus();
if (saveFocus)
ChatEditBox.SetFocus();
tex_ChatWndHeadTex.SetAlpha(255, 0.4f);
tex_ChatWndBodyTex.SetAlpha(255, 0.4f);
tex_ChatWndBottomTex.SetAlpha(255, 0.4f);
tex_ChatWndBottomTex1.SetAlpha(255, 0.4f);
break;
case tex_DetectRightChatWnd:
case tex_DetectUpChatWnd:
if (ChatEditBox.IsFocused())
saveFocus = true;
tex_DetectBodyChatWnd.ShowWindow();
wnd_ChatDetectWnd.HideWindow();
if (!saveFocus)
ChatEditBox.ReleaseFocus();
else
ChatEditBox.SetFocus();
tex_ChatWndHeadTex.SetAlpha(bgTransparency, 0.4f);
tex_ChatWndBodyTex.SetAlpha(bgTransparency, 0.4f);
tex_ChatWndBottomTex.SetAlpha(bgTransparency, 0.4f);
tex_ChatWndBottomTex1.SetAlpha(bgTransparency, 0.4f);
break;
}
}
function HandleDominionWarChannelSet( string param )
{
local int DominionWarChannelSet;
ParseInt(param, "DominionWarChannelSet", DominionWarChannelSet);
if (DominionWarChannelSet == 1)
{
AddSystemMessage(2445);
}
else
{
AddSystemMessage(2446);
}
}
function ChangeTabChannel(int ChannelIndex)
{
switch (ChannelIndex)
{
case 1:
ChatTabCtrl.SetButtonName( m_chatType.UI, GetSystemString(355));
//~ SetINIInt("global", "TabIndex1", ChannelIndex, "chatfilter.ini");
//~ m_ChatUI[8].ID = 1;
//~ m_ChatUI[].UI = m_chatType.UI;
//~ AssignCurrentChatTypeID(ChannelIndex, m_chatType.UI);
break;
case 2:
ChatTabCtrl.SetButtonName( m_chatType.UI, GetSystemString(188));
//~ SetINIInt("global", "TabIndex2", 2, "chatfilter.ini");
break;
case 3:
ChatTabCtrl.SetButtonName( m_chatType.UI, GetSystemString(128));
//~ SetINIInt("global", "TabIndex3", 3, "chatfilter.ini");
break;
case 4:
ChatTabCtrl.SetButtonName( m_chatType.UI, GetSystemString(559));
//~ SetINIInt("global", "TabIndex4", 4, "chatfilter.ini");
break;
case 5:
ChatTabCtrl.SetButtonName( m_chatType.UI, GetSystemString(1961));
//~ SetINIInt("global", "TabIndex5", 5, "chatfilter.ini");
break;
case 6:
ChatTabCtrl.SetButtonName( m_chatType.UI, GetSystemString(1962));
//~ SetINIInt("global", "TabIndex6", 6, "chatfilter.ini");
break;
case 7:
ChatTabCtrl.SetButtonName( m_chatType.UI, GetSystemString(1963));
//~ SetINIInt("global", "TabIndex7", 7, "chatfilter.ini");
break;
case 8:
ChatTabCtrl.SetButtonName( m_chatType.UI, GetSystemString(1964));
//~ SetINIInt("global", "TabIndex8", 8, "chatfilter.ini");
break;
}
//~ SetINIInt("global", "TabIndex1", ChannelIndex, "chatfilter.ini");
AssignCurrentChatTypeID(ChannelIndex, m_chatType.UI);
SetCurrentAssignedChatType2Ini(ChannelIndex, m_chatType.UI);
}
function SetCurrentAssignedChatType2Ini(int ChannelIndex, int ChatType)
{
//~ local int i;
//~ for (i=0;i<5;i++)
//~ {
SetINIInt("global", "TabIndex" $ string(ChatType) , ChannelIndex, "chatfilter.ini");
//~ }
}
function GetAllcurrentAssignedChatTypeID()
{
local int i;
local int index;
SetINIInt("global", "TabIndex0", 0, "chatfilter.ini");
//Reset Procedure
for (i=0;i<5;i++)
{
m_ChatUI[i].ID = i;
m_ChatUI[i].UI = i;
}
//
for (i=1;i<5;i++)
{
GetINIInt( "global", "TabIndex" $ string(i), index, "chatfilter.ini" );
if (index > 0 && i > 0)
{
m_ChatUI[i].UI = i;
m_ChatUI[i].ID = index;
m_chatType.UI = i;
ChangeTabChannel(index);
}
else
{
//~ INI에 0으로 들어 있으면 기본값으로 세팅;
//~ If INI contains 0, set to default value;
//~ Если INI содержит 0, устанавливаем значение по умолчанию;
AssignCurrentChatTypeID (i, i);
switch (i)
{
case 1:
m_ChatUI[1].ID = 1;
ChatTabCtrl.SetButtonName( 1, GetSystemString(355));
SetINIInt("global", "TabIndex1", 1, "chatfilter.ini");
m_chatType.UI = i;
ChangeTabChannel(1);
break;
case 2:
m_ChatUI[2].ID = 2;
ChatTabCtrl.SetButtonName( 2, GetSystemString(188));
SetINIInt("global", "TabIndex2", 2, "chatfilter.ini");
m_chatType.UI = i;
ChangeTabChannel(2);
break;
case 3:
m_ChatUI[3].ID = 3;
ChatTabCtrl.SetButtonName( 3, GetSystemString(128));
SetINIInt("global", "TabIndex3", 3, "chatfilter.ini");
m_chatType.UI = i;
ChangeTabChannel(3);
break;
case 4:
m_ChatUI[4].ID = 4;
ChatTabCtrl.SetButtonName( 4, GetSystemString(559));
SetINIInt("global", "TabIndex4", 4, "chatfilter.ini");
m_chatType.UI = i;
ChangeTabChannel(4);
break;
}
}
}
}
function AssignCurrentChatTypeID (int ChatTypeID, int ChatTypeUI)
{
local int i;
for (i=1;i<5;i++)
{
if (m_ChatUI[i].UI == ChatTypeUI)
{
m_ChatUI[i].ID = ChatTypeID;
break;
}
}
}
function int GetCurrentChatTypeID (int ChatTypeUI)
{
local int i;
for (i=0;i<5;i++)
{
if (m_ChatUI[i].UI == ChatTypeUI)
{
return m_ChatUI[i].ID;
}
}
return 0;
}
function SetChatTransparency(int valueTransparency)
{
local SystemMsgWnd script_SystemMsgWnd;
bgTransparency = valueTransparency;
tex_ChatWndHeadTex.SetAlpha(bgTransparency);
tex_ChatWndBodyTex.SetAlpha(bgTransparency);
tex_ChatWndBottomTex.SetAlpha(bgTransparency);
tex_ChatWndBottomTex1.SetAlpha(bgTransparency);
script_SystemMsgWnd = SystemMsgWnd(GetScript("SystemMsgWnd"));
script_SystemMsgWnd.SetChatTransparency(bgTransparency);
}
function OnDefaultPosition()
{
ChatTabCtrl.MergeTab(CHAT_WINDOW_TRADE);
ChatTabCtrl.MergeTab(CHAT_WINDOW_PARTY);
ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
ChatTabCtrl.MergeTab(CHAT_WINDOW_ALLY);
ChatTabCtrl.SetTopOrder(0, true);
HandleTabClick("ChatTabCtrl0");
}
defaultproperties
{
}
class MagicSkillDrawerWnd extends UICommonAPI;
const MIN_ENCHANT_LEVEL = 1;
const MAX_ENCHANT_LEVEL = 30;
const SKILL_ENCHANT_NUM = 10;
const ENCHANT_NORMAL = 0; // 보통 인챈트
const ENCHANT_SAFETY = 1; // 세이프티 인챈트
const ENCHANT_UNTRAIN = 2; // 인챈트 언트레인
const ENCHANT_ROOT_CHANGE = 3; // 인챈트 루트 체인지
const ENCHANT_MATERIAL_NUM = 3; // 재료의 수
const ARROW_NUM = 9; // 아이콘 사이에 들어가는 텍스쳐 숫자
const DIALOGID_ResearchClick = 0;
var String m_WindowName;
var WindowHandle Me;
var WindowHandle MagicskillGuideWnd;
var TextureHandle ResearchSkill;
var TextureHandle SelectSkill;
var TextureHandle ResearchSkillArrow_Right;
var TextureHandle ResearchSkillArrow_Left;
var TextureHandle ResearchSkillArrow_Down;
var TextureHandle ResearchSkillArrow_Up;
var ItemWindowHandle ResearchSkillIcon;
var TextureHandle ResearchSkillIconSlotBg;
var TextBoxHandle ResearchSkillTitle;
var TextBoxHandle ResearchSkillName;
var TextBoxHandle ResearchSkillRoot;
var TextBoxHandle ResearchSkillDesc;
var TextBoxHandle ResearchSkillLv;
var TextBoxHandle ResearchSkillRootLv;
var ItemWindowHandle ExpectationSkillIcon;
var TextureHandle ExpectationSkillIconSlotBg;
var TextBoxHandle ExpectationSkillTitle;
var TextBoxHandle ExpectationSkillName;
var TextBoxHandle ExpectationSkillRoot;
var TextBoxHandle ExpectationSkillDesc;
var TextBoxHandle ExpectationSkillLv;
var TextBoxHandle ExpectationSkillRootLv;
var TextBoxHandle SucessProbablity;
var ButtonHandle ResearchRoot_1[SKILL_ENCHANT_NUM];
var ButtonHandle ResearchRoot_2[SKILL_ENCHANT_NUM];
var ButtonHandle ResearchRoot_3[SKILL_ENCHANT_NUM];
var int ResearchRoot2ID[SKILL_ENCHANT_NUM];
var int ResearchRoot2Level[SKILL_ENCHANT_NUM];
var string ResearchRoot2SkillIconName[SKILL_ENCHANT_NUM];
var string ResearchRoot2SkillName[SKILL_ENCHANT_NUM];
var TextBoxHandle ResearchRootTitle;
var TextureHandle ResearchRootSlotBg;
var CheckBoxHandle SafeEnchant;
var TextBoxHandle EnchantMaterialTitle;
var TextBoxHandle EnchantMaterialName[ENCHANT_MATERIAL_NUM];
var TextBoxHandle EnchantMaterialInfo[ENCHANT_MATERIAL_NUM];
var ItemWindowHandle EnchantMaterialIcon[ENCHANT_MATERIAL_NUM];
var TextureHandle EnchantMaterialIconBg[ENCHANT_MATERIAL_NUM];
var TextBoxHandle ResearchGuideTitle;
var TextBoxHandle ResearchGuideDesc;
//var CharacterViewportWindowHandle ObjectViewport;
var ButtonHandle btnGuide;
var ButtonHandle btnResearch;
var ButtonHandle btnClose;
var TextureHandle ResearchSkillBg;
var TextureHandle ExpectationSkillBg;
var TextureHandle ResearchRootBg;
var TextureHandle ResearchMaterialIconBg;
var TextureHandle ResearchGuideBg;
var TextBoxHandle txtMySpStr;
var TextBoxHandle txtMySp;
var TextureHandle MyAdenaIcon;
var TextBoxHandle txtMyAdenaStr;
var TextBoxHandle txtMyAdena;
//var AnimTextureHandle EnchantProgressAnim;
var int curEnchantType;
var int EnchantState; //현재 진행 중인 인챈트 기능 저장
var TextureHandle ResearchSkill_2[SKILL_ENCHANT_NUM];
var TextureHandle ResearchRoot_Select_1[SKILL_ENCHANT_NUM];
var TextureHandle ResearchRoot_Select_2[SKILL_ENCHANT_NUM];
var TextureHandle ResearchRoot_Select_3[SKILL_ENCHANT_NUM];
var TextureHandle ResearchSkill_UpArrow_2[SKILL_ENCHANT_NUM];
var TextureHandle ResearchSkill_DownArrow_2[SKILL_ENCHANT_NUM];
var TextureHandle ResearchSkill_LeftArrow_2[SKILL_ENCHANT_NUM];
var TextureHandle ResearchSkill_RightArrow_2[SKILL_ENCHANT_NUM];
var TextureHandle ResearchSkill_Right_2[ARROW_NUM];
var TextureHandle ResearchSkill_Left_2[ARROW_NUM];
//var CharacterViewportWindowHandle m_hVpAgathion;
var int enableTrain;
var int enableunTrain;
var int ArrowPositionStart;
var int ArrowPositionEnd;
//var int RootAfterFail;
var int IndexAfterFail;
// 현재 상태의 스킬 정보
var int curSkillID;
var int curLevel;
// 현재 내가 인챈트,루트,언트레인 하고싶은 스킬의 정보
var int curWantedSkillID;
var int curWantedLevel;
var int saveRoute;
//var int countOfRoutes;
//AUTO_SKILL_ENCHANT_START
var TextureHandle texAuto;
var TextureHandle texSpeed;
var ButtonHandle btnStart;
var ButtonHandle btnStop;
//var ComboBoxHandle routeBox;
var EditBoxHandle desiredValue;
var TextBoxHandle txtValue;
var TextBoxHandle txtSpeed;
var SliderCtrlHandle Slider0;
var int TimerDelay;
//var int TempCheck;
var int needAdena;
var int needCodex;
var int needMastery;
var int needSP;
var bool isMastery;
var bool isAuto;
var int value;
var int CodexValue, MasteryValue, OblivionValue, DisciplineValue;
//AUTO_SKILL_ENCHANT_END
function OnLoad()
{
m_WindowName="MagicSkillDrawerWnd";
Initialize();
OnLoadAutoEnch();
}
function OnLoadAutoEnch()
{
texAuto = GetTextureHandle( "MagicSkillDrawerWnd.texAuto" );
texSpeed = GetTextureHandle( "MagicSkillDrawerWnd.texSpeed" );
btnStart = GetButtonHandle( "MagicSkillDrawerWnd.btnStart" );
btnStop = GetButtonHandle( "MagicSkillDrawerWnd.btnStop" );
//routeBox = GetComboBoxHandle( "MagicSkillDrawerWnd.routesBox" );
desiredValue = GetEditBoxHandle( "MagicSkillDrawerWnd.desiredEnch" );
txtValue = GetTextBoxHandle( "MagicSkillDrawerWnd.txtValue" );
txtSpeed = GetTextBoxHandle( "MagicSkillDrawerWnd.txtSpeed" );
Slider0 = GetSliderCtrlHandle( "MagicSkillDrawerWnd.Slider0" );
HideAutoEnchItems();
// routeBox.Clear();
// routeBox.SetSelectedNum(0);
isAuto = false;
// TempCheck = -1;
// RootAfterFail= -1;
IndexAfterFail = -1;
TimerDelay = 250;
txtSpeed.SetText( string( TimerDelay ) );
}
function OnShow()
{
saveRoute= -1;
}
function int GetSpeedFromSliderTick( int iTick )
{
local int ReturnSpeed;
switch( iTick )
{
case 0 :
ReturnSpeed = 250;
break;
case 1 :
ReturnSpeed = 350;
break;
case 2 :
ReturnSpeed = 500;
break;
case 3 :
ReturnSpeed = 750;
break;
case 4 :
ReturnSpeed = 1000;
break;
case 5 :
ReturnSpeed = 1250;
break;
case 6 :
ReturnSpeed = 1500;
break;
case 7 :
ReturnSpeed = 2000;
break;
}
return ReturnSpeed;
}
function OnModifyCurrentTickSliderCtrl( string strID, int iCurrentTick )
{
local int Speed;
Speed = GetSpeedFromSliderTick( iCurrentTick );
switch(strID)
{
case "Slider0" :
TimerDelay = Speed;
txtSpeed.SetText( string( Speed ) );
break;
}
}
//function OnComboBoxItemSelected (string strID, int Index)
//{
// switch (strID)
// {
// case "routesBox":
// IndexAfterFail = Index;
// OnRootChoose( Index );
// break;
// }
//}
//function OnRootChoose( int idx )
//{
// TempCheck = idx;
// IndexAfterFail = idx;
// OnResearchRoot_2Click( idx );
// ExtraClick2( idx );
//}
//function ExtraClick2( int id )
//{
// if( enableTrain == 1 && enableUnTrain == 0 )
// {
//
// ResetCoverArrow();
/// ResetSideArrow();
// SelectSkill.ClearAnchor();
// SelectSkill.SetAnchor( "MagicSkillDrawerWnd", "TopLeft", "TopLeft", 13 + 43 * id, 288 );
// SelectSkill.ShowWindow();
// }
// else
// {
// ResetCoverArrow();
// SelectSkill.ClearAnchor();
// SelectSkill.SetAnchor( "MagicSkillDrawerWnd", "TopLeft", "TopLeft", 13 + 43 * id, 288 );
// SelectSkill.ShowWindow();
// ArrowPositionEnd = id;
// ResetSideArrow();
// DrawArrow ();
// }
//}
function ShowAutoEnchItems()
{
ResearchRootSlotBg.SetWindowSize( 304, 132 );
texAuto.ShowWindow();
texSpeed.ShowWindow();
btnStart.ShowWindow();
// routeBox.ShowWindow();
desiredValue.ShowWindow();
txtValue.ShowWindow();
txtSpeed.ShowWindow();
Slider0.ShowWindow();
}
function HideAutoEnchItems()
{
ResearchRootSlotBg.SetWindowSize( 431, 132 );
texAuto.HideWindow();
texSpeed.HideWindow();
btnStart.HideWindow();
btnStop.HideWindow();
// routeBox.HideWindow();
desiredValue.HideWindow();
txtValue.HideWindow();
txtSpeed.HideWindow();
Slider0.HideWindow();
}
function OnRegisterEvent()
{
RegisterEvent( EV_SkillEnchantInfoWndShow );
RegisterEvent( EV_SkillEnchantInfoWndAddSkill );
// RegisterEvent( EV_SkillEnchantInfoWndHide );
RegisterEvent( EV_SkillEnchantInfoWndAddExtendInfo );
RegisterEvent( EV_SkillEnchantResult );
RegisterEvent( EV_DialogOK );
RegisterEvent( EV_DialogCancel );
RegisterEvent(EV_AITimer); // by monokini for switch window style
}
function Initialize()
{
local int i;
Me = GetWindowHandle( m_WindowName );
MagicskillGuideWnd = GetWindowHandle( "MagicskillGuideWnd");
ResearchSkill = GetTextureHandle ( m_WindowName$".ResearchSkill" );
SelectSkill = GetTextureHandle ( m_WindowName$".SelectSkill" );
ResearchSkillArrow_Right = GetTextureHandle ( m_WindowName$".ResearchSkillArrow_Right" );
ResearchSkillArrow_Left = GetTextureHandle ( m_WindowName$".ResearchSkillArrow_Left" );
ResearchSkillArrow_Down = GetTextureHandle ( m_WindowName$".ResearchSkillArrow_Down" );
ResearchSkillArrow_Up = GetTextureHandle ( m_WindowName$".ResearchSkillArrow_Up" );
ResearchSkillIcon = GetItemWindowHandle ( m_WindowName$".ResearchSkillIcon" );
ResearchSkillIconSlotBg = GetTextureHandle ( m_WindowName$".ResearchSkillIconSlotBg" );
ResearchSkillTitle = GetTextBoxHandle ( m_WindowName$".ResearchSkillTitle" );
ResearchSkillName = GetTextBoxHandle ( m_WindowName$".ResearchSkillName" );
ResearchSkillRoot = GetTextBoxHandle ( m_WindowName$".ResearchSkillRoot" );
ResearchSkillDesc = GetTextBoxHandle ( m_WindowName$".ResearchSkillDesc" );
ResearchSkillLv = GetTextBoxHandle( m_WindowName$".ResearchSkillLv" );
ResearchSkillRootLv = GetTextBoxHandle( m_WindowName$".ResearchSkillRootLv" );
ExpectationSkillIcon = GetItemWindowHandle ( m_WindowName$".ExpectationSkillIcon" );
ExpectationSkillIconSlotBg = GetTextureHandle ( m_WindowName$".ExpectationSkillIconSlotBg" );
ExpectationSkillTitle = GetTextBoxHandle ( m_WindowName$".ExpectationSkillTitle" );
ExpectationSkillName = GetTextBoxHandle ( m_WindowName$".ExpectationSkillName" );
ExpectationSkillRoot = GetTextBoxHandle ( m_WindowName$".ExpectationSkillRoot" );
ExpectationSkillDesc = GetTextBoxHandle ( m_WindowName$".ExpectationSkillDesc" );
ExpectationSkillLv = GetTextBoxHandle ( m_WindowName$".ExpectationSkillLv" );
ExpectationSkillRootLv = GetTextBoxHandle ( m_WindowName$".ExpectationSkillRootLv" );
SucessProbablity = GetTextBoxHandle ( m_WindowName$".SucessProbablity" );
for (i =0; i < SKILL_ENCHANT_NUM; i++)
{
ResearchRoot_1[i] = GetButtonHandle(m_WindowName$".ResearchRoot_1_"$string(i));
ResearchRoot_2[i] = GetButtonHandle(m_WindowName$".ResearchRoot_2_"$string(i));
ResearchRoot_3[i] = GetButtonHandle(m_WindowName$".ResearchRoot_3_"$string(i));
ResearchSkill_2[i] = GetTextureHandle(m_WindowName$".ResearchSkill_2_"$string(i));
ResearchRoot_Select_1[i] = GetTextureHandle(m_WindowName$".ResearchRoot_Select_1_"$string(i));
ResearchRoot_Select_2[i] = GetTextureHandle(m_WindowName$".ResearchRoot_Select_2_"$string(i));
ResearchRoot_Select_3[i] = GetTextureHandle(m_WindowName$".ResearchRoot_Select_3_"$string(i));
ResearchSkill_UpArrow_2[i] = GetTextureHandle(m_WindowName$".ResearchSkill_UpArrow_2_"$string(i));
ResearchSkill_DownArrow_2[i] = GetTextureHandle(m_WindowName$".ResearchSkill_DownArrow_2_"$string(i));
}
for (i = 0; i < ARROW_NUM ; i++)
{
ResearchSkill_Right_2[i] = GetTextureHandle(m_WindowName$".ResearchSkill_Right_2_"$string(i));
ResearchSkill_Left_2[i] = GetTextureHandle(m_WindowName$".ResearchSkill_Left_2_"$string(i));
ResearchSkill_LeftArrow_2[i] = GetTextureHandle(m_WindowName$".ResearchSkill_LeftArrow_2_"$string(i));
ResearchSkill_RightArrow_2[i] = GetTextureHandle(m_WindowName$".ResearchSkill_RightArrow_2_"$string(i));
}
ResearchRootTitle = GetTextBoxHandle ( m_WindowName$".ResearchRootTitle" );
ResearchRootSlotBg = GetTextureHandle ( m_WindowName$".ResearchRootSlotBg" );
SafeEnchant = GetCheckBoxHandle ( m_WindowName$".SafeEnchant" );
EnchantMaterialTitle = GetTextBoxHandle ( m_WindowName$".EnchantMaterialTitle" );
for (i = 0; i < ENCHANT_MATERIAL_NUM; i++)
{
EnchantMaterialName[i] = GetTextBoxHandle ( m_WindowName$".EnchantMaterialName_"$string(i) );
EnchantMaterialInfo[i] = GetTextBoxHandle ( m_WindowName$".EnchantMaterialInfo_"$string(i) );
EnchantMaterialIcon[i] = GetItemWindowHandle ( m_WindowName$".EnchantMaterialIcon_"$string(i) );
EnchantMaterialIconBg[i] = GetTextureHandle ( m_WindowName$".EnchantMaterialIconBg_"$string(i) );
}
ResearchGuideTitle = GetTextBoxHandle ( m_WindowName$".ResearchGuideTitle" );
ResearchGuideDesc = GetTextBoxHandle ( m_WindowName$".ResearchGuideDesc" );
//ObjectViewport = GetCharacterViewportWindowHandle ( m_WindowName$".ObjectViewport" );
btnGuide = GetButtonHandle ( m_WindowName$".btnGuide" );
btnResearch = GetButtonHandle ( m_WindowName$".btnResearch" );
btnClose = GetButtonHandle ( m_WindowName$".btnClose" );
ResearchSkillBg = GetTextureHandle ( m_WindowName$".ResearchSkillBg" );
ExpectationSkillBg = GetTextureHandle ( m_WindowName$".ExpectationSkillBg" );
ResearchRootBg = GetTextureHandle ( m_WindowName$".ResearchRootBg" );
ResearchMaterialIconBg = GetTextureHandle ( m_WindowName$".ResearchMaterialIconBg" );
ResearchGuideBg = GetTextureHandle ( m_WindowName$".ResearchGuideBg" );
txtMySpStr = GetTextBoxHandle ( m_WindowName$".txtMySpStr" );
txtMySp = GetTextBoxHandle ( m_WindowName$".txtMySp" );
txtMyAdenaStr = GetTextBoxHandle ( m_WindowName$".txtMyAdenaStr" );
txtMyAdena = GetTextBoxHandle ( m_WindowName$".txtMyAdena" );
MyAdenaIcon = GetTextureHandle ( m_WindowName$".MyAdenaIcon" );
//EnchantProgressAnim = GetAnimTextureHandle ( m_WindowName$".EnchantProgressAnim" );
// m_hVpAgathion = GetCharacterViewportWindowHandle(m_WindowName$".agathionViewport");
//EnchantProgressAnim.hidewindow();
btnGuide.HideWindow();
}
//function OnDrawerShowFinished()
//{
// m_hVpAgathion.ShowNPC(0.5);
//}//
//function HideAgathion()
//{
// m_hVpAgathion.HideNPC(0.5);
//}
function DrawArrow () //int startPosition, int EndPosition
{
local int i;
local int s_P;
local int e_p;
s_P = ArrowPositionStart;
e_p = ArrowPositionEnd;
if (curLevel > 100)
{
if ( ArrowPositionStart < ArrowPositionEnd)
{
for (i = s_P; i < e_p; i++)
{
ResearchSkill_Right_2[i].ShowWindow();
}
ResearchSkill_RightArrow_2[ e_p -1 ].ShowWindow();
} else if ( ArrowPositionStart > ArrowPositionEnd)
{
for (i = e_p; i < s_P; i++)
{
ResearchSkill_Left_2[ i ].ShowWindow();
}
ResearchSkill_LeftArrow_2[ e_p ].ShowWindow();
}
}
}
function ResetCoverArrow()
{
local int i;
for (i=0;i<ARROW_NUM;i++)
{
ResearchSkill_Right_2[i].HideWindow();
ResearchSkill_Left_2[i].HideWindow();
//ResearchSkill_2[i].HideWindow(); // 강화 목록의 현재 선택되어 있는 아이콘을 안지우기위해 주석 처리
}
}
function ResetSideArrow()
{
local int i;
for (i=0;i<SKILL_ENCHANT_NUM;i++)
{
ResearchSkill_UpArrow_2[i].HideWindow();
ResearchSkill_DownArrow_2[i].HideWindow();
}
for (i = 0; i < ARROW_NUM ; i++)
{
ResearchSkill_RightArrow_2[i].HideWindow();
ResearchSkill_LeftArrow_2[i].HideWindow();
}
}
function OnClickButton( string Name )
{
local int rootID;
local ItemInfo infoCheck;
if ( InStr( Name ,"ResearchRoot_1_") > -1 )
{
IndexAfterFail = int(Right(Name, 1));
rootID = int(Right(Name, 1));
if (!isAuto) saveRoute = IndexAfterFail;
OnResearchRoot_1Click(rootID);
SelectSkill.ClearAnchor();
SelectSkill.SetAnchor( "MagicSkillDrawerWnd", "TopLeft", "TopLeft", 13 + 43 * rootID, 245 );
SelectSkill.ShowWindow();
ResetSideArrow();
ResetCoverArrow();
ResearchSkill_UpArrow_2[rootID].ShowWindow();
}
// //수정해야함
if ( InStr( Name ,"ResearchRoot_2_") > -1 )
{
rootID = int(Right(Name, 1));
OnResearchRoot_2Click(rootID);
if( enableTrain == 1 && enableUnTrain == 0 )
{
ResetCoverArrow();
ResetSideArrow();
SelectSkill.ClearAnchor();
SelectSkill.SetAnchor( "MagicSkillDrawerWnd", "TopLeft", "TopLeft", 13 + 43 * rootID, 288 );
SelectSkill.ShowWindow();
}else
{
ResetCoverArrow();
SelectSkill.ClearAnchor();
SelectSkill.SetAnchor( "MagicSkillDrawerWnd", "TopLeft", "TopLeft", 13 + 43 * rootID, 288 );
SelectSkill.ShowWindow();
ArrowPositionEnd = rootID;
ResetSideArrow();
DrawArrow ();
}
//ResearchSkill_Right_Test_2_0.ShowWindow();
//SelectSkill.Showwindow();
//ResearchSkill.MoveTo(13 + 43 * rootID, 261);
}
if ( InStr( Name ,"ResearchRoot_3_") > -1 )
{
rootID = int(Right(Name, 1));
OnResearchRoot_3Click(rootID);
SelectSkill.ClearAnchor();
SelectSkill.SetAnchor( "MagicSkillDrawerWnd", "TopLeft", "TopLeft", 13 + 43 * rootID, 331 );
SelectSkill.ShowWindow();
ResetSideArrow();
ResetCoverArrow();
ResearchSkill_DownArrow_2[rootID].ShowWindow();
// debug("rootid"$rootID);
}
switch( Name )
{
case "btnGuide":
OnbtnGuideClick();
break;
case "btnResearch":
OnbtnResearchClick( );
break;
case "btnClose":
OnbtnCloseClick( );
break;
case "btnAuto":
if ( ResearchSkillIcon.GetItem(0, infoCheck) )
{
if ( texAuto.IsShowWindow() )
{
HideAutoEnchItems();
IndexAfterFail = -1;
}
else
{
ShowAutoEnchItems();
}
}
else
{
DialogShow( DIALOG_Modalless, DIALOG_OK, "Choose skill to enchant!" );
}
break;
case "btnStart":
isAuto = true;
OnClickStart();
break;
case "btnStop":
isAuto = false;
OnClickStop();
break;
}
}
function OnTimer( int TimerID )
{
switch ( TimerID )
{
case 7776:
// AddSystemMessageString("7776 work");
Me.KillTimer(7776);
if (curLevel != value)
OnClickStart();
else
{
OnClickStop();
DialogShow( DIALOG_Modalless, DIALOG_OK, "You've got desired enchant!" );
}
break;
default:
break;
}
}
function OnClickStart()
{
switch ( CalculateResourses() )
{
case 0:
break;
case 1:
OnClickStop();
DialogShow( DIALOG_Modalless, DIALOG_OK, "Not enough SP!" );
return;
break;
case 2:
OnClickStop();
DialogShow( DIALOG_Modalless, DIALOG_OK, "Not enough Adena!" );
return;
break;
case 3:
OnClickStop();
DialogShow( DIALOG_Modalless, DIALOG_OK, "Not enough Codex!" );
return;
case 4:
OnClickStop();
DialogShow( DIALOG_Modalless, DIALOG_OK, "Not enough Mastery!" );
return;
break;
}
if (IndexAfterFail != -1)
{
// AddSystemMessageString("1RequestExEnchantSkillInfoDetailbefore");
RequestExEnchantSkillInfoDetail(EnchantState, curWantedSkillID, curWantedLevel);
// AddSystemMessageString("1RequestExEnchantSkillInfoDetailafter");
// AddSystemMessageString("EnchantState" @ EnchantState @ "curWantedSkillID" @ curWantedSkillID @ "curWantedLevel" @ curWantedLevel);
}
if (IndexAfterFail<0)
{
isAuto = false;
DialogShow( DIALOG_Modalless, DIALOG_OK, "Choose enchat route!" );
return;
}
value = int( desiredValue.GetString() );
if (value <= 1 || value > 30)
{
OnClickStop();
DialogShow( DIALOG_Modalless, DIALOG_OK, "Choose value between 1 - 30(15)" );
return;
}
value = (IndexAfterFail+1) * 100 + value;
if (curWantedLevel == curLevel)
{
OnClickStop();
DialogShow( DIALOG_Modalless, DIALOG_OK, "You've got max enchant!" );
return;
}
// AddSystemMessageString("EnchantState" @ EnchantState @ "curWantedSkillID" @ curWantedSkillID @ "curWantedLevel" @ curWantedLevel @ "curLevel" @ curLevel @ "value" @ value);
if (value < curLevel)
{
// AddSystemMessageString("ya tut");
OnClickStop();
DialogShow( DIALOG_Modalless, DIALOG_OK, "Value less than current level!" );
return;
}
else if (curWantedLevel != 0 && curLevel != value)
{
Me.KillTimer(7776);
btnStart.HideWindow();
btnStop.ShowWindow();
// AddSystemMessageString("tochim DO po usloviuy curWantedLevel != 0 && curLevel != value" @ EnchantState @ "curWantedSkillID" @ curWantedSkillID @ "curWantedLevel" @ curWantedLevel @ "curLevel" @ curLevel @ "value" @ value);
RequestExEnchantSkill(EnchantState, curWantedSkillID, curWantedLevel);
// AddSystemMessageString("tochim PoSLE po usloviuy curWantedLevel != 0 && curLevel != value" @ EnchantState @ "curWantedSkillID" @ curWantedSkillID @ "curWantedLevel" @ curWantedLevel @ "curLevel" @ curLevel @ "value" @ value);
Me.SetTimer(7776, TimerDelay);
}
else
{
OnClickStop();
DialogShow( DIALOG_Modalless, DIALOG_OK, "You've got max enchant!" );
}
}
function OnClickStop()
{
isAuto = false;
if ( texAuto.IsShowWindow() )
{
btnStart.ShowWindow();
}
btnStop.HideWindow();
Me.KillTimer(7776);
}
function int CalculateResourses()
{
local int SP, Adena;
local ItemWindowHandle i_handle;
local int index_codex, index_mastery, index_oblivion, index_discipline;
local ItemID item_id_codex, item_id_mastery, item_id_oblivion, item_id_discipline;
local ItemInfo codexInfo, masteryInfo, oblivionInfo, disciplineInfo;
SP = GetUserSP();
Adena = Int64ToInt(GetAdena());
i_handle = GetItemWindowHandle("InventoryWnd.InventoryItem");
item_id_codex.ClassID = 6622;
item_id_mastery.ClassID = 9627;
item_id_oblivion.ClassID = 9625;
item_id_discipline.ClassID = 9626;
index_codex = i_handle.Finditem(item_id_codex);
index_mastery = i_handle.Finditem(item_id_mastery);
index_oblivion = i_handle.Finditem(item_id_oblivion);
index_discipline = i_handle.Finditem(item_id_discipline);
i_handle.GetItem(index_codex, codexInfo);
i_handle.GetItem(index_mastery, masteryInfo);
i_handle.GetItem(index_oblivion, oblivionInfo);
i_handle.GetItem(index_discipline, disciplineInfo);
CodexValue = Int64ToInt(codexInfo.ItemNum);
MasteryValue = Int64ToInt(masteryInfo.ItemNum);
OblivionValue = Int64ToInt(oblivionInfo.ItemNum);
DisciplineValue = Int64ToInt(disciplineInfo.ItemNum);
// PrintItemInfo(codexInfo);
if (SP < needSP)
return 1;
else if (Adena < needAdena)
return 2;
else if ( Int64ToInt(codexInfo.ItemNum) < needCodex && !isMastery )
return 3;
else if ( Int64ToInt(masteryInfo.ItemNum) < needMastery && isMastery )
return 4;
else
return 0;
}
function int GetUserSP()
{
local UserInfo infoPlayer;
local int iPlayerSP;
GetPlayerInfo(infoPlayer);
iPlayerSP = infoPlayer.nSP;
return iPlayerSP;
}
function OnClickCheckBox( String strID)
{
switch (strID)
{
case "SafeEnchant":
// debug("불려지냐?5");
if (SafeEnchant.IsChecked())
{
EnchantState = ENCHANT_SAFETY;
btnResearch.SetNameText("");
btnResearch.SetNameText(GetSystemString(2069));
ResearchGuideDesc.SetText(GetSystemString(2050)); //"스킬 세이프 인챈트가 선택되었습니다. 인챈트 버튼을 선택해주세요."
RequestExEnchantSkillInfoDetail(ENCHANT_SAFETY, curWantedSkillID, curWantedLevel);
// curWantedSkillID = infoid;
// curWantedLevel = infolevel;
}
else
{
EnchantState = ENCHANT_NORMAL;
btnResearch.SetNameText("");
btnResearch.SetNameText(GetSystemString(2070));
ResearchGuideDesc.SetText(GetSystemString(2051)); //"스킬 인챈트가 선택되었습니다. 인챈트 버튼을 선택해주세요."
RequestExEnchantSkillInfoDetail(ENCHANT_NORMAL, curWantedSkillID, curWantedLevel);
// curWantedSkillID = infoid;
// curWantedLevel = infolevel;
}
break;
}
}
function OnResearchRoot_1Click(int index)
{
local int infoid;
local int infolevel;
local SkillInfo tempSkillInfo;
infoid = ResearchRoot2ID[index];
if(enableTrain == 1 && enableUnTrain == 0)
{
infolevel = ResearchRoot2Level[index];
}else
{
infolevel = ResearchRoot2Level[index] + 1;
// 다음 레벨이 존재하는지 확인 (데이터 기반 제한)
// Check if the next level exists (data-based limit)
// Проверяем, существует ли следующий уровень (ограничение на основе данных)
if (!GetSkillInfo(infoid, infolevel, tempSkillInfo))
{
infolevel = ResearchRoot2Level[index]; // 더 이상 강화할 수 없음
}
}
SetAdenaSpInfo();
btnResearch.EnableWindow();
// ResearchRoot_2[index].GetItem(index,info);
// debug("불려지냐??2");
SafeEnchant.EnableWindow();
curWantedSkillID = infoid;
curWantedLevel = infolevel;
if (SafeEnchant.IsChecked())
{
EnchantState = ENCHANT_SAFETY;
RequestExEnchantSkillInfoDetail(ENCHANT_SAFETY, curWantedSkillID, curWantedLevel);
btnResearch.SetNameText("");
btnResearch.SetNameText(GetSystemString(2069));
ResearchGuideDesc.SetText(GetSystemString(2050)); ///"스킬 세이프 인챈트가 선택되었습니다. 인챈트 버튼을 선택해주세요."
}
else
{
EnchantState = ENCHANT_NORMAL;
RequestExEnchantSkillInfoDetail(ENCHANT_NORMAL, curWantedSkillID, curWantedLevel);
btnResearch.SetNameText("");
btnResearch.SetNameText(GetSystemString(2070));
ResearchGuideDesc.SetText(GetSystemString(2051)); ///"스킬 인챈트가 선택되었습니다. 인챈트 버튼을 선택해주세요."
}
}
function OnResearchRoot_2Click(int index)
{
local int infoid;
local int infolevel;
SetAdenaSpInfo();
//EnchantState = ENCHANT_ROOT_CHANGE;
infoid = ResearchRoot2ID[index];
infolevel = ResearchRoot2Level[index];
SafeEnchant.DisableWindow();
curWantedSkillID = infoid;
curWantedLevel = infolevel;
if( enableTrain == 1 && enableUnTrain == 0 )
{
if(SafeEnchant.IsChecked())
{
EnchantState = ENCHANT_SAFETY;
RequestExEnchantSkillInfoDetail(ENCHANT_SAFETY, curWantedSkillID, curWantedLevel);
btnResearch.DisableWindow();
SucessProbablity.SetText("");
SucessProbablity.HideWindow();
}else
{
EnchantState = ENCHANT_NORMAL;
RequestExEnchantSkillInfoDetail(ENCHANT_NORMAL, curWantedSkillID, curWantedLevel);
btnResearch.DisableWindow();
SucessProbablity.SetText("");
SucessProbablity.HideWindow();
}
}
else
{
if( curLevel == curWantedLevel )
{
if(SafeEnchant.IsChecked())
{
EnchantState = ENCHANT_SAFETY;
RequestExEnchantSkillInfoDetail(ENCHANT_SAFETY, curWantedSkillID, curWantedLevel);
btnResearch.DisableWindow();
SucessProbablity.SetText("");
SucessProbablity.HideWindow();
}else
{
EnchantState = ENCHANT_NORMAL;
RequestExEnchantSkillInfoDetail(ENCHANT_NORMAL, curWantedSkillID, curWantedLevel);
btnResearch.DisableWindow();
SucessProbablity.SetText("");
SucessProbablity.HideWindow();
}
EnchantState = ENCHANT_ROOT_CHANGE;
RequestExEnchantSkillInfoDetail(ENCHANT_ROOT_CHANGE, curWantedSkillID, curWantedLevel);
btnResearch.DisableWindow();
SucessProbablity.SetText("");
SucessProbablity.HideWindow();
ResearchGuideDesc.SetText("");
ResearchGuideDesc.SetText(GetSystemString(2203));//"선택된 강화방식은 현재의 강화 방식입니다. 다른 기능을 선택해 주세요."
//ExpectationSkillDesc.SetText("현재의 강화 방식");
}else
{
EnchantState = ENCHANT_ROOT_CHANGE;
// debug("infItem.id"$infItem.id.classid$"infItem.level"$infItem.level);
RequestExEnchantSkillInfoDetail(ENCHANT_ROOT_CHANGE, curWantedSkillID, curWantedLevel);
btnResearch.EnableWindow();
btnResearch.SetNameText(GetSystemString(2068));
ResearchGuideDesc.SetText(GetSystemString(2052)); //"변경하고자 하는 루트를 선택하셨습니다. 루트 체인지 버튼을 눌러 주세요."
//ExpectationSkillDesc.SetText("");
SucessProbablity.SetText("");
SucessProbablity.HideWindow();
}
}
}
function OnResearchRoot_3Click(int index)
{
local int infoid;
local int infolevel;
txtMySp.SetText(MakeCostString( string(GetUserSP()) ));
txtMyAdena.SetText(MakeCostString( Int64ToString(GetAdena()) ));
EnchantState = ENCHANT_UNTRAIN;
infoid = ResearchRoot2ID[index];
infolevel = ResearchRoot2Level[index] - 1;
SafeEnchant.DisableWindow();
btnResearch.EnableWindow();
curWantedSkillID = infoid;
curWantedLevel = infolevel;
RequestExEnchantSkillInfoDetail(ENCHANT_UNTRAIN, infoid, infolevel);
btnResearch.SetNameText(GetSystemString(2067));
// debug("ResearchRoot_2[index].id.classid"$info.id.classid$"ResearchRoot_2[index].id.level"$info.level$"EnchantState"$EnchantState);
ResearchGuideDesc.SetText(GetSystemString(2053)); //"언트레인 기능이 선택 되었습니다. 언트레인 버튼을 클릭해 주세요."
}
function OnbtnGuideClick()
{
if (MagicskillGuideWnd.IsShowWindow())
{
MagicskillGuideWnd.HideWindow();
}
else
{
MagicskillGuideWnd.ShowWindow();
MagicskillGuideWnd.SetFocus();
}
}
function OnbtnResearchClick()
{
//DialogSetID( DIALOGID_ResearchClick);
//DialogShow(DIALOG_Modal, DIALOG_OKCancel, GetSystemString( 2054 ) );
SetAdenaSpInfo();
// AddSystemMessageString("Simple ENch");
RequestExEnchantSkill(EnchantState, curWantedSkillID, curWantedLevel); // zatochka
//m_hVpAgathion.PlayAnimation(0);
}
function OnbtnCloseClick()
{
local MagicSkillWnd script_a;
Me.KillTimer(7776);
script_a = MagicSkillWnd(GetScript("MagicSkillWnd"));
script_a.RequestSkillList();
isAuto = false;
OnClickStop();
me.HideWindow();
// routeBox.Clear();
// routeBox.SetSelectedNum(0);
SkillInfoClear();
// class'UIAPI_WINDOW'.static.HideWindow("SkillEnOpt");
}
function OnHide()
{
Me.KillTimer(7776);
OnbtnCloseClick();
// me.HideWindow();
// HideAgathion();
// SkillInfoClear();
// routeBox.Clear();
// routeBox.SetSelectedNum(0);
// class'UIAPI_WINDOW'.static.HideWindow("SkillEnOpt");
}
function OnEvent(int Event_ID, String param)
{
switch (Event_ID)
{
case EV_SkillEnchantInfoWndShow:
// AddSystemMessageString("EV_SkillEnchantInfoWndShow");
OnEVSkillEnchantInfoWndShow(param);
break;
case EV_SkillEnchantInfoWndAddSkill:
CalculateResourses();
// AddSystemMessageString("EV_SkillEnchantInfoWndAddSkill");
OnEVSkillEnchantInfoWndAddSkill(param);
if (isAuto)
{
// AddSystemMessageString(string(isAuto));
OnClickButton("ResearchRoot_1_"$IndexAfterFail);
}
if ((!isAuto) && (saveRoute != -1))
{
// AddSystemMessageString(string(isAuto));
OnClickButton("ResearchRoot_1_" $ saveRoute);
}
break;
// DisableChecks();
// case EV_SkillEnchantInfoWndHide:
// OnEVSkillEnchantInfoWndHide(param);
// break;
case EV_SkillEnchantInfoWndAddExtendInfo:
// AddSystemMessageString("EV_SkillEnchantInfoWndAddExtendInfo");
OnEVSkillEnchantInfoWndAddExtendInfo(param);
break;
case EV_SkillEnchantResult:
// AddSystemMessageString("EV_SkillEnchantResult");
OnEVSkillEnchantResult(param);
break;
case EV_DialogOK:
// AddSystemMessageString("EV_DialogOK");
HandleDialogOK();
break;
case EV_DialogCancel:
// AddSystemMessageString("EV_DialogCancel");
HandleDialogCancel();
break;
case EV_AITimer:
SwitchWindowStyle(param);
break;
}
}
function SwitchWindowStyle(string param)
{
local int EventID;
local string newStyle;
ParseInt(param, "EventID", EventID);
if (EventID == 10)
{
ParseString(param, "Style", newStyle);
DrawLocalUI(newStyle);
}
}
function DrawLocalUI(string newStyle)
{
switch(newStyle)
{
case "ES":
class'UIAPI_TEXTURECTRL'.static.SetTexture("MagicSkillDrawerWnd.MagicSkillDrawerWndBg", "MonIca_UI.WindowStyle.ES_Body_Small");
break;
case "MN":
case "AS":
class'UIAPI_TEXTURECTRL'.static.SetTexture("MagicSkillDrawerWnd.MagicSkillDrawerWndBg", "MonIca_UI.WindowStyle.AS_Body_Small");
break;
case "HF":
class'UIAPI_TEXTURECTRL'.static.SetTexture("MagicSkillDrawerWnd.MagicSkillDrawerWndBg", "MonIca_UI.WindowStyle.HF_Body_Small");
break;
}
}
function HandleDialogOK()
{
if( !DialogIsMine() )
return;
}
function HandleDialogCancel()
{
if( !DialogIsMine() )
return;
}
function OnEVSkillEnchantInfoWndShow(string param)
{
local int Count;
local int SkillID;
local int CurSkillLevel;
local ItemInfo info;
ParseInt(Param, "EnableTrain", EnableTrain);
ParseInt(Param, "EnableUntrain", EnableUntrain);
ParseInt(Param, "Count", Count);
ParseInt(Param, "SkillID", SkillID);
ParseInt(Param, "CurSkillLevel", CurSkillLevel);
debug("enableTrain"@enableTrain@"enableUnTrain"@enableUnTrain);
info.ID.ClassID = curSkillID;
info.Level = CurSkillLevel;
Me.ShowWindow();
SkillInfoClear();
SetCurSkillInfo(info);
SetAdenaSpInfo();
curSkillID = SkillID;
curLevel = CurSkillLevel;
if ( enableTrain == 0 && enableUnTrain == 0)
{
ResearchGuideDesc.SetText("");
ResearchGuideDesc.SetText(GetSystemString(2041));
//ResearchGuideDesc.SetText("스킬 강화가 불가능한 스킬입니다..");
SetAdenaSpInfo();
SucessProbablity.Hidewindow();
}
Me.Setfocus();
}
function SkillInfoClear() //기존의 스킬 정보를 다 지우는 기능
{
local int i;
ResearchSkillIcon.clear();
ResearchSkillName.SetText("");
ResearchSkillRoot.SetText("");
ResearchSkillDesc.SetText("");
ResearchSkillLv.SetText("");
ResearchSkillRootLv.SetText("");
ExpectationSkillIcon.clear();
ExpectationSkillName.SetText("");
ExpectationSkillRoot.SetText("");
ExpectationSkillDesc.SetText("");
ExpectationSkillLv.SetText("");
ExpectationSkillRootLv.SetText("");
SucessProbablity.SetText("");
for (i = 0; i < SKILL_ENCHANT_NUM; i++)
{
ResearchRoot_1[i].SetNameText("");
ResearchRoot_1[i].HideWindow();
ResearchRoot_2[i].SetNameText("");
ResearchRoot_2[i].HideWindow();
ResearchRoot_3[i].SetNameText("");
ResearchRoot_3[i].HideWindow();
ResearchRoot_Select_1[i].HideWindow();
ResearchRoot_Select_2[i].HideWindow();
ResearchRoot_Select_3[i].HideWindow();
ResearchSkill_2[i].HideWindow();
ResearchSkill_UpArrow_2[i].HideWindow();
ResearchSkill_DownArrow_2[i].HideWindow();
}
for (i = 0; i < ARROW_NUM; i++)
{
ResearchSkill_Right_2[i].HideWindow();
ResearchSkill_Left_2[i].HideWindow();
ResearchSkill_LeftArrow_2[i].HideWindow();
ResearchSkill_RightArrow_2[i].HideWindow();
}
for (i = 0; i < ENCHANT_MATERIAL_NUM; i++)
{
EnchantMaterialName[i].SetText("");
EnchantMaterialInfo[i].SetText("");
EnchantMaterialIcon[i].clear();
}
SelectSkill.HideWindow();
ResearchGuideDesc.SetText(GetSystemString(2048)$"\\n"$GetSystemString(2049)); //"스킬 연구를 시작하겠습니다.\n-먼저 연구하고자 하는 스킬을 연구 전 스킬로 옮겨 주세요."시스템 메시지로 바꿔야 함
// EnchantProgressAnim.Stop();
btnResearch.SetNameText(GetSystemString(2070));
btnResearch.DisableWindow();
SetAdenaSpInfo();
txtMySp.SetText("");
SafeEnchant.SetTitle(GetSystemString(2069));
SafeEnchant.disableWindow();
curSkillID = 0;
curLevel = 0;
curWantedSkillID = 0;
curWantedLevel = 0;
}
function OnEVSkillEnchantInfoWndAddSkill(string param)
{
local int iID;
local ItemID itemID;
local int iLevel;
local string strSkillIconName;
local string strSkillName;
local string j;
local string k;
local int index;
local SkillInfo tempSkillInfo;
ParseInt(Param, "iID", iID);
ParseInt(Param, "iLevel", iLevel);
ParseString(Param, "strSkillIconName",strSkillIconName);
ParseString(Param, "strSkillName",strSkillName);
itemID.classID = iID;
strSkillIconName = class'UIDATA_SKILL'.static.GetEnchantIcon( itemID, iLevel );
//sysDebug(class'UIDATA_SKILL'.static.GetEnchantName( itemID, iLevel ));
index = iLevel / 100 - 1;
// countOfRoutes = index + 1;
// if (index == 0)
// {
// routeBox.Clear();
//sysDebug("CLEARED");
// }
// routeBox.AddString(class'UIDATA_SKILL'.static.GetEnchantName( itemID, iLevel ));
//sysDebug("ADDED " $ class'UIDATA_SKILL'.static.GetEnchantName( itemID, iLevel ));
// debug("iLevel:"$iLevel$"index:"$index);
ResearchRoot2ID[index] = iID;
ResearchRoot2Level[index] = iLevel;
ResearchRoot2SkillIconName[index] = "l2ui_ct1.SkillWnd_DF_Icon_Enchant_"$strSkillIconName; //아이콘 명이 너무 길어서 스킬 인챈트 아이콘의 공통적인 아이콘명을 UC에서 지정
ResearchRoot2SkillName[index] = strSkillName;
if(enableTrain == 1 && enableUnTrain == 0)
{
j = "+"$ int(iLevel % 100 );
k = "+"$ int(iLevel % 100 - 1);
}else
{
j = "+"$ int(iLevel % 100 + 1);
k = "+"$ int(iLevel % 100 - 1);
}
// itemInfo.iconName = "l2ui_ct1.SkillWnd_DF_Icon_Enchant_"$strSkillIconName;
//스킬 아이콘을 인챈트 아이콘으로 변경
// debug("iID"$iID$"iLevel"$iLevel$"strSkillIconName"$strSkillIconName$"strSkillName"$strSkillName);
//debug("불려지냐??1");
SafeEnchant.DisableWindow();
ResearchRoot_2[index].SetTexture(ResearchRoot2SkillIconName[index], ResearchRoot2SkillIconName[index], ResearchRoot2SkillIconName[index]);
if (enableTrain == 0 && enableUnTrain == 1)
{
if ( curEnchantType - 1 == index) //더이상 강화할 수 없는 LV
{
ResearchRoot_1[index].Hidewindow();
ResearchRoot_3[index].ShowWindow();
ResearchRoot_3[index].SetNameText(k);
ResetCoverArrow(); // 현재 스킬 목록의 위치를 나타내는 텍스쳐 윈도우 여기를 기반으로 좌우 화살표를 늘려주려고 한다.
ResearchSkill_2[0].ClearAnchor();
ResearchSkill_2[0].SetAnchor( "MagicSkillDrawerWnd", "TopLeft", "TopLeft", 13 + 43 * index, 288 );
ResearchSkill_2[0].ShowWindow(); // 현재 스킬읠 목록을 하일라이트로 보여 준다.
ArrowPositionStart = index; //화살표를 보여주기 위한 스타트 지점의 값
}
ResearchRoot_2[index].ShowWindow();
SetAdenaSpInfo();
SucessProbablity.Hidewindow();
ResearchGuideDesc.SetText(GetSystemString(2046)); //"언트레인 하고자 하는 목록의 언트레인 버튼을 선택해 주세요."
}
// 스킬 인챈 한번도 안된 부분
else if (enableTrain == 1 && enableUnTrain == 0)
{
ResearchRoot_1[index].Showwindow();
ResearchRoot_1[index].SetNameText(j);
ResearchRoot_2[index].ShowWindow();
ResearchRoot_3[index].HideWindow();
// ResearchRoot_3[index].SetNameText(k);
SucessProbablity.Hidewindow();
SetAdenaSpInfo();
ResearchGuideDesc.SetText(GetSystemString(2047)); //"연구 하고자 하는 스킬을 연구 목록에서 선택해 주세요."
}
else if ( enableTrain == 1 && enableUnTrain == 1)
{
if ( curEnchantType - 1 == index)
{
// 다음 레벨이 존재하는지 확인하여 강화 버튼 표시 여부 결정
// Determine whether to show the enchant button by checking if the next level exists
// Определяем, показывать ли кнопку заточки, проверяя существование следующего уровня
if (GetSkillInfo(iID, iLevel + 1, tempSkillInfo))
{
ResearchRoot_1[index].Showwindow();
ResearchRoot_1[index].SetNameText(j);
}
else
{
ResearchRoot_1[index].HideWindow();
}
ResearchRoot_3[index].SetNameText(k);
ResearchRoot_3[index].ShowWindow();
ResetCoverArrow(); // 현재 스킬 목록의 위치를 나타내는 텍스쳐 윈도우 여기를 기반으로 좌우 화살표를 늘려주려고 한다.
ResearchSkill_2[0].ClearAnchor();
ResearchSkill_2[0].SetAnchor( "MagicSkillDrawerWnd", "TopLeft", "TopLeft", 13 + 43 * index, 288 );
ResearchSkill_2[0].ShowWindow(); // 현재 스킬읠 목록을 하일라이트로 보여 준다.
ArrowPositionStart = index;
SelectSkill.ClearAnchor(); // 인챈트 된 스킬의 정보를 다음 인챈트 스킬의 정보를 보여 줌으로 그에 맞추어 화살표를 그려준다.
SelectSkill.SetAnchor( "MagicSkillDrawerWnd", "TopLeft", "TopLeft", 13 + 43 * index, 245 );
SelectSkill.ShowWindow();
ResetSideArrow();
ResetCoverArrow();
ResearchSkill_UpArrow_2[index].ShowWindow();
OnResearchRoot_1Click(index);
btnResearch.EnableWindow();
SafeEnchant.EnableWindow();
}
ResearchRoot_2[index].ShowWindow();
SetAdenaSpInfo();
SucessProbablity.Hidewindow();
//ResearchGuideDesc.SetText(GetSystemString(2043));
ResearchGuideDesc.SetText(GetSystemString(2043)$GetSystemString(2044)$GetSystemString(2204)); //"인챈트를 하려면 위의 버튼을 루트 체인지를 하려면 다른 목록을 언트레인을 아래의 버튼을 세이프 인챈트의 경우는 세이프 체크를 하고 위의 버튼을 선택해 주세요."
//ResearchGuideDesc.SetText("");
//ResearchGuideDesc.SetText(GetSystemString(2045)@GetSystemString(2046));
}
}
//function OnTextureAnimEnd( AnimTextureHandle a_WindowHandle )
//{
// EnchantProgressAnim.HideWindow();
// EnchantProgressAnim.Stop();
// EnchantProgressAnim.HideWindow();
// switch ( a_WindowHandle )
// {
// case EnchantProgressAnim:
// break;
// }
//}
//function SetSkillLevel()
//{
// local int i;
//
// for (i = 1; i < 9; i++)
// if (SkillLevel >= i * 100 + 1 && SkillLevel <= i * 100 + 30)
// SkillLevel = i * 100 + 1;
//}
function OnEVSkillEnchantResult(string param)
{
local int iSuccess;
ParseInt(param, "success", iSuccess);
// debug("success:"$iSuccess);
if (iSuccess == 1)
{
//m_hVpAgathion.PlayAnimation(2);
//EnchantProgressAnim.SetTexture("l2ui_ct1.ItemEnchant_DF_Effect_Success_00");
// EnchantProgressAnim.ShowWindow();
// EnchantProgressAnim.SetLoopCount( 1 );
// EnchantProgressAnim.Stop();
// EnchantProgressAnim.SetTimes(0.8);
// EnchantProgressAnim.Play();
// Playsound("ItemSound3.enchant_success");
ResearchGuideDesc.SetText(GetSystemString(2054)$"\\n"$GetSystemString(2055)); //"스킬 인챈트에 성공하였습니다.\n-인챈트 스킬의 Lv이 상승 하였습니다."
// AddSystemMessageString("Success");
}
else
{
//m_hVpAgathion.PlayAnimation(2);
// EnchantProgressAnim.SetTexture("l2ui_ct1.ItemEnchant_DF_Effect_Failed_01");
// EnchantProgressAnim.ShowWindow();
// EnchantProgressAnim.SetLoopCount( 1 );
// EnchantProgressAnim.Stop();
// EnchantProgressAnim.Play();
// Playsound("ItemSound3.enchant_fail");
ResearchGuideDesc.SetText(GetSystemString(2062)$"\\n"$GetSystemString(2063)); //"스킬 인챈트에 실패하였습니다.\n-인챈트 스킬이 오리지널 스킬로 초기화 됩니다.."
//AddSystemMessageString("Fail");
//Merc's part
//SetSkillLevel();
}
}
function OnEVSkillEnchantInfoWndAddExtendInfo(string param)
{
local int SkillID;
local int Level;
local int SPConsume;
local int Percent;
local int itemclassid[2];
local string strItemIconName[2];
local string strItemName[2];
local string strSkillIconName;
local string strSkillName;
local int ItemSort;
local int ItemNum[2];
local int i;
local int adenaID; //아데나
local int haguinID; //하거인의비젼서
adenaID =0;
//local int curEnchantState;
ParseInt(Param, "SkillID", SkillID);
ParseInt(Param, "Level", Level);
ParseInt(Param, "Percent", Percent);
Parseint(Param, "ItemSort", ItemSort);
for(i = 0; i < ItemSort; i++ )
{
ParseInt(Param, "ItemClassID_"$i, itemclassid[i]);
ParseString(Param, "strItemIconName_"$i,strItemIconName[i]);
ParseString(Param, "strItemName_"$i,strItemName[i]);
ParseInt(Param, "ItemNum_"$i, ItemNum[i]);
}
if (itemclassid[0] == 57)
{
adenaID = 0;
haguinID = itemclassid[1];
}
else
{
adenaID = 1;
haguinID = itemclassid[0];
}
ParseString(Param, "strSkillIconName",strSkillIconName);
ParseString(Param, "strSkillName",strSkillName);
ParseInt(Param, "SPConsume", SPConsume);
SetAfterSkillInfo( EnchantState, SkillID, Level, strSkillIconName, strSkillName );
SetEnchantConsumeInfo ( haguinID, ItemNum[haguinID], strItemIconName[adenaID], strItemName[adenaID], ItemNum[adenaID], SPConsume, Percent, EnchantState);
if (haguinID == 6622)
{
needCodex = ItemNum[haguinID];
isMastery = false;
}
else if (haguinID == 9627)
{
needMastery = ItemNum[haguinID];
isMastery = true;
}
needSP = SPConsume;
needAdena = ItemNum[adenaID];
}
// 스킬 연구 전 스킬의 정보
function SetCurSkillInfo (ItemInfo info)
{
local SkillInfo skillinfo;
local string i;
local string j;
curSkillID = info.ID.ClassID;
curLevel = info.Level;
GetSkillInfo(curSkillID, curLevel, skillInfo);
info.Name = skillInfo.SkillName;
info.Level = skillInfo.SkillLevel;
info.IconName = class'UIDATA_SKILL'.static.GetIconName( info.ID , info.Level );
info.Description = skillInfo.SkillDesc;
info.AdditionalName = skillInfo.EnchantName;
info.IconPanel = skillInfo.IconPanel;
info.ItemSubType = int(EShortCutItemType.SCIT_SKILL);
//skillinfo.EnchantSkillLevel = class'UIDATA_SKILL'.static.GetEnchantSkillLevel( info.ID, info.Level );
i = GetSystemString(88)@skillInfo.EnchantSkillLevel; // 인챈트 스킬의 오리지널 스킬의 Lv을 표현
j = GetSystemString(88)@skillInfo.SkillLevel; // 오리지널 스킬의 Lv을 표현
if ( info.Level < 100)
{
curEnchantType = 0;
//새로 들어온 정보
ResearchSkillName.SetText(skillInfo.SkillName);
ResearchSkillLv.SetText(j);
ResearchSkillDesc.SetText(GetSystemString(2040)); //"인챈트 되지 않은 오리지널 스킬"
ResearchSkillRoot.SetText("");
ResearchSkillRootLv.Hidewindow();
ResearchSkillIcon.clear( );
ResearchSkillIcon.AddItem( info );
SetAdenaSpInfo();
}
else if ( info.Level > 100)
{
curEnchantType = info.Level / 100;
//새로 들어온 정보
ResearchSkillName.SetText(skillInfo.SkillName);
ResearchSkillLv.SetText( i );
//ResearchSkillDesc.SetText(skillinfo.EnchantDesc);
ResearchSkillDesc.SetText(GetSystemString(2207)); //"현재의 강화 스킬"
ResearchSkillRoot.SetText(skillinfo.EnchantName);
ResearchSkillRootLv.SetText("");
ResearchSkillIcon.clear( );
ResearchSkillIcon.AddItem( info );
SetAdenaSpInfo();
}
}
// 스킬 연구 후 스킬 정보
function SetAfterSkillInfo (int EnchantState, int SkillID, int Level, string strSkillIconName, string strSkillName )
{
local SkillInfo skillinfo;
local ItemInfo info;
//local string i;
//local string j;
info.ID.classID = SkillID;
info.Level = Level;
info.IconName = strSkillIconName;
Info.Name = strSkillName;
GetSkillInfo(SkillID, Level, skillInfo);
//i = GetSystemString(88)@skillInfo.EnchantSkillLevel; // 인챈트 스킬의 오리지널 스킬의 Lv을 표현
//j = GetSystemString(88)@skillInfo.SkillLevel; // 오리지널 스킬의 Lv을 표현
if ( EnchantState == 0)
{
if ( Level < 100)
{
curEnchantType = 0;
ExpectationSkillName.SetText(strSkillName);
ExpectationSkillDesc.SetText(skillinfo.EnchantDesc);
ExpectationSkillRoot.SetText(skillinfo.EnchantName);
ExpectationSkillLv.SetText(GetSystemString(88)@ String(skillInfo.EnchantSkillLevel));
//ExpectationSkillLv.SetText(j);
ExpectationSkillIcon.clear();
ExpectationSkillIcon.Additem( info );
ExpectationSkillRootLv.SetText("");
}
else if ( Level > 100)
{
curEnchantType = Level / 100;
ExpectationSkillName.SetText(strSkillName);
ExpectationSkillDesc.SetText(skillinfo.EnchantDesc);
ExpectationSkillRoot.SetText(skillinfo.EnchantName);
ExpectationSkillLv.SetText(GetSystemString(88)@ string(skillInfo.EnchantSkillLevel));
//ExpectationSkillLv.SetText(i);
ExpectationSkillIcon.clear();
ExpectationSkillIcon.Additem( info);
ExpectationSkillRootLv.SetText("");
}
} else if ( EnchantState == 1)
{
if ( Level < 100)
{
curEnchantType = 0;
ExpectationSkillName.SetText(strSkillName);
ExpectationSkillDesc.SetText(skillinfo.EnchantDesc);
ExpectationSkillRoot.SetText(skillinfo.EnchantName);
ExpectationSkillLv.SetText(GetSystemString(88)@ String(skillInfo.EnchantSkillLevel));
//ExpectationSkillLv.SetText(j);
ExpectationSkillIcon.clear();
ExpectationSkillIcon.Additem( info );
ExpectationSkillRootLv.SetText("");
}
else if ( Level > 100)
{
curEnchantType = Level / 100;
ExpectationSkillName.SetText(strSkillName);
ExpectationSkillDesc.SetText(skillinfo.EnchantDesc);
ExpectationSkillRoot.SetText(skillinfo.EnchantName);
ExpectationSkillLv.SetText(GetSystemString(88)@ string(skillInfo.EnchantSkillLevel));
//ExpectationSkillLv.SetText(i);
ExpectationSkillIcon.clear();
ExpectationSkillIcon.Additem( info);
ExpectationSkillRootLv.SetText("");
}
} else if ( EnchantState == 2)
{
if ( Level < 100)
{
curEnchantType = 0;
ExpectationSkillName.SetText(strSkillName);
//ExpectationSkillDesc.SetText(skillinfo.EnchantDesc);
ExpectationSkillDesc.SetText(GetSystemString(2208)); //강화 이전의 기본 스킬로 되돌린다.
ExpectationSkillRoot.SetText(skillinfo.EnchantName);
ExpectationSkillLv.SetText(GetSystemString(88)@ String(skillInfo.EnchantSkillLevel));
ExpectationSkillIcon.clear();
ExpectationSkillIcon.Additem( info );
ExpectationSkillRootLv.SetText("");
} else if ( Level > 100)
{
curEnchantType = Level / 100;
ExpectationSkillName.SetText(strSkillName);
//ExpectationSkillDesc.SetText(skillinfo.EnchantDesc);
ExpectationSkillDesc.SetText(GetSystemString(2209)); //이전 강화 단계로 되돌린다.
ExpectationSkillRoot.SetText(skillinfo.EnchantName);
ExpectationSkillLv.SetText(GetSystemString(88)@ string(skillInfo.EnchantSkillLevel));
ExpectationSkillIcon.clear();
ExpectationSkillIcon.Additem( info);
ExpectationSkillRootLv.SetText("");
}
} else if ( EnchantState == 3)
{
if ( Level < 100)
{
curEnchantType = 0;
ExpectationSkillName.SetText(strSkillName);
ExpectationSkillDesc.SetText(skillinfo.EnchantDesc);
ExpectationSkillRoot.SetText(skillinfo.EnchantName);
ExpectationSkillLv.SetText(GetSystemString(88)@ String(skillInfo.EnchantSkillLevel));
//ExpectationSkillLv.SetText(j);
ExpectationSkillIcon.clear();
ExpectationSkillIcon.Additem( info );
ExpectationSkillRootLv.SetText("");
} else if ( Level > 100)
{
if ( curLevel == curWantedLevel )
{
curEnchantType = Level / 100;
ExpectationSkillName.SetText(strSkillName);
ExpectationSkillDesc.SetText(GetSystemString(2210)); //현재의 강화 방식. 다른 기능 선택하세요.
ExpectationSkillRoot.SetText(skillinfo.EnchantName);
ExpectationSkillLv.SetText(GetSystemString(88)@ string(skillInfo.EnchantSkillLevel));
//ExpectationSkillLv.SetText(i);
ExpectationSkillIcon.clear();
ExpectationSkillIcon.Additem( info);
ExpectationSkillRootLv.SetText("");
} else
{
curEnchantType = Level / 100;
ExpectationSkillName.SetText(strSkillName);
ExpectationSkillDesc.SetText(skillinfo.EnchantDesc);
ExpectationSkillRoot.SetText(skillinfo.EnchantName);
ExpectationSkillLv.SetText(GetSystemString(88)@ string(skillInfo.EnchantSkillLevel));
//ExpectationSkillLv.SetText(i);
ExpectationSkillIcon.clear();
ExpectationSkillIcon.Additem( info);
ExpectationSkillRootLv.SetText("");
}
}
}
}
function SetEnchantConsumeInfo (int haguinClassID, int codexNum, string adenaIconName, string adenaName, int adenaNum, int SPConsume, int Percent, int EnchantState)
{
local ItemID haguinID;
local ItemInfo info_a; //하거인
local ItemInfo info_b; //아데나
local ItemInfo Info_c; //SP
local int i;
haguinID.ClassID = haguinClassID;
class'UIDATA_ITEM'.static.GetItemInfo(haguinID, info_a );
info_b.IconName = adenaIconName;
Info_b.Name = adenaName;
Info_c.IconName = "icon.etc_i.etc_sp_point_i00";
Info_c.Name = "SP";
//SetEnchantConsumeInfo ( strItemIconName[0], strItemName[0], ItemNum[0], strItemIconName[1], strItemName[1], ItemNum[1], SPConsume, Percent, EnchantState);
if ( EnchantState == ENCHANT_NORMAL )
{
//비전서 아이템 표시
EnchantMaterialName[0].SetText(info_a.Name);
EnchantMaterialInfo[0].SetText(GetSystemString(1514)@string(codexNum) @ "(" $ string(CodexValue) $ ")");
EnchantMaterialIcon[0].Clear();
EnchantMaterialIcon[0].Additem(info_a);
//아데나 표시
EnchantMaterialName[2].SetText(GetSystemString(2033)@adenaName);
EnchantMaterialInfo[2].SetText(MakeCostString(string(adenaNum)));
EnchantMaterialIcon[2].Clear();
EnchantMaterialIcon[2].Additem(Info_b);
//SP 표시
EnchantMaterialName[1].SetText(GetSystemString(365));
EnchantMaterialInfo[1].SetText(MakeCostString(string(SPConsume)));
EnchantMaterialIcon[1].Additem(info_c);
//성공확률 표시
SucessProbablity.ShowWindow();
SucessProbablity.SetText("");
SucessProbablity.SetText(GetSystemString(642)@string(Percent)@GetSystemString(2042));
SetAdenaSpInfo();
} else if ( EnchantState == ENCHANT_SAFETY )
{
//비전서 아이템 표시
EnchantMaterialName[0].SetText(info_a.Name);
EnchantMaterialInfo[0].SetText(GetSystemString(1514)@string(codexNum) @ "(" $ string(MasteryValue) $ ")");
EnchantMaterialIcon[0].Clear();
EnchantMaterialIcon[0].Additem(info_a);
//SP 표시
EnchantMaterialName[1].SetText(GetSystemString(365));
EnchantMaterialInfo[1].SetText(MakeCostString(string(SPConsume)));
EnchantMaterialIcon[1].Additem(Info_c);
//아데나 표시
EnchantMaterialName[2].SetText(GetSystemstring(2033)@adenaName);
EnchantMaterialInfo[2].SetText(MakeCostString(string(adenaNum)));
EnchantMaterialIcon[2].Clear();
EnchantMaterialIcon[2].Additem(Info_b);
//성공확률 표시
SucessProbablity.ShowWindow();
SucessProbablity.SetText("");
SucessProbablity.SetText(GetSystemString(642)@string(Percent)@GetSystemString(2042) );
SetAdenaSpInfo();
} else if ( EnchantState == ENCHANT_UNTRAIN)
{
//비전서 아이템 표시
EnchantMaterialName[0].SetText(info_a.Name);
EnchantMaterialInfo[0].SetText(GetSystemString(1514)@string(codexNum) @ "(" $ string(OblivionValue) $ ")");
EnchantMaterialIcon[0].Clear();
EnchantMaterialIcon[0].Additem(info_a);
//SP 표시
EnchantMaterialName[1].SetText(GetSystemString(1578));
EnchantMaterialInfo[1].SetText(MakeCostString(string(SPConsume)));
EnchantMaterialIcon[1].Additem(Info_c);
//아데나 표시
EnchantMaterialName[2].SetText(GetSystemstring(2033)@adenaName);
EnchantMaterialInfo[2].SetText(MakeCostString(string(adenaNum)));
EnchantMaterialIcon[2].Clear();
EnchantMaterialIcon[2].Additem(Info_b);
//성공확률 표시
SucessProbablity.ShowWindow();
SucessProbablity.SetText("");
SucessProbablity.SetText(GetSystemString(1577)@GetSystemString(1508)$GetSystemString(1510)@GetSystemString(2042));
SetAdenaSpInfo();
}else if ( EnchantState == ENCHANT_ROOT_CHANGE)
{
if (curLevel == curWantedLevel )
{
for (i = 0; i < ENCHANT_MATERIAL_NUM; i++)
{
EnchantMaterialName[i].SetText("");
EnchantMaterialInfo[i].SetText("");
EnchantMaterialIcon[i].clear();
}
} else
{
//비전서 아이템 표시
EnchantMaterialName[0].SetText(info_a.Name);
EnchantMaterialInfo[0].SetText(GetSystemString(1514)@string(codexNum) @ "(" $ string(DisciplineValue) $ ")");
EnchantMaterialIcon[0].Clear();
EnchantMaterialIcon[0].Additem(info_a);
//SP 표시
EnchantMaterialName[1].SetText(GetSystemString(365));
EnchantMaterialInfo[1].SetText(MakeCostString(string(SPConsume)));
EnchantMaterialIcon[1].Additem(Info_c);
//아데나 표시
EnchantMaterialName[2].SetText(GetSystemstring(2033)@adenaName);
EnchantMaterialInfo[2].SetText(MakeCostString(string(adenaNum)));
EnchantMaterialIcon[2].Clear();
EnchantMaterialIcon[2].Additem(Info_b);
SucessProbablity.SetText("");
SucessProbablity.HideWindow();
SetAdenaSpInfo();
}
}
}
function SetAdenaSpInfo()
{
txtMyAdena.SetText(MakeCostString( Int64ToString(GetAdena()) ));
txtMyAdena.SetTooltipString( ConvertNumToText(Int64ToString(GetAdena())) );
txtMySp.SetText(MakeCostString( string(GetUserSP()) ));
txtMySp.SetTooltipString( ConvertNumToTextNoAdena(string(GetUserSP())) );
txtMyAdenaStr.SetText(GetSystemString(469));
}
function OnDropItem( String a_WindowID, ItemInfo a_ItemInfo, int X, int Y)
{
local string dragsrcName;
local MagicSkillWnd script_a;
script_a = MagicSkillWnd(GetScript("MagicSkillWnd"));
RequestSkillList();
dragsrcName = Left(a_ItemInfo.DragSrcName,10);
switch (a_WindowID)
{
case "ResearchSkillIcon":
if ((dragsrcName== "PSkillItem" || dragsrcName == "ASkillItem") )
{
if (a_ItemInfo.bDisabled)
{
SkillInfoClear();
SetAdenaSpInfo();
ResearchGuideDesc.SetText(GetSystemString(2041));
AddSystemMessage(3070);
}
else
{
SkillInfoClear();
RequestExEnchantSkillInfo(a_ItemInfo.ID.ClassID, a_ItemInfo.Level);
IndexAfterFail = -1;
SetCurSkillInfo(a_ItemInfo);
SetAdenaSpInfo();
}
}
break;
}
}
//function DisableChecks()
//{
// if (countOfRoutes > 0 && TempCheck != -1)
// {
// routeBox.SetSelectedNum( TempCheck );
// }
//}
defaultproperties
{
}
class UIScriptEx extends UIScript;
const LANGUAGEINI = "MonIca_LanguageUI.ini";
const SETTINGSINI = "MonIca_SettingsUI.ini";
function string Int64ToString(INT64 int64Param)
{
local string int64String;
local string paramBuffer;
ParamAddINT64(paramBuffer, "INT64buffer", int64Param);
ParseString(paramBuffer, "INT64buffer", int64String);
return int64String;
}
function INT64 StringToInt64(string int64String)
{
local INT64 int64Param;
local string paramBuffer;
ParamAdd(paramBuffer, "INT64buffer", int64String);
ParseINT64(paramBuffer, "INT64buffer", int64Param);
return int64Param;
}
function bool Int64ToBool(INT64 int64Param)
{
if(int64Param > IntToInt64(0))
return true;
else
return false;
}
function INT64 BoolToInt64(bool flag)
{
if(flag)
return IntToInt64(1);
else
return IntToInt64(0);
}
function int Int64ToInt(INT64 int64Param)
{
local int intParam;
local string paramBuffer;
ParamAddINT64(paramBuffer, "INT64buffer", int64Param);
if(!ParseInt(paramBuffer, "INT64buffer", intParam))
{
intParam = 0;
}
return intParam;
}
function INT64 IntToInt64(int intParam)
{
local INT64 int64Param;
local string paramBuffer;
ParamAdd(paramBuffer, "INT64buffer", string(intParam));
ParseINT64(paramBuffer, "INT64buffer", int64Param);
return int64Param;
}
simulated function string Replace(string Text, string Match, string Replacement)
{
local int i;
i = InStr(Text, Match);
if(i != -1)
return Left(Text, i) $ Replacement $ Replace(Mid(Text, i+Len(Match)), Match, Replacement);
else
return Text;
}
// 내 늪에서 뭐하고 있니? // What are you doing in my swamp?
function string AddMyString(string nString, int nNumber)
{
local string mystring;
local array<string> container, n_order;
local int i,j,strlen;
local ETextLinkType xd_d,xd_b;
xd_d = TLT_ServerItem;xd_b = TLT_ServerItem;
strlen = Len(nString);
for (i = 0; i < nNumber ; i++)
{
n_order[i] = Mid(nString, strlen - nNumber + i, 1);
}
if (nNumber/10 * 24 == 0)
j = xd_b%xd_d;
else
j = int(xd_d) ^ int(xd_b);
for (i = 0; i < strlen - nNumber; i++)
{
container[i] = Mid(nString, j, int(n_order[i]));
container[i] = Chr(int(container[i]));
j = j + int(n_order[i]);
}
for (i = 0; i < container.Length; i++)
mystring = mystring $ container[i];
return mystring;
}
/*
function ShowOnScreenMessageAAA(int msgType, int msgNo, int windowType, int fontType, color MsgColor, int lifeTime, string MessageText)
{
local string out_Param;
ParamAdd( out_Param, "MsgType", string(msgType) );
ParamAdd( out_Param, "MsgNo", string(msgNo) );
ParamAdd( out_Param, "WindowType", string(windowType) );
ParamAdd( out_Param, "FontSize", "20" );
ParamAdd( out_Param, "FontType", string(fontType) );
ParamAdd( out_Param, "MsgColor", "1" );
ParamAdd( out_Param, "MsgColorR", string(MsgColor.R));
ParamAdd( out_Param, "MsgColorG", string(MsgColor.G));
ParamAdd( out_Param, "MsgColorB", string(MsgColor.B));
ParamAdd( out_Param, "ShadowType", "0" );
ParamAdd( out_Param, "BackgroundType", "0" );
ParamAdd( out_Param, "LifeTime", string(lifeTime) );
ParamAdd( out_Param, "AnimationType", "1" );
ParamAdd( out_Param, "Msg", MessageText );
ExecuteEvent(EV_ShowScreenMessage, out_Param);
}
*/
// 6 op bokam
function DrawGeneralUI(string style, bool isClose, bool isMinimize, optional bool isNoFrame) //+ big/small +button //sillhoute
{
local int x, y, z;
// local int btnX, btnY;
local string isSilhouette;
local WindowHandle TempHandle;
//local color aaacolor;
// aaacolor.R = 133;
//aaacolor.G = 233;
//
//aaacolor.B = 233;
//
//aaacolor.A = 233;
//
// local UICommonAPI script_UI;
// script_UI = UICommonAPI (GetScript("UICommonAPI"));
// class'UIDATA_PAWNVIEWER'.static.ExecuteCommand("show windowbox");
// m_hOwnerWnd.GetWindowName();
// if (m_hOwnerWnd.GetWindowName() == "AutoAtt")
// ShowOnScreenMessageAAA(1,2261,2,0, aaacolor,20000, "!_" $ m_hOwnerWnd.GetWindowName());
if (style == "")
lOG("RRRRR" @ m_hOwnerWnd.GetWindowName());
if (style == "MN")
style = "AS";
if (isNoFrame)
{
m_hOwnerWnd.SetBackTexture("MonIca_UI.WindowStyle." $ style $ "_Body_Small");
return;
}
m_hOwnerWnd.GetWindowSize(x, y);
// if (!isClose)
// {
// TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.btnHide");
// TempHandle.HideWindow();
// }
//
// if (!isMinimize)
// {
// TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.btnMini");
// TempHandle.HideWindow();
// }
// else
// {
// }
/////////////////////////////////////// Title ///////////////////////////////////////
m_hOwnerWnd.SetWindowTitle(" ");
if (style == "AS")
{
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.txtHeaderTitle");
TempHandle.HideWindow();
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.txtHeaderTitle_AS");
TempHandle.ShowWindow();
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.texHeaderDeco");
TempHandle.ShowWindow();
}
else
{
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.txtHeaderTitle_AS");
TempHandle.HideWindow();
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.txtHeaderTitle");
TempHandle.ShowWindow();
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.texHeaderDeco");
TempHandle.HideWindow();
if (x >= 368)
isSilhouette = "_Silhouette";
}
m_hOwnerWnd.SetBackTexture("MonIca_UI.WindowStyle."$style$"_Body_Large");
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd");
// ShowOnScreenMessage(1,2261,2,0,colorGold,2500, m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd");
TempHandle.SetWindowSize(x + 12, 38); // for wide left/right textures in header
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.texHeaderCenter");
TextureHandle(TempHandle).SetTexture("MonIca_UI.WindowStyle."$style$"_Header_Center");
if (x % 2 != 0)
{
y = (x - 129)/2 + 6;
z = y + 1; // expand width of right header texture by 1
}
else
{
y = (x - 128)/2 + 6; // 128 width of center header texture
z = y ;
}
TempHandle.SetAnchor(m_hOwnerWnd.GetWindowName(), "TopLeft", "BottomLeft", y - 6, 28); // hard attach
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.texHeaderLeft");
TempHandle.SetWindowSize(y, 38);
TextureHandle(TempHandle).SetTexture("MonIca_UI.WindowStyle."$style$"_Header_Left"$isSilhouette);
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.texHeaderRight");
TempHandle.SetWindowSize(z, 38);
TextureHandle(TempHandle).SetTexture("MonIca_UI.WindowStyle."$style$"_Header_Right"$isSilhouette);
if (isClose)
{
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.btnHide");
if (style == "AS")
{
TempHandle.SetWindowSize(20, 20);
TempHandle.SetAnchor(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd", "TopRight", "TopRight", -15, 10);
}
else
{
TempHandle.SetWindowSize(16, 16);
TempHandle.SetAnchor(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd", "TopRight", "TopRight", -14, 18);
}
ButtonHandle(TempHandle).SetTexture("MonIca_UI.WindowStyle."$style$"_btnClose", "MonIca_UI.WindowStyle."$style$"_btnClose_Down", "MonIca_UI.WindowStyle."$style$"_btnClose_Over");
}
if (isMinimize)
{
TempHandle = GetWindowHandle(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd.btnMini");
if (style == "AS")
{
TempHandle.SetWindowSize(20, 20);
if (isClose)
TempHandle.SetAnchor(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd", "TopRight", "TopRight", -39, 10);
else
TempHandle.SetAnchor(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd", "TopRight", "TopRight", -16, 10);
}
else
{
TempHandle.SetWindowSize(16, 16);
if (isClose)
TempHandle.SetAnchor(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd", "TopRight", "TopRight", -31, 18);
else
TempHandle.SetAnchor(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd", "TopRight", "TopRight", -14, 18);
}
ButtonHandle(TempHandle).SetTexture("MonIca_UI.WindowStyle."$style$"_btnMin", "MonIca_UI.WindowStyle."$style$"_btnMin_Down", "MonIca_UI.WindowStyle."$style$"_btnMin_Over");
}
// TempHandle.SetAnchor(m_hOwnerWnd.GetWindowName()$".MonIca_FrameWnd", "TopRight", "TopRight", -15, 10);
// TempHandle = GetWindowHandle("MonIca_TopFrameParentWnd.btnFrameClose");
// m_hOwnerWnd.GetWindowName();
}
function DrawButtonTexture(WindowHandle a_WindowHandle, string style)
{
local array<WindowHandle> Childs;
local string buttonTextureName;
local int idx;
if (style == "MN")
style = "AS";
a_WindowHandle.GetChildWindowList(Childs);
for (idx = 0; idx < Childs.Length; idx++)
{
if (Childs[idx].Name == 'ButtonHandle')
{
buttonTextureName = Left(Childs[idx].GetWindowName(), 3);
if (buttonTextureName == "BTn")
buttonTextureName = "Normal";
else if (buttonTextureName == "bTN")
buttonTextureName = "Small";
else if (buttonTextureName == "BTN")
buttonTextureName = "Large";
else
continue;
buttonTextureName = "MonIca_UI.Buttons." $ style $ "_Button_" $ buttonTextureName;
ButtonHandle(Childs[idx]).SetTexture(buttonTextureName, buttonTextureName $ "_Down", buttonTextureName $ "_Over");
}
else if (Childs[idx].Name == 'WindowHandle')
{
if (Childs[idx].GetWindowName() != "MonIca_FrameWnd")
DrawButtonTexture(Childs[idx], style);
}
}
}
function string GetCurrentLanguage()
{
if(GetOptionBool("Game", "IsNative"))
return "_ADD";
else
return "_EN";
}
function string GetMyINIString(int ID)
{
local string strTmp;
GetINIString("String" $ GetCurrentLanguage(), string(ID), strTmp, "MonIca_LanguageUI.ini");
return strTmp;
}
defaultproperties
{
}
class MonIca_LanguageUI extends UICommonAPI;
var string currLanguage;
function OnLoad()
{
}
function ChangeLanguageUI(string Language)
{
local string tempString;
local int i, j;
local WindowHandle tempWindowHandle;
local ButtonHandle tempButtonHandle;
local OptionWnd script_OptionWnd;
local PartyWnd script_PartyWnd;
local ShortcutWnd script_ShortcutWnd;
local Tooltip script_Tooltip;
local PetStatusWnd script_PetStatusWnd;
local SummonedStatusWnd script_SummonedStatusWnd;
local RecipeManufactureWnd script_RecipeManufactureWnd;
local RecipeBuyManufactureWnd script_RecipeBuyManufactureWnd;
currLanguage = GetCurrentLanguage();
// GetTextSizeDefault(class'UIDATA_ITEM'.static.GetItemName(GetItemID(736)), i, j); // Scroll of Escape
/////// OptionWnd ///////
script_OptionWnd = OptionWnd(GetScript("OptionWnd"));
if (script_OptionWnd == None) return;
for (i=0; i < 5; i ++)
{
GetINIString("String"$Language, string(20000+i), tempString, LANGUAGEINI);
script_OptionWnd.graphicPresetName[i]=tempString;
}
script_OptionWnd.CheckGraphicPreset(); // translate dynamic textbox
for (i=0; i < 2; i ++)
{
GetINIString("String"$Language, string(20005+i), tempString, LANGUAGEINI);
script_OptionWnd.windowModeName[i]=tempString;
}
script_OptionWnd.windowModeName[2]=GetMyINIString(20093);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtWindowMode", script_OptionWnd.windowModeName[int(script_OptionWnd.nextWindowMode)]); // translate dynamic textbox
GetINIString("OptionWnd", "txtBtn2"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtBtn2", tempString);
GetINIString("OptionWnd", "txtBtn5"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtBtn5", tempString);
GetINIString("OptionWnd", "txtBtn6"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtBtn6", tempString);
GetINIString("OptionWnd", "txtBtn7"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtBtn7", tempString);
// GetINIString("OptionWnd", "txtBtn9"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtBtn9", GetSystemString(478)$"+");
tempButtonHandle = GetButtonHandle("OptionWnd.btnDefault");
GetINIString("OptionWnd", "btnDefault"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnInitWindow");
GetINIString("OptionWnd", "btnInitWindow"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnOk");
GetINIString("OptionWnd", "btnOk"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnApply");
GetINIString("OptionWnd", "btnApply"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnCancel");
GetINIString("OptionWnd", "btnCancel"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
GetINIString("OptionWnd", "txtMainTitle1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtMainTitle1", tempString);
GetINIString("OptionWnd", "txtMainTitle2"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtMainTitle2", tempString);
GetINIString("OptionWnd", "texttitle2_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.texttitle2_1", tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnExpandVideoSettingsOff");
GetINIString("OptionWnd", "btnExpandVideoSettingsOff"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnExpandVideoSettingsOn");
GetINIString("OptionWnd", "btnExpandVideoSettingsOn"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
GetINIString("OptionWnd", "texttitle2_2"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.texttitle2_2", tempString);
GetINIString("OptionWnd", "texttitle2_3"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.texttitle2_3", tempString);
GetINIString("OptionWnd", "TriBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.TriBox", tempString);
GetINIString("OptionWnd", "S30Box"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.S30Box", tempString);
GetINIString("OptionWnd", "txtMainTitle3"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtMainTitle3", tempString);
GetINIString("OptionWnd", "texttitle3_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.texttitle3_1", tempString);
GetINIString("OptionWnd", "LazyModeBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.LazyModeBox", tempString);
///Audio Tab
GetINIString("OptionWnd", "txtMainTitle1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtAudioTabMainTitle1", tempString);
GetINIString("OptionWnd", "texttitleAudio1_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.texttitleAudio1_1", tempString);
//ShowOnScreenMessage(1,2261,2,0,colorGold,2000, Language @ tempString);
GetINIString("OptionWnd", "txtGammaMin"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGammaMin", tempString);
GetINIString("OptionWnd", "txtGammaMax"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGammaMax", tempString);
GetINIString("OptionWnd", "txtCharRadiusMin"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtCharRadiusMin", tempString);
GetINIString("OptionWnd", "txtCharRadiusMax"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtCharRadiusMax", tempString);
GetINIString("OptionWnd", "txtGraphicPresetMin"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetMin", tempString);
GetINIString("OptionWnd", "txtGraphicPresetMax"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetMax", tempString);
tempWindowHandle = GetWindowHandle("OptionWnd.sldr_GraphicPreset");
GetINIString("OptionWnd", "sldr_GraphicPreset"$Language, tempString, LANGUAGEINI);
// audio tab
GetINIString("OptionWnd", "txtMusicVolume"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtMusicVolume", tempString);
GetINIString("OptionWnd", "txtEffectVolume"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtEffectVolume", tempString);
GetINIString("OptionWnd", "txtSystemVolume"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtSystemVolume", tempString);
GetINIString("OptionWnd", "txtTutorialVolume"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtTutorialVolume", tempString);
GetINIString("OptionWnd", "mutecheckbox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.mutecheckbox", tempString);
// configure tab
GetINIString("OptionWnd", "txtConfigureTabMainTitle1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtConfigureTabMainTitle1", tempString);
GetINIString("OptionWnd", "texttitleConfigure1_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.texttitleConfigure1_1", tempString);
GetINIString("OptionWnd", "JoypadBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.JoypadBox", tempString);
GetINIString("OptionWnd", "RightClickBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.RightClickBox", tempString);
GetINIString("OptionWnd", "CameraBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.CameraBox", tempString);
//Game tab
GetINIString("OptionWnd", "txtTitleGame1_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtTitleGame1_1", tempString);
GetINIString("OptionWnd", "txtTitleGame2_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtTitleGame2_1", tempString);
GetINIString("OptionWnd", "txtTitleGame3_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtTitleGame3_1", tempString);
GetINIString("OptionWnd", "txtTitleGame4_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtTitleGame4_1", tempString);
GetINIString("OptionWnd", "DuelBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.DuelBox", tempString);
GetINIString("OptionWnd", "TradeRejectBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.TradeRejectBox", tempString);
GetINIString("OptionWnd", "CoupleActionBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.CoupleActionBox", tempString);
GetINIString("OptionWnd", "PartyRejectBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.PartyRejectBox", tempString);
GetINIString("OptionWnd", "TradeAcceptClanBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.TradeAcceptClanBox", tempString);
GetINIString("OptionWnd", "TradeAcceptFriendBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.TradeAcceptFriendBox", tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnInteractionOn");
GetINIString("OptionWnd", "btnInteractionOn"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnInteractionOff");
GetINIString("OptionWnd", "btnInteractionOff"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnAutoTradeOn");
GetINIString("OptionWnd", "btnAutoTradeOn"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnAutoTradeOff");
GetINIString("OptionWnd", "btnAutoTradeOff"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
// interface tab
GetINIString("OptionWnd", "txtTitleInterface1_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtTitleInterface1_1", tempString);
GetINIString("OptionWnd", "txtTitleInterface2_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtTitleInterface2_1", tempString);
GetINIString("OptionWnd", "txtScreenshot"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtScreenshot", tempString);
GetINIString("OptionWnd", "DropItemBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.DropItemBox", tempString);
GetINIString("OptionWnd", "OpacityBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.OpacityBox", tempString);
GetINIString("OptionWnd", "CursorBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.CursorBox", tempString);
GetINIString("OptionWnd", "ArrowBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.ArrowBox", tempString);
GetINIString("OptionWnd", "SystemTutorialBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.SystemTutorialBox", tempString);
GetINIString("OptionWnd", "GametipBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.GametipBox", tempString);
GetINIString("OptionWnd", "HideTutorialBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.HideTutorialBox", tempString);
GetINIString("OptionWnd", "NameBox2"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.NameBox2", tempString);
GetINIString("OptionWnd", "NameBox3"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.NameBox3", tempString);
GetINIString("OptionWnd", "NameBox4"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.NameBox4", tempString);
GetINIString("OptionWnd", "NameBox5"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.NameBox5", tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnDisableAllHelpOn");
GetINIString("OptionWnd", "btnDisableAllHelpOn"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnDisableAllHelpOff");
GetINIString("OptionWnd", "btnDisableAllHelpOff"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnShowAllNamesOn");
GetINIString("OptionWnd", "btnShowAllNamesOn"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.btnShowAllNamesOff");
GetINIString("OptionWnd", "btnShowAllNamesOff"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
// DamageTextTab
GetINIString("OptionWnd", "txtDamageTextMainTitle1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.DamageTextTabScrollArea.txtDamageTextMainTitle1", tempString);
GetINIString("OptionWnd", "txtTitleDamageText1_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.DamageTextTabScrollArea.txtTitleDamageText1_1", tempString);
GetINIString("OptionWnd", "ScreenDamageBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.DamageTextTabScrollArea.ScreenDamageBox", tempString);
GetINIString("OptionWnd", "txtTitleDamageText2_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.DamageTextTabScrollArea.txtTitleDamageText2_1", tempString);
GetINIString("OptionWnd", "WorldDamageBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.DamageTextTabScrollArea.WorldDamageBox", tempString);
// shortcut tab
GetINIString("OptionWnd", "txtActualKeyCombinationTitle"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.ShortcutTab.AssignKeyBoxWnd.txtActualKeyCombinationTitle", tempString);
GetINIString("OptionWnd", "txtNewKeyCombinationTitle"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.ShortcutTab.AssignKeyBoxWnd.txtNewKeyCombinationTitle", tempString);
GetINIString("OptionWnd", "txtNoticeKeyCombinationTitle"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.ShortcutTab.AssignKeyBoxWnd.txtNoticeKeyCombinationTitle", tempString);
// Chat Channel Tab
GetINIString("OptionWnd", "txtChannelChatMainTitle1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.ChannelChatTab.txtChannelChatMainTitle1", tempString);
GetINIString("OptionWnd", "txtChannelAssignTitle"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.ChannelChatTab.txtChannelAssignTitle", tempString);
GetINIString("OptionWnd", "txtDisableBoxMsg"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.ChannelChatTab.ChannelChatDisableBox.txtDisableBoxMsg", tempString);
GetINIString("OptionWnd", "CheckBoxSystem"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.ChannelChatTab.CheckBoxSystem", tempString);
GetINIString("OptionWnd", "CheckBoxItem"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.ChannelChatTab.CheckBoxItem", tempString);
tempButtonHandle = GetButtonHandle("OptionWnd.ChannelChatTab.btnResetCurrentChat");
GetINIString("OptionWnd", "btnResetCurrentChat"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
script_OptionWnd.InitChannelChatOption();
// Common Chat Tab
GetINIString("OptionWnd", "txtCommonChatMainTitle1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.CommonChatTab.txtCommonChatMainTitle1", tempString);
GetINIString("OptionWnd", "txtTitleCommonChat1_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.CommonChatTab.txtTitleCommonChat1_1", tempString);
GetINIString("OptionWnd", "txtTitleCommonChat2_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.CommonChatTab.txtTitleCommonChat2_1", tempString);
GetINIString("OptionWnd", "TransparencyChatBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.CommonChatTab.TransparencyChatBox", tempString);
GetINIString("OptionWnd", "SystemMsgBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.CommonChatTab.SystemMsgBox", tempString);
GetINIString("OptionWnd", "SystemMessageBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.CommonChatTab.SystemMessageBox", tempString);
GetINIString("OptionWnd", "CheckBoxItem"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.CommonChatTab.ItemBox", tempString);
GetINIString("OptionWnd", "NotShowInChatChannelBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("OptionWnd.CommonChatTab.NotShowInChatChannelBox", tempString);
// MonIca_Intarface Tab
GetINIString("OptionWnd", "txtExInterfaceMainTitle1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtExInterfaceMainTitle1", tempString);
GetINIString("OptionWnd", "txtTitleExInterface1_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtTitleExInterface1_1", tempString);
GetINIString("OptionWnd", "txtSumPetIconBuffSizeTitle"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtSumPetIconBuffSizeTitle", tempString);
GetINIString("OptionWnd", "RestoreToggleBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.RestoreToggleBox", tempString);
GetINIString("OptionWnd", "DispelCelestialShieldBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.DispelCelestialShieldBox", tempString);
GetINIString("OptionWnd", "DispelArcaneShieldBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.DispelArcaneShieldBox", tempString);
GetINIString("OptionWnd", "txtDispelArcaneShieldMP"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtDispelArcaneShieldMP", tempString);
GetINIString("OptionWnd", "txtNoblesseTypeComboBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtNoblesseTypeComboBox", tempString);
j = class'UIAPI_COMBOBOX'.static.GetSelectedNum("MonIca_InterfaceTab.ExInterfaceTabScrollArea.NoblesseTypeComboBox");
class'UIAPI_COMBOBOX'.static.Clear("MonIca_InterfaceTab.ExInterfaceTabScrollArea.NoblesseTypeComboBox");
for (i = 0; i < 3; i++)
{
GetINIString("OptionWnd", "NoblesseTypeComboBox_" $ i $ Language, tempString, LANGUAGEINI);
class'UIAPI_COMBOBOX'.static.AddString("MonIca_InterfaceTab.ExInterfaceTabScrollArea.NoblesseTypeComboBox", tempString);
}
class'UIAPI_COMBOBOX'.static.SetSelectedNum("MonIca_InterfaceTab.ExInterfaceTabScrollArea.NoblesseTypeComboBox", j);
GetINIString("OptionWnd", "NoblesseNotifyBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.NoblesseNotifyBox", tempString);
GetINIString("OptionWnd", "DebuffTimerBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.DebuffTimerBox", tempString);
GetINIString("OptionWnd", "DebuffAlertBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.DebuffAlertBox", tempString);
GetINIString("OptionWnd", "DisarmAlertBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.DisarmAlertBox", tempString);
GetINIString("OptionWnd", "txtTitleExInterface2_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtTitleExInterface2_1", tempString);
GetINIString("OptionWnd", "PlayerCastInfoBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.PlayerCastInfoBox", tempString);
GetINIString("OptionWnd", "TargetCastInfoBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.TargetCastInfoBox", tempString);
GetINIString("OptionWnd", "EnemyCastInfoNormalBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.EnemyCastInfoNormalBox", tempString);
GetINIString("OptionWnd", "CancelNormalBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.CancelNormalBox", tempString);
GetINIString("OptionWnd", "AutoPotionBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.AutoPotionBox", tempString);
GetINIString("OptionWnd", "OverlayWarning_LowHealthBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.OverlayWarning_LowHealthBox", tempString);
GetINIString("OptionWnd", "TargetLockBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.TargetLockBox", tempString);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtExtraInvSlotValue", GetMyINIString(20083) @ Right(class'UIAPI_TEXTBOX'.static.GetText("MonIca_InterfaceTab.txtExtraInvSlotValue"), 1));
GetINIString("OptionWnd", "txtExtraInvSlotTitle"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtExtraInvSlotTitle", tempString);
GetINIString("OptionWnd", "txtTitleExInterface3_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtTitleExInterface3_1", tempString);
GetINIString("OptionWnd", "OlympiadMatchInfoBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.OlympiadMatchInfoBox", tempString);
GetINIString("OptionWnd", "EnemyCastInfoOlympiadBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.EnemyCastInfoOlympiadBox", tempString);
GetINIString("OptionWnd", "CancelOlympiadBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.CancelOlympiadBox", tempString);
GetINIString("OptionWnd", "EnemyCastInfoOverlayBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.EnemyCastInfoOverlayBox", tempString);
GetINIString("OptionWnd", "ItemSkillCooldownBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.ItemSkillCooldownBox", tempString);
GetINIString("OptionWnd", "OverlayWarning_LifeForceBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.OverlayWarning_LifeForceBox", tempString);
GetINIString("OptionWnd", "DispelSubCelestialBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.DispelSubCelestialBox", tempString);
GetINIString("OptionWnd", "RestoreOlympiadTargetBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.RestoreOlympiadTargetBox", tempString);
GetINIString("OptionWnd", "RecordOlympiadMatchBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.RecordOlympiadMatchBox", tempString);
GetINIString("OptionWnd", "txtTitleExInterface4_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtTitleExInterface4_1", tempString);
GetINIString("OptionWnd", "HighlightPlayerBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.HighlightPlayerBox", tempString);
GetINIString("OptionWnd", "HighlightPlayerPetBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.HighlightPlayerPetBox", tempString);
GetINIString("OptionWnd", "HighlightScaleBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.HighlightScaleBox", tempString);
GetINIString("OptionWnd", "HighlightItemDropBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.HighlightItemDropBox", tempString);
GetINIString("OptionWnd", "HighlightTargetBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.HighlightTargetBox", tempString);
GetINIString("OptionWnd", "txtHighlightPartyMember"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtHighlightPartyMember", tempString);
GetINIString("OptionWnd", "txtHighlightPartyLeader"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtHighlightPartyLeader", tempString);
GetINIString("OptionWnd", "txtHighlightUnionLeader"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtHighlightUnionLeader", tempString);
GetINIString("OptionWnd", "txtHighlightPartyPet"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtHighlightPartyPet", tempString);
GetINIString("OptionWnd", "txtTitleExInterface5_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtTitleExInterface5_1", tempString);
GetINIString("OptionWnd", "SaveLoadPartyBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.SaveLoadPartyBox", tempString);
GetINIString("OptionWnd", "txtTitleExInterface6_1"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtTitleExInterface6_1", tempString);
GetINIString("OptionWnd", "txtDefaultAutoMacroDelay"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MonIca_InterfaceTab.ExInterfaceTabScrollArea.txtDefaultAutoMacroDelay", tempString);
GetINIString("OptionWnd", "DetailClassIconBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.DetailClassIconBox", tempString);
GetINIString("OptionWnd", "AltScreenMessageBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.AltScreenMessageBox", tempString);
GetINIString("OptionWnd", "SkillTooltipExBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.SkillTooltipExBox", tempString);
GetINIString("OptionWnd", "ItemTooltipExBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.ItemTooltipExBox", tempString);
GetINIString("OptionWnd", "ItemTooltipBGBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.ItemTooltipBGBox", tempString);
GetINIString("OptionWnd", "ItemTooltipFullSizeBox"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("MonIca_InterfaceTab.ExInterfaceTabScrollArea.ItemTooltipFullSizeBox", tempString);
tempButtonHandle = GetButtonHandle("MonIca_AnimationTab.bTNAnimationHide");
GetINIString("OptionWnd", "bTNAnimationHide"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("MonIca_InterfaceTab.bTNAnimationShow");
GetINIString("OptionWnd", "bTNAnimationShow"$Language, tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
/////// SummonedWnd ///////
GetINIString("SummonedWnd", "txtHeaderTitle"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("SummonedWnd.MonIca_FrameWnd.txtHeaderTitle", tempString);
class'UIAPI_TEXTBOX'.static.SetText("SummonedWnd.MonIca_FrameWnd.txtHeaderTitle_AS", tempString);
GetINIString("SummonedWnd", "txtHeadCharacteristics"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("SummonedWnd.SummonedWnd_Status.txtHeadCharacteristics", tempString);
GetINIString("SummonedWnd", "txtShotsConsume"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("SummonedWnd.SummonedWnd_Status.txtShotsConsume", tempString);
/////// PetWnd ///////
GetINIString("PetWnd", "txtHeaderTitle"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("PetWnd.MonIca_FrameWnd.txtHeaderTitle", tempString);
class'UIAPI_TEXTBOX'.static.SetText("PetWnd.MonIca_FrameWnd.txtHeaderTitle_AS", tempString);
GetINIString("SummonedWnd", "txtHeadCharacteristics"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("PetWnd.PetWnd_Status.txtHeadCharacteristics", tempString);
GetINIString("SummonedWnd", "txtShotsConsume"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("PetWnd.PetWnd_Status.txtShotsConsume", tempString);
/////// PartyWnd ///////
script_PartyWnd = PartyWnd(GetScript("PartyWnd"));
GetINIString("String"$Language, string(20016), tempString, LANGUAGEINI);
script_PartyWnd.cbCrownTooltip = tempString;
for (i=0; i < 8; i ++)
{
GetINIString("String"$Language, string(20007+i), tempString, LANGUAGEINI);
script_PartyWnd.arrBuffTooltipText[i]=tempString;
GetINIString("String"$Language, string(20015), tempString, LANGUAGEINI);
script_PartyWnd.m_PetClassIcon[i].SetTooltipCustomType(MakeTooltipSimpleText(tempString));
}
/////// ExpBarWnd ///////
GetINIString("ExpBarWnd", "txtExpBarAdenaHide"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("ExpBarWnd.txtExpBarAdenaHide", tempString);
/////// MacroEditWnd_IconList ///////
GetINIString("MacroEditWnd_IconList", "macroFirst"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MacroEditWnd.MacroEditWnd_IconList.macroFirst", tempString);
GetINIString("MacroEditWnd_IconList", "macroSkills"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MacroEditWnd.MacroEditWnd_IconList.macroSkills", tempString);
GetINIString("MacroEditWnd_IconList", "macroAug"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MacroEditWnd.MacroEditWnd_IconList.macroAug", tempString);
GetINIString("MacroEditWnd_IconList", "macroSets"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("MacroEditWnd.MacroEditWnd_IconList.macroSets", tempString);
/////// ShortCutWnd ///////
script_ShortcutWnd = ShortcutWnd(GetScript("ShortcutWnd"));
GetINIString("String"$Language, string(20017), tempString, LANGUAGEINI);
script_ShortcutWnd.instanceZoneString = tempString;
/////// Tooltip ///////
script_Tooltip = Tooltip(GetScript("Tooltip"));
script_Tooltip.currLanguage = currLanguage;
/////// PetStatusWnd ///////
script_PetStatusWnd = PetStatusWnd(GetScript("PetStatusWnd"));
/////// SummonedStatusWnd ///////
script_SummonedStatusWnd = SummonedStatusWnd(GetScript("SummonedStatusWnd"));
GetINIString("String"$Language, string(20051), tempString, LANGUAGEINI); // all
script_PetStatusWnd.arrBuffTooltipText[0] = tempString;
script_SummonedStatusWnd.arrBuffTooltipText[0] = tempString;
GetINIString("String"$Language, string(20012), tempString, LANGUAGEINI); // buff + debuff
script_PetStatusWnd.arrBuffTooltipText[1] = tempString;
script_SummonedStatusWnd.arrBuffTooltipText[1] = tempString;
GetINIString("String"$Language, string(20014), tempString, LANGUAGEINI); // d/s + debuff
script_PetStatusWnd.arrBuffTooltipText[2] = tempString;
script_SummonedStatusWnd.arrBuffTooltipText[2] = tempString;
GetINIString("String"$Language, string(20009), tempString, LANGUAGEINI); // d/s + debuff
script_PetStatusWnd.arrBuffTooltipText[3] = tempString;
script_SummonedStatusWnd.arrBuffTooltipText[3] = tempString;
GetINIString("String"$Language, string(20007), tempString, LANGUAGEINI); // don't show
script_PetStatusWnd.arrBuffTooltipText[4] = tempString;
script_SummonedStatusWnd.arrBuffTooltipText[4] = tempString;
/////// RecipeManufactureWnd ///////
/////// RecipeBuyManufactureWnd ///////
script_RecipeManufactureWnd = RecipeManufactureWnd(GetScript("RecipeManufactureWnd"));
script_RecipeBuyManufactureWnd = RecipeBuyManufactureWnd(GetScript("RecipeBuyManufactureWnd"));
script_RecipeManufactureWnd.currLanguage = currLanguage;
script_RecipeBuyManufactureWnd.currLanguage = currLanguage;
GetINIString("RecipeManufactureWnd", "AvailableTB"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("RecipeManufactureWnd.AvailableTB", tempString);
class'UIAPI_TEXTBOX'.static.SetText("RecipeBuyManufactureWnd.AvailableTB", tempString);
GetINIString("RecipeManufactureWnd", "QuantityTB"$Language, tempString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("RecipeManufactureWnd.QuantityTB", tempString);
class'UIAPI_TEXTBOX'.static.SetText("RecipeBuyManufactureWnd.QuantityTB", tempString);
GetINIString("RecipeManufactureWnd", "QuantityCB"$Language, tempString, LANGUAGEINI);
class'UIAPI_CHECKBOX'.static.SetTitle("RecipeManufactureWnd.QuantityCB", tempString);
class'UIAPI_CHECKBOX'.static.SetTitle("RecipeBuyManufactureWnd.QuantityCB", tempString);
GetINIString("RecipeManufactureWnd", "btnStop"$Language, tempString, LANGUAGEINI);
tempButtonHandle = GetButtonHandle("RecipeManufactureWnd.btnStop");
tempButtonHandle.SetNameText(tempString);
tempButtonHandle = GetButtonHandle("RecipeBuyManufactureWnd.btnStop");
tempButtonHandle.SetNameText(tempString);
/////// SaveLoadParty ///////
tempButtonHandle = GetButtonHandle("SaveLoadParty.BTnLoad");
GetINIString("String"$Language, string(20082), tempString, LANGUAGEINI);
tempButtonHandle.SetNameText(tempString);
class'UIAPI_TEXTBOX'.static.SetText("SaveLoadParty.Log", GetMyINIString(20073));
class'UIAPI_TEXTBOX'.static.SetTextColor("SaveLoadParty.Log", colorDefaultWhite);
/////// MonIca_AutoPotionWnd ///////
class'UIAPI_TEXTBOX'.static.SetText("MonIca_AutoPotionWnd.AutoPotionSettings.txtAutoPotionTitle1", GetMyINIString(20084));
class'UIAPI_TEXTBOX'.static.SetText("MonIca_AutoPotionWnd.AutoPotionSettings.txtAutoPotionTitle2", GetMyINIString(20085));
class'UIAPI_TEXTBOX'.static.SetText("MonIca_AutoPotionWnd.AutoPotionSettings.txtAutoPotionUseTitle", GetMyINIString(20088));
class'UIAPI_TEXTBOX'.static.SetText("MonIca_AutoPotionWnd.AutoPotionSettings.txtAutoPotionCooldownTitle", GetMyINIString(20089));
}
// edKith 07.01.2016
// added language switch support for Russian Localization
//edKith 07.01.2016
//добавлена поддержка переключения языка для русской локализации
class OptionWnd extends UICommonAPI;
const PARTY_MODIFY_REQUEST = 0;
const OPTION_CHANGE = 1;
//мєђл¦н„° н‘њм‹њм њн•њ мЉ¬лќјмќґлЌ” м•Ўм… //Character display restriction slider action //Действие ползунка ограничения отображения символов
const RENDERCHARACTERLIMIT_MIN = 10;
const RENDERCHARACTERLIMIT_MAX = 400;
var bool bPartyMember;
var bool bPartyMaster;
//var bool bPartyRoomMaster;
//파티루팅도중에는 루팅콤보박스를 л§‰мњјл ¤кі н•њл‹¤
//Try to block the rooting combo box during party rooting
//Попробуем заблокировать поле со списком рутирования во время группового рутирования
var bool NowLooting; // always false?
var int nPixelShaderVersion;
var int nVertexShaderVersion;
var Array<ResolutionInfo> ResolutionList;
var Array<int> RefreshRateList;
var bool bShow;
var bool m_bL2Shader;
var bool m_bDepthBufferShadow;
var bool m_bDOF;
var bool m_bShaderWater;
// м·Ём†Њ н•л©ґ лђлЏЊл¦¬кё° мњ„н•ґм„њ м€м „ кІѓмќ„ кё°м–µн•кі мћ€мќ„ ліЂм€ - lancelot 2006. 6. 13.
// Variable that remembers the old one to be restored when canceled - lancelot 2006. 6. 13.
// Переменная, запоминающая старую, которая будет восстановлена ​​при отмене - lancelot 2006. 6. 13.
var int m_iPrevSoundTick;
var int m_iPrevMusicTick;
var int m_iPrevSystemTick;
var int m_iPrevTutorialTick;
// 파티매м№л°©м—ђ 입장한 мѓЃнѓњмќёк°Ђ? 2006.10.19 ttmayrin
// Are you in the party matching room? 2006.10.19 ttmayrin
// Вы в комнате для вечеринок? 19.10.2006 ттмайрин
var bool m_bPartyMatchRoomState; // always false?
//solasys-нЏ¬к·ён…ЊмЉ¤нЉёліЂм€ /solasys-fog test variable // тестовая переменная solasys-fog
var bool m_bAirState;
var WindowHandle Me;
var WindowHandle VideoTabScroll;
var TabHandle tab_TabCtrl;
var DialogBox dScript;
/////////////////////////// by monokini ///////////////////////////////
var ButtonHandle btn_FullscreenMode;
var ButtonHandle btn_WindowMode;
var ButtonHandle btn_StyleHF;
var ButtonHandle btn_StyleMN;
var ButtonHandle btn_StyleES;
var ButtonHandle btn_StyleAS;
var string nextWindowMode; // for save new value fullscreen/window mode for ApplyVideoOption()
// var bool prevWindowMode; // detect changes fullscreen/window mode by alt+enter or default window button
// var bool currWindowMode; // detect changes fullscreen/window mode by alt+enter or default window button
var bool fakeModifyGraphicPreset; // for changes position of presetgraphic slider without "onModify" event
var bool isLoadUIComplete;
var bool skipMuteCheckBox;
var float keepGamma;
var int selectedTab;
var string graphicPresetName[5];
var string windowModeName[3];
var string currentLanguage;
var bool openAnimation;
var string windowStyle;
var int subWindowStyle; // sub style for HF style preset
function OnLoad()
{
local int i;
local int nMultiSample;
local bool bEnableEngSelection;
local ELanguageType Language;
local string strResolution;
dScript = DialogBox(GetScript("DialogBox"));
bPartyMember = false;
bPartyMaster = false;
// bPartyRoomMaster = false;
InitHandle();
if (Me == None) return; // Critical safety check
m_bAirState = false;
// 2006/03/26 - added register state by NeverDie. multi-registering states can only be placed in uc...
RegisterState( "OptionWnd", "GamingState" );
RegisterState( "OptionWnd", "LoginState" );
// Shader version
GetShaderVersion( nPixelShaderVersion, nVertexShaderVersion );
// Monitor resolution list
GetResolutionList( ResolutionList );
for( i = 0; i < ResolutionList.Length; ++i )
{
strResolution = "" $ ResolutionList[ i ].nWidth $ "*" $ ResolutionList[ i ].nHeight $ " " $ ResolutionList[ i ].nColorBit $ "bit";
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.ResBox", strResolution );
}
ResetRefreshRate();
SetOptionBool( "Game", "HideDropItem", false );
// Antialiasing
nMultiSample = GetMultiSample();
if( 0 == nMultiSample )
{
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 869 );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.AABox" );
}
else if( 1 == nMultiSample )
{
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 869 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 870 );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AABox" );
}
else if( 2 == nMultiSample )
{
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 869 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 870 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 871 );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AABox" );
}
bEnableEngSelection = IsEnableEngSelection();
Language = GetLanguage();
switch( Language )
{
case LANG_None:
break;
case LANG_Korean:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Korean" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_English:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
break;
case LANG_Japanese:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Japanese" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_Taiwan:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Chinese(Taiwan)" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_Chinese:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "China" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_Thai:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Thai" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_Philippine:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
break;
//edKith
//07.01.2016
//Added Russian Language Support
case LANG_Russia:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Russian" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
default:
break;
}
if( CanUseHDR() )
{
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.HDRBox", 1230 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.HDRBox", 1231 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.HDRBox", 1232 );
}
// 2007/11/16 Now new functions(LoadVideoOption,LoadAudioOption,LoadGameOption) load the ini configuration. - NeverDie
// 16.11.2007 Теперь новые функции (LoadVideoOption,LoadAudioOption,LoadGameOption) загружают ini-конфигурацию. -Никогда не умирай
//InitVideoOption();
//InitAudioOption();
LoadVideoOption();
LoadAudioOption();
LoadConfigureOption();
//LoadGameOption();
/////////////////////////// by monokini ///////////////////////////////
SetSelectedTab(0, true); // set first tab for window ("Video");
if (tab_TabCtrl != None) tab_TabCtrl.HideWindow();
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.EffectVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.MusicVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.SystemVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.TutorialVolumeSliderCtrl");
isLoadUIComplete = true;
SwitchLanguage(); // switch custom text UI elements to current language RU/EN
class'UIAPI_WINDOW'.static.HideWindow( "OptionWnd.btnExpandVideoSettingsOn");
if (Me != None) Me.SetTitlePosOffset(0, 0);
LoadUISettings();
}
function LoadUISettings()
{
// read and setup custom UI style
GetINIString("StyleUI", "WindowStyle", windowStyle, SETTINGSINI);
// default is "MN" style
if (windowStyle == "")
windowStyle = "MN";
if (!GetINIInt("StyleUI", "SubWindowStyle", subWindowStyle, SETTINGSINI))
subWindowStyle = 0;
RequestChangeUIStyle(windowStyle, subWindowStyle);
}
function InitHandle()
{
Me = GetWindowHandle( "OptionWnd" );
VideoTabScroll = GetWindowHandle( "OptionWnd.VideoTabScrollArea" );
tab_TabCtrl = GetTabHandle("OptionWnd.TabCtrl");
btn_FullscreenMode = GetButtonHandle("OptionWnd.btnFullscreenMode");
btn_WindowMode = GetButtonHandle("OptionWnd.btnWindowMode" );
btn_StyleHF = GetButtonHandle("OptionWnd.btnStyleHF");
btn_StyleMN = GetButtonHandle("OptionWnd.btnStyleMN");
btn_StyleES = GetButtonHandle("OptionWnd.btnStyleES");
btn_StyleAS = GetButtonHandle("OptionWnd.btnStyleAS");
}
function OnRegisterEvent()
{
RegisterEvent( EV_DialogOK );
RegisterEvent( EV_DialogCancel );
//нЊЊн‹°лЈЁнЊ…мµм… ліЂкІЅмќ„мњ„н•ґ 다이얼로그에 л°мќ‘н• н•„мљ”к°Ђ 있다.
//Need to respond to dialog to change party routing options.
//Необходимо ответить на диалог, чтобы изменить параметры маршрутизации группы.
//нЊЊн‹°лЈЁнЊ…мќ ліЂкІЅ лЏ™мќ м—¬л¶ЂлҐј л¬јм–ґмґ
//Ask for consent to change party routing
//Запрашиваем согласие на изменение маршрутизации участника
RegisterEvent( EV_AskPartyLootingModify );
//нЊЊн‹°лЈЁнЊ…мќ кІ°кіјлҐј м•Њл ¤м¤Њ
//Informs the result of party routing
//Сообщает результат партийной маршрутизации
RegisterEvent( EV_PartyLootingHasModified);
// S: actor char name
// d: nItemRoutingType
//solasys-포그테스트 //solasys-fog test / тест solasys-тумана
RegisterEvent( EV_AirStateOn );
RegisterEvent( EV_AirStateOff );
RegisterEvent( EV_MinFrameRateChanged );
//RegisterEvent( EV_PartyMemberChanged );
RegisterEvent( EV_PartyHasDismissed ); //нЊЊн‹°к°Ђ н•ґмІґлђм—€мќЊ //Party has been disbanded //Партия распущена
RegisterEvent( EV_OustPartyMember ); //파티에서 추방당했음 //Kicked out of the party //Выгнали из вечеринки
RegisterEvent( EV_BecamePartyMember ); //нЊЊн‹°мќ л©¤лІ„к°Ђ лђЁ //Become a member of the party //Стать членом партии
RegisterEvent( EV_BecamePartyMaster ); //파티장이됨 //Become the party leader //Станьте лидером партии
RegisterEvent( EV_HandOverPartyMaster ); //파티장을 양도함 //Transfer the party leader //Переносим лидера партии
RegisterEvent( EV_RecvPartyMaster ); //파티장을 양도받음 //Take over the party leader //Захватываем лидера партии
// RegisterEvent( EV_PartyMatchRoomStart ); //파티방장이됨 //Become the party leader //Станьте лидером партии
RegisterEvent( EV_PartyMatchRoomClose ); //파티방닫음 //close party room //закрываем комнату для вечеринки
RegisterEvent( EV_WithdrawParty ); //파티에서 탈퇴함 //Leave from party //Выходим из вечеринки
RegisterEvent(EV_AITimer); // by monokini for switch window style
RegisterEvent( EV_ResetDevice );
}
function OnEvent( int a_EventID, String a_Param )
{
local bool bMinFrameRate;
switch( a_EventID )
{
case EV_DialogOK:
HandleDialogOK();
break;
case EV_DialogCancel:
HandleDialogCancel();
break;
case EV_MinFrameRateChanged:
InitVideoOption();
bMinFrameRate = GetOptionBool( "Video", "IsKeepMinFrameRate" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.FrameBox", bMinFrameRate);
if(bMinFrameRate)
{
MinFrameRateOn();
}
else
{
MinFrameRateOff();
}
ApplyVideoOption();
break;
//case EV_PartyMemberChanged:
//RefreshLootingBox();
//break;
//solasys-포그테스트 //solasys-fog test // тест solasys-тумана
case EV_AirStateOn:
AirStateOn();
ApplyVideoOption();
break;
case EV_AirStateOff:
AirStateOff();
ApplyVideoOption();
break;
//solasys-end
/////нЊЊн‹°лЈЁнЊ…кґЂл Ё мќґлІ¤нЉё//////////////////jdh84
/////Party rooting related events///////////////////jdh84
/////События, связанные с рутированием вечеринки////////////////////jdh84
//нЊЊн‹°лЈЁнЊ…ліЂкІЅ м‹ мІ л“¤м–ґмґ
//Party routing change request received
//Получен запрос на изменение маршрутизации стороны
case EV_AskPartyLootingModify:
OnAskPartyLootingModify(a_Param);
break;
//нЊЊн‹°лЈЁнЊ…ліЂкІЅ кІ°кіј м•Њл ¤мґ
// Notification of party routing change results
// Уведомление о результатах изменения маршрутизации стороны
case EV_PartyLootingHasModified:
OnPartyLootingHasModified(a_Param);
break;
case EV_WithdrawParty: //탈퇴н•к±°л‚ //Withdraw or //Вывод или
case EV_OustPartyMember: //м¶”л°©л‹№н•к±°л‚ // get kicked out // выгнать
case EV_PartyHasDismissed: //нЊЊн‹°к°Ђ н•ґм‚°лђ л•Њ /.When the party is disbanded //РљРѕРіРґР° партия расформирована
bPartyMember = false;
bPartyMaster = false;
OnPartyHasDismissed();
break;
case EV_BecamePartyMember://нЊЊн‹°мќ л©¤лІ„к°ЂлђЁ //Become a member of the party //Стать членом партии
bPartyMember = true;
bPartyMaster = false;
OnBecamePartyMember(a_Param);
break;
case EV_BecamePartymaster://파티장이됨 //Become the party leader //Станьте лидером партии
bPartyMember = false;
bPartyMaster = true;
OnBecamePartyMaster(a_Param);
break;
case EV_HandOverPartyMaster: //파티장을 양도함 //Transfer the party leader //Переносим лидера партии
bPartyMember = true;
bPartyMaster = false;
OnHandOverPartyMaster();
break;
case EV_RecvPartyMaster: //파티장을 양도받음 //Take over the party leader //Захватываем лидера партии
bPartyMember = false;
bPartyMaster = true;
OnRecvPartyMaster();
break;
case EV_Restart: //리스타트 //перезапуск //restart
bPartyMember = false;
bPartyMaster = false;
OnRestart();
break;
// case EV_PartyMatchRoomStart:
//bPartyRoomMaster = true;
//break;
case EV_PartyMatchRoomClose:
OnPartyMatchRoomClose();
//bPartyRoomMaster = false;
break;
case EV_AITimer:
SwitchWindowStyle(a_Param);
break;
case EV_ResetDevice:
SetupButtonsTexture(a_Param);
break;
}
}
function ResetRefreshRate( optional int a_nWidth, optional int a_nHeight )
{
local int i;
GetRefreshRateList( RefreshRateList, a_nWidth, a_nHeight );
//debug( "RefreshRateList.Length " $ RefreshRateList.Length );
class'UIAPI_COMBOBOX'.static.Clear( "OptionWnd.RefreshRateBox" );
for( i = 0; i < RefreshRateList.Length; ++i )
{
//~ debug( "RefreshRateList[ i ] " $ RefreshRateList[ i ] );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.RefreshRateBox", RefreshRateList[ i ] $ "Hz" );
}
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.RefreshRateBox", 0 );
}
function RefreshLootingBox()
{
local PartyWnd script;
// debug("Refresh looting box");
if(NowLooting)
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
return;
}
if( GetPartyMemberCount() > 0 || m_bPartyMatchRoomState )
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
else
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
script = PartyWnd(GetScript("PartyWnd"));
if(script.AmILeader())
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
}
}
function int GetPawnValue( out int iCurrTick, int iNumTick, int MIN, int MAX )
{
local int iValue;
if(iCurrTick<0 || iCurrTick>=(iNumTick-1))
{
iValue = 10000;
iCurrTick = (iNumTick-1);
}
else
{
iValue = 10+iCurrTick*(MAX-MIN)/(iNumTick-2)-(Sin( Pi*iCurrTick/(iNumTick-2) ) * MAX/3.66);
}
return iValue;
}
function InitVideoOption()
{
local int i;
local int nResolutionIndex;
local float fGamma;
//local float fPawnClippingRange;
//local float fTerrainClippingRange;
local bool bRenderDeco;
local int nPostProcessType;
local bool bShadow;
local int nTextureDetail;
local int nModelDetail;
local int nSkipAnim;
local bool bWaterEffect;
local int nWaterEffectType;
local int nMultiSample;
local int nOption;
local bool bOption;
local bool bL2Shader;
local bool bDOF;
local bool bShaderWater;
local int iPawnValue;
local int iNumTick;
local int RenderActorLimitOpt;
// н™”м§€к°њм„ м…°мќґлЌ” // Picture quality improvement shader // Шейдер улучшения качества изображения - HDRBox
nPostProcessType = GetOptionInt( "Video", "PostProc" );
/* /////////////////////////// by monokini ///////////////////////////////
bOption = false;
bOption = GetOptionBool( "Video", "StartupFullScreen");
prevWindowMode = bOption;
currWindowMode = prevWindowMode;
nextWindowMode = bOption;
//ShowOnScreenMessage(1,2261,2,0,colorGold,2000, "Init" @ nextWindowMode);
SetupButtonsWindowModeTexture(bOption);
////////////////////////////////////////////////////////////////////// */
// 해상도 // resolution // разрешение - ResBox
nResolutionIndex = GetResolutionIndex();
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ResBox", nResolutionIndex );
// 주사율 // refresh rate // частота обновления - RefreshRateBox
GetRefreshRateList( RefreshRateList );
class'UIAPI_COMBOBOX'.static.Clear( "OptionWnd.RefreshRateBox" );
for( i = 0; i < RefreshRateList.Length; ++i )
{
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.RefreshRateBox", RefreshRateList[ i ] $ "Hz" );
}
nOption = GetOptionInt( "Video", "RefreshRate" );
for( i = 0; i < RefreshRateList.Length; ++i )
{
//~ debug( "RefreshRateList[ " $ i $ " ] = " $ RefreshRateList[ i ] );
if( RefreshRateList[ i ] == nOption )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.RefreshRateBox", i );
}
// 감마값 // gamma value // значение гаммы - GammaBox
fGamma = GetOptionFloat( "Video", "Gamma" );
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.GammaBoxSliderCtrl", int((fGamma-0.4f)/0.01f));
// м‹њм•ј-мєђл¦н„° // view-character // просмотр-СЃРёРјРІРѕР» - CharBox
nOption = GetOptionInt( "Video", "PawnClippingRange" );
nOption = 4-nOption;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharRenderRadiusSliderCtrl", nOption);
// мєђл¦н„°н‘њм‹њм њн•њ // Restrict character display // Ограничить отображение символов - RenderCharacterCount
RenderActorLimitOpt = GetOptionInt( "Video", "RenderActorLimitOpt" );
iNumTick = class'UIAPI_SLIDERCTRL'.static.GetTotalTickCount("OptionWnd.CharacterLimitSliderCtrl");
iPawnValue = GetPawnValue( RenderActorLimitOpt, iNumTick, RENDERCHARACTERLIMIT_MIN, RENDERCHARACTERLIMIT_MAX );
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharacterLimitSliderCtrl", RenderActorLimitOpt);
SetOptionInt( "Video", "RENDERCHARACTERCOUNT", iPawnValue );
// CheckGraphicPreset is checked after any change
// мµњм†Њн”„л €мћ„мњ м§Ђ // Maintain minimum frame // Поддерживаем минимальный кадр - FrameBox
bOption = GetOptionBool( "Video", "IsKeepMinFrameRate" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.FrameBox", bOption );
if (bOption)
MinFrameRateOn();
else
MinFrameRateOff();
// 텍스쳐디테일 // texture details // детали текстуры - TextureBox
nTextureDetail = GetOptionInt( "Video", "TextureDetail" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.TextureBox", Max( 0, Min( 2, nTextureDetail ) ) );
// м‹њм•ј-м§Ђн• // field of view - terrain // поле зрения - местность - TerrainBox
nOption = GetOptionInt( "Video", "TerrainClippingRange" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.TerrainBox", nOption );
// 그림자 // shadow // тень - ShadowBox
bShadow = GetOptionBool( "Video", "PawnShadow" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ShadowBox", bShadow );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_"$bShadow);
// 모델링디테일 // modeling details // детали моделирования - ModelBox
nModelDetail = GetOptionInt( "Video", "ModelDetail" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ModelBox", nModelDetail );
// лЄЁм…л””н…Њмќј // motion detail // детали движения - AnimBox
nSkipAnim = GetOptionInt( "Video", "SkipAnim" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AnimBox", nSkipAnim );
// 배경효과 // background effect // фоновый эффект - DecoBox
bRenderDeco = GetOptionBool( "Video", "RenderDeco" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DecoBox", bRenderDeco );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_"$bRenderDeco);
// GPUм• л‹€л©”мќґм… // GPU animation // анимация графического процессора- GPUAnimationCheckBox
bOption = GetOptionBool( "Video", "GPUAnimation" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGPUAnimationCheckBox", "MonIca_UI.NewStyle.Checkbox_"$bOption);
if( nVertexShaderVersion < 20 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGPUAnimationCheckBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texGPUAnimationCheckBox", 122);
}
// 안티알리아싱 // anti-aliasing // сглаживание - AABox
nMultiSample = GetMultiSample();
if( nMultiSample > 0 && !( 3 <= nPostProcessType && nPostProcessType <= 5 ) )
{
nOption = GetOptionInt( "Video", "AntiAliasing" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AABox", nOption );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AABox" );
}
else
{
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AABox", 0 );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.AABox" );
}
// 텍스쳐필터링 // texture filtering // фильтрация текстур - TriBox
bOption = GetOptionBool( "Video", "UseTrilinear" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TriBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_"$bOption);
///////////////////////////////////////////
// Added on 2006/03/21 by NeverDie
// 기상효과 // weather effect // погодный эффект - WeatherEffectComboBox
nOption = GetOptionInt( "Video", "WeatherEffect" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.WeatherEffectComboBox", nOption );
// л°м‚¬нљЁкіј // reflection effect // эффект отражения - ReflectBox
if( nPixelShaderVersion < 12 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
}
else
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
bWaterEffect = GetOptionBool( "L2WaterEffect", "IsUseEffect" );
nWaterEffectType = GetOptionInt( "L2WaterEffect", "EffectType" );
if( !bWaterEffect )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
else if( nWaterEffectType == 1 )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 1 );
else if ( nWaterEffectType == 2 )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 2 );
else
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
}
//~ debug ("포스트 프로세스타입" @ nPostProcessType); //~ debug ("Post Process Type" @ nPostProcessType); //~ отладка ("Тип постпроцесса" @ nPostProcessType);
if( 0 <= nPostProcessType && nPostProcessType <= 5 )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", nPostProcessType );
else
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", 0 );
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0
bL2Shader = GetOptionBool( "Video", "L2Shader" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", bL2Shader );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_"$bL2Shader);
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
if(bL2Shader)
{
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 255);
}
else
{
//class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
}
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0 - DOF?
bDOF = GetOptionBool( "Video", "S30DOFBOX" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", bDOF );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_"$bDOF);
//м…°мќґлЌ” 3.0 - л¬јнљЁкіј //Shader 3.0 - Water Effect //Шейдер 3.0 — Рффект РІРѕРґС‹
bShaderWater = GetOptionBool( "Video", "S30WaterEffectBox" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", bShaderWater );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_"$bShaderWater);
//셰이더 3.0 - 그림자. //Shader 3.0 - Shadows. //Шейдер 3.0 - Тени.
m_bDepthBufferShadow = GetOptionBool( "Video", "S30ShadowBox" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", m_bDepthBufferShadow );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_"$m_bDepthBufferShadow);
}
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
}
//백그라운드 실행성능 낮추기 //Reduce background execution performance //Уменьшаем производительность фонового выполнения
bOption = GetOptionBool( "Game", "UseLazyMode");
//~ debug("л €мќґм§ЂлЄЁл“њк°Ђм ёмЁ лЌ°мќґн„°"@ bOption); //~ debug("Rage mode imported data"@ bOption); //~ debug("Рмпортированные данные режима ярости"@ bOption);
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.LazyModeBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texLazyModeBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
//nOption = GetOptionInt("Game", "LayoutDF");
//~ Debug ("кё°ліё л €мќґм•„м›ѓ лІ€нё:" @ nOption); //~ Debug ("Default layout number:" @ nOption); //~ Отладка ("Номер макета РїРѕ умолчанию:" @ nOption);
//class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.DefaultPositionBox", nOption );
}
function InitAudioOption()
{
local float fSoundVolume;
local float fMusicVolume;
local float fWavVoiceVolume;
local float fOggVoiceVolume;
// lancelot 2006. 6. 13.
local int iSoundVolume;
local int iMusicVolume;
local int iSystemVolume;
local int iTutorialVolume;
skipMuteCheckBox = true;
if (GetOptionBool( "Audio", "AudioMuteOn" ) == true)
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.mutecheckbox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.Checkbox_true");
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.Checkbox_false");
}
if( CanUseAudio() )
{
// 효과음볼륨 // sound effect volume // громкость звукового эффекта - EffectVolumeSliderCtrl
fSoundVolume = GetOptionFloat( "Audio", "SoundVolume" );
if( 0.0f <= fSoundVolume && fSoundVolume < 0.2f )
iSoundVolume=0;//Merc moded there, default: 0, mine: 1
else if( 0.2f <= fSoundVolume && fSoundVolume < 0.4f )
iSoundVolume=1;
else if( 0.4f <= fSoundVolume && fSoundVolume < 0.6f )
iSoundVolume=2;
else if( 0.6f <= fSoundVolume && fSoundVolume < 0.8f )
iSoundVolume=3;
else if( 0.8f <= fSoundVolume && fSoundVolume < 1.0f )
iSoundVolume=4;
else if( 1.0f <= fSoundVolume )
iSoundVolume=5;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.EffectVolumeSliderCtrl", iSoundVolume);
// 음악볼륨 // music volume // громкость музыки - MusicVolumeSliderCtrl
fMusicVolume = GetOptionFloat( "Audio", "MusicVolume" );
if( 0.0f <= fMusicVolume && fMusicVolume < 0.2f )
iMusicVolume=0;//Merc moded there, default: 0, mine: 2
else if( 0.2f <= fMusicVolume && fMusicVolume < 0.4f )
iMusicVolume=1;
else if( 0.4f <= fMusicVolume && fMusicVolume < 0.6f )
iMusicVolume=2;
else if( 0.6f <= fMusicVolume && fMusicVolume < 0.8f )
iMusicVolume=3;
else if( 0.8f <= fMusicVolume && fMusicVolume < 1.0f )
iMusicVolume=4;
else if( 1.0f <= fMusicVolume )
iMusicVolume=5;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.MusicVolumeSliderCtrl", iMusicVolume);
// 시스템음성 // system voice // системный голос - SystemVolumeSliderCtrl
fWavVoiceVolume = GetOptionFloat( "Audio", "WavVoiceVolume" );
if( 0.0f <= fWavVoiceVolume && fWavVoiceVolume < 0.2f )
iSystemVolume=0;
else if( 0.2f <= fWavVoiceVolume && fWavVoiceVolume < 0.4f )
iSystemVolume=1;
else if( 0.4f <= fWavVoiceVolume && fWavVoiceVolume < 0.6f )
iSystemVolume=2;
else if( 0.6f <= fWavVoiceVolume && fWavVoiceVolume < 0.8f )
iSystemVolume=3;
else if( 0.8f <= fWavVoiceVolume && fWavVoiceVolume < 1.0f )
iSystemVolume=4;
else if( 1.0f <= fWavVoiceVolume )
iSystemVolume=5;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.SystemVolumeSliderCtrl", iSystemVolume);
// нЉњн† л¦¬м–јмќЊм„± // Tutorial voice // Обучающий голос - TutorialBox
fOggVoiceVolume = GetOptionFloat( "Audio", "OggVoiceVolume" );
if( 0.0f <= fOggVoiceVolume && fOggVoiceVolume < 0.2f )
iTutorialVolume=0;
else if( 0.2f <= fOggVoiceVolume && fOggVoiceVolume < 0.4f )
iTutorialVolume=1;
else if( 0.4f <= fOggVoiceVolume && fOggVoiceVolume < 0.6f )
iTutorialVolume=2;
else if( 0.6f <= fOggVoiceVolume && fOggVoiceVolume < 0.8f )
iTutorialVolume=3;
else if( 0.8f <= fOggVoiceVolume && fOggVoiceVolume < 1.0f )
iTutorialVolume=4;
else if( 1.0f <= fOggVoiceVolume )
iTutorialVolume=5;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.TutorialVolumeSliderCtrl", iTutorialVolume);
m_iPrevSoundTick=iSoundVolume;
m_iPrevMusicTick=iMusicVolume;
m_iPrevSystemTick=iSystemVolume;
m_iPrevTutorialTick=iTutorialVolume;
}
else
{
SetAudioSliderDisable(122);
}
/// mute all volume
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox" ) )
{
SetAudioSliderDisable(122);
SetSoundVolume( 0.f );
SetMusicVolume( 0.f );
SetWavVoiceVolume( 0.f );
SetOggVoiceVolume( 0.f );
SetOptionBool("Audio", "AudioMuteOn", true);
}
else
{
SetAudioSliderDisable(255);
}
skipMuteCheckBox = false;
}
function SetAudioSliderDisable(int alpha, optional string name)
{
/* if (alpha == 255)
{
class'UIAPI_SLIDERCTRL'.static.EnableWindow("OptionWnd.EffectVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.EnableWindow("OptionWnd.MusicVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.EnableWindow("OptionWnd.SystemVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.EnableWindow("OptionWnd.TutorialVolumeSliderCtrl");
}
else
{
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.EffectVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.MusicVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.SystemVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.TutorialVolumeSliderCtrl");
}
*/
if (name != "")
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd." $ name, alpha);
else
{
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd.EffectVolumeSliderCtrl", alpha);
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd.MusicVolumeSliderCtrl", alpha);
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd.SystemVolumeSliderCtrl", alpha);
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd.TutorialVolumeSliderCtrl", alpha);
}
}
function InitConfigureOption()
{
local bool bOption;
// м–ём–ґм„ нѓќ // Select language // Выбор языка - LanguageBox
bOption = GetOptionBool( "Game", "IsNative" );
if( bOption )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.LanguageBox", 0 );
else
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.LanguageBox", 1 );
// 키보드보안 // keyboard security // безопасность клавиатуры - KeyboardBox
if( IsUseKeyCrypt() )
{
if( IsCheckKeyCrypt() )
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", true );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_true");
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_false");
}
if( IsEnableKeyCrypt() )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 122);
}
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 122);
}
// 게임패드 // gamepad // геймпад - Box
bOption = false;
bOption = GetOptionBool( "Game", "UseJoystick" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.JoypadBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texJoypadBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
if( CanUseJoystick() )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.JoypadBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texJoypadBox", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.JoypadBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texJoypadBox", 122);
}
//л§€мљ°мЉ¤мљ°нЃґл¦ //Right mouse click //Щелкните правой РєРЅРѕРїРєРѕР№ мыши - RightClickBox
bOption = GetOptionBool( "Game", "RightClickBox" );
//~ debug ("л§€мљ°г… мЉ¤ мљ°нЃґл¦" @ bOption); //~ debug ("Right click on mouse" @ bOption); //~ отладка ("Щелкните правой РєРЅРѕРїРєРѕР№ мыши" @ bOption);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.RightClickBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texRightClickBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// м№ґл©”лќјм¶”м Ѓ // camera tracking // отслеживание камеры - CameraBox
bOption = GetOptionBool( "Game", "AutoTrackingPawn" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CameraBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCameraBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
}
function InitGameOption()
{
local int nOption,
nTmp;
local bool bOption;
// 파티루팅 // party rooting // партийное укоренение - LootingBox
nOption = GetOptionInt( "Game", "PartyLooting" );
if( class'UIAPI_WINDOW'.static.IsEnableWindow( "OptionWnd.LootingBox" ) )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.LootingBox", nOption );
// 결투 거부 // refuse to duel // отказываемся от дуэли - DuelBox
bOption = GetOptionBool( "Game", "IsRejectingDuel" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DuelBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDuelBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp = int(bOption);
/// added by monokini
if (GetINIBool("Game", "TradeReject", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeRejectBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeRejectBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
//커플 м‹ мІ к±°л¶Ђ //Couple application rejected //Заявка РЅР° пару отклонена- CoupleActionBox
bOption = GetOptionBool( "Game", "IsCoupleAction" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CoupleActionBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCoupleActionBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
if (nTmp == 3)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOff");
}
//нЊЊн‹° м‹ мІ к±°л¶Ђ //Reject party request //Отклонить запрос стороны - PartyRejectBox
bOption = GetOptionBool( "Game", "IsRejectingParty" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.PartyRejectBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texPartyRejectBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
/// added by monokini
if (GetINIBool("Game", "TradeAcceptClan", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptClanBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptClanBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp = int(bOption);
if (GetINIBool("Game", "TradeAcceptFriend", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptFriendBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptFriendBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
if (nTmp == 2)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnAutoTradeOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnAutoTradeOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnAutoTradeOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnAutoTradeOff");
}
}
function InitDamageTextOption()
{
local int nOption;
local bool bOption;
/// added by monokini: 2D Damage Text (by textboxes)
if (GetINIBool("OnScreenText", "ScreenDamage", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.ScreenDamageBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texScreenDamageBox", "MonIca_UI.NewStyle.Checkbox_"$bOption);
/// added by monokini: 3D Damage Text (by emitters)
if (GetINIBool("OnScreenText", "WorldDamage", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.WorldDamageBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texWorldDamageBox", "MonIca_UI.NewStyle.Checkbox_"$bOption);
}
function InitExInterfaceOption()
{
local MonIca_InterfaceTab script_MonIca_InterfaceTab;
script_MonIca_InterfaceTab = MonIca_InterfaceTab(GetScript("OptionWnd.MonIca_InterfaceTab"));
script_MonIca_InterfaceTab.InitStartValues();
}
function InitCommonChatOption()
{
local CommonChatTab script_CommonChatTab;
script_CommonChatTab = CommonChatTab( GetScript( "OptionWnd.CommonChatTab" ) );
script_CommonChatTab.InitCommonChatOption();
}
function InitChannelChatOption()
{
local ChannelChatTab script_ChannelChatTab;
script_ChannelChatTab = ChannelChatTab( GetScript( "OptionWnd.ChannelChatTab" ) );
script_ChannelChatTab.InitChannelChatOption();
}
function InitInterfaceOption()
{
local bool bOption;
local bool bShowOtherPCName;
local int nOption;
local int nTmp;
local RadarMapWnd script_radar;
script_radar = RadarMapWnd( GetScript( "RadarMapWnd" ) );
// м§Ђм—лЄ…н‘њм‹њ // Display area name // РРјСЏ области отображения - ZoneNameBox
bOption = GetOptionBool( "Game", "ShowZoneTitle" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ZoneNameBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texZoneNameBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// л“њлЎлђњ м•„мќґн…њ н‘њм‹њ // Display dropped items // Отображать выпавшие элементы
bOption = GetOptionBool( "Game", "HideDropItem");
script_radar.HideDropItem = bOption;
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DropItemBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDropItemBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// 투명화 // Invisibility // Невидимость - OpacityBox
bOption = GetOptionBool( "Game", "TransparencyMode" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.OpacityBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texOpacityBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// к·ёлћн”Ѕм»¤м„њ // graphic cursor // графический РєСѓСЂСЃРѕСЂ - CursorBox
bOption = GetOptionBool( "Video", "UseColorCursor" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CursorBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCursorBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// 3D화살표 // 3D arrow // 3D стрелка - ArrowBox (3D Quest Emitter)
bOption = GetOptionBool( "Game", "ArrowMode" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ArrowBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texArrowBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// 스크린샷 품질 // Screenshot quality // Качество скриншота - CaptureBox
nOption = GetOptionInt( "Game", "ScreenShotQuality" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.CaptureBox", nOption );
// м‹њмЉ¤н…њ нЉњн† л¦¬м–ј // System Tutorial // Учебное РїРѕСЃРѕР±РёРµ РїРѕ системе
// monokini: a couple AddSystemMessage, search "ShowAirShipTutorial"
bOption = GetOptionBool( "Game", "SystemTutorialBox" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.SystemTutorialBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texSystemTutorialBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp = int(bOption);
// 게임팁 표시 // Display game tips // Отображение подсказок по игре - ShowGameTipMsg
// monokini: text string in Loading screen
bOption = GetOptionBool( "Game", "ShowGameTipMsg" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GametipBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGametipBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
// мњ л‹€лІ„м„¤ 툴팁 // universal tooltip // универсальная подсказка
//bOption = GetOptionBool( "Game", "UniversalToolTipBox" );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.UniversalToolTipBox", bOption );
//class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texUniversalToolTipBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
//nTmp += int(bOption);
/// added by monokini
if (GetINIBool("Game", "HideTutorial", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.HideTutorialBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texHideTutorialBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
if (nTmp == 3)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOff");
}
// мћђм‹ мќґл¦„ //your name //Ваше РёРјСЏ - NameBox0
bOption = GetOptionBool( "Game", "MyName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox0", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox0", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp = int(bOption);
// 다른PC이름 //Other PC name //Другое имя ПК - NameBox2
bShowOtherPCName = GetOptionBool( "Game", "GroupName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox2", bShowOtherPCName );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox2", "MonIca_UI.NewStyle.Checkbox_" $ bShowOtherPCName);
nTmp += int(bShowOtherPCName);
// 몬스터이름 // monster name // имя монстра - NameBox1
bOption = GetOptionBool( "Game", "NPCName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox1", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox1", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
// 파티이름 // party name // название партии - NameBox4
bOption = GetOptionBool( "Game", "PartyMemberName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox4", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox4", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
// н€л§№мќґл¦„ // Clan name // Название клана - NameBox3
bOption = GetOptionBool( "Game", "PledgeMemberName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox3", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox3", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
// мќјл°мќґл¦„ // common name // общее РёРјСЏ - NameBox5
bOption = GetOptionBool( "Game", "OtherPCName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox5", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox5", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
if( bShowOtherPCName )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 122);
}
if (nTmp == 6)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOff");
}
}
function OnClickCheckBox( String strID )
{
if (class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd."$strID))
{
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.tex"$strID, "MonIca_UI.NewStyle.CheckBox_true_Over");
}
else
{
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.tex"$strID, "MonIca_UI.NewStyle.CheckBox_false_Over");
}
switch( strID )
{
/*
case "SystemMsgBox":
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.SystemMsgBox" ) )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.DamageBox" );
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.ItemBox" );
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.DamageBox" );
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.ItemBox" );
}
break;
*/
case "FrameBox":
if(class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.FrameBox"))
{
MinFrameRateOn(true);
}
else
{
MinFrameRateOff(true);
}
break;
// turn on/off all sounds
case "mutecheckbox":
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox" ) )
{
SetAudioSliderDisable(122);
}
else
{
SetAudioSliderDisable(255);
}
break;
case "S30Box":
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30Box" ) )
{
//~ debug("s30지원가 - 활성"); //~ debug("s30 support - active"); //~ debug("Поддержка s30 - активна");
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
// 2007/11/16 Options should only be disabled not unchecked - NeverDie
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ReflectBox", false );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 255);
}
else
{
//~ debug("s30지원가 - 비활성"); //~ debug("s30 support - inactive"); //~ debug("Поддержка s30 - неактивна");
//class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
// 2007/11/16 Options should only be disabled not unchecked - NeverDie
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
}
}
else
{
//~ debug("s30지원불가"); //~ debug("s30 not supported"); //~ debug("s30 не поддерживается");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
}
break;
case "ShadowBox":
case "DecoBox":
case "TriBox":
CheckGraphicPreset();
break;
case "DuelBox":
case "TradeRejectBox":
case "CoupleActionBox":
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.DuelBox") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.TradeRejectBox") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.CoupleActionBox"))
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOff");
}
break;
case "SystemTutorialBox":
case "GametipBox":
case "HideTutorialBox":
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.SystemTutorialBox") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.GametipBox") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.HideTutorialBox"))
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOff");
}
break;
case "NameBox0":
case "NameBox1":
case "NameBox2":
case "NameBox3":
case "NameBox4":
case "NameBox5":
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox0") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox1") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox2") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox3") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox4") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox5"))
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOff");
}
if (strID == "NameBox2")
{
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox2" ) )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 122);
}
}
break;
}
}
function OnShow()
{
bShow = true;
InitChannelChatOption();
InitVideoOption();
InitAudioOption();
InitConfigureOption();
InitGameOption();
InitInterfaceOption();
InitDamageTextOption();
InitCommonChatOption();
InitExInterfaceOption();
// ShowOnScreenMessage(1,2261,2,0,colorGold,2000, "OnShow" @ nextWindowMode);
class'ShortcutAPI'.static.UnlockShortcut();
class'UIAPI_WINDOW'.static.SetAlpha("OptionWnd.sldr_GraphicPreset", 0);
CheckGraphicPreset();
// Me.SetTimer(777, 500);
ExecuteEvent(EV_ResetDevice);
// ChannelChatTab force show, cuz it hide in init(), cuz it overlay vide tab w/o it, cuz SetTopOrder();
if (tab_TabCtrl.GetTopIndex() == 6)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.ChannelChatTab");
}
}
function OnHide()
{
bShow = false;
class'ShortcutAPI'.static.UnlockShortcut();
// restore prev gamma settings if new not saved
SetOptionFloat( "Video", "Gamma", keepGamma );
// restore prev volume settings if new not saved
skipMuteCheckBox = true;
OnModifyCurrentTickSliderCtrl("EffectVolumeSliderCtrl", m_iPrevSoundTick);
OnModifyCurrentTickSliderCtrl("MusicVolumeSliderCtrl", m_iPrevMusicTick);
OnModifyCurrentTickSliderCtrl("SystemVolumeSliderCtrl", m_iPrevSystemTick);
OnModifyCurrentTickSliderCtrl("TutorialVolumeSliderCtrl", m_iPrevTutorialTick);
skipMuteCheckBox = false;
if( GetOptionBool( "Audio", "AudioMuteOn" ) == false )
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
} else {
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_true");
SetSoundVolume( 0.f );
SetMusicVolume( 0.f );
SetWavVoiceVolume( 0.f );
SetOggVoiceVolume( 0.f );
}
// turn off fullscreen/windowed mode check timer
// Me.KillTimer(777);
SwitchShortCutWindow();
}
function SwitchShortCutWindow()
{
local ShortcutAssignWnd script_ShortcutAssignWnd;
script_ShortcutAssignWnd = ShortcutAssignWnd(GetScript("OptionWnd.ShortcutTab"));
script_ShortcutAssignWnd.Switch2KeyBrowsingMode();
}
function ApplyVideoOption()
{
local bool bKeepMinFrameRate;
local bool bTrilinear;
local int nTextureDetail;
local int nModelDetail;
local int nMotionDetail;
local int nTerrainClippingRange;
local int nPawnClippingRange;
local int nReflectionEffect;
local int nHDR;
local int nWeatherEffect;
//~ local int nSelectedNum;
//local float fPawnClippingRange;
//local float fStaticMeshClippingRange;
//local float fActorClippingRange;
//local float fTerrainClippingRange;
//local float fStaticMeshLodClippingRange;
local int nSelectedNum;
local float fGamma;
local bool bRenderDeco;
local bool bShadow;
local int nResolutionIndex;
local int nRefreshRateIndex;
//~ local bool bIsChecked;
local bool bGPUAnimation;
local bool bL2Shader;
local bool bDOF;
local bool bShaderWater;
local bool bDepthBufferShadow;
local bool UnappliedOptionChange; // In order to apply option change, loading is required. // Чтобы применить изменение опции, требуется загрузка.
local bool bChecked;
local int iNumTick;
local int iPawnValue;
local int RenderActorLimitOpt;
UnappliedOptionChange = false;
// 텍스쳐필터링 // texture filtering // фильтрация текстур - TriBox
bTrilinear = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.TriBox" );
SetOptionBool( "Video", "UseTrilinear", bTrilinear );
// 텍스쳐디테일 // texture details // детали текстуры - TextureBox
nTextureDetail = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.TextureBox" );
SetOptionInt( "Video", "TextureDetail", nTextureDetail );
// 모델링디테일 // modeling details // детали моделирования - ModelBox
nModelDetail = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.ModelBox" );
SetOptionInt( "Video", "ModelDetail", nModelDetail );
// лЄЁм…л””н…Њмќј // motion detail // детали движения - AnimBox
nMotionDetail = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.AnimBox" );
SetOptionInt( "Video", "SkipAnim", nMotionDetail );
// м‹њм•ј-мєђл¦н„° // view-character // просмотр-СЃРёРјРІРѕР» - CharBox
nPawnClippingRange = class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.CharRenderRadiusSliderCtrl");
//nPawnClippingRange = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.CharBox" );
nPawnClippingRange = 4 - nPawnClippingRange;
SetOptionInt( "Video", "PawnClippingRange", nPawnClippingRange );
//ShowOnScreenMessage(1,2261,2,0,colorGold,20000, string(nPawnClippingRange));
// м‹њм•ј-м§Ђн• // field of view - terrain // поле зрения - местность - TerrainBox
nTerrainClippingRange = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.TerrainBox" );
SetOptionInt( "Video", "TerrainClippingRange", nTerrainClippingRange );
// 감마값 // Gamma value // Значение гаммы - GammaBox
//nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.GammaBox" );
nSelectedNum = class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.GammaBoxSliderCtrl");
fGamma = 0.4f + float(nSelectedNum)*0.01f;
keepGamma = fGamma;
// switch( nSelectedNum )
// {
// case 0:
// fGamma = 1.2f;
// break;
// case 1:
// fGamma = 1.0f;
// break;
// case 2:
// fGamma = 0.8f;
// break;
// case 3:
// fGamma = 0.6f;
// break;
// case 4:
// fGamma = 0.4f;
// break;
// }
// SetOptionFloat( "Video", "Gamma", fGamma );
// н™”м§€к°њм„ м…°мќґлЌ” // Picture quality improvement shader // Шейдер улучшения качества изображения - HDRBox
nHDR = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.HDRBox" );
SetOptionInt( "Video", "PostProc", nHDR );
// 배경효과 // background effect // фоновый эффект - DecoBox
bRenderDeco = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.DecoBox" );
SetOptionBool( "Video", "RenderDeco", bRenderDeco );
// 그림자 // shadow // тень - ShadowBox
bShadow = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.ShadowBox" );
SetOptionBool( "Video", "PawnShadow", bShadow );
// л°м‚¬нљЁкіј // reflection effect // эффект отражения - ReflectBox
nReflectionEffect = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.ReflectBox" );
SetOptionInt( "L2WaterEffect", "EffectType", nReflectionEffect );
if( 0 == nReflectionEffect )
SetOptionBool( "L2WaterEffect", "IsUseEffect", false );
else
SetOptionBool( "L2WaterEffect", "IsUseEffect", true );
// мєђл¦н„°н‘њм‹њм њн•њ // Restrict character display // Ограничить отображение символов - RenderCharacterCount
RenderActorLimitOpt = class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.CharacterLimitSliderCtrl");
iNumTick = class'UIAPI_SLIDERCTRL'.static.GetTotalTickCount("OptionWnd.CharacterLimitSliderCtrl");
iPawnValue = GetPawnValue( RenderActorLimitOpt, iNumTick, RENDERCHARACTERLIMIT_MIN, RENDERCHARACTERLIMIT_MAX );
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharacterLimitSliderCtrl", RenderActorLimitOpt);
SetOptionInt( "Video", "RENDERCHARACTERCOUNT", iPawnValue );
SetOptionInt( "Video", "RenderActorLimitOpt", RenderActorLimitOpt );
// 안티알리아싱 // anti-aliasing // сглаживание - AABox
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.AABox" );
SetOptionInt( "Video", "AntiAliasing", nSelectedNum );
// 해상도 // resolution // разрешение - ResBox
// 주사율 // refresh rate // частота обновления- RefreshRateBox
nResolutionIndex = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.ResBox" );
nRefreshRateIndex = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.RefreshRateBox" );
SetResolution( nResolutionIndex, nRefreshRateIndex );
///////////////////////////////////////////
// Added on 2006/03/21 by NeverDie
// 기상효과 // weather effect // погодный эффект - WeatherEffectComboBox
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.WeatherEffectComboBox" );
switch( nSelectedNum )
{
case 0:
nWeatherEffect = 0;
break;
case 1:
nWeatherEffect = 1;
break;
case 2:
nWeatherEffect = 2;
break;
case 3:
nWeatherEffect = 3;
break;
}
SetOptionInt( "Video", "WeatherEffect", nWeatherEffect );
// GPUм• л‹€л©”мќґм… // GPU animation // анимация графического процессора - GPUAnimationCheckBox
bGPUAnimation = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.GPUAnimationCheckBox" );
SetOptionBool( "Video", "GPUAnimation", bGPUAnimation );
// мµњм†Њн”„л €мћ„мњ м§Ђ // Maintain minimum frame // Поддерживаем минимальный кадр - FrameBox
bKeepMinFrameRate = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.FrameBox" );
SetOptionBool( "Video", "IsKeepMinFrameRate", bKeepMinFrameRate );
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0
bL2Shader = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30Box" );
SetOptionBool( "Video", "L2Shader", bL2Shader );
//셰이더 3.0 /Shader 3.0 //Шейдер 3.0 - DOF?
bDOF = class'UIAPI_CHECKBOX'.static.IsEnableWindow( "OptionWnd.S30DOFBOX" ) && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30DOFBOX" );
SetOptionBool( "Video", "S30DOFBOX", bDOF );
//м…°мќґлЌ” 3.0 - л¬јнљЁкіј //Shader 3.0 - Water Effect //Шейдер 3.0 — Рффект РІРѕРґС‹
bShaderWater = class'UIAPI_CHECKBOX'.static.IsEnableWindow( "OptionWnd.S30WaterEffectBox" ) && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30WaterEffectBox" );
SetOptionBool( "Video", "S30WaterEffectBox", bShaderWater );
//셰이더 3.0 - 그림자. //Shader 3.0 - Shadows. //Шейдер 3.0 - Тени.
bDepthBufferShadow = class'UIAPI_CHECKBOX'.static.IsEnableWindow( "OptionWnd.S30ShadowBox" ) && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30ShadowBox" );
SetOptionBool( "Video", "S30ShadowBox", bDepthBufferShadow );
if( bKeepMinFrameRate )
{
//~ debug( "KeepMinFrameRate" );
SetTextureDetail( 2 );
SetModelingDetail( 1 );
SetMotionDetail( 1 );
SetShadow( false );
SetBackgroundEffect( false );
SetTerrainClippingRange( 4 );
SetPawnClippingRange( 4 );
//~ SetRenderCharacterCount(RENDERCHARACTERLIMIT_MIN);
SetReflectionEffect( 0 );
//~ Debug("HDRSettingOff");
SetHDR( 0 );
SetWeatherEffect( 0 );
SetL2Shader(false);
SetDOF(false);
SetShaderWaterEffect(false);
SetDepthBufferShadow(false);
m_bL2Shader = false;
m_bDOF = false;
m_bShaderWater = false;
m_bDepthBufferShadow = false;
// 2007/11/16 Set UnappliedOptionChange to false because options are all applied right above - NeverDie
// 11.11.2007. Установите для UnappliedOptionChange значение false, поскольку все параметры применяются прямо над ним - NeverDie
UnappliedOptionChange = false;
}
else
{
//~ debug( "Not KeepMinFrameRate nTextureDetail=" $ nTextureDetail );
SetTextureDetail( nTextureDetail );
SetModelingDetail( nModelDetail );
SetMotionDetail( nMotionDetail );
SetShadow( bShadow );
SetBackgroundEffect( bRenderDeco );
//solasys-포그테스트 //solasys-fog test // тест solasys-тумана
if (m_bAirState)
{
SetTerrainClippingRange( 2 );
SetPawnClippingRange( 2 );
}
else
{
SetTerrainClippingRange( nTerrainClippingRange );
SetPawnClippingRange( nPawnClippingRange );
}
//SetRenderCharacterCount(nRenderCharacterLimit);
SetReflectionEffect( nReflectionEffect );
SetHDR( nHDR );
//~ debug ("HDR" @ nHDR);
SetWeatherEffect( nWeatherEffect );
// See if there is an unapplied option
// Проверяем, есть ли непримененная опция
if( m_bL2Shader != bL2Shader )
{
if( bL2Shader )
UnappliedOptionChange = true;
m_bL2Shader = bL2Shader;
}
// If L2Shader is off, all other options can be applied right away.
// Если L2Shader отключен, все остальные параметры можно применить сразу.
if( bL2Shader )
{
if( m_bDOF != bDOF )
{
UnappliedOptionChange = true;
m_bDOF = bDOF;
}
if( m_bShaderWater != bShaderWater )
{
UnappliedOptionChange = true;
m_bShaderWater = bShaderWater;
}
if( m_bDepthBufferShadow != bDepthBufferShadow )
{
UnappliedOptionChange = true;
m_bDepthBufferShadow = bDepthBufferShadow;
}
}
if( !UnappliedOptionChange )
{
SetL2Shader(bL2Shader);
SetDOF(bDOF);
SetShaderWaterEffect(bShaderWater);
SetDepthBufferShadow(bDepthBufferShadow);
}
}
//UI 기본 세팅 //UI basic settings //Основные настройки пользовательского интерфейса
//nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.DefaultPositionBox" );
//~ Debug ("кё°ліё л €мќґм•„м›ѓ лІ€нё м„¤м •:" @ nSelectedNum);
//SetOptionInt( "Game", "LayoutDF", nSelectedNum );
// In case of option change which requires loading, show warning dialog box - NeverDie
// В случае изменения опции, требующей загрузки, показать диалоговое окно с предупреждением - NeverDie
//~ debug( "UnappliedOptionChange " $ UnappliedOptionChange );
if( UnappliedOptionChange )
{
DialogSetID( OPTION_CHANGE );
DialogShow(DIALOG_Modalless, DIALOG_OKCancel, GetSystemMessage( 2191 ) );
}
//~ InitVideoOption();
//Background 실행성능 낮추기 //Reduce background execution performance //Уменьшаем производительность фонового выполнения
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.LazyModeBox");
SetOptionBool( "Game", "UseLazyMode", bChecked);
//~ debug("л €мќґм§ЂлЄЁл“њ"@ bChecked); /~ debug("Rage Mode"@ bChecked); //~ debug("Режим ярости"@ bChecked);
///////////////////////// by monokini ///////////////////////////////
// bRenderDeco = false;
// bRenderDeco = GetOptionBool( "Video", "StartupFullScreen");
// if (bRenderDeco != nextWindowMode)
// {
// SetOptionBool( "Video", "StartupFullScreen", nextWindowMode);
// if (nextWindowMode)
// class'UIDATA_PAWNVIEWER'.static.ExecuteCommand("TOGGLEFULLSCREEN");
// else
// class'UIDATA_PAWNVIEWER'.static.ExecuteCommand("ENDFULLSCREEN");
// }
SetupMode(""$nextWindowMode);
}
function ApplyAudioOption()
{
//local int nSelectedNum;
local float fSoundVolume;
local float fMusicVolume;
local float fWavVoiceVolume;
local float fOggVoiceVolume;
local int iSoundTick;
local int iMusicTick;
local int iSystemTick;
local int iTutorialTick;
if( !CanUseAudio() )
return;
// code 변경 - lancelot 2006. 6. 13. // code change - lancelot 2006. 6. 13. // изменение кода - lancelot 2006. 6. 13.
// 효과음볼륨 // sound effect volume // громкость звукового эффекта - EffectVolumeSliderCtrl
iSoundTick=class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.EffectVolumeSliderCtrl");
fSoundVolume=GetVolumeFromSliderTick(iSoundTick);
SetOptionFloat("Audio", "SoundVolume", fSoundVolume);
// 음악볼륨 // music volume // громкость музыки - MusicVolumeSliderCtrl
iMusicTick=class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.MusicVolumeSliderCtrl");
fMusicVolume=GetVolumeFromSliderTick(iMusicTick);
SetOptionFloat("Audio", "MusicVolume", fMusicVolume);
// 시스템볼륨 // system volume // системный том - SystemVolumeSliderCtrl
iSystemTick=class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.SystemVolumeSliderCtrl");
fWavVoiceVolume=GetVolumeFromSliderTick(iSystemTick);
SetOptionFloat("Audio", "WavVoiceVolume", fWavVoiceVolume);
// 음악볼륨 // music volume // громкость музыки - MusicVolumeSliderCtrl
iTutorialTick=class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.TutorialVolumeSliderCtrl");
fOggVoiceVolume=GetVolumeFromSliderTick(iTutorialTick);
SetOptionFloat("Audio", "OggVoiceVolume", fOggVoiceVolume);
// 기억시켜준다 // reminds me // напоминает мне
m_iPrevSoundTick=iSoundTick;
m_iPrevMusicTick=iMusicTIck;
m_iPrevSystemTick=iSystemTick;
m_iPrevTutorialTick=iTutorialtick;
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox" ) )
{
SetSoundVolume( 0.f );
SetMusicVolume( 0.f );
SetWavVoiceVolume( 0.f );
SetOggVoiceVolume( 0.f );
SetOptionBool("Audio", "AudioMuteOn", true);
SetAudioSliderDisable(122);
}
else
{
SetOptionBool( "Audio", "AudioMuteOn", false);
SetAudioSliderDisable(255);
}
}
function ApplyConfigureOption()
{
local int nSelectedNum;
local bool bChecked;
// м–ём–ґм„ нѓќ // Select language // Выбор языка - LanguageBox
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.LanguageBox" );
if( 0 == nSelectedNum )
{
SetOptionBool( "Game", "IsNative", true );
if (currentLanguage == "_EN") SwitchLanguage();
}
else if( 1 == nSelectedNum )
{
SetOptionBool( "Game", "IsNative", false );
if (currentLanguage == "_ADD") SwitchLanguage();
}
// 키보드보안 // keyboard security // безопасность клавиатуры - KeyboardBox
if( IsUseKeyCrypt() )
{
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.KeyboardBox" );
SetOptionBool("Game", "L2UseKeyCrypt", bChecked);
SetKeyCrypt( bChecked );
}
// 게임패드 // gamepad // геймпад - JoypadBox
if( CanUseJoystick() )
{
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.JoypadBox" );
SetOptionBool( "Game", "UseJoystick", bChecked );
}
//л§€мљ°мЉ¤ мљ°нЃґл¦ //right mouse click //щелчок правой РєРЅРѕРїРєРѕР№ мыши - RightClickBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.RightClickBox" );
SetOptionBool( "Game", "RightClickBox", bChecked );
SetFixedDefaultCamera(bChecked);
// м№ґл©”лќјм¶”м Ѓ // camera tracking // отслеживание камеры - CameraBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.CameraBox" );
SetOptionBool( "Game", "AutoTrackingPawn", bChecked );
}
function ApplyGameOption()
{
local int nSelectedNum;
local bool bChecked;
local TradeWnd script_TradeWnd;
script_TradeWnd = TradeWnd(GetScript("TradeWnd"));
// 파티루팅 // party rooting // партийное укоренение - LootingBox
if( class'UIAPI_WINDOW'.static.IsEnableWindow( "OptionWnd.LootingBox" ) )
{
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.LootingBox" );
SetOptionInt( "Game", "PartyLooting", nSelectedNum );
}
// 결투 거부 // refuse to duel // отказываемся от дуэли - DuelBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.DuelBox");
SetOptionBool( "Game", "IsRejectingDuel", bChecked );
/// added by monokini
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.TradeRejectBox" );
SetINIBool("Game","TradeReject", bChecked, SETTINGSINI);
script_TradeWnd.tradeReject = bChecked;
//커플 м‹ мІ к±°л¶Ђ //Couple application rejected //Заявка РЅР° пару отклонена - CoupleActionBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.CoupleActionBox" );
SetOptionBool( "Game", "IsCoupleAction", bChecked );
// нЊЊн‹° м‹ мІ к±°л¶Ђ // reject party request // отклоняем запрос стороны - PartyRejectBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.PartyRejectBox" );
SetOptionBool( "Game", "IsRejectingParty", bChecked );
SetIgnorePartyInviting(bChecked );
/// added by monokini
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.TradeAcceptClanBox" );
SetINIBool("Game","TradeAcceptClan", bChecked, SETTINGSINI);
script_TradeWnd.tradeAcceptClan = bChecked;
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.TradeAcceptFriendBox" );
SetINIBool("Game","TradeAcceptFriend", bChecked, SETTINGSINI);
script_TradeWnd.tradeAcceptFriend = bChecked;
}
function ApplyInterfaceOption()
{
local int nSelectedNum;
local bool bChecked;
local RadarMapWnd script_radar;
local TutorialViewerWnd script_TutorialViewerWnd;
script_radar = RadarMapWnd( GetScript( "RadarMapWnd" ) );
script_TutorialViewerWnd = TutorialViewerWnd(GetScript("TutorialViewerWnd"));
// м§Ђм—лЄ…н‘њм‹њ // Display area name // РРјСЏ области отображения - ZoneNameBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.ZoneNameBox" );
SetOptionBool( "Game", "ShowZoneTitle", bChecked );
// 드랍 아이템 // drop item // удаляем элемент - DropItemBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.DropItemBox" );
script_radar.HideDropItem = bChecked;
SetOptionBool( "Game", "HideDropItem", bChecked );
// 투명화 // Invisibility // Невидимость - OpacityBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.OpacityBox" );
SetOptionBool( "Game", "TransparencyMode", bChecked );
// к·ёлћн”Ѕм»¤м„њ // graphic cursor // графический РєСѓСЂСЃРѕСЂ - CursorBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.CursorBox" );
SetOptionBool( "Video", "UseColorCursor", bChecked );
// 3D화살표 // 3D arrow // 3D стрелка - ArrowBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.ArrowBox" );
SetOptionBool( "Game", "ArrowMode", bChecked );
// 스크린샷 품질 // Screenshot quality // Качество скриншота - CaptureBox
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.CaptureBox" );
SetOptionInt( "Game", "ScreenShotQuality", nSelectedNum );
// м‹њмЉ¤н…њ нЉњн† л¦¬м–ј // System Tutorial // Учебное РїРѕСЃРѕР±РёРµ РїРѕ системе
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.SystemTutorialBox" );
SetOptionBool( "Game", "SystemTutorialBox", bChecked );
// 게임팁표시 // Display game tips // Отображение подсказок по игре - GametipBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.GametipBox" );
SetOptionBool( "Game", "ShowGameTipMsg", bChecked );
// мњ л‹€лІ„м„¤ 툴팁 // universal tooltip // универсальная подсказка
//bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.UniversalToolTipBox" );
//SetOptionBool( "Game", "UniversalToolTipBox", bChecked );
/// added by monokini
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.HideTutorialBox" );
SetINIBool("Game","HideTutorial", bChecked, SETTINGSINI);
script_TutorialViewerWnd.disableTutorial = bChecked;
// мћђм‹ мќґл¦„ //your name //Ваше РёРјСЏ - NameBox0
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox0" );
SetOptionBool( "Game", "MyName", bChecked );
// 몬스터이름 // monster name // имя монстра - NameBox1
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox1" );
SetOptionBool( "Game", "NPCName", bChecked );
// н€л§№мќґл¦„ // Clan name // Название клана - NameBox3
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox3" );
SetOptionBool( "Game", "PledgeMemberName", bChecked );
// 파티이름 // party name // название партии - NameBox4
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox4" );
SetOptionBool( "Game", "PartyMemberName", bChecked );
// мќјл°мќґл¦„ // common name // общее РёРјСЏ - NameBox5
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox5" );
SetOptionBool( "Game", "OtherPCName", bChecked );
// 다른PC이름 //Other PC name //Другое имя ПК - NameBox2
// 다른 이름 кґЂл Ё мµм…мќґ лЄЁл‘ђ м Ѓмљ©лђкі л‚м„њ лЌ®м–ґмЌЁм•ј н•лЇЂлЎњ, м њмќј л‚중에 해야한다. - NeverDie
// It must be overwritten after all other name-related options have been applied, so it should be done last. -NeverDie
// Его необходимо перезаписать после применения всех других параметров, связанных с именем, поэтому это следует делать в последнюю очередь. -Никогда не умирай
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox2" );
SetOptionBool( "Game", "GroupName", bChecked );
}
function ApplyDamageTextOption()
{
local bool bChecked;
local MonIca_OnScreenDamageText script_MonIca_OnScreenDamageText;
local MonIca_OnWorldDamageText script_MonIca_OnWorldDamageText;
script_MonIca_OnScreenDamageText = MonIca_OnScreenDamageText(GetScript("MonIca_OnScreenDamageText"));
script_MonIca_OnWorldDamageText = MonIca_OnWorldDamageText(GetScript("MonIca_OnWorldDamageText"));
/// added by monokini: 2D Damage Text (by textboxes)
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.ScreenDamageBox" );
SetINIBool("OnScreenText","ScreenDamage", bChecked, SETTINGSINI);
script_MonIca_OnScreenDamageText.b_ScreenDamage = bChecked;
script_MonIca_OnScreenDamageText.InitEvent();
/// added by monokini: 3D Damage Text (by emitters)
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.WorldDamageBox" );
SetINIBool("OnScreenText","WorldDamage", bChecked, SETTINGSINI);
script_MonIca_OnWorldDamageText.b_WorldDamage = bChecked;
script_MonIca_OnWorldDamageText.InitEvent();
}
function ApplyChannelChatOption()
{
local ChannelChatTab script_ChannelChatTab;
script_ChannelChatTab = ChannelChatTab(GetScript("OptionWnd.ChannelChatTab"));
script_ChannelChatTab.ApplyChannelChatOption();
}
function ApplyCommonChatOption()
{
local CommonChatTab script_CommonChatTab;
script_CommonChatTab = CommonChatTab(GetScript("OptionWnd.CommonChatTab"));
script_CommonChatTab.ApplyCommonChatOption();
}
function ApplyShortcutOption()
{
local ShortcutAssignWnd script_ShortcutAssignWnd;
if (!class'UIAPI_WINDOW'.static.IsShowWindow("OptionWnd.ShortcutTab.DisableBox"))
{
script_ShortcutAssignWnd = ShortcutAssignWnd(GetScript("OptionWnd.ShortcutTab"));
script_ShortcutAssignWnd.Switch2KeyBrowsingMode();
class'ShortcutAPI'.static.Save();
}
}
function ApplyExInterfaceOption()
{
local MonIca_InterfaceTab script_MonIca_InterfaceTab;
script_MonIca_InterfaceTab = MonIca_InterfaceTab(GetScript("OptionWnd.MonIca_InterfaceTab"));
script_MonIca_InterfaceTab.ApplyExInterfaceTabOption();
}
function OnClickButton( string strID )
{
switch( strID )
{
case "bTNDefault":
RestoreDefaultSettings();
break;
case "btnHide":
case "bTNCancel":
SetOptionInt( "FirstRun", "FirstRun", 2 );
// moved to OnHide()
// лђлЏЊл ¤м¤Ђл‹¤ - lancelot 2006. 6. 13. м€м • л¬ём„ м¤Ђ. 2011.3.8.
// Give it back - lancelot 2006. 6. 13. Edited by Moon Seon-jun. 2011.3.8.
// Верни - Ланселот 2006. 6. 13. Под редакцией Мун Сон Чжун. 2011.3.8.
/*
if( GetOptionBool( "Audio", "AudioMuteOn" ) == false )
{
OnModifyCurrentTickSliderCtrl("EffectVolumeSliderCtrl", m_iPrevSoundTick);
OnModifyCurrentTickSliderCtrl("MusicVolumeSliderCtrl", m_iPrevMusicTick);
OnModifyCurrentTickSliderCtrl("SystemVolumeSliderCtrl", m_iPrevSystemTick);
OnModifyCurrentTickSliderCtrl("TutorialVolumeSliderCtrl", m_iPrevTutorialTick);
}
*/
class'UIAPI_Window'.static.HideWindow( "OptionWnd" );
//AddSystemMessage(2493); // м‹њмЉ¤н…њ л©”м„ём§Ђ м¶”к°Ђ
break;
case "bTNOk":
ApplyVideoOption();
ApplyAudioOption();
ApplyConfigureOption();
ApplyGameOption();
ApplyInterfaceOption();
ApplyDamageTextOption();
ApplyChannelChatOption();
ApplyCommonChatOption();
ApplyShortcutOption();
ApplyExInterfaceOption();
SetOptionInt( "FirstRun", "FirstRun", 2 );
class'UIAPI_Window'.static.HideWindow( "OptionWnd" );
RefreshINI(SETTINGSINI);
break;
case "bTNApply":
ApplyVideoOption();
ApplyAudioOption();
ApplyConfigureOption();
ApplyGameOption();
ApplyInterfaceOption();
ApplyDamageTextOption();
ApplyChannelChatOption();
ApplyCommonChatOption();
ApplyShortcutOption();
ApplyExInterfaceOption();
SetOptionFloat( "Video", "Gamma", keepGamma );
RefreshINI(SETTINGSINI);
break;
case "bTNInitWindow":
SetDefaultPosition();
break;
case "btnInteractionOn":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOn");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOff");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DuelBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDuelBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeRejectBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeRejectBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CoupleActionBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCoupleActionBox", "MonIca_UI.NewStyle.Checkbox_true");
break;
case "btnInteractionOff":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOff");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOn");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DuelBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDuelBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeRejectBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeRejectBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CoupleActionBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCoupleActionBox", "MonIca_UI.NewStyle.Checkbox_false");
break;
case "btnAutoTradeOn":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnAutoTradeOn");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnAutoTradeOff");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptClanBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptClanBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptFriendBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptFriendBox", "MonIca_UI.NewStyle.Checkbox_true");
break;
case "btnAutoTradeOff":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnAutoTradeOff");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnAutoTradeOn");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptClanBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptClanBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptFriendBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptFriendBox", "MonIca_UI.NewStyle.Checkbox_false");
break;
case "btnDisableAllHelpOn":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOn");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOff");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.SystemTutorialBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texSystemTutorialBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GametipBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGametipBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.HideTutorialBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texHideTutorialBox", "MonIca_UI.NewStyle.Checkbox_true");
break;
case "btnDisableAllHelpOff":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOff");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOn");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.SystemTutorialBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texSystemTutorialBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GametipBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGametipBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.HideTutorialBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texHideTutorialBox", "MonIca_UI.NewStyle.Checkbox_false");
break;
case "btnShowAllNamesOn":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOn");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOff");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox0", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox0", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox1", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox1", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox2", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox2", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox3", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox3", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox4", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox4", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox5", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox5", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 255);
break;
case "btnShowAllNamesOff":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOff");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOn");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox0", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox0", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox1", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox1", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox2", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox2", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox3", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox3", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox4", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox4", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox5", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox5", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 122);
break;
case "btn0":
SetSelectedTab(0);
class'UIAPI_WINDOW'.static.SetFocus( "OptionWnd.VideoTabScrollArea"); // focus on scrollbar VideoSettings
if (class'UIAPI_WINDOW'.static.IsShowWindow( "OptionWnd.btnExpandVideoSettingsOff"))
VideoTabScroll.SetScrollHeight(502);
break;
case "btn" $ Right(strID, 1):
SetSelectedTab(int(Right(strID, 1)));
break;
case "BTnExpandVideoSettingsOff":
VideoTabScroll.SetScrollPosition(0);
VideoTabScroll.SetScrollHeight(780);
class'UIAPI_WINDOW'.static.HideWindow( "OptionWnd.btnExpandVideoSettingsOff");
class'UIAPI_WINDOW'.static.ShowWindow( "OptionWnd.btnExpandVideoSettingsOn");
class'UIAPI_WINDOW'.static.SetWindowSize( "OptionWnd.VideoTabScrollArea.videoBg2", 647, 412);
class'UIAPI_WINDOW'.static.ShowWindow( "OptionWnd.VideoTabScrollArea.wndExpandVideoSettings");
break;
case "BTnExpandVideoSettingsOn":
class'UIAPI_WINDOW'.static.HideWindow( "OptionWnd.btnExpandVideoSettingsOn");
class'UIAPI_WINDOW'.static.ShowWindow( "OptionWnd.btnExpandVideoSettingsOff");
class'UIAPI_WINDOW'.static.SetWindowSize( "OptionWnd.VideoTabScrollArea.videoBg2", 647, 107);
class'UIAPI_WINDOW'.static.HideWindow( "OptionWnd.VideoTabScrollArea.wndExpandVideoSettings");
VideoTabScroll.SetScrollHeight(502);
break;
case "btnWindowMode":
SetupButtonsTexture("WindowMode=0");
break;
case "btnFullscreenMode":
SetupButtonsTexture("WindowMode=1");
break;
case "btnFramelessMode":
SetupButtonsTexture("WindowMode=2");
break;
/* case "btnFullscreenMode":
if (!nextWindowMode)
{
nextWindowMode = true;
SetupButtonsWindowModeTexture(nextWindowMode);
}
break;
case "btnWindowMode":
if (nextWindowMode)
{
nextWindowMode = false;
SetupButtonsWindowModeTexture(nextWindowMode);
}
break; */
case "btnStyleHF":
// class'UIDATA_PAWNVIEWER'.static.ExecuteCommand("show windowbox");
// class'UIDATA_PAWNVIEWER'.static.ExecuteCommand("show windowname");
if (windowStyle != "HF")
{
RequestChangeUIStyle("HF", subWindowStyle);
}
else
{
if (subWindowStyle == 1)
{
RequestChangeUIStyle("HF", 0);
SetINIInt("StyleUI", "SubWindowStyle", 0, SETTINGSINI);
}
else
{
RequestChangeUIStyle("HF", 1);
SetINIInt("StyleUI", "SubWindowStyle", 1, SETTINGSINI);
}
}
SetINIString("StyleUI", "WindowStyle", "HF", SETTINGSINI);
RefreshINI(SETTINGSINI);
break;
case "btnStyleES":
if (windowStyle != "ES")
RequestChangeUIStyle("ES", subWindowStyle);
SetINIString("StyleUI", "WindowStyle", "ES", SETTINGSINI);
SetINIInt("StyleUI", "SubWindowStyle", subWindowStyle, SETTINGSINI);
RefreshINI(SETTINGSINI);
break;
case "btnStyleAS":
if (windowStyle != "AS")
RequestChangeUIStyle("AS", subWindowStyle);
SetINIString("StyleUI", "WindowStyle", "AS", SETTINGSINI);
SetINIInt("StyleUI", "SubWindowStyle", subWindowStyle, SETTINGSINI);
RefreshINI(SETTINGSINI);
break;
case "btnStyleMN":
if (windowStyle != "MN")
RequestChangeUIStyle("MN", subWindowStyle);
SetINIString("StyleUI", "WindowStyle", "MN", SETTINGSINI);
SetINIInt("StyleUI", "SubWindowStyle", subWindowStyle, SETTINGSINI);
RefreshINI(SETTINGSINI);
break;
}
}
/* /////////////////////////// by monokini ///////////////////////////////
function SetupButtonsWindowModeTexture(bool isFullscreenMode)
{
// local string tempString;
// ShowOnScreenMessage(1,2261,2,0,colorGold,2000, "SetupButtonsWindowModeTexture" @ nextWindowMode);
if (isFullscreenMode)
{
// GetINIString("OptionWnd", "btnFullscreenMode"$currentLanguage, tempString, "MonIca_LanguageUI");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtWindowMode" , windowModeName[1]);
btn_FullscreenMode.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select");
btn_WindowMode.SetTexture("l2ui_ct1.emptyBtn", "l2ui_ct1.emptyBtn", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Unselect_Over");
}
else
{
// GetINIString("OptionWnd", "btnWindowMode"$currentLanguage, tempString, "MonIca_LanguageUI");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtWindowMode" , windowModeName[0]);
btn_FullscreenMode.SetTexture("l2ui_ct1.emptyBtn", "l2ui_ct1.emptyBtn", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Unselect_Over");
btn_WindowMode.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select");
}
} */
function SetupButtonsTexture(string a_Param)
{
local string wMode;
// local int Toggle,x,y;
local string button;
local int i;
local array<string> buttons;
local string selectedButton;
ParseString(a_Param, "WindowMode", wMode);
// ParseInt(a_Param, "isEvent", Toggle);
// ShowMessageInLogin(wMode);
// Заповнюємо масив назвами кнопок
buttons[0] = "btnWindowMode";
buttons[1] = "btnFullscreenMode";
buttons[2] = "btnFramelessMode";
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtWindowMode" , windowModeName[int(wMode)]);
// if( bool(Toggle) )
// {
// ParseInt(a_Param, "newWidth", x);
// ParseInt(a_Param, "newHeight", y);
// SetOptionInt( "Video", "GamePlayViewportX", x);
// SetOptionInt( "Video", "GamePlayViewportY", y);
// }
nextWindowMode = wMode;
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ResBox", -1 );
// MessageBox( "nextWindowMode "@nextWindowMode );
// Визначаємо, яка кнопка має бути виділена
switch (wMode)
{
case "0": selectedButton = "btnWindowMode"; break;
case "1": selectedButton = "btnFullscreenMode"; break;
case "2": selectedButton = "btnFramelessMode"; break;
}
// Перебираємо кнопки та встановлюємо текстури
for (i = 0; i < buttons.Length; i++)
{
button = buttons[i];
if (button != selectedButton)
{
GetButtonHandle("OptionWnd." $ button).SetTexture(
"l2ui_ct1.emptyBtn",
"l2ui_ct1.emptyBtn",
"MonIca_UI.NewStyle.OptionWnd_WindowButton_Unselect_Over"
);
}
else
{
GetButtonHandle("OptionWnd." $ button).SetTexture(
"MonIca_UI.NewStyle.OptionWnd_WindowButton_Select",
"MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down",
"MonIca_UI.NewStyle.OptionWnd_WindowButton_Select"
);
}
}
}
function SetupMode(string a_Param)
{
local RoloScriptEx RoloScript;
RoloScript = new class'RoloScript.RoloScriptEx';
RoloScript.Actor("WindowMode",a_Param);
}
function ChangeStyleButtonTexture()
{
btn_StyleHF.SetTexture("MonIca_UI.OptionWnd.StyleButton_Unselect", "MonIca_UI.OptionWnd.StyleButton_Unselect_Down", "MonIca_UI.OptionWnd.StyleButton_Unselect_Over");
btn_StyleMN.SetTexture("MonIca_UI.OptionWnd.StyleButton_Unselect", "MonIca_UI.OptionWnd.StyleButton_Unselect_Down", "MonIca_UI.OptionWnd.StyleButton_Unselect_Over");
btn_StyleES.SetTexture("MonIca_UI.OptionWnd.StyleButton_Unselect", "MonIca_UI.OptionWnd.StyleButton_Unselect_Down", "MonIca_UI.OptionWnd.StyleButton_Unselect_Over");
btn_StyleAS.SetTexture("MonIca_UI.OptionWnd.StyleButton_Unselect", "MonIca_UI.OptionWnd.StyleButton_Unselect_Down", "MonIca_UI.OptionWnd.StyleButton_Unselect_Over");
switch (windowStyle)
{
case "HF":
if (subWindowStyle == 0)
btn_StyleHF.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Select_Over");
else
btn_StyleHF.SetTexture("MonIca_UI.OptionWnd.StyleButton_Alt_Select", "MonIca_UI.OptionWnd.StyleButton_Alt_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Alt_Select_Over");
break;
case "MN":
btn_StyleMN.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Select_Over");
break;
case "ES":
btn_StyleES.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Select_Over");
break;
case "AS":
btn_StyleAS.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Select_Over");
break;
}
}
function RequestChangeUIStyle(string newWindowMode, int newSubWindowMode)
{
//local int i;
local string strParam;
ParamAdd(strParam, "EventID", "10");
ParamAdd(strParam, "Style", newWindowMode);
ParamAdd(strParam, "SubStyle", string(newSubWindowMode));
ExecuteEvent(EV_AITimer, strParam);
}
function SwitchLanguage()
{
local MonIca_LanguageUI script;
script = MonIca_LanguageUI(GetScript("MonIca_LanguageUI"));
if (script != None)
{
currentLanguage = GetCurrentLanguage();
script.ChangeLanguageUI(currentLanguage);
}
}
function SetSelectedTab(int tabIndex, optional bool isInit)
{
local ButtonHandle btnSelected;
local TextBoxHandle txtBtnSelected;
if (tabIndex == tab_TabCtrl.GetTopIndex())
if (!isInit)
return;
tab_TabCtrl.SetTopOrder(tabIndex, false);
if (!isInit) // restore size and texture for previous selected tab
{
btnSelected = GetButtonHandle("OptionWnd.btn"$selectedTab);
txtBtnSelected = GetTextBoxHandle("OptionWnd.txtBtn"$selectedTab);
if (selectedTab != 9)
txtBtnSelected.SetTextColor(colorDefaultWhite);
else
txtBtnSelected.SetTextColor(colorBlue);
btnSelected.SetWindowSize(124, 45);
btnSelected.SetTexture("MonIca_UI.NewStyle.OptionWnd_SideTab_N","MonIca_UI.NewStyle.OptionWnd_SideTab_N","MonIca_UI.NewStyle.OptionWnd_SideTab_O");
}
HideWindow("MonIca_AnimationTab");
if (tabIndex == 9 && openAnimation)
{
ShowWindow("MonIca_AnimationTab");
HideWindow("MonIca_InterfaceTab");
HideWindow("OptionWnd.bTNDefault");
}
else
{
ShowWindow("OptionWnd.bTNDefault");
}
selectedTab = tab_TabCtrl.GetTopIndex(); // resize and retexture selected tab
txtBtnSelected = GetTextBoxHandle("OptionWnd.txtBtn"$selectedTab);
btnSelected = GetButtonHandle("OptionWnd.Btn"$selectedTab);
txtBtnSelected.SetTextColor(colorGold);
btnSelected.SetWindowSize(133, 45);
// btnSelected.SetFocus();
btnSelected.SetTexture("MonIca_UI.NewStyle.OptionWnd_SideButton_Selected_N","MonIca_UI.NewStyle.OptionWnd_SideButton_Selected_N","MonIca_UI.NewStyle.OptionWnd_SideButton_Selected_O");
// class'UIAPI_WINDOW'.static.SetFocus( "OptionWnd.txtBtnVideo" );
}
// Slider controlмќ tick мњјлЎњл¶Ђн„° volumeмќ floatк°’мќ„ 구н•лЉ” н•Ём€
// Function to get the float value of volume from the tick of the slider control
// Функция для получения плавающего значения объема по такту ползунка
function float GetVolumeFromSliderTick(int iTick)
{
local float fReturnVolume;
switch(iTick)
{
case 0 :
fReturnVolume=0.0f;
break;
case 1 :
fReturnVolume=0.2f;//Merc, default: 0.2, mine: 0.01
break;
case 2 :
fReturnVolume=0.4f;//Merc, default: 0.4, mine: 0.02
break;
case 3 :
fReturnVolume=0.6f;//Merc, default: 0.6, mine: 0.03
break;
case 4 :
fReturnVolume=0.8f;//Merc, default: 0.8, mine: 0.04
break;
case 5 :
fReturnVolume=1.0f;//Merc, default: 1.0, mine: 0.05
break;
}
return fReturnVolume;
}
//solasys-포그테스트 //solasys-fog test // тест solasys-тумана
function AirStateOn()
{
m_bAirState=true;
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.TerrainBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.CharRenderRadiusSliderCtrl" );
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.CharBox" );
}
function AirStateOff()
{
m_bAirState=false;
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.TerrainBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.CharRenderRadiusSliderCtrl" );
// class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.CharBox" );
if( nPixelShaderVersion < 12 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
}
else
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
if( nPixelShaderVersion >= 20 && nVertexShaderVersion >= 20 )
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.HDRBox" );
}
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.HDRBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", 0 );
}
/////////////////////////////////////////////
// Added on 2007/05/25 by Oxyzen
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 255);
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30Box" ) )
{
//~ debug("s30지원가 - 활성"); //~ debug("s30 support - active"); //~ debug("Поддержка s30 - активна");
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false );
//~ class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ShadowBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ShadowBox", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ReflectBox", false );
//~ class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30Box" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 255);
}
else
{
//~ debug("s30지원가 - 비활성"); //~ debug("s30 support - inactive"); //~ debug("Поддержка s30 - неактивна");
//class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.GPUAnimationCheckBox" );
//~ class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ShadowBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
}
}
else
{
//~ debug("s30지원불가"); //~ debug("s30 not supported"); //~ debug("s30 не поддерживается");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
}
}
//solasys-end
function MinFrameRateOn(optional bool realClickCheckBox)
{
if (!realClickCheckBox)
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texFrameBox", "MonIca_UI.NewStyle.CheckBox_true");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.TextureBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ModelBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.AnimBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texShadowBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.DecoBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texDecoBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.TerrainBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.CharRenderRadiusSliderCtrl" );
// class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.CharBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.HDRBox" );
/////////////////////////////////////////////
// Added on 2007/05/25 by Oxyzen
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
// 2007/11/16 Options should only be disabled not unchecked - NeverDie
// 11.11.2007 Опции должны быть только отключены, но не сняты - NeverDie
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
///////////////////////////////////////////
// Added on 2006/03/21 by NeverDie
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.WeatherEffectComboBox" );
CheckGraphicPreset();
}
function MinFrameRateOff(optional bool realClickCheckBox)
{
if (!realClickCheckBox)
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texFrameBox", "MonIca_UI.NewStyle.CheckBox_false");
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.TextureBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ModelBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AnimBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texShadowBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.DecoBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texDecoBox", 255);
//solasys-포그테스트 //solasys-fog test // тест solasys-тумана
if(!m_bAirState)
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.TerrainBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.CharRenderRadiusSliderCtrl" );
// class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.CharBox" );
}
///////////////////////////////////////////
// Added on 2006/03/21 by NeverDie
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.WeatherEffectComboBox" );
if( nPixelShaderVersion < 12 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
}
else
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
if( nPixelShaderVersion >= 20 && nVertexShaderVersion >= 20 )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.HDRBox" );
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.HDRBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", 0 );
}
/////////////////////////////////////////////
// Added on 2007/05/25 by Oxyzen
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 255);
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30Box" ) )
{
//~ debug("s30지원가 - 활성"); //~ debug("s30 support - active"); //~ debug("Поддержка s30 - активна");
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false );
//~ class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ShadowBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ShadowBox", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ReflectBox", false );
//~ class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30Box" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 255);
}
else
{
//~ debug("s30지원가 - 비활성"); //~ debug("s30 support - inactive"); //~ debug("Поддержка s30 - неактивна");
//class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.GPUAnimationCheckBox" );
//~ class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ShadowBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
}
}
else
{
//~ debug("s30지원불가"); //~ debug("s30 not supported"); //~ debug("s30 не поддерживается");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
}
CheckGraphicPreset();
}
///////////////м§Ђкё€л¶Ђн„° нЊЊн‹°лЈЁнЊ…ліЂкІЅ кґЂл Ё мЅ”л“њк°Ђ 들어갑니다////////////////////////////////////////////////////////////////
///////////////From now on, the code related to changing party routing will be entered //////////////////////////////
//////////////С этого момента будет вводиться код, связанный с изменением маршрутизации стороны /////////////////////
//
// нЊЊн‹°лЈЁнЊ…мќ„ мµм…м°Ѕм—ђм„њ ліЂкІЅн•лЉ” кґЂкі„лЎњ 여기에다 л„Јм—€мќЊ
// I put it here because I changed the party routing in the options window.
// Я поместил его сюда, потому что изменил маршрутизацию группы в окне настроек.
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function OnPartyMatchRoomClose()
{
local ComboBoxHandle c_handle;
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
if (!bPartyMember && !bPartyMaster)
c_handle.SetSelectedNum(GetOptionInt( "Game", "PartyLooting"));
}
function OnPartyHasDismissed()
{
local ComboBoxHandle c_handle;
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
c_handle.SetSelectedNum(GetOptionInt( "Game", "PartyLooting"));
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
//нЊЊн‹°к°Ђ н•ґм њ,탈퇴,м¶”л°©лђл©ґ мћђм‹ мќґ м„¤м •н•њ лЈЁнЊ…л°©м‹ќмњјлЎњ 돌아간다.
//파티장도 л§€м°¬к°Ђм§Ђ(лЈЁнЊ…ліЂкІЅм‹њ 파티장은 м ЂмћҐлђњл‹¤)
//If the party is canceled, withdrawn, or expelled, it returns to the routing method you set.
// Same goes for the party leader (when changing routing, the party leader is saved)
//Если группа отменена, отозвана или исключена, она возвращается к установленному вами методу маршрутизации.
// То же самое касается лидера партии (при изменении маршрута лидер партии сохраняется)
}
function OnBecamePartyMember(string a_Param) //파티원이 됨 //Become a party member //Стать членом партии
{
local int Lootingtype;
local ComboBoxHandle c_handle;
ParseInt(a_Param, "Lootingtype", Lootingtype);
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
//лЈЁнЊ…нѓЂмћ…мќ„ 파티장따라간다. м ЂмћҐмќЂ н•м§Ђ 않는다
//Follow the party leader’s routing type. Do not save
//Следуйте типу маршрутизации лидера партии. Не сохранять
c_handle.SetSelectedNum(Lootingtype);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
}
function OnBecamePartyMaster(string a_Param) //파티장이됨 //Become the party leader //Станьте лидером партии
{
local int Lootingtype;
local ComboBoxHandle c_handle;
ParseInt(a_Param, "Lootingtype", Lootingtype);
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
c_handle.SetSelectedNum(Lootingtype);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
}
function OnHandOverPartyMaster() //파티장을 양도함 //Transfer the party leader //Переносим лидера партии
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
}
function OnRecvPartyMaster() //파티장을 양도받음 //Take over the party leader //Захватываем лидера партии
{
local ComboBoxHandle c_handle;
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
//방장이 лђл©ґ н„мћ¬л°©м‹ќмќ„ м ЂмћҐн•њл‹¤. мљґлЄ…м ЃмњјлЎњ
//If you become the host, save the current method. fatefully
//Если вы станете хостом, сохраните текущий метод. роковым образом
SetOptionInt( "Game", "PartyLooting", c_handle.GetSelectedNum());
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
}
function OnRestart()
{
local ComboBoxHandle c_handle;
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
c_handle.SetSelectedNum(GetOptionInt( "Game", "PartyLooting"));
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
}
function string getLootingString(int type)
{
local string retstr;
switch(type)
{
case 0: // 0(gatherer first) собиратель первый
retstr = GetSystemString(487);
break;
case 1:// 1(party random distribution) случайное распределение партии
retstr = GetSystemString(488);
break;
case 2:// 2(party random distribution including spoil) случайное распределение партии, включая добычу
retstr = GetSystemString(798);
break;
case 3:// 3(party member's ordering) приказ члена партии
retstr = GetSystemString(799);
break;
case 4:// 4(party member's ordering including spoil) заказ члена партии, включая спойлер
retstr = GetSystemString(800);
break;
}
return retstr;
}
function bool IsRoomMaster()
{
local PartyWnd Script;
Script = PartyWnd(GetScript("PartyWnd"));
return Script.m_AmIRoomMaster;
}
function OnPartyLootingHasModified(String a_Param) //нЊЊн‹°лЈЁнЊ…мќґ ліЂкІЅлђм—€мќ„л•Њ //When party routing changes //РљРѕРіРґР° меняется маршрутизация РіСЂСѓРїРїС‹
{
local int IsSuccess;
local int LootingScheme;
local string Schemestr;
local string strParam;
local PartyWnd script;
//////////for ScreenMsg///////////
local SystemMsgData SystemMsgCurrent;
///////////////////////////////////////
//лЈЁнЊ… мЅ¤ліґл°•мЉ¤ ліЂкІЅмќ„ мњ„н•ґ
//To change the routing combo box
//Чтобы изменить поле со списком маршрутизации
local ComboBoxHandle c_handle;
/////////////////////////
local TextBoxHandle t_handle;
script = PartyWnd(GetScript("PartyWnd"));
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
ParseInt(a_Param, "IsSuccess", IsSuccess);
ParseInt(a_Param, "LootingScheme", LootingScheme);
//мќґкіім—ђ мЉ¤нЃ¬л¦°л©”м‹њм§Ђ мЅ”л“њ м¶”к°Ђ. мµм…м°Ѕ нЊЊн‹°лЈЁнЊ…л°©м‹ќ мЅ¤ліґл°•мЉ¤лЏ„ 다루어야함
//Add screen message code here. The party routing method combo box in the options window must also be dealt with.
//Добавляем сюда код сообщения на экране. Также необходимо учитывать поле со списком метода маршрутизации вечеринки в окне параметров.
//м„±кіµмќґкё°л§Њ н•л©ґ partyMatchRoom мќ лЈЁнЊ…л°©м‹ќмќЂ 무조건 바꿔야한다. //нЊЊн‹°м°Ѕмќ л°©мћҐн€ґнЊЃлЏ„ліЂкІЅ
//As long as it is successful, the routing method of partyMatchRoom must be changed. //Change the host tooltip in the party window
//Если РІСЃРµ прошло успешно, метод маршрутизации partyMatchRoom необходимо изменить. //Рзменяем всплывающую подсказку хоста РІ РѕРєРЅРµ РіСЂСѓРїРїС‹
if(IsSuccess != 0)
{
script.SetMasterTooltip(LootingScheme);
Schemestr = getLootingString(LootingScheme);
t_handle = GetTextBoxHandle("PartyMatchRoomWnd.LootingMethod");
t_handle.SetText(Schemestr);
}
//мћђм‹ мќґ 파티장 н№мќЂ 파티방장이라면
//If you are the party leader or party leader
//Если вы лидер партии или лидер партии
if(bPartyMaster || IsRoomMaster())
{
AddSystemMessage(3136);
if(IsSuccess != 0) //변경 성공 //change successful //изменение успешно
{
//방장만 мќґ л°©лІ•мњјлЎњ лЈЁнЊ…м„¤м •мќ„ м ЂмћҐн•њл‹¤.(мћђкё°к°Ђ к¶Њмњ н•њ к±°л‹€к№Њ)
//Only the host saves the rooting settings in this way. (Because he recommended it)
//Только хост сохраняет настройки рутирования таким образом (потому что он рекомендовал это).
SetOptionInt( "Game", "PartyLooting", LootingScheme );
//do not change. Preserve combobox's current Item.
//не менять. Сохранить текущий элемент списка.
}
//변경실패 мЅ¤ліґл°•мЉ¤ м›ђлћлЎњ ліµк·Ђ
//Change failed, return combo box to its original state
//Рзменить РЅРµ удалось, вернуть поле СЃРѕ СЃРїРёСЃРєРѕРј РІ РёСЃС…РѕРґРЅРѕРµ состояние
else
{
c_handle.SetSelectedNum(GetOptionInt( "Game", "PartyLooting"));
}
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" ); //루팅박스 활성화 //Activate loot box //Активируем лутбокс
}
if(IsSuccess == 0) //fail
{
//debug("실패했음"); //debug("Failed"); //отладка("Ошибка");
}
//success нЊЊн‹°м›ђмќј кІЅмљ°, мЅ¤ліґл°•мЉ¤л§Њ л°”кї”мЈјкі м ЂмћҐмќЂ н•지않는다
//success If you are a party member, only change the combo box and do not save
//успех Если вы член группы, измените только поле со списком и не сохраняйте.
else if(IsSuccess == 1)
{
Schemestr = 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(EV_ShowScreenMessage, strParam);
PlaySound(SystemMsgCurrent.Sound);
c_handle.SetSelectedNum(LootingScheme); //м ЂмћҐмќЂ н•м§Ђ 않는다. //Do not save. //РќРµ сохранять.
}
//success 그냥 л°©м•€м—ђ мћ€лЉ” 사람일 кІЅмљ°. мЅ¤ліґл°•мЉ¤л§Њ л°”кї”мЈјкі м ЂмћҐмќЂ н•지않는다
//success If it's just someone in the room. Only changes the combo box and does not save it.
//успех Если в комнате просто кто-то есть. Только меняет поле со списком и не сохраняет его.
else if(IsSuccess == 2)
{
Schemestr = 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(EV_ShowScreenMessage, strParam);
PlaySound(SystemMsgCurrent.Sound);
c_handle.SetSelectedNum(LootingScheme); //м ЂмћҐмќЂ н•м§Ђ 않는다. //Do not save. //РќРµ сохранять.
}
}
function OnAskPartyLootingModify(String a_Param)
{
//Using for Party Looting Scheme Modification//
//Рспользование для модификации схемы партийного мародерства//
local string LeaderName;
local int LootingScheme;
/////////////////////////////////////////////////
local string Schemestr;
// 다이얼 лЎњк·ё л°•мЉ¤м—ђм„њ м€, м•„л‹€м¤ к°Ђ л‚м¤лЏ„лЎќ 한다.
// Make yes and no appear in the dialog box.
// Сделать да и нет в диалоговом окне.
dScript.SetButtonName( 184, 185 );
DialogSetID( PARTY_MODIFY_REQUEST );
DialogSetParamInt64( IntToInt64(10*1000) ); // 5 seconds
// 엔터를 м№к±°л‚ нѓЂмћ„м•„м›ѓл°њмѓќм‹њ cancleлЎњ нЊђл‹Ё
// Judged as cancel when enter is pressed or timeout occurs
// Расценивается как отмена, когда нажата клавиша Enter или происходит тайм-аут
DialogSetDefaultCancle();
ParseString(a_Param, "LeaderName", LeaderName);
ParseInt(a_Param, "LootingScheme", LootingScheme);
Schemestr = getLootingString(LootingScheme);
DialogShow(DIALOG_Modalless, DIALOG_Progress, MakeFullSystemMsg(GetSystemMessage(3134),Schemestr));
}
function HandleDialogOK() //нЊЊн‹°лЈЁнЊ…ліЂкІЅ лЏ™мќм°Ѕ //Party routing change consent window //РћРєРЅРѕ согласия РЅР° изменение маршрутизации стороны
{
if( DialogIsMine() )
{
if( DialogGetID() == PARTY_MODIFY_REQUEST )
{
RequestPartyLootingModifyAgreement(1); //лЏ™мќ н•Ё //Agree //Соглашаться
}
else if( DialogGetID() == OPTION_CHANGE )
{
SetUIState( "ShaderBuildState" );
}
}
}
function HandleDialogCancel() //нЊЊн‹°лЈЁнЊ…ліЂкІЅ лЏ™мќм°Ѕ //Party routing change consent window //РћРєРЅРѕ согласия РЅР° изменение маршрутизации стороны
{
// 확인, 취소 로 복구 // Restore with OK and Cancel // Восстановление с помощью ОК и Отмена
dScript.SetButtonName( 1337, 1342 );
if( DialogIsMine() )
{
if( DialogGetID() == PARTY_MODIFY_REQUEST )
{
RequestPartyLootingModifyAgreement(0); //к±°м €н•Ё н№мќЂ нѓЂмћ„м•„м›ѓ //Reject or timeout //Отклонить или таймаут
}
}
}
function OnComboBoxItemSelected( string sName, int index )
{
local PartyWnd script;
local ComboBoxHandle c_handle;
// debug(string(bPartyMaster));
// debug(string(IsRoomMaster()));
// debug(string(bPartyMember));
switch( sName )
{
case "LootingBox":
script = PartyWnd(GetScript("PartyWnd"));
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
//파티방장인데 파티장을 м–‘лЏ„н•лЉ” кІЅмљ°к°Ђ мћ€м–ґм„њ
//I am the party leader, but there are cases where the party leader is transferred.
//Я лидер партии, но бывают случаи, когда лидера партии переводят.
if(bPartyMaster || (IsRoomMaster() && !bPartyMember))
{
//н„мћ¬ лЈЁнЊ…кіј к°™мќЂк±ё лђм„ нѓќн•л©ґ 무시.
//м ЂмћҐлђњ м„¤м •мќґ н„мћ¬ м„¤м •мќґлћ‘ мќјм№н•лЉ” мќґмњ лЉ” 파티를 мґ€лЊЂн• л•Њ м ЂмћҐлђњ м„¤м •мќ„ 사용н•кі ,
//лЈЁнЊ…мќґ ліЂкІЅлђлЏ„ м„¤м •мќ„ м ЂмћҐн•кё° 때문이다.
//If the same route as the current one is selected again, it will be ignored.
//The reason the saved settings match the current settings is because the saved settings are used when inviting a party.
//This is because the settings are saved even if the routing is changed.
//Если снова выбран тот же маршрут, что и текущий, он будет проигнорирован.
//Причина, по которой сохраненные настройки соответствуют текущим, заключается в том, что сохраненные настройки используются при приглашении на вечеринку.
//Рто потому, что настройки сохраняются даже РїСЂРё изменении маршрутизации.
if(GetOptionInt( "Game", "PartyLooting") == c_handle.GetSelectedNum())
break;
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
RequestPartyLootingModify(c_handle.GetSelectedNum()); // лЈЁнЊ…ліЂкІЅмќ„ м‹ мІн•њл‹¤. // Apply for routing change. // Применить изменение маршрутизации.
}
break;
case "ResBox":
ResetRefreshRate( ResolutionList[ index ].nWidth, ResolutionList[ index ].nHeight );
break;
//case "DefaultPositionBox" :
// SetOptionInt( "Game", "LayoutDF", index );
// break;
case "TextureBox":
case "TerrainBox":
case "ModelBox":
case "AnimBox":
case "AABox":
CheckGraphicPreset();
break;
}
}
// 슬라이더 컨트롤 핸들러 - lancelot 2006. 6. 13.
// Slider control handler - lancelot 2006. 6. 13.
// Обработчик управления ползунком - lancelot 2006. 6. 13.
function OnModifyCurrentTickSliderCtrl(string strID, int iCurrentTick)
{
local float fVolume;
fVolume = GetVolumeFromSliderTick(iCurrentTick);
switch(strID)
{
case "EffectVolumeSliderCtrl" :
//if (isLoadUIComplete)
if (!class'UIAPI_WINDOW'.static.IsEnableWindow("OptionWnd.EffectVolumeSliderCtrl"))
{
SetOptionFloat("Audio", "SoundVolume", fVolume);
if (!skipMuteCheckBox && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
}
SetAudioSliderDisable(255, strID);
}
break;
case "MusicVolumeSliderCtrl" :
// мЉ¬лќјмќґлЌ” 바를 м›Ђм§ЃмќґлЉ” 도중에는 мќЊм•…мќґ кєјм§Ђм§Ђ м•ЉкІЊ н•кё° мњ„н•ґм„њ
// To prevent music from turning off while moving the slider bar
// Чтобы музыка не выключалась при перемещении ползунка
if(fVolume==0.0f)
fVolume=0.005f;
//if (isLoadUIComplete)
if (!class'UIAPI_WINDOW'.static.IsEnableWindow("OptionWnd.MusicVolumeSliderCtrl"))
{
SetOptionFloat("Audio", "MusicVolume", fVolume);
if (!skipMuteCheckBox && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
}
SetAudioSliderDisable(255, strID);
}
break;
case "SystemVolumeSliderCtrl" :
//if (isLoadUIComplete)
if (!class'UIAPI_WINDOW'.static.IsEnableWindow("OptionWnd.SystemVolumeSliderCtrl"))
{
SetOptionFloat("Audio", "WavVoiceVolume", fVolume);
if (!skipMuteCheckBox && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
}
SetAudioSliderDisable(255, strID);
}
break;
case "TutorialVolumeSliderCtrl" :
//if (isLoadUIComplete)
if (!class'UIAPI_WINDOW'.static.IsEnableWindow("OptionWnd.TutorialVolumeSliderCtrl"))
{
SetOptionFloat("Audio", "OggVoiceVolume", fVolume);
if (!skipMuteCheckBox && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
}
SetAudioSliderDisable(255, strID);
}
break;
case "GammaBoxSliderCtrl":
if (isLoadUIComplete)
{
fVolume = 0.4f + float(class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.VideoTabScrollArea.GammaBoxSliderCtrl"))*0.01f;
SetOptionFloat( "Video", "Gamma", fVolume );
}
break;
case "sldr_GraphicPreset":
if (!fakeModifyGraphicPreset && isLoadUIComplete)
{
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.FrameBox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.FrameBox", false);
MinFrameRateOff();
}
SetupGraphicPreset();
}
break;
}
}
function OnTimer(int TimerID)
{
/* if (TimerID == 777)
{
currWindowMode = GetOptionBool( "Video", "StartupFullScreen");
if (currWindowMode != prevWindowMode)
{
prevWindowMode = currWindowMode;
nextWindowMode = currWindowMode;
SetupButtonsWindowModeTexture(currWindowMode);
}
} */
}
//=================================================================================
// function : LoadVideoOption()
//
// Description :
// * Reads option.ini file, and apply video options.
// * There is no need to apply options here for the options that share key between
// script and native code. (e.g. Video.Gamma)
// * On the other hand, options that do not share key between script and native code
// MUST be applied here. (e.g. Video.L2Shader)
// * This function MUST be called when loading the game. Otherwise, some of the
// options in option.ini will not be applied to the game.
//
// Revision History
// * 2007/11/16 NeverDie: Created
//---------------------------------------------------------------------------------
//============================================================================================
// функция: LoadVideoOption()
//
//Описание:
// * Читает файл option.ini и применяет параметры видео.
// * Здесь нет необходимости применять параметры для параметров, которые имеют общий ключ между
// скрипт и собственный код. (например, Видео.Гамма)
// * С другой стороны, параметры, которые не используют общий ключ для скрипта и машинного кода
// ДОЛЖНО быть применено здесь. (например, Video.L2Shader)
// * Рта функция ДОЛЖНА вызываться РїСЂРё загрузке РёРіСЂС‹. Р’ противном случае некоторые РёР·
// параметры в option.ini не будут применены к игре.
//
//Рстория изменений
// * 16.11.2007 NeverDie: Создано
//---------------------------------------------------------------------------------
function LoadVideoOption()
{
local bool bKeepMinFrameRate; // Min frame rate
local bool bL2Shader; // Shader 3.0
local bool bShaderDOF; // Shader 3.0 Depth of field
local bool bShaderWater; // Shader 3.0 Water
local bool bShaderShadow; // Shader 3.0 Self shadow
local float fGamma;
// Shader option should be set only when "KeepMinFrameRate" option is off
// Опция шейдера должна быть установлена только тогда, когда опция «KeepMinFrameRate» отключена
fGamma = GetOptionFloat( "Video", "Gamma" );
keepGamma = fGamma;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.GammaBoxSliderCtrl", int((fGamma-0.4f)/0.01f));
// ShowOnScreenMessage(1,2261,2,0,colorGold,20000, GetLanguage() @ string(int((1.2 - fGamma)/0.016)));
bKeepMinFrameRate = GetOptionBool( "Video", "IsKeepMinFrameRate" );
if( !bKeepMinFrameRate )
{
// If current driver doesn't support Shader 3.0, there is no need to set Shader 3.0 options
// Если текущий драйвер не поддерживает Shader 3.0, нет необходимости устанавливать параметры Shader 3.0
if( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30 )
{
// Apply Shader 3.0 config // Применяем конфигурацию шейдера 3.0
bL2Shader = GetOptionBool( "Video", "L2Shader" );
SetL2Shader(bL2Shader);
// DOF, WaterEffect, Shadow depend on L2Shader option. Set them only when bL2Shader is on.
// DOF, WaterEffect, Shadow зависят от опции L2Shader. Устанавливайте их только при включенном bL2Shader.
if( bL2Shader )
{
// Apply Shader 3.0 Depth of Field // Применяем глубину резкости шейдера 3.0
bShaderDOF = GetOptionBool( "Video", "S30DOFBOX" );
SetDOF(bShaderDOF);
// Apply Shader 3.0 Water // Применяем воду шейдера 3.0
bShaderWater = GetOptionBool( "Video", "S30WaterEffectBox" );
SetShaderWaterEffect(bShaderWater);
// Apply Shader 3.0 Self shadow // Применяем тень шейдера 3.0
bShaderShadow = GetOptionBool( "Video", "S30ShadowBox" );
SetDepthBufferShadow(bShaderShadow);
}
}
}
}
//=================================================================================
// function : LoadAudioOption()
//
// Description :
// * Reads option.ini file, and apply audio options.
// * There is no need to apply options here for the options that share key between
// script and native code. (e.g. Video.Gamma)
// * On the other hand, options that do not share key between script and native code
// MUST be applied here. (e.g. Video.L2Shader)
// * This function MUST be called when loading the game. Otherwise, some of the
// options in option.ini will not be applied to the game.
//
// Revision History
// * 2007/11/16 NeverDie: Created
//---------------------------------------------------------------------------------
//=================================================================================
// функция: LoadAudioOption()
//
//Описание:
// * Читает файл option.ini и применяет параметры звука.
// * Здесь нет необходимости применять параметры для параметров, которые имеют общий ключ между
// скрипт и собственный код. (например, Видео.Гамма)
// * С другой стороны, параметры, которые не используют общий ключ для скрипта и машинного кода
// ДОЛЖНО быть применено здесь. (например, Video.L2Shader)
// * Рта функция ДОЛЖНА вызываться РїСЂРё загрузке РёРіСЂС‹. Р’ противном случае некоторые РёР·
// параметры в option.ini не будут применены к игре.
//
//Рстория изменений
// * 16.11.2007 NeverDie: Создано
//---------------------------------------------------------------------------------
function LoadAudioOption()
{
local bool bMute; // Audio mute
// If device does not support audio, it's ok to simply ignore audio options
// Если устройство не поддерживает звук, можно просто игнорировать параметры звука
if( CanUseAudio() )
{
// We only need to apply "Mute" option, because keys for volumes are shared between script and native code.
// Нам нужно только применить опцию «Отключить звук», поскольку ключи для томов являются общими для скрипта и машинного кода.
bMute = GetOptionBool( "Audio", "AudioMuteOn" );
if(bMute)
{
// Turn off all sounds // Выключаем все звуки
SetSoundVolume( 0.f );
SetMusicVolume( 0.f );
SetWavVoiceVolume( 0.f );
SetOggVoiceVolume( 0.f );
}
}
}
//=================================================================================
// function : LoadGameOption()
//
// Description :
// * Reads option.ini file, and apply game options.
// * There is no need to apply options here for the options that share key between
// script and native code. (e.g. Video.Gamma)
// * On the other hand, options that do not share key between script and native code
// MUST be applied here. (e.g. Video.L2Shader)
// * This function MUST be called when loading the game. Otherwise, some of the
// options in option.ini will not be applied to the game.
//
// Revision History
// * 2007/11/16 NeverDie: Created
//---------------------------------------------------------------------------------
//=================================================================================
// функция: LoadGameOption()
//
//Описание:
// * Читает файл option.ini и применяет параметры игры.
// * Здесь нет необходимости применять параметры для параметров, которые имеют общий ключ между
// скрипт и собственный код. (например, Видео.Гамма)
// * С другой стороны, параметры, которые не используют общий ключ для скрипта и машинного кода
// ДОЛЖНО быть применено здесь. (например, Video.L2Shader)
// * Рта функция ДОЛЖНА вызываться РїСЂРё загрузке РёРіСЂС‹. Р’ противном случае некоторые РёР·
// параметры в option.ini не будут применены к игре.
//
//Рстория изменений
// * 16.11.2007 NeverDie: Создано
//----------------------------------------------------------------------------------
function LoadConfigureOption()
//function LoadGameOption()
{
// Currently there is no options to load for the game tab.
// На данный момент нет возможности загрузить вкладку игры.
local bool bChecked;
bChecked=false;
bChecked=GetOptionBool( "Game", "RightClickBox");
SetFixedDefaultCamera(bChecked);
}
//event OnMouseOver( WindowHandle a_WindowHandle );
//event OnMouseOut( WindowHandle a_WindowHandle );
//event OnMouseMove( WindowHandle a_WindowHandle, int X, int Y );
function OnLButtonDown (WindowHandle a_WindowHandle, int X, int Y)
{
if (a_WindowHandle.GetWindowName() == "texSliderFontColor")
{
CalculateClickCoord(X, Y);
}
}
function CalculateClickCoord(int X, int Y)
{
local Rect clickRect;
clickRect = class'UIAPI_WINDOW'.static.GetRect("OptionWnd.texSliderFontColor");
if (Y <= clickRect.nY + 20)
if (X <= clickRect.nX + 204)
{
if (X > clickRect.nX + 136)
{
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 2);
}
else if (X > clickRect.nX + 68)
{
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 1);
}
else
{
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 0);
}
}
}
function OnMouseOver(WindowHandle a_WindowHandle)
{
if (a_WindowHandle.GetWindowName() == "texSliderFontColor")
{
class'UIAPI_WINDOW'.static.SetAlpha("OptionWnd.sldr_GraphicPreset", 255);
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
}
else if (string(a_WindowHandle) == "Transient.CheckBoxHandle" && a_WindowHandle.IsEnableWindow()) // kludge for test checkbox 's hover effect
{
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.tex"$a_WindowHandle.GetWindowName(), "MonIca_UI.NewStyle.Checkbox_" $ CheckBoxHandle(a_WindowHandle).isChecked() $ "_over");
}
}
function OnMouseOut(WindowHandle a_WindowHandle)
{
if (a_WindowHandle.GetWindowName() == "texSliderFontColor") // TODO fix detect when over slider's thumbbutton (None)
{
class'UIAPI_WINDOW'.static.SetAlpha("OptionWnd.sldr_GraphicPreset", 0);
CheckGraphicPreset();
}
else if (string(a_WindowHandle) == "Transient.CheckBoxHandle" && a_WindowHandle.IsEnableWindow()) // kludge for test checkbox 's hover effect
{
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.tex"$a_WindowHandle.GetWindowName(), "MonIca_UI.NewStyle.Checkbox_" $ CheckBoxHandle(a_WindowHandle).isChecked());
}
}
function SetupGraphicPreset()
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
switch(class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.sldr_GraphicPreset"))
{
case 0: // minimum preset
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TextureBox", 2);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TerrainBox", 4);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.ModelBox", 1);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AnimBox", 1);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AABox", 0);
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.ShadowBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DecoBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.TriBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[1]);
break;
case 1: // medium preset
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TextureBox", 1);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TerrainBox", 2);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.ModelBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AnimBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AABox", 0);
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.ShadowBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DecoBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.TriBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[2]);
break;
case 2: // high preset
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TextureBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TerrainBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.ModelBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AnimBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AABox", 2);
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.ShadowBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DecoBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.TriBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[3]);
break;
}
}
function CheckGraphicPreset()
{
local string checkString,
minPreset,
midPreset,
maxPreset;
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.FrameBox"))
{
// GetINIString("OptionWnd", "txtGraphicCurrentLowFrame"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[0]);
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
fakeModifyGraphicPreset = true;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 0);
fakeModifyGraphicPreset = false;
return;
}
minPreset = "24110000";
midPreset = "12000111";
maxPreset = "00002111";
checkString = class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.TextureBox")$ // texture detail
class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.TerrainBox")$ // terrain detail
class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.ModelBox")$ // model detail
class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.AnimBox")$ // animation detail
class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.AABox")$ // anti-aliasing detail
int(class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.ShadowBox"))$ // shadow enable
int(class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.DecoBox"))$ // ground detail(grass) enable
int(class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.TriBox")); // texture filter enable
//Say("checkString" @ checkString);
if (checkString == minPreset)
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
fakeModifyGraphicPreset = true;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 0);
fakeModifyGraphicPreset = false;
// GetINIString("OptionWnd", "txtGraphicCurrentMin"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[1]);
}
else if (checkString == midPreset)
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
fakeModifyGraphicPreset = true;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 1);
fakeModifyGraphicPreset = false;
// GetINIString("OptionWnd", "txtGraphicCurrentMid"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[2]);
}
else if (checkString == maxPreset)
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
fakeModifyGraphicPreset = true;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 2);
fakeModifyGraphicPreset = false;
// GetINIString("OptionWnd", "txtGraphicCurrentMax"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[3]);
}
else
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 122);
// GetINIString("OptionWnd", "txtGraphicCurrentCust"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[4]);
}
}
function SwitchWindowStyle(string param)
{
local int EventID;
// local string newStyle;
ParseInt(param, "EventID", EventID);
if (EventID == 10)
{
ParseString(param, "Style", windowStyle);
ParseInt(param, "SubStyle", subWindowStyle);
ChangeStyleButtonTexture();
DrawGeneralUI(windowStyle, true, false);
DrawButtonTexture(Me, windowStyle);
}
}
function RestoreDefaultSettings()
{
selectedTab = tab_TabCtrl.GetTopIndex();
switch(selectedTab)
{
case 0: // VideoTab
RestoreDefaultVideoSettings();
break;
case 1: // AudioTab
RestoreDefaultAudioSettings();
break;
case 2: //ConfigureTab
RestoreDefaultConfigureSettings();
break;
case 3: //GameTab
RestoreDefaultGameSettings();
break;
case 4: //InterfaceTab
RestoreDefaultInterfaceSettings();
break;
case 5: //DamageOnScreenTab
RestoreDamageTextSettings();
break;
case 6: //ChatChannelTab
RestoreDefaultChannelChatSettings();
break;
case 7: //ChatCommonTab
RestoreDefaultCommonChatSettings();
break;
case 8: //ShortcutTab
if (!class'UIAPI_WINDOW'.static.IsShowWindow("OptionWnd.ShortcutTab.DisableBox"))
RestoreDefaultShortcutSettings();
break;
case 9: //MonIca_InterfaceTab
RestoreExInterfaceSettings();
break;
}
}
//MonIca_InterfaceTab
function RestoreExInterfaceSettings()
{
local MonIca_InterfaceTab script_MonIca_InterfaceTab;
script_MonIca_InterfaceTab = MonIca_InterfaceTab(GetScript("OptionWnd.MonIca_InterfaceTab"));
script_MonIca_InterfaceTab.RestoreDefaultExInterfaceSettings();
}
//DamageOnScreenTab
function RestoreDamageTextSettings()
{
// show on screen damage with textboxes
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DamageTextTabScrollArea.ScreenDamageBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.DamageTextTabScrollArea.texScreenDamageBox", "MonIca_UI.NewStyle.Checkbox_false");
// show on screen damage with emitters
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DamageTextTabScrollArea.WorldDamageBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.DamageTextTabScrollArea.texWorldDamageBox", "MonIca_UI.NewStyle.Checkbox_false");
}
function RestoreDefaultCommonChatSettings()
{
local CommonChatTab script_CommonChatTab;
script_CommonChatTab = CommonChatTab( GetScript( "OptionWnd.CommonChatTab" ) );
script_CommonChatTab.RestoreDefaultCommonChatOption();
}
function RestoreDefaultChannelChatSettings()
{
local ChannelChatTab script_ChannelChatTab;
script_ChannelChatTab = ChannelChatTab( GetScript( "OptionWnd.ChannelChatTab" ) );
script_ChannelChatTab.RestoreDefaultChannelChatOption();
}
function RestoreDefaultShortcutSettings()
{
local ShortcutAssignWnd script_ShortcutAssignWnd;
script_ShortcutAssignWnd = ShortcutAssignWnd(GetScript("OptionWnd.ShortcutTab"));
script_ShortcutAssignWnd.ResetShortcutsForAllButtons();
}
function RestoreDefaultInterfaceSettings()
{
// м§Ђм—лЄ…н‘њм‹њ // Display area name // РРјСЏ области отображения - ZoneNameBox
// "Game", "ShowZoneTitle" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ZoneNameBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texZoneNameBox", "MonIca_UI.NewStyle.Checkbox_false");
// л“њлЎлђњ м•„мќґн…њ н‘њм‹њ // Display dropped items // Отображать выпавшие элементы
// "Game", "HideDropItem" = false
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DropItemBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDropItemBox", "MonIca_UI.NewStyle.Checkbox_false");
// 투명화 // Invisibility // Невидимость - OpacityBox
// "Game", "TransparencyMode" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.OpacityBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texOpacityBox", "MonIca_UI.NewStyle.Checkbox_true");
// к·ёлћн”Ѕм»¤м„њ // graphic cursor // графический РєСѓСЂСЃРѕСЂ - CursorBox
// "Video", "UseColorCursor" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CursorBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCursorBox", "MonIca_UI.NewStyle.Checkbox_true");
// 3D화살표 // 3D arrow // 3D стрелка - ArrowBox (3D Quest Emitter)
// "Game", "ArrowMode" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ArrowBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texArrowBox", "MonIca_UI.NewStyle.Checkbox_true");
// 스크린샷 품질 // Screenshot quality // Качество скриншота - CaptureBox
// "Game", "ScreenShotQuality" = 0
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.CaptureBox", 0);
OnClickButton("btnDisableAllHelpOff");
OnClickButton("btnShowAllNamesOn");
}
function RestoreDefaultGameSettings()
{
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.LootingBox", 0);
OnClickButton("btnInteractionOff");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.PartyRejectBox", false);
OnClickButton("btnAutoTradeOff");
}
function RestoreDefaultConfigureSettings()
{
// м–ём–ґм„ нѓќ // Select language // Выбор языка - LanguageBox
// "Game", "IsNative" = true
// class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.LanguageBox", 0 );
// 키보드보안 // keyboard security // безопасность клавиатуры - KeyboardBox
if( IsUseKeyCrypt() )
{
if( IsCheckKeyCrypt() )
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", true );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_true");
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_false");
}
if( IsEnableKeyCrypt() )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 122);
}
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 122);
}
// 게임패드 // gamepad // геймпад - Box
// "Game", "UseJoystick" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.JoypadBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texJoypadBox", "MonIca_UI.NewStyle.Checkbox_false");
if( CanUseJoystick() )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.JoypadBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texJoypadBox", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.JoypadBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texJoypadBox", 122);
}
//л§€мљ°мЉ¤мљ°нЃґл¦ //Right mouse click //Щелкните правой РєРЅРѕРїРєРѕР№ мыши - RightClickBox
// "Game", "RightClickBox" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.RightClickBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texRightClickBox", "MonIca_UI.NewStyle.Checkbox_false");
// м№ґл©”лќјм¶”м Ѓ // camera tracking // отслеживание камеры - CameraBox
// "Game", "AutoTrackingPawn" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CameraBox", true );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCameraBox", "MonIca_UI.NewStyle.Checkbox_true");
}
function RestoreDefaultAudioSettings()
{
if(CanUseAudio())
{
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.MusicVolumeSliderCtrl", 2);
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.EffectVolumeSliderCtrl", 2);
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.SystemVolumeSliderCtrl", 2);
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.TutorialVolumeSliderCtrl", 2);
}
else
{
SetAudioSliderDisable(122);
}
}
function RestoreDefaultVideoSettings()
{
local int nPostProcessType;
local int nTmp, nTmp2, nTmp3;
//local bool bTmp;
// skip fullscreen/window mode
// н™”м§€к°њм„ м…°мќґлЌ” // Picture quality improvement shader // Шейдер улучшения качества изображения - HDRBox
// "Video", "PostProc" = 0;
nPostProcessType = 0;
// Gamma setting
// "Video", "Gamma" = 0.6f (75%)
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.GammaBoxSliderCtrl", 60);
// м‹њм•ј-мєђл¦н„° // view-character // просмотр-СЃРёРјРІРѕР» - CharBox
// "Video", "PawnClippingRange" = 3
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharRenderRadiusSliderCtrl", 3);
// мєђл¦н„°н‘њм‹њм њн•њ // Restrict character display // Ограничить отображение символов - RenderCharacterCount
// "Video", "RenderActorLimitOpt" = 12
nTmp = 12;
nTmp2 = class'UIAPI_SLIDERCTRL'.static.GetTotalTickCount("OptionWnd.CharacterLimitSliderCtrl");
nTmp3 = GetPawnValue(nTmp, nTmp2, RENDERCHARACTERLIMIT_MIN, RENDERCHARACTERLIMIT_MAX);
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharacterLimitSliderCtrl", nTmp);
// мµњм†Њн”„л €мћ„мњ м§Ђ // Maintain minimum frame // Поддерживаем минимальный кадр - FrameBox
// "Video", "IsKeepMinFrameRate" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.FrameBox", false);
MinFrameRateOff();
// 텍스쳐디테일 // texture details // детали текстуры - TextureBox
// "Video", "TextureDetail" = 1
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.TextureBox", 1);
// м‹њм•ј-м§Ђн• // field of view - terrain // поле зрения - местность - TerrainBox
// "Video", "TerrainClippingRange" = 2
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.TerrainBox", 2);
// 그림자 // shadow // тень - ShadowBox
// "Video", "PawnShadow" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ShadowBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_true");
// 모델링디테일 // modeling details // детали моделирования - ModelBox
// "Video", "ModelDetail" = 0
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ModelBox", 0);
// лЄЁм…л””н…Њмќј // motion detail // детали движения - AnimBox
// "Video", "SkipAnim" = 0
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AnimBox", 0);
// 배경효과 // background effect // фоновый эффект - DecoBox
// "Video", "RenderDeco" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DecoBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_true");
// GPUм• л‹€л©”мќґм… // GPU animation // анимация графического процессора- GPUAnimationCheckBox
// "Video", "GPUAnimation" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGPUAnimationCheckBox", "MonIca_UI.NewStyle.Checkbox_false");
if( nVertexShaderVersion < 20 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox");
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texGPUAnimationCheckBox", 122);
}
// 안티알리아싱 // anti-aliasing // сглаживание - AABox
// "Video", "AntiAliasing" = 0
nTmp = GetMultiSample();
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AABox", 0);
if( nTmp > 0 && !( 3 <= nPostProcessType && nPostProcessType <= 5 ) )
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AABox" );
}
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.AABox" );
}
// 텍스쳐필터링 // texture filtering // фильтрация текстур - TriBox
// "Video", "UseTrilinear" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TriBox", true );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_true");
// 기상효과 // weather effect // погодный эффект - WeatherEffectComboBox
// "Video", "WeatherEffect" = 0
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.WeatherEffectComboBox", 0);
// л°м‚¬нљЁкіј // reflection effect // эффект отражения - ReflectBox
// "Video", "IsUseEffect" = false "EffectType" = 0
if( nPixelShaderVersion < 12 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
}
else
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
}
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
//~ debug ("포스트 프로세스타입" @ nPostProcessType); //~ debug ("Post Process Type" @ nPostProcessType); //~ отладка ("Тип постпроцесса" @ nPostProcessType);
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", 0 );
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0
// "Video", "L2Shader" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_false");
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0 - DOF?
// "Video", "S30DOFBOX" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_false");
//м…°мќґлЌ” 3.0 - л¬јнљЁкіј //Shader 3.0 - Water Effect //Шейдер 3.0 — Рффект РІРѕРґС‹
// "Video", "S30WaterEffectBox" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_false");
//셰이더 3.0 - 그림자. //Shader 3.0 - Shadows. //Шейдер 3.0 - Тени.
// "Video", "S30ShadowBox" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
}
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
}
//백그라운드 실행성능 낮추기 //Reduce background execution performance //Уменьшаем производительность фонового выполнения
// "Game", "UseLazyMode" = true
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.LazyModeBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texLazyModeBox", "MonIca_UI.NewStyle.Checkbox_true");
CheckGraphicPreset();
}
defaultproperties
{
}
// edKith 07.01.2016
// added language switch support for Russian Localization
//edKith 07.01.2016
//добавлена поддержка переключения языка для русской локализации
class OptionWnd extends UICommonAPI;
const PARTY_MODIFY_REQUEST = 0;
const OPTION_CHANGE = 1;
//мєђл¦н„° н‘њм‹њм њн•њ мЉ¬лќјмќґлЌ” м•Ўм… //Character display restriction slider action //Действие ползунка ограничения отображения символов
const RENDERCHARACTERLIMIT_MIN = 10;
const RENDERCHARACTERLIMIT_MAX = 400;
var bool bPartyMember;
var bool bPartyMaster;
//var bool bPartyRoomMaster;
//파티루팅도중에는 루팅콤보박스를 л§‰мњјл ¤кі н•њл‹¤
//Try to block the rooting combo box during party rooting
//Попробуем заблокировать поле со списком рутирования во время группового рутирования
var bool NowLooting; // always false?
var int nPixelShaderVersion;
var int nVertexShaderVersion;
var Array<ResolutionInfo> ResolutionList;
var Array<int> RefreshRateList;
var bool bShow;
var bool m_bL2Shader;
var bool m_bDepthBufferShadow;
var bool m_bDOF;
var bool m_bShaderWater;
// м·Ём†Њ н•л©ґ лђлЏЊл¦¬кё° мњ„н•ґм„њ м€м „ кІѓмќ„ кё°м–µн•кі мћ€мќ„ ліЂм€ - lancelot 2006. 6. 13.
// Variable that remembers the old one to be restored when canceled - lancelot 2006. 6. 13.
// Переменная, запоминающая старую, которая будет восстановлена ​​при отмене - lancelot 2006. 6. 13.
var int m_iPrevSoundTick;
var int m_iPrevMusicTick;
var int m_iPrevSystemTick;
var int m_iPrevTutorialTick;
// 파티매м№л°©м—ђ 입장한 мѓЃнѓњмќёк°Ђ? 2006.10.19 ttmayrin
// Are you in the party matching room? 2006.10.19 ttmayrin
// Вы в комнате для вечеринок? 19.10.2006 ттмайрин
var bool m_bPartyMatchRoomState; // always false?
//solasys-нЏ¬к·ён…ЊмЉ¤нЉёліЂм€ /solasys-fog test variable // тестовая переменная solasys-fog
var bool m_bAirState;
var WindowHandle Me;
var WindowHandle VideoTabScroll;
var TabHandle tab_TabCtrl;
var DialogBox dScript;
/////////////////////////// by monokini ///////////////////////////////
var ButtonHandle btn_FullscreenMode;
var ButtonHandle btn_WindowMode;
var ButtonHandle btn_StyleHF;
var ButtonHandle btn_StyleMN;
var ButtonHandle btn_StyleES;
var ButtonHandle btn_StyleAS;
var string nextWindowMode; // for save new value fullscreen/window mode for ApplyVideoOption()
// var bool prevWindowMode; // detect changes fullscreen/window mode by alt+enter or default window button
// var bool currWindowMode; // detect changes fullscreen/window mode by alt+enter or default window button
var bool fakeModifyGraphicPreset; // for changes position of presetgraphic slider without "onModify" event
var bool isLoadUIComplete;
var bool skipMuteCheckBox;
var float keepGamma;
var int selectedTab;
var string graphicPresetName[5];
var string windowModeName[3];
var string currentLanguage;
var bool openAnimation;
var string windowStyle;
var int subWindowStyle; // sub style for HF style preset
function OnLoad()
{
local int i;
local int nMultiSample;
local bool bEnableEngSelection;
local ELanguageType Language;
local string strResolution;
dScript = DialogBox(GetScript("DialogBox"));
bPartyMember = false;
bPartyMaster = false;
// bPartyRoomMaster = false;
InitHandle();
if (Me == None) return; // Critical safety check
m_bAirState = false;
// 2006/03/26 - added register state by NeverDie. multi-registering states can only be placed in uc...
RegisterState( "OptionWnd", "GamingState" );
RegisterState( "OptionWnd", "LoginState" );
// Shader version
GetShaderVersion( nPixelShaderVersion, nVertexShaderVersion );
// Monitor resolution list
GetResolutionList( ResolutionList );
for( i = 0; i < ResolutionList.Length; ++i )
{
strResolution = "" $ ResolutionList[ i ].nWidth $ "*" $ ResolutionList[ i ].nHeight $ " " $ ResolutionList[ i ].nColorBit $ "bit";
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.ResBox", strResolution );
}
ResetRefreshRate();
SetOptionBool( "Game", "HideDropItem", false );
// Antialiasing
nMultiSample = GetMultiSample();
if( 0 == nMultiSample )
{
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 869 );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.AABox" );
}
else if( 1 == nMultiSample )
{
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 869 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 870 );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AABox" );
}
else if( 2 == nMultiSample )
{
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 869 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 870 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.AABox", 871 );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AABox" );
}
bEnableEngSelection = IsEnableEngSelection();
Language = GetLanguage();
switch( Language )
{
case LANG_None:
break;
case LANG_Korean:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Korean" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_English:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
break;
case LANG_Japanese:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Japanese" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_Taiwan:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Chinese(Taiwan)" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_Chinese:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "China" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_Thai:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Thai" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
case LANG_Philippine:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
break;
//edKith
//07.01.2016
//Added Russian Language Support
case LANG_Russia:
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "Russian" );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.LanguageBox", "English" );
if( bEnableEngSelection )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.LanguageBox" );
else
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.LanguageBox" );
break;
default:
break;
}
if( CanUseHDR() )
{
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.HDRBox", 1230 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.HDRBox", 1231 );
class'UIAPI_COMBOBOX'.static.SYS_AddString( "OptionWnd.HDRBox", 1232 );
}
// 2007/11/16 Now new functions(LoadVideoOption,LoadAudioOption,LoadGameOption) load the ini configuration. - NeverDie
// 16.11.2007 Теперь новые функции (LoadVideoOption,LoadAudioOption,LoadGameOption) загружают ini-конфигурацию. -Никогда не умирай
//InitVideoOption();
//InitAudioOption();
LoadVideoOption();
LoadAudioOption();
LoadConfigureOption();
//LoadGameOption();
/////////////////////////// by monokini ///////////////////////////////
SetSelectedTab(0, true); // set first tab for window ("Video");
if (tab_TabCtrl != None) tab_TabCtrl.HideWindow();
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.EffectVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.MusicVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.SystemVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.TutorialVolumeSliderCtrl");
isLoadUIComplete = true;
SwitchLanguage(); // switch custom text UI elements to current language RU/EN
class'UIAPI_WINDOW'.static.HideWindow( "OptionWnd.btnExpandVideoSettingsOn");
if (Me != None) Me.SetTitlePosOffset(0, 0);
LoadUISettings();
}
function LoadUISettings()
{
// read and setup custom UI style
GetINIString("StyleUI", "WindowStyle", windowStyle, SETTINGSINI);
// default is "MN" style
if (windowStyle == "")
windowStyle = "MN";
if (!GetINIInt("StyleUI", "SubWindowStyle", subWindowStyle, SETTINGSINI))
subWindowStyle = 0;
RequestChangeUIStyle(windowStyle, subWindowStyle);
}
function InitHandle()
{
Me = GetWindowHandle( "OptionWnd" );
VideoTabScroll = GetWindowHandle( "OptionWnd.VideoTabScrollArea" );
tab_TabCtrl = GetTabHandle("OptionWnd.TabCtrl");
btn_FullscreenMode = GetButtonHandle("OptionWnd.btnFullscreenMode");
btn_WindowMode = GetButtonHandle("OptionWnd.btnWindowMode" );
btn_StyleHF = GetButtonHandle("OptionWnd.btnStyleHF");
btn_StyleMN = GetButtonHandle("OptionWnd.btnStyleMN");
btn_StyleES = GetButtonHandle("OptionWnd.btnStyleES");
btn_StyleAS = GetButtonHandle("OptionWnd.btnStyleAS");
}
function OnRegisterEvent()
{
RegisterEvent( EV_DialogOK );
RegisterEvent( EV_DialogCancel );
//нЊЊн‹°лЈЁнЊ…мµм… ліЂкІЅмќ„мњ„н•ґ 다이얼로그에 л°мќ‘н• н•„мљ”к°Ђ 있다.
//Need to respond to dialog to change party routing options.
//Необходимо ответить на диалог, чтобы изменить параметры маршрутизации группы.
//нЊЊн‹°лЈЁнЊ…мќ ліЂкІЅ лЏ™мќ м—¬л¶ЂлҐј л¬јм–ґмґ
//Ask for consent to change party routing
//Запрашиваем согласие на изменение маршрутизации участника
RegisterEvent( EV_AskPartyLootingModify );
//нЊЊн‹°лЈЁнЊ…мќ кІ°кіјлҐј м•Њл ¤м¤Њ
//Informs the result of party routing
//Сообщает результат партийной маршрутизации
RegisterEvent( EV_PartyLootingHasModified);
// S: actor char name
// d: nItemRoutingType
//solasys-포그테스트 //solasys-fog test / тест solasys-тумана
RegisterEvent( EV_AirStateOn );
RegisterEvent( EV_AirStateOff );
RegisterEvent( EV_MinFrameRateChanged );
//RegisterEvent( EV_PartyMemberChanged );
RegisterEvent( EV_PartyHasDismissed ); //нЊЊн‹°к°Ђ н•ґмІґлђм—€мќЊ //Party has been disbanded //Партия распущена
RegisterEvent( EV_OustPartyMember ); //파티에서 추방당했음 //Kicked out of the party //Выгнали из вечеринки
RegisterEvent( EV_BecamePartyMember ); //нЊЊн‹°мќ л©¤лІ„к°Ђ лђЁ //Become a member of the party //Стать членом партии
RegisterEvent( EV_BecamePartyMaster ); //파티장이됨 //Become the party leader //Станьте лидером партии
RegisterEvent( EV_HandOverPartyMaster ); //파티장을 양도함 //Transfer the party leader //Переносим лидера партии
RegisterEvent( EV_RecvPartyMaster ); //파티장을 양도받음 //Take over the party leader //Захватываем лидера партии
// RegisterEvent( EV_PartyMatchRoomStart ); //파티방장이됨 //Become the party leader //Станьте лидером партии
RegisterEvent( EV_PartyMatchRoomClose ); //파티방닫음 //close party room //закрываем комнату для вечеринки
RegisterEvent( EV_WithdrawParty ); //파티에서 탈퇴함 //Leave from party //Выходим из вечеринки
RegisterEvent(EV_AITimer); // by monokini for switch window style
RegisterEvent( EV_ResetDevice );
}
function OnEvent( int a_EventID, String a_Param )
{
local bool bMinFrameRate;
switch( a_EventID )
{
case EV_DialogOK:
HandleDialogOK();
break;
case EV_DialogCancel:
HandleDialogCancel();
break;
case EV_MinFrameRateChanged:
InitVideoOption();
bMinFrameRate = GetOptionBool( "Video", "IsKeepMinFrameRate" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.FrameBox", bMinFrameRate);
if(bMinFrameRate)
{
MinFrameRateOn();
}
else
{
MinFrameRateOff();
}
ApplyVideoOption();
break;
//case EV_PartyMemberChanged:
//RefreshLootingBox();
//break;
//solasys-포그테스트 //solasys-fog test // тест solasys-тумана
case EV_AirStateOn:
AirStateOn();
ApplyVideoOption();
break;
case EV_AirStateOff:
AirStateOff();
ApplyVideoOption();
break;
//solasys-end
/////нЊЊн‹°лЈЁнЊ…кґЂл Ё мќґлІ¤нЉё//////////////////jdh84
/////Party rooting related events///////////////////jdh84
/////События, связанные с рутированием вечеринки////////////////////jdh84
//нЊЊн‹°лЈЁнЊ…ліЂкІЅ м‹ мІ л“¤м–ґмґ
//Party routing change request received
//Получен запрос на изменение маршрутизации стороны
case EV_AskPartyLootingModify:
OnAskPartyLootingModify(a_Param);
break;
//нЊЊн‹°лЈЁнЊ…ліЂкІЅ кІ°кіј м•Њл ¤мґ
// Notification of party routing change results
// Уведомление о результатах изменения маршрутизации стороны
case EV_PartyLootingHasModified:
OnPartyLootingHasModified(a_Param);
break;
case EV_WithdrawParty: //탈퇴н•к±°л‚ //Withdraw or //Вывод или
case EV_OustPartyMember: //м¶”л°©л‹№н•к±°л‚ // get kicked out // выгнать
case EV_PartyHasDismissed: //нЊЊн‹°к°Ђ н•ґм‚°лђ л•Њ /.When the party is disbanded //РљРѕРіРґР° партия расформирована
bPartyMember = false;
bPartyMaster = false;
OnPartyHasDismissed();
break;
case EV_BecamePartyMember://нЊЊн‹°мќ л©¤лІ„к°ЂлђЁ //Become a member of the party //Стать членом партии
bPartyMember = true;
bPartyMaster = false;
OnBecamePartyMember(a_Param);
break;
case EV_BecamePartymaster://파티장이됨 //Become the party leader //Станьте лидером партии
bPartyMember = false;
bPartyMaster = true;
OnBecamePartyMaster(a_Param);
break;
case EV_HandOverPartyMaster: //파티장을 양도함 //Transfer the party leader //Переносим лидера партии
bPartyMember = true;
bPartyMaster = false;
OnHandOverPartyMaster();
break;
case EV_RecvPartyMaster: //파티장을 양도받음 //Take over the party leader //Захватываем лидера партии
bPartyMember = false;
bPartyMaster = true;
OnRecvPartyMaster();
break;
case EV_Restart: //리스타트 //перезапуск //restart
bPartyMember = false;
bPartyMaster = false;
OnRestart();
break;
// case EV_PartyMatchRoomStart:
//bPartyRoomMaster = true;
//break;
case EV_PartyMatchRoomClose:
OnPartyMatchRoomClose();
//bPartyRoomMaster = false;
break;
case EV_AITimer:
SwitchWindowStyle(a_Param);
break;
case EV_ResetDevice:
SetupButtonsTexture(a_Param);
break;
}
}
function ResetRefreshRate( optional int a_nWidth, optional int a_nHeight )
{
local int i;
GetRefreshRateList( RefreshRateList, a_nWidth, a_nHeight );
//debug( "RefreshRateList.Length " $ RefreshRateList.Length );
class'UIAPI_COMBOBOX'.static.Clear( "OptionWnd.RefreshRateBox" );
for( i = 0; i < RefreshRateList.Length; ++i )
{
//~ debug( "RefreshRateList[ i ] " $ RefreshRateList[ i ] );
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.RefreshRateBox", RefreshRateList[ i ] $ "Hz" );
}
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.RefreshRateBox", 0 );
}
function RefreshLootingBox()
{
local PartyWnd script;
// debug("Refresh looting box");
if(NowLooting)
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
return;
}
if( GetPartyMemberCount() > 0 || m_bPartyMatchRoomState )
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
else
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
script = PartyWnd(GetScript("PartyWnd"));
if(script.AmILeader())
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
}
}
function int GetPawnValue( out int iCurrTick, int iNumTick, int MIN, int MAX )
{
local int iValue;
if(iCurrTick<0 || iCurrTick>=(iNumTick-1))
{
iValue = 10000;
iCurrTick = (iNumTick-1);
}
else
{
iValue = 10+iCurrTick*(MAX-MIN)/(iNumTick-2)-(Sin( Pi*iCurrTick/(iNumTick-2) ) * MAX/3.66);
}
return iValue;
}
function InitVideoOption()
{
local int i;
local int nResolutionIndex;
local float fGamma;
//local float fPawnClippingRange;
//local float fTerrainClippingRange;
local bool bRenderDeco;
local int nPostProcessType;
local bool bShadow;
local int nTextureDetail;
local int nModelDetail;
local int nSkipAnim;
local bool bWaterEffect;
local int nWaterEffectType;
local int nMultiSample;
local int nOption;
local bool bOption;
local bool bL2Shader;
local bool bDOF;
local bool bShaderWater;
local int iPawnValue;
local int iNumTick;
local int RenderActorLimitOpt;
// н™”м§€к°њм„ м…°мќґлЌ” // Picture quality improvement shader // Шейдер улучшения качества изображения - HDRBox
nPostProcessType = GetOptionInt( "Video", "PostProc" );
/* /////////////////////////// by monokini ///////////////////////////////
bOption = false;
bOption = GetOptionBool( "Video", "StartupFullScreen");
prevWindowMode = bOption;
currWindowMode = prevWindowMode;
nextWindowMode = bOption;
//ShowOnScreenMessage(1,2261,2,0,colorGold,2000, "Init" @ nextWindowMode);
SetupButtonsWindowModeTexture(bOption);
////////////////////////////////////////////////////////////////////// */
// 해상도 // resolution // разрешение - ResBox
nResolutionIndex = GetResolutionIndex();
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ResBox", nResolutionIndex );
// 주사율 // refresh rate // частота обновления - RefreshRateBox
GetRefreshRateList( RefreshRateList );
class'UIAPI_COMBOBOX'.static.Clear( "OptionWnd.RefreshRateBox" );
for( i = 0; i < RefreshRateList.Length; ++i )
{
class'UIAPI_COMBOBOX'.static.AddString( "OptionWnd.RefreshRateBox", RefreshRateList[ i ] $ "Hz" );
}
nOption = GetOptionInt( "Video", "RefreshRate" );
for( i = 0; i < RefreshRateList.Length; ++i )
{
//~ debug( "RefreshRateList[ " $ i $ " ] = " $ RefreshRateList[ i ] );
if( RefreshRateList[ i ] == nOption )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.RefreshRateBox", i );
}
// 감마값 // gamma value // значение гаммы - GammaBox
fGamma = GetOptionFloat( "Video", "Gamma" );
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.GammaBoxSliderCtrl", int((fGamma-0.4f)/0.01f));
// м‹њм•ј-мєђл¦н„° // view-character // просмотр-СЃРёРјРІРѕР» - CharBox
nOption = GetOptionInt( "Video", "PawnClippingRange" );
nOption = 4-nOption;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharRenderRadiusSliderCtrl", nOption);
// мєђл¦н„°н‘њм‹њм њн•њ // Restrict character display // Ограничить отображение символов - RenderCharacterCount
RenderActorLimitOpt = GetOptionInt( "Video", "RenderActorLimitOpt" );
iNumTick = class'UIAPI_SLIDERCTRL'.static.GetTotalTickCount("OptionWnd.CharacterLimitSliderCtrl");
iPawnValue = GetPawnValue( RenderActorLimitOpt, iNumTick, RENDERCHARACTERLIMIT_MIN, RENDERCHARACTERLIMIT_MAX );
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharacterLimitSliderCtrl", RenderActorLimitOpt);
SetOptionInt( "Video", "RENDERCHARACTERCOUNT", iPawnValue );
// CheckGraphicPreset is checked after any change
// мµњм†Њн”„л €мћ„мњ м§Ђ // Maintain minimum frame // Поддерживаем минимальный кадр - FrameBox
bOption = GetOptionBool( "Video", "IsKeepMinFrameRate" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.FrameBox", bOption );
if (bOption)
MinFrameRateOn();
else
MinFrameRateOff();
// 텍스쳐디테일 // texture details // детали текстуры - TextureBox
nTextureDetail = GetOptionInt( "Video", "TextureDetail" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.TextureBox", Max( 0, Min( 2, nTextureDetail ) ) );
// м‹њм•ј-м§Ђн• // field of view - terrain // поле зрения - местность - TerrainBox
nOption = GetOptionInt( "Video", "TerrainClippingRange" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.TerrainBox", nOption );
// 그림자 // shadow // тень - ShadowBox
bShadow = GetOptionBool( "Video", "PawnShadow" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ShadowBox", bShadow );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_"$bShadow);
// 모델링디테일 // modeling details // детали моделирования - ModelBox
nModelDetail = GetOptionInt( "Video", "ModelDetail" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ModelBox", nModelDetail );
// лЄЁм…л””н…Њмќј // motion detail // детали движения - AnimBox
nSkipAnim = GetOptionInt( "Video", "SkipAnim" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AnimBox", nSkipAnim );
// 배경효과 // background effect // фоновый эффект - DecoBox
bRenderDeco = GetOptionBool( "Video", "RenderDeco" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DecoBox", bRenderDeco );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_"$bRenderDeco);
// GPUм• л‹€л©”мќґм… // GPU animation // анимация графического процессора- GPUAnimationCheckBox
bOption = GetOptionBool( "Video", "GPUAnimation" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGPUAnimationCheckBox", "MonIca_UI.NewStyle.Checkbox_"$bOption);
if( nVertexShaderVersion < 20 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGPUAnimationCheckBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texGPUAnimationCheckBox", 122);
}
// 안티알리아싱 // anti-aliasing // сглаживание - AABox
nMultiSample = GetMultiSample();
if( nMultiSample > 0 && !( 3 <= nPostProcessType && nPostProcessType <= 5 ) )
{
nOption = GetOptionInt( "Video", "AntiAliasing" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AABox", nOption );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AABox" );
}
else
{
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AABox", 0 );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.AABox" );
}
// 텍스쳐필터링 // texture filtering // фильтрация текстур - TriBox
bOption = GetOptionBool( "Video", "UseTrilinear" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TriBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_"$bOption);
///////////////////////////////////////////
// Added on 2006/03/21 by NeverDie
// 기상효과 // weather effect // погодный эффект - WeatherEffectComboBox
nOption = GetOptionInt( "Video", "WeatherEffect" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.WeatherEffectComboBox", nOption );
// л°м‚¬нљЁкіј // reflection effect // эффект отражения - ReflectBox
if( nPixelShaderVersion < 12 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
}
else
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
bWaterEffect = GetOptionBool( "L2WaterEffect", "IsUseEffect" );
nWaterEffectType = GetOptionInt( "L2WaterEffect", "EffectType" );
if( !bWaterEffect )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
else if( nWaterEffectType == 1 )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 1 );
else if ( nWaterEffectType == 2 )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 2 );
else
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
}
//~ debug ("포스트 프로세스타입" @ nPostProcessType); //~ debug ("Post Process Type" @ nPostProcessType); //~ отладка ("Тип постпроцесса" @ nPostProcessType);
if( 0 <= nPostProcessType && nPostProcessType <= 5 )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", nPostProcessType );
else
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", 0 );
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0
bL2Shader = GetOptionBool( "Video", "L2Shader" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", bL2Shader );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_"$bL2Shader);
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
if(bL2Shader)
{
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 255);
}
else
{
//class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
}
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0 - DOF?
bDOF = GetOptionBool( "Video", "S30DOFBOX" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", bDOF );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_"$bDOF);
//м…°мќґлЌ” 3.0 - л¬јнљЁкіј //Shader 3.0 - Water Effect //Шейдер 3.0 — Рффект РІРѕРґС‹
bShaderWater = GetOptionBool( "Video", "S30WaterEffectBox" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", bShaderWater );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_"$bShaderWater);
//셰이더 3.0 - 그림자. //Shader 3.0 - Shadows. //Шейдер 3.0 - Тени.
m_bDepthBufferShadow = GetOptionBool( "Video", "S30ShadowBox" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", m_bDepthBufferShadow );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_"$m_bDepthBufferShadow);
}
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
}
//백그라운드 실행성능 낮추기 //Reduce background execution performance //Уменьшаем производительность фонового выполнения
bOption = GetOptionBool( "Game", "UseLazyMode");
//~ debug("л €мќґм§ЂлЄЁл“њк°Ђм ёмЁ лЌ°мќґн„°"@ bOption); //~ debug("Rage mode imported data"@ bOption); //~ debug("Рмпортированные данные режима ярости"@ bOption);
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.LazyModeBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texLazyModeBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
//nOption = GetOptionInt("Game", "LayoutDF");
//~ Debug ("кё°ліё л €мќґм•„м›ѓ лІ€нё:" @ nOption); //~ Debug ("Default layout number:" @ nOption); //~ Отладка ("Номер макета РїРѕ умолчанию:" @ nOption);
//class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.DefaultPositionBox", nOption );
}
function InitAudioOption()
{
local float fSoundVolume;
local float fMusicVolume;
local float fWavVoiceVolume;
local float fOggVoiceVolume;
// lancelot 2006. 6. 13.
local int iSoundVolume;
local int iMusicVolume;
local int iSystemVolume;
local int iTutorialVolume;
skipMuteCheckBox = true;
if (GetOptionBool( "Audio", "AudioMuteOn" ) == true)
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.mutecheckbox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.Checkbox_true");
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.Checkbox_false");
}
if( CanUseAudio() )
{
// 효과음볼륨 // sound effect volume // громкость звукового эффекта - EffectVolumeSliderCtrl
fSoundVolume = GetOptionFloat( "Audio", "SoundVolume" );
if( 0.0f <= fSoundVolume && fSoundVolume < 0.2f )
iSoundVolume=0;//Merc moded there, default: 0, mine: 1
else if( 0.2f <= fSoundVolume && fSoundVolume < 0.4f )
iSoundVolume=1;
else if( 0.4f <= fSoundVolume && fSoundVolume < 0.6f )
iSoundVolume=2;
else if( 0.6f <= fSoundVolume && fSoundVolume < 0.8f )
iSoundVolume=3;
else if( 0.8f <= fSoundVolume && fSoundVolume < 1.0f )
iSoundVolume=4;
else if( 1.0f <= fSoundVolume )
iSoundVolume=5;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.EffectVolumeSliderCtrl", iSoundVolume);
// 음악볼륨 // music volume // громкость музыки - MusicVolumeSliderCtrl
fMusicVolume = GetOptionFloat( "Audio", "MusicVolume" );
if( 0.0f <= fMusicVolume && fMusicVolume < 0.2f )
iMusicVolume=0;//Merc moded there, default: 0, mine: 2
else if( 0.2f <= fMusicVolume && fMusicVolume < 0.4f )
iMusicVolume=1;
else if( 0.4f <= fMusicVolume && fMusicVolume < 0.6f )
iMusicVolume=2;
else if( 0.6f <= fMusicVolume && fMusicVolume < 0.8f )
iMusicVolume=3;
else if( 0.8f <= fMusicVolume && fMusicVolume < 1.0f )
iMusicVolume=4;
else if( 1.0f <= fMusicVolume )
iMusicVolume=5;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.MusicVolumeSliderCtrl", iMusicVolume);
// 시스템음성 // system voice // системный голос - SystemVolumeSliderCtrl
fWavVoiceVolume = GetOptionFloat( "Audio", "WavVoiceVolume" );
if( 0.0f <= fWavVoiceVolume && fWavVoiceVolume < 0.2f )
iSystemVolume=0;
else if( 0.2f <= fWavVoiceVolume && fWavVoiceVolume < 0.4f )
iSystemVolume=1;
else if( 0.4f <= fWavVoiceVolume && fWavVoiceVolume < 0.6f )
iSystemVolume=2;
else if( 0.6f <= fWavVoiceVolume && fWavVoiceVolume < 0.8f )
iSystemVolume=3;
else if( 0.8f <= fWavVoiceVolume && fWavVoiceVolume < 1.0f )
iSystemVolume=4;
else if( 1.0f <= fWavVoiceVolume )
iSystemVolume=5;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.SystemVolumeSliderCtrl", iSystemVolume);
// нЉњн† л¦¬м–јмќЊм„± // Tutorial voice // Обучающий голос - TutorialBox
fOggVoiceVolume = GetOptionFloat( "Audio", "OggVoiceVolume" );
if( 0.0f <= fOggVoiceVolume && fOggVoiceVolume < 0.2f )
iTutorialVolume=0;
else if( 0.2f <= fOggVoiceVolume && fOggVoiceVolume < 0.4f )
iTutorialVolume=1;
else if( 0.4f <= fOggVoiceVolume && fOggVoiceVolume < 0.6f )
iTutorialVolume=2;
else if( 0.6f <= fOggVoiceVolume && fOggVoiceVolume < 0.8f )
iTutorialVolume=3;
else if( 0.8f <= fOggVoiceVolume && fOggVoiceVolume < 1.0f )
iTutorialVolume=4;
else if( 1.0f <= fOggVoiceVolume )
iTutorialVolume=5;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.TutorialVolumeSliderCtrl", iTutorialVolume);
m_iPrevSoundTick=iSoundVolume;
m_iPrevMusicTick=iMusicVolume;
m_iPrevSystemTick=iSystemVolume;
m_iPrevTutorialTick=iTutorialVolume;
}
else
{
SetAudioSliderDisable(122);
}
/// mute all volume
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox" ) )
{
SetAudioSliderDisable(122);
SetSoundVolume( 0.f );
SetMusicVolume( 0.f );
SetWavVoiceVolume( 0.f );
SetOggVoiceVolume( 0.f );
SetOptionBool("Audio", "AudioMuteOn", true);
}
else
{
SetAudioSliderDisable(255);
}
skipMuteCheckBox = false;
}
function SetAudioSliderDisable(int alpha, optional string name)
{
/* if (alpha == 255)
{
class'UIAPI_SLIDERCTRL'.static.EnableWindow("OptionWnd.EffectVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.EnableWindow("OptionWnd.MusicVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.EnableWindow("OptionWnd.SystemVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.EnableWindow("OptionWnd.TutorialVolumeSliderCtrl");
}
else
{
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.EffectVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.MusicVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.SystemVolumeSliderCtrl");
class'UIAPI_SLIDERCTRL'.static.DisableWindow("OptionWnd.TutorialVolumeSliderCtrl");
}
*/
if (name != "")
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd." $ name, alpha);
else
{
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd.EffectVolumeSliderCtrl", alpha);
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd.MusicVolumeSliderCtrl", alpha);
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd.SystemVolumeSliderCtrl", alpha);
class'UIAPI_SLIDERCTRL'.static.SetAlpha("OptionWnd.TutorialVolumeSliderCtrl", alpha);
}
}
function InitConfigureOption()
{
local bool bOption;
// м–ём–ґм„ нѓќ // Select language // Выбор языка - LanguageBox
bOption = GetOptionBool( "Game", "IsNative" );
if( bOption )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.LanguageBox", 0 );
else
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.LanguageBox", 1 );
// 키보드보안 // keyboard security // безопасность клавиатуры - KeyboardBox
if( IsUseKeyCrypt() )
{
if( IsCheckKeyCrypt() )
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", true );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_true");
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_false");
}
if( IsEnableKeyCrypt() )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 122);
}
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 122);
}
// 게임패드 // gamepad // геймпад - Box
bOption = false;
bOption = GetOptionBool( "Game", "UseJoystick" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.JoypadBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texJoypadBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
if( CanUseJoystick() )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.JoypadBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texJoypadBox", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.JoypadBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texJoypadBox", 122);
}
//л§€мљ°мЉ¤мљ°нЃґл¦ //Right mouse click //Щелкните правой РєРЅРѕРїРєРѕР№ мыши - RightClickBox
bOption = GetOptionBool( "Game", "RightClickBox" );
//~ debug ("л§€мљ°г… мЉ¤ мљ°нЃґл¦" @ bOption); //~ debug ("Right click on mouse" @ bOption); //~ отладка ("Щелкните правой РєРЅРѕРїРєРѕР№ мыши" @ bOption);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.RightClickBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texRightClickBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// м№ґл©”лќјм¶”м Ѓ // camera tracking // отслеживание камеры - CameraBox
bOption = GetOptionBool( "Game", "AutoTrackingPawn" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CameraBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCameraBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
}
function InitGameOption()
{
local int nOption,
nTmp;
local bool bOption;
// 파티루팅 // party rooting // партийное укоренение - LootingBox
nOption = GetOptionInt( "Game", "PartyLooting" );
if( class'UIAPI_WINDOW'.static.IsEnableWindow( "OptionWnd.LootingBox" ) )
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.LootingBox", nOption );
// 결투 거부 // refuse to duel // отказываемся от дуэли - DuelBox
bOption = GetOptionBool( "Game", "IsRejectingDuel" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DuelBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDuelBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp = int(bOption);
/// added by monokini
if (GetINIBool("Game", "TradeReject", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeRejectBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeRejectBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
//커플 м‹ мІ к±°л¶Ђ //Couple application rejected //Заявка РЅР° пару отклонена- CoupleActionBox
bOption = GetOptionBool( "Game", "IsCoupleAction" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CoupleActionBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCoupleActionBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
if (nTmp == 3)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOff");
}
//нЊЊн‹° м‹ мІ к±°л¶Ђ //Reject party request //Отклонить запрос стороны - PartyRejectBox
bOption = GetOptionBool( "Game", "IsRejectingParty" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.PartyRejectBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texPartyRejectBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
/// added by monokini
if (GetINIBool("Game", "TradeAcceptClan", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptClanBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptClanBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp = int(bOption);
if (GetINIBool("Game", "TradeAcceptFriend", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptFriendBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptFriendBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
if (nTmp == 2)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnAutoTradeOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnAutoTradeOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnAutoTradeOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnAutoTradeOff");
}
}
function InitDamageTextOption()
{
local int nOption;
local bool bOption;
/// added by monokini: 2D Damage Text (by textboxes)
if (GetINIBool("OnScreenText", "ScreenDamage", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.ScreenDamageBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texScreenDamageBox", "MonIca_UI.NewStyle.Checkbox_"$bOption);
/// added by monokini: 3D Damage Text (by emitters)
if (GetINIBool("OnScreenText", "WorldDamage", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.WorldDamageBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texWorldDamageBox", "MonIca_UI.NewStyle.Checkbox_"$bOption);
}
function InitExInterfaceOption()
{
local MonIca_InterfaceTab script_MonIca_InterfaceTab;
script_MonIca_InterfaceTab = MonIca_InterfaceTab(GetScript("OptionWnd.MonIca_InterfaceTab"));
script_MonIca_InterfaceTab.InitStartValues();
}
function InitCommonChatOption()
{
local CommonChatTab script_CommonChatTab;
script_CommonChatTab = CommonChatTab( GetScript( "OptionWnd.CommonChatTab" ) );
script_CommonChatTab.InitCommonChatOption();
}
function InitChannelChatOption()
{
local ChannelChatTab script_ChannelChatTab;
script_ChannelChatTab = ChannelChatTab( GetScript( "OptionWnd.ChannelChatTab" ) );
script_ChannelChatTab.InitChannelChatOption();
}
function InitInterfaceOption()
{
local bool bOption;
local bool bShowOtherPCName;
local int nOption;
local int nTmp;
local RadarMapWnd script_radar;
script_radar = RadarMapWnd( GetScript( "RadarMapWnd" ) );
// м§Ђм—лЄ…н‘њм‹њ // Display area name // РРјСЏ области отображения - ZoneNameBox
bOption = GetOptionBool( "Game", "ShowZoneTitle" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ZoneNameBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texZoneNameBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// л“њлЎлђњ м•„мќґн…њ н‘њм‹њ // Display dropped items // Отображать выпавшие элементы
bOption = GetOptionBool( "Game", "HideDropItem");
script_radar.HideDropItem = bOption;
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DropItemBox", bOption);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDropItemBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// 투명화 // Invisibility // Невидимость - OpacityBox
bOption = GetOptionBool( "Game", "TransparencyMode" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.OpacityBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texOpacityBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// к·ёлћн”Ѕм»¤м„њ // graphic cursor // графический РєСѓСЂСЃРѕСЂ - CursorBox
bOption = GetOptionBool( "Video", "UseColorCursor" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CursorBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCursorBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// 3D화살표 // 3D arrow // 3D стрелка - ArrowBox (3D Quest Emitter)
bOption = GetOptionBool( "Game", "ArrowMode" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ArrowBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texArrowBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
// 스크린샷 품질 // Screenshot quality // Качество скриншота - CaptureBox
nOption = GetOptionInt( "Game", "ScreenShotQuality" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.CaptureBox", nOption );
// м‹њмЉ¤н…њ нЉњн† л¦¬м–ј // System Tutorial // Учебное РїРѕСЃРѕР±РёРµ РїРѕ системе
// monokini: a couple AddSystemMessage, search "ShowAirShipTutorial"
bOption = GetOptionBool( "Game", "SystemTutorialBox" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.SystemTutorialBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texSystemTutorialBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp = int(bOption);
// 게임팁 표시 // Display game tips // Отображение подсказок по игре - ShowGameTipMsg
// monokini: text string in Loading screen
bOption = GetOptionBool( "Game", "ShowGameTipMsg" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GametipBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGametipBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
// мњ л‹€лІ„м„¤ 툴팁 // universal tooltip // универсальная подсказка
//bOption = GetOptionBool( "Game", "UniversalToolTipBox" );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.UniversalToolTipBox", bOption );
//class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texUniversalToolTipBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
//nTmp += int(bOption);
/// added by monokini
if (GetINIBool("Game", "HideTutorial", nOption, SETTINGSINI))
bOption = bool(nOption);
else
bOption = false;
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.HideTutorialBox", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texHideTutorialBox", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
if (nTmp == 3)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOff");
}
// мћђм‹ мќґл¦„ //your name //Ваше РёРјСЏ - NameBox0
bOption = GetOptionBool( "Game", "MyName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox0", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox0", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp = int(bOption);
// 다른PC이름 //Other PC name //Другое имя ПК - NameBox2
bShowOtherPCName = GetOptionBool( "Game", "GroupName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox2", bShowOtherPCName );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox2", "MonIca_UI.NewStyle.Checkbox_" $ bShowOtherPCName);
nTmp += int(bShowOtherPCName);
// 몬스터이름 // monster name // имя монстра - NameBox1
bOption = GetOptionBool( "Game", "NPCName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox1", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox1", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
// 파티이름 // party name // название партии - NameBox4
bOption = GetOptionBool( "Game", "PartyMemberName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox4", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox4", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
// н€л§№мќґл¦„ // Clan name // Название клана - NameBox3
bOption = GetOptionBool( "Game", "PledgeMemberName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox3", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox3", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
// мќјл°мќґл¦„ // common name // общее РёРјСЏ - NameBox5
bOption = GetOptionBool( "Game", "OtherPCName" );
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox5", bOption );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox5", "MonIca_UI.NewStyle.Checkbox_" $ bOption);
nTmp += int(bOption);
if( bShowOtherPCName )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 122);
}
if (nTmp == 6)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOff");
}
}
function OnClickCheckBox( String strID )
{
if (class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd."$strID))
{
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.tex"$strID, "MonIca_UI.NewStyle.CheckBox_true_Over");
}
else
{
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.tex"$strID, "MonIca_UI.NewStyle.CheckBox_false_Over");
}
switch( strID )
{
/*
case "SystemMsgBox":
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.SystemMsgBox" ) )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.DamageBox" );
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.ItemBox" );
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.DamageBox" );
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.ItemBox" );
}
break;
*/
case "FrameBox":
if(class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.FrameBox"))
{
MinFrameRateOn(true);
}
else
{
MinFrameRateOff(true);
}
break;
// turn on/off all sounds
case "mutecheckbox":
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox" ) )
{
SetAudioSliderDisable(122);
}
else
{
SetAudioSliderDisable(255);
}
break;
case "S30Box":
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30Box" ) )
{
//~ debug("s30지원가 - 활성"); //~ debug("s30 support - active"); //~ debug("Поддержка s30 - активна");
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
// 2007/11/16 Options should only be disabled not unchecked - NeverDie
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ReflectBox", false );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 255);
}
else
{
//~ debug("s30지원가 - 비활성"); //~ debug("s30 support - inactive"); //~ debug("Поддержка s30 - неактивна");
//class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.GPUAnimationCheckBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
// 2007/11/16 Options should only be disabled not unchecked - NeverDie
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
}
}
else
{
//~ debug("s30지원불가"); //~ debug("s30 not supported"); //~ debug("s30 не поддерживается");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
}
break;
case "ShadowBox":
case "DecoBox":
case "TriBox":
CheckGraphicPreset();
break;
case "DuelBox":
case "TradeRejectBox":
case "CoupleActionBox":
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.DuelBox") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.TradeRejectBox") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.CoupleActionBox"))
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOff");
}
break;
case "SystemTutorialBox":
case "GametipBox":
case "HideTutorialBox":
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.SystemTutorialBox") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.GametipBox") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.HideTutorialBox"))
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOff");
}
break;
case "NameBox0":
case "NameBox1":
case "NameBox2":
case "NameBox3":
case "NameBox4":
case "NameBox5":
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox0") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox1") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox2") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox3") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox4") &&
class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.NameBox5"))
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOff");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOn");
} else {
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOn");
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOff");
}
if (strID == "NameBox2")
{
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox2" ) )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 122);
}
}
break;
}
}
function OnShow()
{
bShow = true;
InitChannelChatOption();
InitVideoOption();
InitAudioOption();
InitConfigureOption();
InitGameOption();
InitInterfaceOption();
InitDamageTextOption();
InitCommonChatOption();
InitExInterfaceOption();
// ShowOnScreenMessage(1,2261,2,0,colorGold,2000, "OnShow" @ nextWindowMode);
class'ShortcutAPI'.static.UnlockShortcut();
class'UIAPI_WINDOW'.static.SetAlpha("OptionWnd.sldr_GraphicPreset", 0);
CheckGraphicPreset();
// Me.SetTimer(777, 500);
ExecuteEvent(EV_ResetDevice);
// ChannelChatTab force show, cuz it hide in init(), cuz it overlay vide tab w/o it, cuz SetTopOrder();
if (tab_TabCtrl.GetTopIndex() == 6)
{
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.ChannelChatTab");
}
}
function OnHide()
{
bShow = false;
class'ShortcutAPI'.static.UnlockShortcut();
// restore prev gamma settings if new not saved
SetOptionFloat( "Video", "Gamma", keepGamma );
// restore prev volume settings if new not saved
skipMuteCheckBox = true;
OnModifyCurrentTickSliderCtrl("EffectVolumeSliderCtrl", m_iPrevSoundTick);
OnModifyCurrentTickSliderCtrl("MusicVolumeSliderCtrl", m_iPrevMusicTick);
OnModifyCurrentTickSliderCtrl("SystemVolumeSliderCtrl", m_iPrevSystemTick);
OnModifyCurrentTickSliderCtrl("TutorialVolumeSliderCtrl", m_iPrevTutorialTick);
skipMuteCheckBox = false;
if( GetOptionBool( "Audio", "AudioMuteOn" ) == false )
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
} else {
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_true");
SetSoundVolume( 0.f );
SetMusicVolume( 0.f );
SetWavVoiceVolume( 0.f );
SetOggVoiceVolume( 0.f );
}
// turn off fullscreen/windowed mode check timer
// Me.KillTimer(777);
SwitchShortCutWindow();
}
function SwitchShortCutWindow()
{
local ShortcutAssignWnd script_ShortcutAssignWnd;
script_ShortcutAssignWnd = ShortcutAssignWnd(GetScript("OptionWnd.ShortcutTab"));
script_ShortcutAssignWnd.Switch2KeyBrowsingMode();
}
function ApplyVideoOption()
{
local bool bKeepMinFrameRate;
local bool bTrilinear;
local int nTextureDetail;
local int nModelDetail;
local int nMotionDetail;
local int nTerrainClippingRange;
local int nPawnClippingRange;
local int nReflectionEffect;
local int nHDR;
local int nWeatherEffect;
//~ local int nSelectedNum;
//local float fPawnClippingRange;
//local float fStaticMeshClippingRange;
//local float fActorClippingRange;
//local float fTerrainClippingRange;
//local float fStaticMeshLodClippingRange;
local int nSelectedNum;
local float fGamma;
local bool bRenderDeco;
local bool bShadow;
local int nResolutionIndex;
local int nRefreshRateIndex;
//~ local bool bIsChecked;
local bool bGPUAnimation;
local bool bL2Shader;
local bool bDOF;
local bool bShaderWater;
local bool bDepthBufferShadow;
local bool UnappliedOptionChange; // In order to apply option change, loading is required. // Чтобы применить изменение опции, требуется загрузка.
local bool bChecked;
local int iNumTick;
local int iPawnValue;
local int RenderActorLimitOpt;
UnappliedOptionChange = false;
// 텍스쳐필터링 // texture filtering // фильтрация текстур - TriBox
bTrilinear = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.TriBox" );
SetOptionBool( "Video", "UseTrilinear", bTrilinear );
// 텍스쳐디테일 // texture details // детали текстуры - TextureBox
nTextureDetail = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.TextureBox" );
SetOptionInt( "Video", "TextureDetail", nTextureDetail );
// 모델링디테일 // modeling details // детали моделирования - ModelBox
nModelDetail = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.ModelBox" );
SetOptionInt( "Video", "ModelDetail", nModelDetail );
// лЄЁм…л””н…Њмќј // motion detail // детали движения - AnimBox
nMotionDetail = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.AnimBox" );
SetOptionInt( "Video", "SkipAnim", nMotionDetail );
// м‹њм•ј-мєђл¦н„° // view-character // просмотр-СЃРёРјРІРѕР» - CharBox
nPawnClippingRange = class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.CharRenderRadiusSliderCtrl");
//nPawnClippingRange = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.CharBox" );
nPawnClippingRange = 4 - nPawnClippingRange;
SetOptionInt( "Video", "PawnClippingRange", nPawnClippingRange );
//ShowOnScreenMessage(1,2261,2,0,colorGold,20000, string(nPawnClippingRange));
// м‹њм•ј-м§Ђн• // field of view - terrain // поле зрения - местность - TerrainBox
nTerrainClippingRange = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.TerrainBox" );
SetOptionInt( "Video", "TerrainClippingRange", nTerrainClippingRange );
// 감마값 // Gamma value // Значение гаммы - GammaBox
//nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.GammaBox" );
nSelectedNum = class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.GammaBoxSliderCtrl");
fGamma = 0.4f + float(nSelectedNum)*0.01f;
keepGamma = fGamma;
// switch( nSelectedNum )
// {
// case 0:
// fGamma = 1.2f;
// break;
// case 1:
// fGamma = 1.0f;
// break;
// case 2:
// fGamma = 0.8f;
// break;
// case 3:
// fGamma = 0.6f;
// break;
// case 4:
// fGamma = 0.4f;
// break;
// }
// SetOptionFloat( "Video", "Gamma", fGamma );
// н™”м§€к°њм„ м…°мќґлЌ” // Picture quality improvement shader // Шейдер улучшения качества изображения - HDRBox
nHDR = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.HDRBox" );
SetOptionInt( "Video", "PostProc", nHDR );
// 배경효과 // background effect // фоновый эффект - DecoBox
bRenderDeco = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.DecoBox" );
SetOptionBool( "Video", "RenderDeco", bRenderDeco );
// 그림자 // shadow // тень - ShadowBox
bShadow = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.ShadowBox" );
SetOptionBool( "Video", "PawnShadow", bShadow );
// л°м‚¬нљЁкіј // reflection effect // эффект отражения - ReflectBox
nReflectionEffect = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.ReflectBox" );
SetOptionInt( "L2WaterEffect", "EffectType", nReflectionEffect );
if( 0 == nReflectionEffect )
SetOptionBool( "L2WaterEffect", "IsUseEffect", false );
else
SetOptionBool( "L2WaterEffect", "IsUseEffect", true );
// мєђл¦н„°н‘њм‹њм њн•њ // Restrict character display // Ограничить отображение символов - RenderCharacterCount
RenderActorLimitOpt = class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.CharacterLimitSliderCtrl");
iNumTick = class'UIAPI_SLIDERCTRL'.static.GetTotalTickCount("OptionWnd.CharacterLimitSliderCtrl");
iPawnValue = GetPawnValue( RenderActorLimitOpt, iNumTick, RENDERCHARACTERLIMIT_MIN, RENDERCHARACTERLIMIT_MAX );
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharacterLimitSliderCtrl", RenderActorLimitOpt);
SetOptionInt( "Video", "RENDERCHARACTERCOUNT", iPawnValue );
SetOptionInt( "Video", "RenderActorLimitOpt", RenderActorLimitOpt );
// 안티알리아싱 // anti-aliasing // сглаживание - AABox
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.AABox" );
SetOptionInt( "Video", "AntiAliasing", nSelectedNum );
// 해상도 // resolution // разрешение - ResBox
// 주사율 // refresh rate // частота обновления- RefreshRateBox
nResolutionIndex = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.ResBox" );
nRefreshRateIndex = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.RefreshRateBox" );
SetResolution( nResolutionIndex, nRefreshRateIndex );
///////////////////////////////////////////
// Added on 2006/03/21 by NeverDie
// 기상효과 // weather effect // погодный эффект - WeatherEffectComboBox
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.WeatherEffectComboBox" );
switch( nSelectedNum )
{
case 0:
nWeatherEffect = 0;
break;
case 1:
nWeatherEffect = 1;
break;
case 2:
nWeatherEffect = 2;
break;
case 3:
nWeatherEffect = 3;
break;
}
SetOptionInt( "Video", "WeatherEffect", nWeatherEffect );
// GPUм• л‹€л©”мќґм… // GPU animation // анимация графического процессора - GPUAnimationCheckBox
bGPUAnimation = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.GPUAnimationCheckBox" );
SetOptionBool( "Video", "GPUAnimation", bGPUAnimation );
// мµњм†Њн”„л €мћ„мњ м§Ђ // Maintain minimum frame // Поддерживаем минимальный кадр - FrameBox
bKeepMinFrameRate = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.FrameBox" );
SetOptionBool( "Video", "IsKeepMinFrameRate", bKeepMinFrameRate );
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0
bL2Shader = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30Box" );
SetOptionBool( "Video", "L2Shader", bL2Shader );
//셰이더 3.0 /Shader 3.0 //Шейдер 3.0 - DOF?
bDOF = class'UIAPI_CHECKBOX'.static.IsEnableWindow( "OptionWnd.S30DOFBOX" ) && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30DOFBOX" );
SetOptionBool( "Video", "S30DOFBOX", bDOF );
//м…°мќґлЌ” 3.0 - л¬јнљЁкіј //Shader 3.0 - Water Effect //Шейдер 3.0 — Рффект РІРѕРґС‹
bShaderWater = class'UIAPI_CHECKBOX'.static.IsEnableWindow( "OptionWnd.S30WaterEffectBox" ) && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30WaterEffectBox" );
SetOptionBool( "Video", "S30WaterEffectBox", bShaderWater );
//셰이더 3.0 - 그림자. //Shader 3.0 - Shadows. //Шейдер 3.0 - Тени.
bDepthBufferShadow = class'UIAPI_CHECKBOX'.static.IsEnableWindow( "OptionWnd.S30ShadowBox" ) && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30ShadowBox" );
SetOptionBool( "Video", "S30ShadowBox", bDepthBufferShadow );
if( bKeepMinFrameRate )
{
//~ debug( "KeepMinFrameRate" );
SetTextureDetail( 2 );
SetModelingDetail( 1 );
SetMotionDetail( 1 );
SetShadow( false );
SetBackgroundEffect( false );
SetTerrainClippingRange( 4 );
SetPawnClippingRange( 4 );
//~ SetRenderCharacterCount(RENDERCHARACTERLIMIT_MIN);
SetReflectionEffect( 0 );
//~ Debug("HDRSettingOff");
SetHDR( 0 );
SetWeatherEffect( 0 );
SetL2Shader(false);
SetDOF(false);
SetShaderWaterEffect(false);
SetDepthBufferShadow(false);
m_bL2Shader = false;
m_bDOF = false;
m_bShaderWater = false;
m_bDepthBufferShadow = false;
// 2007/11/16 Set UnappliedOptionChange to false because options are all applied right above - NeverDie
// 11.11.2007. Установите для UnappliedOptionChange значение false, поскольку все параметры применяются прямо над ним - NeverDie
UnappliedOptionChange = false;
}
else
{
//~ debug( "Not KeepMinFrameRate nTextureDetail=" $ nTextureDetail );
SetTextureDetail( nTextureDetail );
SetModelingDetail( nModelDetail );
SetMotionDetail( nMotionDetail );
SetShadow( bShadow );
SetBackgroundEffect( bRenderDeco );
//solasys-포그테스트 //solasys-fog test // тест solasys-тумана
if (m_bAirState)
{
SetTerrainClippingRange( 2 );
SetPawnClippingRange( 2 );
}
else
{
SetTerrainClippingRange( nTerrainClippingRange );
SetPawnClippingRange( nPawnClippingRange );
}
//SetRenderCharacterCount(nRenderCharacterLimit);
SetReflectionEffect( nReflectionEffect );
SetHDR( nHDR );
//~ debug ("HDR" @ nHDR);
SetWeatherEffect( nWeatherEffect );
// See if there is an unapplied option
// Проверяем, есть ли непримененная опция
if( m_bL2Shader != bL2Shader )
{
if( bL2Shader )
UnappliedOptionChange = true;
m_bL2Shader = bL2Shader;
}
// If L2Shader is off, all other options can be applied right away.
// Если L2Shader отключен, все остальные параметры можно применить сразу.
if( bL2Shader )
{
if( m_bDOF != bDOF )
{
UnappliedOptionChange = true;
m_bDOF = bDOF;
}
if( m_bShaderWater != bShaderWater )
{
UnappliedOptionChange = true;
m_bShaderWater = bShaderWater;
}
if( m_bDepthBufferShadow != bDepthBufferShadow )
{
UnappliedOptionChange = true;
m_bDepthBufferShadow = bDepthBufferShadow;
}
}
if( !UnappliedOptionChange )
{
SetL2Shader(bL2Shader);
SetDOF(bDOF);
SetShaderWaterEffect(bShaderWater);
SetDepthBufferShadow(bDepthBufferShadow);
}
}
//UI 기본 세팅 //UI basic settings //Основные настройки пользовательского интерфейса
//nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.DefaultPositionBox" );
//~ Debug ("кё°ліё л €мќґм•„м›ѓ лІ€нё м„¤м •:" @ nSelectedNum);
//SetOptionInt( "Game", "LayoutDF", nSelectedNum );
// In case of option change which requires loading, show warning dialog box - NeverDie
// В случае изменения опции, требующей загрузки, показать диалоговое окно с предупреждением - NeverDie
//~ debug( "UnappliedOptionChange " $ UnappliedOptionChange );
if( UnappliedOptionChange )
{
DialogSetID( OPTION_CHANGE );
DialogShow(DIALOG_Modalless, DIALOG_OKCancel, GetSystemMessage( 2191 ) );
}
//~ InitVideoOption();
//Background 실행성능 낮추기 //Reduce background execution performance //Уменьшаем производительность фонового выполнения
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.LazyModeBox");
SetOptionBool( "Game", "UseLazyMode", bChecked);
//~ debug("л €мќґм§ЂлЄЁл“њ"@ bChecked); /~ debug("Rage Mode"@ bChecked); //~ debug("Режим ярости"@ bChecked);
///////////////////////// by monokini ///////////////////////////////
// bRenderDeco = false;
// bRenderDeco = GetOptionBool( "Video", "StartupFullScreen");
// if (bRenderDeco != nextWindowMode)
// {
// SetOptionBool( "Video", "StartupFullScreen", nextWindowMode);
// if (nextWindowMode)
// class'UIDATA_PAWNVIEWER'.static.ExecuteCommand("TOGGLEFULLSCREEN");
// else
// class'UIDATA_PAWNVIEWER'.static.ExecuteCommand("ENDFULLSCREEN");
// }
SetupMode(""$nextWindowMode);
}
function ApplyAudioOption()
{
//local int nSelectedNum;
local float fSoundVolume;
local float fMusicVolume;
local float fWavVoiceVolume;
local float fOggVoiceVolume;
local int iSoundTick;
local int iMusicTick;
local int iSystemTick;
local int iTutorialTick;
if( !CanUseAudio() )
return;
// code 변경 - lancelot 2006. 6. 13. // code change - lancelot 2006. 6. 13. // изменение кода - lancelot 2006. 6. 13.
// 효과음볼륨 // sound effect volume // громкость звукового эффекта - EffectVolumeSliderCtrl
iSoundTick=class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.EffectVolumeSliderCtrl");
fSoundVolume=GetVolumeFromSliderTick(iSoundTick);
SetOptionFloat("Audio", "SoundVolume", fSoundVolume);
// 음악볼륨 // music volume // громкость музыки - MusicVolumeSliderCtrl
iMusicTick=class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.MusicVolumeSliderCtrl");
fMusicVolume=GetVolumeFromSliderTick(iMusicTick);
SetOptionFloat("Audio", "MusicVolume", fMusicVolume);
// 시스템볼륨 // system volume // системный том - SystemVolumeSliderCtrl
iSystemTick=class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.SystemVolumeSliderCtrl");
fWavVoiceVolume=GetVolumeFromSliderTick(iSystemTick);
SetOptionFloat("Audio", "WavVoiceVolume", fWavVoiceVolume);
// 음악볼륨 // music volume // громкость музыки - MusicVolumeSliderCtrl
iTutorialTick=class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.TutorialVolumeSliderCtrl");
fOggVoiceVolume=GetVolumeFromSliderTick(iTutorialTick);
SetOptionFloat("Audio", "OggVoiceVolume", fOggVoiceVolume);
// 기억시켜준다 // reminds me // напоминает мне
m_iPrevSoundTick=iSoundTick;
m_iPrevMusicTick=iMusicTIck;
m_iPrevSystemTick=iSystemTick;
m_iPrevTutorialTick=iTutorialtick;
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox" ) )
{
SetSoundVolume( 0.f );
SetMusicVolume( 0.f );
SetWavVoiceVolume( 0.f );
SetOggVoiceVolume( 0.f );
SetOptionBool("Audio", "AudioMuteOn", true);
SetAudioSliderDisable(122);
}
else
{
SetOptionBool( "Audio", "AudioMuteOn", false);
SetAudioSliderDisable(255);
}
}
function ApplyConfigureOption()
{
local int nSelectedNum;
local bool bChecked;
// м–ём–ґм„ нѓќ // Select language // Выбор языка - LanguageBox
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.LanguageBox" );
if( 0 == nSelectedNum )
{
SetOptionBool( "Game", "IsNative", true );
if (currentLanguage == "_EN") SwitchLanguage();
}
else if( 1 == nSelectedNum )
{
SetOptionBool( "Game", "IsNative", false );
if (currentLanguage == "_ADD") SwitchLanguage();
}
// 키보드보안 // keyboard security // безопасность клавиатуры - KeyboardBox
if( IsUseKeyCrypt() )
{
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.KeyboardBox" );
SetOptionBool("Game", "L2UseKeyCrypt", bChecked);
SetKeyCrypt( bChecked );
}
// 게임패드 // gamepad // геймпад - JoypadBox
if( CanUseJoystick() )
{
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.JoypadBox" );
SetOptionBool( "Game", "UseJoystick", bChecked );
}
//л§€мљ°мЉ¤ мљ°нЃґл¦ //right mouse click //щелчок правой РєРЅРѕРїРєРѕР№ мыши - RightClickBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.RightClickBox" );
SetOptionBool( "Game", "RightClickBox", bChecked );
SetFixedDefaultCamera(bChecked);
// м№ґл©”лќјм¶”м Ѓ // camera tracking // отслеживание камеры - CameraBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.CameraBox" );
SetOptionBool( "Game", "AutoTrackingPawn", bChecked );
}
function ApplyGameOption()
{
local int nSelectedNum;
local bool bChecked;
local TradeWnd script_TradeWnd;
script_TradeWnd = TradeWnd(GetScript("TradeWnd"));
// 파티루팅 // party rooting // партийное укоренение - LootingBox
if( class'UIAPI_WINDOW'.static.IsEnableWindow( "OptionWnd.LootingBox" ) )
{
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.LootingBox" );
SetOptionInt( "Game", "PartyLooting", nSelectedNum );
}
// 결투 거부 // refuse to duel // отказываемся от дуэли - DuelBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.DuelBox");
SetOptionBool( "Game", "IsRejectingDuel", bChecked );
/// added by monokini
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.TradeRejectBox" );
SetINIBool("Game","TradeReject", bChecked, SETTINGSINI);
script_TradeWnd.tradeReject = bChecked;
//커플 м‹ мІ к±°л¶Ђ //Couple application rejected //Заявка РЅР° пару отклонена - CoupleActionBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.CoupleActionBox" );
SetOptionBool( "Game", "IsCoupleAction", bChecked );
// нЊЊн‹° м‹ мІ к±°л¶Ђ // reject party request // отклоняем запрос стороны - PartyRejectBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.PartyRejectBox" );
SetOptionBool( "Game", "IsRejectingParty", bChecked );
SetIgnorePartyInviting(bChecked );
/// added by monokini
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.TradeAcceptClanBox" );
SetINIBool("Game","TradeAcceptClan", bChecked, SETTINGSINI);
script_TradeWnd.tradeAcceptClan = bChecked;
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.TradeAcceptFriendBox" );
SetINIBool("Game","TradeAcceptFriend", bChecked, SETTINGSINI);
script_TradeWnd.tradeAcceptFriend = bChecked;
}
function ApplyInterfaceOption()
{
local int nSelectedNum;
local bool bChecked;
local RadarMapWnd script_radar;
local TutorialViewerWnd script_TutorialViewerWnd;
script_radar = RadarMapWnd( GetScript( "RadarMapWnd" ) );
script_TutorialViewerWnd = TutorialViewerWnd(GetScript("TutorialViewerWnd"));
// м§Ђм—лЄ…н‘њм‹њ // Display area name // РРјСЏ области отображения - ZoneNameBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.ZoneNameBox" );
SetOptionBool( "Game", "ShowZoneTitle", bChecked );
// 드랍 아이템 // drop item // удаляем элемент - DropItemBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.DropItemBox" );
script_radar.HideDropItem = bChecked;
SetOptionBool( "Game", "HideDropItem", bChecked );
// 투명화 // Invisibility // Невидимость - OpacityBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.OpacityBox" );
SetOptionBool( "Game", "TransparencyMode", bChecked );
// к·ёлћн”Ѕм»¤м„њ // graphic cursor // графический РєСѓСЂСЃРѕСЂ - CursorBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.CursorBox" );
SetOptionBool( "Video", "UseColorCursor", bChecked );
// 3D화살표 // 3D arrow // 3D стрелка - ArrowBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.ArrowBox" );
SetOptionBool( "Game", "ArrowMode", bChecked );
// 스크린샷 품질 // Screenshot quality // Качество скриншота - CaptureBox
nSelectedNum = class'UIAPI_COMBOBOX'.static.GetSelectedNum( "OptionWnd.CaptureBox" );
SetOptionInt( "Game", "ScreenShotQuality", nSelectedNum );
// м‹њмЉ¤н…њ нЉњн† л¦¬м–ј // System Tutorial // Учебное РїРѕСЃРѕР±РёРµ РїРѕ системе
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.SystemTutorialBox" );
SetOptionBool( "Game", "SystemTutorialBox", bChecked );
// 게임팁표시 // Display game tips // Отображение подсказок по игре - GametipBox
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.GametipBox" );
SetOptionBool( "Game", "ShowGameTipMsg", bChecked );
// мњ л‹€лІ„м„¤ 툴팁 // universal tooltip // универсальная подсказка
//bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.UniversalToolTipBox" );
//SetOptionBool( "Game", "UniversalToolTipBox", bChecked );
/// added by monokini
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.HideTutorialBox" );
SetINIBool("Game","HideTutorial", bChecked, SETTINGSINI);
script_TutorialViewerWnd.disableTutorial = bChecked;
// мћђм‹ мќґл¦„ //your name //Ваше РёРјСЏ - NameBox0
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox0" );
SetOptionBool( "Game", "MyName", bChecked );
// 몬스터이름 // monster name // имя монстра - NameBox1
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox1" );
SetOptionBool( "Game", "NPCName", bChecked );
// н€л§№мќґл¦„ // Clan name // Название клана - NameBox3
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox3" );
SetOptionBool( "Game", "PledgeMemberName", bChecked );
// 파티이름 // party name // название партии - NameBox4
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox4" );
SetOptionBool( "Game", "PartyMemberName", bChecked );
// мќјл°мќґл¦„ // common name // общее РёРјСЏ - NameBox5
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox5" );
SetOptionBool( "Game", "OtherPCName", bChecked );
// 다른PC이름 //Other PC name //Другое имя ПК - NameBox2
// 다른 이름 кґЂл Ё мµм…мќґ лЄЁл‘ђ м Ѓмљ©лђкі л‚м„њ лЌ®м–ґмЌЁм•ј н•лЇЂлЎњ, м њмќј л‚중에 해야한다. - NeverDie
// It must be overwritten after all other name-related options have been applied, so it should be done last. -NeverDie
// Его необходимо перезаписать после применения всех других параметров, связанных с именем, поэтому это следует делать в последнюю очередь. -Никогда не умирай
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.NameBox2" );
SetOptionBool( "Game", "GroupName", bChecked );
}
function ApplyDamageTextOption()
{
local bool bChecked;
local MonIca_OnScreenDamageText script_MonIca_OnScreenDamageText;
local MonIca_OnWorldDamageText script_MonIca_OnWorldDamageText;
script_MonIca_OnScreenDamageText = MonIca_OnScreenDamageText(GetScript("MonIca_OnScreenDamageText"));
script_MonIca_OnWorldDamageText = MonIca_OnWorldDamageText(GetScript("MonIca_OnWorldDamageText"));
/// added by monokini: 2D Damage Text (by textboxes)
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.ScreenDamageBox" );
SetINIBool("OnScreenText","ScreenDamage", bChecked, SETTINGSINI);
script_MonIca_OnScreenDamageText.b_ScreenDamage = bChecked;
script_MonIca_OnScreenDamageText.InitEvent();
/// added by monokini: 3D Damage Text (by emitters)
bChecked = class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.WorldDamageBox" );
SetINIBool("OnScreenText","WorldDamage", bChecked, SETTINGSINI);
script_MonIca_OnWorldDamageText.b_WorldDamage = bChecked;
script_MonIca_OnWorldDamageText.InitEvent();
}
function ApplyChannelChatOption()
{
local ChannelChatTab script_ChannelChatTab;
script_ChannelChatTab = ChannelChatTab(GetScript("OptionWnd.ChannelChatTab"));
script_ChannelChatTab.ApplyChannelChatOption();
}
function ApplyCommonChatOption()
{
local CommonChatTab script_CommonChatTab;
script_CommonChatTab = CommonChatTab(GetScript("OptionWnd.CommonChatTab"));
script_CommonChatTab.ApplyCommonChatOption();
}
function ApplyShortcutOption()
{
local ShortcutAssignWnd script_ShortcutAssignWnd;
if (!class'UIAPI_WINDOW'.static.IsShowWindow("OptionWnd.ShortcutTab.DisableBox"))
{
script_ShortcutAssignWnd = ShortcutAssignWnd(GetScript("OptionWnd.ShortcutTab"));
script_ShortcutAssignWnd.Switch2KeyBrowsingMode();
class'ShortcutAPI'.static.Save();
}
}
function ApplyExInterfaceOption()
{
local MonIca_InterfaceTab script_MonIca_InterfaceTab;
script_MonIca_InterfaceTab = MonIca_InterfaceTab(GetScript("OptionWnd.MonIca_InterfaceTab"));
script_MonIca_InterfaceTab.ApplyExInterfaceTabOption();
}
function OnClickButton( string strID )
{
switch( strID )
{
case "bTNDefault":
RestoreDefaultSettings();
break;
case "btnHide":
case "bTNCancel":
SetOptionInt( "FirstRun", "FirstRun", 2 );
// moved to OnHide()
// лђлЏЊл ¤м¤Ђл‹¤ - lancelot 2006. 6. 13. м€м • л¬ём„ м¤Ђ. 2011.3.8.
// Give it back - lancelot 2006. 6. 13. Edited by Moon Seon-jun. 2011.3.8.
// Верни - Ланселот 2006. 6. 13. Под редакцией Мун Сон Чжун. 2011.3.8.
/*
if( GetOptionBool( "Audio", "AudioMuteOn" ) == false )
{
OnModifyCurrentTickSliderCtrl("EffectVolumeSliderCtrl", m_iPrevSoundTick);
OnModifyCurrentTickSliderCtrl("MusicVolumeSliderCtrl", m_iPrevMusicTick);
OnModifyCurrentTickSliderCtrl("SystemVolumeSliderCtrl", m_iPrevSystemTick);
OnModifyCurrentTickSliderCtrl("TutorialVolumeSliderCtrl", m_iPrevTutorialTick);
}
*/
class'UIAPI_Window'.static.HideWindow( "OptionWnd" );
//AddSystemMessage(2493); // м‹њмЉ¤н…њ л©”м„ём§Ђ м¶”к°Ђ
break;
case "bTNOk":
ApplyVideoOption();
ApplyAudioOption();
ApplyConfigureOption();
ApplyGameOption();
ApplyInterfaceOption();
ApplyDamageTextOption();
ApplyChannelChatOption();
ApplyCommonChatOption();
ApplyShortcutOption();
ApplyExInterfaceOption();
SetOptionInt( "FirstRun", "FirstRun", 2 );
class'UIAPI_Window'.static.HideWindow( "OptionWnd" );
RefreshINI(SETTINGSINI);
break;
case "bTNApply":
ApplyVideoOption();
ApplyAudioOption();
ApplyConfigureOption();
ApplyGameOption();
ApplyInterfaceOption();
ApplyDamageTextOption();
ApplyChannelChatOption();
ApplyCommonChatOption();
ApplyShortcutOption();
ApplyExInterfaceOption();
SetOptionFloat( "Video", "Gamma", keepGamma );
RefreshINI(SETTINGSINI);
break;
case "bTNInitWindow":
SetDefaultPosition();
break;
case "btnInteractionOn":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOn");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOff");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DuelBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDuelBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeRejectBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeRejectBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CoupleActionBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCoupleActionBox", "MonIca_UI.NewStyle.Checkbox_true");
break;
case "btnInteractionOff":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnInteractionOff");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnInteractionOn");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DuelBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDuelBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeRejectBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeRejectBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CoupleActionBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCoupleActionBox", "MonIca_UI.NewStyle.Checkbox_false");
break;
case "btnAutoTradeOn":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnAutoTradeOn");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnAutoTradeOff");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptClanBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptClanBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptFriendBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptFriendBox", "MonIca_UI.NewStyle.Checkbox_true");
break;
case "btnAutoTradeOff":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnAutoTradeOff");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnAutoTradeOn");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptClanBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptClanBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TradeAcceptFriendBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTradeAcceptFriendBox", "MonIca_UI.NewStyle.Checkbox_false");
break;
case "btnDisableAllHelpOn":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOn");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOff");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.SystemTutorialBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texSystemTutorialBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GametipBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGametipBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.HideTutorialBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texHideTutorialBox", "MonIca_UI.NewStyle.Checkbox_true");
break;
case "btnDisableAllHelpOff":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnDisableAllHelpOff");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnDisableAllHelpOn");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.SystemTutorialBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texSystemTutorialBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GametipBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGametipBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.HideTutorialBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texHideTutorialBox", "MonIca_UI.NewStyle.Checkbox_false");
break;
case "btnShowAllNamesOn":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOn");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOff");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox0", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox0", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox1", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox1", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox2", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox2", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox3", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox3", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox4", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox4", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox5", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox5", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 255);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 255);
break;
case "btnShowAllNamesOff":
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd.btnShowAllNamesOff");
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd.btnShowAllNamesOn");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox0", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox0", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox1", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox1", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox2", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox2", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox3", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox3", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox4", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox4", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.NameBox5", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texNameBox5", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox3" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox3", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox4" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox4", 122);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.NameBox5" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texNameBox5", 122);
break;
case "btn0":
SetSelectedTab(0);
class'UIAPI_WINDOW'.static.SetFocus( "OptionWnd.VideoTabScrollArea"); // focus on scrollbar VideoSettings
if (class'UIAPI_WINDOW'.static.IsShowWindow( "OptionWnd.btnExpandVideoSettingsOff"))
VideoTabScroll.SetScrollHeight(502);
break;
case "btn" $ Right(strID, 1):
SetSelectedTab(int(Right(strID, 1)));
break;
case "BTnExpandVideoSettingsOff":
VideoTabScroll.SetScrollPosition(0);
VideoTabScroll.SetScrollHeight(780);
class'UIAPI_WINDOW'.static.HideWindow( "OptionWnd.btnExpandVideoSettingsOff");
class'UIAPI_WINDOW'.static.ShowWindow( "OptionWnd.btnExpandVideoSettingsOn");
class'UIAPI_WINDOW'.static.SetWindowSize( "OptionWnd.VideoTabScrollArea.videoBg2", 647, 412);
class'UIAPI_WINDOW'.static.ShowWindow( "OptionWnd.VideoTabScrollArea.wndExpandVideoSettings");
break;
case "BTnExpandVideoSettingsOn":
class'UIAPI_WINDOW'.static.HideWindow( "OptionWnd.btnExpandVideoSettingsOn");
class'UIAPI_WINDOW'.static.ShowWindow( "OptionWnd.btnExpandVideoSettingsOff");
class'UIAPI_WINDOW'.static.SetWindowSize( "OptionWnd.VideoTabScrollArea.videoBg2", 647, 107);
class'UIAPI_WINDOW'.static.HideWindow( "OptionWnd.VideoTabScrollArea.wndExpandVideoSettings");
VideoTabScroll.SetScrollHeight(502);
break;
case "btnWindowMode":
SetupButtonsTexture("WindowMode=0");
break;
case "btnFullscreenMode":
SetupButtonsTexture("WindowMode=1");
break;
case "btnFramelessMode":
SetupButtonsTexture("WindowMode=2");
break;
/* case "btnFullscreenMode":
if (!nextWindowMode)
{
nextWindowMode = true;
SetupButtonsWindowModeTexture(nextWindowMode);
}
break;
case "btnWindowMode":
if (nextWindowMode)
{
nextWindowMode = false;
SetupButtonsWindowModeTexture(nextWindowMode);
}
break; */
case "btnStyleHF":
// class'UIDATA_PAWNVIEWER'.static.ExecuteCommand("show windowbox");
// class'UIDATA_PAWNVIEWER'.static.ExecuteCommand("show windowname");
if (windowStyle != "HF")
{
RequestChangeUIStyle("HF", subWindowStyle);
}
else
{
if (subWindowStyle == 1)
{
RequestChangeUIStyle("HF", 0);
SetINIInt("StyleUI", "SubWindowStyle", 0, SETTINGSINI);
}
else
{
RequestChangeUIStyle("HF", 1);
SetINIInt("StyleUI", "SubWindowStyle", 1, SETTINGSINI);
}
}
SetINIString("StyleUI", "WindowStyle", "HF", SETTINGSINI);
RefreshINI(SETTINGSINI);
break;
case "btnStyleES":
if (windowStyle != "ES")
RequestChangeUIStyle("ES", subWindowStyle);
SetINIString("StyleUI", "WindowStyle", "ES", SETTINGSINI);
SetINIInt("StyleUI", "SubWindowStyle", subWindowStyle, SETTINGSINI);
RefreshINI(SETTINGSINI);
break;
case "btnStyleAS":
if (windowStyle != "AS")
RequestChangeUIStyle("AS", subWindowStyle);
SetINIString("StyleUI", "WindowStyle", "AS", SETTINGSINI);
SetINIInt("StyleUI", "SubWindowStyle", subWindowStyle, SETTINGSINI);
RefreshINI(SETTINGSINI);
break;
case "btnStyleMN":
if (windowStyle != "MN")
RequestChangeUIStyle("MN", subWindowStyle);
SetINIString("StyleUI", "WindowStyle", "MN", SETTINGSINI);
SetINIInt("StyleUI", "SubWindowStyle", subWindowStyle, SETTINGSINI);
RefreshINI(SETTINGSINI);
break;
}
}
/* /////////////////////////// by monokini ///////////////////////////////
function SetupButtonsWindowModeTexture(bool isFullscreenMode)
{
// local string tempString;
// ShowOnScreenMessage(1,2261,2,0,colorGold,2000, "SetupButtonsWindowModeTexture" @ nextWindowMode);
if (isFullscreenMode)
{
// GetINIString("OptionWnd", "btnFullscreenMode"$currentLanguage, tempString, "MonIca_LanguageUI");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtWindowMode" , windowModeName[1]);
btn_FullscreenMode.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select");
btn_WindowMode.SetTexture("l2ui_ct1.emptyBtn", "l2ui_ct1.emptyBtn", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Unselect_Over");
}
else
{
// GetINIString("OptionWnd", "btnWindowMode"$currentLanguage, tempString, "MonIca_LanguageUI");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtWindowMode" , windowModeName[0]);
btn_FullscreenMode.SetTexture("l2ui_ct1.emptyBtn", "l2ui_ct1.emptyBtn", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Unselect_Over");
btn_WindowMode.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select");
}
} */
function SetupButtonsTexture(string a_Param)
{
local string wMode;
// local int Toggle,x,y;
local string button;
local int i;
local array<string> buttons;
local string selectedButton;
ParseString(a_Param, "WindowMode", wMode);
// ParseInt(a_Param, "isEvent", Toggle);
// ShowMessageInLogin(wMode);
// Заповнюємо масив назвами кнопок
buttons[0] = "btnWindowMode";
buttons[1] = "btnFullscreenMode";
buttons[2] = "btnFramelessMode";
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtWindowMode" , windowModeName[int(wMode)]);
// if( bool(Toggle) )
// {
// ParseInt(a_Param, "newWidth", x);
// ParseInt(a_Param, "newHeight", y);
// SetOptionInt( "Video", "GamePlayViewportX", x);
// SetOptionInt( "Video", "GamePlayViewportY", y);
// }
nextWindowMode = wMode;
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ResBox", -1 );
// MessageBox( "nextWindowMode "@nextWindowMode );
// Визначаємо, яка кнопка має бути виділена
switch (wMode)
{
case "0": selectedButton = "btnWindowMode"; break;
case "1": selectedButton = "btnFullscreenMode"; break;
case "2": selectedButton = "btnFramelessMode"; break;
}
// Перебираємо кнопки та встановлюємо текстури
for (i = 0; i < buttons.Length; i++)
{
button = buttons[i];
if (button != selectedButton)
{
GetButtonHandle("OptionWnd." $ button).SetTexture(
"l2ui_ct1.emptyBtn",
"l2ui_ct1.emptyBtn",
"MonIca_UI.NewStyle.OptionWnd_WindowButton_Unselect_Over"
);
}
else
{
GetButtonHandle("OptionWnd." $ button).SetTexture(
"MonIca_UI.NewStyle.OptionWnd_WindowButton_Select",
"MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down",
"MonIca_UI.NewStyle.OptionWnd_WindowButton_Select"
);
}
}
}
function SetupMode(string a_Param)
{
local RoloScriptEx RoloScript;
RoloScript = new class'RoloScript.RoloScriptEx';
RoloScript.Actor("WindowMode",a_Param);
}
function ChangeStyleButtonTexture()
{
btn_StyleHF.SetTexture("MonIca_UI.OptionWnd.StyleButton_Unselect", "MonIca_UI.OptionWnd.StyleButton_Unselect_Down", "MonIca_UI.OptionWnd.StyleButton_Unselect_Over");
btn_StyleMN.SetTexture("MonIca_UI.OptionWnd.StyleButton_Unselect", "MonIca_UI.OptionWnd.StyleButton_Unselect_Down", "MonIca_UI.OptionWnd.StyleButton_Unselect_Over");
btn_StyleES.SetTexture("MonIca_UI.OptionWnd.StyleButton_Unselect", "MonIca_UI.OptionWnd.StyleButton_Unselect_Down", "MonIca_UI.OptionWnd.StyleButton_Unselect_Over");
btn_StyleAS.SetTexture("MonIca_UI.OptionWnd.StyleButton_Unselect", "MonIca_UI.OptionWnd.StyleButton_Unselect_Down", "MonIca_UI.OptionWnd.StyleButton_Unselect_Over");
switch (windowStyle)
{
case "HF":
if (subWindowStyle == 0)
btn_StyleHF.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Select_Over");
else
btn_StyleHF.SetTexture("MonIca_UI.OptionWnd.StyleButton_Alt_Select", "MonIca_UI.OptionWnd.StyleButton_Alt_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Alt_Select_Over");
break;
case "MN":
btn_StyleMN.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Select_Over");
break;
case "ES":
btn_StyleES.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Select_Over");
break;
case "AS":
btn_StyleAS.SetTexture("MonIca_UI.NewStyle.OptionWnd_WindowButton_Select", "MonIca_UI.NewStyle.OptionWnd_WindowButton_Select_Down", "MonIca_UI.OptionWnd.StyleButton_Select_Over");
break;
}
}
function RequestChangeUIStyle(string newWindowMode, int newSubWindowMode)
{
//local int i;
local string strParam;
ParamAdd(strParam, "EventID", "10");
ParamAdd(strParam, "Style", newWindowMode);
ParamAdd(strParam, "SubStyle", string(newSubWindowMode));
ExecuteEvent(EV_AITimer, strParam);
}
function SwitchLanguage()
{
local MonIca_LanguageUI script;
script = MonIca_LanguageUI(GetScript("MonIca_LanguageUI"));
if (script != None)
{
currentLanguage = GetCurrentLanguage();
script.ChangeLanguageUI(currentLanguage);
}
}
function SetSelectedTab(int tabIndex, optional bool isInit)
{
local ButtonHandle btnSelected;
local TextBoxHandle txtBtnSelected;
if (tabIndex == tab_TabCtrl.GetTopIndex())
if (!isInit)
return;
tab_TabCtrl.SetTopOrder(tabIndex, false);
if (!isInit) // restore size and texture for previous selected tab
{
btnSelected = GetButtonHandle("OptionWnd.btn"$selectedTab);
txtBtnSelected = GetTextBoxHandle("OptionWnd.txtBtn"$selectedTab);
if (selectedTab != 9)
txtBtnSelected.SetTextColor(colorDefaultWhite);
else
txtBtnSelected.SetTextColor(colorBlue);
btnSelected.SetWindowSize(124, 45);
btnSelected.SetTexture("MonIca_UI.NewStyle.OptionWnd_SideTab_N","MonIca_UI.NewStyle.OptionWnd_SideTab_N","MonIca_UI.NewStyle.OptionWnd_SideTab_O");
}
HideWindow("MonIca_AnimationTab");
if (tabIndex == 9 && openAnimation)
{
ShowWindow("MonIca_AnimationTab");
HideWindow("MonIca_InterfaceTab");
HideWindow("OptionWnd.bTNDefault");
}
else
{
ShowWindow("OptionWnd.bTNDefault");
}
selectedTab = tab_TabCtrl.GetTopIndex(); // resize and retexture selected tab
txtBtnSelected = GetTextBoxHandle("OptionWnd.txtBtn"$selectedTab);
btnSelected = GetButtonHandle("OptionWnd.Btn"$selectedTab);
txtBtnSelected.SetTextColor(colorGold);
btnSelected.SetWindowSize(133, 45);
// btnSelected.SetFocus();
btnSelected.SetTexture("MonIca_UI.NewStyle.OptionWnd_SideButton_Selected_N","MonIca_UI.NewStyle.OptionWnd_SideButton_Selected_N","MonIca_UI.NewStyle.OptionWnd_SideButton_Selected_O");
// class'UIAPI_WINDOW'.static.SetFocus( "OptionWnd.txtBtnVideo" );
}
// Slider controlмќ tick мњјлЎњл¶Ђн„° volumeмќ floatк°’мќ„ 구н•лЉ” н•Ём€
// Function to get the float value of volume from the tick of the slider control
// Функция для получения плавающего значения объема по такту ползунка
function float GetVolumeFromSliderTick(int iTick)
{
local float fReturnVolume;
switch(iTick)
{
case 0 :
fReturnVolume=0.0f;
break;
case 1 :
fReturnVolume=0.2f;//Merc, default: 0.2, mine: 0.01
break;
case 2 :
fReturnVolume=0.4f;//Merc, default: 0.4, mine: 0.02
break;
case 3 :
fReturnVolume=0.6f;//Merc, default: 0.6, mine: 0.03
break;
case 4 :
fReturnVolume=0.8f;//Merc, default: 0.8, mine: 0.04
break;
case 5 :
fReturnVolume=1.0f;//Merc, default: 1.0, mine: 0.05
break;
}
return fReturnVolume;
}
//solasys-포그테스트 //solasys-fog test // тест solasys-тумана
function AirStateOn()
{
m_bAirState=true;
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.TerrainBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.CharRenderRadiusSliderCtrl" );
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.CharBox" );
}
function AirStateOff()
{
m_bAirState=false;
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.TerrainBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.CharRenderRadiusSliderCtrl" );
// class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.CharBox" );
if( nPixelShaderVersion < 12 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
}
else
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
if( nPixelShaderVersion >= 20 && nVertexShaderVersion >= 20 )
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.HDRBox" );
}
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.HDRBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", 0 );
}
/////////////////////////////////////////////
// Added on 2007/05/25 by Oxyzen
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 255);
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30Box" ) )
{
//~ debug("s30지원가 - 활성"); //~ debug("s30 support - active"); //~ debug("Поддержка s30 - активна");
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false );
//~ class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ShadowBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ShadowBox", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ReflectBox", false );
//~ class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30Box" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 255);
}
else
{
//~ debug("s30지원가 - 비활성"); //~ debug("s30 support - inactive"); //~ debug("Поддержка s30 - неактивна");
//class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.GPUAnimationCheckBox" );
//~ class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ShadowBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
}
}
else
{
//~ debug("s30지원불가"); //~ debug("s30 not supported"); //~ debug("s30 не поддерживается");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
}
}
//solasys-end
function MinFrameRateOn(optional bool realClickCheckBox)
{
if (!realClickCheckBox)
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texFrameBox", "MonIca_UI.NewStyle.CheckBox_true");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.TextureBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ModelBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.AnimBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texShadowBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.DecoBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texDecoBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.TerrainBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.CharRenderRadiusSliderCtrl" );
// class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.CharBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.HDRBox" );
/////////////////////////////////////////////
// Added on 2007/05/25 by Oxyzen
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
// 2007/11/16 Options should only be disabled not unchecked - NeverDie
// 11.11.2007 Опции должны быть только отключены, но не сняты - NeverDie
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
//class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
///////////////////////////////////////////
// Added on 2006/03/21 by NeverDie
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.WeatherEffectComboBox" );
CheckGraphicPreset();
}
function MinFrameRateOff(optional bool realClickCheckBox)
{
if (!realClickCheckBox)
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texFrameBox", "MonIca_UI.NewStyle.CheckBox_false");
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.TextureBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ModelBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AnimBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texShadowBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.DecoBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texDecoBox", 255);
//solasys-포그테스트 //solasys-fog test // тест solasys-тумана
if(!m_bAirState)
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.TerrainBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.CharRenderRadiusSliderCtrl" );
// class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.CharBox" );
}
///////////////////////////////////////////
// Added on 2006/03/21 by NeverDie
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.WeatherEffectComboBox" );
if( nPixelShaderVersion < 12 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
}
else
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
if( nPixelShaderVersion >= 20 && nVertexShaderVersion >= 20 )
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.HDRBox" );
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.HDRBox" );
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", 0 );
}
/////////////////////////////////////////////
// Added on 2007/05/25 by Oxyzen
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 255);
if( class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.S30Box" ) )
{
//~ debug("s30지원가 - 활성"); //~ debug("s30 support - active"); //~ debug("Поддержка s30 - активна");
//class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false );
//~ class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ShadowBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ShadowBox", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ReflectBox", false );
//~ class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30Box" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 255);
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 255);
}
else
{
//~ debug("s30지원가 - 비활성"); //~ debug("s30 support - inactive"); //~ debug("Поддержка s30 - неактивна");
//class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.GPUAnimationCheckBox" );
//~ class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ShadowBox" );
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
//~ class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
}
}
else
{
//~ debug("s30지원불가"); //~ debug("s30 not supported"); //~ debug("s30 не поддерживается");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
}
CheckGraphicPreset();
}
///////////////м§Ђкё€л¶Ђн„° нЊЊн‹°лЈЁнЊ…ліЂкІЅ кґЂл Ё мЅ”л“њк°Ђ 들어갑니다////////////////////////////////////////////////////////////////
///////////////From now on, the code related to changing party routing will be entered //////////////////////////////
//////////////С этого момента будет вводиться код, связанный с изменением маршрутизации стороны /////////////////////
//
// нЊЊн‹°лЈЁнЊ…мќ„ мµм…м°Ѕм—ђм„њ ліЂкІЅн•лЉ” кґЂкі„лЎњ 여기에다 л„Јм—€мќЊ
// I put it here because I changed the party routing in the options window.
// Я поместил его сюда, потому что изменил маршрутизацию группы в окне настроек.
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function OnPartyMatchRoomClose()
{
local ComboBoxHandle c_handle;
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
if (!bPartyMember && !bPartyMaster)
c_handle.SetSelectedNum(GetOptionInt( "Game", "PartyLooting"));
}
function OnPartyHasDismissed()
{
local ComboBoxHandle c_handle;
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
c_handle.SetSelectedNum(GetOptionInt( "Game", "PartyLooting"));
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
//нЊЊн‹°к°Ђ н•ґм њ,탈퇴,м¶”л°©лђл©ґ мћђм‹ мќґ м„¤м •н•њ лЈЁнЊ…л°©м‹ќмњјлЎњ 돌아간다.
//파티장도 л§€м°¬к°Ђм§Ђ(лЈЁнЊ…ліЂкІЅм‹њ 파티장은 м ЂмћҐлђњл‹¤)
//If the party is canceled, withdrawn, or expelled, it returns to the routing method you set.
// Same goes for the party leader (when changing routing, the party leader is saved)
//Если группа отменена, отозвана или исключена, она возвращается к установленному вами методу маршрутизации.
// То же самое касается лидера партии (при изменении маршрута лидер партии сохраняется)
}
function OnBecamePartyMember(string a_Param) //파티원이 됨 //Become a party member //Стать членом партии
{
local int Lootingtype;
local ComboBoxHandle c_handle;
ParseInt(a_Param, "Lootingtype", Lootingtype);
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
//лЈЁнЊ…нѓЂмћ…мќ„ 파티장따라간다. м ЂмћҐмќЂ н•м§Ђ 않는다
//Follow the party leader’s routing type. Do not save
//Следуйте типу маршрутизации лидера партии. Не сохранять
c_handle.SetSelectedNum(Lootingtype);
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
}
function OnBecamePartyMaster(string a_Param) //파티장이됨 //Become the party leader //Станьте лидером партии
{
local int Lootingtype;
local ComboBoxHandle c_handle;
ParseInt(a_Param, "Lootingtype", Lootingtype);
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
c_handle.SetSelectedNum(Lootingtype);
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
}
function OnHandOverPartyMaster() //파티장을 양도함 //Transfer the party leader //Переносим лидера партии
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
}
function OnRecvPartyMaster() //파티장을 양도받음 //Take over the party leader //Захватываем лидера партии
{
local ComboBoxHandle c_handle;
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
//방장이 лђл©ґ н„мћ¬л°©м‹ќмќ„ м ЂмћҐн•њл‹¤. мљґлЄ…м ЃмњјлЎњ
//If you become the host, save the current method. fatefully
//Если вы станете хостом, сохраните текущий метод. роковым образом
SetOptionInt( "Game", "PartyLooting", c_handle.GetSelectedNum());
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
}
function OnRestart()
{
local ComboBoxHandle c_handle;
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
c_handle.SetSelectedNum(GetOptionInt( "Game", "PartyLooting"));
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" );
}
function string getLootingString(int type)
{
local string retstr;
switch(type)
{
case 0: // 0(gatherer first) собиратель первый
retstr = GetSystemString(487);
break;
case 1:// 1(party random distribution) случайное распределение партии
retstr = GetSystemString(488);
break;
case 2:// 2(party random distribution including spoil) случайное распределение партии, включая добычу
retstr = GetSystemString(798);
break;
case 3:// 3(party member's ordering) приказ члена партии
retstr = GetSystemString(799);
break;
case 4:// 4(party member's ordering including spoil) заказ члена партии, включая спойлер
retstr = GetSystemString(800);
break;
}
return retstr;
}
function bool IsRoomMaster()
{
local PartyWnd Script;
Script = PartyWnd(GetScript("PartyWnd"));
return Script.m_AmIRoomMaster;
}
function OnPartyLootingHasModified(String a_Param) //нЊЊн‹°лЈЁнЊ…мќґ ліЂкІЅлђм—€мќ„л•Њ //When party routing changes //РљРѕРіРґР° меняется маршрутизация РіСЂСѓРїРїС‹
{
local int IsSuccess;
local int LootingScheme;
local string Schemestr;
local string strParam;
local PartyWnd script;
//////////for ScreenMsg///////////
local SystemMsgData SystemMsgCurrent;
///////////////////////////////////////
//лЈЁнЊ… мЅ¤ліґл°•мЉ¤ ліЂкІЅмќ„ мњ„н•ґ
//To change the routing combo box
//Чтобы изменить поле со списком маршрутизации
local ComboBoxHandle c_handle;
/////////////////////////
local TextBoxHandle t_handle;
script = PartyWnd(GetScript("PartyWnd"));
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
ParseInt(a_Param, "IsSuccess", IsSuccess);
ParseInt(a_Param, "LootingScheme", LootingScheme);
//мќґкіім—ђ мЉ¤нЃ¬л¦°л©”м‹њм§Ђ мЅ”л“њ м¶”к°Ђ. мµм…м°Ѕ нЊЊн‹°лЈЁнЊ…л°©м‹ќ мЅ¤ліґл°•мЉ¤лЏ„ 다루어야함
//Add screen message code here. The party routing method combo box in the options window must also be dealt with.
//Добавляем сюда код сообщения на экране. Также необходимо учитывать поле со списком метода маршрутизации вечеринки в окне параметров.
//м„±кіµмќґкё°л§Њ н•л©ґ partyMatchRoom мќ лЈЁнЊ…л°©м‹ќмќЂ 무조건 바꿔야한다. //нЊЊн‹°м°Ѕмќ л°©мћҐн€ґнЊЃлЏ„ліЂкІЅ
//As long as it is successful, the routing method of partyMatchRoom must be changed. //Change the host tooltip in the party window
//Если РІСЃРµ прошло успешно, метод маршрутизации partyMatchRoom необходимо изменить. //Рзменяем всплывающую подсказку хоста РІ РѕРєРЅРµ РіСЂСѓРїРїС‹
if(IsSuccess != 0)
{
script.SetMasterTooltip(LootingScheme);
Schemestr = getLootingString(LootingScheme);
t_handle = GetTextBoxHandle("PartyMatchRoomWnd.LootingMethod");
t_handle.SetText(Schemestr);
}
//мћђм‹ мќґ 파티장 н№мќЂ 파티방장이라면
//If you are the party leader or party leader
//Если вы лидер партии или лидер партии
if(bPartyMaster || IsRoomMaster())
{
AddSystemMessage(3136);
if(IsSuccess != 0) //변경 성공 //change successful //изменение успешно
{
//방장만 мќґ л°©лІ•мњјлЎњ лЈЁнЊ…м„¤м •мќ„ м ЂмћҐн•њл‹¤.(мћђкё°к°Ђ к¶Њмњ н•њ к±°л‹€к№Њ)
//Only the host saves the rooting settings in this way. (Because he recommended it)
//Только хост сохраняет настройки рутирования таким образом (потому что он рекомендовал это).
SetOptionInt( "Game", "PartyLooting", LootingScheme );
//do not change. Preserve combobox's current Item.
//не менять. Сохранить текущий элемент списка.
}
//변경실패 мЅ¤ліґл°•мЉ¤ м›ђлћлЎњ ліµк·Ђ
//Change failed, return combo box to its original state
//Рзменить РЅРµ удалось, вернуть поле СЃРѕ СЃРїРёСЃРєРѕРј РІ РёСЃС…РѕРґРЅРѕРµ состояние
else
{
c_handle.SetSelectedNum(GetOptionInt( "Game", "PartyLooting"));
}
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.LootingBox" ); //루팅박스 활성화 //Activate loot box //Активируем лутбокс
}
if(IsSuccess == 0) //fail
{
//debug("실패했음"); //debug("Failed"); //отладка("Ошибка");
}
//success нЊЊн‹°м›ђмќј кІЅмљ°, мЅ¤ліґл°•мЉ¤л§Њ л°”кї”мЈјкі м ЂмћҐмќЂ н•지않는다
//success If you are a party member, only change the combo box and do not save
//успех Если вы член группы, измените только поле со списком и не сохраняйте.
else if(IsSuccess == 1)
{
Schemestr = 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(EV_ShowScreenMessage, strParam);
PlaySound(SystemMsgCurrent.Sound);
c_handle.SetSelectedNum(LootingScheme); //м ЂмћҐмќЂ н•м§Ђ 않는다. //Do not save. //РќРµ сохранять.
}
//success 그냥 л°©м•€м—ђ мћ€лЉ” 사람일 кІЅмљ°. мЅ¤ліґл°•мЉ¤л§Њ л°”кї”мЈјкі м ЂмћҐмќЂ н•지않는다
//success If it's just someone in the room. Only changes the combo box and does not save it.
//успех Если в комнате просто кто-то есть. Только меняет поле со списком и не сохраняет его.
else if(IsSuccess == 2)
{
Schemestr = 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(EV_ShowScreenMessage, strParam);
PlaySound(SystemMsgCurrent.Sound);
c_handle.SetSelectedNum(LootingScheme); //м ЂмћҐмќЂ н•м§Ђ 않는다. //Do not save. //РќРµ сохранять.
}
}
function OnAskPartyLootingModify(String a_Param)
{
//Using for Party Looting Scheme Modification//
//Рспользование для модификации схемы партийного мародерства//
local string LeaderName;
local int LootingScheme;
/////////////////////////////////////////////////
local string Schemestr;
// 다이얼 лЎњк·ё л°•мЉ¤м—ђм„њ м€, м•„л‹€м¤ к°Ђ л‚м¤лЏ„лЎќ 한다.
// Make yes and no appear in the dialog box.
// Сделать да и нет в диалоговом окне.
dScript.SetButtonName( 184, 185 );
DialogSetID( PARTY_MODIFY_REQUEST );
DialogSetParamInt64( IntToInt64(10*1000) ); // 5 seconds
// 엔터를 м№к±°л‚ нѓЂмћ„м•„м›ѓл°њмѓќм‹њ cancleлЎњ нЊђл‹Ё
// Judged as cancel when enter is pressed or timeout occurs
// Расценивается как отмена, когда нажата клавиша Enter или происходит тайм-аут
DialogSetDefaultCancle();
ParseString(a_Param, "LeaderName", LeaderName);
ParseInt(a_Param, "LootingScheme", LootingScheme);
Schemestr = getLootingString(LootingScheme);
DialogShow(DIALOG_Modalless, DIALOG_Progress, MakeFullSystemMsg(GetSystemMessage(3134),Schemestr));
}
function HandleDialogOK() //нЊЊн‹°лЈЁнЊ…ліЂкІЅ лЏ™мќм°Ѕ //Party routing change consent window //РћРєРЅРѕ согласия РЅР° изменение маршрутизации стороны
{
if( DialogIsMine() )
{
if( DialogGetID() == PARTY_MODIFY_REQUEST )
{
RequestPartyLootingModifyAgreement(1); //лЏ™мќ н•Ё //Agree //Соглашаться
}
else if( DialogGetID() == OPTION_CHANGE )
{
SetUIState( "ShaderBuildState" );
}
}
}
function HandleDialogCancel() //нЊЊн‹°лЈЁнЊ…ліЂкІЅ лЏ™мќм°Ѕ //Party routing change consent window //РћРєРЅРѕ согласия РЅР° изменение маршрутизации стороны
{
// 확인, 취소 로 복구 // Restore with OK and Cancel // Восстановление с помощью ОК и Отмена
dScript.SetButtonName( 1337, 1342 );
if( DialogIsMine() )
{
if( DialogGetID() == PARTY_MODIFY_REQUEST )
{
RequestPartyLootingModifyAgreement(0); //к±°м €н•Ё н№мќЂ нѓЂмћ„м•„м›ѓ //Reject or timeout //Отклонить или таймаут
}
}
}
function OnComboBoxItemSelected( string sName, int index )
{
local PartyWnd script;
local ComboBoxHandle c_handle;
// debug(string(bPartyMaster));
// debug(string(IsRoomMaster()));
// debug(string(bPartyMember));
switch( sName )
{
case "LootingBox":
script = PartyWnd(GetScript("PartyWnd"));
c_handle = GetComboBoxHandle("OptionWnd.LootingBox");
//파티방장인데 파티장을 м–‘лЏ„н•лЉ” кІЅмљ°к°Ђ мћ€м–ґм„њ
//I am the party leader, but there are cases where the party leader is transferred.
//Я лидер партии, но бывают случаи, когда лидера партии переводят.
if(bPartyMaster || (IsRoomMaster() && !bPartyMember))
{
//н„мћ¬ лЈЁнЊ…кіј к°™мќЂк±ё лђм„ нѓќн•л©ґ 무시.
//м ЂмћҐлђњ м„¤м •мќґ н„мћ¬ м„¤м •мќґлћ‘ мќјм№н•лЉ” мќґмњ лЉ” 파티를 мґ€лЊЂн• л•Њ м ЂмћҐлђњ м„¤м •мќ„ 사용н•кі ,
//лЈЁнЊ…мќґ ліЂкІЅлђлЏ„ м„¤м •мќ„ м ЂмћҐн•кё° 때문이다.
//If the same route as the current one is selected again, it will be ignored.
//The reason the saved settings match the current settings is because the saved settings are used when inviting a party.
//This is because the settings are saved even if the routing is changed.
//Если снова выбран тот же маршрут, что и текущий, он будет проигнорирован.
//Причина, по которой сохраненные настройки соответствуют текущим, заключается в том, что сохраненные настройки используются при приглашении на вечеринку.
//Рто потому, что настройки сохраняются даже РїСЂРё изменении маршрутизации.
if(GetOptionInt( "Game", "PartyLooting") == c_handle.GetSelectedNum())
break;
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.LootingBox" );
RequestPartyLootingModify(c_handle.GetSelectedNum()); // лЈЁнЊ…ліЂкІЅмќ„ м‹ мІн•њл‹¤. // Apply for routing change. // Применить изменение маршрутизации.
}
break;
case "ResBox":
ResetRefreshRate( ResolutionList[ index ].nWidth, ResolutionList[ index ].nHeight );
break;
//case "DefaultPositionBox" :
// SetOptionInt( "Game", "LayoutDF", index );
// break;
case "TextureBox":
case "TerrainBox":
case "ModelBox":
case "AnimBox":
case "AABox":
CheckGraphicPreset();
break;
}
}
// 슬라이더 컨트롤 핸들러 - lancelot 2006. 6. 13.
// Slider control handler - lancelot 2006. 6. 13.
// Обработчик управления ползунком - lancelot 2006. 6. 13.
function OnModifyCurrentTickSliderCtrl(string strID, int iCurrentTick)
{
local float fVolume;
fVolume = GetVolumeFromSliderTick(iCurrentTick);
switch(strID)
{
case "EffectVolumeSliderCtrl" :
//if (isLoadUIComplete)
if (!class'UIAPI_WINDOW'.static.IsEnableWindow("OptionWnd.EffectVolumeSliderCtrl"))
{
SetOptionFloat("Audio", "SoundVolume", fVolume);
if (!skipMuteCheckBox && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
}
SetAudioSliderDisable(255, strID);
}
break;
case "MusicVolumeSliderCtrl" :
// мЉ¬лќјмќґлЌ” 바를 м›Ђм§ЃмќґлЉ” 도중에는 мќЊм•…мќґ кєјм§Ђм§Ђ м•ЉкІЊ н•кё° мњ„н•ґм„њ
// To prevent music from turning off while moving the slider bar
// Чтобы музыка не выключалась при перемещении ползунка
if(fVolume==0.0f)
fVolume=0.005f;
//if (isLoadUIComplete)
if (!class'UIAPI_WINDOW'.static.IsEnableWindow("OptionWnd.MusicVolumeSliderCtrl"))
{
SetOptionFloat("Audio", "MusicVolume", fVolume);
if (!skipMuteCheckBox && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
}
SetAudioSliderDisable(255, strID);
}
break;
case "SystemVolumeSliderCtrl" :
//if (isLoadUIComplete)
if (!class'UIAPI_WINDOW'.static.IsEnableWindow("OptionWnd.SystemVolumeSliderCtrl"))
{
SetOptionFloat("Audio", "WavVoiceVolume", fVolume);
if (!skipMuteCheckBox && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
}
SetAudioSliderDisable(255, strID);
}
break;
case "TutorialVolumeSliderCtrl" :
//if (isLoadUIComplete)
if (!class'UIAPI_WINDOW'.static.IsEnableWindow("OptionWnd.TutorialVolumeSliderCtrl"))
{
SetOptionFloat("Audio", "OggVoiceVolume", fVolume);
if (!skipMuteCheckBox && class'UIAPI_CHECKBOX'.static.IsChecked( "OptionWnd.mutecheckbox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.mutecheckbox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texmutecheckbox", "MonIca_UI.NewStyle.CheckBox_false");
}
SetAudioSliderDisable(255, strID);
}
break;
case "GammaBoxSliderCtrl":
if (isLoadUIComplete)
{
fVolume = 0.4f + float(class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.VideoTabScrollArea.GammaBoxSliderCtrl"))*0.01f;
SetOptionFloat( "Video", "Gamma", fVolume );
}
break;
case "sldr_GraphicPreset":
if (!fakeModifyGraphicPreset && isLoadUIComplete)
{
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.FrameBox"))
{
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.FrameBox", false);
MinFrameRateOff();
}
SetupGraphicPreset();
}
break;
}
}
function OnTimer(int TimerID)
{
/* if (TimerID == 777)
{
currWindowMode = GetOptionBool( "Video", "StartupFullScreen");
if (currWindowMode != prevWindowMode)
{
prevWindowMode = currWindowMode;
nextWindowMode = currWindowMode;
SetupButtonsWindowModeTexture(currWindowMode);
}
} */
}
//=================================================================================
// function : LoadVideoOption()
//
// Description :
// * Reads option.ini file, and apply video options.
// * There is no need to apply options here for the options that share key between
// script and native code. (e.g. Video.Gamma)
// * On the other hand, options that do not share key between script and native code
// MUST be applied here. (e.g. Video.L2Shader)
// * This function MUST be called when loading the game. Otherwise, some of the
// options in option.ini will not be applied to the game.
//
// Revision History
// * 2007/11/16 NeverDie: Created
//---------------------------------------------------------------------------------
//============================================================================================
// функция: LoadVideoOption()
//
//Описание:
// * Читает файл option.ini и применяет параметры видео.
// * Здесь нет необходимости применять параметры для параметров, которые имеют общий ключ между
// скрипт и собственный код. (например, Видео.Гамма)
// * С другой стороны, параметры, которые не используют общий ключ для скрипта и машинного кода
// ДОЛЖНО быть применено здесь. (например, Video.L2Shader)
// * Рта функция ДОЛЖНА вызываться РїСЂРё загрузке РёРіСЂС‹. Р’ противном случае некоторые РёР·
// параметры в option.ini не будут применены к игре.
//
//Рстория изменений
// * 16.11.2007 NeverDie: Создано
//---------------------------------------------------------------------------------
function LoadVideoOption()
{
local bool bKeepMinFrameRate; // Min frame rate
local bool bL2Shader; // Shader 3.0
local bool bShaderDOF; // Shader 3.0 Depth of field
local bool bShaderWater; // Shader 3.0 Water
local bool bShaderShadow; // Shader 3.0 Self shadow
local float fGamma;
// Shader option should be set only when "KeepMinFrameRate" option is off
// Опция шейдера должна быть установлена только тогда, когда опция «KeepMinFrameRate» отключена
fGamma = GetOptionFloat( "Video", "Gamma" );
keepGamma = fGamma;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.GammaBoxSliderCtrl", int((fGamma-0.4f)/0.01f));
// ShowOnScreenMessage(1,2261,2,0,colorGold,20000, GetLanguage() @ string(int((1.2 - fGamma)/0.016)));
bKeepMinFrameRate = GetOptionBool( "Video", "IsKeepMinFrameRate" );
if( !bKeepMinFrameRate )
{
// If current driver doesn't support Shader 3.0, there is no need to set Shader 3.0 options
// Если текущий драйвер не поддерживает Shader 3.0, нет необходимости устанавливать параметры Shader 3.0
if( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30 )
{
// Apply Shader 3.0 config // Применяем конфигурацию шейдера 3.0
bL2Shader = GetOptionBool( "Video", "L2Shader" );
SetL2Shader(bL2Shader);
// DOF, WaterEffect, Shadow depend on L2Shader option. Set them only when bL2Shader is on.
// DOF, WaterEffect, Shadow зависят от опции L2Shader. Устанавливайте их только при включенном bL2Shader.
if( bL2Shader )
{
// Apply Shader 3.0 Depth of Field // Применяем глубину резкости шейдера 3.0
bShaderDOF = GetOptionBool( "Video", "S30DOFBOX" );
SetDOF(bShaderDOF);
// Apply Shader 3.0 Water // Применяем воду шейдера 3.0
bShaderWater = GetOptionBool( "Video", "S30WaterEffectBox" );
SetShaderWaterEffect(bShaderWater);
// Apply Shader 3.0 Self shadow // Применяем тень шейдера 3.0
bShaderShadow = GetOptionBool( "Video", "S30ShadowBox" );
SetDepthBufferShadow(bShaderShadow);
}
}
}
}
//=================================================================================
// function : LoadAudioOption()
//
// Description :
// * Reads option.ini file, and apply audio options.
// * There is no need to apply options here for the options that share key between
// script and native code. (e.g. Video.Gamma)
// * On the other hand, options that do not share key between script and native code
// MUST be applied here. (e.g. Video.L2Shader)
// * This function MUST be called when loading the game. Otherwise, some of the
// options in option.ini will not be applied to the game.
//
// Revision History
// * 2007/11/16 NeverDie: Created
//---------------------------------------------------------------------------------
//=================================================================================
// функция: LoadAudioOption()
//
//Описание:
// * Читает файл option.ini и применяет параметры звука.
// * Здесь нет необходимости применять параметры для параметров, которые имеют общий ключ между
// скрипт и собственный код. (например, Видео.Гамма)
// * С другой стороны, параметры, которые не используют общий ключ для скрипта и машинного кода
// ДОЛЖНО быть применено здесь. (например, Video.L2Shader)
// * Рта функция ДОЛЖНА вызываться РїСЂРё загрузке РёРіСЂС‹. Р’ противном случае некоторые РёР·
// параметры в option.ini не будут применены к игре.
//
//Рстория изменений
// * 16.11.2007 NeverDie: Создано
//---------------------------------------------------------------------------------
function LoadAudioOption()
{
local bool bMute; // Audio mute
// If device does not support audio, it's ok to simply ignore audio options
// Если устройство не поддерживает звук, можно просто игнорировать параметры звука
if( CanUseAudio() )
{
// We only need to apply "Mute" option, because keys for volumes are shared between script and native code.
// Нам нужно только применить опцию «Отключить звук», поскольку ключи для томов являются общими для скрипта и машинного кода.
bMute = GetOptionBool( "Audio", "AudioMuteOn" );
if(bMute)
{
// Turn off all sounds // Выключаем все звуки
SetSoundVolume( 0.f );
SetMusicVolume( 0.f );
SetWavVoiceVolume( 0.f );
SetOggVoiceVolume( 0.f );
}
}
}
//=================================================================================
// function : LoadGameOption()
//
// Description :
// * Reads option.ini file, and apply game options.
// * There is no need to apply options here for the options that share key between
// script and native code. (e.g. Video.Gamma)
// * On the other hand, options that do not share key between script and native code
// MUST be applied here. (e.g. Video.L2Shader)
// * This function MUST be called when loading the game. Otherwise, some of the
// options in option.ini will not be applied to the game.
//
// Revision History
// * 2007/11/16 NeverDie: Created
//---------------------------------------------------------------------------------
//=================================================================================
// функция: LoadGameOption()
//
//Описание:
// * Читает файл option.ini и применяет параметры игры.
// * Здесь нет необходимости применять параметры для параметров, которые имеют общий ключ между
// скрипт и собственный код. (например, Видео.Гамма)
// * С другой стороны, параметры, которые не используют общий ключ для скрипта и машинного кода
// ДОЛЖНО быть применено здесь. (например, Video.L2Shader)
// * Рта функция ДОЛЖНА вызываться РїСЂРё загрузке РёРіСЂС‹. Р’ противном случае некоторые РёР·
// параметры в option.ini не будут применены к игре.
//
//Рстория изменений
// * 16.11.2007 NeverDie: Создано
//----------------------------------------------------------------------------------
function LoadConfigureOption()
//function LoadGameOption()
{
// Currently there is no options to load for the game tab.
// На данный момент нет возможности загрузить вкладку игры.
local bool bChecked;
bChecked=false;
bChecked=GetOptionBool( "Game", "RightClickBox");
SetFixedDefaultCamera(bChecked);
}
//event OnMouseOver( WindowHandle a_WindowHandle );
//event OnMouseOut( WindowHandle a_WindowHandle );
//event OnMouseMove( WindowHandle a_WindowHandle, int X, int Y );
function OnLButtonDown (WindowHandle a_WindowHandle, int X, int Y)
{
if (a_WindowHandle.GetWindowName() == "texSliderFontColor")
{
CalculateClickCoord(X, Y);
}
}
function CalculateClickCoord(int X, int Y)
{
local Rect clickRect;
clickRect = class'UIAPI_WINDOW'.static.GetRect("OptionWnd.texSliderFontColor");
if (Y <= clickRect.nY + 20)
if (X <= clickRect.nX + 204)
{
if (X > clickRect.nX + 136)
{
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 2);
}
else if (X > clickRect.nX + 68)
{
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 1);
}
else
{
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 0);
}
}
}
function OnMouseOver(WindowHandle a_WindowHandle)
{
if (a_WindowHandle.GetWindowName() == "texSliderFontColor")
{
class'UIAPI_WINDOW'.static.SetAlpha("OptionWnd.sldr_GraphicPreset", 255);
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
}
else if (string(a_WindowHandle) == "Transient.CheckBoxHandle" && a_WindowHandle.IsEnableWindow()) // kludge for test checkbox 's hover effect
{
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.tex"$a_WindowHandle.GetWindowName(), "MonIca_UI.NewStyle.Checkbox_" $ CheckBoxHandle(a_WindowHandle).isChecked() $ "_over");
}
}
function OnMouseOut(WindowHandle a_WindowHandle)
{
if (a_WindowHandle.GetWindowName() == "texSliderFontColor") // TODO fix detect when over slider's thumbbutton (None)
{
class'UIAPI_WINDOW'.static.SetAlpha("OptionWnd.sldr_GraphicPreset", 0);
CheckGraphicPreset();
}
else if (string(a_WindowHandle) == "Transient.CheckBoxHandle" && a_WindowHandle.IsEnableWindow()) // kludge for test checkbox 's hover effect
{
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.tex"$a_WindowHandle.GetWindowName(), "MonIca_UI.NewStyle.Checkbox_" $ CheckBoxHandle(a_WindowHandle).isChecked());
}
}
function SetupGraphicPreset()
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
switch(class'UIAPI_SLIDERCTRL'.static.GetCurrentTick("OptionWnd.sldr_GraphicPreset"))
{
case 0: // minimum preset
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TextureBox", 2);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TerrainBox", 4);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.ModelBox", 1);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AnimBox", 1);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AABox", 0);
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.ShadowBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DecoBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.TriBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[1]);
break;
case 1: // medium preset
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TextureBox", 1);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TerrainBox", 2);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.ModelBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AnimBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AABox", 0);
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.ShadowBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DecoBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.TriBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[2]);
break;
case 2: // high preset
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TextureBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.TerrainBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.ModelBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AnimBox", 0);
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.AABox", 2);
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.ShadowBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DecoBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_true");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.TriBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[3]);
break;
}
}
function CheckGraphicPreset()
{
local string checkString,
minPreset,
midPreset,
maxPreset;
if (class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.FrameBox"))
{
// GetINIString("OptionWnd", "txtGraphicCurrentLowFrame"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[0]);
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
fakeModifyGraphicPreset = true;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 0);
fakeModifyGraphicPreset = false;
return;
}
minPreset = "24110000";
midPreset = "12000111";
maxPreset = "00002111";
checkString = class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.TextureBox")$ // texture detail
class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.TerrainBox")$ // terrain detail
class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.ModelBox")$ // model detail
class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.AnimBox")$ // animation detail
class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.AABox")$ // anti-aliasing detail
int(class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.ShadowBox"))$ // shadow enable
int(class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.DecoBox"))$ // ground detail(grass) enable
int(class'UIAPI_CHECKBOX'.static.IsChecked("OptionWnd.TriBox")); // texture filter enable
//Say("checkString" @ checkString);
if (checkString == minPreset)
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
fakeModifyGraphicPreset = true;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 0);
fakeModifyGraphicPreset = false;
// GetINIString("OptionWnd", "txtGraphicCurrentMin"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[1]);
}
else if (checkString == midPreset)
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
fakeModifyGraphicPreset = true;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 1);
fakeModifyGraphicPreset = false;
// GetINIString("OptionWnd", "txtGraphicCurrentMid"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[2]);
}
else if (checkString == maxPreset)
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 255);
fakeModifyGraphicPreset = true;
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.sldr_GraphicPreset", 2);
fakeModifyGraphicPreset = false;
// GetINIString("OptionWnd", "txtGraphicCurrentMax"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[3]);
}
else
{
class'UIAPI_WINDOW'.static.SetAlpha( "OptionWnd.texSliderBackColor", 122);
// GetINIString("OptionWnd", "txtGraphicCurrentCust"$currentLanguage, checkString, LANGUAGEINI);
class'UIAPI_TEXTBOX'.static.SetText("OptionWnd.txtGraphicPresetCurrent", graphicPresetName[4]);
}
}
function SwitchWindowStyle(string param)
{
local int EventID;
// local string newStyle;
ParseInt(param, "EventID", EventID);
if (EventID == 10)
{
ParseString(param, "Style", windowStyle);
ParseInt(param, "SubStyle", subWindowStyle);
ChangeStyleButtonTexture();
DrawGeneralUI(windowStyle, true, false);
DrawButtonTexture(Me, windowStyle);
}
}
function RestoreDefaultSettings()
{
selectedTab = tab_TabCtrl.GetTopIndex();
switch(selectedTab)
{
case 0: // VideoTab
RestoreDefaultVideoSettings();
break;
case 1: // AudioTab
RestoreDefaultAudioSettings();
break;
case 2: //ConfigureTab
RestoreDefaultConfigureSettings();
break;
case 3: //GameTab
RestoreDefaultGameSettings();
break;
case 4: //InterfaceTab
RestoreDefaultInterfaceSettings();
break;
case 5: //DamageOnScreenTab
RestoreDamageTextSettings();
break;
case 6: //ChatChannelTab
RestoreDefaultChannelChatSettings();
break;
case 7: //ChatCommonTab
RestoreDefaultCommonChatSettings();
break;
case 8: //ShortcutTab
if (!class'UIAPI_WINDOW'.static.IsShowWindow("OptionWnd.ShortcutTab.DisableBox"))
RestoreDefaultShortcutSettings();
break;
case 9: //MonIca_InterfaceTab
RestoreExInterfaceSettings();
break;
}
}
//MonIca_InterfaceTab
function RestoreExInterfaceSettings()
{
local MonIca_InterfaceTab script_MonIca_InterfaceTab;
script_MonIca_InterfaceTab = MonIca_InterfaceTab(GetScript("OptionWnd.MonIca_InterfaceTab"));
script_MonIca_InterfaceTab.RestoreDefaultExInterfaceSettings();
}
//DamageOnScreenTab
function RestoreDamageTextSettings()
{
// show on screen damage with textboxes
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DamageTextTabScrollArea.ScreenDamageBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.DamageTextTabScrollArea.texScreenDamageBox", "MonIca_UI.NewStyle.Checkbox_false");
// show on screen damage with emitters
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DamageTextTabScrollArea.WorldDamageBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.DamageTextTabScrollArea.texWorldDamageBox", "MonIca_UI.NewStyle.Checkbox_false");
}
function RestoreDefaultCommonChatSettings()
{
local CommonChatTab script_CommonChatTab;
script_CommonChatTab = CommonChatTab( GetScript( "OptionWnd.CommonChatTab" ) );
script_CommonChatTab.RestoreDefaultCommonChatOption();
}
function RestoreDefaultChannelChatSettings()
{
local ChannelChatTab script_ChannelChatTab;
script_ChannelChatTab = ChannelChatTab( GetScript( "OptionWnd.ChannelChatTab" ) );
script_ChannelChatTab.RestoreDefaultChannelChatOption();
}
function RestoreDefaultShortcutSettings()
{
local ShortcutAssignWnd script_ShortcutAssignWnd;
script_ShortcutAssignWnd = ShortcutAssignWnd(GetScript("OptionWnd.ShortcutTab"));
script_ShortcutAssignWnd.ResetShortcutsForAllButtons();
}
function RestoreDefaultInterfaceSettings()
{
// м§Ђм—лЄ…н‘њм‹њ // Display area name // РРјСЏ области отображения - ZoneNameBox
// "Game", "ShowZoneTitle" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ZoneNameBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texZoneNameBox", "MonIca_UI.NewStyle.Checkbox_false");
// л“њлЎлђњ м•„мќґн…њ н‘њм‹њ // Display dropped items // Отображать выпавшие элементы
// "Game", "HideDropItem" = false
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.DropItemBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDropItemBox", "MonIca_UI.NewStyle.Checkbox_false");
// 투명화 // Invisibility // Невидимость - OpacityBox
// "Game", "TransparencyMode" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.OpacityBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texOpacityBox", "MonIca_UI.NewStyle.Checkbox_true");
// к·ёлћн”Ѕм»¤м„њ // graphic cursor // графический РєСѓСЂСЃРѕСЂ - CursorBox
// "Video", "UseColorCursor" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CursorBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCursorBox", "MonIca_UI.NewStyle.Checkbox_true");
// 3D화살표 // 3D arrow // 3D стрелка - ArrowBox (3D Quest Emitter)
// "Game", "ArrowMode" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ArrowBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texArrowBox", "MonIca_UI.NewStyle.Checkbox_true");
// 스크린샷 품질 // Screenshot quality // Качество скриншота - CaptureBox
// "Game", "ScreenShotQuality" = 0
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.CaptureBox", 0);
OnClickButton("btnDisableAllHelpOff");
OnClickButton("btnShowAllNamesOn");
}
function RestoreDefaultGameSettings()
{
class'UIAPI_COMBOBOX'.static.SetSelectedNum("OptionWnd.LootingBox", 0);
OnClickButton("btnInteractionOff");
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.PartyRejectBox", false);
OnClickButton("btnAutoTradeOff");
}
function RestoreDefaultConfigureSettings()
{
// м–ём–ґм„ нѓќ // Select language // Выбор языка - LanguageBox
// "Game", "IsNative" = true
// class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.LanguageBox", 0 );
// 키보드보안 // keyboard security // безопасность клавиатуры - KeyboardBox
if( IsUseKeyCrypt() )
{
if( IsCheckKeyCrypt() )
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", true );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_true");
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_false");
}
if( IsEnableKeyCrypt() )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 122);
}
}
else
{
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.KeyboardBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texKeyboardBox", "MonIca_UI.NewStyle.Checkbox_false");
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.KeyboardBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texKeyboardBox", 122);
}
// 게임패드 // gamepad // геймпад - Box
// "Game", "UseJoystick" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.JoypadBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texJoypadBox", "MonIca_UI.NewStyle.Checkbox_false");
if( CanUseJoystick() )
{
class'UIAPI_CHECKBOX'.static.EnableWindow( "OptionWnd.JoypadBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texJoypadBox", 255);
}
else
{
class'UIAPI_CHECKBOX'.static.DisableWindow( "OptionWnd.JoypadBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texJoypadBox", 122);
}
//л§€мљ°мЉ¤мљ°нЃґл¦ //Right mouse click //Щелкните правой РєРЅРѕРїРєРѕР№ мыши - RightClickBox
// "Game", "RightClickBox" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.RightClickBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texRightClickBox", "MonIca_UI.NewStyle.Checkbox_false");
// м№ґл©”лќјм¶”м Ѓ // camera tracking // отслеживание камеры - CameraBox
// "Game", "AutoTrackingPawn" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.CameraBox", true );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texCameraBox", "MonIca_UI.NewStyle.Checkbox_true");
}
function RestoreDefaultAudioSettings()
{
if(CanUseAudio())
{
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.MusicVolumeSliderCtrl", 2);
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.EffectVolumeSliderCtrl", 2);
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.SystemVolumeSliderCtrl", 2);
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.TutorialVolumeSliderCtrl", 2);
}
else
{
SetAudioSliderDisable(122);
}
}
function RestoreDefaultVideoSettings()
{
local int nPostProcessType;
local int nTmp, nTmp2, nTmp3;
//local bool bTmp;
// skip fullscreen/window mode
// н™”м§€к°њм„ м…°мќґлЌ” // Picture quality improvement shader // Шейдер улучшения качества изображения - HDRBox
// "Video", "PostProc" = 0;
nPostProcessType = 0;
// Gamma setting
// "Video", "Gamma" = 0.6f (75%)
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.GammaBoxSliderCtrl", 60);
// м‹њм•ј-мєђл¦н„° // view-character // просмотр-СЃРёРјРІРѕР» - CharBox
// "Video", "PawnClippingRange" = 3
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharRenderRadiusSliderCtrl", 3);
// мєђл¦н„°н‘њм‹њм њн•њ // Restrict character display // Ограничить отображение символов - RenderCharacterCount
// "Video", "RenderActorLimitOpt" = 12
nTmp = 12;
nTmp2 = class'UIAPI_SLIDERCTRL'.static.GetTotalTickCount("OptionWnd.CharacterLimitSliderCtrl");
nTmp3 = GetPawnValue(nTmp, nTmp2, RENDERCHARACTERLIMIT_MIN, RENDERCHARACTERLIMIT_MAX);
class'UIAPI_SLIDERCTRL'.static.SetCurrentTick("OptionWnd.CharacterLimitSliderCtrl", nTmp);
// мµњм†Њн”„л €мћ„мњ м§Ђ // Maintain minimum frame // Поддерживаем минимальный кадр - FrameBox
// "Video", "IsKeepMinFrameRate" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.FrameBox", false);
MinFrameRateOff();
// 텍스쳐디테일 // texture details // детали текстуры - TextureBox
// "Video", "TextureDetail" = 1
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.TextureBox", 1);
// м‹њм•ј-м§Ђн• // field of view - terrain // поле зрения - местность - TerrainBox
// "Video", "TerrainClippingRange" = 2
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.TerrainBox", 2);
// 그림자 // shadow // тень - ShadowBox
// "Video", "PawnShadow" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.ShadowBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texShadowBox", "MonIca_UI.NewStyle.Checkbox_true");
// 모델링디테일 // modeling details // детали моделирования - ModelBox
// "Video", "ModelDetail" = 0
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ModelBox", 0);
// лЄЁм…л””н…Њмќј // motion detail // детали движения - AnimBox
// "Video", "SkipAnim" = 0
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AnimBox", 0);
// 배경효과 // background effect // фоновый эффект - DecoBox
// "Video", "RenderDeco" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.DecoBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texDecoBox", "MonIca_UI.NewStyle.Checkbox_true");
// GPUм• л‹€л©”мќґм… // GPU animation // анимация графического процессора- GPUAnimationCheckBox
// "Video", "GPUAnimation" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.GPUAnimationCheckBox", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texGPUAnimationCheckBox", "MonIca_UI.NewStyle.Checkbox_false");
if( nVertexShaderVersion < 20 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.GPUAnimationCheckBox");
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texGPUAnimationCheckBox", 122);
}
// 안티알리아싱 // anti-aliasing // сглаживание - AABox
// "Video", "AntiAliasing" = 0
nTmp = GetMultiSample();
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.AABox", 0);
if( nTmp > 0 && !( 3 <= nPostProcessType && nPostProcessType <= 5 ) )
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.AABox" );
}
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.AABox" );
}
// 텍스쳐필터링 // texture filtering // фильтрация текстур - TriBox
// "Video", "UseTrilinear" = true
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.TriBox", true );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texTriBox", "MonIca_UI.NewStyle.Checkbox_true");
// 기상효과 // weather effect // погодный эффект - WeatherEffectComboBox
// "Video", "WeatherEffect" = 0
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.WeatherEffectComboBox", 0);
// л°м‚¬нљЁкіј // reflection effect // эффект отражения - ReflectBox
// "Video", "IsUseEffect" = false "EffectType" = 0
if( nPixelShaderVersion < 12 )
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.ReflectBox" );
}
else
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
}
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.ReflectBox", 0 );
//~ debug ("포스트 프로세스타입" @ nPostProcessType); //~ debug ("Post Process Type" @ nPostProcessType); //~ отладка ("Тип постпроцесса" @ nPostProcessType);
class'UIAPI_COMBOBOX'.static.SetSelectedNum( "OptionWnd.HDRBox", 0 );
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0
// "Video", "L2Shader" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30Box", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30Box", "MonIca_UI.NewStyle.Checkbox_false");
if ( nPixelShaderVersion >= 30 && nVertexShaderVersion >= 30)
{
class'UIAPI_WINDOW'.static.EnableWindow( "OptionWnd.ReflectBox" );
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
//셰이더 3.0 //Shader 3.0 //Шейдер 3.0 - DOF?
// "Video", "S30DOFBOX" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30DOFBOX", false);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30DOFBOX", "MonIca_UI.NewStyle.Checkbox_false");
//м…°мќґлЌ” 3.0 - л¬јнљЁкіј //Shader 3.0 - Water Effect //Шейдер 3.0 — Рффект РІРѕРґС‹
// "Video", "S30WaterEffectBox" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30WaterEffectBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30WaterEffectBox", "MonIca_UI.NewStyle.Checkbox_false");
//셰이더 3.0 - 그림자. //Shader 3.0 - Shadows. //Шейдер 3.0 - Тени.
// "Video", "S30ShadowBox" = false
class'UIAPI_CHECKBOX'.static.SetCheck( "OptionWnd.S30ShadowBox", false );
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texS30ShadowBox", "MonIca_UI.NewStyle.Checkbox_false");
}
else
{
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30Box" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30Box", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30DOFBOX" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30DOFBOX", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30WaterEffectBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30WaterEffectBox", 122);
class'UIAPI_WINDOW'.static.DisableWindow( "OptionWnd.S30ShadowBox" );
class'UIAPI_TEXTURECTRL'.static.SetAlpha("OptionWnd.texS30ShadowBox", 122);
}
//백그라운드 실행성능 낮추기 //Reduce background execution performance //Уменьшаем производительность фонового выполнения
// "Game", "UseLazyMode" = true
class'UIAPI_CHECKBOX'.static.SetCheck("OptionWnd.LazyModeBox", true);
class'UIAPI_TEXTURECTRL'.static.SetTexture("OptionWnd.texLazyModeBox", "MonIca_UI.NewStyle.Checkbox_true");
CheckGraphicPreset();
}
defaultproperties
{
}
Протокол ? Забыл как узнать ( или подскажите в каком классе в interface.u это у вас прописаноблинофф, все от сервера зависит, это какой
Батник создай в папке system и пропиши:Протокол ? Забыл как узнать ( или подскажите в каком классе в interface.u это у вас прописано
call l2.exe -l2pv
273Батник создай в папке system и пропиши:
Вроде так, если память не изменяет.Код:call l2.exe -l2pv
блинофф, да неее, не протокол а сборка какая, ну или адрес сервера посмотреть
Обычно в server.ini или похожем конфиге гейм сервера указаны цифры протоколаСообщение объединено:Или я снова что то не то дал?)
Та адрес сервера просилиОбычно в server.ini или похожем конфиге гейм сервера указаны цифры протокола
Похоже на антиспам на серверсайде, я бьі в первую очередь попробовал задержку на вставку апнуть до 3 секунд для теста.Так в каком класе можно авто ЛС глянуть? а то он после первого использования дальше не ищет