Иконка ресурса

"Abstract" interface for Interlude

  • Автор темы Автор темы Petr
  • Дата начала Дата начала
Попробуйте добавить в InventoryWnd.uc
В функцию OnLoad
C-подобный:
    RegisterEvent(EV_SystemMessage);
В функцию OnEvent
C-подобный:
        case EV_SystemMessage:
            HandleSystemMessage(param);
            break;
И добавить функцию
C-подобный:
function HandleSystemMessage( string a_Param )
{
    local int Index, Param1, Param2;
 
    ParseInt(a_Param, "Index", Index);
    ParseInt(a_Param, "Param1", Param1);
    ParseInt(a_Param, "Param2", Param2);

    if ( Index == 35 || Index == 1015 )
        ExecuteEvent(70694);
}

Так же изменения в SkillGaugeWnd.uc
добавьте в начало переменную
C-подобный:
var bool isSpiritShotEnabled;
В функцию OnLoad
C-подобный:
RegisterEvent(EV_SystemMessage);
isSpiritShotEnabled = False;
В функцию OnEvent
C-подобный:
        case EV_SystemMessage:
            HandleSystemMessage(a_Param);
            break;
Добавить функцию
C-подобный:
function HandleSystemMessage( string a_Param )
{
    local int Index, Param1, Param2;
 
    ParseInt(a_Param, "Index", Index);
    ParseInt(a_Param, "Param1", Param1);
    ParseInt(a_Param, "Param2", Param2);
    if ( Index == 533 )
        isSpiritShotEnabled = True;
}
И заменить функцию HandleReceiveMagicSkillUse (для правильного вычисления полоски каста) на:
C-подобный:
function HandleReceiveMagicSkillUse( string a_Param )
{
    local int attackerID, skillID, skillLv;
    local UserInfo playerInfo;
    local SkillInfo skillInfo;
    local float speed;
    local float skillAnimTime;
    ParseInt(a_Param, "AttackerID", attackerID);
    ParseInt(a_Param, "SkillID", skillID);
    GetPlayerInfo(playerInfo);
    skillLv = GetPlayerSkillLevel(skillID); // for skills with '#hitTime'
    GetSkillInfo(skillID, skillLv, skillInfo);
    if ( skillInfo.CastStyle != 0 )
    {
        skillAnimTime = skillInfo.HitTime;
        if ( !IsStaticHitTime(skillID) )
        {
            if ( skillInfo.isMagic == 1 )
                speed = playerInfo.nMagicCastingSpeed;
            else
                speed = playerInfo.nPhysicalAttackSpeed;
            skillAnimTime = (skillAnimTime / speed) * 333;
        }
        if ( skillInfo.isMagic == 1 && isSpiritShotEnabled )
        {
            skillAnimTime = skillAnimTime * 0.7;
            isSpiritShotEnabled = False;
        }
        if ( (skillAnimTime < 0.5) && (skillInfo.HitTime > 0.5) )
            skillAnimTime = 0.5;
        if ( playerInfo.nID == attackerID && skillInfo.HitTime > 0f )
        {
            ResetBar();
            Me.ShowWindow();
            textSkill.SetTextColor(SetColor(230, 213, 164));
            textSkill.SetText(skillInfo.SkillName);
            texLightBar.Move(200, 0, skillAnimTime);
            Me.SetTimer(TIMER_HIDE, int(skillAnimTime * 1000.0f) + 100);
            GotoState('StartCastState');
        }
    }
}
 
Последнее редактирование:
Looks like we need systexture files: everything looks black, and the buttons have no UI. Please help.
 
Нужна ли запятая в цыфрах урона и опыта на экране?
 

Вложения

  • screendamage.webp
    154,8 КБ · Просмотры: 127
  • screenxpsp.webp
    129,9 КБ · Просмотры: 144
Нужна ли запятая в цыфрах урона и опыта на экране?

Кажется, использование запятой будет правильным.

Это действительно великолепно. Благодаря вам смотреть на это очень приятно. Ещё раз благодарю за то, что поделились. Подскажите, пожалуйста, как можно отключить окно отладки после входа в игру?

В RusAcis всё работает хорошо без проблем с элементальными снарядами. PTS протестирую!
 
Petr, а как, кстати, урон устроен, парс с пакета и ворлд ту скрин анчор текста/текстур? Влом смотреть, а интересно. )0))
 
да, как и везде)

p.s Я видел в классе Actor и Pawn интересности касаемые дамага но пока туда сильно не лез
 
Последнее редактирование:
I'm getting a critical error when trying to spawn a custom monster. What could be the problem?
 
I'm getting a critical error when trying to spawn a custom monster. What could be the problem?
It's all about the texture of this monster, of course.


Without the interface I can see all the custom monsters, but with the interface I'm getting a critical error.
Try to collect your thoughts, develop a tactic, MAKE A SCREENSHOT OF THE ERROR, and show it here, I'm not a clairvoyant
 
Without the interface I can see all the custom monsters, but with the interface I'm getting a critical error.
 
Оверпостинг
Спасибо , но
Критует часто после этого.
General protection fault!

History: UUIDATA_ITEM::execGetSetItemIDList <- UObject::execClassContext <- (ToolTip Transient.ToolTip0 @ Function Interface.ToolTip.AddDescTooltip : 001F) <- UObject:rocessEvent <- (ToolTip Transient.ToolTip0, Function Interface.ToolTip.OnEvent) <- XMLUIManager::ExecuteUIEvent <- NCTooltipManager::MakeTooltipInfo <- NCItemWnd::OnPostPaint <- NCVirtualWndMain:ostDrawChildWindow <- NCVirtualWndMain:ispatchWndMsg <- NConsoleWnd::ConsolePostRender <- UGameEngine:raw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop

И еще когда у магов соски включаешь из маленькой панели часто он сперва юзает скилл а потом соску не успевает соска прожаться до скила из за этого замедляется скорость каста умений, а в обычной панели проблем с этим нет, не подскажешь где проблема?
 
Последнее редактирование модератором:
Когда включаешь соски он сразу их юзает, как она может не успевать? Это если ты включаешь каст а потом панель то естественно соска уже не сработает на первый удар
 
Сервер стандартный без наворотов скорости итд? А вообще больше похоже на пинг.
 
Это больше похоже что какие-то кастом итемы продаются или за них покупка идёт. Он же не уточнил в каком моменте критует
 
В панели с этим проблем нет, но в мини панели во время использования умений соски не всегда используются перед кастованием скила, иногда сперва скилл кастуется потом сразу соски, а обычном панели которые мы всегда привыкли юзать там таких проблем нет, всегда первым используется соски а потом каст ну я имею ввиду то что успеваются соски использоваться
 
Все изображения и файлы загружайте только на наш сервер!
Alguém pode adicionar o botão para selecionar a quantidade de encantamento na interface xdat?


Seria algo parecido com isso nesses campos vermelhos, ou onde você achar melhor para que a interface não perca sua essência e qualidade.

I'm sending the one I worked on because it already has the button codes where the interface pulls them from.
 
Заметил проблему в этом интерфейсе: клавиши F1-F12 жестко привязаны к панели, выбранной в настройках. Из-за этого при переключении вкладок (1-10) умения на кнопках F1-F12 не меняются, что неудобно для тех, кто привык к классике Interlude.

Я обновил логику в Shortcut.uc, сделав её "умной".

Как это работает:
  • Если в настройках Shortcut Bind выбран "First Panel", клавиши F1-F12 будут переключаться вместе с активной страницей (классический стиль L2).
  • Если выбрать любую другую панель (2-10), клавиши останутся закрепленными за этой панелью (статический стиль).
Установка:Замените содержимое вашего Shortcut.uc на код ниже и скомпилируйте интерфейс.

Код:
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
{
}
 
Анонс! Обвновление в разработке
- Окно заточки (добавлена автозаточка), скорость анимации простой заточки слегка ускорена

- Окно ГМа (обновлён интерфейс)

- Урон на экране (убрано слово Critical) теперь простой урон белый, криты (маг и физ) жёлтые и больше и цифры с Essense. Добавлены запятые. Так же урон цепляется за соседних мобов а не как попало (ещё есть баги)
- И так же можете видеть обновление окна прогресса каста

- И небольшое обновление дизайна окошка смерти

- Так же была исправлена цифра 7 на 105 для отображения иконок макросов без применения поля description (иконки новых иконок были чёрными)
 
Последнее редактирование:
Пожалуйста помогите я никак не справляюсь, в мини панели у магов при использования ссосок со скорость кастом проблемы, в обычном панели все идеально но в мини панели во время каста скорость каста не тот, соска активируется именно вовремя использования каста а не до использования. Я все перепробовал уже бес толку...
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…