Перейти к содержанию

makdm

Разработчики
  • Публикаций

    612
  • Зарегистрирован

  • Посещение

  • Победитель дней

    6

Весь контент makdm

  1. Медленно... Для вдумчивого прочтения.... Любую цивилизацию, а впрочем и весь мир в целом, движет вперёд пассионарное меньшинство. Благами этого меньшинства пользуется пассивное большинство. Причем, пользуясь благами, это большинство ещё и ругает меньшинство и выставляет ему различные претензии. Но вы ВСЕ и ВСЕГДА будете зависеть от НАС.
  2. Привет, всем! Мод выложен по принципу - "Как есть". Никаких дополнений и и правок не будет. Автор об этом Вас всех проинформировал. В чем проблема? Не нравится - не играем. Нравится - исправляем баги сами и рисуем патчи. Этот принцип был ещё реализован с мода SGM - 2.2 в далеком 2012 году. Я сам "рисовал" исправления багов мода SGM - 2.2 и выкладывал в сеть. Автор всегда прав!!! Это нужно запомнить раз и навсегда.
  3. Нескромный вопрос. А зачем вам нужен этот оригинальный, но давно устаревший способ, когда есть другие способы неограниченного сохранения данных?
  4. В Сталкере у каждого бага есть фамилия, имя и отчество. Канона не существует. Каждый разработчик рисует те баги - на какие он горазд.
  5. Для этого объект нужно прописать в файле dynamic_objects.ltx Указать кость фиксации. Тогда вы его уже ничем не сдвинете. Функция спавна была есть и будет только одна. на все серии Сталкера:: function create(alife_simulator*, number); function create(alife_simulator*, string, const vector&, number, number, number); function create(alife_simulator*, string, const vector&, number, number);
  6. В ЗП для этого нужно использовать схему в файле xr_heli_hunter.script
  7. У меня установлен SDK. Но я не спавню вертушку через него. Зачем? Чтобы сидел где-то под локацией и "жрал" ресурсы на обработку его логики? Все делается скриптом. В логике рестриктора в нужный момент вызываем спавн вертушки. function spawn_esc_heli( actor, npc ) spawn_net_objects.spawn_helicopter("esc_a5_heli_dawn", "[logic]\ncfg = scripts\\escape\\esc_helicopter_1.ltx") end В файле spawn_net_objects. script пишем функцию спавна Ну и логика вертушки , как видно из вызова функции, в файле scripts\escape\esc_helicopter_1.ltx
  8. Скадовск тут совсем ни при чем. За то, чтобы вести войну или игнорить её, отвечает xr_combat_ignore.script Что туда воткнете, то и будет. Туда можно прописывать смарты, на которые нельзя нападать, и зоны, в которых запрещено вести боевые действия.
  9. Попробуй так ( сам не проверял ). Пусть есть сквад с секцией [bandit_squad]:online_offline_group В файле se_squad_group.script меняешь метод. Вместо function se_squad:can_switch_offline() return cse_alife_online_offline_group.can_switch_offline(self) end Пишешь function se_squad:can_switch_offline() if self:section_name() == "bandit_squad" then return false end return cse_alife_online_offline_group.can_switch_offline(self) end Потом расскажешь что получилось.
  10. Это риторический вопрос. Сколько программистов, столько и мнений по написанию кода. Это на олимпиаде вы будете считать такты процессора. Здесь это не важно. Каждый делает так, как ему УДОБНЕЕ. В данном случае, важен только результат.
  11. Не проставлены флаги, вот ваш НПС и тупит. Вот так сделано у меня и все работает на отлично:
  12. Ошибка в функции передачи предмета. Правильный пример для передачи НПС двух бутылок водки: function actor_gave_vodka( first_speaker, second_speaker ) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "vodka", 2 ) end
  13. В точке look Например : wp00|a=sleep или wp00|a=rest Файл lua.script, возможные анимации const attack = 7; const capture_prepare = 1; const danger = 0; const eat = 4; const free = 1; const lie_idle = 3; const look_around = 8; const panic = 2; const rest = 6; const sit_idle = 2; const sleep = 5; const stand_idle = 0; const turn = 9;
  14. function transfer_box_inventory_to_actor( actor, npc, p ) local out_box = get_story_object( p[ 1 ] ) local function relocate( out_box, item ) out_box:transfer_item( item, actor ) end out_box:iterate_inventory_box( relocate, out_box ) end
  15. Тогда самый примитив: В файлах bind_monster.script и xr_motivator.script в методе update(delta) обоих файлов прописать local radius = 20 * 20 --радиус проверки. Есть ли ГГ в этом радиусе. Здесь радиус 20 метров. Можно менять. if db.actor and get_object_story_id( self.object:id() ) ~= nil then local actor = db.actor if self.object:position():distance_to_sqr( actor:position() ) <= radius then if not has_alife_info( "actor_neer_quest_npc" ) then actor:give_info_portion( "actor_neer_quest_npc" ) end elseif has_alife_info( "actor_neer_quest_npc" ) then actor:disable_info_portion( "actor_neer_quest_npc" ) end end Здесь выдается и забирается инфопорция - actor_neer_quest_npc
  16. Абсолютно не корректный вопрос. Что такое квестовый НПС? В оригинальном ЗП под квестовым НПС имелся ввиду НПС, имеющий стори_айди( story_id ). Все остальные НПС, не имеющие story_id, считались расходным материалом, на который можно не заморачиваться. Что вы вкладываете в понятие - квестовый НПС? В зависимости от этого, возможно будет и решение.
  17. Ещё в 2015 году в Моде Припять. Точка Отсчета переделал на отдельную схему. Файлы: modules.script, bind_heli.script, heli_combat.script Логику вертушки можно посмотреть в файле - ost_heli_8. ltx
  18. Ну так вы же создаете сцену! К примеру конкретный сквад Долга [dolg_squad] атакует конкретный сквад Монолита [monolith_squad] В секции сквада Долга пишите on_death = %+monolith_squad_win% В секции сквада Монолита пишите on_death = %+dolg_squad_win% Дальше в логике рестриктора проверяете кто кого конкретно завалил и выполняете нужное вам действие [sr_idle@1] on_info = {+monolith_squad_win} sr_idle@2 %=действие при победе Монолита% on_info2 = {+dolg_squad_win} sr_idle@2 %=действие при победе Долга% [sr_idle@2] А вы как хотели?
  19. в каждую секцию сквада можно прописать параметр on_death Вот тут и прописывайте все что хотите в случае гибели сквада.
  20. Так же как и любой другой объект в Сталкере. По его ID. Получить ID можно через story_id.