antreg 179 Опубликовано 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-458867
RayTwitty 559 Опубликовано 26 Июня 2010 Поделиться Опубликовано 26 Июня 2010 Два вопроса. 1) Почему НПС спавнится не в точно отведенном ему месте? Снимал координаты там - за стойкой (на прошлой стр. скрин). Может из за того что снимал демо_рекордом? Залетал за стойку, на уровне головы ставил камеру. Может камеру надо около пола держать? 2) Как назначить НПС иконку в диалоге? Знаю что дело в файле ui_npc_unique. Но как там координаты снять... Имеется прога SIE 0.6.3 если что. Сообщение от модератора n6260 В SIE есть вывод координат в двух вариантах: по сетке и для xml-файлов. Отсчет координат иконки вроде от верхнего левого угла. Посмотри у уже готовых иконок в конфигах. З.Ы. Иконка должна быть в ui_iconstotal.dds (это для АМК), а ее координаты в ui_icons_npc.xml. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-458905
antreg 179 Опубликовано 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 (титры) и потом "пищит" и потом возвращаемся в игру и сообщение на экране с координатами (если сообщения нет, такое тоже бывает, тогда заходим в журнал, события и смотрим там в истории диалогов сообщение с координатами на плоскости). Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-458936
iDreD 5 Опубликовано 27 Июня 2010 Поделиться Опубликовано 27 Июня 2010 Как заспаунить мёртвого НПС скриптом без использования функций амк? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-459054
Влад 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() Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-459057
SVALKER1988 0 Опубликовано 24 Июля 2010 Поделиться Опубликовано 24 Июля 2010 Народ есть вопрос может не по теме но все же. Создал нового НПС, и квесты к нему. Можно ли брать квест брать у одного персонажа, а сдовать и ему и другому персонажу? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-468787
andrewrap 1 Опубликовано 24 Июля 2010 Поделиться Опубликовано 24 Июля 2010 SVALKER1988, создаёшь два одинаковых диалога (по сдаче квеста) и даёшь его двум разным нпс. А первый диалог (на получение) только одному из них. Попробуй, может получиться, сам не пробовал. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-468788
SVALKER1988 0 Опубликовано 24 Июля 2010 Поделиться Опубликовано 24 Июля 2010 Спасибо! Сейчас попробуем. Строгое предупреждение от модератора n6260 Спасибы пишите в ЛС или репутацию, или дописывайте в свое предыдущее сообщение.! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-468792
Roman82 4 Опубликовано 27 Июля 2010 Поделиться Опубликовано 27 Июля 2010 Всех приветствую. Возможно ли данным способом, написанным в шапке, добавить физический обьект в игру? Ограждение, разбитую технику и тд. Заранее благодарю за ответ. Сообщение от модератора n6260 Предметы или техника просто спавнится скриптом или через алл--спавн, а вот с деталями пейзажа - это через компиляцию локации. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-469821
Arhara 32 Опубликовано 28 Июля 2010 Поделиться Опубликовано 28 Июля 2010 Предметы или техника просто спавнится скриптом или через алл--спавн, а вот с деталями пейзажа - это через компиляцию локации. Юра - если камни, елки и прочее древа относятся к пейзажам, то они преспокойно спавнятся. Так же как и кусты и многое другое (помнишь ёлку на дороге у лагеря новисов?) Единственный недостаток этого всего - неписи их не обходят, а тупо упираются лбами, если дерево или камень будет на пути. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-470434
Roman82 4 Опубликовано 30 Июля 2010 Поделиться Опубликовано 30 Июля 2010 (изменено) Arhara А каким образом не подскажите? Столкнулся с еще одной проблемой. Нужно чтобы свежесозданные неписи возвращались на свои позиции. Организовал мини блокпост. Но чуть какая опасность, мутанты живность, они разбегаются и не возвращаются на свои места. Кучу логик перепробовал (http://stalkerin.gameru.net/wiki , ничего не помогает. Подскажите пожалуйста. Изменено 30 Июля 2010 пользователем Roman82 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-471414
Scarabay 98 Опубликовано 31 Июля 2010 Поделиться Опубликовано 31 Июля 2010 Roman82, чтобы неписи возвращались на свои места, нужно создать смарт-террейн и список работ для него, которые будут выполнять нпс. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-471718
andrewrap 1 Опубликовано 31 Июля 2010 Поделиться Опубликовано 31 Июля 2010 Roman82, будет проще сделать в алл.спавн одну точку волк и одну лук. Нпс будет приходить на эти точки и стоять на них, если пропишешь эти точки ему в логику. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-471732
Vito$ 0 Опубликовано 27 Августа 2010 Поделиться Опубликовано 27 Августа 2010 Всё сделал как тут написано но НПС не появляется. Сообщение от модератора n6260 Значит что-то не так сделал. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-483416
Vito$ 0 Опубликовано 28 Августа 2010 Поделиться Опубликовано 28 Августа 2010 Уважаймый n6260 я думаю если бы я что то сделал не так то у меня был бы стабильный вылет.А где он вобще должен появиться??? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-484164
Push85 5 Опубликовано 28 Августа 2010 Поделиться Опубликовано 28 Августа 2010 Vito$, ты не правильно думаешь, ты мог банально не прописать функцию спавна своего непися и все, результат: ни вылета ни непися... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-484173
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 Может кто знает в чём дело ? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-486539
Malandrinus 615 Опубликовано 31 Августа 2010 Поделиться Опубликовано 31 Августа 2010 qwqwqw, тебе же пишут "Not enough IDs" т.е. "не хватает идентификаторов". В игре может быть не более 65534 объектов. Видимо, у тебя насоздавалось столько. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-486628
qwqwqw 117 Опубликовано 31 Августа 2010 Поделиться Опубликовано 31 Августа 2010 malandrinus нда спасибо. Интересно как столько насоздавалось в чистой игре ? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-486689
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" Ссылка на комментарий https://www.amk-team.ru/forum/topic/6356-sozdanie-novogo-nps/page/12/#findComment-511728
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти