antreg 178 Опубликовано 26 Июня 2010 Поделиться Опубликовано 26 Июня 2010 (изменено) XeoN, 1) Спавн НПС с выдачей АйДи: function spawn_mervin22() local obj=alife():create("esc_mervin22",vector():set(9.693,56.273,48.022),5205,2417) local params=amk.read_stalker_params(obj) params.custom="[logic]\ncfg = scripts\\new\\esc_mervin22.ltx" params.sid=30139 amk.write_stalker_params(params,obj) end Для контроля назначнных SID_ов надо зарегистрировать Вашего НПС в файле: game_story_ids.ltx (\gamedata\config) по аналогии с остальными. Номер sid надо брать, чтобы он не дублировался с существующими, лучше назначить с "запасом", напрмер, как в примере, иначе будут вылеты с указанием на "дублирование сида". 2) Удаление НПС по СИД_у: function del_mervin22() local sim = alife() local se_obj = sim:story_object(30139) if se_obj then sim:release(se_obj, true) end end 3) Чтобы сделать бессмертным НПС, надо всего лишь прописать ему :stalker_sakharov в секции спавна, будь то аллспавн или заспавненный скриптом НПС. Вот пример (\gamedata\config\creatures файл: spawn_sections.ltx): [esc_mervin22]:stalker_sakharov $spawn = "respawn\esc_mervin22_spawn" character_profile = esc_mervin2 spec_rank = master community = trader custom_data = scripts\new\esc_mervin22.ltx Что есть stalker_sakharov: Это всего лишь секция в файле: m_stalker.ltx (вот здесь: \gamedata\config\creatures) в которой назначены параметры "бессмертия": [stalker_sakharov]:stalker_trader $spawn = "stalkers\stalker_sakharov" immunities_sect = stalker_immunities_sakharov condition_sect = my_stalker_condition [my_stalker_condition] satiety_v = 0.0 ;скорость уменьшения сытости со временем radiation_v = 1.0 ;скорость уменьшения радиации satiety_power_v = 1.0 ;увеличение силы при уменьшении сытости satiety_health_v = 1.0 ;увеличение здоровья при уменьшении сытости satiety_critical = 0.0 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться radiation_health_v = 0.0 ;уменьшение здоровья при воздействии радиации morale_v = 0.0 ;скорость восстановления морали health_hit_part = 0.0 ;процент хита, уходящий на отнимание здоровья power_hit_part = 0.1 ;процент хита, уходящий на отнимание силы psy_health_v = 0.1 ;скорость восстановления psy-здоровья ;открытые раны bleeding_v = 0.0 ;потеря крови при номинальной ране в секунду wound_incarnation_v = 1.0 ;крутизна кривой заживления (какой процент раны заживет в игровую секунду) min_wound_size = 1.0 ;минимальный размер раны, после которого она считается зажившей sleep_health = 1.0 ;1.5 ;коэффициенты скоростей изменения параметров во время сна sleep_power = 1.0 ;1.5 sleep_satiety = 1.0 ;0.8 sleep_radiation = 1.0 ;1.1 sleep_psy_health = 1.0 [stalker_immunities_sakharov] burn_immunity = 0.0 ;коэффициенты иммунитета strike_immunity = 0.0 shock_immunity = 0.0 wound_immunity = 0.0 radiation_immunity = 0.0 telepatic_immunity = 0.0 chemical_burn_immunity = 0.0 explosion_immunity = 0.0 fire_wound_immunity = 0.0 wound_2_immunity = 0.0 А иногда нужно сделать просто "трудноубиваемого" врага. Тогда делаем так (просто пример, можно и подругому): [stalker_new]:stalker $spawn = "stalkers\stalker_new" immunities_sect = stalker_immunities_new condition_sect = new_stalker_condition [new_stalker_condition] satiety_v = 0.00001 ;скорость уменьшения сытости со временем radiation_v = 0.0001 ;скорость уменьшения радиации satiety_power_v = 0.0005 ;увеличение силы при уменьшении сытости satiety_health_v = 0.0 ;0.0001 ;увеличение здоровья при уменьшении сытости satiety_critical = 0.0 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться radiation_health_v = 0.000 ;уменьшение здоровья при воздействии радиации morale_v = 0.0001 ;скорость восстановления морали health_hit_part = 0.05 ;процент хита, уходящий на отнимание здоровья power_hit_part = 0.05 ;процент хита, уходящий на отнимание силы psy_health_v = 0.01 ; скорость восстановления psy-здоровья health_restore_v = 0.00001 ;скорость восстановления здоровья sleep_health = 1.0 ;коэффициенты скоростей изменения параметров во время сна sleep_power = 1.0 sleep_satiety = 1.0 sleep_radiation = 1.0 sleep_psy_health = 1.0 ;---LIMPING STATE----------------------------------------------------- use_limping_state = off limping_threshold = 0.5 ;открытые раны bleeding_v = 0.0 ;потеря крови при номинальной ране в секунду wound_incarnation_v = 0.001 ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду) min_wound_size = 0.01 [stalker_immunities_new] burn_immunity = 0.05 ;коэффициенты иммунитета strike_immunity = 0.05 shock_immunity = 0.05 wound_immunity = 0.3 radiation_immunity = 0.0 telepatic_immunity = 0.0 chemical_burn_immunity = 0.08 explosion_immunity = 100 fire_wound_immunity = 0.00000000001 wound_2_immunity = 0.0000000001 В этом случае, враг суров, но всё зависит от его костюма. В экзе, гранатой его не возьмёшь, только в голову бронедойными, в обычном костюме (напрмер, наёмника) можно и гранатой, но всё это в зависимости от балланса оружия и т.д. в создаваемом Вами моде. Это только пример, который я использовал. Можно создать свою секцию с характеристиками "защиты-повреждения" для НПС и спавнить новых челов с заданными свойствами, указывая им созданную секцию. Например, в аллспавне (если там спавнить)(ПРИМЕР): [3635] ; cse_abstract properties section_name = stalker_new name = esc_mervin22 Если скриптами спавним, то тогда секция в файле: spawn_sections.ltx (\gamedata\config\creatures): [esc_mervin22]:stalker_new $spawn = "respawn\esc_mervin22_spawn" character_profile = esc_mervin2 --секция его профиля в Вашем character_desc_ххх.xml spec_rank = master community = trader --неважно кто он, в данном случае торговец custom_data = scripts\new\esc_mervin22.ltx --здесь надо прописать логику для своего НПС Изменено 27 Июня 2010 пользователем antreg "Тайные Тропы 2" техподдержка "Ф.О.Т.О.Г.Р.А.Ф" техподдержка Ссылка на комментарий
RayTwitty 508 Опубликовано 26 Июня 2010 Поделиться Опубликовано 26 Июня 2010 Два вопроса. 1) Почему НПС спавнится не в точно отведенном ему месте? Снимал координаты там - за стойкой (на прошлой стр. скрин). Может из за того что снимал демо_рекордом? Залетал за стойку, на уровне головы ставил камеру. Может камеру надо около пола держать? 2) Как назначить НПС иконку в диалоге? Знаю что дело в файле ui_npc_unique. Но как там координаты снять... Имеется прога SIE 0.6.3 если что. Сообщение от модератора n6260 В SIE есть вывод координат в двух вариантах: по сетке и для xml-файлов. Отсчет координат иконки вроде от верхнего левого угла. Посмотри у уже готовых иконок в конфигах. З.Ы. Иконка должна быть в ui_iconstotal.dds (это для АМК), а ее координаты в ui_icons_npc.xml. Ссылка на комментарий
antreg 178 Опубликовано 27 Июня 2010 Поделиться Опубликовано 27 Июня 2010 Shadows, 1) Точка спавна должна быть "на нулевой отметке плоскости" - на земле (по простому). Чем выше поднимаем, тем больше рандом спавна. Снимать координаты демо рекордом не стоит. Есть простая функция от Бардака: function main_menu:OnButton_credits_clicked() local text local vid local gvid local a = vector() local text a = db.actor:position() vid = db.actor:level_vertex_id() gvid = db.actor:game_vertex_id() text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid news_manager.send_tip(db.actor, text, nil, nil, 30000) end Вставляется в самом конце скрипта ui_main_menu.script Вызывается нажатием на Credits (титры) в меню игры, т.е. выходим из игры (Esc) и жмём на Credits (титры) и потом "пищит" и потом возвращаемся в игру и сообщение на экране с координатами (если сообщения нет, такое тоже бывает, тогда заходим в журнал, события и смотрим там в истории диалогов сообщение с координатами на плоскости). "Тайные Тропы 2" техподдержка "Ф.О.Т.О.Г.Р.А.Ф" техподдержка Ссылка на комментарий
iDreD 5 Опубликовано 27 Июня 2010 Поделиться Опубликовано 27 Июня 2010 Как заспаунить мёртвого НПС скриптом без использования функций амк? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
Влад 9 Опубликовано 27 Июня 2010 Поделиться Опубликовано 27 Июня 2010 кровоSTALKER local obj = alife():create("esc_hunt",vector():set(-213.69770812988,-23.183309555054,-122.53145599365),39933,59) obj:on_death() Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Ссылка на комментарий
SVALKER1988 0 Опубликовано 24 Июля 2010 Поделиться Опубликовано 24 Июля 2010 Народ есть вопрос может не по теме но все же. Создал нового НПС, и квесты к нему. Можно ли брать квест брать у одного персонажа, а сдовать и ему и другому персонажу? http://wf.mail.ru/custom/ub/05582e7eccfa11d6c4461b2488019b85/308b9c5de7546cc824eab38997405606/bar.jpg Ссылка на комментарий
andrewrap 1 Опубликовано 24 Июля 2010 Поделиться Опубликовано 24 Июля 2010 SVALKER1988, создаёшь два одинаковых диалога (по сдаче квеста) и даёшь его двум разным нпс. А первый диалог (на получение) только одному из них. Попробуй, может получиться, сам не пробовал. Разработка Andrew's Pack Mod V0.5.. Ссылка на комментарий
SVALKER1988 0 Опубликовано 24 Июля 2010 Поделиться Опубликовано 24 Июля 2010 Спасибо! Сейчас попробуем. Строгое предупреждение от модератора n6260 Спасибы пишите в ЛС или репутацию, или дописывайте в свое предыдущее сообщение.! http://wf.mail.ru/custom/ub/05582e7eccfa11d6c4461b2488019b85/308b9c5de7546cc824eab38997405606/bar.jpg Ссылка на комментарий
Roman82 4 Опубликовано 27 Июля 2010 Поделиться Опубликовано 27 Июля 2010 Всех приветствую. Возможно ли данным способом, написанным в шапке, добавить физический обьект в игру? Ограждение, разбитую технику и тд. Заранее благодарю за ответ. Сообщение от модератора n6260 Предметы или техника просто спавнится скриптом или через алл--спавн, а вот с деталями пейзажа - это через компиляцию локации. Ссылка на комментарий
Arhara 32 Опубликовано 28 Июля 2010 Поделиться Опубликовано 28 Июля 2010 Предметы или техника просто спавнится скриптом или через алл--спавн, а вот с деталями пейзажа - это через компиляцию локации. Юра - если камни, елки и прочее древа относятся к пейзажам, то они преспокойно спавнятся. Так же как и кусты и многое другое (помнишь ёлку на дороге у лагеря новисов?) Единственный недостаток этого всего - неписи их не обходят, а тупо упираются лбами, если дерево или камень будет на пути. Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка Ссылка на комментарий
Roman82 4 Опубликовано 30 Июля 2010 Поделиться Опубликовано 30 Июля 2010 (изменено) Arhara А каким образом не подскажите? Столкнулся с еще одной проблемой. Нужно чтобы свежесозданные неписи возвращались на свои позиции. Организовал мини блокпост. Но чуть какая опасность, мутанты живность, они разбегаются и не возвращаются на свои места. Кучу логик перепробовал (http://stalkerin.gameru.net/wiki , ничего не помогает. Подскажите пожалуйста. Изменено 30 Июля 2010 пользователем Roman82 Ссылка на комментарий
Scarabay 98 Опубликовано 31 Июля 2010 Поделиться Опубликовано 31 Июля 2010 Roman82, чтобы неписи возвращались на свои места, нужно создать смарт-террейн и список работ для него, которые будут выполнять нпс. Мой YouTube-канал Ссылка на комментарий
andrewrap 1 Опубликовано 31 Июля 2010 Поделиться Опубликовано 31 Июля 2010 Roman82, будет проще сделать в алл.спавн одну точку волк и одну лук. Нпс будет приходить на эти точки и стоять на них, если пропишешь эти точки ему в логику. Разработка Andrew's Pack Mod V0.5.. Ссылка на комментарий
Vito$ 0 Опубликовано 27 Августа 2010 Поделиться Опубликовано 27 Августа 2010 Всё сделал как тут написано но НПС не появляется. Сообщение от модератора n6260 Значит что-то не так сделал. Ссылка на комментарий
Vito$ 0 Опубликовано 28 Августа 2010 Поделиться Опубликовано 28 Августа 2010 Уважаймый n6260 я думаю если бы я что то сделал не так то у меня был бы стабильный вылет.А где он вобще должен появиться??? Ссылка на комментарий
Push85 4 Опубликовано 28 Августа 2010 Поделиться Опубликовано 28 Августа 2010 Vito$, ты не правильно думаешь, ты мог банально не прописать функцию спавна своего непися и все, результат: ни вылета ни непися... Возможно всё, ну или почти всё. Ссылка на комментарий
qwqwqw 117 Опубликовано 31 Августа 2010 Поделиться Опубликовано 31 Августа 2010 У меня вопрос - заспавнил одного НПС всё работает нормально. По аналогии спавню второго - получаю странный вылет: Expression : m_available_count Function : CID_Generator<unsigned int,unsigned char,unsigned short,unsigned char,unsigned short,0,65534,256,65535,0>::tfGetID File : e:\stalker\sources\trunk\xr_3da\xrgame\id_generator.h Line : 92 Description : Not enough IDs Может кто знает в чём дело ? Ссылка на комментарий
Malandrinus 615 Опубликовано 31 Августа 2010 Поделиться Опубликовано 31 Августа 2010 qwqwqw, тебе же пишут "Not enough IDs" т.е. "не хватает идентификаторов". В игре может быть не более 65534 объектов. Видимо, у тебя насоздавалось столько. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
qwqwqw 117 Опубликовано 31 Августа 2010 Поделиться Опубликовано 31 Августа 2010 malandrinus нда спасибо. Интересно как столько насоздавалось в чистой игре ? Ссылка на комментарий
Gandifil 0 Опубликовано 27 Октября 2010 Поделиться Опубликовано 27 Октября 2010 Сделал все как описано,в итоге при спавне нпс вылет: Expression : fatal error Function : CInifile::r_section File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp Line : 342 Description : <no expression> Arguments : Can't open section 'include "gameplay\character_items.xml"' Как исправить? Сообщение от администратора n6260 Вообще русским английским языком написано "невозможно открыть секцию инклуда gameplay\character_items.xml" Дурак знает как затеять драку, умный знает как победить в драке, мудрец знает как избежать драки. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти