Wysłany: 2020-04-15, 22:30
Irvs
Wiek: 30 Na forum: 2680 dni Posty: 48
Piwa : 3
Cze?? wszystkim,
Mam problem z kodem, kt?ry jak zauwa?y?em jest sklejk? 2 skrypt?w.
Problem polega na tym, ?e gracz zakuty w kajdanki jest rozkuwany gdy osoba kt?ra go zaku?a wejdzie do samochodu lub interioru, jak temu zaradzi??
Czy kto? b?dzie w stanie pom?c to naprawi??
function kajdankii ( player , cmd , gracz )
if getElementData ( player , 'player:faction' ) and getElementData ( player , 'player:faction' )== 'SAPD' then
if not ( gracz ) then
outputChatBox ( "B??d! U?yj: /zakuj <nick/ID> " , player )
return
end
local targetElement = exports [ 'pystories-core' ]: findPlayer ( player , gracz )
if targetElement then
local x , y , z = getElementPosition ( player )
local tx , ty , tz = getElementPosition ( targetElement )
local distance = getDistanceBetweenPoints3D ( x , y , z , tx , ty , tz )
if ( distance <= 10 ) then
local dokogo = getElementData ( targetElement , "kajdanki" )
if ( not dokogo or not isElement ( dokogo )) then
if isPedInVehicle ( targetElement ) then
removePedFromVehicle ( targetElement )
end
toggleControl ( targetElement , "sprint" , false )
toggleControl ( targetElement , "jump" , false )
toggleControl ( targetElement , "aim_weapon" , false )
toggleControl ( targetElement , "fire" , false )
toggleControl ( targetElement , "crouch" , false )
triggerEvent ( "onKajdankiZakuj" , root , player , targetElement )
outputChatBox ( "#0078FFZa?o?y?e? kajdanki." , player , 255 , 0 , 0 , true )
-- outputChatBox ( "#0078FFPolicjant za?o?y? ci kajdanki. Nie mo?esz szybko biega?, skaka? ani prowadzi? pojazd?w." , targetElement , 255 , 0 , 0 , true )
else
toggleControl ( targetElement , "sprint" , true )
toggleControl ( targetElement , "jump" , true )
toggleControl ( targetElement , "crouch" , true )
triggerEvent ( "onKajdankiZakuj" , root , player , targetElement )
outputChatBox ( "* #0078FF?ci?gn??e? graczowi kajdanki." , player , 255 , 0 , 0 , true )
-- outputChatBox ( "* #0078FFPolicjant ?ci?gna? Ci kajdanki." , targetElement , 255 , 0 , 0 , true )
end
else
outputChatBox ( "* #0078FFJeste? za daleko gracza, ?eby m?c go zaku?." , player , 255 , 0 , 0 , true )
end
end
else
outputChatBox ( "#FF0000Nie Jeste? Policjantem." , player )
end
end
addCommandHandler ( "zakuj" , kajdankii )
addEvent ( "onKajdankiZakuj" , true )
addEventHandler ( "onKajdankiZakuj" , resourceRoot , function( kto , kogo )
triggerClientEvent ( kogo , "onKajdankiZakuj" , resourceRoot , kto )
end )
local function follow ()
local dokogo = getElementData ( localPlayer , "kajdanki" )
if ( not dokogo or not isElement ( dokogo )) then
setElementData ( localPlayer , "kajdanki" , nil )
removeEventHandler ( "onClientPreRender" , root , follow )
triggerServerEvent ( "setPedAnimation" , localPlayer )
return
end
if ( getPedOccupiedVehicle ( dokogo ) or getElementInterior ( dokogo )~= getElementInterior ( localPlayer ) or getElementDimension ( dokogo )~= getElementDimension ( localPlayer )) then
setElementData ( localPlayer , "kajdanki" , true )
-- removeEventHandler ( "onClientPreRender" , root , follow )
triggerServerEvent ( "setPedAnimation" , localPlayer )
setElementInterior ( localPlayer , getElementInterior ( dokogo ))
setElementDimension ( localPlayer , getElementDimension ( dokogo ))
local veh = getPedOccupiedVehicle ( dokogo )
warpPedIntoVehicle ( localPlayer , veh , 3 )
toggleControl ( localPlayer , "enter_exit" , false )
return
end
local x , y , z = getElementPosition ( dokogo )
local x2 , y2 , z2 = getElementPosition ( localPlayer )
local kat = 0
kat = math . deg ( math . atan (- 1 *( x2 - x )/( y2 - y )))
if ( y2 - y )< 0 then
kat = kat + 180.0
end
kat =( kat + 180 )% 360
setPedRotation ( localPlayer , kat )
local dist = getDistanceBetweenPoints3D ( x , y , z , x2 , y2 , z2 )
if ( dist < 1 ) then
setControlState ( "forwards" , false )
else
setControlState ( "forwards" , true )
end
if ( dist > 30 ) then
setElementPosition ( localPlayer , x + math . random (- 1 , 1 ), y + math . random (- 1 , 1 ), z + math . random ( 0 , 10 )/ 10 )
return
end
if ( dist > 2 ) then
setControlState ( "sprint" , true )
setControlState ( "walk" , false )
else
setControlState ( "walk" , true )
setControlState ( "sprint" , false )
end
end
addEvent ( "onKajdankiZakuj" , true )
addEventHandler ( "onKajdankiZakuj" , resourceRoot , function( kto )
local obecnie = getElementData ( localPlayer , "kajdanki" )
if ( obecnie and obecnie == kto ) then
setElementData ( localPlayer , "kajdanki" , false )
removeEventHandler ( "onClientPreRender" , root , follow )
triggerServerEvent ( "setPedAnimation" , localPlayer )
outputChatBox ( getPlayerName ( kto ): gsub ( "#%x%x%x%x%x%x" , "" ) .. " zdejmuje z Ciebie kajdanki." , 0 , 0 , 255 )
return
end
outputChatBox ( getPlayerName ( kto ): gsub ( "#%x%x%x%x%x%x" , "" ) .. " zakuwa Ci? w kajdanki." , 0 , 0 , 255 )
setElementData ( localPlayer , "kajdanki" , kto )
addEventHandler ( "onClientPreRender" , root , follow )
end )
-------------------------------
local obecnie = getElementData ( localPlayer , "kajdanki" )
if ( obecnie and isElement ( obecnie )) then
addEventHandler ( "onClientPreRender" , root , follow )
end
Wysłany: 2020-04-15, 23:02
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Usu? linijke dotycz?ca ustawiania element daty "kajdanki" na true w warunku getPedOccupiedVehicle w funkcji follow. Wpisujesz dane potrzebne do ustawiania pozycji i wtedy Ci? rozkuwa.
Wysłany: 2020-04-20, 12:34
Irvs
Wiek: 30 Na forum: 2680 dni Posty: 48
Piwa : 3
Kto? potrafi pom?c?
Okej, a jak zrobi? by w momencie wsiadania do samochodu osoba zakuta te? wsiad?a?
Dopisa?em w funkcji follow tam gdzie by?o ustawianie arg. na True przy ElementDacie taki kod i niestety nie dzia?a
local veh = getPedOccupiedVehicle ( dokogo )
warpPedIntoVehicle ( localPlayer , veh , 3 )
toggleControl ( localPlayer , "enter_exit" , false )
debug nie pokazuje ?adnych b??d?w przy wsiadaniu do auta maj?c zakut? osobe.
oraz jest problem z teleportem do interioru
po warunku
if ( getPedOccupiedVehicle ( dokogo ) or getElementInterior ( dokogo )~= getElementInterior ( localPlayer ) or getElementDimension ( dokogo )~= getElementDimension ( localPlayer )) then
da?em nast?puj?cy kod i do pozycji przenosi, lecz interior i dimension pozostaj? stare
setTimer ( function()
setElementInterior ( localPlayer , getElementInterior ( dokogo ))
setElementDimension ( localPlayer , getElementDimension ( dokogo ))
local x , y , z = getElementPosition ( dokogo )
setElementPosition ( localPlayer , x + 1 , y , z )
end , 2000 , 1 )
[ Dodano : 2020-04-18, 03:47 ]
Tagi: kajdanki
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: