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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

Не стесняюсь спросить....

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.957
Благодарности
1.490
Баллы
465
Для начала стоит подробно описать то, что ты делал, а потом уже будет видно, где совершил ошибку.
 

Михаил Карсаков

Участник форума
Регистрация
17 Ноя 2014
Сообщения
85
Благодарности
2
Баллы
170
Для начала стоит подробно описать то, что ты делал, а потом уже будет видно, где совершил ошибку.
эх.. открыл готик соурс - декомпиляция готикдат - копирование из возвращение в г2 доспех - затем вставление . спросил у админов/людей которые разбираются в скриптах, сказали все правильно, но надо куда то КАКОЙ то ФАЙЛ кинуть, а я вот без понятия .
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.910
Благодарности
6.787
Баллы
1.625
Как я уже говорил, по мимо декомпиляции скриптов, нужно провести декомпиляцию моделей, все в том же сурсере. но шде и как найти эти файлы моделей, я не помню.
 

Михаил Карсаков

Участник форума
Регистрация
17 Ноя 2014
Сообщения
85
Благодарности
2
Баллы
170
Как сделать , что бы за босса давали героический бонус?
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.578
Благодарности
4.173
Баллы
915
На неконкретно заданный вопрос можно получить только неконкретный ответ:
изучить язык Daedalus, получить исходники скриптов мода, разобраться с механизмом выдачи героических бонусов и списком существ, за которые даются эти бонусы, и включить босса в этот список.
 

Михаил Карсаков

Участник форума
Регистрация
17 Ноя 2014
Сообщения
85
Благодарности
2
Баллы
170
На неконкретно заданный вопрос можно получить только неконкретный ответ:
изучить язык Daedalus, получить исходники скриптов мода, разобраться с механизмом выдачи героических бонусов и списком существ, за которые даются эти бонусы, и включить босса в этот список.
ага, очень приятно

На неконкретно заданный вопрос можно получить только неконкретный ответ:
изучить язык Daedalus, получить исходники скриптов мода, разобраться с механизмом выдачи героических бонусов и списком существ, за которые даются эти бонусы, и включить босса в этот список.
я разве могу по другому спросить? мне сказали за это отвечает строчка aivar , но там их 4 я не знаю
так мне человек опытный сказал, скопировать из возвращения(
 
Последнее редактирование модератором:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.578
Благодарности
4.173
Баллы
915
Вот теперь появилась конкретика:
в "Возвращении" и модах на его основе используются 2 переменных из массива aivar[]:
Код:
const int AIV_BONUSLP = 94;
const int AIV_BONUSLPGIVEN = 95;
Как видно из названия, первая переменная служит для включения существа в список бонусных, например, бандита Ворона:
Код:
instance BDT_1090_Addon_Raven(Npc_Default)
{
    name[0] = "Равен";
    guild = GIL_BDT;
    id = 1090;
    voice = 10;
    flags = 0;
    npcType = npctype_main;
    level = 100;
    attribute[ATR_STRENGTH] = 150;
    attribute[ATR_DEXTERITY] = 200;
    attribute[ATR_MANA] = 1000;
    attribute[ATR_MANA_MAX] = 666666;
    attribute[ATR_HITPOINTS] = 1500;
    attribute[ATR_HITPOINTS_MAX] = 1500;
    aivar[AIV_IgnoresArmor] = TRUE;
    aivar[AIV_EnemyOverride] = TRUE;
    aivar[AIV_BONUSLP] = TRUE;
    fight_tactic = FAI_HUMAN_MASTER;
    EquipItem(self,ItMw_BeliarWeapon_Raven);
    B_CreateAmbientInv(self);
    CreateInvItems(self,ItMi_Addon_Stone_01,1);
    CreateInvItems(self,ItMi_Addon_Stone_02,1);
    CreateInvItems(self,ItMi_Addon_Stone_03,1);
    CreateInvItems(self,ItMi_Addon_Stone_04,1);
    CreateInvItems(self,ItMi_Addon_Stone_05,1);
    CreateInvItems(self,itmi_goldringraven,1);
    CreateInvItems(self,ItRi_Dex_Strg_01,1);
    B_SetNpcVisual(self,MALE,"Hum_Head_Thief",Face_N_Raven,BodyTex_N,itar_ravenarmor_addon);
    Mdl_SetModelFatness(self,0);
    Mdl_ApplyOverlayMds(self,"Humans_Arrogance.mds");
    B_GiveNpcTalents(self);
    B_SetFightSkills(self,100);
    daily_routine = Rtn_Start_1090;
};
а вторая используется в функциях обработки героических бонусов и указывает, получен ли этот бонус. Если ты хочешь сделать свой мод на основе "Возвращения", то этой информации будет достаточно.
 

Михаил Карсаков

Участник форума
Регистрация
17 Ноя 2014
Сообщения
85
Благодарности
2
Баллы
170
Вот теперь появилась конкретика:
в "Возвращении" и модах на его основе используются 2 переменных из массива aivar[]:
Код:
const int AIV_BONUSLP = 94;
const int AIV_BONUSLPGIVEN = 95;
Как видно из названия, первая переменная служит для включения существа в список бонусных, например, бандита Ворона:
Код:
instance BDT_1090_Addon_Raven(Npc_Default)
{
    name[0] = "Равен";
    guild = GIL_BDT;
    id = 1090;
    voice = 10;
    flags = 0;
    npcType = npctype_main;
    level = 100;
    attribute[ATR_STRENGTH] = 150;
    attribute[ATR_DEXTERITY] = 200;
    attribute[ATR_MANA] = 1000;
    attribute[ATR_MANA_MAX] = 666666;
    attribute[ATR_HITPOINTS] = 1500;
    attribute[ATR_HITPOINTS_MAX] = 1500;
    aivar[AIV_IgnoresArmor] = TRUE;
    aivar[AIV_EnemyOverride] = TRUE;
    aivar[AIV_BONUSLP] = TRUE;
    fight_tactic = FAI_HUMAN_MASTER;
    EquipItem(self,ItMw_BeliarWeapon_Raven);
    B_CreateAmbientInv(self);
    CreateInvItems(self,ItMi_Addon_Stone_01,1);
    CreateInvItems(self,ItMi_Addon_Stone_02,1);
    CreateInvItems(self,ItMi_Addon_Stone_03,1);
    CreateInvItems(self,ItMi_Addon_Stone_04,1);
    CreateInvItems(self,ItMi_Addon_Stone_05,1);
    CreateInvItems(self,itmi_goldringraven,1);
    CreateInvItems(self,ItRi_Dex_Strg_01,1);
    B_SetNpcVisual(self,MALE,"Hum_Head_Thief",Face_N_Raven,BodyTex_N,itar_ravenarmor_addon);
    Mdl_SetModelFatness(self,0);
    Mdl_ApplyOverlayMds(self,"Humans_Arrogance.mds");
    B_GiveNpcTalents(self);
    B_SetFightSkills(self,100);
    daily_routine = Rtn_Start_1090;
};
а вторая используется в функциях обработки героических бонусов и указывает, получен ли этот бонус. Если ты хочешь сделать свой мод на основе "Возвращения", то этой информации будет достаточно.
я точно не понял, как сделать, что бы силу/жизнь/ловку/ману дали?
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.578
Благодарности
4.173
Баллы
915
@Михаил Карсаков:
Если не понял, тогда изучи алгоритмы работы функций, отвечающих за выдачу героических бонусов. Если есть декомпилированные скрипты "Возвращения", то можно без проблем найти эти функции, запустив поиск по обращению к переменным aivar[94] и aivar[95], т.к. при декомпиляции GothicSourcer распознаёт имена только стандартных элементов массива aivar[], входящего в состав класса C_Npc.

Вопрос к скриптерам: кто-нибудь пробовал добавлять в файлы NamesGothic1.dsc и NamesGothic2.dsc имена используемых в модах нестандартных элементов массива aivar[]?
Проверено: Gothic Sourcer игнорирует эти имена, даже если они были добавлены в файл NamesGothic2.dsc (проверял на декомпиляции скриптов неофициального патча v1.12.9).
 
Последнее редактирование:

Михаил Карсаков

Участник форума
Регистрация
17 Ноя 2014
Сообщения
85
Благодарности
2
Баллы
170
@Михаил Карсаков:
Если не понял, тогда изучи алгоритмы работы функций, отвечающих за выдачу героических бонусов. Если есть декомпилированные скрипты "Возвращения", то можно без проблем найти эти функции, запустив поиск по обращению к переменным aivar[94] и aivar[95], т.к. при декомпиляции GothicSourcer распознаёт имена только стандартных элементов массива aivar[], входящего в состав класса C_Npc.

Вопрос к скриптерам: кто-нибудь пробовал добавлять в файлы NamesGothic1.dsc и NamesGothic2.dsc имена используемых в модах нестандартных элементов массива aivar[]?
у меня gothic mods , но там нету ничего из возвращения или ребаланса, но запускаются возвращение и ребаланс
 

Михаил Карсаков

Участник форума
Регистрация
17 Ноя 2014
Сообщения
85
Благодарности
2
Баллы
170

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
@Михаил Карсаков:
Если не понял, тогда изучи алгоритмы работы функций, отвечающих за выдачу героических бонусов. Если есть декомпилированные скрипты "Возвращения", то можно без проблем найти эти функции, запустив поиск по обращению к переменным aivar[94] и aivar[95], т.к. при декомпиляции GothicSourcer распознаёт имена только стандартных элементов массива aivar[], входящего в состав класса C_Npc.

Вопрос к скриптерам: кто-нибудь пробовал добавлять в файлы NamesGothic1.dsc и NamesGothic2.dsc имена используемых в модах нестандартных элементов массива aivar[]?
Добавляй сколько угодно.
Вообще зачем вы сорсером компилите? Компильте игрой.
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.049
Благодарности
1.170
Баллы
340

Tery

Участник форума
Регистрация
8 Ноя 2013
Сообщения
6
Благодарности
1
Баллы
150
Снова всем привет ::)
До сих пор мучает вопрос регенерации хп (таймер уже не принципиален). И вроде бы тут всё правильно, но по факту нет. Реген продолжает бесконечно работать, хотя должен останавливаться, восстановив ровно половину хп. Что тут не так, подскажите, пожалуйста.
Код:
func void UseItPo_REGEN_HP()
{
    if(self.attribute[ATR_HITPOINTS] < self.attribute[ATR_HITPOINTS_MAX] / 2)
    {
        self.attribute[ATR_REGENERATEHP] = 1;
    }
    else if(self.attribute[ATR_HITPOINTS] > self.attribute[ATR_HITPOINTS_MAX] / 2)
    {
        self.attribute[ATR_REGENERATEHP] = 0;
    };
};
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Снова всем привет ::)
До сих пор мучает вопрос регенерации хп (таймер уже не принципиален). И вроде бы тут всё правильно, но по факту нет. Реген продолжает бесконечно работать, хотя должен останавливаться, восстановив ровно половину хп. Что тут не так, подскажите, пожалуйста.
Код:
func void UseItPo_REGEN_HP()
{
    if(self.attribute[ATR_HITPOINTS] < self.attribute[ATR_HITPOINTS_MAX] / 2)
    {
        self.attribute[ATR_REGENERATEHP] = 1;
    }
    else if(self.attribute[ATR_HITPOINTS] > self.attribute[ATR_HITPOINTS_MAX] / 2)
    {
        self.attribute[ATR_REGENERATEHP] = 0;
    };
};
а как он остановится то? Игра вызывает функцию один раз, и срабатывает первое условие, а когда нужно выполнить другое условия эта функция уже не выполняется, ибо в цикл вешать нужно.

