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

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

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

CritCare

Участник форума
Регистрация
24 Апр 2023
Сообщения
2
Благодарности
0
Баллы
10
всех готоманов привествую!

буду очень признателен за плагин, меняющий боевую систему доя Г2А, приближённую к первой Готике

урон скалируется только от силы (лук в том числе)
У арбалетов фиксированный урон

Навык владения типом оружия имеет два уровня прокачки - боец и мастер
На каждом уровне шанс крита (то бишь полного урона) растет на 5% для ближнего боя и по 10% для дальнего боя (для примера)
дополнительно шанс крита увеличивают скрижали, награды, книги - это базовый шанс крита (например для одноручного мастера это будет значение 46%) + от надетого бижутерии и оружия.
в бою дополнительный шанс крита против разных соперников зависит от ловкости.

ловкость влияет на шанс попадания дальнобойным оружием , как в оригинале, но в ближнем дополнительный шанс крит.урона по принципу: разница в ловкости между сражающими бойцами, умноженное на 0,1 = полученное значение дополнительный шанс крита к основному во время боя для более ловкого бойца против конкретного противника, с которым сравнивалась ловкость

дополнительный шанс крита в бою ближнем бою за каждый последующий удар в комбинации увеличивается на 5%

Если кто то возьмется сделать такой плагин - укажите еще пожалуйста где менять переменные выделенные, чтобы в дальнейшем их сбалансировать по ходу тестирования

всем спасибо за внимание!
 
Последнее редактирование:

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.930
Благодарности
559
Баллы
275
всех готоманов привествую!

буду очень признателен за плагин, меняющий боевую систему доя Г2А, приближённую к первой Готике

урон скалируется только от силы (лук в том числе)
У арбалетов фиксированный урон

Навык владения типом оружия имеет два уровня прокачки - боец и мастер
На каждом уровне шанс крита (то бишь полного урона) растет на 5% для ближнего боя и по 10% для дальнего боя (для примера)
дополнительно шанс крита увеличивают скрижали, награды, книги - это базовый шанс крита (например для одноручного мастера это будет значение 46%) + от надетого бижутерии и оружия.
в бою дополнительный шанс крита против разных соперников зависит от ловкости.

ловкость влияет на шанс попадания дальнобойным оружием , как в оригинале, но в ближнем дополнительный шанс крит.урона по принципу: разница в ловкости между сражающими бойцами, умноженное на 0,1 = полученное значение дополнительный шанс крита к основному во время боя для более ловкого бойца против конкретного противника, с которым сравнивалась ловкость

дополнительный шанс крита в бою ближнем бою за каждый последующий удар в комбинации увеличивается на 5%

Если кто то возьмется сделать такой плагин - укажите еще пожалуйста где менять переменные выделенные, чтобы в дальнейшем их сбалансировать по ходу тестирования

всем спасибо за внимание!
Приветствую.
Нечто подобное делал SlaveMaster, в плагине AlterDamage, поищи в данной теме.
Также стоит обратить внимание на рекомендации MW7 по OnDamage_Hit.
 

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.930
Благодарности
559
Баллы
275
Приветствую всех.
Подскажите, пожалуйста, плагин для Г2НВ, который вводил бы в игру бартерную систему торговли из Г1, если он существует?
Если такого нет, то возможно ли его создать? Или это требует глубоких и сложных правок движка?
 

Oleg9791

Участник форума
Регистрация
2 Авг 2022
Сообщения
27
Благодарности
10
Баллы
30
Разместить код скрипта в файле \System\Autorun\AnyName.d
Здравствуйте! Прошу простить мою неопытность, но очень хотел бы установить тот плагин, подскажите пожалуйста, как вставить скрипт... zParcerExtender установил, но в папке Autorun только AutoScreenRes.dll - какой дальнейший порядок действий? Спасибо!
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.085
Благодарности
1.903
Баллы
320
какой дальнейший порядок действий?
Распаковать zKirTheSeeker.vdf в папку Data.
Создать файл \System\Autorun\AnyName.d и изменить его текстовое содержимое (текст взять из того же сообщения, где приложен zKirTheSeeker.vdf.zip)
 

