[AGFC: Valley of Gothic] М: Скриптинг в Готике

Страница 5 из 65 12345 67891011121555 Последняя »
Поиск в этой теме:

Расширенный поиск
Старый 03.02.2005, 12:11   #161
Mitrich

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Dagot_Ur: finch определенно имеет опыт в этом деле - он мне объяснил в двух словах, но лучше он сам более подробно расскажет при желании.

Раз уж ты объявился, не подскажешь, тебе что-нибудь известно про прямую функцию получения текущего времени? И второе - сейчас AI поизводит рассчет ТА НПС в очень маленьком радиусе вокруг игрока - мне нужно его существенно увеличить. Как это сделать, есть мысли?
Ответить с цитированием
Старый 03.02.2005, 12:37   #162
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Mitrich:
И второе - сейчас AI поизводит рассчет ТА НПС в очень маленьком радиусе вокруг игрока - мне нужно его существенно увеличить. Как это сделать, есть мысли?
Что ты понимаешь под расчетом распорядка дня вокруг ГГ?  ::)
А такую переменную не пробовал менять?
const int TA_DIST_SELFWP_MAX            = 500;  //Дистанция до объекта, на которой начинают выполняться функции распорядка дня
Ответить с цитированием
Старый 03.02.2005, 13:15   #163
Mitrich

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Vam:
Что ты понимаешь под расчетом распорядка дня вокруг ГГ?
ТА НПС начинают рассчитываться только при определенном приближении к ним игрока, т.е. фактически в некоем радиусе. Поэтому и вокруг. :)

А такую переменную не пробовал менять?
Если она была в уроках, то я ее пропустил. :( А где она находится?
Ответить с цитированием
Старый 03.02.2005, 13:31   #164
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Mitrich:
Если она была в уроках, то я ее пропустил. *А где она находится?
Пост №141 уроков.
ТА НПС начинают рассчитываться только при определенном приближении к ним игрока, т.е. фактически в некоем радиусе. Поэтому и вокруг.
Но ведь многие НПС идут выполнять свои функции, а это и есть распорядок дня, в разные точки, в независимости от того, был ли рядом с ними ГГ или нет.
Ответить с цитированием
Старый 03.02.2005, 14:56   #165
aleks999

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Кто-нибудь скажет, как сделать, чтобы амулет один раз возрождал после смерти?

И кто-нибудь исправит ошибку в амулете регенерации?
Ответить с цитированием
Старый 03.02.2005, 15:21   #166
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2francisc:
Где надо прописывать :
MIS_Rafael_problem = LOG_RUNNING;
и
MIS_Rafael_problem  = LOG_SUCCESS; ?
В скрипте самого диалога

XP_VINOWEIN
Можно в файле XP_Constants.d, а можно просто написать
Код:
B_GivePlayerXP(100)
, и ГГ получит 100 экспы ::)
Отправить личное сообщение для Ответить с цитированием
Старый 03.02.2005, 16:20   #167
PA
Строители Миртаны
*
 
Регистрация: 29.08.2004
Сообщений: 1
PA вне форума

По умолчанию Re: Скриптинг в Готике

2Dagot_Ur:
Народ, давайте поговорим о роликах на движке игры (движение камеры). Как их можно создавать, каким способом. Я, если честно, до сих пор так и не разобрался с подобным вопросом. Может где-то у немцев и написано про это, но я ихнего языка не знаю и поэтому ничего не понимаю...
Отвязываешь камеру от ГГ (но можно этого и не делать) включаешь грабилку (как правило fraps) и проигрываешь сюжетик (ну ГГ прыгает и дерется... или какой ладшафт облетаем).
После этого полученный мувик обрабатываешь - проще загнать в флэшку и УСЕ.

Ответить с цитированием
Старый 03.02.2005, 16:51   #168
Mitrich

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Pa:
включаешь грабилку (как правило fraps)
Звук она захватывать умеет?
Ответить с цитированием
Старый 03.02.2005, 17:36   #169
ZXZX

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Mitrich:
Звук она захватывать умеет?
Sorry, что вмешиваюсь.
Можно воспользоваться "HyperCam"-я с её помощью видеокараоке делал-захватывает окно плейера с картинкой, а звук пишет с master volume в wav-e.
Только, наверное, проще звук потом наложить.
Ответить с цитированием
Старый 03.02.2005, 19:47   #170
francisc

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2TycoooN:

2francisc: Где надо прописывать :
MIS_Rafael_problem = LOG_RUNNING;
и
MIS_Rafael_problem  = LOG_SUCCESS; ?
В скрипте самого диалога

Нет,при компиляции мне пишет ошибку unknown indentifer MIS_Rafael_problem
Ответить с цитированием
Старый 03.02.2005, 20:09   #171
aleks999

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2francisc:
нужно еще в Story_globals.d прописать что значат твои MIS_Rafael_problem = "Проблема Рафаеля"
Ответить с цитированием
Старый 03.02.2005, 20:18   #172
Mitrich

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2ZXZX:
Sorry, что вмешиваюсь.
Да какое уж тут "сорри", спасибо, что вмешиваешься. :)

Тут не много крутых перцев из мира аудио/видеозахвата, поэтому будет крайне удачно, если ты поделишься своим опытом в более доступной и развернутой форме. Наложить звук потом можно, но в том то и вся прелесть, чтобы использовать не только видео, но и звук, создаваемый движком. Для этого, как я понимаю, было бы идеальным вариантом снимать не только картинку с экрана (зачем нам вообще плеер?), но и звук с выхода. А уж как потом все это вместе сводить, AdobePremier сам разберется. :)
Ответить с цитированием
Старый 03.02.2005, 20:22   #173
WSA

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Dagot_Ur: Данные ролики делаются в Спейсере с помощью объекта zCCSCamera. Для этого объекта набираются фреймы zCCamTrj_KeyFrame. Вызывается ролик командой Wld_SendTrigger(""); скриптово. Я к сожалению пока такие ролики не делал и не исключено, что там куча вопросов при реализации возникнет.
2Mitrich, Vam: Расчет всех TA нерационален. Самое главное - расчет таких TA, как RunToWP и подобных, тем самым можно убрать эффект телепортирования НПСов при переходе на заданный вейпойнт. У меня пока нет идей, как это сделать.
Ответить с цитированием
Старый 03.02.2005, 21:10   #174
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2aleks999:
нужно еще в Story_globals.d прописать что значат твои MIS_Rafael_problem = "Проблема Рафаеля"
Вообще-то это не строковая, а целочисленная переменная, и ей не може быть присвоено значение "Проблема Рафаеля". Переменные вроде MIS_*** просто вводят как var int MIS_*** в файле Story_globals.d
Отправить личное сообщение для Ответить с цитированием
Старый 03.02.2005, 21:46   #175
aleks999

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2francisc: 2TycoooN:
Вот все, что нужно где-нибудь прописать:
const string MIS_Rafael_problem = "Проблема Рафаэля";
var int MIS_END_Rafael_problem;
B_CloseTopic(MIS_Rafael_problem,0,MIS_END_Rafael_p roblem,6);

И в самом диалоге:
При получении миссии:
Log_CreateTopic(MIS_Rafael_problem,LOG_MISSION);
Log_SetTopicStatus(MIS_Rafael_problem,LOG_Running) ;
B_LogEntry(MIS_Rafael_problem,"Тут нужно написать то, что будет в журнале.");
И при завершении миссии:
MIS_END_Rafael_problem = TRUE;
Ответить с цитированием
Старый 03.02.2005, 22:01   #176
Mitrich

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2WSA:
Расчет всех TA нерационален. Самое главное - расчет таких TA, как RunToWP и подобных, тем самым можно убрать эффект телепортирования НПСов при переходе на заданный вейпойнт.
А я планировал сегодня закончить свои эксперименты, чтобы уже аргументированно подойти к ответу. Но для их чистоты мне нужно было адекватны полигон создать, а я не успел. :(

2Vam:
Но ведь многие НПС идут выполнять свои функции, а это и есть распорядок дня, в разные точки, в независимости от того, был ли рядом с ними ГГ или нет.
Как совершенно правильно заметил WSA, за пределами радиуса просчета происходит не выполнение ТА и всех внутренних его функций, а проверяется только точка выполнения (но не само выполнение). Т.е. если НПС за пределами радуиса просчета, а вейпойнт в ТА изменился, НПС будет мгновенно туда перенесен, но делать он там ничего не будет, пока игрок не приблизится. Проверялся спектакль зашитой в ТА функцией, которая добавляет единицу N-контрольного предмета за каждые время t выполнения ТА. Если 5 минут стоять рядом с НПС, он честно получит в инвентарь Nхt. Если от него удалиться, количество полученных предметов явно меньше.
Второй вариант (исторически первый) - запуск Готик 2 через GothicStarter с ZSpy. Выходим из башни Ксардаса, следим за сообщениями ZSpy. Где-то в районе пенька (прямо перед башней) выдается сообщение "02.30 Info 2U NPC:AI Insert NPC Goblin YGOBBO_GREEN <oNpc.cpp, #9188>" Насколько я понимаю, это начался рассчет гоблина, который слева у озера. Если назад отойти вместо Insert будет Removed.
Ответить с цитированием
Старый 03.02.2005, 22:23   #177
ZXZX

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Mitrich:
снимать не только картинку с экрана (зачем нам вообще плеер?), но и звук с выхода
Плеер это для примера.:)
*HyperCam (есть и другие подобные проги),захватывает и графику и звук.
Игра запускается в оконном режиме, выставляется оптимальное разрешение и битность цвета.
Alt-tab перемещаемся между окном игры и окном HyperCam.

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

По-окончании, вновь Alt-tab на HyperCam , останавливаем захват потом ставим игру на паузу.
Можно сразу просмотреть, что и как получилось, щелкнув на play в HyperCam.

Далее, вырезаем из получившейся avi-шки нужное(можно использовать VirtualDub) и в RADVideo
Tools конвертим в стандартный .bik.

Я сейчас пробовал.Все работает, но на Athlon 2800/512/FX5200 игра подтормаживает во время захвата1024X768 в 32-битном цвете. Надо тыкаться-может проц разгружать, память..


Ответить с цитированием
Старый 03.02.2005, 23:52   #178
francisc

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

const string MIS_Rafael_problem = "Проблема Рафаэля";
var int MIS_END_Rafael_problem;
B_CloseTopic(MIS_Rafael_problem,0,MIS_END_Rafael_p roblem,6

Это как я поянл нужно в Story_globals.d.
Ответить с цитированием
Старый 03.02.2005, 23:56   #179
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2francisc:
Нет.
B_CloseTopic нужно прописать в Log_Entries\B_CloseTopics_***.d
const string MIS_Rafael_problem - в Log_Entries\LOG_Constants_***.d


Отправить личное сообщение для Ответить с цитированием
Старый 04.02.2005, 01:07   #180
finch

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

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

1. ЕСли тебе нужен ролик на движке для заставки (например, в начале игры), то тогда, конечно, лучше всего использовать названные выше программы. Я лично использую fraps, а потом при помощи radvideo можно конвертануть ролик в *.bik

2. Если ты хочешь, чтобы ролик запускался в самой игре, при наступлении какого-нибудь события (пример, движение камеры в самом начале Диккурика), то здесь все немного сложнее...
Для начала необходимо в Спейсере вставить эту камеру, задать кейфреймы.
чтобы разобраться,как это работает, зайди в спейсер, на вертикальном тулбаре нажми кнопку с камерой. В соседнем окошке появится список доступных камер, сверху кнопка INSERT. Выбираешь любую камеру, жмешь инсерт - камера вставлена в игровой мир. Чтобы посмотреть, как она работает, можно нажать кнопку PLAY.
теперь о кейфреймах...
выбери в меню veiw/../toggle cams
должны появиться зеленые и белые линии.
белые линии - траектория движения камеры
зеленые - траектория, на которую камера "смотрит"
если удалить все кейфреймы, которые составляют зеленую линию, то камера будет смотреть просто перед собой.

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

З.Ы. Сорри, если все вышенаписанное выглядит невнятно или имеет неточности... Только что пришел с работы, писал все по памяти! :)
Ответить с цитированием
Старый 04.02.2005, 03:25   #181
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

