Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Hind 29 Опубликовано 8 Ноября 2022 Поделиться Опубликовано 8 Ноября 2022 @Куперстранно, я вроде же назначал эти состояния для работ.. Там суть в чем - при выполнении условия 3 - все нпс гулага идут на работы (karaul1, karaul2, тд), там идёт типа тревоги. А 4 состоянии надо чтобы нпс стоял на посту, и стоял до тех пор пока не получит инфу о старте задания игрока, тогда он уйдет на какую нибудь другую работу Да нет, точно же прописал.. Скрытый текст table.insert(sj, t) t = { section = "logic@esc_blokpost_karaul1", idle = 0, prior = 99, state = {3}, position_threshold = 100, online = true, in_rest = "", out_rest = "escape_blockpost_zone" } table.insert(sj, t) t = { section = "logic@esc_blokpost_karaul2", idle = 0, prior = 99, state = {3}, position_threshold = 100, online = true, in_rest = "", out_rest = "escape_blockpost_zone" } table.insert(sj, t) t = { section = "logic@esc_blokpost_karaul3", idle = 0, prior = 99, state = {3}, position_threshold = 100, online = true, in_rest = "", out_rest = "escape_blockpost_zone" } table.insert(sj, t) t = { section = "logic@esc_blokpost_karaul4", idle = 0, prior = 99, state = {3}, position_threshold = 100, online = true, in_rest = "", out_rest = "escape_blockpost_zone" } table.insert(sj, t) t = { section = "logic@esc_blokpost_karaul5", idle = 0, prior = 99, state = {3}, position_threshold = 100, online = true, in_rest = "", out_rest = "escape_blockpost_zone" } table.insert(sj, t) t = { section = "logic@esc_blokpost_karaul6", idle = 0, prior = 99, state = {3}, position_threshold = 100, online = true, in_rest = "", out_rest = "escape_blockpost_zone" } table.insert(sj, t) t = { section = "logic@esc_blokpost_karaul7", idle = 0, prior = 99, state = {3}, position_threshold = 100, online = true, in_rest = "", out_rest = "escape_blockpost_zone" } table.insert(sj, t) t = { section = "logic@esc_blokpost_karaul8", idle = 0, prior = 99, state = {3}, position_threshold = 100, online = true, in_rest = "", out_rest = "escape_blockpost_zone" } table.insert(sj, t) t = { section = "logic@esc_blokpost_karaul9", idle = 0, prior = 99, state = {3}, position_threshold = 100, online = true, in_rest = "", out_rest = "escape_blockpost_zone" }end Hind Upgrade Mod Ссылка на комментарий
imcrazyhoudini 203 Опубликовано 8 Ноября 2022 Поделиться Опубликовано 8 Ноября 2022 @Sikorskyi спасибо конечно, но у меня другой скрипт погоды, и я знаю как там вставить проверку на рендер, но не знаю как заставить использовать другую погоду. ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Hind 29 Опубликовано 8 Ноября 2022 Поделиться Опубликовано 8 Ноября 2022 Кто нибудь знает, как отследить попадание по актору? Идея в том чтобы при попадании, героя неслабо так штормило. Как сделать такую функцию я знаю, а как сделать так чтобы при попадании она активировалась, вот вопрос... Была идея сделать через db.actor.health < 1.0, но ведь в таком случае, при здоровье меньше чем 1.0 актора всегда будет штормить, что не есть правильным. Hind Upgrade Mod Ссылка на комментарий
imcrazyhoudini 203 Опубликовано 8 Ноября 2022 Поделиться Опубликовано 8 Ноября 2022 @Hindhttp://stalkerin.gameru.net/wiki/index.php?title=SoC._Критическое_ранение ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Купер 2 803 Опубликовано 8 Ноября 2022 Поделиться Опубликовано 8 Ноября 2022 Не-а, здесь лучше. AMK-mod . Желающие могут сравнить результаты. 1 Ссылка на комментарий
dsh 3 824 Опубликовано 8 Ноября 2022 Поделиться Опубликовано 8 Ноября 2022 А ещё посмотрите на год публикации и таки последуйте моему совету, кажется я это уже писал, прочитайте здешние темы от начала и до конца. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Norman Eisenherz 302 Опубликовано 8 Ноября 2022 Поделиться Опубликовано 8 Ноября 2022 35 minutes ago, dsh said: прочитайте здешние темы от начала и до конца Страница 1180 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Hind 29 Опубликовано 8 Ноября 2022 Поделиться Опубликовано 8 Ноября 2022 Скрытый текст function delete_conserva() local se_obj = alife():object("conserva") if se_obj then alife():release(se_obj, true) end alife():create("bad_conserva", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end function delete_bread() local se_obj = alife():object("bread") if se_obj then alife():release(se_obj, true) end alife():create("bad_bread", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end function delete_mre() local se_obj = alife():object("mre") if se_obj then alife():release(se_obj, true) end alife():create("bad_mre", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end function delete_oreshki() local se_obj = alife():object("oreshki") if se_obj then alife():release(se_obj, true) end alife():create("bad_oreshki", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end function delete_olives() local se_obj = alife():object("olives") if se_obj then alife():release(se_obj, true) end end function delete_kolbasa() local se_obj = alife():object("kolbasa") if se_obj then alife():release(se_obj, true) end alife():create("bad_kolbasa", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end function delete_syrok() local se_obj = alife():object("syrok") if se_obj then alife():release(se_obj, true) end alife():create("bad_syrok", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end function bad_food() if db.actor.radiation > 0.2 then HUM.delete_syrok() HUM.delete_bread() hum.delete_kolbasa() end if db.actor.radiation > 0.6 then HUM.delete_conserva() HUM.delete_olives() HUM.delete_oreshki() end if db.actor.radiation > 0.9 then HUM.delete_mre() end end Кто нибудь подскажите, что блин не так с этими функциями? Из-за них происходит вылет на каком то моменте игры. Функции delete_вещь предназначены для удаления нормальной еды и добавления испорченной. И, это, может кто знает функцию на убирание (отключение)/ доставание оружия? Hind Upgrade Mod Ссылка на комментарий
Norman Eisenherz 302 Опубликовано 8 Ноября 2022 Поделиться Опубликовано 8 Ноября 2022 • Для удаления требуется не секция предмета, а его имя, то есть "секция + id" (номер спавна), например "medkit12531". Можно просто id. • Удалять можно и даже нужно одной функцией, в которой имя или id будут аргументом. Обязательно надо убедиться, что этот же объект не удаляется какой-то другой штатной или новой функцией – причина вылетов может быть именно в этом. • Спавнить тоже можно через одну функцию с аргументом в виде секции (про нули вместо координат уже писал – будь ленивым). • Можно совместить переспавн в одну функцию: проверить секцию, получить id объекта, добавить "_bad", отспавнить новый объект, удалить старый. Примерно так: Spoiler (перебор инвентаря или какой-то еще способ получить ссылку на объект) if obj then local sect = obj:section() if sect == "medkit" then local id = obj:id() alife():create(sect .. "_army", vector(), 0, 0, 0) alife():release( alife():object(id) ) end end Оружие: db.actor:hide_weapon() и restore_weapon(). Ориентир для поиска: [xr_effects.script], самое начало. Там же отключение интерфейса и управления. 1 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
mole venomous 3 330 Опубликовано 11 Ноября 2022 Поделиться Опубликовано 11 Ноября 2022 (изменено) Вопрос по OGSR. Коллбэк level_changer_action обрабатывается, когда ГГ в зоне ЛЧ, если правильно понимаю. Есть вариант "задержки" вывода окна с выбором перехода на другую локацию? Возможно ли организовать это скриптово, использовав, например: Скрытый текст level.add_call( function() log3( "condition" ) return true end, function() log3( "action" ) end ):set_pause( 3000 ) зы Нужно для автосейвов. Что бы создать адекватную паузу, прежде, чем игрок нажмёт "Да/Нет" в окне выбора. Изменено 11 Ноября 2022 пользователем mole venomous Здесь могла быть ваша реклама. Ссылка на комментарий
dsh 3 824 Опубликовано 11 Ноября 2022 Поделиться Опубликовано 11 Ноября 2022 1 hour ago, mole venomous said: Коллбэк level_changer_action обрабатывается, когда ГГ в зоне ЛЧ, если правильно понимаю. Да. И каждые пять секунд, когда он остается в внутри ЛЧ, насколько я вижу. 1 hour ago, mole venomous said: Есть вариант "задержки" вывода окна с выбором перехода на другую локацию? Нет, насколько я вижу. Есть возможность получить доступ к этому окну до того, как оно будет показано и что-то с ним сделать. Я, к примеру, меняю текст этого окна, что бы там было название локации, куда ведёт этот переход. 1 hour ago, mole venomous said: Возможно ли организовать это скриптово, использовав, например: В этом примере ты всего-лишь отложил вызов своих функций на три секунды. Коллбек и показ окна друг от друга никак не зависят. Теоретически, ты можешь попробовать что-то с ним сделать. Не знаю, скрыть например, на следующем апдейте после коллбека, т.к. сразу же после вызова коллбека вызывается показ этого окна. Т.е. на следующем апдейте это окно будет уже показано. Или не скрыть, а поменять его позицию из коллбека, что бы оно было показано за пределами экрана. 1 hour ago, mole venomous said: Нужно для автосейвов. Как это связано с автосейвами? Складывается впечатление, что ты пытаешь костылями решить следствие какой-то проблемы, вместо того, что бы решить саму проблему. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
mole venomous 3 330 Опубликовано 11 Ноября 2022 Поделиться Опубликовано 11 Ноября 2022 (изменено) 27 минут назад, dsh сказал: Как это связано с автосейвами? Я сделал сейвы типа "Покидаю уровень ...level_name", однако предположил, что сейв - нажатие кнопки "Да" - загрузка и всё это за короткое время - не есть хорошо для сейва. В любом случае, игра встаёт на паузу, можно просто выждать пару секунд и соглашаться на переход. Изменено 11 Ноября 2022 пользователем mole venomous Здесь могла быть ваша реклама. Ссылка на комментарий
imcrazyhoudini 203 Опубликовано 11 Ноября 2022 Поделиться Опубликовано 11 Ноября 2022 xr_gulag.script: Скрытый текст level_groups = {l01_escape = 1, l02_garbage = 2, l03_agroprom = 3, l03u_agr_underground = 4, l04_darkvalley = 5, l04u_labx18 = 6, l05_bar = 7, l06_rostok = 8, l07_military = 9, l08_yantar = 10, l08u_brainlab = 11, l10_radar = 12, l10u_bunker = 13, l11_pripyat = 14, l12_stancia = 15, l12u_sarcofag = 16, l12u_control_monolith = 17, l12_stancia_2 = 18} Кто знает, за что это отвечает? ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Купер 2 803 Опубликовано 11 Ноября 2022 Поделиться Опубликовано 11 Ноября 2022 "Чтобы не ходили через Бар" https://www.amk-team.ru/forum/topic/13078-prozektorskaya/?do=findComment&comment=1234785 В самом общем случае. 1 Ссылка на комментарий
imcrazyhoudini 203 Опубликовано 11 Ноября 2022 Поделиться Опубликовано 11 Ноября 2022 (изменено) Накидал такое, в оригинале в принципе так же было: Скрытый текст function go_arena(npc, actor) local point = patrol("zavros_gg_arena_walk") local look = patrol("zavros_gg_arena_look") db.actor:set_actor_position(point:point(0)) local dir = look:point(0):sub(point:point(0)) db.actor:set_actor_direction(-dir:getH()) inv_box_2 = level_object_by_sid (5629) out_object = actor in_object = inv_box_2 actor:inventory_for_each(transfer_object_item) local spawn_items = {} if has_alife_info("bar_flash_start") then table.insert(spawn_items, "novice_outfit") table.insert(spawn_items, "wpn_bm16") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "wpn_pm") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") db.actor:activate_slot(2) elseif has_alife_info("bar_boar_start") then table.insert(spawn_items, "novice_outfit") table.insert(spawn_items, "wpn_toz34") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "wpn_fort") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") db.actor:activate_slot(2) elseif has_alife_info("bar_zombied_start") then table.insert(spawn_items, "bandit_outfit") table.insert(spawn_items, "wpn_wincheaster1300") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "wpn_beretta") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") db.actor:activate_slot(2) elseif has_alife_info("bar_psy_start") then table.insert(spawn_items, "stalker_outfit") table.insert(spawn_items, "wpn_ak74u") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "wpn_glock") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") db.actor:activate_slot(2) elseif has_alife_info("bar_snork_start") then table.insert(spawn_items, "stalker_outfit") table.insert(spawn_items, "wpn_spas12") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "wpn_grach") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") db.actor:activate_slot(2) elseif has_alife_info("bar_krovo_start") then table.insert(spawn_items, "specors_outfit") table.insert(spawn_items, "wpn_ak74") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "wpn_fiveseven") table.insert(spawn_items, "ammo_5.7x28") table.insert(spawn_items, "ammo_5.7x28") table.insert(spawn_items, "ammo_5.7x28") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") db.actor:activate_slot(2) elseif has_alife_info("bar_psevd_start") then table.insert(spawn_items, "specors_outfit") table.insert(spawn_items, "wpn_groza") table.insert(spawn_items, "ammo_9x39_pab9") table.insert(spawn_items, "ammo_9x39_pab9") table.insert(spawn_items, "ammo_9x39_pab9") table.insert(spawn_items, "ammo_9x39_pab9") table.insert(spawn_items, "ammo_9x39_pab9") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "wpn_colt1911") table.insert(spawn_items, "ammo_11.43x23_hydro") table.insert(spawn_items, "ammo_11.43x23_hydro") table.insert(spawn_items, "ammo_11.43x23_hydro") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "medkit") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") db.actor:activate_slot(2) end local k,v = 0,0 for k,v in pairs(spawn_items) do alife():create(v, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end Что должно быть?ГГ перемещается, его вещи переносятся в ящик, у него в инвентаре появляется лут. Что имеем?ГГ перемещается, его вещи НЕ переносятся в ящик, у него в инвентаре появляется лут, но постоянно один и тот же (самый первый из списка) Вопрос - как править? Изменено 11 Ноября 2022 пользователем imcrazyhoudini ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Norman Eisenherz 302 Опубликовано 11 Ноября 2022 Поделиться Опубликовано 11 Ноября 2022 1 hour ago, dsh said: Есть возможность получить доступ к этому окну до того, как оно будет показано и что-то с ним сделать. Я, к примеру, меняю текст этого окна Возможно ли такое повторить на чистом движке и как именно? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
dsh 3 824 Опубликовано 11 Ноября 2022 Поделиться Опубликовано 11 Ноября 2022 4 hours ago, mole venomous said: не есть хорошо для сейва. Почему? @Купер ну-у-у.., мягко говоря, все не так однозначно. Начнем с того, что нет никакой проблемы, что кто-там ходит через Бар. У меня в моде почти все, кроме Свободовцев, ходят через Бар. И никому это не мешает, а даже наоборот, наполняет эту локацию жизнью и событиями. Потом, есть же возможность вертексы помечать и указывать, кому по каким вертексам нельзя ходить. Это что бы кто-нибудь не материализовался в бункере у Сахарова. А группы - это по большей части костыль. Вот вспомним X-18, к примеру. Там псевдогигант есть и гулаг для него, насколько я помню. Так вот, без выноса X-18 в отдельную группу, туда будут приходить новые псевдогиганты, по мере убывания предыдущих. Вот и сделали отдельную группу, что бы никто в X-18 прийти не мог. Но это костыль. А не костыль, это поместить там псевдогиганта с персональной логикой, без всякого смарта. Нет смарта - никто никуда не пойдет - нет проблем. А что бы не ходили через Бар, опять таки, да ведь мы имеем полный контроль в скриптах и может кому угодно запретить выходить в онлайн там, где нам нужно и когда нужно. 3 hours ago, Norman Eisenherz said: Возможно ли такое повторить на чистом движке и как именно? Рассказываю один раз. Можно даже в какой-нибудь FAQ добавить. Берешь исходники оригинального движка. Поверх копируешь исходники OGSR, соглашаясь на замену. Собираешь. Вуаля. Не благодари. 3 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
ALEKCZY 0 Опубликовано 12 Ноября 2022 Поделиться Опубликовано 12 Ноября 2022 Ребят знает кто, как самому добавить "безопасные зоны" в которых никогда не заспавнятся динамические аномалии как в амк? Ссылка на комментарий
imcrazyhoudini 203 Опубликовано 12 Ноября 2022 Поделиться Опубликовано 12 Ноября 2022 Пытаюсь сделать ограничение на удаление каких-либо секций на арене. Скрытый текст local obj = { ["stalker"] = true, ["destroyable_object"] = true, ["object"] = true, } function purge_arena_items(name) local arena_zone = arena_zones[name] if (obj:section()~="stalker" or obj:section()~="object" or obj:section()~="destroyable_object") and arena_zone then arena_zone:purge_items() end end Вылетает: Скрытый текст [error]Expression : FATAL ERROR [error]Function : CScriptEngine::lua_pcall_failed [error]File : D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\COMMON_AI\script_engine.cpp [error]Line : 46 [error]Description : [CScriptEngine::lua_pcall_failed]: .... shadow of chernobymod\gamedata\scripts\xr_zones.script:103: attempt to call method 'section' (a nil value) В таком случае - как написать правильно функцию? ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
gam 117 Опубликовано 12 Ноября 2022 Поделиться Опубликовано 12 Ноября 2022 3 часа назад, imcrazyhoudini сказал: function purge_arena_items(name) local arena_zone = arena_zones[name] if (obj:section()~="stalker" or obj:section()~="object" or obj:section()~="destroyable_object") and arena_zone then arena_zone:purge_items() end end if obj[name] ~= true and arena_zone then 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти