Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
А как сделать так, чтобы мутанты не дружили с зомбированными? Просто поменять цифры в game_relations.ltx не получается. По умолчанию прописано мутантам и зомбированным по -5000. Но почему-то у них нейтралитет.
Сообщение отредактировал Winsor - Четверг, 25.06.2020, 22:02
AziatkaVictor, В оригинале используется аж on_info17
Добавлено (25.06.2020, 23:51) --------------------------------------------- Не знаю у кого-то это было, вроде в Народной Солянке, короче как сделать Запрет на всех Level_changer, а также их включение по мере продвижения сюжета на ЗП ?
Функции спавна. Первый тайник с меткой. Второй без. Спавн срабатывает корректно. Рюкзаки правильно заполняются хабаром. Метки ставятся на нужные рюкзаки.
-- 'Создание наградного тайника с заполнением. function create_reward_rukzak(x,y,z,lv,gv,items_tbl) local actor = db.actor local items_table = {"ammo_9x18_fmj","ammo_9x19_fmj","ammo_12x70_buck","ammo_5.45x39_fmj","ammo_5.56x45_ss190","grenade_f1","grenade_rgd5", "bandage","medkit","medkit_army","antirad","drug_booster","drug_coagulant","drug_psy_blockade","drug_antidot","drug_radioprotector","drug_anabiotic", "bread","kolbasa","conserva","vodka","energy_drink"} local sobj=alife():create("reward_rukzak",vector():set(x,y,z),lv,gv) alife():create("use_personal_rukzak",vector(),0,0,sobj.id) if items_tbl~=nil then local parse_first_table=utils.parse_spawns(items_tbl) for k,v in pairs(parse_first_table) do for i=1,v.prob do alife():create(v.section,vector(),0,0,sobj.id) end end end if items_tbl~=nil then for i = 1, math.random(3,6) do alife():create(items_table[math.random(#items_table)],vector(),0,0,sobj.id) end else for i = 1, math.random(6,12) do alife():create(items_table[math.random(#items_table)],vector(),0,0,sobj.id) end end level.map_add_object_spot_ser(sobj.id,"treasure","") xr_effects.send_tip(db.actor,nil,{"st_found_new_treasure","got_treasure"}) end
-- 'Создание тайника с заполнением. function create_treasure_rukzak(x,y,z,lv,gv,items_tbl) local actor = db.actor local items_table = {"ammo_9x18_fmj","ammo_9x19_fmj","ammo_12x70_buck","ammo_5.45x39_fmj","ammo_5.56x45_ss190","grenade_f1","grenade_rgd5", "bandage","medkit","medkit_army","antirad","drug_booster","drug_coagulant","drug_psy_blockade","drug_antidot","drug_radioprotector","drug_anabiotic", "bread","kolbasa","conserva","vodka","energy_drink"} local sobj=alife():create("treasure_rukzak",vector():set(x,y,z),lv,gv) alife():create("use_personal_rukzak",vector(),0,0,sobj.id) if items_tbl~=nil then local parse_first_table=utils.parse_spawns(items_tbl) for k,v in pairs(parse_first_table) do for i=1,v.prob do alife():create(v.section,vector(),0,0,sobj.id) end end end if items_tbl~=nil then for i = 1, math.random(3,6) do alife():create(items_table[math.random(#items_table)],vector(),0,0,sobj.id) end else for i = 1, math.random(6,12) do alife():create(items_table[math.random(#items_table)],vector(),0,0,sobj.id) end end end
Колбек на юзание рюкзака - on_use_box(self.object). Вызывается из generic_physics_binder:use_callback(obj, who) от bind_physic_object.
function on_use_box(box) local box_name=box:section() if (box_name=="deserve_rukzak" or box_name=="reward_rukzak" or box_name=="treasure_rukzak") then local name = box:name() if not has_alife_info(name) then give_info(name) xr_statistic.inc_founded_secrets_counter() news_manager.send_treasure(1) end end if level.map_has_object_spot(box, "treasure") ~= 0 then level.map_remove_object_spot(box, "treasure") end
end
Функция должна при юзании проверить, является ли рюкзак тайником - их 3 вида. Проверить, выдана ли уникальная для каждого конкретного тайника инфопорция. Если поршня нет, то выдать его и засчитать тайник. Это работает корректно. Тайники с метками и без меток засчитываются правильно - один раз. Информация сохраняется после загрузки сейвов.
Еще функция должна проверить, стоит ли на тайнике метка и удалить её. И этот фрагмент не работает.
if level.map_has_object_spot(box, "treasure") ~= 0 then level.map_remove_object_spot(box, "treasure") end
RoboCat, просто на месте левел ченжера поставьте рестриктор, а левел ченжер поставьте в недоступную для игрока зону, и при наличии инфопоршня телепортируйте игрока в левел ченжер
Есть ли какое-то ограничение на количество "on_info" в логике (в одной секции)?
Их может быть много, очень много, больше чем вы можете задействовать... С другой стороны если у вас код требующий огромного их количества, то ваш код скорее всего кривой и нуждается в оптимизации.
Цитатаmolodoy_chelovek ()
Как исправить функцию?
Первым параметром методов level.map_has_object_spot и level.map_remove_object_spot есть ид объекта. Передавайте правильные параметры!
Сообщение отредактировал denis2000 - Пятница, 26.06.2020, 08:23
Как правильно использовать функцию teleport_npc_by_story_id?
=teleport_npc_by_story_id("STORY ID npc (1)":"Полное наименование Waypoint без удаления smart_terrain в начале названия)% (1) Story id прописывается в creatures\spawn_sections_Локация
[Название_NPC]:stalker $spawn = "respawn\Название_NPC" character_profile = Название_NPC spec_rank = master community = stalker story_id = Название_NPC Пример использования: %=teleport_npc_by_story_id(zat_b22_stalker_medic:zat_medic_home_smart_zat_b22_stalker_medic_walk)%
Сообщение отредактировал RoboCat - Пятница, 26.06.2020, 12:13
denis2000, нет, Я хочу сделать логику, что, при поднятии предмета даётся инфопоршень и смс для ГГ. И хочу сделать в логике, так как это удобно, но не знаю, как много предметов придется делать.