Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 (изменено) Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском.Возможно, ответ на Ваш вопрос уже есть.Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. Изменено 23 Февраля 2016 пользователем warwer 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
LunInFog 1 Опубликовано 1 Мая 2022 Поделиться Опубликовано 1 Мая 2022 @mole venomous , спасибо за ответ! Уже находил этот код на другом сайте с тем же readme, но до конца не понял. Раз тут посоветовали, то сел дальше его изучать и заметил, что он использует методы, которые, если я правильно понял, не являются стандартными для чистого SoC без модов. Например в строке "amk.convert_npc[id] = true". Поиск метода convert_npc по файлам gamedata папок, которые я сейчас использую ("config", "scripts", "sounds", "spawns", "textures") не дал результата. То же самое и с методами "read_stalker_params", "write_stalker_params". Не нашёл в lua_help.script: updhealth; killerid; game_death_time[number]; skeleton_flags; Стандартные: heart:parent() - насколько я понял, возвращает родителя для объекта (артефакта). Если он лежит в трупе, то это мёртвый NPC. class game_object {}. function id() - class game_object {} по lua_help.script, возвращает id объекта. level.main_input_receiver() - возвращает текущее активное окно. alife() - класс alife_simulator - получаем сам объект класса alife_simulator. function set_switch_online(number, boolean) - class alife_simulator {} - видимо установить статус онлайн объекта с идентификатором id при boolean = true (перевести объект в онлайн). set_switch_offline(id, boolean) - class alife_simulator {} - установить статус оффлайн объекта с идентификатором id при boolean = true (перевести объект в оффлайн). level.object_by_id(number) - клиентский объект по его id. Возвращает nil, если объект не в онлайне или не существует. Пространство имён level. function object() - class entity_action {} - ??? property health - class game_object {} - параметр "здоровье" объекта?.. function log(string) - ?.. (логирование куда-то?) @AndreySol понял. all.spawn уже распакованным болтается, но через него манипуляций пока не пробовал проводить, только изучал структуру. Получается, мне нужен файл, полученный из all.spawn, с префиксом "alife_", далее номер уровня и имя нужной локации с NPC ("alife_l05_bar.ltx"). В нём я уже находил секцию Петренко. Вот её код. Скрытый текст ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [7212] ; cse_abstract properties section_name = stalker_trader name = bar_dolg_petrenko position = 207.565994262695, 0.429977655410767, 60.4622344970703 direction = 0, 1.57078814506531, 0 id = 65535 version = 118 script_version = 6 spawn_id = 3434 ; cse_alife_trader_abstract properties money = 5000 character_profile = bar_dolg_petrenko ; cse_alife_object properties game_vertex_id = 1203 distance = 9.8000002 level_vertex_id = 50435 object_flags = 0xfffffff7 custom_data = <<END [smart_terrains] none = true [logic] cfg = scripts\bar_petrenko.ltx END story_id = 506 ; cse_visual properties visual_name = actors\dolg\stalker_do_balon_3 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 5 g_group = 4 dynamic_out_restrictions = dynamic_in_restrictions = ; cse_alife_monster_abstract properties equipment_preferences = 2, 0, 2, 1, 1 main_weapon_preferences = 2, 2, 2, 0 ; cse_ph_skeleton properties ; se_stalker properties upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = 207.565994262695, 0.429977655410767, 60.4622344970703 upd:o_torso = 1.57078814506531, 0, 0 upd:g_squad = 5 upd:g_group = 4 ; cse_alife_human_stalker properties upd:start_dialog = ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; И в таком случае номером секции будет являться число в квадратных скобках "[]" = 7212? Думал, что это служебный ID, который присваивает перепаковщик, чтобы корректно запаковывать потом all.spawm обратно и сама игра про него не знает. Файл "alife_l05_bar.ltx" нужно куда-то подсовывать игре, или в директории игры вообще может не быть распакованного "all.spawn", и игра уже знает про номер секции, хоть этот ID и не имеет отношения к ID объекта? И, получается, раз есть функция для спавна по номеру секции, если про него знает игра, то возможно есть функция спавна по имени объекта (name = bar_dolg_petrenko)? Как только попробую оба способа, отпишусь. Ссылка на комментарий
mole venomous 3 248 Опубликовано 1 Мая 2022 Поделиться Опубликовано 1 Мая 2022 5 часов назад, LunInFog сказал: не являются стандартными для чистого SoC без модов Да, тебе нужна скриптовая база АМК, а именно файл amk.script. оригинальный 1 Здесь могла быть ваша реклама. Ссылка на комментарий
AndreySol 215 Опубликовано 2 Мая 2022 Поделиться Опубликовано 2 Мая 2022 @LunInFog В описании из Справочника по ф-циям и классам кажись ошибка - не номер секции нужен, а параметр spawn_id = ххх. Проверь, у меня такой спавн работает без проблем: local obj = alife():create(389) -- 389 - spawn_id какой-то псины на кордоне 1 Ссылка на комментарий
StrelokCj 0 Опубликовано 3 Мая 2022 Поделиться Опубликовано 3 Мая 2022 Подскажите, как в АМК 1.4.1 вернуть выбросы во фриплее? Код ниже в файле amk_mod.script комментировал (по совету ранее в теме), но выбросов так и не появилось. Хотя судя по коду в условии прописаны выбросы когда игрок на территории ЧАЭС. if bt==2 and amk.load_variable("freeplay",0)~=2 then return end Ссылка на комментарий
killersan6 184 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 А может кто пояснить за расчет шанса осечки в ТЧ? Я вики почитал, но белых пятен все равно много. Ссылка на комментарий
aromatizer 4 409 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 misfire_probability и misfire_condition_k позволяют настроить конфиг оружия вплоть до осечки при каждом выстреле. 1 Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
dsh 3 820 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 @killersan6 из того, что помню прямо сейчас: если состояние >= 0.95, то осечка даже не считается. Если меньше, то используется хитрая формула, которую я без поиска по исходниками не скажу. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
killersan6 184 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 @aromatizer Да я знаю, меня формула расчета интересует.@dsh Если будет в свободное время возможность посмотреть в сурцах - буду крайне признателен! Ссылка на комментарий
Купер 2 684 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 (изменено) @killersan6 , Скрытый текст float CWeapon::GetConditionMisfireProbability() const { if( GetCondition()>0.95f ) return 0.0f; float mis = misfireProbability+powf(1.f-GetCondition(), 3.f)*misfireConditionK; clamp(mis,0.0f,0.99f); return mis; } Не оно? Weapon.cpp И дальше выборка рандом: Скрытый текст BOOL CWeapon::CheckForMisfire () { if (OnClient()) return FALSE; float rnd = ::Random.randF(0.f,1.f); float mp = GetConditionMisfireProbability(); if(rnd < mp) { FireEnd(); bMisfire = true; SwitchState(eMisfire); return TRUE; } else { return FALSE; } } Изменено 5 Мая 2022 пользователем Купер Ссылка на комментарий
aromatizer 4 409 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 2 минуты назад, killersan6 сказал: меня формула расчета интересует. Какой результат хочешь получить в игре? Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
killersan6 184 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 @aromatizer Частоту поломок хочу грамотно увеличить.@Купер Да, похоже это оно. Спасибо! Ссылка на комментарий
aromatizer 4 409 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 1 час назад, killersan6 сказал: Частоту поломок хочу грамотно увеличить. Тогда надо еще и condition_shot_dec править. Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
killersan6 184 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 @aromatizer А причем тут этот параметр вообще? Он на шанс осечки никак не влияет. Ссылка на комментарий
aromatizer 4 409 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 Влияет на частоту осечек: если количество выстрелов до полного износа велико, то осечки случаются реже, а если мало, то - чаще. Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
killersan6 184 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 @aromatizer О чем ты вообще? Вон выше человек выложил формулу расчета прям из сурцов, там все просто и понятно. Ссылка на комментарий
aromatizer 4 409 Опубликовано 5 Мая 2022 Поделиться Опубликовано 5 Мая 2022 Главное - чтобы тебе нравилось... Даже если изобретаешь велосипед.) Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
андрей дронав 17 Опубликовано 10 Мая 2022 Поделиться Опубликовано 10 Мая 2022 (изменено) Народ подскажите, как в ТЧ повысить иммунитет квестовым нпс, без ковыряние all.spawn, и конфинга Сахарова Изменено 10 Мая 2022 пользователем андрей дронав Ссылка на комментарий
mole venomous 3 248 Опубликовано 11 Мая 2022 Поделиться Опубликовано 11 Мая 2022 @андрей дронав в файле creatures\immunities.ltx есть секции, вырвал кусок кода для примера (не из оригинала): Скрытый текст ;-- Секции иммунитетов сталкеров к повреждениям ;-- Различаются по степени защищённости, т.е. по одетому костюму ;-- Будет привязано к костюмам в config\models\capture\.ltx (а то, в свою очередь, прописано в меше самой модели) [no_resistance] burn_immunity = 0.0 strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 1.0 radiation_immunity = 1.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 1.0 fire_wound_immunity = 1.0 [low_resistance] burn_immunity = 0.0 strike_immunity = 0.90 shock_immunity = 0.75 wound_immunity = 0.90 radiation_immunity = 0.0 telepatic_immunity = 0.90 chemical_burn_immunity = 0.75 explosion_immunity = 0.90 fire_wound_immunity = 0.90 [medium_resistance] burn_immunity = 0.0 strike_immunity = 0.81 shock_immunity = 0.60 wound_immunity = 0.81 radiation_immunity = 0.0 telepatic_immunity = 0.81 chemical_burn_immunity = 0.60 explosion_immunity = 0.81 fire_wound_immunity = 0.81 [high_resistance] burn_immunity = 0.0 strike_immunity = 0.72 shock_immunity = 0.0 wound_immunity = 0.72 radiation_immunity = 0.0 telepatic_immunity = 0.72 chemical_burn_immunity = 0.0 explosion_immunity = 0.45 fire_wound_immunity = 0.72 [monolit_resistance] burn_immunity = 0.0 strike_immunity = 0.64 shock_immunity = 0.0 wound_immunity = 0.45 radiation_immunity = 0.0 telepatic_immunity = 0.0 chemical_burn_immunity = 0.0 explosion_immunity = 0.30 fire_wound_immunity = 0.64 [immortal_resistance] burn_immunity = 0.0 strike_immunity = 0.0 shock_immunity = 0.0 wound_immunity = 0.0 radiation_immunity = 0.0 telepatic_immunity = 0.0 chemical_burn_immunity = 0.0 explosion_immunity = 0.0 fire_wound_immunity = 0.0 Можешь добавлять свои. Нужен сверхживучий НПС, одеваешь на него уникальный броник, к которому прикручены нужные иммунитеты. 1 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Купер 2 684 Опубликовано 11 Мая 2022 Поделиться Опубликовано 11 Мая 2022 @андрей дронав Скрытый текст Вообще, по хорошему, если уж делать, то лучше сразу нормально. 1 1 2 Ссылка на комментарий
андрей дронав 17 Опубликовано 11 Мая 2022 Поделиться Опубликовано 11 Мая 2022 (изменено) Есть ещё вопрос. Заменил .ogf модель антирада. при покупке/спавне в рюкзак и выбрасывании на землю никаких проблем, модель та самая, но антирады которые спавнятся при НИ на открытой местности, используют старую модель. Например в кладовке Борова, лежат ПЫСовские модели. Такое не только с антирадами. Что я упустил? Изменено 11 Мая 2022 пользователем андрей дронав Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти