Wysłany: 2016-08-09, 16:45
Kalizman
Wiek: 23 Na forum: 3651 dni Posty: 1394
Piwa : 4619
?cie?ka odtwarza si? po w??czeniu silnika i po wy??czeniu go, jak zrobi? aby odtwarza?a si? tylko po w??czeniu silnika?
c-side:
local w , h = guiGetScreenSize ()
czcionka = dxCreateFont ( "cz.ttf" , 8 )
local rowery = {[ 509 ]= true ,[ 481 ]= true ,[ 510 ]= true }
function gui ()
local v = getPedOccupiedVehicle ( localPlayer )
if getVehicleOverrideLights ( v ) ~= 2 then
w1 = "Zapal ?wiat?a"
else
w1 = "Zga? ?wiat?a"
end
local silnik = getVehicleEngineState ( v )
playSound ( "silnik.mp3" )
if silnik == false then
w2 = "Zapal silnik"
else
w2 = "Zga? silnik"
end
local drzwi = isVehicleLocked ( v )
if drzwi == true then
w3 = "Otw?rz drzwi"
else
w3 = "Zamknij drzwi"
end
if isElementFrozen ( v ) then
w4 = "Spu?? r?czny"
else
w4 = "Zaci?gnij r?czny"
end
if getVehicleDoorOpenRatio ( v , 0 ) == 0 then
w5 = "Otw?rz mask?"
else
w5 = "Zamknij mask?"
end
if getVehicleDoorOpenRatio ( v , 1 ) == 0 then
w6 = "Otw?rz baga?nik"
else
w6 = "Zamknij baga?nik"
end
r1 , r2 , r3 , r4 , r5 , r6 = 1 , 1 , 1 , 1 , 1 , 1
local wybor = getElementData ( localPlayer , "wybor" )
if wybor == 1 then
r1 = 1.2
elseif wybor == 2 then
r2 = 1.2
elseif wybor == 3 then
r3 = 1.2
elseif wybor == 4 then
r4 = 1.2
elseif wybor == 5 then
r5 = 1.2
elseif wybor == 6 then
r6 = 1.2
end
dxDrawText ( w1 , w * 0.0000 , h * 0.30 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r1 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w1 , w * 0.0000 , h * 0.302 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r1 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w2 , w * 0.0000 , h * 0.35 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r2 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w2 , w * 0.0000 , h * 0.352 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r2 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w3 , w * 0.0000 , h * 0.40 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r3 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w3 , w * 0.0000 , h * 0.402 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r3 , "pricedown" , "center" , "top" , false , false , false , false , false )
local sx , sy , sz = getElementVelocity ( v )
local kmhs = math . ceil ((( sx ^ 2 + sy ^ 2 + sz ^ 2 )^( 0.5 ))* 155 )
if kmhs < 20 then
setElementData ( localPlayer , "maxwybor" , 6 )
dxDrawText ( w4 , w * 0.0000 , h * 0.45 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r4 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w4 , w * 0.0000 , h * 0.452 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r4 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w5 , w * 0.0000 , h * 0.50 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r5 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w5 , w * 0.0000 , h * 0.502 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r5 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w6 , w * 0.0000 , h * 0.55 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r6 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w6 , w * 0.0000 , h * 0.552 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r6 , "pricedown" , "center" , "top" , false , false , false , false , false )
else
setElementData ( localPlayer , "maxwybor" , 3 )
end
end
function wybor1 ( key , state )
if state == "down" then
if getElementData ( localPlayer , "wybor" ) == 1 then return end
setElementData ( localPlayer , "wybor" , getElementData ( localPlayer , "wybor" )- 1 )
end
end
function wybor2 ( key , state )
if state == "down" then
if getElementData ( localPlayer , "wybor" ) == getElementData ( localPlayer , "maxwybor" ) then return end
setElementData ( localPlayer , "wybor" , getElementData ( localPlayer , "wybor" )+ 1 )
end
end
function pokazinterakcje ( value )
local v = getPedOccupiedVehicle ( localPlayer )
if v and getVehicleController ( v ) == localPlayer then
if rowery [ getElementModel ( v )] then return end
if value == true then
if getElementData ( v , "dokupienia" ) then return end
addEventHandler ( "onClientRender" , root , gui )
bindKey ( "arrow_u" , "both" , wybor1 )
bindKey ( "arrow_d" , "both" , wybor2 )
elseif value == false then
if getElementData ( v , "dokupienia" ) then return end
removeEventHandler ( "onClientRender" , root , gui )
unbindKey ( "arrow_u" , "both" , wybor1 )
unbindKey ( "arrow_d" , "both" , wybor2 )
end
end
end
bindKey ( "lshift" , "both" , function( key , state )
if state == "down" then
pokazinterakcje ( true )
setElementData ( localPlayer , "wybor" , 1 )
elseif state == "up" then
wybierz ()
pokazinterakcje ( false )
end
end )
function wybierz ()
local wybrano = getElementData ( localPlayer , "wybor" )
local v = getPedOccupiedVehicle ( localPlayer )
if not v then return end
if v and getVehicleController ( v ) == localPlayer then
if wybrano == 1 then
triggerServerEvent ( "?wiat?a" , localPlayer )
elseif wybrano == 2 then
triggerServerEvent ( "silnik" , localPlayer )
elseif wybrano == 3 then
triggerServerEvent ( "drzwi" , localPlayer )
elseif wybrano == 4 then
triggerServerEvent ( "r?czny" , localPlayer )
elseif wybrano == 5 then
triggerServerEvent ( "maska" , localPlayer )
elseif wybrano == 6 then
triggerServerEvent ( "baga?nik" , localPlayer )
end
end
end
function zamknij ( plr , seat )
if plr ~= localPlayer then return end
if seat ~= 0 then return end
removeEventHandler ( "onClientRender" , root , gui )
unbindKey ( "arrow_u" , "both" , wybor1 )
unbindKey ( "arrow_d" , "both" , wybor2 )
end
addEventHandler ( "onClientVehicleStartExit" , root , zamknij )
addEventHandler ( "onClientVehicleExit" , root , zamknij )
Wysłany: 2016-08-09, 16:59
Xaar
Wiek: 25 Na forum: 5450 dni Posty: 47
Nick w MP: PLWESOLYKOSTEK
Piwa : 82
A gdyby? przestawi? playSound do local silnik = getVehicleEngineState ( v )
if silnik == false then
w2 = "Zapal silnik"
else
w2 = "Zga? silnik"
playSound ( "silnik.mp3" )
end ?
Wysłany: 2016-08-09, 17:01
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
daj d?wi?k podczas odpalania silnika a nie w??czania interakcji
Ostatnio zmieniony przez marcin778 2016-08-09, 17:03, w całości zmieniany 1 raz
Wysłany: 2016-08-09, 17:02
Jurandovsky
Kurdebele
Wiek: 17 Na forum: 4838 dni Posty: 915
Piwa : 2697
Daj linijke 'playSound' tam, gdzie si? uruchamia silnik.
Moze jestem slepy, moze system inaczej dzia?a, ale nie widze tutaj linijki 'setVehicleEngineState' ktora by odpalala silnik.
Podpis
Jedyny kontakt ze mną to PW forum
Kod:
local noobs = getElementsByTitle("player", "Programista LUA")
for k, v in ipairs(noobs) do
outputChatBox("Bez mózgu jest użytkownik o nicku: "..getPlayerName(v), root)
destroyElement(v)
end
Wysłany: 2016-08-09, 17:02
Kalizman
Wiek: 23 Na forum: 3651 dni Posty: 1394
Piwa : 4619
teraz d?wi?k otwarza si? z tysi?? razy gdy klikn? shift (interakcja si? pokazuje nawet nie wybra?em w??czenia silnika)
[ Dodano : 2016-08-09, 17:03 ]
poprawi?em kod, poprawnie dzia?a tylko gdy gasz? silnik ?cie?ka si? w??cza, oto poprawiony kod:
local w , h = guiGetScreenSize ()
czcionka = dxCreateFont ( "cz.ttf" , 8 )
local rowery = {[ 509 ]= true ,[ 481 ]= true ,[ 510 ]= true }
function gui ()
local v = getPedOccupiedVehicle ( localPlayer )
if getVehicleOverrideLights ( v ) ~= 2 then
w1 = "Zapal ?wiat?a"
else
w1 = "Zga? ?wiat?a"
end
local silnik = getVehicleEngineState ( v )
if silnik == false then
w2 = "Zapal silnik"
else
w2 = "Zga? silnik"
end
local drzwi = isVehicleLocked ( v )
if drzwi == true then
w3 = "Otw?rz drzwi"
else
w3 = "Zamknij drzwi"
end
if isElementFrozen ( v ) then
w4 = "Spu?? r?czny"
else
w4 = "Zaci?gnij r?czny"
end
if getVehicleDoorOpenRatio ( v , 0 ) == 0 then
w5 = "Otw?rz mask?"
else
w5 = "Zamknij mask?"
end
if getVehicleDoorOpenRatio ( v , 1 ) == 0 then
w6 = "Otw?rz baga?nik"
else
w6 = "Zamknij baga?nik"
end
r1 , r2 , r3 , r4 , r5 , r6 = 1 , 1 , 1 , 1 , 1 , 1
local wybor = getElementData ( localPlayer , "wybor" )
if wybor == 1 then
r1 = 1.2
elseif wybor == 2 then
r2 = 1.2
elseif wybor == 3 then
r3 = 1.2
elseif wybor == 4 then
r4 = 1.2
elseif wybor == 5 then
r5 = 1.2
elseif wybor == 6 then
r6 = 1.2
end
dxDrawText ( w1 , w * 0.0000 , h * 0.30 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r1 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w1 , w * 0.0000 , h * 0.302 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r1 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w2 , w * 0.0000 , h * 0.35 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r2 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w2 , w * 0.0000 , h * 0.352 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r2 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w3 , w * 0.0000 , h * 0.40 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r3 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w3 , w * 0.0000 , h * 0.402 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r3 , "pricedown" , "center" , "top" , false , false , false , false , false )
local sx , sy , sz = getElementVelocity ( v )
local kmhs = math . ceil ((( sx ^ 2 + sy ^ 2 + sz ^ 2 )^( 0.5 ))* 155 )
if kmhs < 20 then
setElementData ( localPlayer , "maxwybor" , 6 )
dxDrawText ( w4 , w * 0.0000 , h * 0.45 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r4 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w4 , w * 0.0000 , h * 0.452 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r4 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w5 , w * 0.0000 , h * 0.50 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r5 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w5 , w * 0.0000 , h * 0.502 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r5 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w6 , w * 0.0000 , h * 0.55 , w * 1.75 , h * 0.3278 , tocolor ( 0 , 0 , 0 ), r6 , "pricedown" , "center" , "top" , false , false , false , false , false )
dxDrawText ( w6 , w * 0.0000 , h * 0.552 , w * 1.75 , h * 0.3278 , tocolor ( 255 , 255 , 255 ), r6 , "pricedown" , "center" , "top" , false , false , false , false , false )
else
setElementData ( localPlayer , "maxwybor" , 3 )
end
end
function wybor1 ( key , state )
if state == "down" then
if getElementData ( localPlayer , "wybor" ) == 1 then return end
setElementData ( localPlayer , "wybor" , getElementData ( localPlayer , "wybor" )- 1 )
end
end
function wybor2 ( key , state )
if state == "down" then
if getElementData ( localPlayer , "wybor" ) == getElementData ( localPlayer , "maxwybor" ) then return end
setElementData ( localPlayer , "wybor" , getElementData ( localPlayer , "wybor" )+ 1 )
end
end
function pokazinterakcje ( value )
local v = getPedOccupiedVehicle ( localPlayer )
if v and getVehicleController ( v ) == localPlayer then
if rowery [ getElementModel ( v )] then return end
if value == true then
if getElementData ( v , "dokupienia" ) then return end
addEventHandler ( "onClientRender" , root , gui )
bindKey ( "arrow_u" , "both" , wybor1 )
bindKey ( "arrow_d" , "both" , wybor2 )
elseif value == false then
if getElementData ( v , "dokupienia" ) then return end
removeEventHandler ( "onClientRender" , root , gui )
unbindKey ( "arrow_u" , "both" , wybor1 )
unbindKey ( "arrow_d" , "both" , wybor2 )
end
end
end
bindKey ( "lshift" , "both" , function( key , state )
if state == "down" then
pokazinterakcje ( true )
setElementData ( localPlayer , "wybor" , 1 )
elseif state == "up" then
wybierz ()
pokazinterakcje ( false )
end
end )
function wybierz ()
local wybrano = getElementData ( localPlayer , "wybor" )
local v = getPedOccupiedVehicle ( localPlayer )
if not v then return end
if v and getVehicleController ( v ) == localPlayer then
if wybrano == 1 then
triggerServerEvent ( "?wiat?a" , localPlayer )
elseif wybrano == 2 then
triggerServerEvent ( "silnik" , localPlayer )
playSound ( "silnik.mp3" )
elseif wybrano == 3 then
triggerServerEvent ( "drzwi" , localPlayer )
elseif wybrano == 4 then
triggerServerEvent ( "r?czny" , localPlayer )
elseif wybrano == 5 then
triggerServerEvent ( "maska" , localPlayer )
elseif wybrano == 6 then
triggerServerEvent ( "baga?nik" , localPlayer )
end
end
end
function zamknij ( plr , seat )
if plr ~= localPlayer then return end
if seat ~= 0 then return end
removeEventHandler ( "onClientRender" , root , gui )
unbindKey ( "arrow_u" , "both" , wybor1 )
unbindKey ( "arrow_d" , "both" , wybor2 )
end
addEventHandler ( "onClientVehicleStartExit" , root , zamknij )
addEventHandler ( "onClientVehicleExit" , root , zamknij )
[ Dodano : 2016-08-09, 17:29 ]
kto? co?
Wysłany: 2016-08-09, 19:02
AteX
Wiek: 26 Na forum: 4015 dni Posty: 927
Nick w MP: #AteX
Piwa : 8360
D?wi?k odtwarza si? po wybraniu opcji w??czenia lub wy??czenia silnika. Musisz po stronie serwera, gdzie w??czany jest silnik zrobi? triggera na stron? klienta, aby w??czy? d?wi?k.
Wysłany: 2016-08-10, 11:28
Kalizman
Wiek: 23 Na forum: 3651 dni Posty: 1394
Piwa : 4619
W sensie jak to zrobi??
s-side:
local rowery = {[ 509 ]= true ,[ 481 ]= true ,[ 510 ]= true }
addEvent ( "silnik" , true )
addEventHandler ( "silnik" , root ,function()
local v = getPedOccupiedVehicle ( source )
if v then
local silnik = getVehicleEngineState ( v )
if silnik == false then
setVehicleEngineState ( v , true )
else
setVehicleEngineState ( v , false )
playSound ( "silnik.mp3" )
end
end
end )
addEvent ( "?wiat?a" , true )
addEventHandler ( "?wiat?a" , root ,function()
local v = getPedOccupiedVehicle ( source )
if v then
if getVehicleOverrideLights ( v ) ~= 2 then
setVehicleOverrideLights ( v , 2 )
else
setVehicleOverrideLights ( v , 1 )
end
end
end )
addEvent ( "drzwi" , true )
addEventHandler ( "drzwi" , root ,function()
local v = getPedOccupiedVehicle ( source )
if v then
local drzwi = isVehicleLocked ( v )
if drzwi == true then
setVehicleLocked ( v , false )
else
setVehicleLocked ( v , true )
end
end
end )
addEvent ( "r?czny" , true )
addEventHandler ( "r?czny" , root ,function()
local v = getPedOccupiedVehicle ( source )
if v then
if isElementFrozen ( v ) then
setElementFrozen ( v , false )
else
setElementFrozen ( v , true )
end
end
end )
addEvent ( "maska" , true )
addEventHandler ( "maska" , root ,function()
local v = getPedOccupiedVehicle ( source )
if v then
if getVehicleDoorOpenRatio ( v , 0 ) == 0 then
setVehicleDoorOpenRatio ( v , 0 , 1 , 2000 )
else
setVehicleDoorOpenRatio ( v , 0 , 0 , 2000 )
end
end
end )
addEvent ( "baga?nik" , true )
addEventHandler ( "baga?nik" , root ,function()
local v = getPedOccupiedVehicle ( source )
if v then
if getVehicleDoorOpenRatio ( v , 1 ) == 0 then
setVehicleDoorOpenRatio ( v , 1 , 1 , 2000 )
else
setVehicleDoorOpenRatio ( v , 1 , 0 , 2000 )
end
end
end )
addEventHandler ( "onVehicleEnter" , root ,function( plr , seat )
if seat == 0 then
if rowery [ getElementModel ( source )] then return end
setVehicleEngineState ( source , false )
end
end )
addEventHandler ( "onVehicleStartExit" , root ,function( plr , seat )
if seat == 0 then
veh = getPedOccupiedVehicle ( plr )
if rowery [ getElementModel ( veh )] then return end
v = getPedOccupiedVehicle ( plr )
end
end )
addEventHandler ( "onVehicleExit" , root ,function( plr , seat )
if seat == 0 then
if not v then return end
setVehicleEngineState ( v , false )
setVehicleLocked ( v , false )
v = nil
end
end )
Wysłany: 2016-08-10, 11:30
AteX
Wiek: 26 Na forum: 4015 dni Posty: 927
Nick w MP: #AteX
Piwa : 8360
Po stronie serwera d?wi?ku nie odtworzysz. Musisz u?y?
i po stronie klienta doda? funkcj?, kt?ra zostanie wywo?ana przez ten trigger oraz odtworzy d?wi?k
Więcej informacji znajdziesz w Wikipedii MTA: addEvent
Wysłany: 2016-08-11, 21:29
Kalizman
Wiek: 23 Na forum: 3651 dni Posty: 1394
Piwa : 4619
Wysłany: 2016-08-11, 21:41
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
addEvent ( "silnik" , true )
addEventHandler ( "silnik" , root ,function()
local v = getPedOccupiedVehicle ( source )
if v then
local silnik = getVehicleEngineState ( v )
if silnik == false then
setVehicleEngineState ( v , true )
else
setVehicleEngineState ( v , false )
triggerClientEvent ( "dzwiek" , getRootElement (), silnik )
end
end
end )
client
addEvent ( "dzwiek" , true )
addEventHandler ( "dzwiek" , root , function()
playSound3D ( "silnik.mp3" )
end )
Wysłany: 2016-08-13, 18:29
Kalizman
Wiek: 23 Na forum: 3651 dni Posty: 1394
Piwa : 4619
Tagi: playsound
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: