Перейти к контенту

Solditary

Пользователи
  • Число публикаций

    2
  • Регистрация

  • Последнее посещение

  • AMKoin

    200 [Подарить AMKoin]

Баланс оценок

0

Недавние посетители профиля

Блок недавних посетителей отключен и не доступен другим пользователям для просмотра.

  1. Здравствуйте! В travel_manager.script нашел подобную функцию: function squad_action_description(actor, npc, dialog_id, phrase_id) local npc_squad = get_object_squad(npc) if npc_squad.current_action == nil or npc_squad.current_action.name == "stay_point" then return "dm_" .. "stalker" .."_doing_nothing_"..tostring(math.random(1,3)) --npc:character_community() end local target_id = npc_squad.assigned_target_id -- if target_id == nil then -- return "dm_" .. npc:character_community() .."_doing_nothing" -- end local target_obj = alife():object(target_id) if target_obj == nil then abort("SIM TARGET NOT EXIST %s, action_name %s", tostring(target_id), tostring(npc_squad.current_action.name)) end local target_clsid = target_obj:clsid() if target_clsid == clsid.script_actor then abort("Actor talking with squad, which chasing actor") elseif target_clsid == clsid.online_offline_group_s then return "dm_" .. "stalker" .."_chasing_squad_"..alife_character_community(target_obj) --npc:character_community() elseif target_clsid == clsid.smart_terrain then local smart_name = target_obj:name() local travel_class = get_travel_class() local desc = travel_class.smart_to_stringtables[smart_name] if desc == nil then abort("wrong smart name [%s] in travel_manager.ltx", tostring(smart_name)) end return desc end abort("wrong target clsid [%s]", tostring(target_clsid)) end Собстено меня заинтересовала строка: return "dm_" .. "stalker" .."_chasing_squad_"..alife_character_community(target_obj) --npc:character_community() Выдает нам ее НПС когда охотится з отрядом, например за бандитами. Игра обращается к функции "alife_character_community()" (_g.script) и должна вернуть значение "bandit" и выдать "dm_stalker_chasing_squad_bandit", однако игра не правильно определяет группировку отряда и возвращает всегда значение "monster" и на выходе всегда получается "dm_stalker_chasing_squad_monster" function alife_character_community (obj) if IsStalker(obj, obj:clsid()) then return obj:community() end return "monster" end Находил в _g.script подобное: function start_game_callback() aa = alife() squad_community_by_behaviour = { ["stalker"] = "stalker", ["bandit"] = "bandit", ["dolg"] = "dolg", ["freedom"] = "freedom", ["army"] = "army", ["ecolog"] = "ecolog", ["killer"] = "killer", ["zombied"] = "zombied", ["monolith"] = "monolith", ["monster"] = "monster", ["monster_predatory_day"] = "monster", ["monster_predatory_night"] = "monster", ["monster_vegetarian"] = "monster", ["monster_zombied_day"] = "monster", ["monster_zombied_night"] = "monster", ["monster_special"] = "monster" } ... Вот как раз эти группировки отряда должна определять игра. Так вот вопрос: как заставить игру определить группировку преследуемого отряда? Пробовал вместо "alife_character_community(target_obj)" вставить это: "npc_squad:get_squad_community(target_obj)", и игра в таком случае определяет группировку НПС, с которым говорит игрок, а не группировку преследуемого отряда.
  2. Solditary

    Lost Alpha - Правки и модификации

    Здравствуйте! Нашел в конфигах мода файл, по пути "lost_alpha\\respawn\\population_ctrl.ltx", который подключен к скрипту "se_respawn". Вот нашел его упоминание в скрипте: Я прекрасно понял, что population_ctrl.ltx отвечает за численность сталкеров и мутантов на локациях, однако меня смущает тот факт, что в файле численность меняется исключительно для мутантов, а для сталкер так и остается значение равное "0": Однако же "нулевое" значение никак не ограничивает респавн сталкеров(на сколько я помню). Тогда выходит, что в строке "for i = 0, ltx:line_count(sLvName) - 1 do" нулевое значение становиться "-1", которое означает "'не лимитированный' спавн" ? Что-то я запутался, помогите разобраться, пожалуйста!

AMK-Team.ru

×
×
  • Создать...