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

"Abstract" interface for Interlude

  • Автор темы Автор темы Petr
  • Дата начала Дата начала
А если теперь открыть окно заточки и не точить ничего а просто его закрыть то с игры можно выйти?
Я проверил на mobius на rusacis и а acis и слегка не понял а в какой момент оно шлёт два уведомления? у меня везде одно
А вижу там же ещё кнопка закрытия кроме крестика всё понял.
 
Последнее редактирование:
Да, всё работает корректно. Можно спокойно закрыть окно заточки и нормально выйти из игры.
 
После установки ласт апдейта при реса и многих вещах появились криты раньше этого всего не было при первой версии. Ничего не менял
 
У вас все криты связаны с уроном на экране который проходит по вам попробуйте отключить в настройках урон на экране и потестить
 
Во время реса персонажа во время многих действий получаю крит

General protection fault!

History: NCWnd::AddAnchorChildWnd <- NCWnd::SetAnchor <- UWindowHandle::execSetAnchor <- UObject:rocessEvent <- (OnScreenDamageWnd Transient.OnScreenDamageWnd0, Function Interface.OnScreenDamageWnd.OnTimer) <- NConsoleWnd::Tick <- UGameEngine::Tick <- UpdateWorld <- MainLoop


Я с ума схожу уже.

Да с уроном связана вы правильно сказали, подскжаите пожалуйста как это чинить?
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.


Я проверил на mobius
 
Щас буду разбираться.
Upd. Попробуйте заменить функцию OnTimer() в OnScreenDamageWnd.uc
C-подобный:
function OnTimer( int TimerID )
{
    local bool isNegative;
    local int tmpTimer;
    local int idx;
    if ( TimerID < 0 )
    {
        isNegative = True;
        tmpTimer = int(Mid(string(TimerID), 1));        
    }
    else
        tmpTimer = TimerID;
    
    if ( TimerID == BUFFER_TIMER_ID )
    {
        bBufferActive = False;
        FlushDamageBuffer();
        Me.KillTimer(BUFFER_TIMER_ID);
        return;
    }
    if ( tmpTimer >= 30000 )
    {
        idx = tmpTimer - 30000;
        if ( idx >= 0 && idx < MAX_CONTAINER && wContainer[idx] != None )
        {
            if ( !isNegative )
            {
                wContainer[idx].Move(0, 100, 2);
                Me.SetTimer((idx) + 20000, 1000);            
            }
            else
            {
                wContainer[idx].Move(0, -100, 2);
                Me.SetTimer(-(idx) + 20000, 1000);
            }        
        }
    }
    else if ( tmpTimer >= 20000 )
    {
        idx = tmpTimer - 20000;
        if ( idx >= 0 && idx < MAX_CONTAINER && wContainer[idx] != None )
        {
            if ( !isNegative )
            {
                wContainer[idx].Move(0, 100, 0.05);
                Me.SetTimer((idx) + 10000, 40);                
            }
            else
            {
                wContainer[idx].Move(0, -100, 0.05);
                Me.SetTimer(-(idx) + 10000, 40);
            }            
        }            
    }
    else if ( tmpTimer >= 10000 )
    {
        idx = tmpTimer - 10000;
        if ( idx >= 0 && idx < MAX_CONTAINER && wContainer[idx] != None )
            wContainer[idx].HideWindow();
    }
    Me.KillTimer(TimerID);
}



Нашёл глюк в ItemEnchantWnd:
в OnclickButton:
После
C-подобный:
case "EnchantTab1":
вставьте
C-подобный:
ProccessAnim.SetTexture("Direction.Enchant3.enchant_proccess_000");
            OffAnimEffect( ProccessAnim );

И В HandleClickCancel
Измените:
C-подобный:
else if ( GetEnchantTabIndex() == 0 )
OffAnimEffect( ProccessAnim );
На:
C-подобный:
    else if ( GetEnchantTabIndex() == 0 )
    {
        ProccessAnim.SetTexture("Direction.Enchant3.enchant_proccess_000");
        OffAnimEffect( ProccessAnim );
    }
 
Последнее редактирование:
Применил фикс для ItemEnchantWnd, но краш остался. После анализа стека вызовов понял, что проблема не в ItemEnchantWnd, а в OnScreenDamageWnd:

OnScreenDamageWnd Transient.OnScreenDamageWnd0, Function Interface.OnScreenDamageWnd.OnTimer
-> SetAnchor -> AddAnchorChildWnd -> General protection fault
не помогает.
 
Нажми на кнопку там функция замени ее в OnScreenDamageWnd.uc
 

Вложения

  • ScreenShot01549.webp
    38,9 КБ · Просмотры: 72
Ну так а игроки обновили interface.u ?

Апдейт за 22.11 (так же добавлена запятая в цифры урона по вашему игроку забыл её дорисовать)
 
Последнее редактирование:
Ну так а игроки обновили interface.u ?
Да все хорошо, спасибо большое за помощь. Каждый раз не получается скачивать все файлы и заменять так как есть уже измененные файлы чтобы их заного не пилить.. По этому по частям приходится. Спасибо за Ваш труд и за апдейты.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.


Интерфейс обновлен (в основном архиве первого поста)
- Немного подправлен урон на экране от скилов, которые могут бить без таргета (AURA) такие как аура флейр, воид бурст, блейзин сёркл, скилы ВЛа и скилы от аугментов. (видео к сожалению почему то не грузит)
- В skillgrp.dat исправлена цифра 0 на 1 (isMagic=true) для маг скилов от аугментов что б полоска каста отображала правильное время каста.
- Так же добавлена авто-аугментация и предупреждение о попытке вытащить камень со скилом + подправлена работа окна. (видео к сожалению почему то не грузит)
- Подправлена работа окна QuestNotifyWnd и отображение правильного колличество необходимых итемов (на скрине).
- Мелкие правки

Важный Upd.
Фаил ShortcutWnd.uc

найдите и замените строки
C-подобный:
        if ( m_potionAutoUse[0] == 1 && Potion[0].ItemNum > 0 )
            RequestUseItem(Potion[0].ServerID);
        if ( m_potionAutoUse[1] == 1 && Potion[0].ItemNum > 0 ) <-- тут ошибка Potion[0].ItemNum должно быть Potion[1].ItemNum
RequestUseItem(Potion[1].ServerID);
на
C-подобный:
        if ( m_potionAutoUse[0] == 1 && Potion[0].ItemNum > 0 )
            RequestUseItem(Potion[0].ServerID);
        if ( m_potionAutoUse[1] == 1 && Potion[1].ItemNum > 0 )
            RequestUseItem(Potion[1].ServerID);
        if ( m_potionAutoUse[2] == 1 && Potion[2].ItemNum > 0 )
            RequestUseItem(Potion[0].ServerID);
        if ( m_potionAutoUse[3] == 1 && Potion[3].ItemNum > 0 )
RequestUseItem(Potion[1].ServerID);

удалите
C-подобный:
    RegisterEvent( EV_ReceiveAttack );
    RegisterEvent( EV_ReceiveMagicSkillUse );

удалите
C-подобный:
        case EV_ReceiveAttack:
            HandleUseShots( a_Param, 0, 2 );
            break;      
        case EV_ReceiveMagicSkillUse:
            HandleUseShots( a_Param, 1, 3 );
            break;
удалите
C-подобный:
function HandleUseShots( string param, int slot1, int slot2 )
{
    local int AttackerID;
    ParseInt(param, "AttackerID", AttackerID);
    if ( AttackerID == class'UIDATA_PLAYER'.static.GetPlayerID() )
    {   
        if ( m_potionAutoUse[slot1] == 1 && Potion[slot1].ItemNum > 0 )
            RequestUseItem(Potion[slot1].ServerID);
    }
    if ( AttackerID == class'UIDATA_PET'.static.GetPetID() )
    {
        if ( m_potionAutoUse[slot2] == 1 && Potion[slot2].ItemNum > 0 )
            RequestUseItem(Potion[slot2].ServerID);
    }
}
 
Последнее редактирование:
Замените в InventoryWnd.uc функцию HandleSystemMessage
на эту
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 == 46 || Index == 1015 || Index == 1066 )
        ExecuteEvent(70694);
}

Вот эти последний два поста с изменениями для того что бы автососки работали при юзе боевых и не боевых умений и срабатывали до начала использования умения, если соска заряжается прямо перед ударом то урон нормальный а скорость каста почти на секунду меньше, интерлюд..... (P.S тут ещё будут доработки)
 
Последнее редактирование:
Реально годная работа продолжай в том же духе взял для себя

Потскажите как сделать по умолчанию русский
 

Если что эта залупа пытается продать этот интерфейс на форуме люцеры. Так что будьте бдительны. Так у него мульти акк.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
У меня один аккаунт здесь и один аккаунт на люцере. Продажа модов правилами не запрещена. Прошу администрацию разобраться с данным поведением оскорбительного характера.
 
Оскорбление пользователей
Каких [А по щам?] модов бл**ь, ты продаешь чужой интерфейс выложенный в шару. Какой с**а мод, ты чушка, и нехуй мне писать в тг, я понимаю что продажи обломаны, но от твоих угроз ничего не изменится.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Передeлка Окна инвентарь ето кастом мод

Окно инвентаря было изменено, код UC переписан, что в соответствии с определением является модификацией (модом).

 
Последнее редактирование:
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…