Возможно ли сделать подсветку дропа для Interlude?

Rimof

Единомышленник
Участник
Сообщения
24
Розыгрыши
0
Репутация
66
Реакции
34
Баллы
103
Привет всем! Я Вот вообще полный нубас в этом деле, кое как осваиваю процесс сборки кастомных патчей. Любительский уровень.
Это вводные, чтобы Вы понимали с кем имеете дело) Скорее всего - мало кто захочет помогать в этом вопросе... Но - спрошу, мало ли?!

Я делаю патчик для Elmore x2 median, запихнул туда интерфейс Silent Essense, и вот он юзает U файлы, как на хрониках выше.
Читал на одной ветке форума, что кто-то как-то себе реализовал подсветку дропа. Это реально сделать для Интерлюда, с таким вот интерфейсом, что я написал выше?

Если да - то как?
 

да, реально. Тебе к Rolo у него есть готовый на продажу для ИТ.
Но также стоит заметить, что будут фризы на таком клиенте.
допустим ты фармиш, и там овер дофига ресурсов подсвечивается.
 
да, реально. Тебе к Rolo у него есть готовый на продажу для ИТ.
Но также стоит заметить, что будут фризы на таком клиенте.
допустим ты фармиш, и там овер дофига ресурсов подсвечивается.
Да, понимаю. На современных компах норм будет. Патч и делается на такую аудиторию. + это опционально же))
 
Да, понимаю. На современных компах норм будет. Патч и делается на такую аудиторию. + это опционально же))
Да все верно сказали выше, это к Роло нужно обратится, юзал эти дроп эффекты, смотрится суперски
 
Привет всем! Я Вот вообще полный нубас в этом деле, кое как осваиваю процесс сборки кастомных патчей. Любительский уровень.
Это вводные, чтобы Вы понимали с кем имеете дело) Скорее всего - мало кто захочет помогать в этом вопросе... Но - спрошу, мало ли?!

Я делаю патчик для Elmore x2 median, запихнул туда интерфейс Silent Essense, и вот он юзает U файлы, как на хрониках выше.
Читал на одной ветке форума, что кто-то как-то себе реализовал подсветку дропа. Это реально сделать для Интерлюда, с таким вот интерфейсом, что я написал выше?

Если да - то как?
для примера можешь посмотреть подсветка от Rolo.
 
Можете не ждать ответа от Rolo, он пропал примерно пол месяца назад и не отписывает.
 
Можете не ждать ответа от Rolo, он пропал примерно пол месяца назад и не отписывает.
Да так же, есть волнения по этому поводу, даже тебе хотел отписать, мб с тобой на связь выходил.
 
Можно просто перенести в отдельный класс подсветку дропа с хроник выше it, откуда взять все знают "наверное". 🤔
 
Можно просто перенести в отдельный класс подсветку дропа с хроник выше it, откуда взять все знают "наверное". 🤔
Ну, я нашёл 2 файлика, с Е-Глобаловского интерфейса, они же подтянули файлик, что тут выкладывали, на 97кб который)

Но тем не менее - я Вас совсем не понял, что значит перенести в отдельный класс?) Это в каком-то редакторе делать надо?)
Я прям совсем нубас в этом вопросе, извините)
 
Ну, я нашёл 2 файлика, с Е-Глобаловского интерфейса, они же подтянули файлик, что тут выкладывали, на 97кб который)

Но тем не менее - я Вас совсем не понял, что значит перенести в отдельный класс?) Это в каком-то редакторе делать надо?)
Я прям совсем нубас в этом вопросе, извините)
Берете интерфейс HF и переносите код в отдельный .uc класс на свой интерфейс и подключаете его.
Должно заработать если к примеру попробовать с хроник HF.
 
Берете интерфейс HF и переносите код в отдельный .uc класс на свой интерфейс и подключаете его.
Должно заработать если к примеру попробовать с хроник HF.
ох... а файлик автор закодировал так, что не вскрыть((
в теории понял, осталось преодолеть препятствия)
 
ох... а файлик автор закодировал так, что не вскрыть((
в теории понял, осталось преодолеть препятствия)
Создаете отдельный класс .uc, по аналогии и создаете свой .u не трогая сам интерфейс тогда.

Вот к примеру упростил код Monokini2 с интерфейса HF, посмотрите ниже и будет понятна логика работы:
Код:
const TIMER_ID1 = 691;
const TIMER_DELAY1 = 2000;

const HIGHLIGHT_ACCESSORY = "LineageEffectWD27.pnt_drop_accessary";
const HIGHLIGHT_ARMOR = "LineageEffectWD27.pnt_drop_armor";
const HIGHLIGHT_WEAPON = "LineageEffectWD27.pnt_drop_weapon";

var class<Emitter> HLEmitterClassWeapon;
var class<Emitter> HLEmitterClassArmor;
var class<Emitter> HLEmitterClassAccessory;

var WindowHandle        wnd_RadarMap;

function OnLoad()
{
    wnd_RadarMap = GetWindowHandle("RadarMapWnd");
   
    HLEmitterClassWeapon = class<Emitter>(DynamicLoadObject(HIGHLIGHT_WEAPON, class'Class'));
    HLEmitterClassArmor = class<Emitter>(DynamicLoadObject(HIGHLIGHT_ARMOR, class'Class'));
    HLEmitterClassAccessory = class<Emitter>(DynamicLoadObject(HIGHLIGHT_ACCESSORY, class'Class'));
}

function OnEvent( int a_EventID, String a_Param )
{
    switch( a_EventID )
    {
        case EV_UpdateUserInfo:
            if    (my_ID <= 0)
            {
                my_ID = class'UIDATA_PLAYER'.static.GetPlayerID();
                if (my_ID > 0) 
                {
                    wnd_RadarMap.SetTimer(TIMER_ID1, TIMER_DELAY1);           
                }
            }
            else
            {
            }
            break;
    }
}

function OnTimer(int TimerID)
{
    switch (TimerID)       
    {
        case TIMER_ID1:
            HandleOntimer();
            break;
    }
}

function HandleOntimer()
{
    local Actor PlayerActor;
    local Actor A;

    if (inGamingState)   
    {
        PlayerActor = GetPlayerActor();
       
        foreach PlayerActor.CollidingActors( class 'Actor', A, 2000, PlayerActor.Location)
        {
            if (A.Tag == 'L2Pickup')
            {
                if (CheckDropActors(A))
                {
                    continue;
                }
            }
        }
    }
}

function bool CheckDropActors(Actor DropActor)
{
    local L2Pickup L2P;
    local string MeshName;   
    local int dropType;

    L2P = L2Pickup(DropActor);
       
    if (L2P.DropEffectActor.Initialized == 1)
    {
        if (L2P.DropEffectActor.Tag == 'e_u056_b')    // Tag - editable, Name - const
        {
            MeshName = DropActor.GetMeshName();
            if (MeshName == "drop_ring_m00" || MeshName == "drop_earring_m00" || MeshName == "drop_necklace_m00")
            {
                dropType = 1;
            }
            else if (InStr(MeshName, "drop") == -1)
            {
                if  (InStr(MeshName, "hield") == -1 && InStr(MeshName, "igil") == -1)        // sShield sSigil
                    dropType = 2;
                else
                    dropType = 3;
            }
            else if (MeshName == "drop_highlight_helmet" || (InStr(meshName, "_vamprbic_") == -1 && InStr(meshName, "_move_") == -1 && InStr(meshName, "_critical_") == -1  && InStr(meshName, "_speed_") == -1    //herbs
                && isArmorName(MeshName)))        // if "_" >= 4
            {
                dropType = 3;
            }
            else
            {
                L2P.DropEffectActor.Tag = 'S';    //skip
                return true;
            }
           
            L2P.DropEffectActor.Kill();
           
            switch (dropType)
            {
                case 1:
                    
                    L2P.DropEffectActor = DropActor.Spawn(HLEmitterClassAccessory, DropActor, , DropActor.Location, defaultRotion);
                    break;
                   
                case 2:
                    L2P.DropEffectActor =  DropActor.Spawn(HLEmitterClassWeapon, DropActor, , DropActor.Location, defaultRotion);
                    break;
                   
                case 3:
                    L2P.DropEffectActor = DropActor.Spawn(HLEmitterClassArmor, DropActor, , DropActor.Location, defaultRotion);
                    break;
            }
            return true;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return true;
    }
}

Если что то забыто, делалось на скорую руку Ctrl+c и Ctrl+v :pandaredlol:
 

    Rimof

    Баллов: 1
    Благодарность
Создаете отдельный класс .uc, по аналогии и создаете свой .u не трогая сам интерфейс тогда.
Понял, код прочел, достаточно понятный. Даже мысль появилась, как оптимизировать нагрузку. У дропа должен быть класс, отвечающий за то Можно ли его поднять, или Нет, Твой дроп, или Чужой. Ну вот, надо будет как-то прикрутить подсветку только для того дропа, что твой, и который можно поднять)

Хотя, я почему-то думаю, что это настройка на сервере... И тогда локально - надо будет тянуть эти параметры.
В общем - размечтался я уже)))

С этит знаниями - пойду осваивать границы модинга Ла2) Пошёл читать, чем вскрывать u файлы, и какими редакторами пользоваться)
 
Понял, код прочел, достаточно понятный. Даже мысль появилась, как оптимизировать нагрузку. У дропа должен быть класс, отвечающий за то Можно ли его поднять, или Нет, Твой дроп, или Чужой. Ну вот, надо будет как-то прикрутить подсветку только для того дропа, что твой, и который можно поднять)

Хотя, я почему-то думаю, что это настройка на сервере... И тогда локально - надо будет тянуть эти параметры.
В общем - размечтался я уже)))

С этит знаниями - пойду осваивать границы модинга Ла2) Пошёл читать, чем вскрывать u файлы, и какими редакторами пользоваться)
Не забывайте удалять подсветку, я возможно не все перенес в более простой вариант не смотря на:
Код:
L2P.DropEffectActor.Kill();
Насчет проверки чей дроп, думаю нет смысла в этом и только создаст нагрузку (к примеру в Diablo 3 дроп подсвечен и виден для всех временно).
 
Последнее редактирование:
ну чтоб акторы не перебирать лучше конечно или сам эффект дропа перекомпилировать или engine.u в котором dropeffectactor
 
ну чтоб акторы не перебирать лучше конечно или сам эффект дропа перекомпилировать или engine.u в котором dropeffectactor
я пытался всячески поработать с файлами, из интерфейса Silent Essense (это адаптация под Интерлюд), я именно его использую в своём патчике.... и просто не понимаю, как достать инфу, что interface.u что interface.xdat - не декомпилируются, не открываются ни через XdatEditor, ни через что вообще. Сломал себе голову уже.
Из-за этой проблемы даже начать изучать вышеописанное не могу =(
А задача - именно с этим интерфейсом разобраться, и добавить туда необходимые эффекты дропа.
 
Я уже выкладывал в ресурсы без защиты смарта файлы, можете взять и редактировать.
 

    raz

    Баллов: 13
    +
Я уже выкладывал в ресурсы без защиты смарта файлы, можете взять и редактировать.
Спасибо большое! Твои Файлы работают с этим интерфейсом, хотя они значительно меньше. Возможно в его версии были какие-то доработки.
Потестирую, если всё ок - то я смогу попытаться реализовать всё вышеописанное)

Нашёл я тут одну программу - LUSE
Эта штука смогла мне открыть и показать содержимое даже закриптованного interface.u ... не знаю кто делал эту прогу - но он Бог и Волшебник!
Надеюсь с ней я смогу нормально редактировать код, и смогу добавить туда подсветку дропа)

Рано радовался)) Мне тут сказали, что по факту LUSE открывает стандартный набор данных для interface.u, и отображает именно их, а я уж подумал)) эх)) Но работать можно в этой проге - уже радует)
 
Последнее редактирование модератором:
Назад
Сверху Снизу