class Shortcut extends UIScript;
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 = 5;
const CHAT_WINDOW_SYSTEM = 5;
var MenuWnd menuScript;
var ChatWnd chatScript;
var ShortcutBindWnd shortcutBindScript;
var ShortcutWnd ShortcutWndScript;
var bool useFPad;
var bool useNumpad;
var bool useQwerty;
var int ComboNum1;
var int ComboNum2;
var int ComboNum3;
function OnLoad()
{
RegisterEvent( EV_ShortcutCommand );
RegisterEvent( 70700 );
chatScript = ChatWnd( GetScript("ChatWnd") );
menuScript = MenuWnd( GetScript( "MenuWnd" ) );
shortcutBindScript = ShortcutBindWnd( GetScript( "ShortcutBindWnd" ) );
shortcutWndScript = ShortcutWnd( GetScript( "ShortcutWnd" ) );
}
function OnEvent( int a_EventID, string a_Param )
{
switch ( a_EventID )
{
case EV_ShortcutCommand:
HandleShortcutCommand( a_Param );
break;
case 70700:
InitShortcut();
break;
}
}
function HandleShortcutCommand( string a_Param )
{
local string Command;
if ( ParseString( a_Param, "Command", Command ) )
{
switch ( Command )
{
case "CloseAllWindow":
HandleCloseAllWindow();
break;
case "ShowChatWindow":
HandleShowChatWindow();
break;
case "SetPrevChatType":
HandleSetPrevChatType();
break;
case "SetNextChatType":
HandleSetNextChatType();
break;
case "ShowDetailStatusWnd":
menuScript.ToggleCharacterWnd();
break;
case "ShowSkillWnd":
class'UIAPI_TEXTURECTRL'.static.SetTexture("MainMenuWnd.IconNotify", "");
menuScript.ToggleSkillsAndActionWnd(0);
break;
case "ShowActionWnd":
menuScript.ToggleSkillsAndActionWnd(1);
break;
case "ShowQuestWnd":
menuScript.ToggleQuestWnd();
break;
case "ShowClanWnd":
menuScript.ToggleClanWnd();
break;
case "ShowOptionWnd":
HandleOptionWnd();
break;
default:
if ( Left(Command, 11) == "UseShortcut" )
HandleShortcutBind(Command);
break;
}
}
}
function HandleShortcutBind( string Name )
{
local string targetPageF;
local string targetPageNum;
local string targetPageQW;
if ( ComboNum1 == 1 ) {
targetPageF = string(ShortcutWndScript.CurrentShortcutPage + 1);
} else {
targetPageF = string(ComboNum1);
}
targetPageNum = string(ComboNum2);
targetPageQW = string(ComboNum3);
switch ( Name )
{
case "UseShortcutNum=0":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 1");
break;
case "UseShortcutNum=1":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 2");
break;
case "UseShortcutNum=2":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 3");
break;
case "UseShortcutNum=3":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 4");
break;
case "UseShortcutNum=4":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 5");
break;
case "UseShortcutNum=5":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 6");
break;
case "UseShortcutNum=6":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 7");
break;
case "UseShortcutNum=7":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 8");
break;
case "UseShortcutNum=8":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 9");
break;
case "UseShortcutNum=9":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 10");
break;
case "UseShortcutNum=10":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 11");
break;
case "UseShortcutNum=11":
if ( useFPad ) ExecuteCommand("/useshortcut " $ targetPageF $ " 12");
break;
case "UseShortcutNum=12":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 1");
break;
case "UseShortcutNum=13":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 2");
break;
case "UseShortcutNum=14":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 3");
break;
case "UseShortcutNum=15":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 4");
break;
case "UseShortcutNum=16":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 5");
break;
case "UseShortcutNum=17":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 6");
break;
case "UseShortcutNum=18":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 7");
break;
case "UseShortcutNum=19":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 8");
break;
case "UseShortcutNum=20":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 9");
break;
case "UseShortcutNum=21":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 10");
break;
case "UseShortcutNum=22":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 11");
break;
case "UseShortcutNum=23":
if ( useNumpad ) ExecuteCommand("/useshortcut " $ targetPageNum $ " 12");
break;
case "UseShortcutNum=24":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 1");
break;
case "UseShortcutNum=25":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 2");
break;
case "UseShortcutNum=26":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 3");
break;
case "UseShortcutNum=27":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 4");
break;
case "UseShortcutNum=28":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 5");
break;
case "UseShortcutNum=29":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 6");
break;
case "UseShortcutNum=30":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 7");
break;
case "UseShortcutNum=31":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 8");
break;
case "UseShortcutNum=32":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 9");
break;
case "UseShortcutNum=33":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 10");
break;
case "UseShortcutNum=34":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 11");
break;
case "UseShortcutNum=35":
if ( useQwerty ) ExecuteCommand("/useshortcut " $ targetPageQW $ " 12");
break;
}
}
function InitShortcut()
{
local string pos, end;
useFPad = GetOptionBool("Key", "UseFPad");
useNumpad = GetOptionBool("Key", "UseNumpad");
useQwerty = GetOptionBool("Key", "UseQwerty");
ComboNum1 = GetOptionInt("Key", "Panel1");
ComboNum2 = GetOptionInt("Key", "Panel2");
ComboNum3 = GetOptionInt("Key", "Panel3");
pos = "Horizontal";
end = "";
if ( IsShortcutVertical() )
{
pos = "Vertical";
end = "_v";
}
class'UIAPI_TEXTURECTRL'.static.SetTexture("ShortcutWnd.ShortcutWnd"$pos$".Shortcut_keybind", "");
class'UIAPI_TEXTURECTRL'.static.SetTexture("ShortcutWnd.ShortcutWnd"$pos$"_1.Shortcut_keybind", "");
class'UIAPI_TEXTURECTRL'.static.SetTexture("ShortcutWnd.ShortcutWnd"$pos$"_2.Shortcut_keybind", "");
class'UIAPI_TEXTURECTRL'.static.SetTexture("ShortcutWnd.ShortcutWnd"$pos$"_3.Shortcut_keybind", "");
class'UIAPI_TEXTURECTRL'.static.SetTexture("ShortcutWnd.ShortcutWnd"$pos$"_4.Shortcut_keybind", "");
if ( useQwerty && GetOptionBool("Game", "EnterChatting") )
class'UIAPI_TEXTURECTRL'.static.SetTexture("ShortcutWnd.ShortcutWnd"$pos$strPanelNum(ComboNum3)$".Shortcut_keybind", "L2UI_CH3.ShortcutWnd.shortcut_keybindqw"$end);
if ( useNumpad && GetOptionBool("Game", "EnterChatting") )
class'UIAPI_TEXTURECTRL'.static.SetTexture("ShortcutWnd.ShortcutWnd"$pos$strPanelNum(ComboNum2)$".Shortcut_keybind", "L2UI_CH3.ShortcutWnd.shortcut_keybind12"$end);
if ( useFPad )
class'UIAPI_TEXTURECTRL'.static.SetTexture("ShortcutWnd.ShortcutWnd"$pos$strPanelNum(ComboNum1)$".Shortcut_keybind", "L2UI_CH3.ShortcutWnd.shortcut_keybindf1f2"$end);
}
function string strPanelNum( int ComboNum )
{
if ( ComboNum == 1 )
return "";
else
return "_"$string(ComboNum - 1);
}
function HandleShowChatWindow()
{
local WindowHandle chatWnd;
chatWnd = GetHandle( "ChatWnd" );
if ( chatWnd.IsShowWindow() )
{
chatWnd.HideWindow();
if ( GetOptionBool("Game", "SystemMsgWnd") )
class'UIAPI_WINDOW'.static.HideWindow("SystemMsgWnd");
}
else
{
chatWnd.ShowWindow();
if ( GetOptionBool("Game", "SystemMsgWnd") )
class'UIAPI_WINDOW'.static.ShowWindow("SystemMsgWnd");
}
}
function HandleOptionWnd()
{
if ( class'UIAPI_WINDOW'.static.IsShowWindow("OptionWnd") )
{
PlayConsoleSound(IFST_WINDOW_CLOSE);
class'UIAPI_WINDOW'.static.HideWindow("OptionWnd");
}
else
{
PlayConsoleSound(IFST_WINDOW_OPEN);
class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd");
class'UIAPI_WINDOW'.static.SetFocus("OptionWnd");
}
}
function HandleSetPrevChatType()
{
switch ( chatScript.m_chatType )
{
case CHAT_WINDOW_NORMAL:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_TRADE);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_PARTY);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_ALLY);
chatScript.ChatTabCtrl.SetTopOrder(4, True);
chatScript.HandleTabClick("ChatTabCtrl4");
break;
case CHAT_WINDOW_TRADE:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_NORMAL);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_PARTY);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_ALLY);
chatScript.ChatTabCtrl.SetTopOrder(0, True);
chatScript.HandleTabClick("ChatTabCtrl0");
break;
case CHAT_WINDOW_PARTY:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_NORMAL);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_TRADE);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_ALLY);
chatScript.ChatTabCtrl.SetTopOrder(1, True);
chatScript.HandleTabClick("ChatTabCtrl1");
break;
case CHAT_WINDOW_CLAN:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_NORMAL);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_TRADE);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_PARTY);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
chatScript.ChatTabCtrl.SetTopOrder(2, True);
chatScript.HandleTabClick("ChatTabCtrl2");
break;
case CHAT_WINDOW_ALLY:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_NORMAL);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_TRADE);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_PARTY);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
chatScript.ChatTabCtrl.SetTopOrder(3, True);
chatScript.HandleTabClick("ChatTabCtrl3");
break;
}
}
function HandleSetNextChatType()
{
switch ( chatScript.m_chatType )
{
case CHAT_WINDOW_NORMAL:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_NORMAL);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_PARTY);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_ALLY);
chatScript.ChatTabCtrl.SetTopOrder(1, True);
chatScript.HandleTabClick("ChatTabCtrl1");
break;
case CHAT_WINDOW_TRADE:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_NORMAL);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_TRADE);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_ALLY);
chatScript.ChatTabCtrl.SetTopOrder(2, True);
chatScript.HandleTabClick("ChatTabCtrl2");
break;
case CHAT_WINDOW_PARTY:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_NORMAL);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_TRADE);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_PARTY);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_ALLY);
chatScript.ChatTabCtrl.SetTopOrder(3, True);
chatScript.HandleTabClick("ChatTabCtrl3");
break;
case CHAT_WINDOW_CLAN:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_NORMAL);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_TRADE);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_PARTY);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
chatScript.ChatTabCtrl.SetTopOrder(4, True);
chatScript.HandleTabClick("ChatTabCtrl4");
break;
case CHAT_WINDOW_ALLY:
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_TRADE);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_PARTY);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_CLAN);
chatScript.ChatTabCtrl.MergeTab(CHAT_WINDOW_ALLY);
chatScript.ChatTabCtrl.SetTopOrder(0, True);
chatScript.HandleTabClick("ChatTabCtrl0");
break;
}
}
function HandleCloseAllWindow()
{
class'UIAPI_WINDOW'.static.HideWindow( "SystemMenuWnd" );
}
function bool IsShortcutVertical()
{
return ShortcutWndScript.IsVertical();
}
defaultproperties
{
}