• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стремитесь оценить работы в ежегодном литературном конкурсе от "Ордена Хранителей"! В этот раз темой конкурса являются тайные организации. Ждем именно вас.

    Ссылка на конкурсную тему - тык

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.440
Благодарности
4.791
Баллы
625
  • Первое сообщение
  • #1
1767600363729.png

RU EN

 

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.983
Благодарности
583
Баллы
275
Приветствую всех.
Gratt, возможно ли в Union сделать плагин/фикс, который НЕ позволит некоторым противникам (оркам/NPC и т.п.) двигаться и атаковать ПОСЛЕ того как их здоровье было опущено до нуля спец-атакой Когтя Белиара?
Регулярно сталкиваюсь с этим - раздражает.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.440
Благодарности
4.791
Баллы
625
НЕ позволит некоторым противникам (оркам/NPC и т.п.) двигаться и атаковать ПОСЛЕ того как их здоровье было опущено до нуля спец-атакой Когтя Белиара?
killer-m добавишь к пачке фиксов анимаций? :)
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.442
Благодарности
3.911
Баллы
565
Думаю, это возможно на уровне скриптов. Нужно добавить проверку здоровья цели после получения урона Когтя и принудительно запускать анимацию смерти, если здоровье снизилось до нуля или ниже:
Daedalus:
func void B_BeliarsWeaponSpecialDamage(var C_Npc oth,var C_Npc slf)
{
    var int RavenRandy;
    var int DamageRandy;
    var C_Item otherweap;
    if(Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(Raven))
    {
        Wld_PlayEffect("spellFX_BELIARSRAGE_COLLIDE",slf,slf,0,0,0,FALSE);
        if(RavenBlitz <= 0)
        {
            Wld_PlayEffect("spellFX_BELIARSRAGE",oth,oth,0,0,0,FALSE);
            B_MagicHurtNpc(slf,oth,50);
            RavenBlitz += 1;
        }
        else if(RavenBlitz >= 3)
        {
            RavenRandy = Hlp_Random(100);
            if(RavenRandy <= 50)
            {
                RavenBlitz = 0;
            };
        }
        else
        {
            RavenBlitz += 1;
        };
    }
    else if(Hlp_GetInstanceID(oth) == Hlp_GetInstanceID(hero))
    {
        DamageRandy = Hlp_Random(100);
        if(C_ScHasReadiedBeliarsWeapon() && (DamageRandy <= BeliarDamageChance))
        {
            if(slf.aivar[AIV_MM_REAL_ID] == ID_DRAGON_UNDEAD)
            {
                Wld_PlayEffect("spellFX_BELIARSRAGE",oth,oth,0,0,0,FALSE);
                B_MagicHurtNpc(slf,oth,100);
            }
            else if(slf.flags != NPC_FLAG_IMMORTAL)
            {
                Wld_PlayEffect("spellFX_BELIARSRAGE",slf,slf,0,0,0,FALSE);
                B_MagicHurtNpc(oth,slf,100);
                //new
                if(slf.attribute[ATR_HITPOINTS] <= 0)
                {
                    AI_PlayAni(other,"T_DEAD");
                }
                //new
            };
            Wld_PlayEffect("spellFX_BELIARSRAGE_COLLIDE",hero,hero,0,0,0,FALSE);
        };
        if(C_ScHasReadiedBeliarsWeapon() && (DamageRandy <= 50))
        {
            Wld_PlayEffect("spellFX_BELIARSRAGE_COLLIDE",hero,hero,0,0,0,FALSE);
        };
    };
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.440
Благодарности
4.791
Баллы
625
D36, по хорошему движок и сам должен знать, когда ему следует проиграть анимацию смерти. Парочка аналогичных фиксов как раз добавлена в последнее обновление, так что этот будет там очень в тему.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.442
Благодарности
3.911
Баллы
565
D36, по хорошему движок и сам должен знать, когда ему следует проиграть анимацию смерти. Парочка аналогичных фиксов как раз добавлена в последнее обновление, так что этот будет там очень в тему.
Тогда не буду трогать)
А из похожего - смерть от газов мертвого болотного дрона. ГГ ещё может закончить анимацию взмаха оружия, и только потом откинуться. Но как баг не это ощущается - это же газ, всё-таки.
 

killer-m


Модостроитель
Регистрация
24 Мар 2013
Сообщения
1.359
Благодарности
1.362
Баллы
265
возможно ли в Union сделать плагин/фикс, который НЕ позволит некоторым противникам (оркам/NPC и т.п.) двигаться и атаковать ПОСЛЕ того как их здоровье было опущено до нуля спец-атакой Когтя Белиара?
Регулярно сталкиваюсь с этим - раздражает.
Попробуй этот фикс.
 

Вложения

  • Union.zip
    40,2 KB · Просмотры: 36

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.442
Благодарности
3.911
Баллы
565
Было бы очень полезно иметь возможность отследить в скриптах наличие работающего Юниона.
Например, модостроитель вводит в скрипты проекта новую переменную:
Daedalus:
var int UnionActivated;
При загрузке сохранения Юнион всегда назначает эту переменную в TRUE (если она есть) и дальше её можно проверять и давать игроку только совместимое. Вот только записывать в сохраненку значение переменной не нужно.
Также было бы полезно при запуске игры добавлять/проверять опцию unionActivated в Gothic.ini и устанавливать её в 1 - это позволит создать меню настроек (например, плагинов), которое не будет показываться игрокам без Юниона.
Daedalus:
instance MENUITEM_OPT_UNION(C_MENU_ITEM_DEF)
{
    backpic = MENU_ITEM_BACK_PIC;
    text[0] = "Плагины";
    text[1] = "Настройка плагинов Union";
    posx = 0;
    posy = MENU_MAIN_START_Y + (MENU_MAIN_STEP_Y * 4);
    dimx = MENU_MAIN_DX;
    dimy = MENU_MAIN_DY;
    onselaction[0] = SEL_ACTION_STARTMENU;
    onselaction_s[0] = "MENU_OPT_UNION";
    flags = flags | IT_TXT_CENTER;
    hideifoptionsectionset = "ENGINE";
    hideifoptionset = "unionActivated";
    hideonvalue = 0;
};
 

mud-freak

Участник форума
Регистрация
12 Окт 2019
Сообщения
13
Благодарности
11
Баллы
105
Hello! I have a question.
How do I load a DLL with Union 1.0h? The Union.ini was renamed to Union.ini.old when I installed Union 1.0h (25.05.2020 19:10) from the Resource Manager. If I create a new Union.ini, it is ignored.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.440
Благодарности
4.791
Баллы
625
mud-freak, hi, now union.ini options located in systempack.ini :)
+ Union have a new load method. U can place your dll plugin in system/autorun directory for physical path or [any directories]/autorun for virtual path. This plugin will be load automatically after ini method if this plugin is not loaded early.
 

N1kX

Участник форума
Регистрация
13 Ноя 2009
Сообщения
6.614
Благодарности
6.224
Баллы
940
Можно ли исправить момент, когда скелет-маг может убить заклинанием своего призванного скелета? Шаманы орки исправлены в движке, поэтому в скриптах нет упоминаний про них.
 

killer-m


Модостроитель
Регистрация
24 Мар 2013
Сообщения
1.359
Благодарности
1.362
Баллы
265
Можно ли исправить момент, когда скелет-маг может убить заклинанием своего призванного скелета? Шаманы орки исправлены в движке, поэтому в скриптах нет упоминаний про них.
 

Вложения

  • Union.zip
    40,6 KB · Просмотры: 38

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.440
Благодарности
4.791
Баллы
625
Сейчас файловая система имеет опцию, которая при запросе отсутствующего файла заменит его сигнальным файлом-ошибкой. Удобно использовать ее в спейсере или просто для отладки мода.

Опция в SystemPack.ini
Код:
[DEBUG]
UseErrorVisuals = True

Шаблон имени сигнального файла
Код:
INVALID_SOURCE_FILE.<EXT>

Заменяемые расширения файлов
Код:
MRM, MDL, MDM, MMB, TEX, WAV, OGG

Стандартный комплект Юниона выглядит примерно так (невалидные звуки заменятся уведомлением гугл бабы)
1591304072279.png


1591304082568.png


1591304095373.png


1591304110188.png
 

Adanos Gotoman

Участник форума
Регистрация
16 Мар 2017
Сообщения
232
Благодарности
86
Баллы
195
Скачал Юнион 1.0h (тестовая сборка из ресурс менеджера) и получаю вот такую шляпу:
12.png

Но прикол в том, что Юнион 1.0g ставится и с ним запускается норм.
Как быть?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.440
Благодарности
4.791
Баллы
625
Adanos Gotoman, что у тебя с ехешником случилось? Он поломан судя по его виду. Накати примари патч сверху, пусть починит.
1591813746334.png
 

Adanos Gotoman

Участник форума
Регистрация
16 Мар 2017
Сообщения
232
Благодарности
86
Баллы
195
Gratt, просто иконка слетела. А так всё работает. Патч мне ехешник починил, но с новым Юни готика не робит
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.440
Благодарности
4.791
Баллы
625
Ну детали тогда выкладывай в личку
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.440
Благодарности
4.791
Баллы
625
1. В общем по ошибке товарища Adanos Gotoman: не ставьте паленые, блин, редисты. Есть официальный источник - сайт майкрософта. А интернет-помойки с кучей dll могут не только поломать работоспособность некоторых программ, но и заварить Вам чая с говном в виде червей, Троянов или чего похуже.
2. По просьбе D36 Union будет отслеживать два события на время сессии:
А. В игровых опциях параметр [INTERNAL] UnionActivated = 0 будет изменяться в true.
Б. Если в скриптах указана константа const int UnionActivated = 0, то её значение также изменится на true.
То есть каждый новый запуск эти операции будут производиться по новой.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.377
Благодарности
7.864
Баллы
995
1. В общем по ошибке товарища @Adanos Gotoman: не ставьте паленые, блин, редисты. Есть официальный источник - сайт майкрософта. А интернет-помойки с кучей dll
Ну, это не совсем верное утверждение, у мелкософта своего гимна хватает в его пакетах..
Рекомендую использовать гидру от лиссабона, в тех факе она прописана и проверена временем.. *ded*
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.278
Благодарности
2.626
Баллы
455
Сверху Снизу