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

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

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

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

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.339
Благодарности
3.183
Баллы
525
Как это исправить? Что делаю не правильно?

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

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.450
Благодарности
780
Баллы
375
Прописываю примерно в середине диалогов вот это:
Код:
AI_PlayAni(self,"T_MAGRUN_2_HEASHOOT");
Wld_PlayEffect("spellFX_INCOVATION_WHITE",self,self,0,0,0,FALSE);
Wld_PlayEffect("FX_EarthQuake",self,self,0,0,0,FALSE);
AI_PlayAni(self,"T_HEASHOOT_2_STAND");
Рассчитываю на то что НПС воспарит, и пока он будет висеть, сработают эффекты белой волны и землетрясения.
А получается, что когда диалоги только начинаются, эффект волны и землетрясения запускаются сразу! А в нужное время, когда НПС воспарит, эффектов этих не происходит.
Как это исправить? Что делаю не правильно?

Беовульф сделал верное замечание. Однако ты можешь обойти эту неприятную деталь.
Перед тем как должна проиграться анимация, вставь
Info_AddChoice(название диалога,"(продолжить)",название ветви диалога, которая будет проигрываться, тут свое название лепишь любое);
Вместо "продолжить" можешь вставить что-то, что подходит по контексту именно тебе, типа "наблюдать" и т.д.
Затем
func void название ветви диалога, которая будет проигрываться()
а ниже уже сама ветвь диалога с необходимыми тебе эффектами и дальнейшими репликами, например
Wld_PlayEffect("spellFX_Fear",VLK_456_Abuyin,VLK_456_Abuyin,0,0,0,FALSE);
Wld_PlayEffect("spellFX_Fear",Pir_5103_Maypole,Pir_5103_Maypole,0,0,0,FALSE);
};
Поскольку по сути начался новый диалог, то и эффекты проиграются как раз в нужном тебе моменте. Надеюсь, я понятно объяснил, уточняй что-то, если хочешь.
 

zarya

Участник форума
Регистрация
25 Сен 2011
Сообщения
105
Благодарности
4
Баллы
165
всем здрасте) давно не заходил, уже 26 страниц добавилось) форум живет) приятно...
____________________________________________________________________________________
додскажите плиз...
1) где искать статы (hp, str) разных тварей в скриптах, (story/npc/monster?)
2) как запаковать-компилировать скрипты, которые я чудом декомпилировал из мода возвращение? (что куда копировать и что нажимать? /имеется G-Sourcer V3.14, G-SourcerV2.40, G-VDFS, руководствовался этим https://worldofplayers.ru/threads/31930/ но запаковать обратно невыходит)
 

107-й

Участник форума
Регистрация
18 Дек 2011
Сообщения
59
Благодарности
3
Баллы
155
Подскажите пожалуйста, как Сделать чтобы НПС следовал за ГГ?
Прописываю в конце диалога
Код:
Npc_ExchangeRoutine(self,"FOLLOW");
Но НПС просто стоит.
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.450
Благодарности
780
Баллы
375
Подскажите пожалуйста, как Сделать чтобы НПС следовал за ГГ?
Прописываю в конце диалога
Код:
Npc_ExchangeRoutine(self,"FOLLOW");
Но НПС просто стоит.

Пропиши НПС в его файле скрипта
func void Rtn_Tot_457()
{
TA_Follow_Player(5,0,20,0,"TOT");
TA_Follow_Player(20,0,5,0,"TOT");
};
Вместо 457 - номер твоего персонажа конечно же.
И распорядок дня на TOT меняй.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.803
Баллы
995
zarya,
1) где искать статы (hp, str) разных тварей в скриптах, (story/npc/monster?)
Обычно тут: ..\PrjGOTHIC\Story\NPC\Monster


2) как запаковать-компилировать скрипты, которые я чудом декомпилировал из мода возвращение? (что куда копировать и что нажимать? /имеется G-Sourcer V3.14, G-SourcerV2.40, G-VDFS, руководствовался этим https://worldofplayers.ru/threads/31930/ но запаковать обратно невыходит)
Оно и не выйдет, при декомпиляции проекта в нем будет куча ошибок, которые тебе сначала придется поправить ручами в Сурсере, это при условии что ты разбираешься в работе скриптов игры и модов. Как все ошибки исправлены, запускаем компиляцию скриптов.
Далее, как получили обновленные Готик.дат и Оу-шник, берем прогу ГотикВДФ.ехе и с ее помощью упаковываем обратно все свое дело в игру...
Примерно где-то так, думаю. ::)
 

107-й

Участник форума
Регистрация
18 Дек 2011
Сообщения
59
Благодарности
3
Баллы
155
Нужно чтобы НПС экипировал моё оружие.
Прописываю в диалогах:
Код:
Npc_RemoveInvItems(self,ItMw_Drachenschneide,1);
EquipItem(self,ITMW_2H_ORCMACE_01);
Первое удаляет из инвентаря старое оружие, второе экипирует новое.
На деле получается, что старое оружие удаляется, а новое не экипируется.
Хотя когда смотрю в инвентарь НПС, новое оружие присутствует, и даже подсвечивается как экипированное.
И если заставить НПС агрится, то НПС не достаёт новое оружие, а просто использует кулаки.
Подскажите пожалуйста где косяк.
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.450
Благодарности
780
Баллы
375
Нужно чтобы НПС экипировал моё оружие.
Прописываю в диалогах:
Код:
Npc_RemoveInvItems(self,ItMw_Drachenschneide,1);
EquipItem(self,ITMW_2H_ORCMACE_01);
Первое удаляет из инвентаря старое оружие, второе экипирует новое.
На деле получается, что старое оружие удаляется, а новое не экипируется.
Хотя когда смотрю в инвентарь НПС, новое оружие присутствует, и даже подсвечивается как экипированное.
И если заставить НПС агрится, то НПС не достаёт новое оружие, а просто использует кулаки.
Подскажите пожалуйста где косяк.

Точно сказать не могу, попробуем методом тыка
Попробуй между этими строками вставить CreateInvItem(self,ItMW_2H_ORCMACE_01);
Если не поможет - поищи по ключевым словам на форуме, помнится, была у кого-то схожая проблема.
 

zarya

Участник форума
Регистрация
25 Сен 2011
Сообщения
105
Благодарности
4
Баллы
165
доброе утро/день.
Подскажите как сделать двуручник одноручником?
1) я попытался изменить в IT_Melee_weapons, но мне ошибки находит, что неправильно тут?
instance ITMW_TROLLHUMMER(C_Item)
{
name = "Молот Тролля";
mainflag = ITEM_KAT_NF;
flags = ITEM_1HD_AXE;
material = MAT_METAL;
value = 4500;
damageTotal = 170;
damagetype = DAM_BLUNT;
range = 110;
cond_atr[2] = ATR_STRENGTH;
cond_value[2] = 130;
visual = "ITMW_2H_MACE_TROLLHUMMER.3DS";
on_equip = equip_1h_veryheavy;
on_unequip = unequip_1h_veryheavy;

description = name;
text[1] = NAME_Damage;
count[1] = damageTotal;
text[2] = NAME_Str_needed;
count[2] = cond_value[2];
text[3] = NAME_RADIUS;
count[3] = range;
text[4] = NAME_TwoHanded;
text[5] = NAME_Value;
count[5] = value;
};
2) статы стандартного оружия прописаны в Tuning_Melee_Weapons и Tuning_Ranged_Weapons, но оружия мода там нет....возможно ли, что все статы прописаны (как в моем спойлере) только в IT_Melee_weapons и больше нигде?
 

НастасьСанна

Участник форума
Регистрация
6 Дек 2012
Сообщения
351
Благодарности
521
Баллы
325
Нужно чтобы НПС экипировал моё оружие.
...
Подскажите пожалуйста где косяк.
Косяк в скриптах Готики, EquipItem не позволяет экипировать оружие. Единственное, что имеем, - AI_EquipBestMeleeWeapon. Так что создаем в инвентаре ITMW_2H_ORCMACE_01 и уповаем на то, что у нпс нет ничего лучше.
Чтобы не уповать, можно почистить инвентарь от всего или сделать спец. инстанцию оружия. В этой спец. инстанции указываем, например, damage[0] = 9999; Реально этот урон наноситься не будет, а вот учитываться при выборе оружия - будет. Только строчку нужно прописать после damageTotal и damagetype.

доброе утро/день.
Подскажите как сделать двуручник одноручником?
1) я попытался изменить в IT_Melee_weapons, но мне ошибки находит, что неправильно тут?
Вместо ITEM_1HD_AXE пишем ITEM_AXE (см. файл Constants.d, там это все объявлено).
Функций equip_1h_veryheavy и unequip_1h_veryheavy, видимо, просто нет. Их нужно написать.
2) статы стандартного оружия прописаны в Tuning_Melee_Weapons и Tuning_Ranged_Weapons, но оружия мода там нет....возможно ли, что все статы прописаны (как в моем спойлере) только в IT_Melee_weapons и больше нигде?
Возможно, кто ж запретит.
 

zarya

Участник форума
Регистрация
25 Сен 2011
Сообщения
105
Благодарности
4
Баллы
165
Функции equip_1h_veryheavy и unequip_1h_veryheavy я скопировл с меча "орк-мясник"("ярость берсерка", ну тот, из пирамиды).
Значит переделать двуручник в одноручник в этом скрипте возможно, да? и с анимацией проблем не возникнет?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.228
Благодарности
6.208
Баллы
1.565
Функции equip_1h_veryheavy и unequip_1h_veryheavy я скопировл с меча "орк-мясник"("ярость берсерка", ну тот, из пирамиды).
Значит переделать двуручник в одноручник в этом скрипте возможно, да? и с анимацией проблем не возникнет?
А попробовать, не?
 

zarya

Участник форума
Регистрация
25 Сен 2011
Сообщения
105
Благодарности
4
Баллы
165
HELP please! невыходит ничего запаковать((((((((((((

1. G-Sourcer V3.14 открыть проект (указываю "666.gsc" из папки Gothic Projects/Sol666); действие-компилировать.
ошибок 0 вниманий 70....
и получаю в папке PrjGOTHIC (она рядом с 666.gsc) обновленные GOTHIC.dat и ou.bin (и возможно еще GOTHIC.gpc и Gothic.src) правильно?
2. Далее открываю VDFS вкладка builder: имя - указываю существующий Retorning.mod;
Root Path - папка PrjGOTHIC в которой Gothic.dat и ou.bin.
возле File(mask)(s) to include пишу *.* и жму + (не знаю зачем но так в примере написано https://worldofplayers.ru/threads/31930/); и жму Build Volume.
3. Получаю измененный Retorning.mod но он почему-то весит не 480мв а около 30..40 и конечно игра вылетает при загрузке сейвки или новой.
4. Что не так? (с файлом MENU.dat я ниче не делал)
 

107-й

Участник форума
Регистрация
18 Дек 2011
Сообщения
59
Благодарности
3
Баллы
155
Попробуй между этими строками вставить CreateInvItem(self,ItMW_2H_ORCMACE_01);
Получилось! Когда скрипт срабатывает, визуально ничего не меняется, т.е НПС опять стоит без оружия.
Но теперь когда НПС агрится, он достаёт молот!
Это уже нормально. Благодарю!
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.450
Благодарности
780
Баллы
375
Получилось! Когда скрипт срабатывает, визуально ничего не меняется, т.е НПС опять стоит без оружия.
Но теперь когда НПС агрится, он достаёт молот!
Это уже нормально. Благодарю!

Попробуй после
CreateInvItem(self,ItMW_2H_ORCMACE_01);
вставить
if(!Npc_HasEquippedMeleeWeapon(self))
{
AI_EquipBestMeleeWeapon(self);
};
 

107-й

Участник форума
Регистрация
18 Дек 2011
Сообщения
59
Благодарности
3
Баллы
155
Хелдар, Благодарю!
Теперь всё идеально работает:
Код:
Npc_RemoveInvItems(self,ItMw_Drachenschneide,1);
CreateInvItem(self,ITMW_2H_MACE_107);
if(!Npc_HasEquippedMeleeWeapon(self))
{
AI_EquipBestMeleeWeapon(self);
};
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.803
Баллы
995
zarya,
HELP please! невыходит ничего запаковать((((((((((((
Попробуй по-другому сделать.

1. Распакуй оригинальный мод файл в корень диска в новый каталог, например, newret
2. После распаковки, заменяем скрипты оригинала мода, своими свеже-скомпилеными Готик.дат и Оу-шником.
3. Затем, в корне диска создаем новый текстовый файл с таким содержимым:
Код:
[BEGINVDF]
Comment=
BaseDir=Х:\NewRet
VDFName=Х:\Program Files\JoWooD\Gothic II\Data\modvdf\Returning.mod
[FILES]
*.* -r
[EXCLUDE]
[INCLUDE]
[ENDVDF]
Важно, после последнего символа строки [ENDVDF], должен быть одбит один Ретурн(Ентер на клаве).
Где:
— BaseDir - путь до твоего распакованный мод файл;
— VDFName - путь и имя для создаваемого модфайла;
— Х, имя диска и пути до каталогов с которыми будет работать программа.

4. Прописал все в файле, сохраняем его и закрываем, после чего меняем расширение этого файла с *.txt на *.vm, и ассоциируем этот тип файла с программой ГотикВДФС.ехе, если этого нет.
5. Жмем по файлу и выбираем создать том, если в корне игры есть мод-файл то подтверждаем его замену.
6.Перед созданием открой оригинальный мод файл и глянь на дату и время создания тома, перепиши эти данные и перед начало сборки своего нового тома, пропиши их там где требуется.
7. Если мод-файл собран, бежим тестить в игру, через - Нью Гейм, разумеется без загрузки сохранок... :)
8. Все.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
Вообще-то можно обойтись и без перезаписывания оригинального тома Returning.mod, если сделать инкрементальный том, содержащий только изменённые файлы Gothic.dat и ou.bin. Но тогда надо сохранять его под другим именем, например, Gothic II\Data\modvdf\Returning666.mod. Но при этом тоже надо проверять, чтобы его дата и время создания были позже, чем у оригинального тома Returning.mod. А затем нужно подключить его, отредактировав содержимое файла Gothic II\System\Returning.ini:
[FILES]
vdf=Returning.mod Returning666.mod
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.339
Благодарности
3.183
Баллы
525
В дополнению к ответу Димуса. Нужно не забыть про двойной пробел между названиями томов. Если я не попутал чего. :)

Кстати, а как поведёт себя движок, если в ИНИшнике прописано больше томов, чем лежит в папке с игрой? Если, например, организовывать опциональный контент, то можно ли прописать в ИНИшнике полный набор томов, а устанавливать только те тома, которые нужны конкретному пользователю?
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
@ ElderGamer:
1. Ты прав, нельзя забывать про двойной пробел между названиями томов.
2. Стартёр v1.08k игнорирует указанные в инишнике несуществующие тома. Так же ведёт себя и стартёр v2.6f.
 
Сверху Снизу