Вот пример тебе, аивар юзай который свободный, если 90й занят.

PHP:
func void UseItPo_REGEN_HP()
{
    self.aivar[90] = 1;
};

func void GLOBAL_CYCLE()
{
    if(self.attribute[ATR_HITPOINTS] < self.attribute[ATR_HITPOINTS_MAX] / 2 && self.aivar[90])
    {
        self.attribute[ATR_HITPOINTS] += 1;
    }
    else if(self.attribute[ATR_HITPOINTS] > self.attribute[ATR_HITPOINTS_MAX] / 2 && self.aivar[90])
    {
      
        self.aivar[90] = 0;
    };
};

Только тут наверное будут непонятки когда будут другие нпс пить этой зелье, и self я бы поменял на hero, а лучше на var C_NPC her; her = Hlp_GetNpc(PC_Hero);
 
Последнее редактирование:

Михаил Карсаков

Участник форума
Регистрация
17 Ноя 2014
Сообщения
85
Благодарности
2
Баллы
170
а как он остановится то? Игра вызывает функцию один раз, и срабатывает первое условие, а когда нужно выполнить другое условия эта функция уже не выполняется, ибо в цикл вешать нужно.

Вот пример тебе, аивар юзай который свободный, если 90й занят.

PHP:
func void UseItPo_REGEN_HP()
{
    self.aivar[90] = 1;
};

func void GLOBAL_CYCLE()
{
    if(self.attribute[ATR_HITPOINTS] < self.attribute[ATR_HITPOINTS_MAX] / 2 && self.aivar[90])
    {
        self.attribute[ATR_HITPOINTS] += 1;
    }
    else if(self.attribute[ATR_HITPOINTS] > self.attribute[ATR_HITPOINTS_MAX] / 2 && self.aivar[90])
    {
     

        self.aivar[90] = 0;
    };
};

Только тут наверное будут непонятки когда будут другие нпс пить этой зелье, и self я бы поменял на hero, а лучше на var C_NPC her; her = Hlp_GetNpc(PC_Hero);

скажите мне пожалуйста, как заюзать бонус за нипа и куда айвар и какой надо вводить? а то я вроде прописываю, но не выходит .-.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.578
Благодарности
4.173
Баллы
915
А теперь максимально подробно описывай свои действия: c помощью GothicVDFS распаковал скрипты из тома мода (название тома - в студию), с помощью GothicSourcer декомпилировал их, затем внёс в них свои изменения (названия скриптов и код изменений - в студию), скомпилировал скрипты, с помощью GothicVDFS запаковал изменённые скрипты в том мода, удалил dmp файл (если не установлен SystemPack) и запустил мод.
 
Последнее редактирование:

Михаил Карсаков

Участник форума
Регистрация
17 Ноя 2014
Сообщения
85
Благодарности
2
Баллы
170
А теперь максимально подробно описывай свои действия: c помощью GothicVDFS распаковал скрипты из тома мода (название тома - в студию), с помощью GothicSourcer декомпилировал их, затем внёс в них свои изменения (названия скриптов и код изменений - в студию), скомпилировал скрипты, с помощью GothicVDFS запаковал изменённые скрипты в том мода, удалил dmp файл (если не установлен SystemPack) и запустил мод.
хы.. а я даж не знаю, что такое gothicvdfs.
 
Сверху Снизу