- 1
- 0
Здравствуйте, произошла проблема и мне необходима ваша помощь. Мне необходимо чтобы использовать функцию не надо было зажимать кнопку B, а просто её нажать и разговаривать в чат и это будет рация, как бы это сделать вот исходный необходимый код. -Мне нужно чтобы я не зажимал B и разговарил в игровой чат, а чтобы просто нажал один раз B и рация была включена пока не отключу. Заранее огромное спасибо за помощь!
Lua:
module( 'gp_radio', package.seeall )
local meta = FindMetaTable( 'Player' )
local hasradiojobs = {
[2] = { -- Police
chan = 'Полицейская частота'
},
[3] = { -- DPS
chan = 'Полицейская частота'
},
[4] = { -- PPS
chan = 'Полицейская частота'
},
[5] = { -- Chief
chan = 'Полицейская частота'
},
[19] = { -- OMON
chan = 'Полицейская частота'
},
[22] = { -- FSB
chan = 'Полицейская частота'
},
[6] = { -- Mayor
chan = 'Полицейская частота'
},
[25] = { -- NRG
chan = 'Частота Росгвардии'
},
}
function meta:JoinChannel( s )
if self:GetNWBool( 'gp_radio', false ) ~= true then return end
self:SetNWString( 'gp_radio_chan', s )
local text = s == 'police' and 'Полицейская частота' or s == 'nrg' and 'Частота Росгвардии' or s
DarkRP.notify(self, 2, 6, 'Вы сменили частоту рации на "'..text..'"!')
end
function meta:StartRadioTranslation()
if self:GetNWBool( 'gp_radio', false ) ~= true then return end
if self:GetNWString( 'gp_radio_chan', nil ) == nil then return end
self:SetNWBool( 'gp_radio_translation', true )
self:EmitSound( 'npc/metropolice/vo/off1.wav', 60, 110 )
end
function meta:StopRadioTranslation()
self:SetNWBool( 'gp_radio_translation', false )
end
hook.Add( 'PlayerCanHearPlayersVoice', 'gp_radio', function( listener, talker )
if listener:GetNWBool( 'gp_radio', false ) == true and talker:GetNWBool( 'gp_radio', false ) and listener:GetNWString( 'gp_radio_chan', nil ) == talker:GetNWString( 'gp_radio_chan', nil ) and talker:GetNWBool( 'gp_radio_translation', false ) == true and listener:GetNWBool( 'gp_radio_off', false ) ~= true then
return true
end
end)
hook.Add( 'PlayerButtonDown', 'gp_radio', function( ply, key )
if key == 12 and ply:GetNWBool( 'gp_radio', false ) ~= false then
ply:StartRadioTranslation()
end
end )
hook.Add( 'PlayerButtonUp', 'gp_radio', function( ply, key )
if key == 12 and ply:GetNWBool( 'gp_radio', false ) ~= false then
ply:StopRadioTranslation()
end
end )
concommand.Add('gp_toggle_radio', function( ply )
if ply:GetNWBool( 'gp_radio', false ) ~= true then return end
ply:SetNWBool( 'gp_radio_off', !ply:GetNWBool( 'gp_radio_off', false ) )
local text = ply:GetNWBool( 'gp_radio_off', false ) == true and 'выключили' or 'включили'
DarkRP.notify(ply, 2, 6, 'Вы '..text..' рацию!')
end)
concommand.Add('gp_radio_setchannel', function( ply, cmd, args )
if tbl[args[1]] and not tbl[args[1]].jobs[ply:Team()] then return end
if tbl[args[1]] and tbl[args[1]].jobs[ply:Team()] then
ply:JoinChannel( tbl[args[1]].id )
return
end
ply:JoinChannel( args[1] )
end)
hook.Add( 'OnPlayerChangedTeam', 'gp_radio#OnPlayerChangedTeam', function( ply, before, after )
print(after)
if hasradiojobs[before] and ply:GetNWBool( 'gp_radio', false ) == true then
ply:SetNWBool( 'gp_radio', false )
ply:SetNWString( 'gp_radio_chan', '0' )
end
if hasradiojobs[after] then
ply:SetNWBool( 'gp_radio', true )
ply:SetNWString( 'gp_radio_chan', tbl[hasradiojobs[after].chan].id )
DarkRP.notify(ply, 2, 6, 'Зажмите кнопку "B" и кнопку войс чата чтобы говорить в рацию.')
end
end )
hook.Add( 'PlayerDeath', 'gp_radio#PlayerDeath', function( ply )
if not hasradiojobs[ply:Team()] and ply:GetNWBool( 'gp_radio', false ) == true then
ply:SetNWBool( 'gp_radio', false )
ply:SetNWString( 'gp_radio_chan', '0' )
end
end )
Последнее редактирование модератором: