• Страница 1 из 2
  • 1
  • 2
  • »
Архив - только для чтения
Модератор форума: FAN, V@Dik008  
Новые монстры
# 1
Воскресенье, 30.03.2008, 22:23:18

Ранг: Охотник
Сообщений: 593
Награды: 12
Репутация: 268 Регистрация: 29.03.2008 Город: Пенза    

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

Для примера возьму кошек (уж очень они мне нравятся)

Добавить их можно отредактировать файл all.spawn, либо динамически создать в игре через функцию alife:create().

Вылет при появлении
Обычно сопровождается сообщением в логе:

Arguments : Can't open section 'cat_weak'
Это значит, что монстр у нас не до конца описан. В файле конфигурации идет секция

[m_cat_e]:monster_base
Но для создания разных по силе конфигураций монстров обычно используется такая штука. Создается секция вида

[cat_weak]:m_cat_e
то есть ссылка на основную конфигурацию, а потом указываются параметры, которые отличаются от нее. Например сила, здоровье, угол обзора и тд. Мы пока ограничимся просто добавлением этой секции. В файле config\creatures\m_cat.ltx в конце допишем [cat_weak]:m_cat_e. Запускаем, добавляем кошку, вылетаем с ошибкой:

Arguments : Can't find variable smart_terrain_choose_interval in [cat_weak]
Что ж, добавим и этот параметр. Посмотрим, какой он у собак, и сделаем также:

smart_terrain_choose_interval = 00:15:00
Запускаем, вылетаем с ошибкой:

Arguments : Can't find variable satiety_threshold in [cat_weak]
Вобщем, добавляем параметры, по кошка не станет нормально появлятся. Такие ошибки легко локализуются и исправляются.

Ну, на всякий случай, нужно добавить еще две строчки:

critical_wound_threshold = 0.4
critical_wound_decrease_quant = 0.
После этого кошка появляется, бегает, с 30 метров бежит нас кушать. Мы этого не хотим, стреляем в нее, и у нас происходит

Вылет при убийстве
Это знаменитая ошибка:

Arguments : LUA error: e:\stalker\gamedata\scripts\_g.script:20 ........
Самое просто и неправильное решение - закоментировать 20-ю строку скрипта _g.script, вылет исчезнет, но ошибка никуда не денется. Я не могу сказать с уверенностью, к чему игнорирование этого факта может привести, так как исправлял причину, а не следствие.

Путем нехитрых логических размышлений решение было найдено. Вернее тупым перебором всего, что относилось к делу, криками на форумах, битьем головой о стенку... Потом пришло озарение, вместе с сакраментальным вопросом "что происходит после смерти?" А происходит добавление в статистику убитого объекта (монстра, нпс-а). Поэтому лезем в скрипт xr_statistic.script. В самом начале видим объявление переменной

local killCountProps = {...}
в которой кошек нет. Поэтому добавляем их туда (например, в конец), для начисления очков опыта:

cat_weak = 1, cat_normal = 2, cat_strong = 3,
Хотя мы сделали только cat_weak, но на будущее добавим и остальных. Затем идет перечисление используемых классов монстров:

monster_classes = {
кошек нет и здесь, добавляем:

[clsid.cat_s] = "cat",
Смотрим дальше, видим функцию addKillCount(npc), которая определяет сообщество (community) убитого. Функция вызывает getNpcType(npc), которая находится в этом же скрипте. А там идет обращение к функции IsStalker(npc), и возвращает сообщество и ранг убиенного.

Но тут про мостров ни слова, а значит идем дальше. Функция IsStalker(npc) обнаруживается в скрипте _g.script. Просматривая его обнаруживаем следующие интересующие нас функции:

is_object_monster(obj)
кошек нет, добавляем рядом с собаками:

otype == clsid.cat or
IsMonster (object, class_id)
кошки есть, ничего не трогаем.

Для страховки проверим еще одни файл, class_registrator.script. Находим в нем строку

cs_register (object_factory, "CCat", "se_monster.se_monster", "SM_CAT_S", "cat_s")
и успокаиваемся на этом. Запускаем, убиваем, подходим, пытаемся обыскать - вылетаем. Потому что случился

Вылет при обыске
Ну тут уже проще. Вспоминаем, что у нас показывается в инвентаре убитого? Иконка растерзанного трупа. Проверяем m_cat.ltx - действительно, параметр icon отсутствует. Тут появляется два пути.

Первый - нарисовать новую иконку, вставить ее в файл ui_npc_monster.dds, определить координаты и добавить их в xml-описатель ui_npc_monster.xml. И так для каждого нового монстра.





Правила форума S.T.A.L.K.E.R. GSC
# 2
Воскресенье, 30.03.2008, 22:23:28

Ранг: Охотник
Сообщений: 593
Награды: 12
Репутация: 268 Регистрация: 29.03.2008 Город: Пенза    

Второй - использовать общую иконку для всех монстров, у которых отсутствует этот параметр. Мы им и воспользуемся, так как для тестовых целей сойдет, а для серьезного применения все равно необходимо иметь хоть какие-то художественные навыки (если кто видел мой тестовый мод "15 кошек", то помнят тот ужас вместо иконки кошки smile )

Для этого отредактируем файл defines.ltx , так как именно в нём содержится секция monster_base, общая для всех монстров. Открываем, ищем секцию, и вставляем

icon = ui_frame_error_sign_red
Это будет такой красный крест в круге. Запускаем, убиваем, обыскиваем и не вылетаем.

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





Правила форума S.T.A.L.K.E.R. GSC
# 3
Суббота, 18.04.2009, 14:08:45

Ранг: Прибывший
Сообщений: 8
Награды: 0
Репутация: 10 Регистрация: 28.03.2009  

подскажите пожалуйста как например на локации "росток" возродить и расставить гражданских зомби
а то эту статью я как то не очень понял %)
и еще вопрос чем можно открыть allspawns ?

Добавлено (18.04.2009, 14:08:29)
---------------------------------------------
что-то я застрял на монстрах :(
никак не могу вставить зомбей :(
начнем с начала:

сначала в файле config\creatures\m_zombie.ltx я добавил [zombie_weak]:m_zombie_e
затем добавил smart_terrain_choose_interval = 00:15:00
и такую строчку: critical_wound_threshold = 0.4
critical_wound_decrease_quant = 0.

затем в файле xr_statistic*****ipt. прописал zombie_weak = 1, zombie_normal = 2, zombie_strong = 3,
далее прописал [clsid.zombie_s] = "zombie",
затем в файле _g*****ipt добавил otype == clsid.zombie or

потом я запускаю spawner нажимаю ctrl O выбираю сейв, потом открываю allspawns и появляется многобукав :)
затем нажимаю "добавить объект в базу" класс - monstrs, имя - m_zombie_e
и добавляю объект!

и конечно же никакого зомби не появляется :(
скажите пожалуйста где у меня ошибка
одна кажется в строчке zombie_weak = 1, zombie_normal = 2, т.к у зомби другая классификация
но мне кажется загвоздка не в этом и я где-то намудрил
ПОДСКАЖИТЕ ПОЖАЛУЙСТА !!!!

Добавлено (18.04.2009, 14:08:45)
---------------------------------------------
что-то я застрял на монстрах :(
никак не могу вставить зомбей :(
начнем с начала:

сначала в файле config\creatures\m_zombie.ltx я добавил [zombie_weak]:m_zombie_e
затем добавил smart_terrain_choose_interval = 00:15:00
и такую строчку: critical_wound_threshold = 0.4
critical_wound_decrease_quant = 0.

затем в файле xr_statistic*****ipt. прописал zombie_weak = 1, zombie_normal = 2, zombie_strong = 3,
далее прописал [clsid.zombie_s] = "zombie",
затем в файле _g*****ipt добавил otype == clsid.zombie or

потом я запускаю spawner нажимаю ctrl O выбираю сейв, потом открываю allspawns и появляется многобукав :)
затем нажимаю "добавить объект в базу" класс - monstrs, имя - m_zombie_e
и добавляю объект!

и конечно же никакого зомби не появляется :(
скажите пожалуйста где у меня ошибка
одна кажется в строчке zombie_weak = 1, zombie_normal = 2, т.к у зомби другая классификация
но мне кажется загвоздка не в этом и я где-то намудрил
ПОДСКАЖИТЕ ПОЖАЛУЙСТА !!!!







Сообщение отредактировал Nemesis - Воскресенье, 12.04.2009, 13:25:13
# 4
Воскресенье, 13.09.2009, 16:03:11

Ранг: Познающий
Сообщений: 95
Награды: 30
Репутация: 180 Регистрация: 09.08.2009 Город: Вильнюс    

А как карлика в игру вернуть


# 5
Воскресенье, 13.09.2009, 16:59:53

Ранг: Мастер
Сообщений: 2546
Награды: 237
Репутация: 2302 Регистрация: 11.12.2008 Город: Заполярье    

Рядовой делай 3D модель, делай ей анимацию, рисуй текстуры и добавляй в игру...




-Он счастлив.
-Он мёртв.
# 6
Вторник, 22.02.2011, 19:07:07

Ранг: Знаток Зоны
Сообщений: 597
Награды: 47
Репутация: 695 Регистрация: 07.11.2010 Город: Тамбов    

Щас вам новые монстры!Ага!Но совет могу дать:можете скопировать и сделать сначала дубликат монстра,например химеру и взять кусочек от кровососа,отвечаюший за невидимость.И будет у вас химера-стелс.А при желании можно телекинес приписать химере,будет пси волнами атаковать,фантомы создавать.Ну и анимки можно поменять.
Вот мой урочек
# 7
Среда, 23.02.2011, 17:03:23

Ранг: Разведчик
Сообщений: 249
Награды: 9
Репутация: 66 Регистрация: 04.09.2009  

Freezer, Это то как но всеравно полностью нового монстра не зделаеш(нужно править xrGame.dll) можно лиш изменить старых или на основе старых зделать нового с другой моделью.




В разработке: B.O.L. mod and Crusader Land

# 8
Пятница, 04.03.2011, 09:04:50

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

Freezer, если вы играли в солянку, то должны были видеть, что Библиотекарь (с Метро) прекрасно "чувствует" себя в игре (бегает, "резвится"), т.е. анимки присутствуют. Видел еще модель Коготь смерти (вроде так называется), которую вытянули и прописали в Сталкере.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
# 9
Суббота, 05.03.2011, 15:35:42

Ранг: Новичок
Сообщений: 38
Награды: 10
Репутация: 79 Регистрация: 15.10.2010 Город: Калининград    

Здравствуйте!Мне нужны все вырезанные монстры , расставленные по локам и с нормальным спавном.Можно ли такое реализовать?


Пойди туда , не знаю куда , принеси то , не знаю что...
Это наверное про ЧАЭС и Монолит?
# 10
Вторник, 31.05.2011, 14:03:04

Ранг: Новичок
Сообщений: 54
Награды: 1
Репутация: 2 Регистрация: 19.05.2011 Город: Мухосранск    

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


WIND - j064kde3048 number of unit
Хорошо уметь наслаждаться короткими, но самыми счастливыми моментами жизни. например, когда ешь банку подогретой тушёнки..
# 11
Пятница, 22.07.2011, 21:13:29

Ранг: Знаток Зоны
Сообщений: 726
Награды: 22
Репутация: 296 Регистрация: 02.03.2009 Город: Миасс    

Помню я как-то крысу пробовал возвращать. Получилось, вот только после неё бинокль ГГ перестал доставать ^_^ Пришлось крысу обратно убирать. Кто-нибудь знает из-за чего это?


Истинный путь MOD ver. 1.3.0 (ТЧ) готов!
Истинный путь v2.0 (ТЧ) готов!
# 12
Понедельник, 15.08.2011, 13:24:53

Ранг: Мастер
Сообщений: 565
Награды: 35
Репутация: 864 Регистрация: 14.11.2010 Город: Шахунья    

StormyMoore, новых монстров добавляли, например в АМК - электрохимера и др.


# 13
Суббота, 24.09.2011, 12:01:11

Ранг: Разведчик
Сообщений: 367
Награды: 64
Репутация: 2435 Регистрация: 22.07.2011  

Quote (StormyMoore)
тему надо назвать "вырезанные монстры", поскольку добавить действительно новых монстров не представляется возможным. имхо.

не с чего ты это взял вполне можно и новых сделать с нуля



Все кому я нужен могут найти меня по этому адресу : #EGGO_TM в общем буду рад пообщаться )
# 14
Среда, 28.09.2011, 18:04:48

Ранг: Сталкер
Сообщений: 376
Награды: 14
Репутация: 276 Регистрация: 22.05.2010 Город: Воронеж    

Всё возможно главное материал найти!



СВОБОДА ЭТО СТАЛКЕР А СТАЛКЕР ЭТО СВОБОДА!!! ТАК КТО ЖЕ ТЫ ???
# 15
Четверг, 29.09.2011, 15:49:33

Ранг: Разведчик
Сообщений: 367
Награды: 64
Репутация: 2435 Регистрация: 22.07.2011  

Carnaged, да не обязательно некоторые вон с нуля делают



Все кому я нужен могут найти меня по этому адресу : #EGGO_TM в общем буду рад пообщаться )
# 16
Суббота, 01.10.2011, 23:31:02

Ранг: Сталкер
Сообщений: 376
Награды: 14
Репутация: 276 Регистрация: 22.05.2010 Город: Воронеж    

rd_team, Ну так а я про что, главное чтобы было что в игру вставлять.



СВОБОДА ЭТО СТАЛКЕР А СТАЛКЕР ЭТО СВОБОДА!!! ТАК КТО ЖЕ ТЫ ???
# 17
Четверг, 13.10.2011, 10:14:21

Ранг: Разведчик
Сообщений: 367
Награды: 64
Репутация: 2435 Регистрация: 22.07.2011  

Carnaged, ну так щяс не проблема научиться делать модели для игры а конфиги и остальное подобрать не проблема



Все кому я нужен могут найти меня по этому адресу : #EGGO_TM в общем буду рад пообщаться )
# 18
Пятница, 18.11.2011, 18:28:56

Ранг: Разведчик
Сообщений: 241
Награды: 3
Репутация: 60 Регистрация: 02.01.2011 Город: Москва    

где находиться функция alife:create?
# 19
Пятница, 18.11.2011, 19:25:44

Ранг: Знаток Зоны
Сообщений: 726
Награды: 22
Репутация: 296 Регистрация: 02.03.2009 Город: Миасс    

stalkervol, не понял вопроса. Что ещё за функция alife:create? Через неё обычной с помощью скрипта спавнят объекты, зачем тебе её искать?


Истинный путь MOD ver. 1.3.0 (ТЧ) готов!
Истинный путь v2.0 (ТЧ) готов!
# 20
Воскресенье, 15.04.2012, 02:09:38

Ранг: Познающий
Сообщений: 88
Награды: 6
Репутация: 436 Регистрация: 03.01.2012 Город: Москва    

Монстры уже на самом деле довольно распространённая тема и добавить таковых уже совсем не сложно, в особенности если вы работаете на такой платформе как ТЧ. В развитие темы выкладываю несколько ссылок на полезные темы с AMK Форума.



Зона меня любит... ©

Сообщение отредактировал Mакc - Воскресенье, 15.04.2012, 02:10:21
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:
Вверх
Правила чата
Мини-чат
+Мини-чат
0