Jump to content

Возможно ли сделать свою сирену / крякалку?


Recommended Posts

Вообщем появилась идея создать СГУ систему (Сигнальные громкоговорящие установки) ну сирена,крякалка. Стоит на автомобилях милиционеров,скорой,пожарках,и наших депутатах.

Тоесть создать GUI с кнопками по нажатию на которые будет воспроизводится определённый звук который будет слышен в некотором радиусе.

69d50071b0e2.png

Edited by Guest
Link to comment

Да я сам конечно попробую. Жаба душит :D

Сроки? Ну сколько делать этот скрипт то? Ну в ру:Oх. Сделать то что я описал. Создать GUI окно с кнопками, по нажатию на них будет звучать звук. Слышный всем в определённом радиусе

Link to comment

Код почти такой же?

bindKey( "F2", "down", showGUI ); 
  
GUIEditor_Window = {} 
GUIEditor_Button = {} 
  
GUIEditor_Window[1] = guiCreateWindow(0.3,0.2,0.4,0.5,"Панель разговоров",true) 
guiSetAlpha( GUIEditor_Window[1],225) -- Альфа GUI указывается в процентах, т.е. от 0,0 до 1,0 
guiSetVisible( GUIEditor_Window[1],true) 
GUIEditor_Button[ 1 ] = guiCreateButton(0.52,0.55,0.45,0.1,"Молодец",true,GUIEditor_Window[1]) 
  
addEventHandler( "onClientGUIClick", GUIEditor_Button[1], -- достаточно повесить событие сразу на елемент и ... 
    function ( player ) 
        -- if (source == GUIEditor_Button[1]) then -- ... и убрать вот эту проверку (меньше нагрузки на CPU) 
            -- player = getLocalPlayer() -- Зачем это? 
            outputChatBox ( --[[ .. это зачем? ]]getPlayerName(source).."сказал: Молодец", --[[ getRootElement(), зачем это? ]]255, 0, 0, true ) 
            -- getPlayerName(source) вы пытаетесь получить имя игрока, а в аргумент даёте GUI-кнопку.. 
            guiSetVisible (GUIEditor_Window[1],false) 
            showCursor (false) 
        -- end 
    end, 
    false -- это нужно чтобы событие не срабатывало на другие елементы. 
); 
  
addEvent( "molodca", true ) 
function molodec ( player ) 
    if (source == GUIEditor_Button[1]) then -- тоже не понятно зачем это. 
    elseif (isElement(player)) then 
        local Zx,Zy,Zz = getElementPosition( ped ) -- откуда появилась переменная ped? 
        local sound = playSound3D("molodca.ogg", Zx, Zy, Zz, true) -- true указывает на loop, Т.е. будет бесконечно повторяться. 
        setSoundMaxDistance(sound, 20) 
    end 
end 
addEventHandler( "molodca", getRootElement(), molodec ) 
  
function showGUI() -- немного переделал 
    local visible = not guiGetVisible( GUIEditor_Window[1] ); 
     
    guiSetVisible( GUIEditor_Window[1], visible ); 
    showCursor( visible ); 
end 
  

Link to comment

Я как-то выкладывал баг в мантис, где показывал такую систему..

тут я снимал демонстрацию бага со звуком...

https://www.youtube.com/watch?v=RVRWCTBimzY

а это кто-то из игроков очень давно снимал.

реализовано с помощью маркеров.. поэтому проблемы с лимитом маркеров, планирую потом на DX переделать.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...