Luch 0 Опубликовано 1 Января 2011 Как правильно спавнить патроны в инвентарь НПС? ... Добавляю через config/gameplay у НПС появляется 9 или 8 патрон, хотя я дабавлял : [ammo _9x39_ap = 15 \n] Прописанное здесь количество измеряется в штуках или пачках?... Подскажите пожалуста, почему для того чтобы изменения вступили в силу мне набо начать новую игру? Если загружаю сохранение изменений нет... Спасибо... Поделиться этим сообщением Ссылка на сообщение
Luch 0 Опубликовано 3 Января 2011 (изменено) Помогите не как не могу создать нпс, вылет и все :ny_unsure: Подскажите, пожалуйста, где ошибки... Спасибо... *1 Для начала создадим профиль! Откроем фаил character_desc_escape.xml и создаем там новый профиль Пример: <specific_character id="esc_luch" team_default = "1"> <name>Luchr</name> <icon>ui_npc_u_stalker_neytral_balon_1</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>esc_luch</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\stalker\</snd_config> <rank>100</rank> <reputation>200</reputation> <visual>actors\neytral\stalker_neytral_balon_1</visual> <supplies> [spawn] \n wpn_ak74 \n ammo_5.45x39_fmj = 5 \n </supplies> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs.xml" </specific_character> *2 Теперь нужно прописать класс нашего НПС в npc_profile.xml Пример: <character id="esc_luch"> <class>esc_luch</class> <specific_character>esc_luch</specific_character> </character> *3 Теперь зарегистрируем Нашего НПС в spawn_section.ltx [esc_luch_spawn]:stalker $spawn = "respawn\esc_luch_spawn" character_profile = esc_luch spec_rank = regular community = stalker (esc_luch) custom_data = scripts\sniper_addon\sniper_addon_friend_logic.ltx Вопрос 1: куда здесь писать?... я писал после: ;------Escape------ ;------neutrals----- *4 Потом открываем xr_conditions.script и добавляем вот такую функцию function is_sniper_enemy(enemy, object) return enemy:id() ~= db.actor:id() end Вопрос 2: куда писать? я писал в самый конец дерективы: Special functions for Escape... *5 5.1 - 5.2 : не выполнял поскольку координаты извесны... *5.3 Далее создаём скрипт спавна (создаётся с помощью блокнота) scripts\Luch_add.script В нём будем писать функции! function start_add_spawn() spawn_sniper_one() end function spawn_sniper_one() local x= -181.15849 local y= -20.21801 local z= -151.88803 local level_vertex= 69494 local game_vertex_id= 52 alife():create("esc_luch_spawn",vector():set(x,y,z),level_vertex,game_vertex_id) end function save_variable(variable_name, value) xr_logic.pstor_store(db.actor, variable_name, value) end function load_variable(variable_name, value_if_not_found) return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found) end *5.4 Когда вписали всех наших Снайперов и все функции спавна и внесли их в "список",то добавляем вызов нашей функции в bind_stalker.script в функцию actor_binder:update(delta) перед последнем end'ом этой функции добавляем if sniper_add.load_variable("spawn_sniper",false)==false then sniper_add.start_add_spawn() sniper_add.save_variable("spawn_sniper",true) end Сохраняем!(Вопрос 3: что значит сохраняем?... Я все блокноты при закрытии сохраняю...) *6 Теперь работаем с логикой. в папке configs/scripts создаём папку с sniper_addon , открываем её *6.1 Создаём два фаила sniper_addon_friend_logic.ltx и sniper_addon_enemy_logic.ltx *6.2 открываем sniper_addon_friend_logic.ltx и вписываем туда: ;SNIPER ADDON ;Меченый(Стрелок) [logic] active = remark@search [remark@fire] combat_ignore_cond = {!is_sniper_enemy} radius = 0 anim = hide on_info = {=health_le(0.5)} remark@search wounded = wounded@work sniper = true [remark@search] combat_ignore_cond = true combat_ignore_keep_when_attacked = false anim = hide target = actor on_info = {=see_enemy} remark@fire wounded = wounded@work [smart_terrains] none = true [wounded@work] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false Сохраняем этот фаил и открываем второй и вставляем туда ;SNIPER ADDON ;Меченый(Стрелок) [logic] active = remark@search [remark@fire] combat_ignore_cond = {!is_enemy_actor} radius = 0 anim = hide on_info = {=health_le(0.5)} remark@search wounded = wounded@work sniper = true [smart_terrains] none = true [remark@search] combat_ignore_cond = true combat_ignore_keep_when_attacked = false anim = hide target = actor on_info = {=see_actor} remark@fire wounded = wounded@work [wounded@work] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false Изменено 3 Января 2011 пользователем Luch Поделиться этим сообщением Ссылка на сообщение