PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : G1: Исправляем ошибки.



Seiten : [1] 2 3

ElderGamer
26.08.2011, 08:49
Так получилось, что я сейчас занимаюсь исправлением ошибок в скриптах Готики. Ошибок, надо сказать, там предостаточно. По ходу дела у меня появляется масса вопросов. Не только технических. Иногда требуется решить, как будет правильно с точки зрения логики происходящего. Надеюсь на вашу помощь и советы.

Для начала хотелось бы обсудить такой момент. Шакал и Бладвин требуют деньги за защиту у рудокопов и новичков. Но изначально в условии их диалогов стоит первая и вторая глава (if (Kapitel <= 2)), то есть, они могут "наехать" и на героя, ставшего призраком, магом и даже стражником.

На первый взгляд, нужно запретить им требовать деньги, если ГГ уже вступил в какой-либо лагерь. Но не подразумевалось ли создателями игры изначально, что стражники подмяли под себя ещё и призраков? И требуют деньги за защиту не только с рудокопов, но и с них? :dnuhr:


Добавлено:
В результате работы по исправлению ошибок появились следующие проекты:

Gothic Mod Fix Beta (http://forum.worldofplayers.de/forum/threads/1070308-G1-MOD-Gothic-Mod-Fix-Beta)
Gothic 1 Mod Models (http://forum.worldofplayers.de/forum/threads/1138874-G1-MOD-Gothic-1-Mod-Models)

Olor1n
26.08.2011, 12:50
Вряд ли Диего позволил бы обирать всех подряд, наверняка сам договорился бы об условиях такого "подминания", чтобы его людей не шмонали.

Всё-таки как я понимаю, не Шакал и Бладвин защищают рудокопов, а именно призраки, а деньги за защиту собирают они вдвоём.

ElderGamer
26.08.2011, 18:24
Отношения между стражниками и призраками странные, а распределение ролей - хитрое. Большинство персонажей, имеющих влияние во внешнем кольце СЛ, - это призраки. Они торгуют или просто нихрена не делают. А стражник Флетчер, также собирающий дань с рудокопов, стонет, что ему приходится стоять на посту. :D

Скорее всего, конечно, дань должна собираться только с рудокопов и новичков-нейтралов. §kratz

Shifroval
26.08.2011, 19:44
Неужели кто то взялся за фикс Г1? Главное довести дело хотя бы до первого патча, а там уже по накатанной как со скриптпатчем к Г2 будет..наверное.

Руду стражники просят у ГГ как у новичка и обращаясь к нему как к пустому месту(хотя Шакал добрый), объясняют правила и пр. Сомневаюсь, что стражники так же будут общаться с призраками, ведь все люди Гомеза приветствуют друг друга при встрече(За Гомеза!). Кстати ещё одна фича, которой больше нет в играх Пираний. Пустячок, а приятно, когда тебя ценят и приветствуют.
Тем более что призрак уж наверняка знает всё о лагере, ведь призраков назначает Гомез лично. Мне кажется логичным, если внутри СЛ по вертикали власти не будет никаких подобных недопониманий. Отчасти это же зона, тут всё по понятиям.

А у Бладвина тем более стартует квест с Гримом, если не заплатить руду. Или квест не начнётся, если ГГ уже призрак или принадлежит другом лагерю?

Wolfgar93
27.08.2011, 13:52
Я уже довольно давно работаю над исправлением ошибок к Г1.
http://forum.worldofplayers.de/forum/showthread.php?t=1000287
http://forum.worldofplayers.de/forum/showthread.php?t=838708
+какие-то свои наработки. Подробное заполнение мира чтобы исчезли пустоты.

ElderGamer
27.08.2011, 14:33
Неужели кто то взялся за фикс Г1?

Ага! Но, по иронии судьбы, взялся за это человек, который ещё пару месяцев тому назад о готическом моддинге знал только то, что он, моддинг, существует. А вокруг ведь есть немало камрадов, которые знают устройство Готики, как свои пять пальцев. :D

Ну да ладно. Даже моих нубских знаний хватает чтобы исправить в скриптах Готики множество ошибок. В основном, это мелкие ошибки. Пока мелкие, но по ходу дела я учусь. На данный момент исправлено более сотни текстовых ошибок и несколько десятков ошибок посерьёзнее. Спасибо камраду Fritz, который поделился со мной своими материалами по имеющимся ошибкам и методам их исправления.


Главное довести дело хотя бы до первого патча, а там уже по накатанной как со скриптпатчем к Г2 будет..наверное.

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


А у Бладвина тем более стартует квест с Гримом, если не заплатить руду. Или квест не начнётся, если ГГ уже призрак или принадлежит другом лагерю?

В том то и дело, что начнётся. Но это скоро будет исправлено. :)


Я уже довольно давно работаю над исправлением ошибок к Г1.

Опытом поделишься? §wink



Вот ещё вопрос для обсуждения. В книге "Шестой круг магии", которая появляется в продаже уже в третьей главе, есть упоминание Уризеля: "Вряд ли сохранились хоть какие-то записи о руне, несущей силы УРИЗЕЛЯ. Известно только, что силы эти даны Бельджаром." На мой взгляд, это неправильно.

Как лучше это исправить? Можно изъять эту книгу из продажи в третьей главе, добавив её в ассортимент товаров Ксардаса. Можно как-то изменить текст книги, убрав упоминание Уризеля. Или, может быть, есть другое решение? :dnuhr:

Wolfgar93
27.08.2011, 14:42
Всегда готов помочь. Сам мечтаю доработать Г1. С радостью)

ElderGamer
27.08.2011, 15:00
ОК. Расскажи, как ты сделал совмещение одинаковых предметов в инвентаре в один слот и разблокировал анимацию вертела? А ещё, как убрал повторяющуюся фразу Кор Ангара?

Wolfgar93
27.08.2011, 15:55
Вот эти файлы должны возвратить анимацию вертела. Извлечь в корневую папку.
http://upload.worldofplayers.de/files7/Vertel.zip

Ozric
27.08.2011, 16:22
Но для этого нужно, чтобы к делу подключились грамотные скриптеры, графики, моделлеры и специалисты по звуку.

а что там не то со звуком-то?

ElderGamer
27.08.2011, 18:51
@Wolfgar93

Спасибо, попробую. :)


@Ozric

Некоторые ошибки содержатся и в звуковых файлах игры. Например, ГГ говорит Лестеру в горном форте: "Они хотят встретиться с тобой и с Лестером. Там же, где и всегда." Должно быть, конечно же, "с Горном", а не "с Лестером". Полагаю, специалисту под силу вырезать нужный фрагмент из другой фразы ГГ, вставить его на нужное место и замаскировать переходы. :dnuhr:

Wolfgar93
27.08.2011, 19:01
@Ozric

Некоторые ошибки содержатся и в звуковых файлах игры. Например, ГГ говорит Лестеру в горном форте: "Они хотят встретиться с тобой и с Лестером. Там же, где и всегда." Должно быть, конечно же, "с Горном", а не "с Лестером". Полагаю, специалисту под силу вырезать нужный фрагмент из другой фразы ГГ, вставить его на нужное место и замаскировать переходы. :dnuhr:
Это уже решено в каком-то патче...он есть у меня в наработках.

Ozric
27.08.2011, 21:29
Полагаю, специалисту под силу вырезать нужный фрагмент из другой фразы ГГ, вставить его на нужное место и замаскировать переходы. :dnuhr:

технически это возможно, при наличии нужной фразы в другом фрагменте

Shifroval
27.08.2011, 23:15
Вот ещё вопрос для обсуждения. В книге "Шестой круг магии", которая появляется в продаже уже в третьей главе, есть упоминание Уризеля: "Вряд ли сохранились хоть какие-то записи о руне, несущей силы УРИЗЕЛЯ. Известно только, что силы эти даны Бельджаром." На мой взгляд, это неправильно.

Как лучше это исправить? Можно изъять эту книгу из продажи в третьей главе, добавив её в ассортимент товаров Ксардаса. Можно как-то изменить текст книги, убрав упоминание Уризеля. Или, может быть, есть другое решение? :dnuhr:
Логически да, ведь это не то что спойлер, а баг уровня "продавать игроку вещи из будущего", ну или продавать ему квестовые вещи.
С другой стороны, тому кто играет в 1й раз неизвестно что такое Уризель.
Ещё про Уризель могу сказать, что можно его раздвоить. Когда Ксардас берёт посмотреть меч, он его берёт к себе в инвентарь, но диалог не закрывается сразу и можно зайти в торговлю и купить его. А потом выйти и он снова отдаст Уризель.

А у Лестера в форте ещё один баг есть. Он отвечает ГГ не той фразой, а фразой про мудрость вроде бы. А ГГ спрашивал про встречу или что то такое.

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

Wolfgar93
27.08.2011, 23:20
Вот думаю стоит ли как то пытаться фиксить баги самого меша мира, там же и глючный пропадающий лес, и колонна.. Но в таком случае нужно будет в патч включать и сам меш.
Я сейчас этим занимаюсь. Работаю над Г1 в общем. Скрипты, правка мира, анимаций.

ElderGamer
28.08.2011, 18:50
Логически да, ведь это не то что спойлер, а баг уровня "продавать игроку вещи из будущего", ну или продавать ему квестовые вещи.
С другой стороны, тому кто играет в 1й раз неизвестно что такое Уризель.

Тут ведь еще такой вопрос: а кто писал эту книгу? Он ведь должен был знать, легенду об Уризеле и быть, при этом, достаточно продвинутым магом. Можно допустить, конечно, что в магических кругах многие знали древние легенды. Сатурас, вон, от книги не отрывается. :dnuhr:

Но шестому Кругу в колонии учит только Ксардас. Может, действительно сделать так, чтобы эту книгу продавал только он?


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

Думаю, это легко исправить. Нужно просто в определённый момент изъять меч из инвентаря Ксардаса. Да и сам процесс передачи нужно подправить, чтобы появлялись сообщения "Отдан 1 предмет", "Получен 1 предмет".


А у Лестера в форте ещё один баг есть. Он отвечает ГГ не той фразой, а фразой про мудрость вроде бы. А ГГ спрашивал про встречу или что то такое.

В немецком варианте приблизительно такой же смысл всего диалога, но в нашей версии, видимо, из-за двойного перевода, получилось очень криво. Без правки озвучки ничего не сделаешь. :(


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

Такие попытки уже предпринимались, как я понимаю. В незаконченном патче от камрада Fritz и KO есть какие-то исправления игрового мира. Надеюсь, он сам расскажет более подробно. ;)

Shifroval
28.08.2011, 19:05
Тут ведь еще такой вопрос: а кто писал эту книгу? Он ведь должен был знать, легенду об Уризеле и быть, при этом, достаточно продвинутым магом. Можно допустить, конечно, что в магических кругах многие знали древние легенды. Сатурас, вон, от книги не отрывается. :dnuhr:

Но шестому Кругу в колонии учит только Ксардас. Может, действительно сделать так, чтобы эту книгу продавал только он?
Можно конечно, но вообще..хотя нет, наверное лучше пусть он продаёт.

Ещё навскидку баги.
- Квест Болотного лагеря про траву и логово бандитов у Нового лагеря, раньше помню писали что при определённом условии его завершить невозможно. То ли нужно до какого то квеста его сделать, то ли не нужно заранее соваться в эту пещеру..
- И ещё при игре за Старый лагерь(за болотников не помню), после изгнания из лагеря, Кронос может выдать квест про доставку письма Корристо, но я точно помню что это квест только для людей из НЛ! Он ещё амулет даёт, который даст ГГ проход в лагерь.
- На площади Болотного лагеря внезапно появляется слово "Пошли!" около того послушника, что сопровождает к Альманаху. Каждый раз когда проходишь через это место, слово появляется.
- Баг с выдачей награды у Ю'бериона, он всегда даёт простую награду даже члену Братства, а должен говорить что ГГ состоит в Братстве и потому вроде бы вообще не даёт ничего..кажется.

Ozric
28.08.2011, 19:30
- На площади Болотного лагеря внезапно появляется слово "Пошли!" около того послушника, что сопровождает к Альманаху. Каждый раз когда проходишь через это место, слово появляется.

Скорей должно быть - "Иди".
Это голос Спящего, звучащий в голове ГГ.

Не помню уже, откуда знаю. Наверное сам Спящий и нашептал :rolleyes:

ElderGamer
28.08.2011, 19:43
@Shifroval

Да, всё это либо уже исправлено, либо стоит в очереди на исправление. :)

ukur
29.08.2011, 11:22
Скорей должно быть - "Иди".
Это голос Спящего, звучащий в голове ГГ.

Не помню уже, откуда знаю. Наверное сам Спящий и нашептал :rolleyes:
Давно сборку запускал? :))

Ozric
29.08.2011, 11:48
Давно сборку запускал?

Блин, попалился ...

А там "Иди" или "Уходи"?
А то смысл то разный получается

ukur
29.08.2011, 11:50
Блин, попалился ...

А там "Иди" или "Уходи"?
А то смысл то разный получается
Уже давно "Иди" :)

Ozric
29.08.2011, 12:01
я правильно понимаю, что Спящий таким образом поощряет продвижение ГГ по сюжету?

ведь они по идее антагонисты

PontifEx
30.08.2011, 02:04
Кстати о птичках: траблы с получением тяжелого доспеха послушника (который с наплечником) уже фиксились? Насколько я помню, в Готике без модов его до сих пор легально получить нельзя. :(

ElderGamer
30.08.2011, 05:37
А в чём заключается трабла? Я за болотников в последний раз играл уже давно, так что не помню. Его тоже нельзя получить, как и тяжёлый доспех стражников? Я этого пока не фиксил. Нужно посмотреть ещё, что там получается с балансом.

Новая порция вопросов.

1. Письмо из внешнего мира для магов Огня, которое поручается передать нашему безымянному герою, остаётся в инвентаре у Мильтена. Может быть, правильнее будет переложить его распечатанный вариант в инвентарь Корристо? §kratz

2. После разговора с Торусом о приёме в стражу и выбора пути магии Корристо встаёт в позицию для беседы с ГГ в холле дома магов. После этого можно сказать Торусу, что ГГ, мол, передумал и хочет стать стражником. Торус принимает ГГ в стражу со всеми сопутствующими плюшками (доспех, оружие), но возможность подойти к Корристо и стать магом сохраняется. На первый взгляд, это недоработка скрипта. Но может быть, это такая задумка разработчиков, что ГГ может стать магом, побыв немного в роли стражника? :dnuhr:

Dimus
30.08.2011, 08:04
Кстати о птичках: траблы с получением тяжелого доспеха послушника (который с наплечником) уже фиксились? Насколько я помню, в Готике без модов его до сих пор легально получить нельзя.:(
Можно, но только в 3-й главе. Хотя большинство игроков предпочитает стать храмовником ещё во 2-й главе. В моде TLVH условие отказа Намиба в выдаче доспеха изменено с Kapitel < 3 на hero.level < 8 и ликвидирована возможность повторного получения этого доспеха.


1. Письмо из внешнего мира для магов Огня, которое поручается передать нашему безымянному герою, остаётся в инвентаре у Мильтена. Может быть, правильнее будет переложить его распечатанный вариант в инвентарь Корристо?§kratz

2. После разговора с Торусом о приёме в стражу и выбора пути магии Корристо встаёт в позицию для беседы с ГГ в холле дома магов. После этого можно сказать Торусу, что ГГ, мол, передумал и хочет стать стражником. Торус принимает ГГ в стражу со всеми сопутствующими плюшками (доспех, оружие), но возможность подойти к Корристо и стать магом сохраняется. На первый взгляд, это недоработка скрипта. Но может быть, это такая задумка разработчиков, что ГГ может стать магом, побыв немного в роли стражника?:dnuhr:
1. В принципе, почему бы и нет?;)
2. Да, это похоже на недоработку, т.к. ГГ дали выбор: стать или стражником или магом Огня.

Wolfgar93
30.08.2011, 09:25
Кстати о птичках: траблы с получением тяжелого доспеха послушника (который с наплечником) уже фиксились? Насколько я помню, в Готике без модов его до сих пор легально получить нельзя. :(
Эта ошибка уже решена. Идол Намиб может дать этот доспех после вступления в послушники, впрочем как и диего даёт доспех призрака, если втупаешь в Старый Лагерь.

ElderGamer
30.08.2011, 13:35
Хочу посоветоваться по поводу изменений в диалоге с Лестером по квесту "Встреча".

В оригинале диалог выглядит так:

"Возле Старого Лагеря я встретил Диего и Мильтена!"
ГГ: Как дела?
Л: Эй, что ты здесь делаешь?
ГГ: Старую Шахту залило водой, и она обрушилась!
Л: И что с того?
ГГ: Все маги Огня мертвы.
ГГ: Их убил Гомез.
Л: Тебе будет нелегко оправдаться!
ГГ: Возле Старого Лагеря я встретил Диего и Мильтена!
ГГ: Они хотят встретиться с тобой и с Лестером. Там же, где и всегда.
Л: Как раз вовремя!
ГГ: Что случилось?
Л: Я останусь здесь и буду изучать старые книги.
ГГ: Ух... Я не понимаю...
Л: Господин Ю`Берион однажды сказал: 'Невежда передвигает предметы руками, а мастер - силой своего духа'.
ГГ: Ладно, ладно, я понял.
Л: Береги себя.
ГГ: Спасибо. Я пойду.
Л: Да хранит тебя Спящий!

Честно говоря, из диалога следует, что разговаривают два полудурка. Причина, как оказалось, здесь в том, что этот диалог набран фразами из РАЗНЫХ диалогов. И наши локализаторы здесь не при чём, в немецкой версии то же самое. Для реплик Лестера использованы фразы Фингерса и стандартного набора SVM_5_*, благо голос подходит. Видимо, озвучивал один актёр. Я воспользовался фразами из того же набора, и у меня получилось следующее:

диалог начинает сам Лестер при приближении к нему ГГ
Л: Эй, что ты здесь делаешь?
ГГ: Старую Шахту залило водой, и она обрушилась!
Л: Хорошая шутка!
ГГ: Все маги Огня мертвы.
ГГ: Их убил Гомез.
Л: И что с того?
Л: Что ты хочешь?
ГГ: Возле Старого Лагеря я встретил Диего и Мильтена!
ГГ: Они хотят встретиться с тобой. Там же, где и всегда.
Л: Я останусь здесь и буду изучать старые книги.
ГГ: Я... Я не понимаю...
Л: Господин Ю`Берион однажды сказал: 'Невежда передвигает предметы руками, а мастер - силой своего духа'.
ГГ: Ладно, ладно, я понял.
ГГ: Я лучше пойду.
Л: Береги себя.

Теперь, как мне кажется, разговор ведут укурок-пофигист и адекватный человек. Ваше мнение? ;)

Olor1n
30.08.2011, 17:10
да, так намного лучше
видно, что ГГ хочет что-то сказать, а Лестеру пофиг.

ElderGamer
01.09.2011, 14:55
Очередной вопрос. Стоит ли изымать из продажи у кузнецов раскалённые клинки и заготовки? С одной стороны, продавать раскалённые железки - это глупо, лучше из продажи их изъять, заменив холодными аналогами. С другой стороны, ничто пока не мешает самому герою неделями таскать раскалённые железки в своём инвентаре и продавать их торговцам. §kratz

Olor1n
01.09.2011, 16:53
появилась идея: а если сделать на раскалённые железки цену в 0 единиц руды, это возможно? Т.е. будет предполагаться, что ГГ сразу их перекуёт. Один фиг, перенос их в инвентаре от горна до наковальни -игровая условность. А заменить раскалённые железки на холодные у кузнецов здравая мысль.

ElderGamer
01.09.2011, 17:50
появилась идея: а если сделать на раскалённые железки цену в 0 единиц руды, это возможно? Т.е. будет предполагаться, что ГГ сразу их перекуёт.

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

Вполне реально привязать "остывание" железок в инвентаре ГГ к событию торговли. То есть, герой не сможет продать горячие железки торговцам. Скорее всего, можно привязать "остывание" к событию сна. Но это будут полумеры. Если герой не будет торговать или спать, то горячие железки из инвентаря не исчезнут. Хотя... есть ещё переходы между главами... :dnuhr:

Liade
01.09.2011, 21:27
Вполне реально привязать "остывание" железок в инвентаре ГГ к событию торговли. То есть, герой не сможет продать горячие железки торговцам. Скорее всего, можно привязать "остывание" к событию сна. Но это будут полумеры. Если герой не будет торговать или спать, то горячие железки из инвентаря не исчезнут. Хотя... есть ещё переходы между главами... :dnuhr:
Может привязать остывание ко времени? Допустим в середине дня все железки в инвентаре ГГ остывают. Или же покупка раскаленной железки запускает таймер, допустим на 3 часа игрового времени, по истечении которого, железки остывают. Впрочем, не совсем уверен, что это можно реализовать.

-Fritz-
02.09.2011, 04:34
Некий новый патч (http://www.worldofgothic.de/dl/download_457.htm?PHPSESSID=ffecff477a62a5c0e81d24a6283d3e302fd21d94) от автора саундпатча. По немецки правда не понимаю ничего.(

ElderGamer
02.09.2011, 06:07
Может привязать остывание ко времени?

Это было бы идеально! Логичнее всего, как мне кажется, было бы давать горячей железке выдержку, скажем, 5-10 секунд реального времени. Успел за это время подойти и использовать её в процессе ковки оружия - хорошо. Не успел - она уже остыла. Но я не уверен, что подобное можно реализовать на существующем движке Готики. Хотя, контроль промежутков времени там реализован, например, для зелий ускорения. Для того чтобы разобраться с этим нужен более грамотный скриптер, чем я. :(


Некий новый патч (http://www.worldofgothic.de/dl/download_457.htm?PHPSESSID=ffecff477a62a5c0e81d24a6283d3e302fd21d94) от автора саундпатча. По немецки правда не понимаю ничего.(

Да, понять что-то с помощью гуглопереводчика тоже непросто. Из того, что понял: некоторые ошибки уже исправлены и в русском варианте, другие исправления выглядят довольно заманчиво, но как их встроить в русскую версию пока не понятно. Нужно разбираться. §kratz

ElderGamer
05.09.2011, 19:19
Вот ещё один вопрос для обсуждения. Помогайте советами.

В третьей главе игры при поиске юнитора в компании с Мильтеном, можно ненароком потратить свиток "Смерть нежити" не на Стража. Создатели игры предусмотрели в скриптах такой вариант. В этом случае Мильтен отсылает ГГ на поиски ещё одного свитка или руны. Но, походу, ни свитка, ни руны "Смерть нежити" в третьей главе купить ещё нельзя.

Как вы думаете, что лучше сделать, дать свиток кому-то из торговцев, или положить его где-то в игровом мире? Если торговцу, то кому? Если положить где-то в мире, то где? §kratz

-Fritz-
05.09.2011, 20:01
Вот ещё один вопрос для обсуждения. Помогайте советами.

В третьей главе игры при поиске юнитора в компании с Мильтеном, можно ненароком потратить свиток "Смерть нежити" не на Стража. Создатели игры предусмотрели в скриптах такой вариант. В этом случае Мильтен отсылает ГГ на поиски ещё одного свитка или руны. Но, походу, ни свитка, ни руны "Смерть нежити" в третьей главе купить ещё нельзя.

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

PontifEx
05.09.2011, 22:02
Неплохо было бы еще напомнить, убивается ли страж обычным оружием? Если да - то никакой халявы, потратил, так потратил! $§p4

Olor1n
05.09.2011, 22:45
Неплохо было бы еще напомнить, убивается ли страж обычным оружием? Если да - то никакой халявы, потратил, так потратил! $§p4

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


upd Ещё Диего надо дать свиток уменьшения монстра на случай, если ГГ уже сходил в ущелье троля и убил этого зверя, а то троль респанится, а убить его на том уровне из-за рассчёта повреждений в Г1 практически нереально, помню, как мучился.

Dimus
06.09.2011, 06:25
насколько я помню, обычное оружие его не трогает.
Почему не трогает? Трогает, но только действительно мощное оружие или магия, т.к. у этого зомби задана довольно высокая защита (скрипт AI\Monster\Mst_Zombie.d):

prototype Mst_Default_Zombie(C_Npc)
{
name[0] = "Зомби";
guild = GIL_ZOMBIE;
aivar[AIV_IMPORTANT] = ID_ZOMBIE;
level = 20;
attribute[ATR_STRENGTH] = 140;
attribute[ATR_DEXTERITY] = 140;
attribute[ATR_HITPOINTS_MAX] = 250;
attribute[ATR_HITPOINTS] = 250;
attribute[ATR_MANA_MAX] = 0;
attribute[ATR_MANA] = 0;
protection[PROT_BLUNT] = 130;
protection[PROT_EDGE] = 130;
protection[PROT_POINT] = 9999;
protection[PROT_FIRE] = 100;
protection[PROT_FLY] = 30;
protection[PROT_MAGIC] = 100;
damagetype = DAM_EDGE;
fight_tactic = FAI_ZOMBIE;
senses = SENSE_HEAR | SENSE_SEE | SENSE_SMELL;
senses_range = 3000;
aivar[AIV_FINDABLE] = HUNTER;
aivar[AIV_PCISSTRONGER] = 2000;
aivar[AIV_BEENATTACKED] = 1500;
aivar[AIV_HIGHWAYMEN] = 1500;
aivar[AIV_HAS_ERPRESSED] = 0;
aivar[AIV_BEGGAR] = 10;
aivar[AIV_OBSERVEINTRUDER] = FALSE;
start_aistate = ZS_MM_AllScheduler;
aivar[AIV_HASBEENDEFEATEDINPORTALROOM] = OnlyRoutine;
};

<...>

instance ZombieTheKeeper(Mst_Default_Zombie)
{
name[0] = "Стражник";
level = 150;
id = MID_THEKEEPER;
Set_Zombie4_Visuals();
Npc_SetToFistMode(self);
protection[PROT_BLUNT] = 150;
protection[PROT_EDGE] = 150;
protection[PROT_FIRE] = 9999;
senses_range = 1000;
aivar[AIV_FINDABLE] = HUNTER;
aivar[AIV_PCISSTRONGER] = 1000;
aivar[AIV_BEENATTACKED] = 1000;
aivar[AIV_HIGHWAYMEN] = 1000;
aivar[AIV_HAS_ERPRESSED] = 0;
aivar[AIV_BEGGAR] = 10;
aivar[AIV_OBSERVEINTRUDER] = FALSE;
CreateInvItem(self,ItMi_OrcTalisman);
CreateInvItem(self,ItKe_Focus5);
};
От обычного зомби стражник склепа отличается только повышенной защитой от режущего и дробящего оружия, а также иммунитетом к огню.

ElderGamer
06.09.2011, 06:29
Ну а что именно предлагает Мильтен? Куда то направляет или просто мол предлагаю идти и найти?

ГГ: Я потратил заклинание - но не на стража!
М: Только не это! Придумай, как еще можно победить его! Может быть мы сможем купить еще один свиток или какую-нибудь руну в одном из Лагерей? Я буду ждать тебя там, где мы встретились в прошлый раз.


Неплохо было бы еще напомнить, убивается ли страж обычным оружием?

Убивается, но у него защита от оружия и стрел 150 (от огня 9999). Пробить такую защиту может только очень крутой мечник или стрелок. У мага шансов нет.



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

В принципе, можно привязать место появления свитка к тому, в каком лагере состоит ГГ. Создать новую фразу Мильтена, скорее всего, не получится.


upd Ещё Диего надо дать свиток уменьшения монстра на случай, если ГГ уже сходил в ущелье троля и убил этого зверя, а то троль респанится, а убить его на том уровне из-за рассчёта повреждений в Г1 практически нереально, помню, как мучился.

А я чаще всего убивал тролля не используя свитка. Только у лучника нет шансов пробить шкуру тролля. :dnuhr: Но вариант с утратой свитка хорошо бы как-то учесть.

Olor1n
06.09.2011, 10:22
А я чаще всего убивал тролля не используя свитка. Только у лучника нет шансов пробить шкуру тролля. :dnuhr: Но вариант с утратой свитка хорошо бы как-то учесть.

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

Xenon21
06.09.2011, 23:17
Странно я и того и другого монстра убивал без магии вообще, и только прохождение на 4-ое примерно понял что к чему. Убить нежить не сложно в принципе правда долговато, просто сначала выкашиваешь всю нежить а уж с одним не проблема совладать. Насколько помню у него замедленная таки реакция, так что справиться с ним не сложно.
Тролля я вообще никогда не сморщивал, т.к. считал и считаю это заклинание наряду с заморозкой и ледяной волной читерскими по своей природе и серьезным просчетом в балансе.
А убить тролля не тяжело вовсе, т.к. есть один маленький секрет. Дело в том что у него есть слабое место про которое в т.ч. упоминает Диего. Тактика такая, пока Диего его отвлекает стрелами ты аккуратненько нащупываешь местечко (попасть то не так легко) и готово. Думаю в пару-тройку минут опытный игрок справиться с ним. А свитки эти выкинуть можно (если по чесноку играешь) или продать кому-нибудь.

ElderGamer
07.09.2011, 06:04
Убивается, но у него защита от оружия и стрел 150 (от огня 9999). Пробить такую защиту может только очень крутой мечник или стрелок. У мага шансов нет.


Упс, ошибочка вышла! И у лучника шансов нет. Защита от стрел тоже 9999. То есть, если игрок не вкладывался в силу, то в третьей главе у него нет шансов одолеть Стража без свитка.



Куда можно положить свиток?

Вариант первый. Свиток помещается в инвентарь торговца того лагеря, к которому в данный момент принадлежит ГГ. Это Торрез или Кронос или Идол Кадар.

Вариант второй. Свиток помещается в инвентарь торговца всякой всячиной, например, Декстера или Мордрага или обоих, для верности. Правда, Мордраг к тому времени может быть уже мёртв.

Вариант третий. Свиток подкладывается в какой-то сундук или несколько сундуков. В игровом мире есть несколько относительно потаённых мест с сундуками. Например, хижина на болотах Лагеря Сектантов или пещерка, где прячется Гилберт. Только я не уверен, что можно подложить свиток в контейнер по ходу дела, а не в начале игры при инициализации мира.

Dimus
07.09.2011, 08:50
@ ElderGamer:
Выскажу своё мнение по поводу дополнительных свитков для уничтожения стражника склепа и тролля в каньоне.
Второй вариант выглядит неудачно, т.к. не соответствует специализации указанных торговцев. Третий вариант отпадает, т.к. содержимое сундуков инициализируется в начале новой игры и ГГ может использовать эти свитки раньше времени. Следовательно, остаётся первый вариант, но тут нужно проверять, сработает ли дополнительное условие в скриптах в начале 3-й главы.
Story\B\B_Give_BaalCadarChapter1Runes.d:

func void B_Give_BaalCadarChapter3Runes()
{
var C_Npc npc;
npc = Hlp_GetNpc(GUR_1208_BaalCadar);
CreateInvItem(npc,ItArRuneSleep);
CreateInvItem(npc,ItArRuneTelekinesis);
CreateInvItem(npc,ItArRuneCharm);
CreateInvItems(npc,ItArScrollHeal,8);
CreateInvItems(npc,ItArScrollLight,10);
CreateInvItems(npc,ItArScrollWindfist,6);
CreateInvItems(npc,ItArScrollTrfWolf,4);
CreateInvItems(npc,ItArScrollTrfLurker,4);
CreateInvItems(npc,ItArScrollTrfScavenger,2);
CreateInvItems(npc,ItArScrollTrfMolerat,4);
CreateInvItems(npc,ItArScrollTrfCrawler,3);
CreateInvItems(npc,ItArScrollTrfBloodfly,1);
CreateInvItems(npc,ItArScrollFear,4);
CreateInvItems(npc,ItArScrollSleep,5);
CreateInvItems(npc,ItArScrollStormfist,3);
CreateInvItems(npc,ItArScrollTrfMeatbug,2);
CreateInvItems(npc,ItArScrollTrfWaran,2);
CreateInvItems(npc,ItArScrollPyrokinesis,5);
CreateInvItems(npc,ItArScrollControl,3);
CreateInvItems(npc,ItArScrollCharm,5);
CreateInvItem(npc,Schutzring_Geschosse1_Waffen1);
CreateInvItem(npc,Schutzring_Total1);
CreateInvItem(npc,Schutzring_Magie1_Fire1);
CreateInvItems(npc,ItFo_Potion_Mana_01,24);
CreateInvItems(npc,ItFo_Potion_Mana_02,16);
CreateInvItems(npc,ItFo_Potion_Mana_03,10);
CreateInvItems(npc,ItFo_Potion_Health_01,32);
CreateInvItems(npc,ItFo_Potion_Health_02,20);
CreateInvItems(npc,ItFo_Potion_Health_03,12);
CreateInvItems(npc,ItFo_Potion_Haste_01,12);
CreateInvItems(npc,ItFo_Potion_Haste_02,6);
if(C_NpcBelongsToPsiCamp(hero))
{
CreateInvItem(npc,ItArScrollDestroyUndead);
CreateInvItem(npc,ItArScrollShrink);
};
};
Story\B\B_Give_CronosChapter1Runes.d:

func void B_Give_CronosChapter3Runes()
{
var C_Npc npc;
npc = Hlp_GetNpc(KDW_604_Cronos);
CreateInvItem(npc,ItArRuneLight);
CreateInvItem(npc,ItArRuneHeal);
CreateInvItem(npc,ItArRuneThunderbolt);
CreateInvItem(npc,ItArRuneIceCube);
CreateInvItem(npc,ItArRuneThunderball);
CreateInvItems(npc,ItArScrollHeal,5);
CreateInvItems(npc,ItArScrollLight,12);
CreateInvItems(npc,ItArScrollThunderbolt,5);
CreateInvItems(npc,ItArScrollIcecube,4);
CreateInvItems(npc,ItArScrollIceWave,3);
CreateInvItems(npc,ItArScrollTrfMeatbug,2);
CreateInvItems(npc,ItArScrollTrfWaran,3);
CreateInvItems(npc,ItArScrollTrfBloodfly,2);
CreateInvItem(npc,Machtring);
CreateInvItem(npc,Ring_der_Erleuchtung);
CreateInvItem(npc,Gewandtheitsamulett);
CreateInvItem(npc,Staerkeamulett);
CreateInvItem(npc,Lebensamulett);
CreateInvItem(npc,Amulett_der_Magie);
CreateInvItem(npc,ItWr_Book_Circle_05);
CreateInvItem(npc,ItWr_Book_Circle_06);
if(C_NpcBelongsToNewCamp(hero))
{
CreateInvItem(npc,ItArScrollDestroyUndead);
CreateInvItem(npc,ItArScrollShrink);
};
};
Story\B\B_Give_TorrezChapter1Runes.d:

func void B_Give_TorrezChapter3Runes()
{
var C_Npc npc;
npc = Hlp_GetNpc(KDF_405_Torrez);
CreateInvItem(npc,ItArRuneFirestorm);
CreateInvItems(npc,ItArScrollFirebolt,16);
CreateInvItems(npc,ItArScrollLight,12);
CreateInvItems(npc,ItArScrollHeal,16);
CreateInvItems(npc,ItArScrollFireball,4);
CreateInvItems(npc,ItArScrollFirestorm,3);
CreateInvItems(npc,ItArScrollTrfWolf,3);
CreateInvItems(npc,ItArScrollTrfLurker,4);
CreateInvItems(npc,ItArScrollTrfScavenger,2);
CreateInvItems(npc,ItArScrollTrfMolerat,6);
CreateInvItems(npc,ItArScrollTrfCrawler,3);
CreateInvItems(npc,ItArScrollTrfBloodfly,3);
CreateInvItems(npc,ItArScrollTrfMeatbug,2);
CreateInvItems(npc,ItArScrollTrfWaran,4);
CreateInvItems(npc,ItArScrollFirerain,2);
CreateInvItems(npc,ItFo_Potion_Mana_01,24);
CreateInvItems(npc,ItFo_Potion_Mana_02,16);
CreateInvItems(npc,ItFo_Potion_Mana_03,10);
CreateInvItems(npc,ItFo_Potion_Health_01,32);
CreateInvItems(npc,ItFo_Potion_Health_02,20);
CreateInvItems(npc,ItFo_Potion_Health_03,12);
CreateInvItems(npc,ItFo_Potion_Haste_01,12);
CreateInvItems(npc,ItFo_Potion_Haste_02,6);
if(C_NpcBelongsToOldCamp(hero))
{
CreateInvItem(npc,ItArScrollDestroyUndead);
CreateInvItem(npc,ItArScrollShrink);
};
};

ElderGamer
07.09.2011, 12:53
@Dimus

Относительно свитка "Смерть нежити" работает следующая конструкция в скрипте Мильтена (спасибо за подсказанные функции):

func void Info_Milten_SHSCROLL_Info()
{
var C_Npc npc;
AI_Output(hero,self,"Info_Milten_SHSCROLL_15_01"); //Я потратил заклинание - но не на стража!
AI_Output(self,hero,"Info_Milten_SHSCROLL_02_02"); //Только не это! Придумай, как еще можно победить его!
AI_Output(self,hero,"Info_Milten_SHSCROLL_02_03"); //Может быть, мы сможем купить еще один свиток в одном из Лагерей?
AI_Output(self,hero,"Info_Milten_SHSCROLL_02_04"); //Я буду ждать тебя там, где мы встретились в прошлый раз.
self.aivar[AIV_PARTYMEMBER] = FALSE;
AI_StopProcessInfos(self);
Npc_ExchangeRoutine(self,"SHWait");
if(C_NpcBelongsToOldCamp(hero))
{
npc = Hlp_GetNpc(KDF_405_Torrez);
CreateInvItem(npc,ItArScrollDestroyUndead);
}
else if(C_NpcBelongsToNewCamp(hero))
{
npc = Hlp_GetNpc(KDW_604_Cronos);
CreateInvItem(npc,ItArScrollDestroyUndead);
}
else
{
npc = Hlp_GetNpc(GUR_1208_BaalCadar);
CreateInvItem(npc,ItArScrollDestroyUndead);
};
};


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

Есть ещё один недочёт. В озвучке ГГ называет свиток "Ужас мёртвых". Вероятно, это раннее название или неверный/несогласованный перевод.

ГГ: Я достал еще один свиток с заклинанием 'Ужас мертвых'!

Фраза, обрезанная до состояния "Я достал еще один свиток!" звучит не особо правильно. Интонация не та. Может быть, стоит создать специально для этого квеста свиток с названием "Ужас мёртвых"? Заодно и цену его можно было бы поставить повыше, чем цена свитка "Смерть нежити". 110 кусков руды - не особенно тяжкое наказание за разгильдяйство. :)

Относительно свитка "Уменьшение монстра". А может, лучше изъять его из мира до поры до времени? Начнётся квест по поиску юниторов, тогда и положить его на своё место. А? :dnuhr:

Olor1n
07.09.2011, 19:29
@Dimus
Относительно свитка "Уменьшение монстра". А может, лучше изъять его из мира до поры до времени? Начнётся квест по поиску юниторов, тогда и положить его на своё место. А? :dnuhr:

не здорово: история мира предполагает, что он там должен находиться. Логичнее ещё один поместить или троля с главой не респанить, правда тогда квест изюминку теряет.

ElderGamer
08.09.2011, 13:52
Мда... Тут ведь как? Пытливый ум игрока может заставить героя потратить свиток вообще не на тролля. И тролль останется на месте, и свитка не будет под рукой в нужный момент. :scared:

Согласен, что не очень логично подкладывать свиток под определённый случай (поиск юнитора). Ведь труп неудачливого охотника - бывшего владельца свитка, уже сгнил, остался только скелет. То есть, свиток лежит там очень давно. Но что мы получим, поместив дополнительный свиток, например, в инвентарь кого-нибудь из торговцев? Герой помыкался, помыкался без свитка - не может причинить троллю вреда - побежал к торговцу. А Диего тем временем бодается с троллем? День бодается, два... В общем, тоже получается "не здорово". :dnuhr:

Может, убрать у тролля полный имунитет к урону от стрел, чтобы Диего мог его со временем и сам утыкать? §kratz

PontifEx
08.09.2011, 15:28
А что там с возможностью создания рун в редакторе Г1 ? Нельзя ли вместо/вместе со свитком кинуть и руну, скажем, 0-го уровня (если такое реально), чтобы игрок любого класса мог ее применить?

Olor1n
08.09.2011, 15:47
А что там с возможностью создания рун в редакторе Г1 ? Нельзя ли вместо/вместе со свитком кинуть и руну, скажем, 0-го уровня (если такое реально), чтобы игрок любого класса мог ее применить?

и ГГ начнёт её дальше всю игру юзать... не вариант

PontifEx
08.09.2011, 21:25
и ГГ начнёт её дальше всю игру юзать... не вариант

А там ее дальше, по сути, и юзать вроде не на кого особо - тролль для Улу-мулу спокойно и без руны убивается. Или пусть ее Диего забирает в диалоге, когда чинит лебедку, типа за помощь. :p

ElderGamer
09.09.2011, 07:03
А что там с возможностью создания рун в редакторе Г1 ? Нельзя ли вместо/вместе со свитком кинуть и руну, скажем, 0-го уровня (если такое реально), чтобы игрок любого класса мог ее применить?

Мне кажется, это не вариант. В Г2 подобное заклинание относится к шестому Кругу магии, да и свиток из Г1 стоит бешеных денег - 1000 кусков руды, что, видимо, намекает на особую ценность заклинания.

Уж лучше подложить ещё один свиток где-то рядом с местом событий в начале третьей главы или после получения квеста по поиску юниторов.

Тут вот ещё какая проблема вылезла. Юнитор то можно достать с помощью телекинеза, вообще не убивая тролля. С одной стороны, это способ завершить таки квест, если "что-то пошло не так". С другой стороны. Четыре юнитора из пяти при достаточной сноровке можно забрать уже в первой главе. А это серьёзно ломает систему диалогов при поиске юниторов в третьей главе, поскольку такой вариант в скриптах, а главное в озвучке, походу, не предусмотрен. :(

PontifEx
09.09.2011, 10:10
Уж лучше подложить ещё один свиток где-то рядом с местом событий в начале третьей главы или после получения квеста по поиску юниторов.


Закинуть свитков под все юниторы ("Смерть нежити", "Телекинез", "Сморщивание", "Превращение в мясного жука") в библиотеку магов воды? Или Кроносу в торговый инвентарь? Ведь, судя по всему, маги воды, которые и дают задание отыскать юниторы, должны были быть в курсе расположения и особенностей "защиты" камней, хотя я так до сих пор и не понимаю, почему при ошибке с размером купола маги, оказавшиеся под барьером, не унесли юниторы с собой, а оставили их где попало. :dnuhr:

-Fritz-
10.09.2011, 14:39
Так видимо они просто не были им нужны, а потом понадобились.

Olor1n
10.09.2011, 20:24
Так видимо они просто не были им нужны, а потом понадобились.

судя по сюжету игр, эти камни очень и очень ценные штуки. Единственно, что могло бы объяснить их присутвие в этих местах - какая-то магически необходимая связка с барьером. Например, если бы маги пытались при помощи них контролировать или управлять барьером. Других причин лично я напридумывать не смог.

Shifroval
10.09.2011, 21:17
Да ленивые все маги, зачем им юниторы то, до них идти нужно, там же много опасных зверей развелось к тому же. Вот наверное так они и мыслили. А тут ГГ пришёл, почему бы не послать его за юниторами. К тому же маги воды с их планом по взрыву рудной горы не думали о юниторах как о чём то особо важном, кроме как источник энергии(они даже не знали где искать Альманах). А магам огня и так хорошо в Старом лагере было. Болотникам тоже было всё равно, лишь Юберион как то почесался с призывом Спящего. Ведь основа то существования всех под Барьером это соблюдение статуса кво: Гомез сидит на своём троне и диктует условия Робару, Ли с магами тырят еду и вещи у Гомеза и собирают руду, а болотники делают всем травку и проповедуют магию Спящего. Всё изменилось с приходом ГГ и началом ритуала призыва Спящего..примерно.

Т.е основа логики такова, что юниторы не просто так же лежат там, да и лежат давно и "обросли монстрами". А без Альманаха не зарядить их, а где сам Альманах никто не знал, до Юбериона, кто по настоящему стал копать в этом направлении.

Кстати я уже забыл, как именно маги воды говорят о юниторах? В смысле зачем им они и как они говорят об этом ГГ? Я точно не могу это вспомнить, нужно перепроходить. Но они как то говорили же, раз посылали ГГ за ними.

PontifEx
10.09.2011, 22:07
Да ленивые все маги, зачем им юниторы то, до них идти нужно, там же много опасных зверей развелось к тому же. Вот наверное так они и мыслили.

Дело не в количестве монстров: изначально маги были расставлены по пентаграмме, которая есть на карте, вручаемой ГГ, когда он отправляется на поиски. Что мешало им унести камни с собой сразу после сотворения барьера? Это им еще повезло, что какой-нибудь не в меру активный бродяга по колонии не добрался до юниторов раньше ГГ - тогда бы точно они черта с два что нашли.


Кстати я уже забыл, как именно маги воды говорят о юниторах? В смысле зачем им они и как они говорят об этом ГГ? Я точно не могу это вспомнить, нужно перепроходить. Но они как то говорили же, раз посылали ГГ за ними.

Точную цитату не приведу, но юниторы нужны были как ритуальные принадлежности, чтобы высвободить энергию рудной горы. Детонаторы, по сути. :D

Shifroval
10.09.2011, 23:44
Дело не в количестве монстров: изначально маги были расставлены по пентаграмме, которая есть на карте, вручаемой ГГ, когда он отправляется на поиски. Что мешало им унести камни с собой сразу после сотворения барьера? Это им еще повезло, что какой-нибудь не в меру активный бродяга по колонии не добрался до юниторов раньше ГГ - тогда бы точно они черта с два что нашли.
Ну тогда либо они с высоты своей пафосной мудрости рассудили мудро и решили оставить их там. Либо они там лежат, чтобы ГГ их взял, лол.
Хороший вопрос кстати, но такой логикой можно вообще кучу вещей опровергнуть, да и не только в Г1, а вообще в любых рпг.
Как вариант, после разрастания Барьера начался кипиш и суматоха, и маги попросту забыли о юниторах, а когда всё улеглось, то думать о них было уже поздно.
Полагаю, этот вопрос можно адресовать самому Майку Хоге, он наверняка предусмотрел такой вариант, тем более он так ловко в относительно недавнем интервью раскрыл все карты про дракона-нежить, ГГ, Спящего и Белиара.

Massonchik
11.09.2011, 12:13
Может сделать затычки на свитки, чтобы нельзя было использовать раньше времени?

Shifroval
11.09.2011, 13:34
А может всё сделать ещё проще и как то ограничить существ, на которых можно применить свиток уменьшения? Т.е сделать чтобы он работал только на троллей. А при попытке скастовать его на других существ, ГГ бы пожимал плечами. Конечно смотрится грубовато, слегка ограничивает пресловутую свободу, но зато эффективно с точки зрения геймплея.

Теоретически можно так же сделать со свитком уничтожения нежити и стражем, но это будет уж совсем не к месту, ибо таких свитков то потом будет много. Но опять же, можно сделать уникальный свиток(и перевод позволяет), однако тогда пропадёт необходимость в диалогах Мильтена, если ГГ потратил свиток впустую.

Olor1n
11.09.2011, 19:04
А может всё сделать ещё проще и как то ограничить существ, на которых можно применить свиток уменьшения? Т.е сделать чтобы он работал только на троллей.

во-первых, насколько я помню, он только так и работает, может, ещё на мракорисов, но вроде нет. Во-вторых, прикол в том, что если придти к ущелью, скажем, в первой главе, никто не мешает потратить свиток на этого троля, а потом, когда приходишь туда с Диего, троль респанится

ElderGamer
11.09.2011, 19:27
Кстати я уже забыл, как именно маги воды говорят о юниторах? В смысле зачем им они и как они говорят об этом ГГ? Я точно не могу это вспомнить, нужно перепроходить. Но они как то говорили же, раз посылали ГГ за ними.

Из диалога с Ю`Берионом:

- Почему этот юнитор так важен?
- Этот магический артефакт способен концентрировать нашу силу. Это один из пяти камней, с помощью которых маги сотворили Барьер. Мне было видение о том, что мы должны использовать силу этого камня.
- Какое интересное видение!
- Мое видение было ниспослано Спящим. Мы сможем призвать его с помощью юнитора!

Из диалогов с Сатурасом:

- У меня есть альманах... Ю`Берион использовал его, для того чтобы зарядить юнитор.
- Отлично! Знание, которое содержится в этой книге, поможет нам зарядить пять главных камней-юниторов.

- У меня есть юнитор...
- Ты держишь ключ от наших оков. Это один из пяти камней-юниторов, с помощью которых был создан магический Барьер. Их же сила поможет нам обрушить эту гигантскую стену.
- Но для этого же потребуется чертова уйма энергии?!
- Верно. Все эти годы мы неустанно копили руду, вместо того чтобы выменивать на нее предметы роскоши у наших тюремщиков. Тебе, должно быть, известно, что в каждом куске руды заключена небольшая частица магии. Силы, которая содержится в нашей железной горе, должно быть достаточно, чтобы уничтожить Барьер.

Содержание Алманаха:

Глава 23

Фокусирование сил

Силы продолжают накапливаться в камне, до тех пор пока слова мага не освободят их. Будет ли это продолжительное действие или единый, мощный выброс - решать магу.

Но после того как силы высвобождены, юнитор становится всего лишь пустой скорлупой.

Сами слова, освобождающие силу юнитора, ныне доступны многим. К сожалению, даже наука наделения нового артефакта магической силой в наши времена стала скорее ремеслом, нежели секретным знанием.

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

А теперь, о ищущий знаний, открой свой разум для слов древней силы.



А может всё сделать ещё проще и как то ограничить существ, на которых можно применить свиток уменьшения?

Честно говоря, не знаю, можно ли это сделать. Да и во второй Готе такое заклинание действует на многих монстров. А в первой Готе оно действует как минимум ещё и на кротокрысов (проверял). Тем более, как сказал Олорин, ГГ может потратить свиток именно на тролля.

Massonchik
11.09.2011, 20:41
В случае с троллем создать запись в дневнике при использовании свитка типа: "Пусть полежит для лучших времён". А при выполнении квеста с Диего сделать доп. запись: "Самое время для использования свитка".
А со стражем мне больше понравилась идея с подкидыванием свитка в инвентарь торговца, благо и диалог специальный у Мильтена есть. Подкинуть лучше всего в инвентарь к Кроносу он самый-самый по свиткам, а Безымянный на момент поиска юниторов больше всего сотрудничает с Новым Лагерем.

-Fritz-
12.09.2011, 20:35
во-первых, насколько я помню, он только так и работает, может, ещё на мракорисов, но вроде нет. Во-вторых, прикол в том, что если придти к ущелью, скажем, в первой главе, никто не мешает потратить свиток на этого троля, а потом, когда приходишь туда с Диего, троль респанится
На големов точно работает.

ElderGamer
13.09.2011, 14:42
В случае с троллем создать запись в дневнике при использовании свитка типа: "Пусть полежит для лучших времён". А при выполнении квеста с Диего сделать доп. запись: "Самое время для использования свитка".

Честно говоря, не уверен, что можно зафиксировать факт использования свитка. Хотя...

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

Хотя... Интересно, а можно ли встроить счётчик (или триггер) использования того или иного заклинания. Свиток то у нас один, и если заклинание уже использовалось, то можно сделать вывод, что свитка больше нет. И тогда его нужно где-то респавнить. Разумеется, в том случае, если ГГ не разумеет в магии или не прокачал достаточно силу. §kratz

ElderGamer
15.09.2011, 12:26
сильно сомневаюсь, что можно определить, валяется ли ещё свиток на своём месте, или его уже там нет.

Похоже, это реально. Пока не пробовал воплотить это в скриптах, но функция такая вроде бы есть.

У меня вот какой вопрос. В русской озвучке от Снежков ГГ несколько раз обращается к неписям на "ВЫ". В немецком варианте ничего подобного нет. Ряд фраз озвучки с ВЫканием уже исправлен. Самый тяжёлый случай с Ю`Берионом. Нужно ли пытаться изменить диалоги с Ю`Берионом, чтобы исключить ВЫкание (не факт, что это ещё получится), или пусть всё останется, как есть?

И ещё. Работа продвигается. На сегодняшний день правки внесены в более, чем две сотни файлов скриптов. При этом почти во всех файлах исправлено более, чем одна ошибка. В файл Торуса, например, внесено около 20 правок. Я, конечно, стараюсь НЕ ошибаться, но от ошибок никто не застрахован. Когда работа закончится, потребуется тестирование.

Меня интересует, найдутся ли добровольцы, готовые пройти игру со всеми исправлениями и высказать своё мнение, описать замеченные недостатки, сформировать предложения по дальнейшему исправлению ошибок? :)

-Fritz-
15.09.2011, 17:25
Ну ВЫкание то видимо сделано для выражения уважения к человеку. Как ВЫ можно выразить в немецкой версии? Или можно.
За тест - можешь на меня рассчитывать.

PontifEx
15.09.2011, 17:50
Тест - легко, с год уже в первую часть не играл. С радостью пройду еще раз, если скажешь, на что в первую очередь надо обратить внимание. :gratz

Shifroval
15.09.2011, 18:09
Аналогично, не запускал Г1 уже года два. Могу побыть тестером, опять же, при условии если будет известно что искать то и на что обращать внимание. Так то в Г1 уж совсем критических багов нет. Всё при должном умении проходимо было.
Можно даже разделиться по лагерям и классам, чтобы каждый кто захочет тестить, тестил бы свою ветку.


Как ВЫ можно выразить в немецкой версии? Или можно.
Можно. Sie это "Вы". Du - "ты". А ещё sie(с маленькой) можно перевести и как "они" и как "она". Но в речи при обращении к кому то, Sie имеет русский эквивалент "вы".
На русском ничего путного не нашёл, на инглише вот удобное описание когда говорят Sie, а когда du
http://userweb.port.ac.uk/~joyce1/abinitio/chap1-3.html
Хотя нет, вот кое что и на русском
http://www.germania-online.ru/nc/gesellschaft/obshchestvo-detal/datum////frau-merkel-nichego-chto-ja-na-ty.html

Для ещё большей отчётности, вот то что даёт лингва на Sie
http://lingvo.yandex.ru/Sie/с%20немецкого/
и на sie
http://lingvo.yandex.ru/sie/с%20немецкого/

Я уже плохо помню немецкий, но в таких вещах наверное ошибиться сложно.
А в игре нужно озвучку оригинальную слушать.

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

Wolfgar93
15.09.2011, 19:18
Готов тестировать. Самому очень интересно. Начну по приказу!!!

ElderGamer
15.09.2011, 20:15
Спасибо за отзывы! §wink Правка скриптов займёт ещё не меньше месяца. Возможно, за это время наряду со всякой мелочью будет выловлена и более крупная рыбка. Хотелось бы на это надеяться. ;)

По поводу ВЫканья в диалогах с Ю`Берионом, вот список реплик:

- Приветствую вас, господин Ю`Берион!
- Я слышал, вы кое-что ищете.
- Я принесу вам юнитор.

Немецкого варианта сейчас под рукой нет, он на другом компе, но там обращение идёт на "ТЫ" - ДУ, ДИХ, ДАЙНЕ и т. д.

Вторая из перечисленных фраз, правда, несколько выбивается из общего ряда. Похоже, там разговор идёт во множественном числе:

ГГ: Я слышал, вы кое-что ищете.
ЮБ: Верно. Нам нужен магический юнитор. Мы послали одного из новичков - Нираса - забрать его, но он до сих пор не вернулся. Не мог бы ты узнать, что произошло?

Или Ю`Берион говорит о себе во множественном числе, или под "МЫ" он подразумевает Братство. Но тогда не совсем логично получается, если ГГ, пришедший к Ю`Бериону, сам является послушником Братства. :dnuhr:

Shifroval
15.09.2011, 20:49
Про господина надо смотреть оригинал, господин ли там. Или это уже в инглиш версии перевод такой был. Просто обращение к господину, да ещё и на ты.. Нет можно конечно, зависит от господина, но в общем случае это выглядит странно.

А про множественное число и юнитор может так и есть, опять же, оригинал всё покажет.

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

ElderGamer
17.09.2011, 19:56
Про господина надо смотреть оригинал, господин ли там. Или это уже в инглиш версии перевод такой был. Просто обращение к господину, да ещё и на ты.. Нет можно конечно, зависит от господина, но в общем случае это выглядит странно.

Вот немецкий вариант приведённых выше фраз:

- Sei gegrüßt, Meister Y'Berion.

- Mir kam zu Ohren, du suchst etwas.

- Ich werde den Fokus zurückbringen!

В принципе, "Meister Y'Berion" можно перевести, как "господин Ю`Берион" В переводе Снежков Безымянный и других гуру называет господами, и обращается он к ним при этом то на "ТЫ", то на "ВЫ":

- Этот человек ищет твоего расположения, господин мой! (с Идолом Тондралом)

- Вот, господин мой! Примите сей скромный дар от вашего верного ученика... (с Идолом Тионом)



А про множественное число и юнитор может так и есть, опять же, оригинал всё покажет.

Да, там говорится "МЫ": "Wir brauchen...", "Wir haben..."


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

Текст письма я уже поменял, синхронизировав его в обоих вариантах письма - распечатанном и нераспечатанном. Кое-что поменял в кривопереведённом "Праве собственности". Спасибо Воланду и Элинд за помощь в переводе оригинала! :gratz Ломал голову над тем, как поступить с кривопереведённым содержанием книги "Поэзия Миртаны". В оригинале там нечто, похожее на стихотворение. Двойной перевод ничего не оставил от рифмы, да и смысл текста как-то ушёл в сторону. :( Текст других книг с немецким оригиналом не сверял, только немного подправил разметку документов (поля, пустые строки, и т. д., и т. п.)



Ну и пройтись бы по текстам вообще, выправить неточности, опечатки, несоответствие терминов или несовпадение с озвучкой. Это наверное можно сделать любому, главное иметь текст в удобном виде.

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

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

Проверяются и дополняются условия диалогов. Довольно много диалогов в игре написаны в расчёте на первую главу (есть даже фазы, написанные для первого игрового дня). Но создатели игры не потрудились закрыть доступ к этим фразам на более поздних этапах игры. В результате, например, можно столкнуться с глупейшими ситуациями, когда ГГ в шестой главе может сказать, что он новичок или его могут назвать таковым. :D

Всё вышеперечисленное и занимает основное время в процессе правки скриптов, хотя результат этой работы многие в игре даже не заметят. Ну кто, скажите мне, в ходе ННцатого прохождения включает субтитры, читает дневник или оставляет невыполненные квесты в первой главе? :D Однако, во время правки скриптов исправляются и более значимые ошибки. ;) §wink

PontifEx
19.09.2011, 14:06
Ну кто, скажите мне, в ходе ННцатого прохождения включает субтитры, читает дневник или оставляет невыполненные квесты в первой главе? :D

Гххм, да-да, кто же? *скромно потупился в пол* :p

ElderGamer
19.09.2011, 18:49
PontifEx, ну, значит, моя работа не совсем бессмысленна. :D

Сегодня подсмотрел кое-какие команды в скрипте Ксардаса и сделал очередное исправление в скрипте Бартоло. Теперь после первой телепортации в замок СЛ ГГ выходит из состояния готовности к телепортации (типа, убирает руну), а после разговора с Бартоло автоматически достаёт оружие ближнего боя. Думаю, так будет удобнее. Вопрос такой, нужно ли мудрить с целью поставить выбор оружия в зависимость от атрибутов и навыков ГГ? То есть, если ГГ маг, то он мог бы вооружаться какой-нибудь руной, а стрелок - луком или арбалетом. Нужно ли это, или в ситуации с Бартоло топор и меч - это лучший выбор? §kratz

Olor1n
19.09.2011, 21:27
не знаю, не знаю, по-моему там ближний бой приоритетнее, кастовать некогда, хотя я там однажды всех из арбалета почикал, они даже добежать не сумели...

Wolfgar93
21.09.2011, 09:30
ElderGamer, хотелось бы спросить, решена ли проблема дублирования опыта за NPC.
Можно было их сначала избить, получить опыт, а потом застрелить из дальнобойного оружия и опять получить опыт.
Решена ли эта проблема, и каким способом?

ElderGamer
21.09.2011, 12:48
Нет. Этой проблемой я пока не занимался. Сейчас моих знаний в области скриптинга ещё не достаточно для её решения. Есть ещё также масса других проблем и проблемок, которые мне пока не по зубам. Но не будем зарекаться. ;)

George1234
23.09.2011, 16:27
Если не секрет, в чем проблема в лечении двойного начисления опыта?
Как по мне, должно хватить этого:

func void B_DeathXP()
{
PrintDebugNpc (PD_ZS_FRAME, "B_DeathXP");
PrintGlobals (PD_ZS_CHECK);

if C_NpcIsHuman(self)
&& (Npc_WasInState(self, ZS_Unconscious) || self.aivar[AIV_WASDEFEATEDBYSC])
{
PrintDebugNpc (PD_ZS_CHECK, "...Opfer ist bewuЯtloser Mensch!");
}
else
{
PrintDebugNpc (PD_ZS_CHECK, "...Opfer ist entweder nicht bewuЯtlos oder kein Mensch!");
B_GiveXP (self.level * XP_PER_LEVEL_DEAD);
};
};

ElderGamer
23.09.2011, 17:50
Если не секрет, в чем проблема в лечении двойного начисления опыта?

Привет! Если вопрос ко мне, то для меня проблема заключается хотя бы в том, что я до сих пор не знал о существовании этой функции. Я вообще пока не особенно разбираюсь в системе функций Готики, их много, и разбросаны они по разным местам. На углублённое их изучение у меня пока просто не хватает времени. Так что любые консультации и подсказки приветствуются! Спасибо! §wink

Вопрос по поводу переменной (или, что это такое?) self.aivar[AIV_WASDEFEATEDBYSC]. Она изменяется, только когда непися побьёт ГГ, или другие неписи тоже могут побить его, вызвав тем самым, изменение значения переменной?

George1234
23.09.2011, 21:35
Данная переменная меняется только если непися побьет ГГ или член его команды - через нее в функции B_UnconciousXP организована защита от начисления опыта за последующие избиения.

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

Да, если еще не исправлена возможность читинга с заклинанием телекинеза, то я выкладывал метод лечения здесь: http://forum.worldofplayers.ru/showthread.php?t=34507

ElderGamer
24.09.2011, 19:02
Данная переменная меняется только если непися побьет ГГ или член его команды - через нее в функции B_UnconciousXP организована защита от начисления опыта за последующие избиения.

Спасибо за пояснение! §wink


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

Да, конечно, помощь очень нужна. И список будет. Чуть позже.

Пока навскидку могу вспомнить проблему с анимацией тренировки с оружием. Во первых, наблюдается глюк, если попытаться заговорить с неписем во время этой анимации. Непись убирает меч и поворачивается к ГГ, но затем продолжает анимацию уже без оружия. И всё это происходит в режиме диалога до первой реплики непися. Другую проблему, связанную с этой анимацией, я уже описывал на АГ. Если вызвать на бой одного из бойцов арены в СЛ во время, когда не арене кто-либо из других бойцов занимается тренировкой, то тренирующийся боец не прерывает тренировку и мешает проводить бой с вызванным бойцом. Я пытался изменять распорядок дня бойцам, если кто-то из них вызван на бой. Распорядок исправно меняется (контролирую это в режиме марвина), но анимация тренировки не прерывается. Советы камрадов на АГ, к сожалению, не помогли мне пока решить эту проблему.

Имеет место проблема неагрессивности последнего из бессмертных шаманов орков в храме Спящего. В скрипте предусмотрено два способа вызвать его агрессию. Но даже после переведения шамана в режим агрессии, если от него убежать и вернуться позже, шаман перестаёт реагировать на ГГ. Даже, когда ГГ рубит его УРИЗЕЛЕМ. Непорядок, короче. Возможно, это как-то связано с тем, что изначально шаман имеет статус друга и диалог с ним может начаться, даже когда ГГ стоит с обнажённым оружием.


Да, если еще не исправлена возможность читинга с заклинанием телекинеза, то я выкладывал метод лечения здесь: http://forum.worldofplayers.ru/showthread.php?t=34507

Если честно, я про возможность читинга со свитками телекинеза даже не знал. А вот бестолковость рун Шестого Круга для меня не секрет. На мой взгляд, неплохо бы подкорректировать их параметры так, чтобы они стали реально грозным оружием в руках некроманта. А иначе, ради чего мы учимся Шестому Кругу магии? Ради того, чтобы носить мантию некроманта и рубить вражин УРИЗЕЛЕМ? :D

Shifroval
24.09.2011, 19:58
Прочитав о шаманах, вспомнил что в комнате одного из них, где ещё коридор с мишенями и в конце такой пресс(вроде), в той комнате бутыльки с маной и жизнью висят прямо в воздухе. Если будет правиться файл мира, то это стоит тоже исправить. Хотя такую очевидную вещь наверное уже все заметили.

А ну и вопрос-предложение. В лесу что на стороне Старой шахты, там есть такой тоннельчик и у того его выхода что смотрит на подъём к месту обмена, там есть кустик с очень ярким пятном света. Баг?

-Fritz-
24.09.2011, 20:04
А ещё бутылка висит в воздухе в помещении перед мостом к последнему шаману. Слева от входа, где тусят одержимые стражи, там же (в смежном помещении) лежит отличная секира.

George1234
24.09.2011, 20:29
Висящие бутылки скорее всего так и задуманы, чтобы можно было взять только телекинезом.

Wolfgar93
24.09.2011, 21:04
А ну и вопрос-предложение. В лесу что на стороне Старой шахты, там есть такой тоннельчик и у того его выхода что смотрит на подъём к месту обмена, там есть кустик с очень ярким пятном света. Баг?
Это баг с расположением источников света. Такое в Г1 часто встречается.
А насчет висящих бутылок я уже исправил миры с помощью Spacer.

George1234
25.09.2011, 13:25
Пока навскидку могу вспомнить проблему с анимацией тренировки с оружием. Во первых, наблюдается глюк, если попытаться заговорить с неписем во время этой анимации. Непись убирает меч и поворачивается к ГГ, но затем продолжает анимацию уже без оружия. И всё это происходит в режиме диалога до первой реплики непися.
Ну это лечится легко. Просто анимация тренировки с оружием прописана во втором слое и продолжает проигрываться, хотя собеседник вроде как стоит. Надо в файле анимации человека HUMANS.MDS сделать так:

ani ("t_1hSFree" 1 "" 0.0 0.2 M. "Hum_FreeFight_M01.asc" F 0 750 FPS:10)
С боями на арене это тоже может частично помочь, если использовать одновременно с советами с аг.ру.


Имеет место проблема неагрессивности последнего из бессмертных шаманов орков в храме Спящего. В скрипте предусмотрено два способа вызвать его агрессию. Но даже после переведения шамана в режим агрессии, если от него убежать и вернуться позже, шаман перестаёт реагировать на ГГ. Даже, когда ГГ рубит его УРИЗЕЛЕМ. Непорядок, короче. Возможно, это как-то связано с тем, что изначально шаман имеет статус друга и диалог с ним может начаться, даже когда ГГ стоит с обнажённым оружием.
Тут скорее всего баг из-за неадекватности отработки aivar[AIV_TALKBEFOREATTACK] и тогда он может наблюдаться со всеми 5-ю шаманами в храме (сия штука только у них используется). Надо сделать следующее:

func void Info_HighPriest5_Info()
{
AI_SetWalkMode(self,NPC_WALK);
AI_GotoNpc(self,other);
if(Npc_HasItems(hero,Mythrilklinge02) || Npc_HasItems(hero,UrizielRune))
{
AI_Output(self,other,"Info_HighPriest5_17_04"); //УУУ ТЕЕЕБЯЯЯ ЕЕЕСТЬ МОООЩНОЕЕЕ ОРУУУЖИЕЕЕ!!!
AI_Output(self,other,"Info_HighPriest5_17_05"); //ЯЯЯЯ ОСТАААНОВЛЮЮЮ ТЕЕЕБЯЯ!!!
AI_StopProcessInfos(self);
self.npcType = npctype_main;
self.aivar[AIV_TALKBEFOREATTACK] = FALSE;
Npc_SetAttitude(self,ATT_HOSTILE);
Npc_SetTempAttitude(self,ATT_HOSTILE);
}
.......

Сам не проверял - нет подходящего сейва.


А вот бестолковость рун Шестого Круга для меня не секрет. На мой взгляд, неплохо бы подкорректировать их параметры так, чтобы они стали реально грозным оружием в руках некроманта. А иначе, ради чего мы учимся Шестому Кругу магии? Ради того, чтобы носить мантию некроманта и рубить вражин УРИЗЕЛЕМ? :D
Когда ГГ получает руны 6-го круга, изничтожать уже некого, а убойной силы руны Уризеля достаточно, чтобы пройти последних противников - у них просто все защиты большие, а от магии всего 100. У дыхания смерти повреждение 100, есть она только у последнего шамана (если не ошибаюсь), так что усиливать - только время тратить. Да, если дыхание смерти можно получить раньше, то усиливая ее надо увеличивать защиту Граш-Варраг-Арушата, иначе игру можно будет пройти в пятой главе (подобный баг вылез в Мрачных Тайнах).

-Fritz-
25.09.2011, 14:50
Висящие бутылки скорее всего так и задуманы, чтобы можно было взять только телекинезом.
Что за ерунда? Так можно все криво расположенные предметы обосновать как задуманные. ИМХО, когда предмет мотается в воздухе без всякой на то причины - баг.

George1234
25.09.2011, 15:08
Что за ерунда? Так можно все криво расположенные предметы обосновать как задуманные. ИМХО, когда предмет мотается в воздухе без всякой на то причины - баг.
Не надо передергивать. Криво расположен юнитор в форте Лестера, но что-то вы не рветесь его переставить на другое место, чтобы не возникало вопросов, как туда маг к нему лазил. Криво барьер стоит - не расширься он сверх меры и все заключенные сидели бы посреди колонии, не имея даже теоретической возможности руду для короля добывать, а сдвигать его вы опять таки не рветесь. И так можно продолжать очень долго.
Какова вероятность, что такое количество криво расположенных предметов в маленькой локации? И все они по углам всяким распиханы, так что не в воздухе мотаются, а типа в паутине запутались:D Сколько раз требуется заклинание телекинеза? Два на всю игру. Зачем тогда вообще руну делать было? ИМХО, бутылки там висят дабы от закла как-бы дополнительная польза была. Разумеется сомнения может развеять только кто-то из разрабов Готики.

Dimus
25.09.2011, 18:01
Может, проблема с отстутствием агрессивности у шаманов-нежити в случае, если ГГ сбежал от них, заключается в том, что у них задаётся временная, а не постоянная враждебность к ГГ после разговора с ним? Например, в 4-й главе у охраняющих закрытые ворота Старого Лагеря стражников после разговора ГГ с Бладвином и Флетчером прописана постоянная враждебность к ГГ.
Story\Missions\DIA_GRD_233_Bloodwyn.d:

B_SetPermAttitude(GRD_233_Bloodwyn,ATT_HOSTILE);
B_SetPermAttitude(GRD_232_Gardist,ATT_HOSTILE);
B_SetPermAttitude(GRD_229_Gardist,ATT_HOSTILE);
B_SetPermAttitude(GRD_216_Torwache,ATT_HOSTILE);
B_SetPermAttitude(GRD_217_Torwache,ATT_HOSTILE);
Story\Missions\DIA_GRD_255_Fletcher.d:

B_SetPermAttitude(GRD_255_Fletcher,ATT_HOSTILE);
B_SetPermAttitude(GRD_252_Gardist,ATT_HOSTILE);
B_SetPermAttitude(GRD_253_Gardist,ATT_HOSTILE);
B_SetPermAttitude(GRD_244_Gardist,ATT_HOSTILE);
B_SetPermAttitude(GRD_214_Torwache,ATT_HOSTILE);
B_SetPermAttitude(GRD_215_Torwache,ATT_HOSTILE);

ElderGamer
25.09.2011, 18:47
Ну это лечится легко. ...

Тут скорее всего баг из-за ...

Сам не проверял - нет подходящего сейва.

Завтра проверю. Сейвы у меня есть. Спасибо за оперативность! §wink



Когда ГГ получает руны 6-го круга, изничтожать уже некого, а убойной силы руны Уризеля достаточно, чтобы пройти последних противников - у них просто все защиты большие, а от магии всего 100. У дыхания смерти повреждение 100, есть она только у последнего шамана (если не ошибаюсь), так что усиливать - только время тратить. Да, если дыхание смерти можно получить раньше, то усиливая ее надо увеличивать защиту Граш-Варраг-Арушата, иначе игру можно будет пройти в пятой главе (подобный баг вылез в Мрачных Тайнах).

Тут ведь как получается. Руны Шестого Круга даются ГГ только в шестой главе игры, и действительно, противников там раз-два и обчёлся. НО... Тут бы, казалось бы, и надо дать игроку почувствовать, что он не зря стремился пройти все Круги магии, что не зря напялил на себя мантию некроманта. А что мы имеем в итоге?

Руна "Дыхание смерти" годна только в бою против одиночных противников в храме Спящего и то, при условии, что противника можно поймать в фокус на большом расстоянии, и он не успеет добежать до ГГ. Таких противников после получения этой руны всего два или три.

Свойства руны "Волна смерти УРИЗЕЛЯ" у меня почти стёрлись из памяти. Согласился вытащить её из меча всего однажды и убедился тогда в том, что она практически неприменима в бою против толпы сбрендивших послушников. Слишком долго кастуется, каст прерывается ударом кого-нибудь из противников, урон недостаточно силён. Гораздо удобнее валить противников огненным штормом, периодически сваливая от них под действием зелья ускорения. И на кой, спрашивается, нужны тогда эти руны Шестого Круга? Да и солидно ли магу Шестого Круга бегать от противников?

Справедливости ради стоит сказать что и руны Пятого Круга в первой Готике не оправдывают возложенного на них доверия. Но здесь опасно что-то менять, ибо баланс. А вот усиление рун Шестого Круга на балансе практически не скажется, только даст удовлетворение игроку, выбравшему путь мага. Мне так кажется. :dnuhr:


Это баг с расположением источников света. Такое в Г1 часто встречается.
А насчет висящих бутылок я уже исправил миры с помощью Spacer.

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


Может, проблема с отстутствием агрессивности у шаманов-нежити в случае, если ГГ сбежал от них, заключается в том, что у них задаётся временная, а не постоянная враждебность к ГГ после разговора с ним?

Там вроде бы и временная и постоянная враждебность задаётся:



Npc_SetAttitude(self,ATT_HOSTILE);
Npc_SetTempAttitude(self,ATT_HOSTILE);


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

P. S. По поводу висящих в воздухе бутылочек и факелов, думаю, это всё-таки ошибка игрового мира. Хотя, сама идея запрятать что-то вне зоны досягаемости неплоха. Но это должно быть корректно реализовано. Если тот же храм Спящего поддаётся правке, то можно распихать те же бутылочки в такие места, где они действительно будут лежать вне зоны досягаемости, а не висеть в воздухе. Тогда и заклинание "Телекинеза" будет полезно, и откровенные ошибки мира не будут бросаться в глаза. Как то так.

George1234
25.09.2011, 18:48
Dimus, перманентная враждебность своего рода игра словами, точнее кодом:

func void Npc_SetPermAttitude(var C_Npc slf,var int att)
{
PrintDebugNpc(PD_ZS_DETAIL,"Npc_SetPermAttitude()");
Npc_SetAttitude(slf,att);
Npc_SetTempAttitude(slf,att);
};
Перепутал имя функции, но сути не меняется:

func void B_SetPermAttitude(var int npcInstance,var int newAttitude)
{
var C_Npc npc;
PrintDebugNpc(PD_ZS_DETAIL,"B_SetPermAttitude");
npc = Hlp_GetNpc(npcInstance);
Npc_SetAttitude(npc,newAttitude);
Npc_SetTempAttitude(npc,newAttitude);
};
А у шаманов:

Npc_SetAttitude(self,ATT_HOSTILE);
Npc_SetTempAttitude(self,ATT_HOSTILE);
Как на меня, разницы нет.
А вот с aivar[AIV_TALKBEFOREATTACK] вопросы есть - по ней идет проверка на начало обязательных диалогов с враждебными неписями и если диалог не состоится, то и атаки не будет. А как он может состояться, если уже все было сказано? Причем используется это только в 5 случаях за всю игру - с каждым из шаманов. Я не утверждаю, что это так, т.к. сейва нет для проверки, а тратить время на прохождение игры ради такой мелочи я не хочу.

ElderGamer, руны 6-го круга лучше ополезнить по-другому: поставить Апокалипсическим стражам, фанатичным послушникам, Кор Галому и демонам всю защиту, кроме магии, по 1000 (как у 5-го шамана) и защиту от магии нормальную, чтобы ничем кроме дыхания смерти и волны смерти их не пробивало.

ElderGamer
25.09.2011, 19:38
ElderGamer, руны 6-го круга лучше ополезнить по-другому: поставить Апокалипсическим стражам, фанатичным послушникам, Кор Галому и демонам всю защиту, кроме магии, по 1000 (как у 5-го шамана) и защиту от магии нормальную, чтобы ничем кроме дыхания смерти и волны смерти их не пробивало.

Тут даже не столько важен урон от магии, сколько время, необходимое на каст и сопутствующий эффект временного паралича. Нужно, чтобы маг был способен кастовать заклинания, не подпуская к себе противников на расстояние удара. Кстати, на самого ГГ руна "Дыхание смерти" оказывает кратковременное парализующее действие. По крайней мере, когда шаман, кастующий заклинание, находится рядом. Возможно, это не эффект непосредственно заклинания, а проявление полученного героем повреждения. Не знаю. :dnuhr:

George1234
25.09.2011, 20:01
Тут даже не столько важен урон от магии, сколько время, необходимое на каст и сопутствующий эффект временного паралича. Нужно, чтобы маг был способен кастовать заклинания, не подпуская к себе противников на расстояние удара.
Тогда надо просто поменять скорость каста:

nstance Spell_MassDeath(C_Spell_Proto)
{
time_per_mana = 250; // поставить меньше - и всего делов
damage_per_level = SPL_DAMAGE_MASSDEATH;
spellType = SPELL_BAD;
damagetype = DAM_MAGIC;
targetCollectAlgo = TARGET_COLLECT_ALL_FALLBACK_NONE;
targetCollectRange = 1000;
targetCollectAzi = 360;
targetCollectElev = 60;
};

Wolfgar93
25.09.2011, 20:31
Просвети меня, будь добр, что правится в этом случае, относительно лёгкие файлы архива meshes.VDF, или более тяжёлые файлы из worlds.VDF? Насколько потяжелеет патч, если добавить туда правки игрового мира?
Это правка файлов .zen в архиве Worlds.vdf
Большую часть мира я уже исправил и заполнил, так что работа в этой части не требуется.
Потратил огромное количество времени и потрачу еще несколько дней, прежде чем залью архив.
Исправленный World.zen весит примерно ~35мб.
Выложу все свои наработки в ближайшее время.
Пока что работаю над мирами.

ElderGamer
26.09.2011, 13:55
Если не секрет, в чем проблема в лечении двойного начисления опыта?
Как по мне, должно хватить этого:
...


Работает!


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

ani ("t_1hSFree" 1 "" 0.0 0.2 M. "Hum_FreeFight_M01.asc" F 0 750 FPS:10)
С боями на арене это тоже может частично помочь, если использовать одновременно с советами с аг.ру.

Частично работает. В режиме диалога анимация тренировки прерывается сразу. Но при смене распорядка в момент тренировки она прерываться пока не хочет. Вот фрагмент скрипта Кирго:



var C_Npc Arena_Fighter;
...
AI_Output(other,self,"Info_Kirgo_ChargeREAL_15_00"); //Мы будем драться - ты готов?
AI_Output(self,other,"Info_Kirgo_ChargeREAL_05_01"); //Иди за мной!
AI_StopProcessInfos(self);
Kirgo_Charged = TRUE;
Npc_ExchangeRoutine(self,"GUIDE");
Arena_Fighter = Hlp_GetNpc(Sld_729_Kharim);
Npc_ExchangeRoutine(Arena_Fighter,"nopractice");
Mdl_RemoveOverlayMDS(Arena_Fighter,"T_1HSFREE");
Arena_Fighter = Hlp_GetNpc(Tpl_1422_GorHanis);
Npc_ExchangeRoutine(Arena_Fighter,"nopractice");
Mdl_RemoveOverlayMDS(Arena_Fighter,"T_1HSFREE");



Может, я чего-то накосячил? Пробовал добавлять функцию B_FullStop(Arena_Fighter) вместо или вместе с Mdl_RemoveOverlayMDS(Arena_Fighter,"T_1HSFREE"). Всё равно не работает, так, как нужно.



Тут скорее всего баг из-за неадекватности отработки aivar[AIV_TALKBEFOREATTACK] и тогда он может наблюдаться со всеми 5-ю шаманами в храме (сия штука только у них используется). Надо сделать следующее:
...


Тоже не работает. Шаман перестаёт реагировать на ГГ даже если не доводить дело до драки в пятой главе. Для такого случая я пытался добавить инстанцию:



instance Info_HighPriest5_2(C_Info)
{
npc = ORC_Priest_5;
nr = 1;
condition = Info_HighPriest5_2_Condition;
information = Info_HighPriest5_2_Info;
permanent = 0;
important = 1;
};


func int Info_HighPriest5_2_Condition()
{
if(Npc_KnowsInfo(hero,Info_HighPriest5) && !Npc_KnowsInfo(hero,Info_HighPriest5FAILED) && (Npc_HasItems(hero,Mythrilklinge02) || Npc_HasItems(hero,UrizielRune)))
{
return TRUE;
};
};

func void Info_HighPriest5_2_Info()
{
AI_SetWalkMode(self,NPC_WALK);
AI_GotoNpc(self,other);
AI_Output(self,other,"Info_HighPriest5_17_04"); //УУУ ТЕЕЕБЯЯЯ ЕЕЕСТЬ МОООЩНОЕЕЕ ОРУУУЖИЕЕЕ!!!
AI_Output(self,other,"Info_HighPriest5_17_05"); //ЯЯЯЯ ОСТАААНОВЛЮЮЮ ТЕЕЕБЯЯ!!!
AI_StopProcessInfos(self);
self.npcType = npctype_main;
Npc_SetAttitude(self,ATT_HOSTILE);
Npc_SetTempAttitude(self,ATT_HOSTILE);
};



Но шаман ни на что не реагирует. Кстати, а как и где считается переменная self.aivar[AIV_MISSION1]? Насколько я понимаю, это счётчик количества ударов, нанесённых шаману. Может глюк связан с ней?

George1234
26.09.2011, 16:45
С ареной вместо Mdl_RemoveOverlayMDS(Arena_Fighter,"T_1HSFREE"); лучше поставить просто AI_GotoWP(Arena_Fighter, "начальная_точка_расписания_nopractice");
B_FullStop(Arena_Fighter) тоже можно добавить, но она фехтование всеравно не прервет, пока анимация не закончится.

С шаманом просто добавлена новая инстанция диалога? Если да, то она появится только в новой игре.
Если можно скинуть сюда сейв около шамана, то я проверю у себя.

Wolfgar93
27.09.2011, 10:46
http://forum.worldofplayers.de/forum/threads/946437-G1-Дополнение-мира/page2
Кому интересно, помогите пожалуйста с заполнением мира.

ElderGamer
27.09.2011, 13:24
@Wolfgar93

Из недоработок мира могу предложить исправить эту:


http://s55.radikal.ru/i149/1109/e3/e5ab3e3b422ct.jpg (http://radikal.ru/F/s55.radikal.ru/i149/1109/e3/e5ab3e3b422c.jpg.html)

Нужно убрать дорогу, упирающуюся в скалу и добавить меш скал на горизонте.

Из прозрачных предметов вспоминается подставка для книг. Особенно неприятно, когда стоит она не у стены, как у Сатураса, например.

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

Кстати, удалось ли тебе решить проблему падающей колонны?

Wolfgar93
27.09.2011, 13:32
Уже заполнено огромное количество пещер и местности...в ближайшее время выложу тест-версию...дальше решим что делать.
Колонна развернута в правильную сторону, но остаётся прозрачной. Нужен профи.
Насчет исправлений меша: пока что не знаю, c 3d не очень дружу, только с функцией редактора.

-Fritz-
27.09.2011, 17:38
@Wolfgar93

Из недоработок мира могу предложить исправить эту:


http://s55.radikal.ru/i149/1109/e3/e5ab3e3b422ct.jpg (http://radikal.ru/F/s55.radikal.ru/i149/1109/e3/e5ab3e3b422c.jpg.html)

Нужно убрать дорогу, упирающуюся в скалу и добавить меш скал на горизонте.

Из прозрачных предметов вспоминается подставка для книг. Особенно неприятно, когда стоит она не у стены, как у Сатураса, например.

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

Кстати, удалось ли тебе решить проблему падающей колонны?
Так то убрать бы да. Но ведь она фигурирует в начальном ролике игры, где урки тащат руду из долины. М.б. сделать небольшое ущелье и перекрыть его барьером? Он кстати часом не сразу за этой скалой проходит?

Xenon21
28.09.2011, 01:50
Так вроде это место откуда идет показ видео о создании барьера, ну или чуть правее ближе к троллю где-то здесь. А слышал еще вот еще что, в этом месте не случайно нет скал именно там якобы стоял тот монастырь куда первоначально "убегали" маги огня когда попадали в опалу к Гомезу, но позже вроде быть проще стало сделать их просто мертвыми, но я хз как там.

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

Olor1n
28.09.2011, 16:56
А из того что нужно дополнить, так это нужно ту деревянную "церковь" или какое-то там место поклонения в общем, вернуть на болота. Она фигурировала в пару начальных видио но позже видимо из-за сроков была убрана из мира (вроде там где только огонек на болотах остался).

а можно скрин, что-то я не помню такой.

ЗЫ не уверен, что вернуть просто будет: не факт, что она есть в ресурсах игры.

-Fritz-
28.09.2011, 17:06
>что-то я не помню такой.
По моему видел пост Одина про странное строение из дерева в БЛ. М.б. он подскажет?

И про выход из долины сегодня проверю в ролике.
Проверил. Вот (http://s015.radikal.ru/i331/1109/73/86cef629a776.jpg).
Вот где это место?

П.С. Вот (http://forum.worldofplayers.de/forum/archive/index.php/t-877098.html) что нашёл. Ближе к низу страницы про БЛ.
Например:
odin68:
Вот еще пару ракурсов сооружения:

http://odin.worldofgothic.ru/images/gothic/aschram19.jpg

http://odin.worldofgothic.ru/images/gothic/aschram20.jpg

ElderGamer
28.09.2011, 18:48
И про выход из долины сегодня проверю в ролике.
Проверил. Вот (http://s015.radikal.ru/i331/1109/73/86cef629a776.jpg).
Вот где это место?


Могу ошибаться, но мне кажется, что в ролике показан берег реки по пути из Болотного Лагеря в Старый. Примерно там находится пещера чёрных гоблинов, укравших Альманах. Ну ещё нужно учитывать, что одна из башен замка обрушилась. :)

George1234
28.09.2011, 19:05
ElderGamer, разобрался я с реакцией последнего шамана в храме. Кстати, он у меня становится неагрессивным только при сохранении/загрузке игры и смене локации, а при удалении в пределах локации он атаковать не перестает.
Все связанно с багом при загрузке (возможно сохранении) - тип непися возвращается к начальному npctype_friend. Лечится следующим образом:


func void init_orctempel()
{
Wld_SetMobRoutine (0, 0, "FIREPLACE", 1);
B_InitMonsterAttitudes ();
B_InitGuildAttitudes ();
if (((Npc_HasItems(hero,Mythrilklinge02) || Npc_HasItems(hero,UrizielRune)) & Npc_KnowsInfo(hero,Info_HighPriest5)) || Npc_KnowsInfo(hero,Info_HighPriest5FAILED))
{
ORC_Priest_5.npcType = npctype_main;
};
};
Да, при тесте на высланном мне сейве, если состоится первый обязательный диалог, а потом будет поднят Уризель, то Шаман сразу атаковать не будет - надо сохраниться/загрузить или поменять локацию, но это издержки предварительной подготовки - при нормальном прохождении все будет нормально.

Dimus
28.09.2011, 19:28
George1234, а почему нельзя прописать Граш-Варраг-Арушату тип npctype_main изначально, как и у других шаманов-нежити?:dnuhr: Тогда станет не нужным костыль с изменением типа этого персонажа при инициализации храма Спящего.

ElderGamer, в случае вступления ГГ в НЛ кроме обязательного провала вступления в СЛ и БЛ другие квесты уходят в проваленные даже в том случае, если они были завершены раньше. Причиной является ошибка в скрипте Story\Missions\DIA_Org_801_Lares.d:

func void ORG_801_Lares_Reicht_Info()
{
AI_Output(other,self,"ORG_801_Lares_Reicht_15_00"); //Ну так как: этого достаточно, чтобы ты принял меня в шайку?
if((Points_NC >= 30) && (hero.level >= 5))
{
AI_Output(self,other,"ORG_801_Lares_Reicht_AUFNAHME_11_00"); //Я бы сказал - да!
AI_Output(self,other,"ORG_801_Lares_Reicht_AUFNAHME_11_01"); //И у меня даже есть для тебя подарок - доспехи получше того, что ты сейчас носишь. Ты заслужил их!
hero.guild = GIL_ORG;
Npc_SetTrueGuild(hero,GIL_ORG);
CreateInvItem(hero,org_armor_l);
CreateInvItem(self,ItAmArrow);
B_GiveInvItems(self,hero,ItAmArrow,1);
Npc_RemoveInvItem(hero,ItAmArrow);
AI_EquipBestArmor(hero);
B_GiveXP(XP_BecomeBandit);
B_LogEntry(CH1_JoinNC,"Ларс принял меня в банду. Теперь Новый Лагерь - это мой дом!");
Log_SetTopicStatus(CH1_JoinNC,LOG_SUCCESS);
Log_CreateTopic(CH1_JoinOC,LOG_MISSION);
Log_SetTopicStatus(CH1_JoinOC,LOG_FAILED);
B_LogEntry(CH1_JoinOC,"Участник банды Ларса не может присоединиться к Старому Лагерю. Это просто невозможно.");
Log_CreateTopic(CH1_JoinPsi,LOG_MISSION);
Log_SetTopicStatus(CH1_JoinPsi,LOG_FAILED);
B_LogEntry(CH1_JoinPsi,"Братству придется как-то обходиться без меня, поскольку теперь Новый Лагерь является моим домом.");
Log_SetTopicStatus(CH1_LostNek,LOG_FAILED);
Log_SetTopicStatus(CH1_FiskNewDealer,LOG_FAILED);
Log_SetTopicStatus(CH1_KalomsRecipe,LOG_FAILED);
Log_SetTopicStatus(CH1_BringList,LOG_FAILED);
Log_SetTopicStatus(CH1_MordragKO,LOG_FAILED);
}
else
{
if(Npc_KnowsInfo(hero,ORG_801_Lares_MordragSentMe))
{
AI_Output(self,other,"ORG_801_Lares_Reicht_11_02"); //Мордраг говорил о тебе.
};
if(Npc_KnowsInfo(hero,ORG_801_Lares_BringList))
{
AI_Output(self,other,"ORG_801_Lares_Reicht_11_03"); //Ты стал знаменитым с тех пор, как принес сюда тот список.
};
AI_Output(self,other,"ORG_801_Lares_Reicht_11_04"); //Но ты еще не готов. Занимайся своими делами.
if(hero.level < 5)
{
B_PrintGuildCondition(5);
};
};
};
Вот исправленный фрагмент скрипта Лареса (в проваленные уходят только активные квесты):

if(Sly_LostNek == LOG_RUNNING)
{
Log_SetTopicStatus(CH1_LostNek,LOG_FAILED);
B_LogEntry(CH1_LostNek,"Теперь я в Новом Лагере. Не вижу никакого смысла продолжать поиски пропавшего Нека.");
};
if(Fisk_GetNewHehler == LOG_RUNNING)
{
Log_SetTopicStatus(CH1_FiskNewDealer,LOG_FAILED);
B_LogEntry(CH1_FiskNewDealer,"Теперь я в Новом Лагере. Пусть Фиск сам ищет нового поставщика.");
};
if(Dexter_GetKalomsRecipe == LOG_RUNNING)
{
Log_SetTopicStatus(CH1_KalomsRecipe,LOG_FAILED);
B_LogEntry(CH1_KalomsRecipe,"Теперь я в Новом Лагере. Декстеру придется обойтись без рецепта Галома.");
};
if(Diego_BringList == LOG_RUNNING)
{
Log_SetTopicStatus(CH1_BringList,LOG_FAILED);
B_LogEntry(CH1_BringList,"Теперь я в Новом Лагере. Сейчас уже слишком поздно отдавать список Диего.");
};
if(Thorus_MordragKo == LOG_RUNNING)
{
Log_SetTopicStatus(CH1_MordragKO,LOG_FAILED);
B_LogEntry(CH1_MordragKO,"Теперь я в Новом Лагере. И я уже не стану решать проблему Торуса.");
};

George1234
28.09.2011, 21:04
George1234, а почему нельзя прописать Граш-Варраг-Арушату тип npctype_main изначально, как и у других шаманов-нежити?:dnuhr: Тогда станет не нужным костыль с изменением типа этого персонажа при инициализации храма Спящего.

Можно, но тогда придется сделать обрезание авторской задумке с его избиением неэффективным оружием, а это уже скорее модинг, а не исправление ошибок.
З.Ы. Никогда не понимал привычки все называть костылями. Уж если недоработки движка приходится править через скрипты, то тут больше подходит термин "протез";)

ElderGamer
29.09.2011, 11:33
Все связанно с багом при загрузке (возможно сохранении) - тип непися возвращается к начальному npctype_friend. Лечится следующим образом:

...


Ага, спасибо! Воспользовался идеей, но реализовал чуточку по-другому, с помощью дополнительной переменной:



func void init_orctempel()
{
Wld_SetMobRoutine(0,0,"FIREPLACE",1);
B_InitMonsterAttitudes();
B_InitGuildAttitudes();
if(HighPriest5IsHostile == 1)
{
ORC_Priest_5.npcType = npctype_main;
};
};


Сам скрипт шамана выглядит теперь так:



var int HighPriest5IsHostile;

instance Info_HighPriest5(C_Info)
{
npc = ORC_Priest_5;
nr = 1;
condition = Info_HighPriest5_Condition;
information = Info_HighPriest5_Info;
permanent = 0;
important = 1;
};


func int Info_HighPriest5_Condition()
{
return TRUE;
};

func void Info_HighPriest5_Info()
{
AI_SetWalkMode(self,NPC_WALK);
AI_GotoNpc(self,other);
if(Npc_HasItems(hero,Mythrilklinge02) || Npc_HasItems(hero,UrizielRune))
{
AI_Output(self,other,"Info_HighPriest5_17_04"); //УУУ ТЕЕЕБЯЯЯ ЕЕЕСТЬ МОООЩНОЕЕЕ ОРУУУЖИЕЕЕ!!!
AI_Output(self,other,"Info_HighPriest5_17_05"); //ЯЯЯЯ ОСТАААНОВЛЮЮЮ ТЕЕЕБЯЯ!!!
AI_StopProcessInfos(self);
self.npcType = npctype_main;
Npc_SetAttitude(self,ATT_HOSTILE);
Npc_SetTempAttitude(self,ATT_HOSTILE);
HighPriest5IsHostile = 1;
}
else
{
AI_Output(self,other,"Info_HighPriest5_17_01"); //ТЫЫЫ ДОООЛЖЕН ПОВЕРНУУУТЬ НАЗААААД!!!
AI_Output(self,other,"Info_HighPriest5_17_02"); //НИИИКТООО НЕ СМЕЕЕЕЕЕТ ТРЕЕЕВОЖИИИИТЬ СООООН МОЕЕЕЕГО ПООООВЕЛИИИИТЕЛЯ!!!
AI_Output(other,self,"Info_HighPriest5_15_03"); //Ошибочка: ваш СПЯЩИЙ очень скоро проснется!
AI_StopProcessInfos(self);
B_Story_EncounteredHighPriest();
};
};


instance Info_HighPriest5FAILED(C_Info)
{
npc = ORC_Priest_5;
nr = 2;
condition = Info_HighPriest5FAILED_Condition;
information = Info_HighPriest5FAILED_Info;
important = 1;
};


func int Info_HighPriest5FAILED_Condition()
{
if(Npc_KnowsInfo(hero,Info_HighPriest5) && (self.aivar[AIV_MISSION1] >= HighPriest_MaxHit) && !Npc_HasItems(hero,Mythrilklinge02) && !Npc_HasItems(hero,UrizielRune))
{
return TRUE;
};
};

func void Info_HighPriest5FAILED_Info()
{
AI_Output(other,self,"Info_HighPriest5FAILED_15_01"); //Черт! На нем ни царапины! Нужен другой...
AI_Output(self,other,"Info_HighPriest5FAILED_17_02"); //ТЕЕЕПЕЕЕРЬ ТЫЫЫ УМРЕЕЕШЬ!!!
AI_Output(other,self,"Info_HighPriest5FAILED_15_03"); //Пора убираться отсюда, да побыстрее!
AI_RemoveWeapon(other);
AI_TurnAway(other,self);
self.npcType = npctype_main;
Npc_SetAttitude(self,ATT_HOSTILE);
Npc_SetTempAttitude(self,ATT_HOSTILE);
HighPriest5IsHostile = 1;
B_LogEntry(CH4_EnterTemple,"Граш-Варраг-Арушат, очевидно, не из числа обычных орочьих шаманов. Он гораздо сильнее, а мое оружие просто не способно ему повредить. Мне нужно найти более могущественное оружие!");
B_GiveXP(XP_RetreatFromLastPriest);
AI_StopProcessInfos(self);
};


instance Info_HighPriest5_2(C_Info)
{
npc = ORC_Priest_5;
nr = 1;
condition = Info_HighPriest5_2_Condition;
information = Info_HighPriest5_2_Info;
permanent = 0;
important = 1;
};


func int Info_HighPriest5_2_Condition()
{
if(Npc_KnowsInfo(hero,Info_HighPriest5) && (EncounteredHighPriest == TRUE) && !Npc_KnowsInfo(hero,Info_HighPriest5FAILED) && (Npc_HasItems(hero,Mythrilklinge02) || Npc_HasItems(hero,UrizielRune)))
{
return TRUE;
};
};

func void Info_HighPriest5_2_Info()
{
AI_SetWalkMode(self,NPC_WALK);
AI_GotoNpc(self,other);
AI_Output(self,other,"Info_HighPriest5_17_04"); //УУУ ТЕЕЕБЯЯЯ ЕЕЕСТЬ МОООЩНОЕЕЕ ОРУУУЖИЕЕЕ!!!
AI_Output(self,other,"Info_HighPriest5_17_05"); //ЯЯЯЯ ОСТАААНОВЛЮЮЮ ТЕЕЕБЯЯ!!!
AI_StopProcessInfos(self);
self.npcType = npctype_main;
Npc_SetAttitude(self,ATT_HOSTILE);
Npc_SetTempAttitude(self,ATT_HOSTILE);
HighPriest5IsHostile = 1;
};







ElderGamer, в случае вступления ГГ в НЛ кроме обязательного провала вступления в СЛ и БЛ другие квесты уходят в проваленные даже в том случае, если они были завершены раньше. Причиной является ошибка в скрипте Story\Missions\DIA_Org_801_Lares.d:


Да, есть такое, исправлю. Надо будет вообще пройтись потом по всем квестам и продумать условия их принудительного завершения и отправки в категорию проваленных, если они по каким-то причинам не были выполнены вовремя. :)

George1234
29.09.2011, 13:08
ElderGamer, я не совсем понял, зачем оставлять первую часть первого диалога, если она дублируется? Может почистить код вроде этого:


var int HighPriest5IsHostile;

instance Info_HighPriest5(C_Info)
{
npc = ORC_Priest_5;
nr = 1;
condition = Info_HighPriest5_Condition;
information = Info_HighPriest5_Info;
permanent = 0;
important = 1;
};


func int Info_HighPriest5_Condition()
{
if(!Npc_HasItems(hero,Mythrilklinge02) && !Npc_HasItems(hero,UrizielRune))
{
return TRUE;
};
};

func void Info_HighPriest5_Info()
{
AI_SetWalkMode(self,NPC_WALK);
AI_GotoNpc(self,other);
AI_Output(self,other,"Info_HighPriest5_17_01"); //ТЫЫЫ ДОООЛЖЕН ПОВЕРНУУУТЬ НАЗААААД!!! AI_Output(self,other,"Info_HighPriest5_17_02"); //НИИИКТООО НЕ СМЕЕЕЕЕЕТ ТРЕЕЕВОЖИИИИТЬ СООООН МОЕЕЕЕГО ПООООВЕЛИИИИТЕЛЯ!!! AI_Output(other,self,"Info_HighPriest5_15_03"); //Ошибочка: ваш СПЯЩИЙ очень скоро проснется! AI_StopProcessInfos(self);
B_Story_EncounteredHighPriest();
};


instance Info_HighPriest5FAILED(C_Info)
{
npc = ORC_Priest_5;
nr = 2;
condition = Info_HighPriest5FAILED_Condition;
information = Info_HighPriest5FAILED_Info;
important = 1;
};


func int Info_HighPriest5FAILED_Condition()
{
if(Npc_KnowsInfo(hero,Info_HighPriest5) && (self.aivar[AIV_MISSION1] >= HighPriest_MaxHit) && !Npc_HasItems(hero,Mythrilklinge02) && !Npc_HasItems(hero,UrizielRune))
{
return TRUE;
};
};

func void Info_HighPriest5FAILED_Info()
{
AI_Output(other,self,"Info_HighPriest5FAILED_15_01"); //Черт! На нем ни царапины! Нужен другой... AI_Output(self,other,"Info_HighPriest5FAILED_17_02"); //ТЕЕЕПЕЕЕРЬ ТЫЫЫ УМРЕЕЕШЬ!!! AI_Output(other,self,"Info_HighPriest5FAILED_15_03"); //Пора убираться отсюда, да побыстрее! AI_RemoveWeapon(other); AI_TurnAway(other,self); self.npcType = npctype_main; Npc_SetAttitude(self,ATT_HOSTILE); Npc_SetTempAttitude(self,ATT_HOSTILE); HighPriest5IsHostile = 1; B_LogEntry(CH4_EnterTemple,"Граш-Варраг-Арушат, очевидно, не из числа обычных орочьих шаманов. Он гораздо сильнее, а мое оружие просто не способно ему повредить. Мне нужно найти более могущественное оружие!"); B_GiveXP(XP_RetreatFromLastPriest); B_GiveXP(XP_RetreatFromLastPriest);
AI_StopProcessInfos(self);
};


instance Info_HighPriest5_2(C_Info)
{
npc = ORC_Priest_5;
nr = 1;
condition = Info_HighPriest5_2_Condition;
information = Info_HighPriest5_2_Info;
permanent = 0;
important = 1;
};


func int Info_HighPriest5_2_Condition()
{
if(!Npc_KnowsInfo(hero,Info_HighPriest5FAILED) && (Npc_HasItems(hero,Mythrilklinge02) || Npc_HasItems(hero,UrizielRune)))
{
return TRUE;
};
};

func void Info_HighPriest5_2_Info()
{
AI_SetWalkMode(self,NPC_WALK);
AI_GotoNpc(self,other);
AI_Output(self,other,"Info_HighPriest5_17_04"); //УУУ ТЕЕЕБЯЯЯ ЕЕЕСТЬ МОООЩНОЕЕЕ ОРУУУЖИЕЕЕ!!! AI_Output(self,other,"Info_HighPriest5_17_05"); //ЯЯЯЯ ОСТАААНОВЛЮЮЮ ТЕЕЕБЯЯ!!! AI_StopProcessInfos(self);
self.npcType = npctype_main;
Npc_SetAttitude(self,ATT_HOSTILE);
Npc_SetTempAttitude(self,ATT_HOSTILE);
HighPriest5IsHostile = 1;
};

ElderGamer
29.09.2011, 16:22
@George1234, разумеется, ты прав. Просто при моём мизерном опыте в области скриптинга я инстинктивно побаиваюсь сильно перекраивать родной код. Поэтому предпочитаю его дополнять и незначительно изменять. Надеюсь, лишний код не скажется на общей производительности и не приведёт к чрезмерному разбуханию размера скриптов. :)

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

Я привязал условие начала диалога к движению ГГ, то есть, оно срабатывает, когда ГГ берёт амулет, закрывает инвентарь и начинает двигаться (идти, бежать, прыгать). Решение получилось несколько громоздким. Существует ли более элегантное решение с принудительным выходом из режима инвентаря при начале диалога?

И ещё вопрос. Пару раз обратил внимание на такой момент. После того, как ГГ падает на землю, избитый более сильным противником, его обыскивают. Так вот, если в инвентаре ГГ нет руды, то иногда противник всё-таки говорит, что-то типа: "Я забираю твою руду", и на экан выводится сообщение: "Отдано руды: 0". Где прописаны алгоритмы подобных действий AI? Как это можно исправить?

ДОБАВЛЕНО:

Ещё вопрос. Можно ли определить, эта решётка вокруг лестницы на второй этаж горного форта намертво приварена к миру, или это такая же подвижная решётка, управляемая триггером, как и некоторые другие решётки в игре?


http://s46.radikal.ru/i111/1109/9a/1b327dfbe987t.jpg (http://radikal.ru/F/s46.radikal.ru/i111/1109/9a/1b327dfbe987.jpg.html)

Если это подвижная решётка, то как её можно открывать-закрывать?

Wolfgar93
29.09.2011, 19:00
@Wolfgar93

Из недоработок мира могу предложить исправить эту:


http://s55.radikal.ru/i149/1109/e3/e5ab3e3b422ct.jpg (http://radikal.ru/F/s55.radikal.ru/i149/1109/e3/e5ab3e3b422c.jpg.html)

Нужно убрать дорогу, упирающуюся в скалу и добавить меш скал на горизонте.

Из прозрачных предметов вспоминается подставка для книг. Особенно неприятно, когда стоит она не у стены, как у Сатураса, например.

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

Кстати, удалось ли тебе решить проблему падающей колонны?

Постараюсь решить эту проблему. Уже пытаюсь.

Shifroval
29.09.2011, 20:59
И про выход из долины сегодня проверю в ролике.
Проверил. Вот (http://s015.radikal.ru/i331/1109/73/86cef629a776.jpg).
Вот где это место?
Если предположить, что левая башня в ролике это упавшая башня, тогда согласно моему глазомеру и карте, взгляд идёт точно из Прохода
http://i28.fastpic.ru/big/2011/0929/f6/365c42048739f73cf6ca954e4d31dcf6.png
Примерно так. Да и вообще, в Миненталь же только Проход вёл, в остальных местах были горы.
Я бы ещё в игре пролетел камерой с этого же ракурса, но нужно ставить Г1. А вообще интересный вопрос, хотя я всегда считал что это именно Проход.

Xenon21
30.09.2011, 00:27
Совершенно очевидно что маг из заставки стоит на возвышенности рядом с деревом, если же это был проход то мага бы барьер не захватил т.к. проход чуть-чуть совсем не успел захватить барьер, а из ролика видно что мага таки накрыло им. Следовательно отсюда может следовать 2 вывода: либо барьер в первые дни был побольше, либо это вид не из возвышенности с прохода. И вообще мне казалось поначалу что маг должен был быть не далеко от юнитора, но потом я стал сомневаться в этом.

Вот так вели будущих колонистов в шахты до создания барьера (похоже на проход в горах, вот только где):

http://s51.radikal.ru/i133/1109/ec/38a064629a00t.jpg (http://radikal.ru/F/s51.radikal.ru/i133/1109/ec/38a064629a00.jpg.html)

А вот вид от мага при создании барьера, вот это я вообще хз. где, поже вообще на скорую руку накинуто чисто для ролика:

http://s53.radikal.ru/i142/1109/e2/fedbcc1cda47t.jpg (http://radikal.ru/F/s53.radikal.ru/i142/1109/e2/fedbcc1cda47.jpg.html)

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

А рабов же скорее всего ведут из старой шахты в замок, раньше ведь они там очевидно в тюрьмах жили (они же там есть в подвалах) и видимо домиков у низ не было, как раз угол примерно соответствует расстоянию между башнями, а из прохода "Х" же слишком резкий угол башни должны были быть поближе друг к другу. ВОт примерно нарисовал свои соображения :)

http://s41.radikal.ru/i094/1109/a1/fb702ca86b7dt.jpg (http://radikal.ru/F/s41.radikal.ru/i094/1109/a1/fb702ca86b7d.jpg.html)

ElderGamer
30.09.2011, 06:33
Парни, к вопросу о картинках из интро. Если принять, что более "худая" и более высокая башня - это та башня, которая обрушилась (думаю, что так и есть, поскольку оставшаяся башня не особо высока), то можно сделать однозначный вывод, что на обоих кадрах местность находится к югу от замка. ;)

Но фокус в том, что для съёмок интро могла быть использована вообще некая тестовая локация. Или ранняя версия игрового мира, позднее сильно переработанная. :dnuhr:

P. S. А что, в Г1 можно устроить полёт свободной камеры? Если да, поделитесь опытом, как это сделать.

Wolfgar93
30.09.2011, 06:52
P. S. А что, в Г1 можно устроить полёт свободной камеры? Если да, поделитесь опытом, как это сделать.
BMARVINB F5+F6
Если честно, мне кажется что упавшая башня - толстая и низкая. Тогда рабов действительно ведут со стороны Старой шахты. Тогда всё сходится, и тропинка там не спроста.

Dimus
30.09.2011, 07:32
George1234, в опубликованном вами на форуме WoP.ru определении класса oCNpc, который нужен для сбивания фокуса при использовании заклинания "Телекинез", существует ошибка, связанная с неизвестным для Gothic Sourcer типом у переменной focus_vob:

var zCVob focus_vob; // 0x09E4 zCVob*
Судя по размеру этой переменной (4 байта) у неё должен быть тип int, т.к. после внесения этого изменения в скрипт компиляция прошла без ошибок.

ElderGamer, предлагаю добавить вору Бутчу возможность напасть на ГГ-нейтрала в 1-й главе, как это сделано в моде TLVH. А то получается, что вор Ведж говорит неправду, когда предупреждает ГГ, чтобы он не попадался на глаза этому типу:

ГГ: Что тебе нужно?
В.: Ты новенький, да? Это сразу заметно.
Тебе предстоит многому научиться. Если хочешь, я могу кое о чем рассказать.
И всегда смотри, с кем ты разговариваешь. К примеру, Бутч - вон тот тип у костра... Держись от него подальше!
ГГ: А что такого с этим Бутчем?
В.: У него есть дурная привычка бить всех новичков. Так что тебе не стоит попадаться ему на глаза.
Вот скрипт Бутча, изменённый по образцу из мода TLVH (Story\Missions\DIA_Org_851_Butch.d):

instance DIA_Butch_Exit(C_Info)
{
npc = ORG_851_Butch;
nr = 999;
condition = DIA_Butch_Exit_Condition;
information = DIA_Butch_Exit_Info;
important = 0;
permanent = 1;
description = DIALOG_ENDE;
};


func int DIA_Butch_Exit_Condition()
{
return TRUE;
};

func void DIA_Butch_Exit_Info()
{
AI_StopProcessInfos(self);
};


instance DIA_Butch_Hello(C_Info)
{
npc = ORG_851_Butch;
nr = 1;
condition = DIA_Butch_Hello_Condition;
information = DIA_Butch_Hello_Info;
important = 0;
description = "Привет. Ты кто?";
};


func int DIA_Butch_Hello_Condition()
{
return 1;
};

func void DIA_Butch_Hello_Info()
{
AI_Output(other,self,"DIA_Butch_Hello_15_00"); //Привет. Ты кто?
AI_Output(self,other,"DIA_Butch_Hello_13_01"); //Не твоего ума дело! Не нравится мне твоя рожа!
AI_StopProcessInfos(self);
if((other.guild == GIL_None) && (Kapitel == 1))
{
Npc_SetTarget(self,other);
AI_StartState(self,ZS_Attack,1,"");
};
};

ElderGamer
30.09.2011, 08:15
ElderGamer, предлагаю добавить вору Бутчу возможность напасть на ГГ-нейтрала в 1-й главе, как это сделано в моде TLVH.

Уже сделано. И именно на таких условиях (нейтрал в первой главе), хотя есть разные варианты. Например, Бутч может нападать только на низкоуровнего ГГ, а если ГГ уже достаточно силён, но ещё не определился с Лагерем, то просто ворчать. :)

Изменения внесены также в диалог с Веджем, если "разговор" с Бутчем состоялся раньше, чем о нём предупредил Ведж.

Dimus
30.09.2011, 09:54
Например, Бутч может нападать только на низкоуровнего ГГ, а если ГГ уже достаточно силён, но ещё не определился с Лагерем, то просто ворчать.
Низкоуровневый ГГ - это hero.level < 5 ?


Изменения внесены также в диалог с Веджем, если "разговор" с Бутчем состоялся раньше, чем о нём предупредил Ведж.
Верно, Веджу не имеет смысл предупреждать ГГ, если тот уже "пообщался" с Бутчем.

Ещё пара вопросов:
1. Сделано ли в патче корректное (которое после загрузки сэйва не возвращает назад старое имя) изменение имён у дружественных орков: "Орк-раб" -> "Таррок", "Шаман орков" -> "Ур-Шак"? Если нет, могу выложить изменённые скрипты (спасибо за идею реализации камраду Укуру из команды "Mighty Dwarf").
2. Исправлена ли нелогичная ситуация с реакцией ИИ - в случае возникновения проблемы звездюли всегда огребает ГГ? Недоработка заключена в скрипте AI\ZS_Human\ZS_ProclaimAndPunish.d - нужно заменить hero на other (исправлено в моде TLVH).

George1234
30.09.2011, 11:15
George1234, в опубликованном вами на форуме WoP.ru определении класса oCNpc, который нужен для сбивания фокуса при использовании заклинания "Телекинез", существует ошибка, связанная с неизвестным для Gothic Sourcer типом у переменной focus_vob:

var zCVob focus_vob; // 0x09E4 zCVob*
Судя по размеру этой переменной (4 байта) у неё должен быть тип int, т.к. после внесения этого изменения в скрипт компиляция прошла без ошибок.
Спасибо, исправил. Я поленился проверить, когда давал ссылку на другой пост - надеялся, что возьмут исходник NikoDE, а потом, как в случае с управлением ценами при торговле, просто уже атачил файлы из проекта.


ElderGamer, закрывать инвентарь при начавшемся диалоге с Мильтеном вроде можно через этот самый класс oCNpc.

И ещё вопрос. Пару раз обратил внимание на такой момент. После того, как ГГ падает на землю, избитый более сильным противником, его обыскивают. Так вот, если в инвентаре ГГ нет руды, то иногда противник всё-таки говорит, что-то типа: "Я забираю твою руду", и на экан выводится сообщение: "Отдано руды: 0". Там жуткий бред в коде - судя по всему, изначально планировалось, что забирать будут не только руду и проверяется наличие кучи всего в инвентаре. Кроме этого, там же еще и баг с удвоением отобранной руды в инвентаре обидчика - у меня сложилось впечатление, что кроме скриптов еще и двиг ее перекидывает, но могу и ошибаться.
Я покручу обе проблемы и если решу - оптишусь.

Xenon21
30.09.2011, 15:36
Если честно, мне кажется что упавшая башня - толстая и низкая. Тогда рабов действительно ведут со стороны Старой шахты. Тогда всё сходится, и тропинка там не спроста.

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

И еще по поводу ошибок, хотелось спросить о такой ошибке некоторые NPC вооружаются одновременно 2-мя дальнобойными оружиями (например ВОЛК арбалетом и луком в 4 и 5 главе) это выглядит очень комично.

А также хотелось бы отметить что неплохо бы всех торговцев бессмертными сделать или повысить сильно защиту, т.к. многие вместо покупки просто валят их отбирают все товары просто так, или как вариант можно сделать так что при нападении на торговца стражники резко на тебя накидывались. Только можно было бы ограничить это до 4 т 5 главы для старого и нового лагеря соответственно, чтобы не было проблем с зачисткой после известных событий.

И еще спрошу исправлена ли ошибка такого рода, когда тебе побеждают но ты без руды в рюкзаке ряд NPC берет оружие, а большинство нет, тут нужно как-то упорядочить либо берут все либо никто вообще. А то так легко кого хочешь победить даже в первой главе, выкинул руду, и убиваешь соперника, падаешь-встаешь и далее вперед, я так в первой главе на интерес у Гомеза всех баронов убивал, хотя был совсем еще слаб, а если бы отбиралось хотя бы оружие это было бы сделать не в пример сложнее.

-Fritz-
30.09.2011, 17:21
>...всех торговцев бессмертными...
А что стражники разве не накидываются, когда видят, что ГГ огорчает торговца?) А параметры вообще менять не нужно, почему я не могу обуть торговца, если есть возможность?
>...когда тебе побеждают...
Возможно стоит сделать первые побои предупредительными, вторые смертельными?

П.С. Так всё таки Проход около СШ получается?

ElderGamer
30.09.2011, 18:13
Низкоуровневый ГГ - это hero.level < 5 ?

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


Ещё пара вопросов:
1. Сделано ли в патче корректное (которое после загрузки сэйва не возвращает назад старое имя) изменение имён у дружественных орков: "Орк-раб" -> "Таррок", "Шаман орков" -> "Ур-Шак"? Если нет, могу выложить изменённые скрипты (спасибо за идею реализации камраду Укуру из команды "Mighty Dwarf").

Ур-Шак теперь - "Ур-Шак" (изменено имя в файле B_Story_FriendOfUrShak.d). Таррок пока "Орк раб", хотя логичнее, наверное, назвать его Тарроком (нужно изменить имя в файле B_SitUp.d).


2. Исправлена ли нелогичная ситуация с реакцией ИИ - в случае возникновения проблемы звездюли всегда огребает ГГ? Недоработка заключена в скрипте AI\ZS_Human\ZS_ProclaimAndPunish.d - нужно заменить hero на other (исправлено в моде TLVH).

Не совсем понял, что за ситуация имеется в виду. Нужно менять все hero на other?

Xenon21
30.09.2011, 18:14
>...всех торговцев бессмертными...
А что стражники разве не накидываются, когда видят, что ГГ огорчает торговца?) А параметры вообще менять не нужно, почему я не могу обуть торговца, если есть возможность?
>...когда тебе побеждают...
Возможно стоит сделать первые побои предупредительными, вторые смертельными?

П.С. Так всё таки Проход около СШ получается?

Насчет прохода неоднозначно может да, а может и нет. Насчет торговцев, да тебя не избивает НИКТО если ты его не убил, а просто избил. Не позволю согласиться, что пусть так будет. Т.к. по подобной схем пусть будет удвоение руды у противника и прочее, это сильно портит баланс, и как я сказал выше на первых уровнях можно победить почти всех кто не бессмертен из-за подобных вещей.

George1234
30.09.2011, 22:09
Что касается торговцев, то достаточно сделать им очистку инвентаря после избиения по принципу Г2 - в TLVH это реализовано, так что можно посмотреть там. Учитывая, что это применяется во второй части игры, то подобные изменения вполне проходят под определение "исправление ошибок":D. Для оригинальной Готики, к счастью, особой проблемы нет - набор предметов не очень большой. Есть еще вариант просто заблокировать доступ к инвентарю избитых торговцев. Второй вариант, на вскидку, короче в плане кода, подходит без доработок не только для оригинала, но и для любого мода, но тут надо еще поколупаться для правильной реализации.
Удвоение руды нужно убирать по-любому: этот баг портит удовольствие честным игрокам, так как от получения по голове не застрахован никто. Не выкидывать же потом нечестно полученные доходы, право слово;) Хотя, если быть откровенным, в оригинале вся эта руда и не нужна т.к. торговый баланс отсутствует напрочь.
Может я просто пропустил, но не помню обсуждения ухайдохивания опыта за убийство самолично призванных ГГ монстров.
Убивание ГГ после наездов на мирных жителей уже скорее модинг и тут уже решать ElderGamer-у, как автору патча. ИМХО то же относится и к всякого рода заполнению пустот мира. А если уж речь зашла о наведении порядка с балансом, то без глобальных изменений не обойтись. Что мы имеем на данный момент? Для комфортного прохождения всей игры достаточно 85 единиц опыта для прокачки силы, в нормальных доспехах с защитными кольцами/амулетами повреждение наносят только самые сильные противники, а про торговый баланс я уже упоминал. Продолжать можно долго, но это уже махровый оффтоп будет - к ошибкам явно не относится.

Xenon21
01.10.2011, 00:58
Что касается торговцев, то достаточно сделать им очистку инвентаря после избиения по принципу Г2 - в TLVH это реализовано, так что можно посмотреть там. Учитывая, что это применяется во второй части игры, то подобные изменения вполне проходят под определение "исправление ошибок":D. Для оригинальной Готики, к счастью, особой проблемы нет - набор предметов не очень большой. Есть еще вариант просто заблокировать доступ к инвентарю избитых торговцев. Второй вариант, на вскидку, короче в плане кода, подходит без доработок не только для оригинала, но и для любого мода, но тут надо еще поколупаться для правильной реализации.
Удвоение руды нужно убирать по-любому: этот баг портит удовольствие честным игрокам, так как от получения по голове не застрахован никто. Не выкидывать же потом нечестно полученные доходы, право слово;) Хотя, если быть откровенным, в оригинале вся эта руда и не нужна т.к. торговый баланс отсутствует напрочь.
Может я просто пропустил, но не помню обсуждения ухайдохивания опыта за убийство самолично призванных ГГ монстров.
Убивание ГГ после наездов на мирных жителей уже скорее модинг и тут уже решать ElderGamer-у, как автору патча. ИМХО то же относится и к всякого рода заполнению пустот мира. А если уж речь зашла о наведении порядка с балансом, то без глобальных изменений не обойтись. Что мы имеем на данный момент? Для комфортного прохождения всей игры достаточно 85 единиц опыта для прокачки силы, в нормальных доспехах с защитными кольцами/амулетами повреждение наносят только самые сильные противники, а про торговый баланс я уже упоминал. Продолжать можно долго, но это уже махровый оффтоп будет - к ошибкам явно не относится.

По моему баланс наладить в торговле можно, для этого нужно ввести запрет на покупку чего-либо посредством предметов, только расплата рудой и все, а её количество на первых уровнях особенно чрезвычайно мало. А для предотвращения повторной покупки руды за предметы, сильно снизить соотношения для цен, т.е. при покупке предмет стоит куда дороже чем при продаже его же этому торговцу. И если учесть еще что излишки истраченные на покупку брони канут в никуда.

George1234
01.10.2011, 09:26
По моему баланс наладить в торговле можно, для этого нужно ввести запрет на покупку чего-либо посредством предметов, только расплата рудой и все, а её количество на первых уровнях особенно чрезвычайно мало.
Можно код реализации сей идеи в студию? Не представляю, как это реализовать вообще возможно, плюс нарушается принцип меновой торговли.
А вот поменять соотношение цен труда не составляет если вооружиться скриптовым пакетом Ikarus: Orcwarrior выкладывал код в соответствующей теме в немецкой части форума (ссылку лень искать) и на польском theModders (http://themodders.org/index.php?/topic/10383-ikarus-pakiet-skryptow/page__view__findpost__p__127917). Более подробную инструкцию на русском с кодом под старый Икарус с возможностью компиляции ГотикСорсером я выкладывал здесь (http://forum.worldofplayers.ru/showthread.php?t=34499). Правда там я не использовал пакет работы с float-ами, который порядочно упрощает жизнь - не будет потребности конвертить вручную в представление IEEE-754.

ElderGamer
01.10.2011, 14:43
Есть еще вариант просто заблокировать доступ к инвентарю избитых торговцев. Второй вариант, на вскидку, короче в плане кода, подходит без доработок не только для оригинала, но и для любого мода, но тут надо еще поколупаться для правильной реализации.

Было бы неплохо, но здесь нужно учитывать особые случаи (Торрез, Бартоло).


Может я просто пропустил, но не помню обсуждения ухайдохивания опыта за убийство самолично призванных ГГ монстров.

Кстати, да. А можно сделать так, чтобы самовызванные существа не приносили экспы при их убийстве?


Убивание ГГ после наездов на мирных жителей уже скорее модинг и тут уже решать ElderGamer-у, как автору патча.

Попытался сейчас побить рудокопов в СЛ, будучи нейтралом. Стражники тут же берутся за арбалеты и валят ГГ без слов. Хотя в SVM фразах есть много интересного, например, фразы, что, мол, нехорошо обижать рудокопов, они заплатили и находятся под защитой. В игре я такого не слышал, как и многих других SVM фраз.

А по поводу авторства, я скорее исполнитель. :D И мне оказывается существенная помощь со стороны целого ряда камрадов. Пользуясь случаем, выражаю им благодарность. §wink

Кстати, насколько реально создать особые анимации добивающего удара для ГГ или непися вооружённого топором, молотом или булавой? §kratz

George1234
01.10.2011, 15:26
Кстати, да. А можно сделать так, чтобы самовызванные существа не приносили экспы при их убийстве?
Как по мне, легче всего будет дописать в инстанции SummonedByPC_Demon, SummonedByPC_StoneGolem, SummonedByPC_Skeleton и SummonedByPC_SkeletonWarrior строчку level = 0; и подправить функцию B_DeathXP, чтобы после убийства не выводило сообщение "Получено 0 опыта":


func void B_DeathXP()
{
PrintDebugNpc (PD_ZS_FRAME, "B_DeathXP");
PrintGlobals (PD_ZS_Check);
if ((C_NpcIsHuman (self) && (Npc_WasInState(self, ZS_Unconscious) || self.aivar[AIV_WASDEFEATEDBYSC])) || self.level==0 || self.npcType == npctype_friend)
.........

Теоретически, легче даже будет вместо self.level==0 и замены уровня поставить в условие self.npcType == npctype_friend, но тут не понятно, как будет вести себя npcType монстра после сохранения/загрузки. Учитывая опыт с последним шаманом в храме, лучше не рисковать. Хотя, погорячился - оптимально поставить ОБА условия, чтобы заодно отсечь получение опыта за избиение дружественных попутчиков. Код подправил.


Попытался сейчас побить рудокопов в СЛ, будучи нейтралом. Стражники тут же берутся за арбалеты и валят ГГ без слов. Хотя в SVM фразах есть много интересного, например, фразы, что, мол, нехорошо обижать рудокопов, они заплатили и находятся под защитой. В игре я такого не слышал, как и многих других SVM фраз.
Тут происходит накладка - в ai метод атаки задан в зависимости от расстояния и причина атаки роли не играет. Вот стражники вооруженные арбалетами и убивают.
А условие на срабатывание фраз SVM можно проверить задавая в проекте поиск по имени переменных из класса C_SVM.

PontifEx
01.10.2011, 17:53
По поводу опыта за вызванных монстров: никогда не казалось читом/багом - имхо, легко представить, как некромант клепает каких-нибудь големов, чтобы позже опробовать на них свежеприобретенные руны; или воин использует скелетов, как партнеров для спарринга. Впрочем, тут уж скорее дело вкуса. :)

По поводу Бутча: помнится мне, когда идол Коган выдает пачку косяков из болотника, то ли в его репликах, то ли в записях в дневнике проскальзывает упоминание о том, что травку могут и забрать. Нельзя ли сделать так, что если герой-"драгдиллер" пытается заговорить с Бутчем, имея косяки в инвентаре, то лишается болотника после избиения? :p

Dimus
01.10.2011, 18:18
@ ElderGamer:
1. Вот изменённые скрипты для Таррока и Ур-Шака:
Story\Startup.d:

func void init_world()
{
INIT_Sub_Newcamp();
INIT_Sub_Oldcamp();
INIT_Sub_Psicamp();
INIT_Sub_Demontower();
INIT_Sub_Freeminecamp();
INIT_Sub_Surface();
B_InitMonsterAttitudes();
B_InitGuildAttitudes();
if(FriendOfUrShak == TRUE)
{
ORC_2200_Shaman.name = "Ур-Шак";
};
};

...

func void init_freemine()
{
Wld_SetMobRoutine(0,0,"FIREPLACE",1);
B_InitMonsterAttitudes();
B_InitGuildAttitudes();
if(Knows_GetUluMulu == TRUE)
{
FreemineOrc.name = "Таррок";
};
};
Story\Chapters\B_Story_CuredOrc.d:

func void B_Story_CuredOrc()
{
var C_Npc tarrok;
B_LogEntry(CH4_UluMulu,"С той поры как я вылечил орочьего раба Таррока, он оказывает мне неоценимую помощь.");
B_GiveXP(XP_CuredOrcSlave);
tarrok = Hlp_GetNpc(FreemineOrc);
tarrok.name = "Таррок";
FreemineOrc_SuchePotion = LOG_SUCCESS;
FreemineOrc_LookingUlumulu = LOG_RUNNING;
Knows_GetUluMulu = TRUE;
};
Story\NPC\ORC_Freemine.d (бывший Story\B\B_SitUp.d):

instance FreemineOrc(C_Npc)
{
name = "Орк-раб";
Story\NPC\ORC_Shaman.d (бывший Story\NPC\ORC_2200_Shaman.d):

instance ORC_2200_Shaman(Mst_Default_OrcShaman)
{
name = "Шаман орков";
Примечание: эти 2 файла в проекте я переименовал по образцу из GMDK. Разумеется, что потребовалось внести соответствующие изменения в файл GOTHIC.src.

2. Да, в скрипте AI\ZS_Human\ZS_ProclaimAndPunish.d все hero изменяются на other.

Shifroval
01.10.2011, 19:59
Хотелось бы поднять старый баг с кольцами, если кто его ещё помнит. Начиная с какого то времени или каких то видюх, кольца в инвентаре отображаются без верха, а чисто само основание кольца и пустота. Т.е моделька очевидно слишком сильно уходит в камеру, а может просто не отображатся вся.
Сами кольца в изначальном виде можно увидеть на воге
http://www.worldofgothic.com/gothic/?go=g1ringe

Я этот вопрос поднимал на аг ещё, там же скрины сравнения
http://forums.ag.ru/?board=gothic&action=display&s=0&num=1192576961&start=1475#1481

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

З.Ы Я вот вообще ни разу за всю свою жизнь не видел нормальных колец, только багованные. Хотя впервые играл в Г1 аж в 2002(или 2003) году на старой Riva TNT 2. А потом уже на достаточно новой видюхе, Geforce 5500 FX. На ней же я и прошёл Г1 в первый раз целиком.

ElderGamer
03.10.2011, 09:05
@ ElderGamer:
1. Вот изменённые скрипты для Таррока и Ур-Шака:


Спасибо! Внести подобные изменения недолго, но я не особенно понял, зачем оно нужно. Имена Ур-Шака и Таррока вроде бы исправно отображаются и не слетают при загрузке сохранения или при входе в соответствующую локацию. В случае с Ур-Шаком в файле B_Story_FriendOfUrShak.d имелась ошибка:



urshak.name[0] = "Ur-Shak";


Сейчас она исправлена. Возможно, что-то аналогичное есть и для Таррока. Но тогда нужно найти и устранить именно саму ошибку, а не пытаться исправлять её последствия. :dnuhr:


Хотелось бы поднять старый баг с кольцами, если кто его ещё помнит.

Да, с отображением предметов в инвентаре игры не всё ладно. Так было и раньше, так есть и сейчас. Ответ обычно такой: "Глючит движок, ничего исправить нельзя". Но мне кажется, что проблему можно решить как минимум частично, не влезая в движок. Вот пара наблюдений:



http://i058.radikal.ru/1110/61/33820806c01ct.jpg (http://radikal.ru/F/i058.radikal.ru/1110/61/33820806c01c.jpg.html) http://s46.radikal.ru/i114/1110/d1/38421d1ada43t.jpg (http://radikal.ru/F/s46.radikal.ru/i114/1110/d1/38421d1ada43.jpg.html)

http://s52.radikal.ru/i135/1110/f2/931a90a84412t.jpg (http://radikal.ru/F/s52.radikal.ru/i135/1110/f2/931a90a84412.jpg.html) http://s51.radikal.ru/i134/1110/b8/b608066438b0t.jpg (http://radikal.ru/F/s51.radikal.ru/i134/1110/b8/b608066438b0.jpg.html)


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

В случае колец, думаю, можно вообще отказаться от 3D визуализации, заменив модельку плоской хреновиной с картинкой. Много ли колец мы находим валяющимися на земле? Рассматриваем ли внимательно, что там за мелочь валяется под ногами? А вот в инвентаре мы постоянно любуемся на их кривое отображение. Хотелось бы, конечно, получить консультацию специалистов по этому поводу.

-Fritz-
03.10.2011, 11:02
А складывание в инвентаре различных предметов можно реализовать? Палки с шипами там например.

George1234
03.10.2011, 13:57
А складывание в инвентаре различных предметов можно реализовать? Палки с шипами там например.
Просто надо добавить флаг ITEM_MULTI, вроде этого:

flags = ITEM_AXE|ITEM_MULTI;
Но в комплекте добавится:
- при одевании оружия предметы не разделяются, так что для продажи аналогичных вещей придется снимать;
- при заточке простого меча если он будет надет, то полезет удвоение их количества в инвентаре;
- с рунами так делать нельзя: по данному флагу двиг отличает их от свитков (станут одноразовыми).
Но в целом, если простой меч оставить без ITEM_MULTI и менять только оружие, то плюсы перевешивают.

-Fritz-
03.10.2011, 14:50
И разделение невозможно сделать? Это особенность движка такая? И возможность иметь один наготове, а 19 в стопке невозможна?

Shifroval
03.10.2011, 21:09
Да, с отображением предметов в инвентаре игры не всё ладно. Так было и раньше, так есть и сейчас. Ответ обычно такой: "Глючит движок, ничего исправить нельзя". Но мне кажется, что проблему можно решить как минимум частично, не влезая в движок. Вот пара наблюдений:



http://i058.radikal.ru/1110/61/33820806c01ct.jpg (http://radikal.ru/F/i058.radikal.ru/1110/61/33820806c01c.jpg.html) http://s46.radikal.ru/i114/1110/d1/38421d1ada43t.jpg (http://radikal.ru/F/s46.radikal.ru/i114/1110/d1/38421d1ada43.jpg.html)

http://s52.radikal.ru/i135/1110/f2/931a90a84412t.jpg (http://radikal.ru/F/s52.radikal.ru/i135/1110/f2/931a90a84412.jpg.html) http://s51.radikal.ru/i134/1110/b8/b608066438b0t.jpg (http://radikal.ru/F/s51.radikal.ru/i134/1110/b8/b608066438b0.jpg.html)


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

В случае колец, думаю, можно вообще отказаться от 3D визуализации, заменив модельку плоской хреновиной с картинкой. Много ли колец мы находим валяющимися на земле? Рассматриваем ли внимательно, что там за мелочь валяется под ногами? А вот в инвентаре мы постоянно любуемся на их кривое отображение. Хотелось бы, конечно, получить консультацию специалистов по этому поводу.
Т.к предметы в Г1 это 3д модельки, то на скринах я наблюдаю клиппинг модели через пол и спину Мильтена. Только клиппинг этот хитрый и кривой. Но я такое видел постоянно, просто нужно покрутить камеру, чтобы модельки не наслаивались.
Или там именно что ГГ стоял как вкопанный и камера ни на миллиметр не сдвигалась\меняла ракурс? Если так, тогда..всё равно клиппинг это, не вся модель пропадает же. Вон Меч Шрама в пол рукоятью входит, а бутылёк в плечо Мильтена. Почему тогда Удар лапы не клиппится? Предположу, что он повёрнут к нам под несколько иным углом.

А вот менять модельки на 2д картинки как то странно будет выглядеть, ведь в Г1 все прдеметы инвентаря сделаны в 3д, даже свитки. Хотя может они просто текстура, не уверен.
Нужно как то вынуть модель из игры и проверить её в 3д максе например. И попробовать всунуть другую модель на место колец.
Собсно, если вынуть удасться и получится сконвертить в формат 3д макса, я могу отдать её моделлеру нашего мода (не по Готике, нет), он поколдует.

А ещё мне бы вот хотелось бы знать по какому принципу игра выводит модели в колонку инвентаря и в описание. Это скрипт? Функция движка? Регулируемо ли это? Есть ли у вывода параметры угла, дальности, наклона и пр?

_________________
Про 100500 отдельных выкованных мечей тоже хотелось бы услышать ответ. Ибо это ни в какие ворота, когда чтобы пролистать список нужно тупо давить на клавишу и ждать.
Может для этих нескладывающихся предметов нужно сделать новый предмет со своим id и пусть уже он складывается?
И я точно где то видел это как баг, мол мечи должны складываться, а у 1С они отдельно. Где то это пытались исправлять..

George1234
04.10.2011, 07:20
Shifroval, оружие, на сколько я помню, даже в Г2 без Ночи Ворона не складывается пачками. Если критично - ставится нужный флаг, а вот морочиться с расщеплением... Конечно, если долго мучатся, что нибудь получится, но не факт, что удастся реализовать красиво. Вариант с изменением id имеет кучу недостатков. Для начала понадобиться сделать дубликаты всех инстанций оружия, потом всему оружию прописать функции на одевание, которые будут убирать из инвентаря стандартное и пихать с измененным id - на выходе получим меч, пропадающий ненадолго при одевании. А как отработает двиг если его из рук выбьют при избиении? Или выкинуть из инвентаря не снимая? Надо расколупывать Г2НВ, смотреть реализацию там, а потом уже решать, стоит ли тратить на это время...

-Fritz-
04.10.2011, 07:38
А при одевании убирать один меч из пачки не экипированных и добавлять такой же меч, с изменённым id, но экипированным? При снятии наоборот. А если вывалится из слабеющих рук, то ничего не будет, ведь меч вполне нормальный и выглядит, как обычный, только с другим id.
Или собственно об этом и речь?)

ElderGamer
04.10.2011, 16:25
Или там именно что ГГ стоял как вкопанный и камера ни на миллиметр не сдвигалась\меняла ракурс? Если так, тогда..всё равно клиппинг это, не вся модель пропадает же. Вон Меч Шрама в пол рукоятью входит, а бутылёк в плечо Мильтена. Почему тогда Удар лапы не клиппится? Предположу, что он повёрнут к нам под несколько иным углом.

Ситуация создана искусственно, но подобные ситуации регулярно возникают и естественным путём. Предполагаю, что "Удар лапы" не пересекается с поверхностью пола потому, что он расположен ближе к плоскости экрана, чем "Меч Шрама". А вот почему это так, и как можно изменить это расстояние, мне не известно.


По поводу флага ITEM_MULTI, можно ли его менять по ходу дела, или он назначается предмету единовременно и изменению не подлежит?


Хотелось бы посоветоваться по следующему вопросу. Сделал так, что торговцы доспехами больше не предлагают тот или иной вид доспеха, если ГГ его уже однажды купил. Но тут возникает ситуация, когда ГГ покупает более продвинутую разновидность доспеха, а продавец всё равно предлагает ему купить доспех похуже. Может быть, нужно сделать так, чтобы покупка более продвинутого доспеха убирала заодно и предложение менее продвинутого?


Другой момент. В разговоре с Горном после того, как ГГ побил и прогнал Шрайка из самозахваченного дома, есть такой фрагмент:


ГГ: Шрайк переехал в другой дом
Горн: Хорошо. Торлоф только что сказал мне, что хочет переговорить с парнем.

немецкий вариант:

ГГ: Shrike hat sich eine andere Hütte gesucht.
Горн: Gut. Gerade noch hat mich Torlof drauf angesprochen, dass er dem Burschen das Fell über die Ohren ziehen wollte.

Я не догоняю, что хочет сказать Горн, при чём здесь Торлоф? Если Горн говорит о том, что Торлоф хотел поговорить с ГГ, то почему у самого Торлфа нет для ГГ ничего особо ценного, что сказать? Или имеется в виду желание Торлофа поговорить со Шрайком?

Текст фразы и звуковой файл можно в определённых пределах подправить, но для начала нужно понять, что там вообще должно быть. §kratz

Fanda666
04.10.2011, 16:53
Вроде в немецком варианте имеется в виду, что
- Хорошо. Торлоф сказал мне что хочет съездить этому парню по ушам (или прочитать ему мораль, я точно не понял)

Olor1n
04.10.2011, 20:03
А при одевании убирать один меч из пачки не экипированных и добавлять такой же меч, с изменённым id, но экипированным? При снятии наоборот. А если вывалится из слабеющих рук, то ничего не будет, ведь меч вполне нормальный и выглядит, как обычный, только с другим id.
Или собственно об этом и речь?)

если так реализовывать, можно пропробовать после подбирания такого оружия с изменённым id сразу его одевать на героя

George1234
05.10.2011, 07:18
если так реализовывать, можно пропробовать после подбирания такого оружия с изменённым id сразу его одевать на героя
Оружие подбирается чаще, чем продается и если сразу одевать автоматом, а потом лезть снимать и одевать необходимое, то куда проще при торговле снимать, если надо продать аналогичные клинки. И главное не придется извращаться в скриптах:D
Отловить момент ДО одевания для подмены оружия крайне проблематично. Конечно, через Икарус скорее всего это реализуемо, но геморрой будет тот еще, а польза мизерна.

-Fritz-
05.10.2011, 09:40
>польза мизерна.
Ну как же мизерна то? Инвентарь наконец перестанет забиваться.

ElderGamer
05.10.2011, 10:46
Я не случайно спросил:

По поводу флага ITEM_MULTI, можно ли его менять по ходу дела, или он назначается предмету единовременно и изменению не подлежит?

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

Чем обычно забивается инвентарь? Как правило, это однотипное оружие, снятое с поверженных противников. Как правило, когда этого оружия становится в инвентаре много, оно уже бесполезно для игрока, как оружие, поскольку у него уже есть нечто посерьёзнее. Мне кажется, в этой функции вполне реально оценить уровень развития ГГ, просмотреть его инвентарь и решить, какие виды оружия уже можно складывать пачками, а какие ещё нельзя. Да, это полумера, но если функцию правильно настроить, то она сможет значительно разгрузить инвентарь.


У меня такой вопрос. Страж Гор На Драк обучает вырезанию челюстей ползунов нахаляву, в смысле, без расходования очков обучения. Как вы думаете, это ошибка скрипта, или это такая задумка создателей игры? Страж в Старой Шахте обучает тому же за очки обучения. :confused:

George1234
05.10.2011, 12:05
-Fritz-, инвентарь перестанет забиваться если просто флага ITEM_MULTI прописать, а мизерная польза от извратов с заменой id ради отделения одетого оружия от основной пачки. В Г2НВ это двигом делается - у оружия дополнительных флагов не прописано.
ElderGamer, флаг лучше прописать сразу, иначе как минимум придется в инитгэйм данную функцию пихать и то не факт, что поможет - характеристики инстанции специфически обновляются в классе двига oCItem из скриптового cItem. Я с ним глобально не игрался, но по опыту работы с классами заклинаний, могу предположить, что есть очень большая вероятность кучи накладок. Единственный относительно надежный выход - задавать флаг в исходных инстанциях как переменную и потом уже менять ее значение. Причем в случае с именными константами это обязательно. Есть, конечно, вариант задавать не переменной, а численным значением, равным используемой ранее константе, но снова геморрой получится. Оно того стоит?
Баг с заточкой при одетом простом мече исправить скорее всего можно, а с продажей невелика проблема - всяко лучше, чем инвентарь крутить.

-Fritz-
05.10.2011, 13:26
>это такая задумка создателей игры?
Думаю, что задумка, но, думается такое обучение можно активировать после получения задания Кор Галома...

ElderGamer
06.10.2011, 13:13
С ареной вместо Mdl_RemoveOverlayMDS(Arena_Fighter,"T_1HSFREE"); лучше поставить просто AI_GotoWP(Arena_Fighter, "начальная_точка_расписания_nopractice");
B_FullStop(Arena_Fighter) тоже можно добавить, но она фехтование всеравно не прервет, пока анимация не закончится.


Наконец-то руки дошли и сюда. :) Спасибо за совет! Теперь всё получилось, тренирующийся боец уходит с арены сразу же после вызова на бой другого бойца. Выглядит это примерно так (из скрипта Кирго):


var C_Npc Arena_Fighter_1;

...

AI_Output(other,self,"Info_Kirgo_ChargeREAL_15_00"); //Мы будем драться - ты готов?
AI_Output(self,other,"Info_Kirgo_ChargeREAL_05_01"); //Иди за мной!
AI_StopProcessInfos(self);
Kirgo_Charged = TRUE;
Npc_ExchangeRoutine(self,"GUIDE");
Arena_Fighter_1 = Hlp_GetNpc(Sld_729_Kharim);
Npc_ExchangeRoutine(Arena_Fighter_1,"nopractice");
B_FullStop(Arena_Fighter_1);
if(Npc_GetDistToWP(Arena_Fighter_1,"OCR_ARENABATTLE") < 500)
{
AI_SetWalkMode(Arena_Fighter_1,NPC_WALK);
AI_RemoveWeapon(Arena_Fighter_1);
AI_GotoWP(Arena_Fighter_1,"OCR_ARENABATTLE_OUTSIDE");
};
AI_ContinueRoutine(Arena_Fighter_1);
Arena_Fighter_1 = Hlp_GetNpc(Tpl_1422_GorHanis);
Npc_ExchangeRoutine(Arena_Fighter_1,"nopractice");
B_FullStop(Arena_Fighter_1);
if(Npc_GetDistToWP(Arena_Fighter_1,"OCR_ARENABATTLE") < 500)
{
AI_RemoveWeapon(Arena_Fighter_1);
AI_SetWalkMode(Arena_Fighter_1,NPC_WALK);
AI_GotoWP(Arena_Fighter_1,"OCR_ARENABATTLE_OUTSIDE");
};
AI_ContinueRoutine(Arena_Fighter_1);



Появился ещё один вопрос. Кто-нибудь уже решил проблему несанкционированного прохода через охраняемые ворота/двери с помощью извлечённого оружия? Просто иногда из-за этого могут возникать другие ошибки. :dnuhr:

ukur
06.10.2011, 14:34
Появился ещё один вопрос. Кто-нибудь уже решил проблему несанкционированного прохода через охраняемые ворота/двери с помощью извлечённого оружия? Просто иногда из-за этого могут возникать другие ошибки. :dnuhr:
Достаточно у охранников отключить восприятие реакции на оружие

В Г1 наборы восприятий прописаны в AI\AI_Intern\perception.d

Например можно попробовать убрать строчку Npc_PercEnable(self,PERC_DRAWWEAPON,B_AssessFighter); из функции func void GuardPerception() или написать свою.

ElderGamer
06.10.2011, 16:19
Спасибо! Попробую. :)

А можешь ли ты подсказать, как грамотно временно отключить неписю реакцию на оружие? Мне нужно это сделать для Бартоло. Дело в том, что в определённый момент он переводится в нейтралы и переходит на расписание ожидания телепортации ГГ в дом магов Огня. Вот только у ГГ есть реальная возможность (без читов) попасть в замок НЕ через телепорт. В этом случае монолог Бартоло выглядит очень глупо. Я соорудил альтернативную фразу Бартоло для встречи ГГ, пришедшего не через портал, но всё портит реакция на оружие. Если ГГ подходит к Бартоло с обнажённым оружием, включается реакция на оружие, и диалог не начинается. §kratz

ukur
06.10.2011, 17:27
ElderGamer
В функции AI\B_Human\B_AssessFighter.d
Есть такие строчки

if(C_NpcTypeIsFriend(self,other) || (Npc_GetAttitude(self,other) == ATT_FRIENDLY))
{
PrintDebugNpc(PD_ZS_Check,"...NSC ist NPCTYPE_FRIEND oder ATT_FRIENDLY!");
return; //Выход из функции
};
Сделай Бартоло навремя другом :)

ElderGamer
07.10.2011, 18:53
Очередной вопрос. При покупке доспехов надпись в окне диалога бывает порой слишком длинной. Часто она не помещается в отведённое для неё место.


http://s48.radikal.ru/i122/1110/4f/99e35d0d3e9et.jpg (http://radikal.ru/F/s48.radikal.ru/i122/1110/4f/99e35d0d3e9e.jpg.html)

Как вы думаете, может, стоит сократить надпись, к примеру,

Тяжелый доспех стражника. Защита: от оружия 70, от стрел 10, от огня 35 (2100 руды)

до состояния

Тяжелый доспех стражника. Защита: 70, 10, 35, 0 (2100 руды)

или

Тяжелый доспех стражника. Защита: 70-10-35-0 (2100 руды)

ElderGamer
12.10.2011, 17:04
Достаточно у охранников отключить восприятие реакции на оружие
...
Например можно попробовать убрать строчку Npc_PercEnable(self,PERC_DRAWWEAPON,B_AssessFighter); из функции func void GuardPerception() или написать свою.

К сожалению, не помогает. Пробовал в указанной функции отключать (комментировать) строчки PERC_DRAWWEAPON и PERC_ASSESSFIGHTER. Реакция охранников не изменяется. :(



Сделай Бартоло навремя другом :)

Этот вариант тоже не проходит. Поскольку в замке полно враждебно настроенных по отношению к ГГ неписей, реакция Бартоло на них неадекватна.

Пробовал дописывать в файл B_Story_ExploreSunkenTower.d, в котором Бартоло переводится в разряд нейтралов, подсмотренные у Вама строчки:



var C_Npc Bartholo;

...

Bartholo = Hlp_GetNpc(EBR_106_Bartholo);

...

Npc_ExchangeRoutine(Bartholo,"OT");

...

Bartholo.guild = GIL_None;
Npc_SetTrueGuild(Bartholo,GIL_None);

...

Npc_SetPermAttitude(Bartholo,ATT_NEUTRAL);
Npc_SetTempAttitude(Bartholo,ATT_NEUTRAL);
Npc_PercDisable(Bartholo,PERC_DRAWWEAPON);
Npc_PercDisable(Bartholo,PERC_ASSESSFIGHTER);

...

Bartholo.flags = 0;


Не помогает. :(

ukur
13.10.2011, 05:44
ElderGamer
Наборы восприятий могут вызываться дополнительно из функций состояний... Напиши инстанции охранников НПЦ, гляну какая у них в распорядке функция.

ElderGamer
13.10.2011, 09:36
ElderGamer
Напиши инстанции охранников НПЦ, гляну какая у них в распорядке функция.


instance Grd_212_Torwache(Npc_Default)
{
name[0] = NAME_Torwache;
npcType = npctype_main;
guild = GIL_GRD;
level = 15;
voice = 13;
id = 212;
attribute[ATR_STRENGTH] = 70;
attribute[ATR_DEXTERITY] = 50;
attribute[ATR_MANA_MAX] = 0;
attribute[ATR_MANA] = 0;
attribute[ATR_HITPOINTS_MAX] = 220;
attribute[ATR_HITPOINTS] = 220;
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_ApplyOverlayMds(self,"Humans_Militia.mds");
Mdl_SetVisualBody(self,"hum_body_Naked0",0,1,"Hum_Head_Bald",19,1,grd_armor_m);
B_Scale(self);
Mdl_SetModelFatness(self,0);
aivar[AIV_IMPORTANT] = TRUE;
aivar[AIV_RESPAWN] = TRUE;
fight_tactic = FAI_HUMAN_RANGED;
Npc_SetTalentSkill(self,NPC_TALENT_1H,2);
Npc_SetTalentSkill(self,NPC_TALENT_2H,1);
Npc_SetTalentSkill(self,NPC_TALENT_CROSSBOW,1);
EquipItem(self,ItRw_Crossbow_01);
CreateInvItems(self,ItAmBolt,30);
CreateInvItem(self,ItFoCheese);
CreateInvItem(self,ItFoApple);
CreateInvItems(self,ItMiNugget,10);
CreateInvItem(self,ItLsTorch);
daily_routine = Rtn_start_212;
};


func void Rtn_start_212()
{
TA_GuardPassage(6,0,21,0,"OCC_GATE_RIGHT_GUARD");
TA_GuardPassage(21,0,6,0,"OCC_GATE_RIGHT_GUARD");
};

func void Rtn_OMFull_212()
{
TA_GuardPassage(6,0,21,0,"OCC_GATE_RIGHT_GUARD");
TA_StandAround(21,0,22,0,"OCC_MERCS_RIGHT_ROOM_FRONT");
TA_SitAround(22,0,24,0,"OCC_GATE_CAMPFIRE_1");
TA_Sleep(24,0,6,0,"OCC_MERCS_UPPER_LEFT_ROOM_FRONT");
};

func void Rtn_FMTaken_212()
{
};

func void Rtn_OrcAssault_212()
{
};


instance SLD_732_Soeldner(Npc_Default)
{
name[0] = NAME_Soeldner;
npcType = npctype_guard;
guild = GIL_SLD;
level = 18;
voice = 8;
id = 732;
attribute[ATR_STRENGTH] = 90;
attribute[ATR_DEXTERITY] = 70;
attribute[ATR_MANA_MAX] = 10;
attribute[ATR_MANA] = 10;
attribute[ATR_HITPOINTS_MAX] = 256;
attribute[ATR_HITPOINTS] = 256;
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_ApplyOverlayMds(self,"Humans_Militia.mds");
Mdl_SetVisualBody(self,"hum_body_Naked0",1,1,"Hum_Head_Pony",47,2,sld_armor_m);
B_Scale(self);
Mdl_SetModelFatness(self,0);
fight_tactic = FAI_HUMAN_Strong;
Npc_SetTalentSkill(self,NPC_TALENT_1H,2);
Npc_SetTalentSkill(self,NPC_TALENT_2H,1);
Npc_SetTalentSkill(self,NPC_TALENT_BOW,1);
EquipItem(self,ItMw_1H_Mace_War_03);
EquipItem(self,ItRw_Bow_Long_01);
CreateInvItems(self,ItAmArrow,20);
CreateInvItems(self,ItFoRice,7);
CreateInvItems(self,ItFoLoaf,5);
CreateInvItems(self,ItFoMutton,4);
CreateInvItems(self,ItMiNugget,15);
CreateInvItems(self,ItFoBooze,5);
CreateInvItems(self,ItLsTorch,5);
CreateInvItems(self,ItFo_Potion_Health_02,7);
CreateInvItem(self,ItMi_Stuff_Barbknife_01);
CreateInvItem(self,ItMi_Stuff_Mug_01);
daily_routine = Rtn_start_732;
};


func void Rtn_start_732()
{
TA_GuardPassage(8,0,22,0,"NC_GUARD_MAGES_RIGHT");
TA_GuardPassage(22,0,8,0,"NC_GUARD_MAGES_RIGHT");
};


instance TPL_1441_Templer(Npc_Default)
{
name[0] = NAME_Templer;
npcType = npctype_guard;
guild = GIL_TPL;
level = 17;
flags = 0;
voice = 13;
id = 1441;
attribute[ATR_STRENGTH] = 85;
attribute[ATR_DEXTERITY] = 65;
attribute[ATR_MANA_MAX] = 0;
attribute[ATR_MANA] = 0;
attribute[ATR_HITPOINTS_MAX] = 244;
attribute[ATR_HITPOINTS] = 244;
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_ApplyOverlayMds(self,"Humans_Mage.mds");
Mdl_SetVisualBody(self,"hum_body_Naked0",0,1,"Hum_Head_FatBald",60,1,tpl_armor_m);
B_Scale(self);
Mdl_SetModelFatness(self,-1);
fight_tactic = FAI_HUMAN_Strong;
senses = SENSE_SEE | SENSE_HEAR | SENSE_SMELL;
Npc_SetTalentSkill(self,NPC_TALENT_2H,1);
EquipItem(self,ItMw_2H_Sword_Light_02);
CreateInvItem(self,ItFoSoup);
CreateInvItem(self,ItMiJoint_1);
daily_routine = Rtn_start_1441;
};


func void Rtn_start_1441()
{
TA_GuardPassage(6,0,18,0,"PSI_TEMPLE_LEFT_GUARD");
TA_GuardPassage(18,0,6,0,"PSI_TEMPLE_LEFT_GUARD");
};


У Бартоло распорядок:

func void Rtn_OT_106()
{
TA_Guard(10,0,22,0,"OCC_CHAPEL_STAIRCASE_TOP");
TA_Guard(22,0,10,0,"OCC_CHAPEL_STAIRCASE_TOP");
};

ukur
13.10.2011, 17:51
ElderGamer
Распорядки охранников обрабатываются функциями состояния Story\ZS\ZS_GuardPassage.d
в котором используется набор восприятий GuardPerception(); и если ты изымал оттуда Npc_PercEnable(self,PERC_DRAWWEAPON,B_AssessFighter); то по идее они не должны были реагировать на оружие.

У Бартоло обработка идет через Story\ZS\ZS_Guard.d, которая особо не отличается от предыдущей.

Надеюсь начинал новую игру для проверки?

Как вариант можно еще попробовать поменять местами строчки

func void ZS_GuardPassage()
{
PrintDebugNpc(PD_TA_FRAME,"ZS_GuardPassage");
GuardPerception();
Npc_PercEnable(self,PERC_ASSESSPLAYER,B_AssessSC);
Npc_PercEnable(self,PERC_ASSESSQUIETSOUND,B_AssessSC);
Npc_PercDisable(self,PERC_OBSERVEINTRUDER);
AI_Standup(self);
AI_SetWalkMode(self,NPC_WALK);
AI_GotoWP(self,self.wp);
AI_AlignToWP(self);
B_InitArmor();
};

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

ElderGamer
14.10.2011, 08:12
Не помогает. :(



Надеюсь начинал новую игру для проверки?


Сначала пробовал, не начиная новой игры. Затем проверил, начав новую игру. Результат один и тот же, то есть никакой.

Я использую слегка подправленный (с целью увеличения размера боксов для текста и инвентаря) ЕХЕшник от версии 1С. Может ли быть так, что в исполняемом файле GothicMod.exe от модстартера какие-то из встроенных функций исправлены, и внесённые в скрипты игры правки восприятий будут работать нормально?

-Fritz-
14.10.2011, 10:07
А м.б. имеет смысл включить в патч, подправленный ехе от Модстартера? Подправленный в плане включения в него русского загрузочного сплэша от Руссобит-М и перевода текста Paused в игре, во время паузы?

ElderGamer
15.10.2011, 10:00
Здесь есть несколько вопросов. Во-первых, неизвестно пока, как поведёт себя ЕХЕшник из Модстартера (GothicMod.exe) в игре, установленной начисто. В комплект Модстартера входит несколько ЕХЕшников, которые взаимодействуют друг с другом. Что будет, если в игру перенести только подправленный GothicMod.exe, не знаю. Попробовал - игра запускается, но проблемы могут вылезти не сразу, требуется тестинг.

Во-вторых, есть правовые тонкости, в которых я не сильно разбираюсь. Имеем ли мы право использовать ЕХЕшник из Модстартера для патчевания оригинала от 1С?

Ну и ещё, в GothicMod.exe нужно засунуть необходимые правки. Зная адреса изменяемых параметров, правки можно сделать минут за десять. Для ЕХЕшника от 1С я такие адреса знаю (спасибо камраду Killer-m §wink). В ЕХЕшниках от Руссобита и из Модстартера изменяемые параметры находятся по другим адресам. Надеюсь, эту проблему можно будет решить, но это потребует времени.

Кстати, а где можно узнать, какие именно правки были внесены в ЕХЕшник из Модстартера? Чем он лучше, скажем, оригинала от 1С? §kratz

Shifroval
15.10.2011, 13:36
Ещё с ехешником модстартера помню хитрость с падением фпс вообще, тогда в пример была приведена Башня Туманов, там в её подземелье фпс страшно падал и виной всему был ехе от модстартера. Конечно Killer-m (aka Guzz) что то вроде творил и даже вроде как свои правленные ехе давал, но это нужно искать..

Olor1n
15.10.2011, 22:01
Ещё с ехешником модстартера помню хитрость с падением фпс вообще, тогда в пример была приведена Башня Туманов, там в её подземелье фпс страшно падал и виной всему был ехе от модстартера. Конечно Killer-m (aka Guzz) что то вроде творил и даже вроде как свои правленные ехе давал, но это нужно искать..

к стати да, в Башне фпс реально обваливались порой, причём однажды этот провал привёл к падению текстур и шейдеров как в самой готике (сначала), так и к почти всем играм и проседанию в них ФПС.

-Fritz-
16.10.2011, 12:24
А с ехе по умолчанию такого не происходит?

ElderGamer
16.10.2011, 19:14
Проверил сейчас игру с обоими ЕХЕшниками в Башне Туманов. Оба ЕХЕшника, и подправленный от 1С, и подправленный от Модстартера (да, я его уже чутка подправил), ведут себя одинаково. Встроенный в игру счётчик FPS показывает на моей системе значения от 60 до 20-25 кадров в секунду. Просадки, насколько я понимаю, связаны с загрузкой процессора. Движок игры использует только одно из ядер процессора, и мой четырёхъядерник с относительно скромной частотой ядер (2,66 ГГц) в Готике проигрывает более скоростному двух- или даже одноядерному процессору. :)

Shifroval
16.10.2011, 20:41
Я попробую завтра спросить Killer-m'а по данной проблеме с ехешниками и фпс, а ещё лучше если он сам лично всё распишет тут. Посмотрим что он скажет.

ElderGamer
17.10.2011, 08:08
Появился ещё один вопрос. Как сделать анимации жарки мяса на сковородке и перетирания болотника в прессе у неписей прерываемыми при попытке заговорить со стороны ГГ? Если неписи проигрывают эти анимации, заговорить с ними довольно проблематично. :dnuhr:

Guzz
18.10.2011, 19:06
Проверил сейчас игру с обоими ЕХЕшниками в Башне Туманов. Оба ЕХЕшника, и подправленный от 1С, и подправленный от Модстартера (да, я его уже чутка подправил), ведут себя одинаково.
Дело в том что просто так тормоза не появляются, это плавающий баг. Предположительно появляется при выполнении квеста Хроманин, при возвращении в Башню Туманов за последней книгой, игра практически зависает и выдает всего 0-1 FPS.
Этот баг существует только в GothicMod.exe. Чтобы попытаться исправить мне нужен сэйв где этот баг появляется, лорд Хаарт выкладывал такой сэйв (http://forums.ag.ru/?board=gothic&action=display&num=1192576961&goto=5824029), но ссылка уже не работает.

Встроенный в игру счётчик FPS показывает на моей системе значения от 60 до 20-25 кадров в секунду. Просадки, насколько я понимаю, связаны с загрузкой процессора. Движок игры использует только одно из ядер процессора, и мой четырёхъядерник с относительно скромной частотой ядер (2,66 ГГц) в Готике проигрывает более скоростному двух- или даже одноядерному процессору. :)
Максимальный FPS 60 из-за вертикальной синхронизации, а минимальный 20-25 из-за не отключенного ограничителя FPS.
Процессор хоть и является узким местом, но производительности даже одного ядра на современной системе вполне достаточно чтобы готика работала от 100FPS и выше:
http://www7.pic-upload.de/thumb/18.10.11/h378tztxogkv.jpg (http://www7.pic-upload.de/18.10.11/h378tztxogkv.jpg) http://www7.pic-upload.de/thumb/18.10.11/38zdk2mmu5g.jpg (http://www7.pic-upload.de/18.10.11/38zdk2mmu5g.jpg)

ElderGamer
19.10.2011, 10:40
Максимальный FPS 60 из-за вертикальной синхронизации, а минимальный 20-25 из-за не отключенного ограничителя FPS.

Да, верно, в профиле нвидиа была активирована вертикальная синхронизация. А вот с ограничителем я оплошал. Честно говоря, думал, что эта правка относится к максимальному уровню FPS и не стал вносить её в свою рабочую версию ЕХЕшника. Сейчас попробовал, и, о чудо, просадок и подтормаживаний больше нет!!! §ice Счетчик показывает "60" и ни кадром меньше! Тот, кто решится попробовать патч, получит в нагрузку ещё и это. :D


Дело в том что просто так тормоза не появляются, это плавающий баг. Предположительно появляется при выполнении квеста Хроманин, при возвращении в Башню Туманов за последней книгой, игра практически зависает и выдает всего 0-1 FPS.
Этот баг существует только в GothicMod.exe. Чтобы попытаться исправить мне нужен сэйв где этот баг появляется

То есть, нужна сохранёнка, полученная от начала и до конца на GothicMod.exe, которая будет содержать указанный баг? Пробежаться с читами по квесту "Хроманин" несложно, полчаса времени - и сохранёнка готова. Вечером попробую. Если баг появится, выложу сохранёнку.

Кстати, я нашёл в ЕХЕшнике от Модстартера все параметры, отвечающие за размеры окон. Использовал поиск одинаковых фрагментов кода и "метод тыка". :) Не стал искать, где находятся параметры, отвечающие за ограничение FPS и максимального разрешения, не знал, как проверить, то ли место я нашёл. Поможешь?

-Fritz-
20.10.2011, 09:40
Дело в том что просто так тормоза не появляются, это плавающий баг. Предположительно появляется при выполнении квеста Хроманин, при возвращении в Башню Туманов за последней книгой, игра практически зависает и выдает всего 0-1 FPS.
Этот баг существует только в GothicMod.exe. Чтобы попытаться исправить мне нужен сэйв где этот баг появляется, лорд Хаарт выкладывал такой сэйв (http://forums.ag.ru/?board=gothic&action=display&num=1192576961&goto=5824029), но ссылка уже не работает.

Максимальный FPS 60 из-за вертикальной синхронизации, а минимальный 20-25 из-за не отключенного ограничителя FPS.
Процессор хоть и является узким местом, но производительности даже одного ядра на современной системе вполне достаточно чтобы готика работала от 100FPS и выше:
http://www7.pic-upload.de/thumb/18.10.11/h378tztxogkv.jpg (http://www7.pic-upload.de/18.10.11/h378tztxogkv.jpg) http://www7.pic-upload.de/thumb/18.10.11/38zdk2mmu5g.jpg (http://www7.pic-upload.de/18.10.11/38zdk2mmu5g.jpg)
А возможность локализовать сообщение PAUSED и изменить сплеш на локализованный от Руссобит существует?

dixie
20.10.2011, 10:14
Кстати, эта же фигня с падением fps до нуля именно у башни туманов наблюдалась и в Г2, в моде куда вставил эту часть. Как пофиксил - сам не знаю :) Есть вариант, что там в меше ошибки кое-где, что-то исправил - но, всё-равно присутствует некий шаманизм ;) Но в моём случае тормоза были массовые - на втором и более подходе к башне, у всех играющих.

ElderGamer
20.10.2011, 20:24
Может, знатоки подскажут что? Не могу заставить Дасти автоматически выйти из режима попутчика. Когда приводишь его к Идолу Тондралу, после разговора с Идолом Дасти должен выйти из группы и начать выполнение нового распорядка. Но этого не происходит, Дасти продолжает бегать за ГГ, как попутчик. Сброс режима попутчика происходит, если попытаться заговорить с Дасти. Распорядок у него меняется (проверено марвином), гильдия тоже.

Вот соответствующая инстанция из Готики от 1С.



instance DIA_BaalTondral_DustySuccess(C_Info)
{
npc = GUR_1203_BaalTondral;
nr = 1;
condition = DIA_BaalTondral_DustySuccess_Condition;
information = DIA_BaalTondral_DustySuccess_Info;
permanent = 0;
description = "Этот человек ищет твоего расположения, господин мой!";
};


func int DIA_BaalTondral_DustySuccess_Condition()
{
var C_Npc Dusty;
Dusty = Hlp_GetNpc(VLK_524_Dusty);
if((BaalTondral_GetNewGuy == LOG_RUNNING) && (Npc_GetDistToNpc(self,Dusty) < 1000))
{
return 1;
};
};

func void DIA_BaalTondral_DustySuccess_Info()
{
var C_Npc Dusty;
Dusty = Hlp_GetNpc(VLK_524_Dusty);
AI_Output(other,self,"DIA_BaalTondral_DustySuccess_15_00"); //Этот человек ищет твоего расположения, господин мой!
AI_Output(self,other,"DIA_BaalTondral_DustySuccess_13_01"); //Кого ты привел ко мне? Достоин ли он?
AI_Output(other,self,"DIA_BaalTondral_DustySuccess_15_02"); //Вне сомнений, он нуждается в духовном наставнике, господин.
AI_Output(self,other,"DIA_BaalTondral_DustySuccess_13_03"); //Очень хорошо. С этого момента он будет одним из моих учеников.
AI_TurnToNPC(self,Dusty);
AI_TurnToNPC(Dusty,other); //*Здесь, видимо, мелкая ошибка.*
AI_Output(self,NULL,"DIA_BaalTondral_DustySuccess_13_04"); //Ты будешь приходить ко мне каждый день и слушать то, что я скажу тебе. Твоя душа еще может быть спасена.
Dusty.aivar[AIV_PARTYMEMBER] = FALSE;
Dusty.flags = 0;
Dusty.guild = GIL_NOV;
Npc_SetTrueGuild(Dusty,GIL_NOV);
B_ExchangeRoutine(VLK_524_Dusty,"PREPARERITUAL");
BaalTondral_GetNewGuy = LOG_SUCCESS;
B_LogEntry(CH1_RecruitDusty,"Дасти теперь является учеником Идола Тондрала. Я выполнил задание.");
Log_SetTopicStatus(CH1_RecruitDusty,LOG_SUCCESS);
B_GiveXP(XP_DeliveredDusty);
};

Wolfgar93
23.10.2011, 18:42
Требуется срочная помощь по работе с текстурами в Спейсере Г1.
Как сделать так, чтобы при приближении к текстуре она исчезала? Такое свойство стоит в любых домах в дверных проёмах. Когда копирую текстуру с помощью пипетки, возникает ошибка текстур и просвечивается весь мир.

ElderGamer
24.10.2011, 13:07
Очередной вопрос к специалистам. :) Как в Г1 осуществляется связь между МОВом "Лебёдка" и объектом "Ворота"?

Заметил такую особенность. Если ГГ в какой то момент игры имеет право взаимодействовать с лебёдкой, то ворота реагируют на положение лебёдки только тогда, когда их положение при инициализации локации соответствовало положению "по умолчанию". Если изменить положение ворот, сохраниться, загрузить сохранёнку (или выйти из локации и снова зайти), то ворота перестают реагировать на положение лебёдки. Так, например, можно в начале игры закрыть ворота Старой Шахты с помощью находящейся рядом лебёдки, сохраниться и потерять возможность вновь открыть эти ворота, то есть, потерять возможность пройти игру. Хотелось бы это исправить, но не знаю, где копать.

