Hind 29 Опубликовано 8 Октября 2022 Некролог (оповещение о смерти сталкера) Сложность: легкоАвтор скрипта: Weanchester, взято из stalkerin.gameruДоработал: Hind Скрытый текст Создаём скрипт в папке gamedata/scripts и называем его как хотим (в данном случае dmb.script) Туда пишем: 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 t = time_global() local dead_news = "%c[0,255,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), 3000, 4000) elseif t > time_global() + 3000 then dmb2.news_sound() end end Вот и всё! Теперь после смерти сталкеров, спустя 3 секунды у нас будет оповещение о смерти со звуком!З.Ы. Статья создана новичком, поэтому и оформлена по васяновски. Прошу меня простить если не понятно Рабочая гитара Сложность: среднеАвтор скрипта: Hind*некоторые функции брал из открытых источников. к сожалению авторов не помнюЛежала как то без дела гитара, поделюсь с народом. Скрытый текст В этом уроке рассмотрим создание рабочей гитары, которая будет играть ту музыку, которую мы захотим. Нам надо всего 3 файла: bind_stalker.script, ваш_скрипт1.script, ваш_скрипт2.script (в моём случае это dmb и dmb2 соответственно) Скрытый текст Итак, в bind_stalker.script пишем: В function actor_binder:net_destroy() пишем: self.object:set_callback(callback.use_object, nil) В function actor_binder:reinit() пишем: self.object:set_callback(callback.use_object, self.use_object, self) И где хотим добавляем следующую функцию: function actor_binder:use_object(obj) dmb.use_item(obj) dmb.use_snd(obj) end Далее идём в наш созданный скрипт (в данном случае у меня это dmb.script), и там пишем следующее: Скрытый текст local tSound ={ gitara = "interface\\inv_gitara", -- путь до нашего звука при юзании предмета. Вместо него ставим какой хотим, разумеется } function use_item(obj) local obj = obj:section() if obj then if obj == "gitara" then -- наш предмет (в данном случае я уже создал юзабельный предмет, и подогнал его как Гитару) dmb2.start_timer() -- включаем таймер end end end function use_snd(obj) if obj and tSound[obj:section()] then local snd = xr_sound.get_safe_sound_object(tSound[obj:section()]) if snd then snd:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 2.0) end end end и идём во второй наш скрипт, где пишем: Скрытый текст function action_timer() alife():create("gitara", db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id()) end function start_timer() -- функция на которую мы ссылались при юзании в первом скрипте local iTimer = time_global() + 17000 -- наше время песни, т.е. 17 секунд. Спустя 17 секунд, гитара нам вернется в инвентарь. local function check_timer() return time_global() > iTimer end level.add_call(check_timer, action_timer) end Ну, и вроде всё! Не забудьте проверить правильность копирования, убрать стрелочки, с помощью которых я указывал на что-либо, и вуаля. Если где-то ошибся, или не работает, маякните 2 Hind Upgrade Mod Поделиться этим сообщением Ссылка на сообщение