joao2235 Posted September 10, 2019 Posted September 10, 2019 Tentei de várias formas fazer com que o player seja rotacionado, nenhuma delas deu certo. A linha em questão é a 144, segue o código completo abaixo: --DELEGACIAS local marker = {} local Positions = { createMarker(1536, -1675.5, 12, "cylinder", 4, 125, 0, 0, 150 ), --[[{1536 , -1675.5 ,12}, {2185 , -1757 ,12}, {777.6 , -1387.5 ,12}, {-1568.1 , 661.18 ,6}, {2290.18 , 2420.7 ,10}]]-- } function onCommand(command) if (command ~= 'say' ) then cancelEvent() end end carros = {} function salvacarro (vei, assento, vitima) carros[source] = vei end addEventHandler ('onPlayerVehicleEnter', root, salvacarro) function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end tx = 0 dx = 4.7 function encarcerar (preso) removeElementData (preso, 'navtr') setElementData (preso, 'naprisao', true) setElementInterior (preso, 6) setElementDimension (preso, 200) setElementFrozen (preso, false) setPedAnimation (preso) toggleAllControls (preso, true) toggleControl (preso, 'fire', false) if ( tx<6.1*dx ) then setElementPosition (preso, 1544.27+tx, -1637.42, -83.36+2) setPedRotation (preso, 0) tx = tx + dx elseif ( tx>5.9*dx and tx<13.9*dx ) then setElementPosition (preso, 1511.08+tx, -1616.37, -83.36) setPedRotation (preso, 180) tx = tx + dx elseif ( tx>13.9*dx and tx<17.1*dx) then setElementPosition (preso, 1483.31+tx, -1616.37, -89.5) setPedRotation (preso, 180) tx = tx + dx elseif ( tx>16.9*dx and tx<20.1*dx) then setElementPosition (preso, 1464.32+tx, -1637.42, -89.5) setPedRotation (preso, 0) tx = tx + dx elseif ( tx>19.9*dx ) then tx = 0 setElementPosition (preso, 1544.27+tx, -1637.42, -83.36) setPedRotation (preso, 0) tx = dx end end function delegacia (source) if getElementData (source, 'compreso') then local pregados = getAttachedElements(source) for _,preso in ipairs (pregados) do if ( getElementData (preso, 'navtr') ) then detachElements (preso, source) encarcerar(preso) local police = getVehicleOccupant (source, 0) local niv = getPlayerWantedLevel (preso) local premio = 5000*niv setPlayerMoney (police, getPlayerMoney(police)+ premio ) outputChatBox('#bebebeVocê prendeu um procurado nível #00ffff'..niv..'#bebebe e ganhou #00ffffR$ '..premio..'#bebebe de prêmio!' , police, 255, 255, 255, true) end end end end for i=1, #Positions do addEventHandler("onMarkerHit", Positions[i], delegacia) end function colocanavtr (police, _, name) if hasObjectPermissionTo(police, "function.Prender") then local preso = getPlayerFromPartialName(name) local px, py, pz = getElementPosition (police) local bx, by, bz = getElementPosition (preso) local dist = getDistanceBetweenPoints3D (px, py, pz, bx, by, bz) if not preso then return outputChatBox('#bebebe Jogador invalido.', police, 255, 255, 255, true) end if preso == police then return outputChatBox('#bebebe Você não pode prender a si mesmo.', police, 255, 255, 255, true) end if getPlayerWantedLevel(preso) == 0 then return outputChatBox('#bebebe Este jogador não está sendo procurado.', police, 255, 255, 255, true) end if getPedOccupiedVehicle(police) then return outputChatBox('#bebebe Você não pode prender de dentro da viatura.', police, 255, 255, 255, true) end if getPedOccupiedVehicle(preso) then return outputChatBox('#bebebe Você não pode prender um bandido enquanto ele estiver dentro de um veículo.', police, 255, 255, 255, true) end if dist >= 2 then return outputChatBox('#bebebe Você precisa chegar mais perto para prender.', police, 255, 255, 255, true) end setElementData (preso, 'navtr', true) addEventHandler('onPlayerCommand', preso, onCommand) local vtr = carros[police] setElementData (vtr, 'compreso', true) attachElements (preso, vtr, 0.2, -1.5, 0, 0,0,90) setElementFrozen (preso, true) toggleAllControls (preso, false) takeAllWeapons (preso) setPedAnimation (preso, 'ped','CAR_dead_LHS') vrx, vry, vrz = getElementRotation(vtr) setElementRotation(preso, vrx, vry, vrz+83) warpPedIntoVehicle (police, vtr) outputChatBox('#bebebeLeve o preso para a delegacia mais próxima #00ffff(sirenes azuis).', police, 255, 255, 255,true) end end addCommandHandler ('prender', colocanavtr) function libera (liberado) if ( getElementData(liberado, 'naprisao') ) then removeEventHandler('onPlayerCommand', liberado, onCommand) setElementData (liberado, 'naprisao', false) setElementInterior (liberado, 0) setElementDimension (liberado, 0) setElementPosition (liberado, 1553.1795654297,-1675.5323486328,16.1953125) setElementRotation (liberado, 0, 0, 90) toggleAllControls (liberado, true) end --[[if ( getElementData(liberado, 'navtr') ) then removeEventHandler('onPlayerCommand', liberado, onCommand) setElementData (liberado, 'navtr', false) setElementFrozen (liberado, false) detachElements (liberado, getElementAttachedTo(liberado) ) lx, ly, lz = getElementPosition (liberado) setElementPosition (liberado, lx+2 , ly+2 , lz) setPedAnimation (liberado) toggleAllControls (liberado, true) end]]-- end function removeWantedLevel() for k, v in ipairs(getElementsByType ('player')) do if (getElementData (v, 'naprisao')) then setPlayerWantedLevel(v, getPlayerWantedLevel(v)-1) if getPlayerWantedLevel(v) < 1 then libera (v) end end end end setTimer(removeWantedLevel, 40000, 0) function stars(source) setPlayerWantedLevel(source, 1) end addCommandHandler("testes", stars) No código (line 144) peço para que o Player rotacione 90°, mas isso não ocorre. Se puderem me ajudar agradeço!
Other Languages Moderators Lord Henry Posted September 10, 2019 Other Languages Moderators Posted September 10, 2019 SetElementRotation não é como o moveObject. Ele não vai rotacionar 90º, ele vai ficar no ângulo de 90º em relação ao mundo. Isto é, ele vai ficar apontado para Oeste. Você está setando interior, dimensão, posição e rotação ao mesmo tempo. Experimente colocar a rotação em um pequeno timer. setTimer (setElementRotation, 100, 1, liberado, 0, 0, 90) 1
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now