В скриптах пакета GOTHIC.DAT есть ряд функций, вызываемых при взаимодействии с лебёдками. Но вот откуда они вызываются, я не пойму. :dnuhr:

ukur
24.10.2011, 16:53
ElderGamer
Ворота - это мувер. Лебедка - триггер. Все делается в Спейсере. Условия на триггеры прописываются в скриптах.
Как создать простой мувер (http://worldofplayers.ru/node/551)
Работа с редактором мира Spacer (G2a) (http://worldofplayers.ru/node/563)

ElderGamer
24.10.2011, 18:33
Спасибо за ссылки! Информация эта для меня в любом случае полезная. §wink

Но ответа на свой вопрос я там пока не нашёл. В явном виде не нашёл. Возможно, на этом просто не заостряется внимание.

Вот что я подразумевал, когда задавал свой вопрос. Возьмём для примера ворота в Старой Шахте, которые охраняет Асгхан. Разрешение или запрет на взаимодействие с лебёдкой определяет функция mc_oldmine_asghan() описанная в файле MOB.d:



var int _str_message_wheel_stucks_again;

func int mc_oldmine_asghan()
{
PrintDebugNpc(PD_ITEM_MOBSI,"MC_OLDMINE_ASGHAN");
if(Npc_KnowsInfo(hero,Grd_263_Asghan_OPEN_NOW) && (_STR_MESSAGE_WHEEL_STUCKS_AGAIN == 0))
{
_STR_MESSAGE_WHEEL_STUCKS_AGAIN = 1;
return TRUE;
}
else
{
G_PrintScreen(_STR_MESSAGE_WHEEL_STUCKS);
};
return FALSE;
};


Функция вызывается (откуда-то) при попытке взаимодействия с лебёдкой. Если попытаться повернуть лебёдку раньше времени, будет выведено сообщение о том, что лебёдку заклинило. После выполнения всех условий Асгхана лебёдка доступна к использованию (функция возвращает значение "TRUE"). Использовать лебёдку можно только один раз, что иногда приводит к появлению критического бага.

Вслед за первой функцией по факту открытия ворот (мувера) вызывается (откуда-то) функция event_om_crawler_01() описанная в файле EventsOldmine.d. Эта функция вставляет несколько ползунов, "выбегающих" из открытых ворот:



func void event_om_crawler_01()
{
Wld_InsertNpc(MineCrawler,"OM_CAVE3_28");
Wld_InsertNpc(MineCrawler,"OM_CAVE3_28");
Wld_InsertNpc(MineCrawler,"OM_059");
Wld_InsertNpc(MineCrawler,"OM_059");
Wld_InsertNpc(MineCrawler,"OM_060");
};


Причём, вызывается эта функция именно фактом открытия ворот. При закрытии ворот, если снять одноразовость использования лебёдки, функция не вызывается.

Может ли вызов этих двух функций быть описан в свойствах триггера и мувера в Спейсере? Или для этого существует некая скриптовая прослойка?

Кстати, триггер можно установить командой WLD_SendTrigger("ХХХ"). А есть ли аналогичная команда для сброса состояния триггера?

ElderGamer
01.11.2011, 05:17
Хотелось бы посоветоваться по поводу карт. В игре есть две малогабаритные карты - Карта пути к Старой Шахте и Карта Ю`Бериона к юнитору, которые отображаются, на мой взгляд, не очень хорошо.


http://s017.radikal.ru/i422/1111/3a/22f5de090482t.jpg (http://radikal.ru/F/s017.radikal.ru/i422/1111/3a/22f5de090482.jpg.html)

Эти карты показываются не по центру экрана, а маркер GPS может вылазить за пределы карты и маячить где-то там.

Предлагаю исправить эту ситуацию одним из следующих способов.

Способ первый. Отказываемся от услуг GPS, а текстуру с картой обрезаем так, чтобы изображение карты немного увеличилось и отцентровалось. Тогда карта будет выводиться на экран примерно также, как карты Лагерей. Этот способ довольно прост в реализации.

Способ второй. Делается новая текстура карты на основе большой карты Колонии. Но участки карты, которые не важны для выполнения миссии (для которой, собственно, и предназначена эта карта), размываются. Если ГГ находится за пределами целевой области, маркер GPS показывается на размытом участке карты, что не так страшно, как если бы он показывался за её пределами. Данный способ требует работы фотошоппера. Я с этим не справлюсь.




И ещё вопрос, который хотелось бы обсудить. Задумывались ли вы, почему Ли даёт в награду за освобождение Свободной Шахты магическую руну? Причём, это происходит, даже если ГГ ни капельки не разумеет в области магии. Ситуация, на мой взгляд, не совсем логична. Объясняется такое положение вещей тем, что данный диалог с Ли набран фразами из разных диалогов, например, диалогов с Кор Ангаром.

Как мне кажется, стоит попытаться исправить эту ситуацию. Как минимум, можно попробовать заменить руну на эквивалентное количество руды. :dnuhr: Что скажете?

Olor1n
01.11.2011, 19:05
с Ли возможно имело бы смысл.

Проблему с картой всё-таки желательно решить по второму способу, с размытием.

Shifroval
01.11.2011, 21:03
С картой всё сложнее чем кажется. Суть мелких карт в том, что это именно кусок карты, а не вся карта. И что непись выдаёт только нужную часть карты, т.к не имеет всей или не хочет давать. Всю карту только покупать\воровать. В общем то реализм и добавляет атмосферности. До сих пор же орут на форумах про рисованные и собираемые карты в Ризенах, как в первом орали, так и про второй орут.
А если сделать мыльную карту, то будет как в стратегиях, туман войны. Или в коридорных\американских рпг, где есть карты любых локаций с самого начала игры, но их нужно "открыть", пробежав по ним целиком (да даже в Аркании есть такое). В общем я против размытых карт, нужно решать вопрос другим методом, как по мне. А иначе мы сами же заколачиваем одну из фич Готики в гроб.
А суть неполных карт в том, что ГГ и не должен выходить за зону их "покрытия", а идти строго по карте. Но да, вылезающая стрелка всё портит. Кстати я и не помню о ней, т.к опять же, даже не открывал неполные карты кроме как по квестам, да и то в первые 2 прохождения, не больше.

Про Ли сложно, но я вот даже как то и не помню, что именно он давал и внимание на этом не заострял. А руда..кому она нужна, с 3 главы ГГ уже едва ли не богаче Гомеза, если грамотно играть.

Объясняется такое положение вещей тем, что данный диалог с Ли набран фразами из разных диалогов, например, диалогов с Кор Ангаром.
Хмм? Интересно, выходит диалог Ли тупо собрали из всего подряд?
И что за руну он даёт, и как выглядит его диалог?

PontifEx
01.11.2011, 22:10
Имхо, выдача руны от Ли - всего лишь очередная заглушка на месте недоделанных/отброшенных последующих квестов. Как мне кажется, после штурма шахты должна была быть вендетта Старому Лагерю: и Горн говорил, что план вернуть Лощину - всего лишь первый шаг, и Ли на дамбе какую-то пафосную речь ни с того, ни с сего толкает. Вполне возможно, что если маги огня выживали (как было изначально задумано, и где-то уже упоминалось на форумах) то Ли выдавал бы как раз руну телепортации в Новый Лагерь - ибо руна от Сатураса все же находила адресатов. А вот что с этим делать в фиксе - ну не знаю, возможно, стоит вместо руны шторма выдать какой-нибудь ковыряльник из тех, что иначе никогда не используются? Или динамически отследить, какой из параметров Безымянного больше и выдать соответственно руну/железяку/лук-арбалет ?

ElderGamer
02.11.2011, 06:20
По поводу карт, лично мне больше нравится вариант с отказом от GPS и центровкой карты на текстуре/экране. В принципе, для того, кто играет в игру в N-цатый раз, и сама карта то не особо нужна, а уж маркер на ней - и подавно.

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



А вот что с этим делать в фиксе - ну не знаю, возможно, стоит вместо руны шторма выдать какой-нибудь ковыряльник из тех, что иначе никогда не используются? Или динамически отследить, какой из параметров Безымянного больше и выдать соответственно руну/железяку/лук-арбалет ?

Думаю, отследить уровень развития ГГ можно. Можно также придумать награду для него в соответствии с выбранным направлением развития. Правда, ценность этой награды при "правильном прохождении" будет не выше, чем у эквивалентного количества руды. :dnuhr: Но это всё-равно будет лучше, чем одаривание ЛЮБОГО ГГ магической руной. Некоторые проблемы могут возникнуть при создании звукового файла. Надеюсь, получится заменить "Прими эту магическую руну..." на "Прими ЭТО...".

Есть ещё вариант, в котором Ли будет давать ГГ магическое кольцо или амулет (для кольца у Ангара даже есть фраза). Теоретически, можно вставить в игру именное кольцо или амулет Ли, которые будут в чём-то превосходить кольца или амулеты, имеющиеся в продаже на этом этапе игры (4 глава). §kratz

DenZanuda
02.11.2011, 12:48
вариант с отказом от GPS и центровкой карты на текстуре/экране

курсор будет отсутствовать вообще на любых картах или только на этих клочках?

если только на некоторых обрывочных картах - то это вполне себе решение, учитывая, что в любой момент можно сверится с основной картой

если же GPS устраняется вообще как явление - то это неудачный вариант, имхо

ElderGamer
02.11.2011, 16:02
курсор будет отсутствовать вообще на любых картах или только на этих клочках?

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

DenZanuda
02.11.2011, 19:23
Только на клочках. Просто в их инстанциях будет убрана привязка к игровому миру.

тогда это действительно самый оптимальный вариант

Olor1n
02.11.2011, 19:37
неа, мне всё равно не нравится такой вариант. Сейчас думал над размытием и придумал интересный вариант: оставить за пределом рабочего куска контуры колонии и залить всё коричневым, как это сделано изначально с орочей территорией. Или даже тупо заштриховать под карандашный стиль

DenZanuda
02.11.2011, 20:17
тогда теряется фишка, что
непись выдаёт только нужную часть карты, т.к не имеет всей или не хочет давать.

да и на скрине видно, что у куска карты рваные края

ElderGamer
07.11.2011, 07:06
С картами пока реализовал первый вариант. GPS на этих двух картах отключил, текстуры заменил. Изображение клочков увеличилось на 40% и отцентровалось.


http://s60.radikal.ru/i169/1111/fc/e2562f215adft.jpg (http://radikal.ru/F/s60.radikal.ru/i169/1111/fc/e2562f215adf.jpg.html) http://s017.radikal.ru/i414/1111/37/78c1847aa6e8t.jpg (http://radikal.ru/F/s017.radikal.ru/i414/1111/37/78c1847aa6e8.jpg.html)

Второй вариант не забыт, но для его реализации нужна помощь фотошоппера. :dnuhr:

Кстати, с момента релиза беты пошла уже вторая неделя, а ни одного отзыва ещё не поступило. Неужели, всё так плохо? Или наоборот, всё хорошо? Или? ;)

Dimus
07.11.2011, 10:37
У меня есть следующие пожелания:
- Включить в состав фикс вертела от Wolfgar93.
- Включить в состав G1 OrkTempel Patch от Efectivo, т.к. в патче используется экзешник со снятым лимитом FPS.
- Выделить новые файлы озвучки в отдельный VDF (speech_patch.vdf) для реализации опциональной установки.
- Исправить многочисленные косяки мира (сундуки, которые нельзя открыть, глючные котлы и точильные камни в НЛ, при использовании которых проигрываются анимации без ложки или меча, падающая не в ту сторону колонна в разрушенном монастыре и т.п.). Разумеется, что это потребует помощи мододелов, умеющих работать с ZEN-ами.

ElderGamer
07.11.2011, 12:28
У меня есть следующие пожелания:
- Включить в состав фикс вертела от Wolfgar93.

Согласен, просто руки пока не дошли. Нужно выяснить, содержит ли пакет SFX.DAT из файлов камрада Wolfgar93 правки из саундпатча от камрада AndiNo.


- Включить в состав G1 OrkTempel Patch от Efectivo, т.к. в патче используется экзешник со снятым лимитом FPS.

Насколько я понимаю, ЕХЕшники, которые входят в состав мод-фикса, тоже содержат модификацию, снимающую лимитом FPS.

Но я бы не отказался узнать, что G1 OrkTempel Patch от Efectivo делает помимо снятия лимита FPS и исправления бага, внесённого другим фиксом. Может быть, этот патч содержит ещё какие-нибудь плюшки?


- Выделить новые файлы озвучки в отдельный VDF (speech_patch.vdf) для реализации опциональной установки.

Сделать это несложно. Но... Я уже писал на АГ, что подобная манипуляция не решит проблему с использованием немецкой озвучки, поскольку звуковые файлы прописываются в скриптах пакета GOTHIC.DAT. Для поддержки опциональности установки новых звуковых файлов нужно создавать ДВА РАЗНЫХ пакета GOTHIC.DAT. В версии "без новых звуковых файлов" все изменения, связанные с их введением, нужно откатить до варианта от 1С/Snowball.

Если кто-то изъявит желание взяться за эту работу, я готов предоставить в его распоряжение все мои наработки. Думаю, вернуть всё в исходное состояние будет несложно, но прошу понять и меня. Меня не особенно радует перспектива собственными руками порушить то, на что потрачено довольно много времени и сил. ;)


- Исправить многочисленные косяки мира (сундуки, которые нельзя открыть, глючные котлы и точильные камни в НЛ, при использовании которых проигрываются анимации без ложки или меча, падающая не в ту сторону колонна в разрушенном монастыре и т.п.). Разумеется, что это потребует помощи мододелов, умеющих работать с ZEN-ами.

Двумя руками ЗА! Насколько я понимаю, многие мелкие косяки, связанные с МОВами, вэйпоинтами и фрипоинтами, можно исправить, редактируя их свойства. Не знаю, правда, насколько это трудоёмко. Хотелось бы надеяться, что к этой работе подключатся специалисты. :)

Dimus
07.11.2011, 13:14
1. Надеюсь, что камрад Wolfgar93 сам детально расскажет, что именно он менял в скриптах своего фикса вертела.

2. Процитирую инфу о GothicFPS и G1 OrkTempel Patch из шапки темы по техвопросам на форуме AG:

GothicFps
Установка: рекомендуется.
Описание: Патч снимает лимит FPS. Устанавливается поверх обновления G1PK.
Проблемы: Один из переключателей в Храме Спящего перестанет реагировать на стрелы (некритично).

G1 OrkTempel Patch
Автор: Efectivo
Установка: рекомендуется.
Описание: Патч решает проблему с переключателем в Храме Спящего, возникающую при установке GothicFps.
А поскольку экзешники вашего мод-фикса тоже были пролечены GothicFps, то без G1 OrkTempel Patch этот переключатель работать не будет. Насколько я знаю, в ORCTEMPEL.ZEN изменены свойства только этого переключателя. Но ничто не мешает сравнить ZEN из патча с оригинальным ZEN-ом из worlds.vdf.

ElderGamer
07.11.2011, 17:51
А поскольку экзешники вашего мод-фикса тоже были пролечены GothicFps, то без G1 OrkTempel Patch этот переключатель работать не будет.

Нее, не так. ЕХЕшники из мод-фикса были изменены вручную лично мной с помощью HEX-редактора. Лимит FPS снят изменением одного единственного двухбайтового параметра в ЕХЕшнике версии от 1С/Snowball (спасибо камраду Guzz/Killer-m за подсказку, что и где нужно изменить §wink). GothicFps для модернизации ЕХЕшников не использовался.


Насколько я знаю, в ORCTEMPEL.ZEN изменены свойства только этого переключателя. Но ничто не мешает сравнить ZEN из патча с оригинальным ZEN-ом из worlds.vdf.

К сожалению, мешает моя безграмотность, ибо не ведаю я, как сие проделать. :D Во-первых, я не знаю, как вытащить файлы из установщика, во-вторых, я не представляю себе пока, что такое ZEN-файлы, и как с ними работать.

Кстати, попутно встречный вопрос. А как собраны установщики саундпатчей для Г2? Камрад AgD дал мне пару ссылок, но я пока не сумел разобраться, что к чему. NSIS 2.46 - это то, что нужно для сборки установщика? Если да, то как пользоваться этой программой? :dnuhr:

ElderGamer
10.11.2011, 05:11
А поскольку экзешники вашего мод-фикса тоже были пролечены GothicFps, то без G1 OrkTempel Patch этот переключатель работать не будет.

Упс! Приношу извинения за поспешные выводы. Несмотря на то, что ограничение FPS снято без участия GothicFps, результат этой правки такой же. Переключатель действительно перестаёт реагировать на стрелы. :( В процессе тестирования я пользовался ЕХЕшником, в котором ограничение FPS не было снято, поэтому ошибка и не была обнаружена.

Установка G1 OrkTempel Patch помогает, но для того, чтобы изменения вступили в силу требуется начать новую игру. Для преодоления проблемы могу также порекомендовать этот эпизод игры (комната с шипами рядом с Гор Бобой) проходить, используя родной ЕХЕшник от 1С, в котором лимит FPS не снят. Или можно использовать мой рабочий вариант (http://upload.worldofplayers.de/files7/Gothic_workinprogress.rar) ЕХЕшника, в котором лимит FPS тоже не снят.


Насколько я знаю, в ORCTEMPEL.ZEN изменены свойства только этого переключателя.

Кстати, попробовал, как оно работает. Теперь в мишень вообще не нужно стрелять. Триггер срабатывает автоматически, как только опустятся каменные плиты, скрывающие мишень. Так оно и задумано? Или это у меня что-то не так работает? :dnuhr:

Dimus
10.11.2011, 12:04
@ ElderGamer:

Установка G1 OrkTempel Patch помогает, но для того, чтобы изменения вступили в силу требуется начать новую игру.
На самом деле достаточно загрузить игру с сэйва, сделанного до первого входа в храм, т.е. пока ещё не произошла инициализация локации.


Так оно и задумано? Или это у меня что-то не так работает?
Похоже, что так и задумано - раз после GothicFPS не работает триггер при нажатии на переключатель, значит, приходится его как-то автоматизировать.

ElderGamer
10.11.2011, 12:53
Похоже, что так и задумано - раз после GothicFPS не работает триггер при нажатии на переключатель, значит, приходится его как-то автоматизировать.

Трудно сказать, что происходит. Попадание стрелы по мишени сопровождается проигрыванием соответствующего звукового эффекта. Значит, сам факт попадания регистрируется. А вот почему процесс не идёт дальше... ??? :dnuhr:

Гм... не нравится мне это. С учётом того, что в храме Спящего есть и другие недоделки (висящие в воздухе предметы, неработающие переключатели в следующей по сюжету комнате), локация нуждается в более серьёзных исправлениях. Правда, тема "аж ломится" от предложений помощи. Походу, придётся самому изучать Спейсер и править локации. :D

Ну да ладно. На днях отъезжаю в длительную командировку. В одной из северных провинций Тамриэля срочно требуется моё присутствие. Вернусь из командировки - тогда и подумаю, как быть. §wink


ДОБАВЛЕНО:

Походу, проблема с неработающим переключателем (точнее, с тремя неработающими переключателями) в храме Спящего решена. Если есть желающие протестировать фикс локации, стучитесь в личку. Я протестил его на двух компах разного уровня. Вроде бы, всё работает. Если работоспособность фикса будет подтверждена тестами на разных системах, то этот фикс будет включён в состав комплексного мод-фикса. §wink

ElderGamer
21.11.2011, 11:10
Вставил в игровой мир задуманных создателями игры, но не доведённых до ума Шантажиста и его помощника.


http://s017.radikal.ru/i444/1111/db/a1f00358f107t.jpg (http://radikal.ru/F/s017.radikal.ru/i444/1111/db/a1f00358f107.jpg.html)

Вернее так, это в нашей локализации от Снежков эти неписи могли бы носить имена "Шантажист" и "Помощник шантажиста". В немецком же варианте они "Erpresser" и "Co Erpresser". А "Erpresser" можно перевести с немецкого не только, как "Шантажист", но и как "Вымогатель", что более подходит к роду их занятий.

Хотелось бы посоветоваться, какие имена-названия должны носить эти неписи. Оставить "Шантажиста" или изменить на "Вымогателя"? А может, дать им другие названия или даже собственные имена? :dnuhr:

Olor1n
21.11.2011, 13:41
хм, я за вымогателя, если честно, это благозвучнее. А какова их роль в игре?

ElderGamer
21.11.2011, 15:28
А какова их роль в игре?

Как и некоторые другие неписи в игре, они требуют с ГГ денег, в смысле, руды. Но в отличие от стражников в СЛ, руду они просят не за защиту, а за право прохода. В общем, гопники они. $bsg

PontifEx
21.11.2011, 17:04
Хм, а что у них с уровнем и условиями на срабатывание "шантажа"? Если по этому же мостику бежать с Мордрагом, не выйдет ли так, что на булаве Мордрага все их требования и закончатся? :D

ElderGamer
22.11.2011, 07:48
Если ГГ путешествует в компании Мордрага, то эти типы предпочтут его не замечать. То есть, наезд не состоится. На мой взгляд, это логично. В оригинальном скрипте этого нет, добавил от себя. Насчёт наезда в другой ситуации, пока наезду подвергается только новичок в первой главе. Но можно оставить наезд и на ГГ-Призрака или ГГ-послушника. На более сильного героя эти парни вряд ли стали бы наезжать, благоразумие таки должно побеждать, как мне кажется. :dnuhr:

Смеха ради, можно поставить проверку на одетый доспех, и тогда некромант в шестой главе сможет надеть штаны рудокопа, подвергнуться наезду и поглумиться над неразумными вымогателями. :D Хотя, возможно, из-за разницы в уровнях эти типы просто дадут дёру, едва выхватив мечи.

Dimus
22.11.2011, 09:58
IMHO самое логичное - оставить всё как есть: гопники прессингуют только нейтрала в 1-й главе, потому что наезд на ГГ-призрака или ГГ-послушника чреват тем, что ошмонанный теоретически может привести на разборку с ними стражников или храмовников. Ведь не зря же Джако и компания прекратили изготовление контрафактного болотника после того, как ГГ-послушник припугнул их храмовниками, якобы посланными по их следу.

Wolfgar93
24.11.2011, 11:11
Проблема исправлена.
http://upload.worldofplayers.de/files7/Gothi8.jpg

ElderGamer
24.11.2011, 12:38
@Wolfgar93, чем правил меш локации? Использовал Спейсер или 3D Studio Max? Что нужно сделать, чтобы подложить изменённый меш для компиляции ZEN-файла? Насколько это трудоёмко? Дело в том, что я тоже сейчас понемногу разбираюсь со Спейсером и исправляю ошибки игрового мира. Исправлена уже куча мелких ошибок. Постепенно подбираюсь к более серьёзным проблемам. Но есть также несколько ошибок меша, которые я пока исправить не могу. :dnuhr:

По поводу имён Шантажиста и его компаньона. Пока изменяю их на Вымогателя и... Вымогателя. Если будут другие предложения, пишите. §wink

DenZanuda
24.11.2011, 14:13
Дело в том, что я тоже сейчас понемногу разбираюсь со Спейсером

о, так глядишь и работа над ошибками перерастёт в работу над собственным модом

-Fritz-
24.11.2011, 17:48
Проблема исправлена.
http://upload.worldofplayers.de/files7/Gothi8.jpg
Дорога как упиралась в скалу, так и упирается.

ElderGamer
25.11.2011, 07:25
о, так глядишь и работа над ошибками перерастёт в работу над собственным модом

О, нет, это вряд ли. И дело тут не в отсутствии необходимого объёма знаний (как показывает практика, знания - дело наживное, было бы желание). Для создания мода нужны определённые амбиции. У меня их нет. Лавры великого модостроителя меня не прельщают. Я не собираюсь кому-то что-то доказывать. Я всего лишь хочу уменьшить количество ошибок в моей любимой игре. ;)

Конечно, творческие моментики присутствуют и при исправлении ошибок. Взять, к примеру, отшельника Гилберта. Я добавил в его пещеру спальник (не на голом же полу он спит), сковороду и прописал в его распорядке дня нужные пункты. Формально, такие вот мелкие изменения оригинала можно рассматривать, как моддинг. Но, на мой взгляд, это всё-таки исправление ошибок.

Кроме того, есть вещи, которые я бы хотел изменить в версии мод-фикса "для личного пользования". Может быть, не только я ловил себя на мысли о нелогичности некоторых вещей в оригинале. Почему после ухода Галома с группой послушников и Стражей население БЛ не уменьшается (на месте остаётся даже его телохранитель)? Почему после того, как Диего назначает встречу друзьям в 4 главе сам он до конца игры торчит на прежнем месте (в интро Г2 показано его правильное местоположение)? Почему после нападения на СШ и фактического начала войны между Лагерями жизнь в НЛ практически не изменяется? Эти и другие моменты я считаю ошибками и собираюсь исправить. Но... Думаю, не все согласятся с моими умозаключениями о том, что логично, а что нелогично. Поэтому такие исправления будут присутствовать только в версии "для личного пользования". :)


Дорога как упиралась в скалу, так и упирается.

Кстати, походу дорога упирается в скалу неслучайно. Полетав камерой в этом месте, я пришёл к выводу, что там планировалось разместить какую-то небольшую локацию, не вошедшую в финальную версию игры. Локацию не вставили/вырезали, а дыру заткнули только на входе. В принципе, мне нравится идея сделать там заваленный камнями проход. Камни можно накидать в ZEN-файле, это не проблема. Но без правки меша для создания самого прохода это не получится реализовать. :dnuhr:

Olor1n
25.11.2011, 09:41
Кроме того, есть вещи, которые я бы хотел изменить в версии мод-фикса "для личного пользования". Может быть, не только я ловил себя на мысли о нелогичности некоторых вещей в оригинале. Почему после ухода Галома с группой послушников и Стражей население БЛ не уменьшается (на месте остаётся даже его телохранитель)? Почему после того, как Диего назначает встречу друзьям в 4 главе сам он до конца игры торчит на прежнем месте (в интро Г2 показано его правильное местоположение)? Почему после нападения на СШ и фактического начала войны между Лагерями жизнь в НЛ практически не изменяется? Эти и другие моменты я считаю ошибками и собираюсь исправить. Но... Думаю, не все согласятся с моими умозаключениями о том, что логично, а что нелогично. Поэтому такие исправления будут присутствовать только в версии "для личного пользования". :)


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

DenZanuda
25.11.2011, 10:20
О, нет, это вряд ли. И дело тут не в отсутствии необходимого объёма знаний (как показывает практика, знания - дело наживное, было бы желание). Для создания мода нужны определённые амбиции. У меня их нет. Лавры великого модостроителя меня не прельщают. Я не собираюсь кому-то что-то доказывать.

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

Кроме того, ты стараешься сделать это дело общим насколько это возможно. Советуешься, привлекаешь людей...
Так что, как сказал кто-то из великих, "делай своё дело так, как считаешь нужным, а другие пусть говорят что угодно".

ElderGamer
01.12.2011, 06:36
Работаю над решением проблемы потери управления воротами/решётками с помощью лебёдок/рычагов. Насколько я понимаю, проблема возникает из-за того, что при сохранении игры запоминается положение мувера (ворота), но не запоминается положение триггера (лебёдка). Лебёдки и рычаги при инициализации игрового мира всегда сбрасываются в начальное положение.

На данный момент реализована связь между воротами/решётками и лебёдками/рычагами через скрипты (в исходном варианте это делается через движок). Положение ворот запоминает специальная переменная, и после загрузки сохранения связь с лебёдкой не теряется. К сожалению, пришлось изменить логику взаимодействия неписей и ГГ с лебёдками. Команды "открыть" и "закрыть" подаются теперь не в зависимости от положения лебёдки/рычага, а в зависимости от очерёдности взаимодействий: одно взаимодействие - "открыть", следующее взаимодействие - "закрыть" и т. д. Впрочем, нечто подобное реализовано в Г2, так что, думаю, это не слишком высокая плата за исправление бага.

По ходу дела вылез один побочный эффект. После редактирования свойств лебёдок в Спейсере теряется их привязка к определённой гильдии. То есть, если в оригинале игры охранники бьют ГГ за попытку потрогать лебёдку, то после редактирования свойств лебёдок этого не происходит - крути, сколько хочешь.

Вопрос к специалистам по Спейсеру: как можно возобновить привязку МОВов к определённой гильдии после редактирования их свойств? :dnuhr:

Wilde
02.12.2011, 07:57
А как эта замечательная вещь будет устанавливаться - как мод или как патч?

ElderGamer
02.12.2011, 10:08
Надеюсь, "замечательная вещь" - это не ирония? Или ирония? :D

На самом деле, я пока сам не знаю, что из этого выйдет. Поскольку я не играю в моды, то для меня (и для таких, как я) это патч. Версия мод-фикса для чистой Готики от 1С/Snowball, реализованная в виде патча, наиболее вероятна. Хотя и здесь есть сложности. Например, я пока не могу разобраться с инсталлятором, ибо для этого как минимум нужно время, а на просьбы о помощи пока никто не откликнулся, ни делом, ни даже словом. Да что там инсталлятор. На предложение протестить фикс храма Спящего, исправляющий не реагирующие на стрелы мишени, откликнулся всего один человек, да и тот пока не нашёл 10 минут времени на сам тест. (;)) Так что, не исключено, что в результате моих трепыханий получится всего лишь "версия для личного пользования". :D

А вот как быть с теми, для кого моды - это неотъемлемое приложение к Готике, я пока не очень представляю. Здесь на первый план выходит проблема совместимости с модами. Я, как человек разбирающийся в модах и модостроении довольно смутно, не могу с уверенностью предсказать, как вносимые мной изменения повлияют на многочисленные моды. А они ведь непременно на что-то повлияют. §list

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

Wilde
02.12.2011, 12:00
Нет, это вовсе не ирония. Исправление багов, да ещё с таким творческим подходом - действительно замечательно.

Но несовместимость патча с модами где-то в самом деле может возникнуть. Заранее не угадаешь, надо пробовать.

А помощи лучше тут (http://forum.worldofplayers.ru/forumdisplay.php?f=353) попросить. Просто мододелов там больше бывает. :)

ukur
02.12.2011, 15:15
Здесь на первый план выходит проблема совместимости с модами. Я, как человек разбирающийся в модах и модостроении довольно смутно, не могу с уверенностью предсказать, как вносимые мной изменения повлияют на многочисленные моды. А они ведь непременно на что-то повлияют. §list
Если захочешь таки выпустить "замечательную вещь" и при этом сохранить возможность запуска других модов - то единственно верное решение упаковать проект как мод. В любом другом виде распространения "замечательная вещь" либо не окажет никакого влияния на другие моды, т.к. у них свой набор скриптов и ресурсов, либо наоборот перебьет возможность их запуска, если упаковать "замечательную вещь" в VDF с более свежим временным штампом.


Лично для меня не составляло бы особой проблемы, установить чистую снежковскую Готику в отдельную папку, профиксить её и, если захочется поиграть в оригинал, играть из этой папки. :dnuhr:
Дык, при разработке я также использую этот вариант, но распространять в таком виде в массы мне бы совесть не позволила :)

ElderGamer
02.12.2011, 16:11
Если захочешь таки выпустить "замечательную вещь" и при этом сохранить возможность запуска других модов - то единственно верное решение упаковать проект как мод.

А как быть с изменённым ЕХЕшником? Можно, конечно, подправить стандартный ЕХЕшник из комплекта Модстартера, но я не уверен, что увеличенные элементы GUI не вызовут каких-либо проблем в модах. :dnuhr:


Дык, при разработке я также использую этот вариант, но распространять в таком виде в массы мне бы совесть не позволила :)

Да уж, понятие о совести у всех разное. Мне бы, например, будь я продвинутым модостроителем, совесть не позволила бы работать над своим модом, в то время когда оригинальная игра просто кишит багами. ;)

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

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

MaGoth
05.12.2011, 18:54
ElderGamer,

...Например, я пока не могу разобраться с инсталлятором, ибо для этого как минимум нужно время, а на просьбы о помощи пока никто не откликнулся, ни делом, ни даже словом ...
Когда будет что паковать напиши мне в ЛС. Только бываю я здесь очень редко, + скорости не обещаю...


MfG MaGoth, WoG.ru-Community. :gratz

PontifEx
05.12.2011, 19:32
Я плохо искал или же в оригинале не было возможности стать темпларом в Братстве Спящего после изгнания из Старого Лагеря? Мне кажется, что неплохо бы сделать доступным диалог о приеме в стражи у Кор Ангара в четвертой главе, если игрок был магом огня/стражником Гомеза - благо, записи в дневнике и диалог с Ангаром о приеме не противоречат такой возможности.

ElderGamer
06.12.2011, 05:05
Когда будет что паковать напиши мне в ЛС.

О, спасибо за предложение! Обязательно напишу. §wink


Я плохо искал или же в оригинале не было возможности стать темпларом в Братстве Спящего после изгнания из Старого Лагеря?

Такой возможности в релизной версии игры нет, но по ходу работы со скриптами меня посещали мысли, что на ранних стадиях разработки не исключалось, что ГГ сможет переходить из Лагеря в Лагерь по своему усмотрению. Возможно, я и ошибаюсь, не знаю. :dnuhr:


Мне кажется, что неплохо бы сделать доступным диалог о приеме в стражи у Кор Ангара в четвертой главе, если игрок был магом огня/стражником Гомеза - благо, записи в дневнике и диалог с Ангаром о приеме не противоречат такой возможности.

Наверное, разблокировать такую возможность несложно. Но здесь есть логическое препятствие.

Какова цель ГГ в игре? Стратегическая задача - вырваться на свободу за пределы барьера. Тактическая задача - как-то обустроиться в Колонии на время решения стратегической задачи и с целью содействия её решению. Именно для решения тактической задачи ГГ и присоединяется к одному из Лагерей.

В самом начале игры БЛ может представлять для ГГ интерес, так как у Братства есть свой собственный план освобождения. Но после событий 3 главы БЛ лишается такой фишки. Да, авторитет Кор Ангара и экономический козырь в виде болотника уберегает Братство от полного распада. Но ради чего теперь ГГ должен присоединяться к этому Лагерю? Гораздо выгоднее для него примкнуть к НЛ, с которым он уже тесно сотрудничает. Опять же, у магов НЛ всё ещё есть собственный план спасения...

В общем, не знаю. Я не уверен, что присоединение ГГ к Братству после изгнания из Старого Лагеря соответствует логике его интересов да и логике игры тоже. :dnuhr:

PontifEx
06.12.2011, 06:54
А по сути, будет то же самое, что и в случае, если ГГ изначально был болотником - он будет работать на магов воды, формально находясь в подчинении Ангара, которому на тот момент уже практически побоку, что делает братство. Ведь добиться цели - покинуть барьер - вполне возможно и так. Может кто-то отыгрывает героя, которому ежедневный косяк от Фортуно важнее мантии магов Воды. А лишняя возможность выбора, думаю, которыми Г1 и так особо не блещет, вполне способна еще раз порадовать игрока. ;)

Dimus
06.12.2011, 07:30
А как быть с изменённым ЕХЕшником? Можно, конечно, подправить стандартный ЕХЕшник из комплекта Модстартера, но я не уверен, что увеличенные элементы GUI не вызовут каких-либо проблем в модах.:dnuhr:
Тогда во время установки патча сделайте опциональную установку изменённого EXE.


В самом начале игры БЛ может представлять для ГГ интерес, так как у Братства есть свой собственный план освобождения. Но после событий 3 главы БЛ лишается такой фишки. Да, авторитет Кор Ангара и экономический козырь в виде болотника уберегает Братство от полного распада. Но ради чего теперь ГГ должен присоединяться к этому Лагерю? Гораздо выгоднее для него примкнуть к НЛ, с которым он уже тесно сотрудничает. Опять же, у магов НЛ всё ещё есть собственный план спасения...
Вы очень хорошо описали, что после 3-й главы путь за Братство становится тупиковым, т.к. после церемонии вызова Спящего ГГ становится ясно, что помощи от архидемона ждать бесполезно и нужно искать другие пути, чтобы вырваться из-под магического Барьера. Вот именно по этой причине не имеет смысла добавлять возможности ГГ присоединиться к БЛ после изгнания его из СЛ в 4-й главе.

ElderGamer
07.12.2011, 06:05
А по сути, будет то же самое, что и в случае, если ГГ изначально был болотником - он будет работать на магов воды, формально находясь в подчинении Ангара, которому на тот момент уже практически побоку, что делает братство.

Нее, ситуация принципиально отличается. Если ГГ присоединяется к Братству ДО Великой Церемонии, он делает ставку, которая впоследствии не сыграет. Но на момент вступления ГГ ещё этого не знает и надеется на успех. В случае же присоединения к Братству уже ПОСЛЕ Церемонии и последовавших за ней событий ГГ осознано ставит на проигравшую сторону. ;)


Ведь добиться цели - покинуть барьер - вполне возможно и так. Может кто-то отыгрывает героя, которому ежедневный косяк от Фортуно важнее мантии магов Воды. А лишняя возможность выбора, думаю, которыми Г1 и так особо не блещет, вполне способна еще раз порадовать игрока. ;)

Честно говоря, я засомневался. После изгнания из СЛ ГГ может, например, остаться нейтралом до конца игры. Это нелогично с точки зрения интересов ГГ, но возможность такая в игре имеется, и никто не заставляет игрока учитывать интересы своего героя. В этом смысле, ситуация с присоединением к Братству не сильно отличается. Гм... надо подумать. :dnuhr:

ElderGamer
09.12.2011, 05:16
Пара вопросов по Спейсеру.

1. Как в Спейсере установить время суток? При начальной загрузке Спейсера в окне "Objectpages" есть соответствующая опция. Но в процессе работы время идёт, а содержимое окна "Objectpages" изменяется, и как вызвать его первоначальный вид я не знаю.

2. В пещерке с горой руды в НЛ вместо потолка отображается "зеркало". Насколько я понимаю, сразу под решёткой, отделяющей эту пещерку от основной пещеры НЛ, расположен так называемый портал. С одной стороны свойства портала прописаны верно - если смотреть сверху, из основной пещеры, портал прозрачен. С другой же стороны в свойствах портала, видимо, содержится ошибка, так как он не прозрачен. Вопрос такой: можно ли эту ошибку исправить в Спейсере, и что для этого нужно сделать?

ukur
09.12.2011, 13:54
ElderGamer

По 1 вопросу:
См. скрин во вложении.
36849
Галочка "Hold" "замораживает" текущее время, кнопка в виде ступни переключает "Objectpages" в изначальный вид.

З.Ы. Сам только что узнал :))

По 2 вопросу гляну позже.

dixie
09.12.2011, 14:03
Да уж, понятие о совести у всех разное. Мне бы, например, будь я продвинутым модостроителем, совесть не позволила бы работать над своим модом, в то время когда оригинальная игра просто кишит багами.
В поисках ответов на свои вопросы, я скачал недавно один мод. Полагаю, десятой доли усилий, потраченных на его создание, хватило бы для исправления большей части ошибок оригинальной Готики. Но нет, своя рубашка ближе к телу. В результате мы имеем кучу модов и одну бедную забагованную оригинальную игру, до которой, походу, уже ни кому из модостроителей нет дела.
Это зависит от целей, которые люди ставят ;)
В своём моде я, как раз, делал "Г2 чуть лучше, чем Г2", поэтому какие-то исправления есть, плюс масса мелочи - вроде другого распорядка, содержимого сундуков и лута с лёгким рандомом. Но, опять же - не столько ради исправления багов, сколько для убиения чувства "узнаваемости" - там Мастер Готики верно это поймал в теме про мод.


Пара вопросов по Спейсеру.
1. Как в Спейсере установить время суток? При начальной загрузке Спейсера в окне "Objectpages" есть соответствующая опция. Но в процессе работы время идёт, а содержимое окна "Objectpages" изменяется, и как вызвать его первоначальный вид я не знаю.
Отжать все кнопки на панели, нажать галку "hold", сменить содержимое часов, отжать галку "hold"


2. В пещерке с горой руды в НЛ вместо потолка отображается "зеркало". Насколько я понимаю, сразу под решёткой, отделяющей эту пещерку от основной пещеры НЛ, расположен так называемый портал. С одной стороны свойства портала прописаны верно - если смотреть сверху, из основной пещеры, портал прозрачен. С другой же стороны в свойствах портала, видимо, содержится ошибка, так как он не прозрачен. Вопрос такой: можно ли эту ошибку исправить в Спейсере, и что для этого нужно сделать?
Надо смотреть имя текстуры. Где-то про порталы должна же быть статья - писали их?
В общем, имя строится по принципу откуда->куда:
* p:_PIRATEROOM02 - вход с улицы в PIRATEROOM02.
* p:PIRATEROOM02_ - внутри (с другой стороны) - выход из PIRATEROOM02 на улицу.
* p:hh1_hh5 - переход из комнаты hh1 в комнату hh5
* p:hh5_hh1 - эта же дверь с другой стороны.

ukur
09.12.2011, 23:07
Надо смотреть имя текстуры. Где-то про порталы должна же быть статья - писали их?
В общем, имя строится по принципу откуда->куда:
* p:_PIRATEROOM02 - вход с улицы в PIRATEROOM02.
* p:PIRATEROOM02_ - внутри (с другой стороны) - выход из PIRATEROOM02 на улицу.
* p:hh1_hh5 - переход из комнаты hh1 в комнату hh5
* p:hh5_hh1 - эта же дверь с другой стороны.
Статья Технология indoor/outdoor (http://worldofplayers.ru/node/540)
На той дырке в НЛ с обеих сторон указан внешний портал "p:_magho1", хотя по идее изнутри пещеры должен быть "p:magho1_". Портальная цепочка начинается (заканчивается) на входе в пещеру магов воды.
Вообщем пробовал прописать с внутренней стороны от решетки p:magho1_ - в этом случае видимость нормальная как сверху-вниз, так и снизу-вверх, но тогда начинает глючить портал на входе в помещение с кучей руды. Видимо движок не переваривает цепь геометрии порталов, когда часть из них стоят в вертикальной плоскости (дверные проемы в пещере), а часть в горизонтальной (сама яма). Вернул у себя пока как было.

dixie
10.12.2011, 07:46
Скорее где-то незамкнутое пространство есть, не может определить помещение точно... У меня такое было с таверной в новом лагере, когда её в Г2 переносил, вылечилось только редактированием меша в максе....

ElderGamer
10.12.2011, 08:48
Спасибо за ответы! §wink

А как в Спейсере можно посмотреть свойства полигона/текстуры/материала? Загружаю меш Нового Лагеря, компилирую его как outdoor локацию, галочка "Edit Mode" стоит. Могу выделить один или несколько полигонов, но не пойму, где отображается соответствующая этому полигону (этим полигонам) информация. В информационных окнах ничего не меняется. :dnuhr:

Кстати, проблема с этим порталом каким-то образом решена в TLVH.

Ах, да. При выходе из Спейсера у меня регулярно вылетает ошибка:

http://s004.radikal.ru/i206/1112/d0/155ad58941c8.jpg (http://www.radikal.ru)

Что бы это значило?

dixie
10.12.2011, 11:39
Информации по ним нет, можно сменить им текстуру (в меню по правой кнопке), можно сменить свойства текстур в окне объектов, перевести там текстуры из группы в группу (например, при хождении по металлу звук будет металлический), задать скорость движения (для реки), итп.
Удерживая пробел можно разными кнопками на цифровой клавиатуре и ins/del/home/end/итп - по разному менять способ натягивания текстуры на выбранные полигоны.
А это сообщение или вообще падение на выходе - это нормально :)

ukur
10.12.2011, 13:22
Спасибо за ответы! §wink

А как в Спейсере можно посмотреть свойства полигона/текстуры/материала? Загружаю меш Нового Лагеря, компилирую его как outdoor локацию, галочка "Edit Mode" стоит. Могу выделить один или несколько полигонов, но не пойму, где отображается соответствующая этому полигону (этим полигонам) информация. В информационных окнах ничего не меняется. :dnuhr:
Я нажимал на кнопку с пипеткой, потом F3 и выбранной пипеткой на полик, в окошках появляется информация о текстуре и прочее.
См. скрин во вложении.
36853


Кстати, проблема с этим порталом каким-то образом решена в TLVH.
Я думал тот портал в яме вообще удалить, ИМХО, хуже не станет. Может и там его того... :)

ElderGamer
10.12.2011, 17:52
Ага, спасибо! Попробую сделать также.



Я думал тот портал в яме вообще удалить, ИМХО, хуже не станет. Может и там его того... :)

При удалении камеры текстуры под решёткой темнеют и становятся непрозрачными. Предполагаю, что портал там всё-таки есть. Да и специфическое синее освещение пещерки с кучей руды, видимо, не получится сделать без портала. :dnuhr:

Я, кстати, помучился с другим порталом - тем, который на входе в Старую Шахту (отделяет маленький закуток сразу за решёткой). В оригинале там освещение настроено таким образом, что ночью разница в освещённости перед порталом и сразу за ним очень резка. Буквально один шаг отделяет день от ночи. К сожалению, полноценно устранить проблему не получилось, удалось лишь сделать переход освещённости не таким резким.

Wolfgar93
11.12.2011, 17:59
Вот что мне удалось сделать с порталом в НЛ.
http://upload.worldofplayers.de/files7/GothicMod_2011_12_11_21_55_11_28.jpg
http://upload.worldofplayers.de/files7/GothicMod_2011_12_11_21_55_32_30.jpg
http://upload.worldofplayers.de/files7/GothicMod_2011_12_11_21_55_48_51.jpg
Комментарий модератора: Большие скриншоты прячь под спойлер.

Olor1n
11.12.2011, 19:29
по-моему на втором скрине очень заметна смена освещения на синее

Wolfgar93
11.12.2011, 19:31
по-моему на втором скрине очень заметна смена освещения на синее

Это выпирающий угол скалы.

ukur
12.12.2011, 08:54
Wolfgar93
И что ты с ним сделал?

Wolfgar93
12.12.2011, 10:35
Wolfgar93
И что ты с ним сделал?

Я исправил портал наверху от глючной текстуры.

ukur
12.12.2011, 10:44
Я исправил портал наверху от глючной текстуры.
Из тебя выпытывать нужно, или просто не хочешь говорить?
Какую текстуру поставил вместо старой?

Wolfgar93
12.12.2011, 11:01
Из тебя выпытывать нужно, или просто не хочешь говорить?
Какую текстуру поставил вместо старой?
Я убрал из имени текстуры в Спейсере - p: - свойства портала и изменил её цвет на прозрачный. Т.к там с обеих сторон одна текстура, они обе стали прозрачны. А текстуре портала двери к горе руды вписал - p:*_ и p:_*. (*имя файла) Могу сбросить потестить свои наработки мира.

ukur
12.12.2011, 11:10
Теперь понятно, просто удалил портал сверху. Собственно это я и предлагал чуть выше, надо тоже попробовать.

ElderGamer
12.12.2011, 11:38
Кстати, касательно порталов. Почему-то при отдалении от портала полигоны, составляющие его теряют прозрачность не одновременно - одни раньше, другие позже. С чем это может быть связано?

Кстати 2. Если кому интересно, могу рассказать, почему не двигаются вовсе или не могут полноценно открываться/закрываться некоторые ворота в игре, и как это исправить.

Кстати 3. Сегодня нашёл ошибку в алгоритмах выбора оружия, из-за которой непись, стреляющий в своего противника из лука/арбалета, не может сменить оружие на оружие ближнего боя, если противник приближается к нему на малое расстояние. Если кому интересно, могу предложить вариант её решения.


@ukur, исправил ли ты уже баг с луком (http://i014.radikal.ru/1111/c7/578dd0d77e0c.jpg)? Если да, то не поделишься ли опытом?

ukur
12.12.2011, 13:27
ElderGamer
На движке Г2 уже бага с переключением оружия нет, да и неработоспособность ворот я тоже не припоминаю, м\б давно не играл основательно.
Но все равно рассказывай, все интересно.

По поводу бага с луком, тоже особо не обращал на это внимание, хотя и вставлял в мод новые анимированые с нуля луки.

ElderGamer
12.12.2011, 16:30
ElderGamer
На движке Г2 уже бага с переключением оружия нет,


Если ты кроме ЕХЕшника используешь и скрипты AI из Г2, то такого бага там действительно нет.


да и неработоспособность ворот я тоже не припоминаю, м\б давно не играл основательно.
Но все равно рассказывай, все интересно.

Внешние ворота Нового Лагеря и ворота на пути к месту обмена (стартовая локация) вообще не реагируют на лебёдки. В свойствах лебёдок двумя слэшами заблокирована связь с воротами. Если эту связь разблокировать, то ворота около места обмена не закрываются до конца. Причина в том, что в область перемещения мувера попадают камни на земле. Для восстановления нормальной работы мувера можно сделать камни прозрачными для коллизий (это не есть гут) либо передвинуть камни и один из скелетов подальше от ворот.

Северные ворота Старого Лагеря закрываются, но при открытии стопорятся, не дойдя до конечной позиции. Муверу мешают, либо канат, идущий от лебёдки вдоль стены, либо блок, через который он проходит, либо и то, и то. Я сделал их прозрачными, и ворота стали открываться до конца.

Ворота замка в Старом Лагере вообще не реагируют на лебёдку. Причина в том, что в зоне движения мувера находится сама лебёдка. Для восстановления движения мувера достаточно отодвинуть лебёдку к противоположной стене. Если не решить проблему с потерей связи между лебёдкой и воротами, то лучше этого не делать, так как у стражника, который сторожит эту лебёдку, прописан распорядок на закрытие ворот в 4 главе. Ворота попросту нельзя будет открыть, также, как и внешние ворота Старого Лагеря.

Некоторые лебёдки расположены неправильно, и их желательно переместить. Так, лебёдки в НЛ расположены задом наперёд, и при их вращении слева направо сами лебёдки вращаются справа налево. Правильное расположение лебёдок - когда жёлтый луч в Спейсере направлен в сторону, противоположную вращающему неписю.


По поводу бага с луком, тоже особо не обращал на это внимание, хотя и вставлял в мод новые анимированые с нуля луки.

А что нужно сделать, чтобы подправить модель конкретного лука? Оказывается, самая распространённая модель лука в игре неправильно анимирована. В момент выстрела из лука тетива остаётся натянутой. У других луков Г1 такого нет. :dnuhr:

Хотя баг со скриншота случается и с другими моделями луков. И не только в Г1.

ukur
12.12.2011, 17:32
Если ты кроме ЕХЕшника используешь и скрипты AI из Г2, то такого бага там действительно нет.
Разумеется, скриптовая база Г2 намного более очищена от багов и оптимизирована.



Причина в том, что в область перемещения мувера попадают камни на земле. Для восстановления нормальной работы мувера можно сделать камни прозрачными для коллизий (это не есть гут) либо передвинуть камни и один из скелетов подальше от ворот.
Судя по этому (http://worldofplayers.ru/node/556) документу для Vob можно выставить различную проницаемость для НПЦ либо с другим объектом. Т.е. чтобы ГГ ходил по камням, а лебедка о камни не стопорилась. Проверю также в моде эти объекты.



А что нужно сделать, чтобы подправить модель конкретного лука? Оказывается, самая распространённая модель лука в игре неправильно анимирована. В момент выстрела из лука тетива остаётся натянутой. У других луков Г1 такого нет. :dnuhr:

Хотя баг со скриншота случается и с другими моделями луков. И не только в Г1.
Любой лук можно декомпилировать GothicSourcer, на выходе получиться asc файлы с моделью и анимацией, а также минискрипт mms с фазами натяжения. Скрипт открывается любым текстовым редактором, ASC файлы в 3ds Max с помощью плагинов Kerrax

ElderGamer
14.12.2011, 10:07
Проверю также в моде эти объекты.

Да, забыл добавить. В поселении орков есть тоннель, который начинается около шаманов и колонны со статуэткой. В тоннеле есть две решётки, которые должны открываться нажатием на каменные кнопки. Так вот, в оригинале обе кнопки открывают одну и ту же решётку. Вторая вообще не открывается. Там, правда, ничего интересного нет, но всё равно это непорядок. Тем более, что исправляется это довольно просто - у одной из кнопок нужно исправить наименование связанного с ней мувера.


Любой лук можно декомпилировать GothicSourcer, на выходе получиться asc файлы с моделью и анимацией, а также минискрипт mms с фазами натяжения. Скрипт открывается любым текстовым редактором, ASC файлы в 3ds Max с помощью плагинов Kerrax

Да, спасибо, модель лука исправил. Обошёлся без Макса, благо текстовые файлы можно сравнивать и править другими средствами. Помучился, правда, с компиляцией модели. Мне так и не удалось нормально компилировать её с помощью GS V3.14. Кучу нервов потратил, пока догадался, что можно компилировать и движком. :D

ElderGamer
16.12.2011, 05:38
Вопрос по Спейсеру. В поселении орков есть множество очагов-светильников, которые не горят. Я попытался расставить на негорящих светильниках VOBы огня и дыма, но обнаружил странную особенность - после добавления огня в одном месте пропадает огонь где-нибудь в другом месте. Сначала я просто копировал огонь и вставлял его копию. После обнаружения проблемы попытался вставлять VOBы огня со своими собственными уникальными именами. Результат точно такой же - в одном месте огонь добавляется, в другом - исчезает. :(

Можно ли как-то обойти эту проблему?


Относительно бага с луком. Баг со скриншота проявляется не только в Г1, но и в Г2. Самый простой и верный способ словить такой баг - выпустить из лука последнюю стрелу из тех, что есть в инвентаре. В Г2а это положение вещей исправлено следующим способом: после помещения лука за спину лук самостоятельно совершает движение натяжения-расслабления. Но я не пойму, как это сделано. :dnuhr:

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

ElderGamer
19.01.2012, 16:36
Работа по исправлению ошибок Г1 продолжается, хотя и не так быстро, как хотелось бы. А пока могу предложить парочку мини-фиксов.

G1_Mini_Fix_Long_Bow (16кВ) (http://upload.worldofplayers.de/files7/G1_Mini_Fix_Long_Bow.rar)

G1_Mini_Fix_Rings (64кВ) (http://upload.worldofplayers.de/files7/G1_Mini_Fix_Rings.rar)

Первый из них исправляет анимацию большого лука, второй исправляет модельки колец, которые теперь правильно отображаются в инвентаре (http://s018.radikal.ru/i512/1201/62/c11c460139b1.jpg).

Для установки распакуйте содержание архивов в папку Gothic\Data. Для удаления - удалите.

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

-Fritz-
19.01.2012, 17:34
Про кольца - это получается исправлена проблема с отображением колец на некоторых радеонах?

ElderGamer
19.01.2012, 18:01
Кольца, как я понимаю, неправильно показывались в инвентаре на всех видеокартах. Проблемы же неотображения предметов в инвентаре на Radeon X1XXX данный фикс не решает. Хотя, эта проблема до сих пор актуальна. Забавно, что фикс на кольца я ваял как раз на компе с Radeon X1950, и мне приходилось хитрить, чтобы посмотреть результат изменений в модельках. :D

То, что сейчас становится возможным ковырять ЕХЕшник, оставляет надежду на решение проблемы радеонов. Но будет ли кто-то этим заниматься - вот в чём вопрос. :dnuhr:

Shifroval
20.01.2012, 14:26
Великолепно! Рабочие кольца!
ElderGamer, если не секрет, в чём была проблема и как удалось починить отображение?

ElderGamer
20.01.2012, 16:57
Всё очень просто. Модельки колец просто были сдвинуты на 7см относительно начала координат. Плюс ещё было задействовано сглаживание меша для уменьшения "эффекта гайки". В общем, это уровень туториалов для начинающих, которые я сейчас и изучаю потихоньку. :D

Кстати, может, кто подскажет, как получить *.ASC файлы моделек доспехов Г1? Можно ли их получить, декомпилировав двоичные *.MDM файлы, или где-то взять уже декомпилированные или исходные файлы?

ukur
20.01.2012, 17:50
ElderGamer
С помощью GothicSourcer декомпилируй Humans.mds, вместе с ним будут декомпилированы все связанные с ним доспехи.

ElderGamer
21.01.2012, 17:05
@ukur

Спасибо, получилось. :)

Я тут, кстати, нашёл один из вариантов решения проблемы разделения гуру и некоторых других болотников на две половинки. Ты в моде уже решил эту проблему?

ukur
22.01.2012, 19:04
ElderGamer
Я еще не занимался этой проблемой. Выслушаю твой вариант решения.

ElderGamer
23.01.2012, 04:42
Видимо, из-за желания подчеркнуть особенную худобу яйцеголовых сектантов, в скриптах некоторых из них установлено значение "жирности"


Mdl_SetModelFatness(self,-1);

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


Mdl_SetModelFatness(self,0);

Модельки при этом станут чуть менее худыми, но разницу непросто заметить даже сравнивая два скриншота, а уж в игре разницу заметить будет практически невозможно. Во всяком случае, подобная особенность имеет место на движке Г1, возможно, и на движке Г2 будет то же самое. :dnuhr:

Dimus
23.01.2012, 09:43
ElderGamer, вы пробовали убрать этот эксплойт - в храме Спящего в зале с Гор Бобой можно бесконечно вызывать демонов, если специально накручивать неправильную комбинацию переключателей?