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

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

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

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

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.901
Благодарности
6.777
Баллы
1.625
да вроде так же
 

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.667
Баллы
305
Но если ландшафт не менялся, то все условия те же. А он зараза не прыгает.
 

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.667
Баллы
305
Нашел и исправил проблему. Миры были не причем.
 

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.667
Баллы
305
В Gil_Values задал свойства человеческой гильдии по аналогу с теми которые установлены в Готике 2. Там немного подкрутили параметры карабканья, скорее всего под движек. Теперь все отлично работает.
Код:
instance Gil_Values(C_GILVALUES)
{
    
    ...
    
    swim_time[GIL_HUMAN] = TIME_INFINITE;
    dive_time[GIL_HUMAN] = 30;
    water_depth_knee[GIL_HUMAN] = 65;
    water_depth_chest[GIL_HUMAN] = 140;
    step_height[GIL_HUMAN] = 60;
    jumplow_height[GIL_HUMAN] = 105;
    jumpmid_height[GIL_HUMAN] = 205;
    jumpup_height[GIL_HUMAN] = 200;
    slide_angle[GIL_HUMAN] = 50;
    disable_autoroll[GIL_HUMAN] = 0;
    surface_align[GIL_HUMAN] = 0;
    turn_speed[GIL_HUMAN] = 240;
    climb_heading_angle[GIL_HUMAN] = 50;
    climb_horiz_angle[GIL_HUMAN] = 50;
    climb_ground_angle[GIL_HUMAN] = 50;
    falldown_height[GIL_HUMAN] = 500;
    falldown_damage[GIL_HUMAN] = 20;
    fight_range_base[GIL_HUMAN] = 60;
    fight_range_fist[GIL_HUMAN] = 50;
    fight_range_g[GIL_HUMAN] = 100;
    
};
 

Goth_Man

Участник форума
Регистрация
27 Окт 2014
Сообщения
196
Благодарности
33
Баллы
190
Нашел и исправил проблему. Миры были не причем.
Я конечно моды не делаю, но часто сталкивался по ремонту всякой техники, когда сначала говорят вот столкну с проблемой ... n-ное количество постов, потом всем спасибо проблему решил и исчезает. А я сижу с такой же проблемой, а как её решить осталось загадкой. Зря только ветку форума читал, или это такая страшная тайна, а остальные кто наступит на те же грабли пусть сами разбираются.
Неуспел
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Из-за чего может пропадать строка Конец у НПС?
Daedalus:
INSTANCE DIA_Talas_EXIT(C_INFO)
{
    npc = BDT_7536_Talas;
    nr  = 999;
    condition    = DIA_Talas_EXIT_Condition;
    information    = DIA_Talas_EXIT_Info;
    permanent    = TRUE;
    description = Dialog_Ende;
};

FUNC int DIA_Talas_EXIT_Condition()
{
    return TRUE;
};

FUNC void DIA_Talas_EXIT_Info()
{
    AI_StopProcessInfos    (self);
};
В скрипте диалога нет конструкции и диалогов с использованием Info_ClearChoices и Info_AddChoice
Выглядит так.
1573618090276.png
Сам диалог
Daedalus:
INSTANCE DIA_Talas_suppliesmam (C_INFO)
{
   npc          = BDT_7536_Talas;
   nr           = 1;
   condition    = DIA_Talas_suppliesmam_Condition;
   information  = DIA_Talas_suppliesmam_Info;
   permanent    = FALSE;
   description    = "У меня есть все, что тебе нужно.";
};

FUNC int DIA_Talas_suppliesmam_Condition()
{
    if((Npc_KnowsInfo(other,DIA_Talas_supplies)) && (Npc_HasItems(other,ItFo_Bacon) >= 6) && (Npc_HasItems(other,ItFo_Bread) >= 5) && (Npc_HasItems(other,ItMw_1H_Mace_L_04) >= 1) && (Npc_HasItems(other,ItMw_2H_Axe_L_01) >= 2) && (Npc_HasItems(other,ItMi_Hammer) >= 2) && (Npc_HasItems(other,ItMi_Saw) >= 2) && (Npc_HasItems(other,ItLsTorch) >= 7))
    {
        return TRUE;
    };
};

FUNC void DIA_Talas_suppliesmam_Info()
{
    AI_Output (other, self ,"DIA_Talas_suppliesmam_15_00"); //У меня есть все, что тебе нужно.
    B_GiveInvItems_New(other,self,ItMw_1H_Mace_L_04,1,34);
    B_GiveInvItems_New(other,self,ItMw_2H_Axe_L_01,2,36);  
    B_GiveInvItems_New(other,self,ItMi_Hammer,2,38);  
    B_GiveInvItems_New(other,self,ItMi_Saw,2,40);  
    B_GiveInvItems_New(other,self,ItLsTorch,7,42);
    B_GiveInvItems_New(other,self,ItFo_Bacon,6,44);
    B_GiveInvItems_New(other,self,ItFo_Bread,5,46);
    AI_Output (self, other ,"DIA_Talas_suppliesmam_03_01"); //Очень хорошо.
    AI_Output (self, other ,"DIA_Talas_suppliesmam_03_02"); //Я передам это Брендику вместе с остальными вещами.
    AI_Output (self, other ,"DIA_Talas_suppliesmam_03_03"); //С твоей стороны - это все.
    Npc_RemoveInvItems(self,ItMw_1H_Mace_L_04,1);
    Npc_RemoveInvItems(self,ItMw_2H_Axe_L_01,2);
    Npc_RemoveInvItems(self,ItMi_Hammer,2);
    Npc_RemoveInvItems(self,ItMi_Saw,2);
    Npc_RemoveInvItems(self,ItLsTorch,7);
    Npc_RemoveInvItems(self,ItFo_Bacon,6);
    Npc_RemoveInvItems(self,ItFo_Bread,5);
    B_LogEntry(TOPIC_Artomine,"Я передал Таласу недостающие предметы.");
};
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.901
Благодарности
6.777
Баллы
1.625
N1kX, nr=999 еще где-нить есть у непися?
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Нет. Для изучения сам файл.
 

Вложения

  • DIA_BDT_7536_Talas.zip
    6,2 KB · Просмотры: 83

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.901
Благодарности
6.777
Баллы
1.625
N1kX, попробуй один из этих 2х:
 

Вложения

  • temp.zip
    12,2 KB · Просмотры: 69

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.224
Благодарности
3.454
Баллы
485
Пропадает при каком-либо действии или отсутствует вовсе? Напоминаю, что добавление новых диалогов требует начала новой игры.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Пропадает при каком-либо действии или отсутствует вовсе? Напоминаю, что добавление новых диалогов требует начала новой игры.
С этим проблем нет.

Пропадает, когда игрок собрал требуемые предметы. Если выбрать диалог торговли, потом закрыть торговый инвентарь, то строка появляется. Замечается уже не раз у игрока, когда строка Конец пропадает сама собой. Выявить причину не смог.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
Пропадает, когда игрок собрал требуемые предметы.
Опция окончания диалога исчезает стабильно или только иногда? Что будет, если игрок выбросит из инвентаря часть нужного барахла? Опция появится?


Экспериментирую с созданием нового заклинания. Визуальный эффект создан копированием существующего эффекта. Изменены названия инстанций и используемые pfx-эффекты. Однако, при проверке работы обнаружилось отсутствие реакции с поверхностью меша. Эффект не врезается в поверхность, а пролетает сквозь неё. От чего это может зависеть?

Daedalus:
instance SPELLFX_THUNDERBOLT(CFX_BASE_PROTO)
{
    visname_s = "MFX_Thunderebolt_INIT";
    emtrjmode_s = "FIXED";
    emtrjoriginnode = "ZS_RIGHTHAND";
    emtrjtargetnode = "BIP01 FIRE";
    emtrjloopmode_s = "NONE";
    emtrjeasefunc_s = "LINEAR";
    emactioncollstat_s = "COLLIDE CREATE";
    emactioncolldyn_s = "COLLIDE CREATEONCE";
    emfxcollstat_s = "spellFX_Thunderbolt_COLLIDE";
    emfxcolldyn_s = "spellFX_Thunderbolt_SENDPERCEPTION";
    emtrjtargetrange = 20;
    emtrjtargetelev = 0;
    emtrjdynupdatedelay = 20000;
};

instance SPELLFX_THUNDERBOLT_KEY_INIT(C_PARTICLEFXEMITKEY)
{
    visname_s = "MFX_Thunderbolt_INIT";
    scaleduration = 0.5;
};

instance SPELLFX_THUNDERBOLT_KEY_CAST(C_PARTICLEFXEMITKEY)
{
    visname_s = "MFX_Thunderbolt_CAST";
    emtrjmode_s = "TARGET";
    emtrjeasevel = 1400;
    sfxid = "MFX_Thunderbolt_Cast";
    emcheckcollision = 1;
};

instance SPELLFX_THUNDERBOLT_KEY_COLLIDE(C_PARTICLEFXEMITKEY)
{
    pfx_flygravity_s = "0 0.0002 0";
    emtrjeasevel = 1e-006;
    emcheckcollision = 0;
};

instance SPELLFX_THUNDERBOLT_COLLIDE(CFX_BASE_PROTO)
{
    visname_s = "MFX_Thunderbolt_Collide";
    visalpha = 1;
    emtrjmode_s = "FIXED";
    sfxid = "Torch_Enlight";
};

instance SPELLFX_THUNDERBOLT_SENDPERCEPTION(CFX_BASE_PROTO)
{
    visname_s = "MFX_Thunderbolt_Collide";
    visalpha = 1;
    emtrjmode_s = "FIXED";
    sfxid = "Torch_Enlight";
    sendassessmagic = 1;
};
Daedalus:
instance SPELLFX_CONCUSSIONBOLT(CFX_BASE_PROTO)
{
    visname_s = "MFX_ConcussionBolt_INIT";
    emtrjmode_s = "FIXED";
    emtrjoriginnode = "ZS_RIGHTHAND";
    emtrjtargetnode = "BIP01 FIRE";
    emtrjloopmode_s = "NONE";
    emtrjeasefunc_s = "LINEAR";
    emactioncollstat_s = "COLLIDE CREATE";
    emactioncolldyn_s = "COLLIDE CREATEONCE";
    emfxcollstat_s = "spellFX_ConcussionBolt_COLLIDE";
    emfxcolldyn_s = "spellFX_ConcussionBolt_SENDPERCEPTION";
    emtrjtargetrange = 20;
    emtrjtargetelev = 0;
    emtrjdynupdatedelay = 20000;
};

instance SPELLFX_CONCUSSIONBOLT_KEY_INIT(C_PARTICLEFXEMITKEY)
{
    visname_s = "MFX_ConcussionBolt_INIT";
    scaleduration = 0.5;
};

instance SPELLFX_CONCUSSIONBOLT_KEY_CAST(C_PARTICLEFXEMITKEY)
{
    visname_s = "MFX_ConcussionBolt_CAST";
    emtrjmode_s = "TARGET";
    emtrjeasevel = 1400;
    sfxid = "MFX_Thunderbolt_Cast";
    emcheckcollision = 1;
};

instance SPELLFX_CONCUSSIONBOLT_KEY_COLLIDE(C_PARTICLEFXEMITKEY)
{
    pfx_flygravity_s = "0 0.0002 0";
    emtrjeasevel = 1e-006;
    emcheckcollision = 0;
};

instance SPELLFX_CONCUSSIONBOLT_COLLIDE(CFX_BASE_PROTO)
{
    visname_s = "MFX_ConcussionBolt_Collide";
    visalpha = 1;
    emtrjmode_s = "FIXED";
    sfxid = "Torch_Enlight";
};

instance SPELLFX_CONCUSSIONBOLT_SENDPERCEPTION(CFX_BASE_PROTO)
{
    visname_s = "MFX_ConcussionBolt_Collide";
    visalpha = 1;
    emtrjmode_s = "FIXED";
    sfxid = "Torch_Enlight";
    sendassessmagic = 1;
};
 

Scarecrow

Участник форума
Регистрация
11 Авг 2014
Сообщения
163
Благодарности
85
Баллы
235
Подскажите пожалуйста, а по какой причине может не работать команда Npc_ExchangeRoutine?
Ерунда какая-то. Создал двух нпс, у одного работает, а у другого нет, причем маршрут один и тот же.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Подскажите пожалуйста, а по какой причине может не работать команда Npc_ExchangeRoutine?
Ерунда какая-то. Создал двух нпс, у одного работает, а у другого нет, причем маршрут один и тот же.
ID у созданных НПС разный? Как меняешь рутину?
Замечание Npc_ExchangeRoutine 100% меняет рутину у НПС с которым ты находишься в диалоге, для других НПС надо использовать связку Npc_ExchangeRoutine + AI_ContinueRoutine или просто функцию B_StartOtherRoutine, иначе, пока не уйдешь далеко от НПС или не поговоришь с ним, так и может выполнять свою старую рутину.
 

narutix

Участник форума
Регистрация
29 Июн 2011
Сообщения
99
Благодарности
7
Баллы
175
Всем форумчанам привет. Поделитесь пожалуйста кто может шрифтами готики 1 и 2 русскими. Некомпилированными.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
Вот архив с текстурами шрифтов из Г1 от Снежков. В Г2, вроде бы, нескомпилированные текстуры русских шрифтов не положили.
 

Вложения

  • Текстуры шрифтов Г1 от Snowball.7z
    162,2 KB · Просмотры: 72
Сверху Снизу