Oleg9791

Участник форума
Регистрация
2 Авг 2022
Сообщения
27
Благодарности
10
Баллы
30
Распаковать zKirTheSeeker.vdf в папку Data.
Создать файл \System\Autorun\AnyName.d и изменить его текстовое содержимое (текст взять из того же сообщения, где приложен zKirTheSeeker.vdf.zip)
Спасибо большое! Получилось)
 

RPGamer_1993

Участник форума
Регистрация
23 Дек 2016
Сообщения
150
Благодарности
49
Баллы
190
Здравствуйте товарищи Готоманы!
1. Возможно ли сделать плагин на потребности как это было реализовано в Возвращении? Голод\Жажда\Сон?
2. Возможно ли реализовать возможность снимать тряпки с ГГ в которых он появляется в начале игры, как это было реализовано в Отелло и Возвращении, там в инвентаре в разделе доспехов появляются тряпки и сняв их текстура ГГ в тряпках меняется на текстуру ГГ в трусах, хотелось бы что бы одевая какие либо доспехи из под них не торчали текстуры браслетов и того тряпья в которое облачён гг!
 

MNXA

Участник форума
Регистрация
4 Фев 2018
Сообщения
75
Благодарности
16
Баллы
175
А есть плагин чтобы перманентные зелья и таблички не влияли на порог прокачки аля архолос ?
 

Парниша с горы

Участник форума
Регистрация
14 Дек 2022
Сообщения
121
Благодарности
41
Баллы
60
А есть плагин чтобы перманентные зелья и таблички не влияли на порог прокачки аля архолос ?
в неофициальном обновлении вроде есть такая штука, надо активировать у помощника по главам (insert sh)
 

MNXA

Участник форума
Регистрация
4 Фев 2018
Сообщения
75
Благодарности
16
Баллы
175
Но это же мод. А есть именно плагин чтобы для других модов подходило?
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
2.003
Благодарности
973
Баллы
295
Но это же мод. А есть именно плагин чтобы для других модов подходило?
это делается на уровне скриптов. функции B_GETLEARNCOSTTALENT и B_GetLearnCostAttribute. Сделать универсальную функцию для всех модов невозможно, так как в модах функция имеет разный вид(логику), разные атрибуты, разные таланты, разные переменные отличающие за хранения значения атрибута/навыков.

как вариант можно выгружать выше указанные функции из конкретного мода/сборки через Марвин Хелпер и переписывать.
 
Последнее редактирование:

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.930
Благодарности
559
Баллы
275
Приветствую всех.
Подскажите, пожалуйста, возможно ли написать плагин, позволяющий проследить и отредактировать взаимосвязь элементов меню и скриптов? Если конкретнее, я говорю об отображаемых параметрах брони:
MENU_ITEM_ARMOR_1 - MENU_ITEM_ARMOR_4Защита персонажа в окне статистики.
Хочется, например, чтобы плагин позволял увидеть где игра прописывает откуда ей брать значения для отображения показателя MENU_ITEM_ARMOR_3, чтобы можно было добавить защиту от иных типов урона.
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
2.003
Благодарности
973
Баллы
295
del
 
Последнее редактирование:

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
2.003
Благодарности
973
Баллы
295
Есть ли возможность заставить движок игнорировать инстанцию, прописанную в параметре useWithItem объекта? Если да, то можно ли это сделать только для взаимодействия ГГ с определённым набором объектов (объекты для крафта).
да. ты можешь "обнулить" значения useWithItem объектов. но при этмо тебе придётся на скриптах вставлять предметы в руку героя у некоторых объектов, например щипцы в рунном столе.

для примера внутри GameLoop изменяет UseWithItem и ConditionFunc
Daedalus:
class C_VOB {   };

class C_MobInter_DATA //- данные для интерактивного объекта oCMobInter
{
  var string TriggerTarget   ;  // - имя объекта, которое срабатывает при OnTrigger
  var string UseWithItem     ;  // - имя инстанции объекта, который необходим для взаимодействия
  var string Sceme           ;  // - имя сцены, которая соответствует анимациям объекта и персонажа
  var string ConditionFunc   ;  //- скриптовое условие, при котором взаимодействие может быть совершено
  var string OnStateFuncName ;  //- шаблон имени функций, которые будут вызываться при изменении состояния объекта
  var int State              ;  //- текущее состояние объекта
  var int State_num          ;  //- количество состояний объекта
  var int State_target       ;  //- текущее состояние объекта
  var int Rewind             ;  //- запрещает обновление объекта
  var int MobStateAni        ;  //- текущая анимация обоъекта
  var int NpcStateAni        ;  //- текущая анимация персонажа
};

func event GameLoop()
{
    if (Hlp_HasFocusVob(hero) == true)    // что то есть в фокусе
    {

    var C_VOB zKA_Focus_Vob;      zKA_Focus_Vob = Hlp_GetFocusVob (hero);


    var C_MobInter_DATA MobInter;   MobInter = Vob_GetMobInterData(zKA_Focus_Vob);  

    if (Hlp_StrCmp(MobInter.Sceme,"RMAKER") == true)
    {
        if (Hlp_StrCmp(MobInter.ConditionFunc,"") == true)
        {
            Hlp_PrintConsole(Str_Format("GameLoop   --> %s", MobInter.Sceme));
            MobInter.UseWithItem = "";
            MobInter.ConditionFunc = "RMAKER_CONDITION";
            Vob_SetMobInterData(zKA_Focus_Vob, MobInter);
        };
    };
};

далее идёт проверка в кондишион чего нибудь(предмета,навыка, или времени суток) и пляски с бубнами по вставке предметов в левую / правую руки героя.
Daedalus:
META
{
    Parser = GAME;
    Namespace = zKA_MOBSI;
};

instance :ITMI_RUNEBLANK_fake(C_ITEM)
{
    ITMI_RUNEBLANK();
    description = "ITMI_RUNEBLANK_fake";
};

const string RMAKER_CONDITION_ITMI_RUNEBLANK    =  "Нужен рунный камень!";
const string RMAKER_CONDITION_ITMI_PLIERS       =  "Нужны Щипцы!";

func int :RMAKER_CONDITION()
{
    Hlp_PrintConsole(Str_Format("RMAKER_CONDITION self = (%s %i)",self.name,self.id));

    if (Npc_IsPlayer(self))
    {
       
        if (!Npc_GetInvItem(hero,ITMI_PLIERS))
        {
            B_PrintMobsiFalse(RMAKER_CONDITION_ITMI_PLIERS);
            return false;
        };
       
        if (!Npc_GetInvItem(hero,ITMI_RUNEBLANK))
        {
            B_PrintMobsiFalse(RMAKER_CONDITION_ITMI_RUNEBLANK);
            return false;
        };
       
        Npc_RemoveFromSlot(self,"ZS_LEFTHAND",0);
        CreateInvItems(hero,ITMI_RUNEBLANK_fake,1);       
        Npc_PutInSlot(self,"ZS_LEFTHAND",ITMI_RUNEBLANK_fake,0);
       
        CreateInvItems(hero,ITMI_PLIERS,1);       
        Npc_RemoveInvItems(hero,ITMI_RUNEBLANK,1);       
    };
    return true;
};


func void :pc_makerune_end_info()
{
    if (Npc_GetInvItem(hero,ITMI_RUNEBLANK_fake))
    {
        Npc_RemoveInvItems(hero,ITMI_RUNEBLANK_fake,1);       
    };
    pc_makerune_end_info_Old();
};
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.408
Благодарности
3.237
Баллы
525
MW 7, предположим, ГГ стоит рядом с наковальней и сморит на неё (наковальня в фокусе). К наковальне подходит непись и начинает взаимодействие с ней. Если я правильно понял, как работает твой вариант, раскалённая заготовка в слот левой руки непися вставлена не будет. Или таки будет?
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
2.003
Благодарности
973
Баллы
295
раскалённая заготовка в слот левой руки непися вставлена не будет.
это всё надо будет прописывать в новом кондишионе. то есть учитывать требования для героя и прочих НПС и вставлять им заготовки.

или в zs_

Daedalus:
func void ZS_....()
{  
    ....  
    Npc_RemoveInvItems(self,ItMi_fake,Npc_HasItems(self,ItMi_fake));
    Npc_RemoveFromSlot(self,"ZS_RIGHTHAND",0);
   
    var c_item itm;     itm = Npc_GetSlotItem(self,"ZS_RIGHTHAND");
   
    Hlp_PrintConsole(Str_Format("ZS_RIGHTHAND(%s %i)  = %s",self.name,self.id, itm.name));
 
    if (Hlp_IsItem(itm, ItMi_fake) == TRUE)
    {
        CreateInvItems(self,ItMi_fake,1);
        Npc_PutInSlot(self,"ZS_RIGHTHAND",ItMi_fake,0);
    };
   
};
 
Последнее редактирование:

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
2.003
Благодарности
973
Баллы
295
если на проект потрачено значительное кол-вл времени то проще отказаться от UseWithItem вынеся вставки фейковых предметов в слоты руки:
  • для НПС в zs_ , что бы в конце/начале их тут же удалять:)
  • для героя в ConditionFunc

