ЧИТЕР - КЛУБ
|
|
Vaiteria | Дата: Сб, 01.10.2011, 23:22 | Сообщение # 1 |
Отмеченная Зоной
Пользователи
Сообщений: 1641
| Эта тема для тех, кто хочет своими силами внести в игру свой собственный интерес. Играя в модификации к Сталкеру многие из Вас привыкали к определённому типу оружия, и каково было удивление, когда установив дополнение Вы обнаруживаете что Ваш любимый автомат наносит урона меньше чем обычная двухстволка)) Или критически не хватает денег в начале игры, или Альфовцы не дают выйти со Скадовска, а у Вас в руках всего лишь АК-74.
Спрашивайте, задавайте вопросы, предлагайте свои варианты!
Не забывайте указывать платформу игры и версию установленного мода (если установлен). Если написали пост, но не указали версию - Отредактируйте свой пост (кнопочка "редактировать" под Вашим постом)
Настройки ГГ: [cut=Рюкзак и деньги ГГ при старте новой игры]Способ работает для ЧН\ЗП Рюкзак ГГ хранится в файле gamedata\configs\gameplay\character_desc_general.xml Первыми строчками идёт описание ГГ:
Код <specific_character id="actor" no_random = "1"> <name>st_actor_name</name> <icon>ui_inGame2_Hero</icon> <map_icon x="2" y="5"></map_icon> <team>Actor</team> <supplies> [spawn] \n device_torch \n wpn_binoc \n wpn_knife \n helm_respirator \n stalker_outfit \n grenade_rgd5 = 2 \n wpn_fort_actor \n ammo_9x18_fmj = 3 \n wpn_ak74u \n ammo_5.45x39_fmj = 3 \n bandage = 2 \n antirad = 1 \n medkit = 2 \n bread = 1 \n kolbasa = 1 \n conserva = 2 \n detector_simple \n detector_battery_1 \n </supplies> <money min="2500" max="2500" infinitive="0"/> <class>actor</class> <community>actor</community> <rank>0</rank> <reputation>0</reputation> <visual>actors\stalker_hero\stalker_hero_1</visual> </specific_character> В списке supplies, после строчки [spawn] \n перечислены все предметы, которые будут у ГГ в начале игры. И в этот список можно добавить любой предмет, например добавим ГГ 12 GPS-Проводников и один ремкомплект (добавляем после последней строчки - detector_battery_1 \n):
Код guidebook_mono = 12 \n repair_arms_box \n В SGM поставлена чистка инструментов при начале новой игры и если вы добавите их в список - в рюкзаке они не появятся, т.к. их почистит скрипт. Чтобы отключить чистку инструментов (Внимание: Если вы удалите эту строчку, то инструменты заспавнятся в двойном экземпляре!) необходимо удалить (или заккоментировать знаками --) строчку release_items_by_section("toolkit") в файле scripts\sgm_utils.script (для SGM < v2.2: scripts\sgm_info.script). Cписок предметов на добавление можно взять из файла gamedata\configs\(Список обьектов).txt Также здесь можно поправить кол-во денег у ГГ на начало игры. За это отвечает строчка:
Код <money min="2500" max="2500" infinitive="0"/> min, max - Минимальное и максимальное кол-во денег соответсвенно (деньги выдаются случайно, в промежутке от min до max) infinitive - Сделать деньги бесконечными, 1\0 - Да\Нет соответсвенно.[/cut] [cut=Изменение имени ГГ]Найдем аттрибут st_actor_name в файле configs\text\rus\st_characters.xml:
Код <string id="st_actor_name"> <text>Александр Дегтярев</text> </string> И меняем имя на необходимое. В диалогах к ГГ будут обращаться по старому имени (Александр Дегтярев), поэтому лучше пройтись поиском по файлам и поискать еще упоминания старого имени. Нужна Новая Игра![/cut] [cut=Терминатор в Зоне (бессмертие)]Открываем файл configs\creatures\actor.ltx и правим в нем следующие интересные строчки:
Код [actor_condition] satiety_v = 0.0 ; Скорость уменьшения сытости со временем radiation_v = 100 ; Скорость уменьшения радиации satiety_power_v = 100 ; Увеличение силы при уменьшении сытости satiety_health_v = 0.0001 ; Увеличение здоровья при уменьшении сытости satiety_critical = 0.0 ; Критическое значения сытости (в процентах от 0-1) когда здоровье начианает уменьшаться radiation_health_v = 0.0 ; Уменьшение здоровья при воздействии радиации morale_v = 100 ; Скорость восстановления морали psy_health_v = 100 ; Скорость восстановления psy-здоровья alcohol_v = -100 ; Скорость вывода алкоголя из организма health_hit_part = 0.0 ; Процент хита, уходящий на отнимание здоровья power_hit_part = 0.0 ; Процент хита, уходящий на отнимание силы max_power_leak_speed = 0.0 ; Накопление усталости (макс граница, до которой восстанавливается сила) в секунду игрового времени bleeding_v = 0.0 ; Потеря крови при номинальной ране в секунду wound_incarnation_v = 100 ; Скорость заживления раны min_wound_size = 0.0002 ; Минимальный размер раны, после которого она считается зажившей [/cut] [cut=Спавн предмета в рюкзак ГГ]Открываем файл scripts\ui_main_menu.script Для SGM: Ищем:
Код elseif db.actor~=nil and dik==DIK_keys.DIK_F5 then self:mod_options() Добавляем ниже:
Код elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then give_object_to_actor("Предмет")
Для чистой игры (ТЧ\ЧН\ЗП) и модов на них (Универсальный способ): Ищем:
Код if dik == DIK_keys.DIK_Q then self:OnMessageQuitWin() Добавляем ниже:
Код elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then alife():create("Предмет",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
Все. В игре жмем ESC=>F6=>ESC и у нас в рюкзаке будет лежать предмет. PS: "Предмет" - секция предмета, берем из файла configs\(список объектов).txt[/cut]
Надстройки и заплатки на SGM: [cut=Изменение численности Альфы]Отряды Альфы: Отряды Альфы хранятся в файле configs\misc\squad_descr_extended.ltx Почти весь файл посвящен Альфовцам. К Альфе относятся все секции содержащие в себе слова alfa (например: pri_alfa_squad_2_master, zat_alfa_squad_1_novice). В секциях нас интересует только одна строчка параметра npc:
Код npc = alfa_novice_commander,alfa_novice_specnaz1,alfa_novice_specnaz2,alfa_novice_sniper1,alfa_novice_sniper2,alfa_novice_shotgunner Как видно из значений, в этом (zat_alfa_squad_1_novice) отряде 6 NPC: Командир, 2 Штурмовика, 2 Снайпера и 1 Шотганнер. Вы можете удалить ненужных NPC и добавить новых, но запомните, главное чтобы остался хотя бы 1 NPC в отряде, иначе будет вылет. Настройки спавна Альфы: Отряды Альфы спавнятся и перемещаются посредством smart_terrain. Параметры smart_terrain хранятся в файлах configs\scripts\\smart\_sim_.ltx За кол-во отрядов на smart_terrain отвечает параметр max_population. Чтобы понизить (или повысить) кол-во отрядов Альфы на локации, необходимо уменьшить (или увеличить) значение параметра max_population (max_population должен быть больше 0). Но в этих файлах могут храниться настройки не только Альфы, поэтому вначале поищите в файле строчки содержащие alfa, а потом уже правьте. Также в этих файлах есть строчки вида:
Код spawn_num = {+opt_activate_alfa_force =check_actor_rank(200:350)} 1, 0 Которая непосредственно и производит спавн бойцов. В фигурных скобках хранятся условия для произведения спавна: +opt_activate_alfa_force проверка на то, что у нас разршен спавн Альфы в настройках, а =check_actor_rank(200:350) проверяет наш ранг ГГ (200 < Наш Ранг < 350); При выполнении условий, будет произведен спавн 1 отряда, а при не выполнении - не будет (0 отрядов).[/cut] [cut=Перевооружаем Альфу]Бойцы Альфы описаны в файле configs\gameplay\character_desc_extended.xml Файл с комментариями, Все Альфовцы в самом конце, после большого комментария, который сложно не заметить:
Код <!------------------------------------------=============-------------------------------------------------> <!------------------------------------------'Отряд Альфа'-------------------------------------------------> <!------------------------------------------=============-------------------------------------------------> Их вооружение описывается в теге supplies, подобно рюкзаку ГГ. Так что, как править его смотрите в первом спойлере темы Для примера снабдим штурмовика alfa_novice_specnaz1 автоматом LR-300 с напяленными прицелом и глушителем: Первоначальная секция:
Код <supplies> [spawn] \n device_torch \n wpn_lr300_m1 \n ammo_5.56x45_ss190 = 1 \n wpn_hpsa \n ammo_9x19_fmj = 1 \n grenade_rgd5 = 1 \n wpn_binoc = 1 \n #include "gameplay\character_items_4.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs_3.xml" </supplies> Измененная:
Код <supplies> [spawn] \n device_torch \n wpn_lr300 = 1, scope, silencer \n ammo_5.56x45_ss190 = 1 \n wpn_hpsa \n ammo_9x19_fmj = 1 \n grenade_rgd5 = 1 \n wpn_binoc = 1 \n #include "gameplay\character_items_4.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs_3.xml" </supplies> [/cut] [cut=Где изменить порог починки стволов и брони]У техников: Параметр bad_cond (введен в мод дополнением от Енота) в файле configs\misc\engineer\stalkers_upgrade_info.ltx В ремкомплектах: В файле scripts\ui_mod_elements.script нужно поправить строчки вида:
Код pistol_in_slot:condition()<0.7 rifle_in_slot:condition()<0.7 outfit_in_slot:condition()<0.7 helm_in_slot:condition()<0.7 [/cut] [cut=Достижение на показ SGM тайников]В SGM есть достижение, которое отмечает новые SGM-тайники на миникарте, но 60 тайников "слишком много" для нашего счастья. Давайте исправим это недоразумение на 15. Откроем файл scripts/ui_mod_pda.script и находим функцию achievements_pathfinder_update:
Код function achievements_pathfinder_update() local pre=read_mod_param("stat_taynikov") if pre~=nil and pre>=60 and dont_has_alife_info("sgm_achievements_pathfinder") then give_info("sgm_achievements_pathfinder") inc_mod_param("stat_dostigeniy",1) news_manager.send_tip(db.actor,"st_achievement_pathfinder_text",0,"sgm_achievement_pathfinder",10000,nil,"st_achievement_ti p _ t it l e " ) end end В этой функции нам нужна только 1 строчка: if pre~=nil and pre>=60 and dont_has_alife_info("sgm_achievements_pathfinder") then Меняем 60 на 15 и сохраняем файл. Для полноты картины следует поправить и описание, открываем файл configs\text\rus\SGM_personal_pda.xml и ищем в нем аттрибут st_achievements_need_pathfinder:
Код <string id="st_achievements_need_pathfinder"> <text>Найденых SGM тайников - 60.</text> </string> Тут также правим 60 на 15 и сохраняемся. Все, достижение отредактировано. PS: Остальные SGM-достижения редактируются в этих-же файлах.[/cut] [cut=Как прописать предметы в личный хабар?]Поднимаем флешку (например Назара), но не активируем ее, а сохраняемся и выходим из игры. Находим секцию флешки в файле configs\misc\items\sgm_deserves.ltx
Код [dv_rasvet_nazar_case]:deserve_flash,identity_immunities $spawn = "devices\rasvet_nazar_case" inv_name = st_rasvet_nazar_case_title inv_name_short = st_rasvet_nazar_case_title description = st_rasvet_nazar_case_descr create_deserve_x = 406.352 create_deserve_y = 5.948 create_deserve_z = -118.637 create_deserve_lv = 1357309 create_deserve_gv = 531 deserve_title = st_rasvet_nazar_unpack_title deserve_descr = st_rasvet_nazar_unpack_descr deserve_items = wpn_sig550,ammo_dumdum,20,af_night_star,drug_engine,money_meshochek_1000_5000 И в последнюю строчку (deserve_items) добавляем то, что хотим. Писать в одну строчку, через запятую (в конце запятая не ставится). Сохраняемся, заходим в игру и используем флешку.[/cut] [cut=Бесконечные патроны]Открываем файл scripts\sgm_modules.script и дописываем в самый конец, после копирайта:
Код function get_ammo_for_reload() -- Обработчик для xr_motivator.script if not db.actor then return nil end if db.actor <img src="/.s/sm/2/surprised.gif" border="0" align="absmiddle" alt="surprised" /> bject("ammo_5.45x39_fmj") == nil then create_ammo("ammo_5.45x39_fmj",db.actor <img src="/.s/sm/2/tongue.gif" border="0" align="absmiddle" alt="tongue" /> osition(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id(),30) end end Открываем файл scripts\xr_motivator.script и ищем в нем функцию motivator_binder:update, а уже в ней правим блок:
Код if time_global() - self.last_update > 1000 then sr_light.check_light(object) sgm_modules.get_ammo_for_reload() -- Бесконечные патроны 5.45*39 self.last_update = time_global() end Мы добавили в этот блок строчку sgm_modules.get_ammo_for_reload(), которая и будет проверять наличие (точнее отсутствие) патронов 5.35*39 в нашем рюкзаке, и если она их не найдет - она их нам даст [/cut] [cut=Если пропал НПС с квестовой взрывчаткой в Припяти]В файле scripts\ui_main_menu.script ищем:
Код elseif db.actor~=nil and dik==DIK_keys.DIK_F5 then self:mod_options() Добавляем ниже:
Код elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then give_info("pri_a19_lab_x8_investigated") give_info("pri_a22_scene_done") give_object_to_actor("pri_a25_explosive_charge_item") В игре жмем Esc-F6-Esc и в рюкзаке взрывчатка и метка квеста на двери.[/cut] [cut=Если Нужно выдать одну или несколько инфопорций]В файле scripts\ui_main_menu.script ищем:
Код elseif db.actor~=nil and dik==DIK_keys.DIK_F5 then self:mod_options() Добавляем ниже:
Код elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then give_info("Имя первой инфопорции") give_info("Имя второй инфопорции")... В игре жмем Esc-F6-Esc.[/cut] [cut=Настройки Мода (через файл mod_params.ltx)]Мод можно дополнительно настроить в файле configs\mod_parameters\mod_params.ltx Хотя многих описанных ниже параметров в v2.2 не осталось, они все же используются модом, так что, вникаем
Цена за утилизованные предметы: utilizator_cash_multiplier = 5 ; Множитель на стоимость переработанных утилизатором предметов. Чем больше значение, тем больше денег за переработку получит ГГ
Состояние брони снятой с трупа: marauder_outfit_cond_from = 99 ; Минимальное состояние брони (99 marauder_outfit_cond_before = 100 ; Максимальное состояние брони (100 . marauder_outfit_cond_before > marauder_outfit_cond_from
Грабёж ГГ во фриплее: freeplay_robbery_actor = false ; (true (да) или false (нет)) - Грабить ли ГГ по наступлению фриплея
Респаун баз: respawn_bases_permition = true ; (true (да) или false (нет)) - Производить ли респаун баз(вносимых модом),после их частичного разгрома
Детали для работы с механиками: need_mechanic_details = true ; (true (да) или false (нет)) - Нужны ли детали для работы с механиками.
Отключаем принудиловку сна: max_no_dream_time = 0 ; (Используется если параметр need_actor_dream равен true) - Через каждые max_no_dream_time часов, ГГ будет принудительно засыпать need_actor_dream = false ; (true (да) или false (нет)) - Нужно ли ГГ спать как минимум раз в max_no_dream_time часов
Ранг ГГ: headshot_rank_on_display = true ; (true (да) или false (нет)) - Отображать ли рядом со счетчиком ранга ГГ, счетчик хедшотов. Работает со включенной опцией мода "Вывести на HUD инф. о ранге"
Аномалии: create_anomaly_permition = false ; (true (да) или false (нет)) - Спаунить ли новые аномалии, после начала новой игры. (Если изменить на false, аномалии мода исчезнут, даже если вы уже прошли половину игры). очень жрёт ресурсы, лучше отключить для слабых машин.
Мины: create_mines_permition = true ; (true (да) или false (нет)) - Спаунить ли новые мины, после начала новой игры. (Изменять только до начала новой игры) очень жрёт ресурсы, лучше отключить для слабых машин. mine_traps_radius = 2 ; - Дистанция между ГГ и миной, сокращая которую мина детонирует, можно уменьшить расстояние детонации мины до 2 метров.
Это на ваше усмотрение: can_release_base_members = false ; (true (да) или false (нет)) - Убирать ли торговцев и телохранителей с базы, после её разгрома.
100% Выпадение частей мутантов:
Код [booty_params] boar_prob = 1.0 ; Шанс выпадения части тела кабана. bloodsucker_prob = 1.0 ; Шанс выпадения части тела кровососа. dog_prob = 1.0 ; Шанс выпадения части тела слепого пса. pseudodog_prob = 1.0 ; Шанс выпадения части тела псевдо-собаки. flesh_prob = 1.0 ; Шанс выпадения части тела плоти. chimera_prob = 1.0 ; Шанс выпадения части тела химеры. pseudo_gigant_prob = 1.0 ; Шанс выпадения части тела псевдо-гиганта. burer_prob = 1.0 ; Шанс выпадения части тела бюрера. controller_prob = 1.0 ; Шанс выпадения части тела контроллера. snork_prob = 1.0 ; Шанс выпадения части тела снорка. [/cut]
Мелочи: [cut=Правки по оружию]Характеристики оружия хранятся в ltx-файлах папки \configs\weapons\ Наиболее интересные параметры: visual - Внешний вид cost - Цена (торговцы умножают её на некоторый коэффициент) inv_weight - Вес sprint_allowed - Возможность бега с этим оружием ammo_mag_size - Размер магазина ammo_class - Типы используемых патронов, перечисляем через запятую grenade_launcher_status - Подствольный гранатомет (0 - нет; 1 - есть, несъемный; 2 - есть возможность установить) grenade_class - Тип используемых подствольных гранат, перечисляем через запятую silencer_status - Съемный глушитель (0 - нет; 1 - есть, несъемный; 2 - есть возможность установить) scope_status - Съемный прицел (0 - нет; 1 - есть, несъемный; 2 - есть возможность установить) zoom_enabled - Зум (приближение) scope_zoom_factor - Величина зума scope_texture - Текстура прицельной сетки hit_power - Сила выстрела (менять все четыре значения, чем больше значение - тем больше убойность. Максимальная убойность у гаусса 4.0, можно и больше, но оно вам нужно ) silencer_hit_power - Убойность с глушителем fire_distance - Максимальная дистанция для выстрела в метрах cam_relax_speed - Скорость возврата в исходное положение после выстрела (чем меньше, тем быстрее можно прицелится после выстрела) misfire_condition_k - Порог, после которого оружие может заклинивать (от 0 до 1, чем меньше, тем надежнее ствол) condition_shot_dec - Увеличение износа при каждом выстреле (от 0 до 1, чем меньше, тем меньше изнашивается ствол) fire_modes - Режимы стрельбы (-1 - очередью, 1 - одиночный, 2 - с отсечкой по 2 патрона)[/cut] [cut=Установка детектора целей на интегрированный прицел на примере "Монгола"]Если вписать scope_alive_detector = scope_detector в конфиг оружия то этот параметр будет успешно проигнорирован. Выход в добавлении этой строки в любую секцию апгрейда (например [up_sect_firsta_l85]) и добавление этого апгрейда в ствол по умолчанию (installed_upgrades = up_firsta_l85)[/cut]
[cut=История обновления шапки][table][tr][td]Дата [/td][td]Описание изменений [/td][td]Автор [/td][/tr][tr][td]31.05.12[/td][td]Спойлеры отсортированы по категориям. Статьи подредактированы и приведены к стандарту по оформлению[/td][td]ХОВАН[/td][/tr][tr][td]19.11.12[/td][td]Добавлено описание выдачи инфопорции.[/td][td]denis2000[/td][/tr][/table][/cut]
Здесь обсуждаются вопросы, которые напрямую связаны с читерством в игре. Посты, не связанные напрямую с читерством, будут считаться оффтопом и будут предприняты действия согласно Правилам сайта ( п. 4.12). Ответы на "плохие вопросы" также являются оффтопом; под каждым постом есть кнопочка "Доложить" - лучше нажимайте на нее.
|
|
|
Эти 0 пользователя(ей) поблагодарили Vaiteria за это полезное сообщение: |
|
|
sergej5500 | Дата: Вс, 03.06.2018, 00:45 | Сообщение # 2866 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата wot32 ( ) отряды появляются,но на ГГ не реагируют совсем,это можно исправить или надо все переустанавливать и начинать новую игру?
Такое может быть вызвано несколькими причинами. Нужна дополнительная информация.
Для начала.
Когда вы наводите прицел (курсор) на НПС, то всплывает его имя. И цвет. Какого цвета альфовцы? Красные, зеленые, желтые?
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
wot32 | Дата: Вс, 03.06.2018, 06:51 | Сообщение # 2867 |
Гражданский
Пользователи
Сообщений: 15
| при наведение прицела Альфа красная,но проходит мимо и даже можно подойти и спокойно убить их из пистолета в голову)
жизнь прекрасна и удивительна
|
|
|
Эти 0 пользователя(ей) поблагодарили wot32 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вс, 03.06.2018, 09:37 | Сообщение # 2868 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата wot32 ( ) при наведение прицела Альфа красная,но проходит мимо и даже можно подойти и спокойно убить их из пистолета в голову)
Тогда выложи содержимое файла \gamedata\scripts\xr_combat_ignore
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
wot32 | Дата: Вс, 03.06.2018, 10:17 | Сообщение # 2869 |
Гражданский
Пользователи
Сообщений: 15
| [cut noguest]--[[------------------------------------------------------------------------------------------------------------------ Игнорирование врагов Чугай Александр --------------------------------------------------------------------------------------------------------------------]] local ignored_smart = { zat_stalker_base_smart = true, jup_b41 = true, jup_a6 = true, pri_a16 = true }
fighting_with_actor_npcs = { }
local smarts_by_no_assault_zones = { ["zat_a2_sr_no_assault"] = "zat_stalker_base_smart", ["jup_a6_sr_no_assault"] = "jup_a6", ["jup_b41_sr_no_assault"] = "jup_b41" }
function is_enemy(obj, enemy, st, not_check_sim) if not obj:alive() then return false end --/ SGM in if sgm_callbacks.on_check_npc_enemy(obj,enemy)==false then return false end --/ SGM out if obj:critically_wounded() then return true end if st.enabled == false then return true end local overrides = st.overrides local obj_id = obj:id() local storage = db.storage[obj_id] if storage == nil then return true end storage.enemy_id = enemy:id()
--' Отсеиваем по зоне local active_sector = storage.active_sector if active_sector ~= nil then if sr_danger.check_danger_position(enemy:position(), active_sector) == false then -- obj:enable_memory_object( enemy, false ) return false end end
-- Проверка на зоны комбат игнора возле баз: -- игнорировать если: -- враг не актер. -- сталкер находится в зоне. -- смарт в котором находится сталкер не в состоянии тревоги. if enemy:id() ~= db.actor:id() then for k,v in pairs (smarts_by_no_assault_zones) do local zone = db.zone_by_name[k] if zone and (utils.npc_in_zone(obj, zone) or utils.npc_in_zone(enemy, zone)) then local smart = sim_board.get_sim_board():get_smart_by_name(v) if smart and smart.base_on_actor_control ~= nil and smart.base_on_actor_control.status ~= smart_terrain_control.ALARM then return false end end end end
local se_enemy = alife():object(enemy:id()) if se_enemy ~= nil and se_enemy.m_smart_terrain_id ~= nil and se_enemy.m_smart_terrain_id ~= 65535 then local enemy_smart = alife():object(se_enemy.m_smart_terrain_id) local smart_name = enemy_smart:name() if ignored_smart[smart_name] == true then -- obj:enable_memory_object( enemy, false ) return false end end --printf("checking combat_ignore for stalker[%s] enemy name [%s] in section[%s]",obj:name(), enemy:name(),storage.active_section) --' Если есть оверрайды, то работаем по ним. if overrides and overrides.combat_ignore then local ret_value = xr_logic.pick_section_from_condlist( enemy, obj, overrides.combat_ignore.condlist ) if ret_value == "true" then --printf("pl:Disabling_memory_object[1] for stalker[%s] enemy name [%s] in section[%s]",obj:name(), enemy:name(),storage.active_section) -- obj:enable_memory_object( enemy, false ) return false end return true end return true end ----------------------------------------------------------------------------------------------------------------------
class "action_process_enemy"
function action_process_enemy:__init( obj, storage ) self.object = obj self.st = storage end
function action_process_enemy:enemy_callback( obj, enemy ) --' local obj_pos = self.object:position() --' local ene_pos = enemy:position() --' printf("FOUND ENEMY [%s](%s,%s,%s) -> [%s](%s,%s,%s)", self.object:name(), obj_pos.x, obj_pos.y, obj_pos.z, --' enemy:name(), ene_pos.x, ene_pos.y, ene_pos.z) if enemy:id() == db.actor:id() then fighting_with_actor_npcs[obj:id()] = true end
local is_obj_enemy = is_enemy( obj, enemy, self.st, false ) if is_obj_enemy == true then local se_obj = alife():object(obj:id()) if se_obj and se_obj.m_smart_terrain_id ~= 65535 then local smart_obj = alife():object(se_obj.m_smart_terrain_id) smart_obj:set_alarm()
if enemy:id() == db.actor:id() and smart_obj.base_on_actor_control ~= nil then smart_obj.base_on_actor_control:actor_attack() end end local se_enemy = alife():object(enemy:id()) if se_obj and se_enemy then local sim_obj_registry = simulation_objects.get_sim_obj_registry() if se_obj.group_id ~= 65535 and sim_obj_registry.objects[se_obj.group_id] ~= nil and se_enemy.group_id ~= 65535 and sim_obj_registry.objects[se_enemy.group_id] == nil and se_obj.position:distance_to_sqr(se_enemy.position) > 900 then return false end end end
return is_obj_enemy end
function action_process_enemy:hit_callback(obj, amount, local_direction, who, bone_index) if who == nil then return end
-- printf("_bp: action_process_enemy: hit_callback(): obj='%s'", obj:name()) if amount == 0 then -- Кто-то стрельнул в воздух return end
if who:id() == db.actor:id() then local overrides = self.st.overrides if not overrides or not overrides.combat_ignore_keep_when_attacked then --printf("_bp: action_process_enemy: hit_callback(): obj='%s': SCHEME DISABLED", obj:name()) self.st.enabled = false end end end
---------------------------------------------------------------------------------------------------------------------- -- binder ---------------------------------------------------------------------------------------------------------------------- function add_to_binder( npc, ini, scheme, section, storage ) local new_action = this.action_process_enemy( npc, storage ) storage.action = new_action end
function set_combat_ignore_checker( npc, ini, scheme) local st = xr_logic.assign_storage_and_bind( npc, ini, scheme ) end
function reset_combat_ignore_checker(npc, scheme, st, section) local storage = st.combat_ignore
npc:set_enemy_callback( storage.action.enemy_callback, storage.action )
-- Подписываемся на hit callback-и: xr_logic.subscribe_action_for_events( npc, storage, storage.action )
storage.overrides = xr_logic.generic_scheme_overrides(npc)
storage.enabled = true end
function disable_scheme( npc, scheme ) npc:set_enemy_callback()
-- Отписываемся от hit callback. Это делать обязательно, потому что иначе при переключении на другой набор -- схем, в котором нет перехвата боя, продолжится вызываться callback в старом подписанном action-е. local st = db.storage[npc:id()][scheme] if st then xr_logic.unsubscribe_action_from_events(npc, st, st.action) end end[/cut]
жизнь прекрасна и удивительна
Сообщение отредактировал wot32 - Вс, 03.06.2018, 10:30 |
|
|
Эти 0 пользователя(ей) поблагодарили wot32 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вс, 03.06.2018, 10:47 | Сообщение # 2870 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| wot32,
Тут ничего не нашел. Нужна вся папка gamedata\scripts. Выложи её куда ни будь.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
wot32 | Дата: Пн, 11.06.2018, 18:51 | Сообщение # 2871 |
Гражданский
Пользователи
Сообщений: 15
| Извините за долгий ответ,решил проблему кардинально)))переустановил мод и надстройки,дойду до Затона посмотрю как будет вести себя альфа) Добавлено (11.06.2018, 18:51) --------------------------------------------- Переустановка помогла,значит ранее что то не так сделал,Альфы сейчас много и жутко агрессивна))
жизнь прекрасна и удивительна
|
|
|
Эти 0 пользователя(ей) поблагодарили wot32 за это полезное сообщение: |
|
|
dimabond | Дата: Вт, 12.06.2018, 19:42 | Сообщение # 2872 |
Гражданский
Пользователи
Сообщений: 12
| Доброго времени суток. Играю в S.T.A.L.K.E.R. Диверсант (SGM 2.0 + Geonezis addon). Прошу помощи. Где что нужно подправить, чтобы в Припяти селекционер появлялся не во фриплее, а находился сразу по прибытии в Припять после перехода по Путепроводу "Припять-1" ? Спасибо. P.S. Нужно для улучшения артефакта "Камень жизни" (4-й тип аномальности).
Сообщение отредактировал dimabond - Вт, 12.06.2018, 19:47 |
|
|
Эти 0 пользователя(ей) поблагодарили dimabond за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 13.06.2018, 00:04 | Сообщение # 2873 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| dimabond,
Если мод на основе СГМ, то можно открыть файл gamedata\scripts\sgm_world или sgm_spawner. Не знаю, что в вашей версии.
Найти строку
if has_alife_info("pri_a28_actor_in_zone_stay") and dont_has_alife_info("pri_spawn_breeders") then
Удалить из неё
has_alife_info("pri_a28_actor_in_zone_stay") and
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
dimabond | Дата: Ср, 13.06.2018, 12:32 | Сообщение # 2874 |
Гражданский
Пользователи
Сообщений: 12
| sergej5500, спасибо огромное, работает. Файл назывался sgm_world.script P.S. Только полковник Самойлов появился тоже, вероятно, из-за этой правки (он вроде во фриплее появлялся) ?
Сообщение отредактировал dimabond - Ср, 13.06.2018, 21:47 |
|
|
Эти 0 пользователя(ей) поблагодарили dimabond за это полезное сообщение: |
|
|
Hunter | Дата: Ср, 13.06.2018, 23:45 | Сообщение # 2875 |
Удаленные
| dimabond, так и есть, что-то не там затер.
|
|
|
Эти 0 пользователя(ей) поблагодарили Hunter за это полезное сообщение: |
|
|
sergej5500 | Дата: Чт, 14.06.2018, 00:29 | Сообщение # 2876 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата dimabond ( ) Только полковник Самойлов появился тоже, вероятно, из-за этой правки (он вроде во фриплее появлялся) ?
Да. Они появляются вдвоём.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
dimabond | Дата: Чт, 14.06.2018, 18:54 | Сообщение # 2877 |
Гражданский
Пользователи
Сообщений: 12
| Цитата Hunter ( ) dimabond, так и есть, что-то не там затер. просто открыл через поиск в блокноте, нашел и стер
Цитата sergej5500 ( ) Да. Они появляются вдвоём. Ничего. Для меня главное в этом - селекционер появился. Еще раз спасибо
|
|
|
Эти 0 пользователя(ей) поблагодарили dimabond за это полезное сообщение: |
|
|
SkiT | Дата: Ср, 04.07.2018, 18:51 | Сообщение # 2878 |
Отмычка
Пользователи
Сообщений: 45
| Приветствую, сталкеры.
Такой вопрос. В разных модах (в том числе и в СГМ) в большей или меньшей мере возникают проблемы со, скажем так, переходом НПС в режим агрессии. Допустим, хочешь пострелять группу НПС со снайперки - а они не реагируют на смерти собратьев и спокойно себе и дальше сидят/стоят/лутают убитых. Так как хочется челленжа, это очень раздражает, приходится специально подходить на короткую дистанцию, засвечиваться и стреляться на короткой. Конечно же, теряется смысл в снайперке, портится атмосфера из-за необходимости искусственно аггрить НПС и тд.
Тем не менее, иногда все в порядке. Если мне не изменяет память, в СГМ наемники на заводе на Затоне отлично замечают тебя на довольно большой дистанции. С отрядами Альфа, кажется, так же.
Насколько я знаю, все эти параметры, отвечающие за "огневой контакт", должны легко регулироваться - дистанция, на которой вражеские НПС аггрятся на тебя, если видят, или переход в режим боеготовности/поиска, если не видят, но у них перед носом только что упал замертво их товарищ.
Был бы ооочень благодарен, есди бы кто-то подсказал мне, где можно все это подкрутить. В данный момент играю в мод "Ветер времени" (как и СГМ, на основе ЗП), но буду рад и информации чисто по СГМ, в котором тоже сталкивался с такими проблемами. Очень надеюсь, что эти параметры в большинстве модов находятся в приблизительно одинаковых местах.
Заранее спасибо.
Сообщение отредактировал SkiT - Ср, 04.07.2018, 20:41 |
|
|
Эти 0 пользователя(ей) поблагодарили SkiT за это полезное сообщение: |
|
|
Chessmaster | Дата: Ср, 04.07.2018, 20:43 | Сообщение # 2879 |
Отмычка
Пользователи
Сообщений: 30
| Добрый вечер, сталкеры. Не нашел в этой теме, может плохо искал, не обессудьте. Как начитерить себе электронных денег? хочу у Сыча скупить сразу все тайники.
|
|
|
Эти 0 пользователя(ей) поблагодарили Chessmaster за это полезное сообщение: |
|
|
SkiT | Дата: Пт, 06.07.2018, 11:44 | Сообщение # 2880 |
Отмычка
Пользователи
Сообщений: 45
| Приветствую, сталкеры.
Подскажите, пожалуйста, что нужно подправить, чтобы ужасный ПНВ второго поколения работал как первое поколение. Либо в конкретном комбинезоне, либо в целом в игре - не важно.
Заранее спасибо.
|
|
|
Эти 0 пользователя(ей) поблагодарили SkiT за это полезное сообщение: |
|
|
|