По умолчанию Re: Скриптинг в Готике

2finch: Я как раз и имел в виду камеру в самой игре, а не видео-ролик "через fraps". Можно ли прогон камеры создавать через скрипты, не затрагивая спейсер? А вообще спасибо, теперь все вошло в свое русло. :)
Ответить с цитированием
Старый 04.02.2005, 06:48   #182
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

По умолчанию Re: Скриптинг в Готике

Я тут почитал идеи регенерации с ренжачрком - это ж надо до такого додуматься. :lol: И вот что хочу спросить: где это вы откопали эту фунцию цикла в моде ManaReload? Сейчас скачал посмотреть - там точно такого нет!
Ответить с цитированием
Старый 04.02.2005, 10:00   #183
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Mitrich:
Как совершенно правильно заметил WSA, за пределами радиуса просчета происходит не выполнение ТА и всех внутренних его функций, а проверяется только точка выполнения (но не само выполнение). Т.е. если НПС за пределами радуиса просчета, а вейпойнт в ТА изменился, НПС будет мгновенно туда перенесен, но делать он там ничего не будет, пока игрок не приблизится. Проверялся спектакль зашитой в ТА функцией, которая добавляет единицу N-контрольного предмета за каждые время t выполнения ТА. Если 5 минут стоять рядом с НПС, он честно получит в инвентарь Nхt. Если от него удалиться, количество полученных предметов явно меньше.
Это же игра, а не мультизадачная система реального времени. То, что находится за зоной видимости ГГ вообще не должно волновать, как будто, да и в реальности, ничего нет, но когда объект попадает в зону видимости он должен адекватно отображаться в заданном состоянии. Если НПС заставили пилить дрова и сами ушли, то подойдя по истечении определенного времени просто должны увидеть результат (N = время * производительность). То же относится к перемещению, расстояние от НПС до точки путешествия известно, траектория задана, и через скорость получаем время прибытия НПС в конечную точку, если мы встанем где-то у него на пути, он должен прошлепать мимо.
Как я понимаю, для реализации всего этого не хватает одного параметра - фактического времени.

Теперь вопрос - кто-нибудь пробовал менять значение константы именно на стадии работы скриптов, а не до компиляции. Работает ли такая вещь? Или можно менять значение только у VAR переменной?
Ответить с цитированием
Старый 04.02.2005, 12:41   #184
Mitrich

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Vam:
Это же игра, а не мультизадачная система реального времени
Согласен - анимацию можно не воспроизводить, но рассчитывать результаты действий НПС за пределами видимости надо (задача такая).

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

Если НПС заставили пилить дрова и сами ушли, то подойдя по истечении определенного времени просто должны увидеть результат (N = время * производительность).
Верно. Но если НПС заставить напасть на другого НПС? Как рассчитывать результат? Фиксировать время стычки и прикидывать значения атака/защита данных НПС? Сейчас в Готике расчет стычки начинается когда игрок подойдет, а до этого момента все мирно курят.

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

2ZXZX:
Я сейчас пробовал.Все работает, но на Athlon 2800/512/FX5200 игра подтормаживает во время захвата1024X768 в 32-битном цвете. Надо тыкаться-может проц разгружать, память..
А по диспетчеру не удалось отследить загрузку процессора и использование памяти? Третью составляющую (видеокарту) можно было бы тогда элементарно вычелить методом исключения.
Ответить с цитированием
Старый 04.02.2005, 14:27   #185
ZXZX

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Mitrich:
не удалось отследить
Да, собственно,специально не проверял.
ИМХО, может с этим перейти в тему "Die Nacht des Raben 2.8 (МОД)",а то к скриптам она имеет отдаленное отношение ;)
Ответить с цитированием
Старый 04.02.2005, 20:31   #186
WSA

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2finch: Обобщил хорошо.
Интересует такая вещь: как правильно писать тригер ocTriggerChangeLevel или ocTriggerScript через событие OnTouch. У меня получилось только из zcTriggerа, да и то точечного.
2Mitrich:
Я думаю, надо определить какие промежуточные вейпойнты находятся на траектории и рассчитать время достижения ближайшей, т.к. по дороге (по идее) может случиться некоторое событие, которые путь прервет - драка например.
Я об этом тоже думал. Попробую сделать упрощенный вариант.
Ответить с цитированием
Старый 05.02.2005, 00:12   #187
finch

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Dagot_Ur:
Можно ли прогон камеры создавать через скрипты, не затрагивая спейсер?
ИМХО, нет...

2WSA:
Интересует такая вещь: как правильно писать тригер ocTriggerChangeLevel или ocTriggerScript через событие OnTouch. У меня получилось только из zcTriggerа, да и то точечного.
Не понял вопроса...
На ОнТач реагирует и ocTriggerChangeLevel, и ocTriggerScript...

да и то точечного.
размеры "точки" можно менять...
Ответить с цитированием
Старый 05.02.2005, 00:46   #188
finch

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Сорри за два поста подряд! Больше не буду! :)

2Dagot_Ur:
Я тут почитал идеи регенерации с ренжачрком - это ж надо до такого додуматься. И вот что хочу спросить: где это вы откопали эту фунцию цикла в моде ManaReload? Сейчас скачал посмотреть - там точно такого нет!
Там точно такое есть! ;D
Сама идея регенерации лежит в файле ZS_Recharger.d
Мне оставалось только приделать ее к амулету... С этим проблем не возникло...
А вообще, в этой теме я тебя уже спрашивал, как ты сделал регенерацию...
Если не сложно - опиши, плз, хотя бы общий принцип!
Ответить с цитированием
Старый 05.02.2005, 05:45   #189
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

По умолчанию Re: Скриптинг в Готике

2finch: Да чего тут описывать-то? :) ATR_REGENERATEHP и ATR_REGENERATEMANA. Думаю, что из этого все понятно. Только есть одна проблемка - при регенерации одной жизни - мана моментально восстанавливается. Лечится добавлением Npc_ChangeAttribute(self,ATR_REGENERATEMANA,9999); .
Делал также через цикл - через любой готовый LOOP, например, MagicSleep. Но с этим мороки больше, да и ни к чему это... :)

2Mitrich: Точное время получить, наверное, нельзя. Можно оперировать лишь функцией Wld_IsTime(хх,хх,хх,хх);. Если вставить ее в цикл и проверять значение меняющихся переменных хх, то возможно это сделать. Или без цикла, но с проверкой каждой минуты часа, но тогда слишком громоздко получится. Пока мне надобности в этом не возникало, поэтому большего сказать не могу. Вообще-то этим ядро занимается, а доступа к нему у нас, к сожелению - нет. :)
Ответить с цитированием
Старый 05.02.2005, 10:32   #190
WSA

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2finch: Уточняю вопрос.
Ни один из тригеров не работает после того как я меняю
размеры "точки"
. Точка работает, прямоугольник нет.
Ответить с цитированием
Старый 06.02.2005, 00:16   #191
finch

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2WSA:
Ни один из тригеров не работает после того как я меняю размеры "точки". Точка работает, прямоугольник нет.
Хм.. Странно...
У меня все работает... Я использую для запуска камеры
ocTriggerScript
и функцию, в которой прописываю
Wld_SendTrigger("");
... ну, и другие необходимые мне вещи...
Ответить с цитированием
Старый 06.02.2005, 04:57   #192
Vahaber

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике          

2All:
Вот пытаюсь разобраться в скиптах, как, что, к чему...
Как я понял, все скрипты заложены в файлах Ou.bin, Gothic.dat и т.д. Меня интересует вот что: как в простейшем виде вставить NPC в игру. Вот к примеру, чтобы я начал новую игру(Gothic I) и меня встречал не только Диего, а + еще какой-то стражник стоял рядом с ним. Я так понимаю, это надо создать некий "файл.d", в котором будет описан этот самый стражник. А дальше что делать с этим файлом? Или я вообще не так все понял?

P.S. Вы только поймите меня правильно, я пытаюсь разобраться что к чему. Поэтому если я что-то не так сказал, то вы уж не смейтесь ;)
Ответить с цитированием
Старый 06.02.2005, 10:17   #193
finch

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Vahaber: Почитай  эту, эту и, собственно говря, вот эту темы... А лучше сохрани у себя на винте!
Многие вопросы сразу отпадут! ;)
Ответить с цитированием
Старый 06.02.2005, 17:47   #194
Vahaber

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2finch:
Почитай *эту, эту и, собственно говря, вот эту темы... А лучше сохрани у себя на винте!
Многие вопросы сразу отпадут!


Что касается вот этой и этой тем, то они давно уже прочитаны и сохранены. В них я конкрентого ответа на свой вопрос не нашел. А вот что касается этой темы - ее я раньше читал, но особо не вникал. А теперь еще раз перечитал, и таки нашел ответы на свои вопросы.
Спасибо.
Ответить с цитированием
Старый 07.02.2005, 02:52   #195
Vahaber

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике                            

Ответ-то я нашел, стал пробовать что-то сделать. Вышло, но не совсем. Итак, что я делал.

1. Расспаковал файл world.vdf при помощи GothicVDFS в \Gothic\_work\data\worlds

2. Запустил Spacer и создал возле входа в СЛ вайпоинт с именем "my0" и соедини его с вайпоинтами, которые были рядом. Вайпоинт создавал так: F3, нажал на горизонтальной панельке на кнопку с изображением ноги, на том месте,где я хотел создать вайпоинт клацнул правой кнопкой мыши - insert(...waypoint), зажал Shift, клачнул левой кнопкой мыши на рядом "стоЯщий" вайпоинт("OC1"), на горизонтально панельке нажал на кнопку, которая отвечает за соединение вайпоинтов. Далее, этот же вайпоинт("my0") соединил таким же образом с еще одним. Сохранил world.zen.

3. В \Gothic\_work\data\scripts\content\story\NPC создал файл NONE_3131_TIV.d Вот содержимое файла:

instance NONE_3131_Tiv (NPC_DEFAULT)
{

* name = * * * * * * * * * * *"Tiv";
* npctype = * * * * * * * * * npctype_main;
* guild = * * * * * * * * * * *GIL_NONE;
* level = * * * * * * * * * * *0;
* voice = * * * * * * * * * * *8;
* id = * * * * * * * * * * * * * *3131;

* attribute[ATR_STRENGTH] = * * * 200;
* attribute[ATR_DEXTERITY] = * * * 200;
* attribute[ATR_MANA_MAX] = * * * 100;
* attribute[ATR_MANA] = * * * * *100;
* attribute[ATR_HITPOINTS_MAX] = * *900;
* attribute[ATR_HITPOINTS] = * * * 900;

* Mdl_SetVisual * * * (self,"HUMANS.MDS");
* Mdl_ApplyOverlayMds * *(self,"Humans_Tired.mds");
* Mdl_SetVisualBody (self,"hum_body_Naked0",3,1,"Hum_Head_Bald", 72, *4, GRD_ARMOR_H);

* B_Scale (self);
* Mdl_SetModelFatness (self, 0);

* self.aivar[AIV_IMPORTANT] = TRUE;

* fight_tactic * *= * *FAI_HUMAN_MASTER;


* Npc_SetTalentSkill (self, NPC_TALENT_1H,1);

* EquipItem (self, ItMw_2H_Sword_Heavy_03);
* CreateInvItem (self, ItMwPickaxe);
* CreateInvItem (self, ItFoLoaf);
* CreateInvItem (self, ItFoBeer);
* CreateInvItem (self, ItLsTorch);

* daily_routine = Rtn_Start_3131;
};
* func void Rtn_Start_3131 ()
{
*TA_Guard(09,00,24,00,"my0");
*TA_Guard(24,00,09,00,"my0");
};

4. В файле \Gothic\_work\data\scripts\content\story\Startup.d после строчки "Wld_InsertNpc * * * * * *(Grd_217_Torwache,"OC1");//Sьdtor" прописал свою строчку:
Wld_InsertNpc * * * * * * * * * * *(NONE_3131_Tiv,"my0");

5. Запустил Spacer, далее World -> Reparse Script и укзал путь к \Gothic\_work\data\scripts\content\Gothic.src Ошибок Spacer не выдавал.

6. При помощи GothicVDFS запаковал world.zen в worlds.mod в папку \Gothic\data\ После этого удалил в этой же папке *файл WORLDS.VDF *и поменял расширение у файла worlds.mod на worlds.vdf

7. Запускаю GOTHIC.EXE -> New Game -> бегу к воротам СЛ - моего NPC там нет. Вот так.

P.S.
1. Командой insert NONE_3131_Tiv получилось вставить этого NPC.
2. Непонятным для меня осталось следующее:
Mdl_SetVisual * * * (self,"HUMANS.MDS");
Mdl_ApplyOverlayMds * *(self,"Humans_Tired.mds");
B_Scale (self);
self.aivar[AIV_IMPORTANT] = TRUE;

Внимание вопрос: :)
Что же не так? Почему мой NPC не появляется?
И в каком файле можно посмотреть
Все различные занятия для неписи
?
Ответить с цитированием
Старый 07.02.2005, 10:15   #196
WSA

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Vahaber: В строковых названиях вейпойнтов нужно различать регистр. Попробуй написать везде "MY0".
Ответить с цитированием
Старый 07.02.2005, 15:28   #197
Mitrich

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Vahaber:
И в каком файле можно посмотреть Все различные занятия для неписи?
Задай в поиске по папке _work "ТА.d"
Ответить с цитированием
Старый 07.02.2005, 16:35   #198
francisc

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Попробуй его вставить при помоши марвина.Если не появится,то значит его нет в датнике.Если появится,то игра почему то не замечает твой вуапоинт,почему я не знаю,тк сам в этом не разобрался.
Ответить с цитированием
Старый 07.02.2005, 17:07   #199
Mitrich

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Vahaber:
Внимание вопрос:
Что же не так? Почему мой NPC не появляется?
Весьма часто НПС не встает пока не создашь для него миссию и не пропишешь ее как надо.
Ответить с цитированием
Старый 07.02.2005, 21:13   #200
Vahaber

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Так-с, наконец-то получилось. Обо всем по-порядку.

2WSA:
В строковых названиях вейпойнтов нужно различать регистр. Попробуй написать везде "MY0".


Поменял в файлах NONE_3131_TIV.d и Startup.d "my0" на "MY0" и все заработало!!! Стоит NPC там где надо. Спасибо тебе.

2Mitrich:
Задай в поиске по папке _work "ТА.d"


Я так и предполагал, что это он, решил переспросить. Спасибо.

Весьма часто НПС не встает пока не создашь для него миссию и не пропишешь ее как надо.


И все-таки появился. ;)

2francisc:
Попробуй его вставить при помоши марвина.


Я это уже попробовал. В предыдущем моем посте*-
Командой insert NONE_3131_Tiv получилось вставить этого NPC.
;)
И тебе тоже спасибо.

Вопрос, который остался в силе: за что отвечают вот эти строчки?
Mdl_SetVisual * *(self,"HUMANS.MDS");
Mdl_ApplyOverlayMds * (self,"Humans_Tired.mds");
B_Scale (self);
self.aivar[AIV_IMPORTANT] = TRUE;
Ответить с цитированием
Страница 5 из 65 12345 67891011121555 Последняя »


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе

Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.


Текущее время: 08:01. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot

AGFC: Valley of Gothic © 2004-2022

Яндекс.Метрика