я к такому выводу пришёл просматривая скрипты сиквела :)


***

сначала идёт проверка на UseWithItem , а потом проверка по ConditionFunc
 
Последнее редактирование:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.408
Благодарности
3.237
Баллы
525
я к такому выводу пришёл просматривая скрипты сиквела
Кстати, в Сиквеле состояния неписей, занимающихся крафтингом, прописаны просто отвратительно. Не стоит брать их в качестве образца для подражания. ;)

Достоинство классического способа работы с предметами в слотах через теги в сценариях анимаций состоит в том, что вставку, удаление, замену предметов можно привязать к определённому моменту (кадру) анимации. Использованный в Сиквеле способ этого не подразумевает. Да, можно покостылить со скриптами и анимациями и добиться чего-то, похожего на работу классического способа. Но это уже будут костыли.

В том числе и поэтому мне и хотелось бы, чтобы новые возможности взаимодействия с объектами крафтинга работали бы только у ГГ, а остальные неписи взаимодействовали бы с ними, как обычно.
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
2.003
Благодарности
973
Баллы
295
Кстати, в Сиквеле состояния неписей, занимающихся крафтингом, прописаны просто отвратительно. Не стоит брать их в качестве образца для подражания. ;)
там есть здравые моменты. на мой взгляд Готика 2 писалась быстро и многие вещие были реализованы так как они реализованы в Готики 2 из соображение сделать побыстрее, потопорнее. в то время как с крипты Г1 и сиквела проработаны на более детальном уровне. ну это мне так показалось :)

чтобы новые возможности взаимодействия с объектами крафтинга работали бы только у ГГ
тогда на юнион надо что то сделать, что бы вместо проверки на предмет в инвентаре НПС вызывалась функция из скриптов которая будет возвращать движку true или false. а ты уже в рамках этой функции сделаешь проверки на то что это за объект, учтёшь предмет и пропишешь доп проверки и так далее.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.408
Благодарности
3.237
Баллы
525
на юнион надо что то сделать
Да. Я про это и писал. Кстати, возможно, проверка на наличие предмета в инвентаре производится только для персонажа под управлением игрока. Во всяком случае, если у неписей нужного предмета нет, то это не мешает им взаимодействовать с объектами. Нужный предмет всё равно появится в слоте руки.

Плагин должен работать так. При попытке взаимодействия с объектом вызывается скриптовая функция, которая отвечает движку, нужно ли проверять наличие предмета, прописанного в параметре UseWithItem, в инвентаре (TRUE) или нет (FALSE).
 
Последнее редактирование:
Сверху Снизу