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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

В разработке... Union. Пожелания насчёт плагинов

Abdylbek

Участник форума
Регистрация
26 Мар 2023
Сообщения
126
Благодарности
113
Баллы
75
Поясните, можете проверить на оригинальной игре? В плагин вшита стойка из Ремастера, которая заменяется на оригинал как только вы начинаете драться либо целиться из лука.
В стойке из ремастера вроде же как раз лук на другое плечо одевается? С этим плагином по базе он на левом плече, в боевой стойке на правом. В оригинале думаю завтра смогу проверить
 

Dreamtrust

Участник форума
Регистрация
23 Янв 2023
Сообщения
324
Благодарности
99
Баллы
80
В стойке из ремастера вроде же как раз лук на другое плечо одевается? С этим плагином по базе он на левом плече, в боевой стойке на правом. В оригинале думаю завтра смогу проверить
Всё верно, думаю над решением.
Обнаружил,что плагин не дружит с Natural sprint, игра вылетает при загрузке.
 

nameless1

Участник форума
Регистрация
20 Июл 2023
Сообщения
16
Благодарности
0
Баллы
25
Существует ли отдельный плагин для Gothic 2, подобный New Balance, который позволяет выходить из замороженного диалога с помощью alt + F1? Спасибо.
 

fogode

Участник форума
Регистрация
8 Мар 2025
Сообщения
2
Благодарности
0
Баллы
5
Мне в оригинальной готике 2 ночь ворона получилось сделать так чтобы любой НПС следовал за мной, и защищал меня убивая мобов, но как сделать так чтобы мой напарник не пропадал, если я посплю на кровати?
Я реализовал себе напарника через эскпорт/импорт NPC вот эта тема RPGDot Forums - View topic - Tips on Followers in Gothic 2
 

Lorddemonik

★★★★★
Редактор раздела
Регистрация
17 Дек 2011
Сообщения
1.182
Благодарности
638
Баллы
380
Есть возможность сделать плагин, который на определенную кнопку будеть "использовать/поедать" сразу всю еду/зелье в ячейке. Естественно с сохранением бонуса как за полноценное потребление ручками?
 

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.543
Благодарности
2.099
Баллы
380
Есть возможность сделать плагин, который на определенную кнопку будеть "использовать/поедать" сразу всю еду/зелье в ячейке. Естественно с сохранением бонуса как за полноценное потребление ручками?
Я у себя в списочном инвентаре делал недавно такую экспериментальную фичу для открытия кошельков всяких, вроде показала себя неплохо, сейчас немного еще улучшил, можно еще и в избранном многое так открывать, но опять же использовать на свой страх и риск ))
 

Lorddemonik

★★★★★
Редактор раздела
Регистрация
17 Дек 2011
Сообщения
1.182
Благодарности
638
Баллы
380
Я у себя в списочном инвентаре делал недавно такую экспериментальную фичу для открытия кошельков всяких, вроде показала себя неплохо, сейчас немного еще улучшил, можно еще и в избранном многое так открывать, но опять же использовать на свой страх и риск ))

Так а как это сделать то? У тебя есть инструкция только для добавления в избранное
 

Сумрак

Участник форума
Регистрация
25 Окт 2021
Сообщения
1.735
Благодарности
733
Баллы
175

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.543
Благодарности
2.099
Баллы
380
А так у него не один инвентарь...
Актуальный один, я старый не обновляю. Как-то уже привык к списочному, по мне удобнее и все фичи только туда делаю. Старый с ячейками фактически только для Готики 1 у меня остался. Но я в нее почти не играю, там нормальных модов нет, а оригинал слишком простой.

Так уже довольно давно, просто на этом форуме нет темы.
Да надо тут тему старого инвентаря обновить просто, добавив и актуализировав всю информацию по обоих инвентарям. Лень просто.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.295
Благодарности
3.588
Баллы
565
Запрашиваю плагин, который будет проверять скриптовую функцию (например, C_PlayerCanSaveGame) перед каждым сохранением любого типа (быстрым, автоматическим, обычным) и разрешать сохранение только если указанная функция возвращает TRUE. В случае FALSE делать Print текстовой константы из скриптов (например, PRINT_SaveGameForbidden).
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.127
Благодарности
1.968
Баллы
320
D36, в движке есть специальная функция, которая проверяет возможность сохраниться. Плагины могут её игнорировать, под них костылить не буду.
Union:
#engine [G2A]
    #patch [zScriptSaveCondition]
        // engine specific
        INT text_CGameManager_MenuEnabled_write_enableSave = 0x0042AD34
        
        INT func_zSTRING_zSTRING = 0x004010C0
        INT func_zSTRING_destructor = 0x00401160
        INT func_zCParser_CallFunc = 0x007929D0
        
        INT offset_parser = 0x00AB40C0
        
        HEX str_script_func = "C_PLAYERCANSAVEGAME\0"
        
        INT sizeof_zSTRING = 20
        // end of engine specific
        
        #assembler [text_CGameManager_MenuEnabled_write_enableSave]
            test ecx, ecx
            jz continue
            
            push eax
            push edx

            sub esp, $sizeof_zSTRING
            mov ecx, esp
            push $str_script_func
            call $func_zSTRING_zSTRING
            
            mov eax, esp
            push eax
            mov ecx, $offset_parser
            call $func_zCParser_CallFunc
            push dword ptr [eax]
            
            lea ecx, [esp+4]
            call $func_zSTRING_destructor
            
            pop ecx
            add esp, $sizeof_zSTRING
            
            pop edx
            pop eax
            
        continue:
            orgcode
        #/assembler
    #/patch
#/engine

В случае FALSE делать Print текстовой константы из скриптов (например, PRINT_SaveGameForbidden).
Это можно сделать в самой скрип-функции.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.295
Благодарности
3.588
Баллы
565
@D36, в движке есть специальная функция, которая проверяет возможность сохраниться. Плагины могут её игнорировать, под них костылить не буду.
К сожалению, именно в этом и проблема. Родная функция вполне справляется сама и запрещает сохранение когда нельзя, а плагины которые эту проверку игнорируют будут так же игнорировать и новую скриптовую функцию. И будут продолжать плодить ситуации вроде "играл 30 часов на одном сохранении и оно сломалось, потому что плагин сохранился во время диалога".
Всё равно спасибо, для меня вопрос закрыт.
 

Lorddemonik

★★★★★
Редактор раздела
Регистрация
17 Дек 2011
Сообщения
1.182
Благодарности
638
Баллы
380
Есть возможность сделать плагин, по нажатию кнопки который будет переводить гг в режим моментального "убийства" любого избитого нпс без необходимости добивать
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
2.060
Благодарности
1.017
Баллы
315
Есть возможность сделать плагин, по нажатию кнопки который будет переводить гг в режим моментального "убийства" любого избитого нпс без необходимости добивать

в общих чертах так. требует тестов и доработки.. в частности надо понять надо ли исключать самого игрока :)
Daedalus:
func int ZS_Unconscious_Loop ()
{
    if Hlp_KeyToggled(KEY_NUMPAD0)
    //if Hlp_KeyPressed( var int key )
    {
        //B_KillNpc(self)
        Npc_ChangeAttribute(self, ATR_HITPOINTS, -5);
    };
    return ZS_Unconscious_Loop_old();
};
 
Последнее редактирование:

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
2.060
Благодарности
1.017
Баллы
315
ан нет.. не так. ТЗ наверное про другое. ты хочешь что бы при включение "режима" НПС вообще не теряли сознание, а сразу умирали? если так то это можно сделать как то так:

1) при нажатие кнопки включаем / выключаем "режим".
Daedalus:
var int LorddemonikKill;
func event GameLoop()
{
    if Hlp_KeyToggled(KEY_NUMPAD0)
    //if Hlp_KeyPressed( var int key )
    {
        if LorddemonikKill == false
        {
            LorddemonikKill = true;
            Print("вкл режим LorddemonikKill");
        }
        else
        {
            LorddemonikKill = false;
            Print("выкл режим LorddemonikKill");
        };
    };
};

2) далее два варианта реализации
сразу умирает, как бандит / ищущий теряет сознание и умирает
Daedalus:
//вариант 1
func int C_DropUnconscious()
{
    if LorddemonikKill == true
    {
        //B_KillNpc(self)
        return FALSE;
    };

    return C_DropUnconscious_old();
};
Daedalus:
//вариант 2
func int ZS_Unconscious_Loop()
{
    if LorddemonikKill == true
    {
        //B_KillNpc(self)
        Npc_ChangeAttribute(self, ATR_HITPOINTS, -5);
    };
    return ZS_Unconscious_Loop_old();
};
 
Сверху Снизу