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

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

Вопросы по скриптингу

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
  • Первое сообщение
  • #1
Прежде чем задавать вопросы, ознакомьтесь с документацией..
1) Читать онлайн
2) Архив с офлайн-версией(chm) во вложении
 

Вложения

  • Vam_tutor.rar
    171,6 KB · Просмотры: 574
Последнее редактирование модератором:

Lorddemonik

★★★★★
Редактор раздела
Регистрация
17 Дек 2011
Сообщения
1.113
Благодарности
581
Баллы
350
Где найти информацию о оружие(урон, сила, текстура) лазание в файле Tunning_melee_weapon не помогло
Ах да файл 'IT_Melee_weapons" отсутствует, думал из Ребаланса берет, но нет
Кстати, что означает вот эта милая строка, я конечно примерно понимаю, но хочется услышать проффесиональное мнение
VDF=ReBalance.mod Paths.mod Paths_1.4_f3.mod
 
Последнее редактирование:

Ziptar

Участник форума
Регистрация
13 Июл 2007
Сообщения
683
Благодарности
53
Баллы
200
Где найти информацию о оружие(урон, сила, текстура) лазание в файле Tunning_melee_weapon не помогло
Ах да файл 'IT_Melee_weapons" отсутствует, думал из Ребаланса берет, но нет
Кстати, что означает вот эта милая строка, я конечно примерно понимаю, но хочется услышать проффесиональное мнение
VDF=ReBalance.mod Paths.mod Paths_1.4_f3.mod
Проведи поиск по всем файлам (через соурсер офк) русскоязычного названия оружия, рано или поздно наткнёшься на инстанцию, остальные инстанции где-то рядом. Подробнее не подскажу - не имею ни одной готики заинсталленой под рукой, ни ребуса, ни их скриптов.
Строчка означает порядок загрузки .мод файлов. Сначала грузится ReBalance.mod, поверх него Paths.mod, и поверх них уже Paths_1.4_f3.mod. Каждый последующий файл имеет приоритет над предыдущим. Данная функция нужна сугубо для того, что бы накатывая патчи на модификации не заниматься бестолковой перепаковкой ресурсов каждый раз.

На счёт "берёт из ребаланса". С каждым последующим загруженным мод файлом скомпилированный файл скриптов (как и любой файл с совпадающим путём) заменяется полностью.

//Задумался: откуда я всё это знаю, если не написал ни одной, даже самой маленькой модификации к готикам?... Загадочно.
 
Последнее редактирование:

Lorddemonik

★★★★★
Редактор раздела
Регистрация
17 Дек 2011
Сообщения
1.113
Благодарности
581
Баллы
350
Как отключить деление опыта между напарниками?( отключать надо для каждого НПС, или в общем
В какой момент (начало игры, первый раз заход в локацию, переход в другую главу) обновляются характеристики мобов( изменил в Gothic.dat)
 
Последнее редактирование:

Alex1

Участник форума
Регистрация
8 Фев 2009
Сообщения
26
Благодарности
13
Баллы
160
файл 'IT_Melee_weapons" отсутствует
Он отсутствует под таким названием, но есть под другим. Так как работы над Paths_1.4_f3 шли на депомпилированных скриптах Путей 1.4, некоторые названия страниц изменились. Ищи оружие по названию и будет ссылка на страницу с его перечнем.

Как отключить деление опыта между напарниками?( отключать надо для каждого НПС, или в общем
В общем. Найди страницу с начислением опыта ГГ (по левелам) и смотри там деление пополам, если ГГ в группе с напарником.

PS Скриптов нет под рукой, так что ответы общие.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
На скрине баг.
Gothic2 2015-09-20 21-43-05-26.jpg
Заключается он в следующем. Если в момент смерти от возгорания ГГ движется вбок, то в состоянии смерти стрейфинг не сбрасывается, ГГ зацикливается в этом состоянии. Насколько я понимаю, подобный баг возможен не только для ГГ, но и для прочих неписей, способных умереть от возгорания. Прервать анимацию можно, например, используя в состоянии смерти функцию AI_StandupQuick, но... После использования этой функции движок автоматически применяет анимацию падения на спину, анимация падения на живот, если удар был нанесён в спину, станет невозможной.

Вопрос такой. Можно ли как-то зафиксировать нахождение в состоянии возгорания непосредственно перед смертью? Среди констант в скриптах есть такая:
const int BS_MOD_BURNING = 1 << 10;
Вроде бы, это оно и есть. Но я что-то не могу разобраться с этими побитовыми операциями. Можно ли использовать функцию Npc_GetBodyState для получения нужной информации о возгорании?

Или, может, у кого есть мысли, как вылечить подобный баг?
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Для возгорания вроде должна работать строчка:
ani ("S_FIRE_VICTIM" 1 "S_FIRE_VICTIM" 0.0 0.0 M. "HUM_FIREBALL_VICTIM_A01.ASC" F 1 49)
Может, попробовать ее записать так:
ani ("S_FIRE_VICTIM" 2 "" 0.0 0.0 M. "HUM_FIREBALL_VICTIM_A01.ASC" F 1 49)

По идее, должно перекрыть анимацию стрейфа первого слоя.
А так стрейф - штука странная.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Насколько я понял, имеется две разновидности возгорания, накладываемых движком. Одна из них действительно сопровождается проигрыванием соответствующей анимации. Но вот вторая разновидность сопровождается только визуальным эффектом горения и постепенным снижением полоски здоровья. Ступора при этом не наступает, ГГ и прочие неписи могут свободно двигаться.
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Значит, что-то не так с приоритетом стрейфа в самой логике анимаций движка, если прочие анимации первого слоя не могут "забороть" ту же анимацию первого слоя стрейфа. Получается тупиковый цикл анимации по логике.
Вспомнился косяк Готики 1, когда стрейф бодро работает в падении.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Возможно, дело в том, что при стрейфинге t-фаза анимации зациклена сама на себя, а движок о такой особенности забывает. Со стрейфингом связано несколько проблем. Например, при выполнении функции отскока AI_Dodge, если позади непися имеется препятствие, и ему некуда отпрыгнуть, движок предлагает ему альтернативу - движение вбок. После этого непись зацикливается в состоянии стрейфинга.

Собственно, копать проблему я начал с Г1. Там много глюков, связанных с возгоранием. Один из них таков: атакую шершня с дальней дистанции огненной стрелой, шершень получает разовый урон и загорается. После того, как его здоровье станет нулевым за счёт возгорания, шершень зацикливается в состоянии стрейфинга. Казалось бы, с какого перепугу тут стрейфинг? Однако, введение в состояние смерти функции очистки очереди ИИ Npc_ClearAIQueue убирает такой глюк у шершней. Видимо, в начале атаки создаётся очередь действий ИИ, в которой присутствует стрейфинг.
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Возможно, дело в том, что при стрейфинге t-фаза анимации зациклена сама на себя, а движок о такой особенности забывает.
Ну это специально сделано, чтобы стрейф был плавным, без остановок тушки. Ты можешь зациклить на s_run/s_walk и посмотреть, что из этого выйдет;)

Видимо, в начале атаки создаётся очередь действий ИИ, в которой присутствует стрейфинг.
Судя по всяким прочим косякам, что лезут из движка, всё может быть. Это надо опять же Киллеру и Кудеснику вопрос задавать, если у них есть возможность отследить логику работы стрейфа изнутри.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
ы можешь зациклить на s_run/s_walk и посмотреть, что из этого выйдет
В Г1 так и было. В оригинале. Для бега это уже изменено на вариант из Г2. А вот для шага оставлен родной вариант. Это позволяет, кстати, победить зацикливание при отскоке. Нужно просто перед отскоком перевести непися на шаг.

Это надо опять же Киллеру и Кудеснику вопрос задавать, если у них есть возможность отследить логику работы стрейфа изнутри.
Если парни поправят движковые косяки - это будет замечательно, но пока приходится искать другие пути. :)
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
В Г1 так и было.
Но не для боевых режимов.
Плюс для игрока вариант Г1 крайне неприятен в плане управления, т.к. задалбывают постоянные остановки тушки в конце фрейма. Для NPC еще сгодится, может.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Верно, спорить не буду. Но помимо плюсов, у данного подхода, как выясняется, есть и существенный минус. Пока не исправлен движок, во всяком случае. :)
 

MACTEPXau3

Участник форума
Регистрация
23 Май 2010
Сообщения
36
Благодарности
3
Баллы
150
Как написать функцию проверки предмета в инвентаре ГГ и запустить в ее игре? Или может можно вставить какой-нибудь VOB в спейсере, реагирующий на поднятие предмета и вызывающий эту функцию?
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Если правильно понял вопрос, нужно зафиксировать факт наличия предмета в инвентаре ГГ, например, чтобы сгенерировать запись в журнал или инициировать какое-то событие. Вариант первый - циклический триггер. Периодически, например, раз в секунду инвентарь ГГ проверяется на наличие данного предмета. Используется стандартная проверка if(Npc_HasItems(hero,ХХХХХХХ)). Вариант 2 - невидимый непись с активированным восприятием PERC_ASSESSTHEFT. Если ГГ в непосредственной близости от непися поднимет валяющийся предмет, у непися сработает восприятие, и будет вызвана соответствующая функция. Стандартная функция-обработчик - B_AssessTheft, но можно написать и свою функцию. Инстанция item будет соответствовать поднятому предмету, инстанция other - поднявшему предмет персонажу.
 

MACTEPXau3

Участник форума
Регистрация
23 Май 2010
Сообщения
36
Благодарности
3
Баллы
150
А как написать этот циклический триггер, периодически проверяющий инвентарь ГГ, можно образец кода? В игре такого кода я не встречал, чтобы его подсмотреть, а вариант с функцией восприятия мне не подходит. И еще вопрос, не будет ли этот тригер излишне перегружать игру, выполняясь каждую секунду?
 

Lorddemonik

★★★★★
Редактор раздела
Регистрация
17 Дек 2011
Сообщения
1.113
Благодарности
581
Баллы
350
А как написать этот циклический триггер, периодически проверяющий инвентарь ГГ, можно образец кода? В игре такого кода я не встречал, чтобы его подсмотреть, а вариант с функцией восприятия мне не подходит. И еще вопрос, не будет ли этот тригер излишне перегружать игру, выполняясь каждую секунду?
Мод Велая на Готику 2, там есть квест про сборку рун телепортации. Когда руну берешь сразу запись прыгает в дневник. Попробуй там подсмотри
 

Vlad_Torop

Участник форума
Регистрация
2 Май 2014
Сообщения
872
Благодарности
501
Баллы
245
А как написать этот циклический триггер, периодически проверяющий инвентарь ГГ, можно образец кода? В игре такого кода я не встречал, чтобы его подсмотреть, а вариант с функцией восприятия мне не подходит. И еще вопрос, не будет ли этот тригер излишне перегружать игру, выполняясь каждую секунду?
Здесь смотри
и здесь можешь глянуть
PS И не игнорируй поиск по сайту,зацикленные триггеры много где обсуждались.
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
Как заставить стражника, охраняющего склад рядом с лавкой Маттео (MIL_325_Miliz), периодически оборачиваться в сторону сундуков?

Дополнение от 26.09.2015:
К сожалению, это не поможет, т.к. сундуки на складе безымянные и ничейные.*wrong*
 
Последнее редактирование:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
А в чём основной смысл задумки? Нужно, чтобы он не стоял, как истукан, без движения, или нужно, чтобы он имел шанс "застукать" ГГ за вскрытием сундука?
 
Сверху Снизу