Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Hind 29 Опубликовано 7 Октября 2022 Поделиться Опубликовано 7 Октября 2022 @mole venomousтак я как сделал: При юзании даётся инфа (rad_immunity), и запускается таймер на 2 минуты. По истечению двух минут инфа убирается, а соотвественно и дейсвтие препарата тоже. А как на обнову поставить то? @Houdini_oneизменил чутка, не работает Скрытый текст function use_meladin() if (db.actor.radiation >= 0) and has_alife_info("rad_immunity") then db.actor.radiation = -db.actor.radiation end end Hind Upgrade Mod Ссылка на комментарий
mole venomous 3 433 Опубликовано 7 Октября 2022 Поделиться Опубликовано 7 Октября 2022 Скрытый текст В bind_stalker ф-ия function actor_binder:update(delta) ... update_medkit() ... end -- Для примера function update_medkit() if has_alife_info("actor_medkit_use_info") then actor.health = 0.0016 end end 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Hind 29 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 Слямзил некролог из интернета. Всё гуд но мне не нравится то что сообщение приходит сразу. Решил чутка изменить его - при смерти старутет таймер, после окончания которого и приходит уведомлялка. Вот сам оригинал: Скрытый текст local level_name = { ["l01_escape"] = "Кордон", ["l02_garbage"] = "Свалка", ["l03_agroprom"] = "НИИ Агропром", ["l03u_agr_underground"] = "Подземелье НИИ Агропром", ["l04_darkvalley"] = "Тёмная долина", ["l04u_labx18"] = "Лаборатория X-18", ["l05_bar"] = "Бар", ["l06_rostok"] = "Дикая территория", ["l07_military"] = "Арм.склады", ["l08_yantar"] = "Янтарь", ["l08u_brainlab"] = "Лаборатория X-16", ["l10u_bunker"] = "Лаборатория X-10", ["l10_radar"] = "Радар", ["l11_pripyat"] = "Припять", ["l12_stancia"] = "ЧАЭС", ["l12_stancia_2"] = "ЧАЭС", ["l12u_sarcofag"] = "Саркофаг", ["l12u_control_monolith"] = "Управление Монолитом" } local community = { ["stalker"] = "Одиночка", ["monolith"] = "Монолит", ["military"] = "Военные", ["bandit"] = "Бандит", ["killer"] = "Наемник", ["ecolog"] = "Эколог", ["dolg"] = "Долг", ["freedom"] = "Свобода", ["zombied"] = "Зомбированный", ["trader"] = "Торговец" } function kill_npc(victim, who) if victim and IsStalker(victim) then local dead_news = "%c[255,0,0,0]ПОГИБ СТАЛКЕР \\n%c[255,160,160,160]Группировка: %c[default]"..community[victim:character_community()].."\\n%c[255,160,160,160]Кличка: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()].."" db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) dmb2.news_sound() end end А вот моя поделка Скрытый текст function kill_npc(victim, who) if victim and IsStalker(victim) then dmb2.nekrolog_timer() end end function nekrolog_message(victim, who) if victim and IsStalker(victim) then local dead_news = "%c[255,0,0,0]ПОГИБ СТАЛКЕР \\n%c[255,160,160,160]Группировка: %c[default]"..community[victim:character_community()].."\\n%c[255,160,160,160]Кличка: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()].."" db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000) dmb2.news_sound() end end И сам таймер, по окончанию которого выполняется nekrolog_message Скрытый текст function nekrolog_timer() local iTimer = time_global() + 5000 local function check_timer() return time_global() > iTimer end level.add_call(check_timer, dmb.nekrolog_message(victim, who)) end Но после убийства ничё не происходит. Что делать? Небольшая ремарка: если убрать if victim and IsStalker(victim) then в nekrolog_message то происходит вылет с причиной dmb.script:48: attempt to index local 'victim' (a nil value) Отбой. Разобрался. Чтобы всё работало с задержкой, в сообщении вместо цифры 1 поставить кол-во желаемых секунд (1000, 5000, т.д.) Hind Upgrade Mod Ссылка на комментарий
Sikorskyi 147 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 27 минут назад, Hind сказал: Слямзил некролог из интернета Очень урезанная версия. Например, нет комментариев о случившемся от других сталкеров. Ссылка на комментарий
Hind 29 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 @Sikorskyi да это понятно, но делаю мод для личного пользования, мне это не очень нужно) Hind Upgrade Mod Ссылка на комментарий
aromatizer 4 462 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 Поскольку сталкеры гибнут только в зоне алайфа, то весь код для выведения названия локации лишний. Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
Hind 29 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 Как сделать чтобы при подвешенном артефакте на поясе, выполнялась опредёленная функция? Hind Upgrade Mod Ссылка на комментарий
Sikorskyi 147 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 (изменено) @Hind @aromatizer Вот вариант некрологов, которым я пользуюсь. Скрытый текст local level_name = { ["l01_escape"] = "Кордон", ["l02_garbage"] = "Свалка", ["l03_agroprom"] = "НИИ Агропром", ["l03u_agr_underground"] = "Подземелье НИИ Агропром", ["l04_darkvalley"] = "Тёмная долина", ["l04u_labx18"] = "Лаборатория X-18", ["l05_bar"] = "Бар", ["l06_rostok"] = "Дикая территория", ["l07_military"] = "Арм.склады", ["l08_yantar"] = "Янтарь", ["l08u_brainlab"] = "Лаборатория X-16", ["l10u_bunker"] = "Лаборатория X-10", ["l10_radar"] = "Радар", ["l11_pripyat"] = "Припять", ["l12_stancia"] = "ЧАЭС", ["l12_stancia_2"] = "ЧАЭС", ["l12u_sarcofag"] = "Саркофаг", ["l12u_control_monolith"] = "Управление Монолитом" } local community = { ["stalker"] = "Вольный сталкер", ["monolith"] = "Монолит", ["military"] = "Военный", ["bandit"] = "Бандит", ["killer"] = "Наемник", ["ecolog"] = "Учёный", ["dolg"] = "Долг", ["freedom"] = "Свобода", ["zombied"] = "Зомбированный", ["trader"] = "Торговец" } local death_komment = { "Трупом больше - трупом меньше, хех!", "О! Сидрыч, хоть и не я убил его, но с тебя всё равно причитается!", "Бармен, и чё делать-то теперь? Ладно, пойду посмотрю на труп, вдруг на флешке инфа эта есть... Если чё - пиши в личку.", "Да когда ж это кончится?!... ", "Твою мать! А я-то думал, что всех порешил...", "чОрт побери, только вчера с ним виделись... Жаль пацана...", "Земля пухом! Хороший сталкер был... Пойду КПК подберу - мож хабар остался...", "Ну, вот и ещё один конкурент в мир иной отошёл... Аминь!...", "А говорил - заговорённый!... хех!...", "Вот чОрт побери, а он мне денег должен...", "Ну и поделом ему!!!", "Одним сталкером меньше, одним трупом больше.", "Жопой чую - не к добру это...", "Неудачник...", "Я пупею... Говорил, что безопасно там, безопасно... Хорошо, что я отказался в последний момент с ним идти, а то глядишь - рядом с ним и полёг бы...", "Нда... Прогулялся за хабаром... Судьба...", "Что сказать?... Зона для сталкера - не место для прогулки...", "Надеюсь, не мучился бродяга...", "Вчера только там зачистку делали, тропку сделать надо было... чОрт побери...", "Хороший мужик был, рисковый, хабаром делился когда туго было, земля пухом, брат сталкер!", "Ещё один в зону попёрся, когда уже разуму наберутся?... Все же знают - не меньше чем подвое ходить надо!...", "Та-а-ак... Где это он угробился?... Надо срисовать координаты...", "Так ему и надо!", "Эх, Зона... сколько жизней загубила..." , "Эх, хороший человек был, но самоуверенный чересчур, вот и вляпался...", "Эээх... А он мне обещал ствол кондовый достать... Опять хабар Сидору нести...", "Говорили же!... Не возвращайся по тому же пути!...", "Ба! А не тот ли это сталкер, что вчера в баре нарезался?...", "Оба-на! Мне теперь грех на душу не брать! Но бабло с Бармена стрясу...", "Ещё одну душу Зона забрала... Сколько ещё заберёт?...", "Жалко парня...", "Я тут по этому поводу анекдот вспомнил..." } function kill_npc(victim, who) if victim and IsStalker(victim) then local dead_news = "%c[230,255,128,64]Погиб: "..victim:character_name().."\\nГруппировка: "..community[victim:character_community()].."\\nМесто гибели: "..level_name[level.name()].."" db.actor:give_game_news(dead_news,"ui\\ui_iconstotal",Frect():set(0,658,83,47),1000,3000) -- всегда local shans = math.random(1,100) if shans > 70 then dead_news = death_komment[math.random(table.getn(death_komment))] db.actor:give_game_news(dead_news,"ui\\ui_iconstotal",Frect():set(0,658,83,47),3000,3000) -- дополнительно не всегда end end end А версию death_news из OGSE 0.6.9.2 мне не удалось подключить Изменено 8 Октября 2022 пользователем Sikorskyi 1 Ссылка на комментарий
mole venomous 3 433 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 (изменено) @Hind Отследить наличие артефакта на поясе. На базовом движке для этого нужно немного "накостылить", а в ОГСР есть вполне "законные" методы. Вроде, недавно здесь это обсуждали. Файл с готовым кодом, вроде из Солянки: Скрытый текст https://disk.yandex.ru/d/oQab4BpGGSJthg Скрытый текст Для определения конкретного арта на ванильном движке В апдейт actor_binder:update(delta) вот это inventory.update() local medusa = inventory.belt["af_medusa"] if medusa then get_console():execute("load ~#I#:"..string.format("Медуза на поясе")) end В апдейт actor_binder:info_callback(npc, info_id) вот это inventory.on_inventory_info(info_id) зы Вместо get_console():execute("load ~#I#:"..string.format("Медуза на поясе")) свой код, разумеется Вместо "af_medusa" секция своего арта зызы На примере - код постоянного обновления. Если нужно на один раз, лучше повесить на что то другое. Изменено 8 Октября 2022 пользователем mole venomous 1 1 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Hind 29 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 @Sikorskyiсделал как ты, тока чутка подправил его под свой скрипт: Скрытый текст function kill_npc(victim, who) if victim and IsStalker(victim) then local t = time_global() db.actor:give_game_news(dead_news,"ui\\ui_iconstotal",Frect():set(0,658,83,47),1000,3000) -- всегда local shans = math.random(1,100) if shans > 70 then dead_news = death_komment[math.random(table.getn(death_komment))] db.actor:give_game_news(dead_news,"ui\\ui_iconstotal",Frect():set(0,658,83,47),3000,3000) elseif t > time_global() + 3000 then dmb2.news_sound() end end end А оно вылетает Разобрался. Забыл добавить сам текст Hind Upgrade Mod Ссылка на комментарий
imcrazyhoudini 209 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 @Hind ну так ты лог вылета покажи, нам откуда знать почему вылетает? ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Hind 29 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 @Houdini_one там типа dmb - a nil value... Да забей, я разобрался Hind Upgrade Mod Ссылка на комментарий
Купер 2 931 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 По некрологам из простенького ещё можно тут посмотреть. Так сказать, расширенная версия . 3 Ссылка на комментарий
андрей дронав 17 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 (изменено) Скрытый текст --------------Сообщения о смерти сталкеров--------------- -- проверяндус есть ли у нас жертва обстоятельств if victim ~= nil then local whocls = get_clsid(who) monster_classes = { [clsid.bloodsucker_s] = "неудачно подошёл к кровососу", [clsid.boar_s] = "неудачная охота на кабана", [clsid.dog_s] = "загрызён собакой", [clsid.flesh_s] = "неудачная охота на плоть", [clsid.pseudodog_s] = "загрызён псевдособакой", [clsid.burer_s] = "нарвался на бюрера", [clsid.cat_s] = "кошка перебежала дорогу", [clsid.chimera_s] = "нарвался на химеру", [clsid.controller_s] = "стал зомби и умер", [clsid.poltergeist_s] = "полтергейст", [clsid.gigant_s] = "растоптал псевдогигант", [clsid.zombie_s] = "попрощался с мозгами", [clsid.snork_s] = "неудачно нашёл снорка", [clsid.tushkano_s] = "умер от стаи тушканов", [clsid.psy_dog_s] = "загрызён пси собакой", [clsid.psy_dog_phantom_s] = "загрызён пси собакой" } local death_komment = { "Ещё один...", "Мдя, ни дня без этого.", "Одним больше, одним меньше...", "Все там будем", "Помянуть надо бы...", "Зона тебе пухом.", "Был пацан, не стало пацана" } -- -- -- victim_name - имя жертвы -- killer_name - имя убивайца -- killer_comm - групировка убивайца -- victim_comm - групировка жертвы -- -- local m_game_vertex = who:game_vertex_id() local lvert = game_graph():vertex(m_game_vertex) local lid = lvert:level_id() local mlevel = alife():level_name(lid) local m_s_level = mlevel local victim_name = victim:character_name() local killer_name = who:character_name() local victim_comm = victim:character_community() local killer_comm = nil if IsStalker(who) then if killer_name == victim_name then killer_name = "аномалия" killer_comm = "monster" else killer_comm = who:character_community() -- Чтобы показывать имя, кто убил удали строку ниже killer_name = "пулевое ранение" end else killer_comm = "monster" if whocls ~= nil then killer_name = monster_classes[whocls] end end if killer_comm ~= nil then if killer_name == nil then -- это если имя убийцы неизвестно или мутантик какой неизвестен killer_name = "%c[230,255,0,0][DATA DELETED]" end local m_text_kill_string="Умер сталкер "..victim_name.."\\nЛокация: "..game.translate_string(m_s_level).."\\nПричина смерти: "..killer_name local news_text = "%c[230,255,128,64]"..m_text_kill_string local news_caption = game.translate_string("DeadMans") local task_texture, task_rect = get_texture_info("ui_iconsTotal_weapons") local news_text = news_caption .. "%c[230,255,128,64]" .. m_text_kill_string db.actor:give_game_news(news_text, task_texture, task_rect, 5*1000, 5*1000) if shans > 70 then local task_texture, task_rect = get_texture_info("ui_iconsTotal_grouping") local dead_news = dead_caption .. death_komment[math.random(table.getn(death_komment))] db.actor:give_game_news(dead_news, task_texture, task_rect, 5*1000, 5*1000) end end Вообщем попытался взять его, очень он мне по нраву, но чет не берется ... Скрытый текст Expression : fatal error Function : CScriptEngine::lua_error File : .\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ... 1.0 bild 00001\gamedata\scripts\xr_motivator.script:165: attempt to index global 'necrolog_functions' (a nil value) Отредактировал по шпаргалке , но чего то нехватает Изменено 9 Октября 2022 пользователем андрей дронав Ссылка на комментарий
imcrazyhoudini 209 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 Можно сделать гулаг лишь для какого-то вида мутантов, например, псевдособаки. А как сделать гулаг лишь для одного из подвида мутантов? Допустим pseudodog_strong... ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Hind 29 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 Тащи, подскажите. Можно ли как то уменьшить спавн сталкеров, и увеличить спван мутантов на локациях без редактирования all.spawn? если да, подскажите, что за файлы отвечают за спавн, кол-во, и тд. Hind Upgrade Mod Ссылка на комментарий
imcrazyhoudini 209 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 @Hind респавн указывается в алл спавне. ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
mole venomous 3 433 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 (изменено) 1 час назад, Houdini_one сказал: подвида мутантов В оригинале в коде есть предикаты, вот кусок из gulag_bar.script Скрытый текст ... -- ARENA MONSTERS if type == "bar_arena_monstr" then t = { section = "logic@bar_arena_monstr_pseudodog", idle = 0, prior = 5, state = {1}, squad = squad, group = groups[0], in_rest = "", out_rest = "bar_arena_sr", predicate = function(obj_info) return obj_info.section_name == "pseudodog_arena" end } ... Но работает ли это дело с монстрами... Проверь. 1 час назад, андрей дронав сказал: скрипт некролога (Показать) Это весь скрипт? Изменено 8 Октября 2022 пользователем mole venomous 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Hind 29 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 @Houdini_oneя просто думаю, может в гулагах можно поредактировать значения? Hind Upgrade Mod Ссылка на комментарий
imcrazyhoudini 209 Опубликовано 8 Октября 2022 Поделиться Опубликовано 8 Октября 2022 @Hind большинство гулагов имеют настройки лишь в алл спавне в том числе, так-то можешь попробовать подрезать количество работ, но не знаю что из этого выйдет. ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти