- 58
- 5
- Версия MoonLoader
- .026-beta
Приветствую! Пишу скрипт, который при определенных обстоятельствах воспроизводит мелодию. Дело в том, что, когда игра включена, он отлично работает, но тогда от него мало толку. Необходимо сделать работу его в свернутом режиме, вот это для меня оказалось проблемой. На чат он, вроде, реагирует (выводит сообщение), однако мелодию не воспроизводит. Помогите, пожалуйста, решить проблему.
код:
Спасибо большое!
код:
Lua:
ACTIVATE = true --Автовключение (true - да, false - нет)
MODE = false --Режим работы (false - звуковое оповещение, если админ пишет; true - автоответчик администратору)
SOUND_VOLUME = 5.0 --Громкость звука уведомлений
script_dependencies("work_in_pause")
vkey = require("lib.vkeys")
memory = require("memory")
PREFIX = "{FF0000}[AntiAdmin by Magir]:{FFFFFF} "
ACTIVATE_DISC= {"{ffffff} Скрипт {00FF00}Активирован", "{ffffff} Скрипт {FF0000}Отключен"}
MODE_DESC = {"{00FF00}Активирован режим звукового оповещения","{00FF00}Активирован режим автоответчика"}
SETTINGS_DESC = "{ffffff}Для изменения настроек: /aadm (вкл/выкл) /amode (изменение режима) или перейдите в файл скрипта"
require("lib.moonloader")
env = require("lib.samp.events")
au = require("lib.moonloader").audiostream_state
script_name("AntiAdmin")
script_author("Magir")
enter = false
state = false
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(0) end
audio = loadAudioStream("moonloader/signal.mp3")
if ACTIVATE then
sampAddChatMessage(PREFIX..ACTIVATE_DISC[1],-1)
if not MODE then
sampAddChatMessage(PREFIX..MODE_DESC[1],-1)
else
sampAddChatMessage(PREFIX..MODE_DESC[2],-1)
end
else
sampAddChatMessage(PREFIX..ACTIVATE_DISC[2],-1)
end
sampAddChatMessage(PREFIX..SETTINGS_DESC,-1)
sampRegisterChatCommand("aadm",function()
ACTIVATE = not ACTIVATE
if ACTIVATE then
sampAddChatMessage(PREFIX..ACTIVATE_DISC[1],-1)
else
sampAddChatMessage(PREFIX..ACTIVATE_DISC[2],-1)
end
end)
mus = lua_thread.create_suspended(sound)
mus.work_in_pause=true
auto = lua_thread.create_suspended(autootv)
if ACTIVATE then
memory.setuint8(7634870, 1, false)
memory.setuint8(7635034, 1, false)
memory.fill(7623723, 144, 8, false)
memory.fill(5499528, 144, 6, false)
else
memory.setuint8(7634870, 0, false)
memory.setuint8(7635034, 0, false)
memory.hex2bin('0F 84 7B 01 00 00', 7623723, 8)
memory.hex2bin('50 51 FF 15 00 83 85 00', 5499528, 6)
end
sampRegisterChatCommand("amode",function()
MODE = not MODE
if not MODE then
sampAddChatMessage(PREFIX..MODE_DESC[1],-1)
else
sampAddChatMessage(PREFIX..MODE_DESC[2],-1)
end
end)
sampRegisterChatCommand("aatest",function()
mus:run()
sampAddChatMessage(PREFIX.."Проверка началась! Если вы не слышите звук, проверьте настройки радио (необходимо включить) и перезайдите в игру.",-1)
end)
wait(-1)
end
function env.onServerMessage(col,txt)
if txt:find("ENTER") then
enter=true
sampAddChatMessage("ЗАПУЩЕНО",-1)
end
if txt:find("Отнесите ресурсы к разгрузке") or txt:find("Вы пeренесли ресурсы") then
enter=false
end
if ACTIVATE and col == -6732289 then
if MODE then
auto:run(text:match("%]:%s*(.+)"))
else
mus:run()
end
end
end
function sound()
if not state then
setAudioStreamLooped(audio, true)
setAudioStreamVolume(audio,SOUND_VOLUME)
setAudioStreamState(audio,au.PLAY)
sampAddChatMessage(PREFIX.."{ffffff}Вам написал администратор. Для отключения звука уведомления нажмите {ff00ff} 5",-1)
state = true
end
local off = true
while off do
if isKeyDown(vkey.VK_5) then
off = not off
end
wait(0)
end
state =false
setAudioStreamState(audio,au.STOP)
sampAddChatMessage(PREFIX.."{ffffff}Уведомление принято. Звук отключен",-1)
end
function autootv(txt)
sampAddChatMessage("Пока недоступно",-1)
end
Спасибо большое!