Search the Community
Showing results for tags 'veículo'.
-
porque meu codigo não esta destruindo o veiculo quando o player que spawnou sai dele? veiculo = {} function spawnVeh(source) if getPedOccupiedVehicle(source) == false then if getElementData(source, "Eletricista") == true then if getElementModel(source) == 11 then veiculo[source] = createVehicle(config.veh, 2458.3537597656,-2078.1528320312,13.546875) warpPedIntoVehicle(source, veiculo[source]) setElementRotation(veiculo[source], 0,0,180) setVehicleLocked(veiculo[source],true) setVehicleDamageProof(veiculo[source], true) end end else outputChatBox("você já esta em um veiculo") end end addEvent("spawnCar", true) addEventHandler("spawnCar", root, spawnVeh) function onSair(source) if getPedOccupiedVehicle(source) == false then destroyElement ( veiculo[source] ) veiculo[source] = nil end end addEventHandler("onPedVehicleExit", getRootElement(), onSair)
-
Olá estou com um problema com este resource de Painel de Sirene, o problema é o seguinte eu tenho markers no servidor para criar os veiculos que tenhem esse painel e tambem tem markers para os destruir, porem quando alguem destroi o veiculo com a sirene ou buzina ligada ela fica em loop sem parar ou seja o veiculo é deletado mas ela fica ali tocando Já tentei de todas as formas não consigo arrumar isso alguém pode ajudar? Client-side --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- local sx,sy = guiGetScreenSize() local screenW,screenH = guiGetScreenSize() local resW, resH = 1280, 720 local x, y = (screenW/resW), (screenH/resH) function dxsirenepainelsprp () local theVehicle = getPedOccupiedVehicle ( localPlayer ) if ( theVehicle ) then if getPedOccupiedVehicleSeat(localPlayer) == 1 or getPedOccupiedVehicleSeat(localPlayer) == 0 then if ( getElementModel ( theVehicle ) == 436 ) or ( getElementModel ( theVehicle ) == 490 ) or ( getElementModel ( theVehicle ) == 404 ) then dxDrawRectangle(screenW * 0.5477, screenH * 0.8151, screenW * 0.2350, screenH * 0.1471, tocolor(0, 0, 0, 255), false) dxDrawText("Painel Sirene", screenW * 0.3377, screenH * 0.8151, screenW * 0.9927, screenH * 0.8411, tocolor(255, 140, 0, 255), 1.00, "sans", "center", "center", false, false, false, false, false) if getElementData ( theVehicle, "vtrgiroflex" ) == false then dxDrawRectangle(screenW * 0.5550, screenH * 0.8867, screenW * 0.0637, screenH * 0.0417, tocolor(9, 9, 9, 180), false) else dxDrawRectangle(screenW * 0.5550, screenH * 0.8867, screenW * 0.0637, screenH * 0.0417, tocolor(255, 140, 0, 255), false) end if getElementData ( theVehicle, "vtrsirene" ) == false then dxDrawRectangle(screenW * 0.6319, screenH * 0.8867, screenW * 0.0637, screenH * 0.0417, tocolor(9, 9, 9, 180), false) else dxDrawRectangle(screenW * 0.6319, screenH * 0.8867, screenW * 0.0637, screenH * 0.0417, tocolor(255, 140, 0, 255), false) end if getElementData ( theVehicle, "vtrbuzina" ) == false then dxDrawRectangle(screenW * 0.7117, screenH * 0.8867, screenW * 0.0637, screenH * 0.0417, tocolor(9, 9, 9, 180), false) else dxDrawRectangle(screenW * 0.7117, screenH * 0.8867, screenW * 0.0637, screenH * 0.0417, tocolor(255, 140, 0, 255), false) end dxDrawText("1", screenW * 0.3468, screenH * 0.8672, screenW * 0.8287, screenH * 0.8867, tocolor(255, 140, 0, 255), 1.00, "sans", "center", "center", false, false, false, false, false) dxDrawText("2", screenW * 0.4212, screenH * 0.8672, screenW * 0.9056, screenH * 0.8867, tocolor(255, 140, 0, 255), 1.00, "sans", "center", "center", false, false, false, false, false) dxDrawText("3", screenW * 0.5023, screenH * 0.8672, screenW * 0.9854, screenH * 0.8867, tocolor(255, 140, 0, 255), 1.00, "sans", "center", "center", false, false, false, false, false) dxDrawText("Giroflex", screenW * 0.3500, screenH * 0.8932, screenW * 0.8214, screenH * 0.9206, tocolor(255, 255, 255, 255), 1.00, "sans", "center", "center", false, false, false, false, false) dxDrawText("Sirene", screenW * 0.4322, screenH * 0.8932, screenW * 0.8953, screenH * 0.9206, tocolor(255, 255, 255, 255), 1.00, "sans", "center", "center", false, false, false, false, false) dxDrawText("Buzina", screenW * 0.5103, screenH * 0.8932, screenW * 0.9780, screenH * 0.9206, tocolor(255, 255, 255, 255), 1.00, "sans", "center", "center", false, false, false, false, false) end end end end addEventHandler ( "onClientRender", getRootElement (), dxsirenepainelsprp ) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- local vehiclesSirenes = {} addEvent("startSireneSound",true) addEventHandler("startSireneSound",root, function() local theVehicle = getPedOccupiedVehicle ( localPlayer ) if ( theVehicle ) then if(vehiclesSirenes[source])then destroyElement(vehiclesSirenes[source]) vehiclesSirenes[source] = nil setElementData(theVehicle, "vtrsirene", false) else setElementData(theVehicle, "vtrsirene", true) vehiclesSirenes[source] = playSound3D( "sirene.mp3", 0,0,0, true ) setSoundMaxDistance(vehiclesSirenes[source], 150 ) setSoundVolume (vehiclesSirenes[source], 0.1) attachElements (vehiclesSirenes[source], source, 0, 0, 0 ) end end end) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- local vehiclesSirene3 = {} addEvent("startSireneSound3",true) addEventHandler("startSireneSound3",root, function() local theVehicle = getPedOccupiedVehicle ( localPlayer ) if ( theVehicle ) then if(vehiclesSirene3[source])then destroyElement(vehiclesSirene3[source]) vehiclesSirene3[source] = nil setElementData(theVehicle, "vtrbuzina", false) else setElementData(theVehicle, "vtrbuzina", true) vehiclesSirene3[source] = playSound3D( "horn.mp3", 0,0,0, true ) setSoundMaxDistance(vehiclesSirene3[source], 100 ) setSoundVolume (vehiclesSirene3[source], 1.0) attachElements (vehiclesSirene3[source], source, 0, 0, 0 ) end end end) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Emergency Lights resource by vovo4ka -- please, do not remove copyright -- Edited by #FurkanOzulus [OzulusTR] -- Special Thanks, vovo4ka for the this script :) local strobo_interval = 5 -- strobo light freq. 10 = 0.5 sec local is_strobo_enabled = enable -- enable/disable stroboscopic lights mode -- lamps local flash_interval = 2 -- flash freq -- led blink mode local blink_interval = 20 -- blink interval local blink_duration = 2 -- 1..blink_interval local car_lights_table = { -- Enforcer [427] = {["mode"]="lamp", [1]={["pos"]={0.45, 1.1, 1.42}, ["color"]={255,0,0}, ["size"]=0.2, ["phase"]=10.0}, [2]={["pos"]={-0.45, 1.1, 1.42}, ["color"]={255,0,0}, ["size"]=0.2, ["phase"]=10.0}, [3]={["pos"]={0.22, 1.1, 1.42}, ["color"]={255,0,0}, ["size"]=0.2, ["phase"]=0.0}, [4]={["pos"]={-0.22, 1.1, 1.42}, ["color"]={255,0,0}, ["size"]=0.2, ["phase"]=0.0}, [5]={["pos"]={-1.18, 0.1, 0.94}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=0.0}, [6]={["pos"]={-1.18, -1.63, 0.94}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=5.0}, [7]={["pos"]={-1.18, -3.37, 0.94}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=10.0}, [8]={["pos"]={1.18, 0.1, 0.94}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=0.0}, [9]={["pos"]={1.18, -1.63, 0.94}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=5.0}, [10]={["pos"]={1.18, -3.37, 0.94}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=10.0} }, -- Elegant PassatVtr -- Police Speed [436] = {["mode"]="led", [1]={["pos"]={-0.5,-0.1, 0.8}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [2]={["pos"]={0.5, -0.1, 0.8}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [3]={["pos"]={-0.1, 0.1, 0.8}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [4]={["pos"]={0.1, 0.1, 0.8}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [5]={["pos"]={-0.6, -0.25, 0.8}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [6]={["pos"]={0.6, -0.25, 0.8}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [7]={["pos"]={-0.2,0, 0.8}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [8]={["pos"]={0.2, 0, 0.8}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, -- [17]={["pos"]={-0.5,-0.1, 0.8}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [18]={["pos"]={0.5, -0.1, 0.8}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [19]={["pos"]={-0.1, 0.1, 0.8}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [199]={["pos"]={0.1, 0.1, 0.8}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [188]={["pos"]={-0.6, -0.25, 0.8}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [166]={["pos"]={0.6, -0.25, 0.8}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [177]={["pos"]={-0.2,0, 0.8}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [155]={["pos"]={0.2, 0, 0.8}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, --=-=-=-- [40]={["pos"]={-0.77, 2.10, 0.10}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=1.0}, [41]={["pos"]={0.77, 2.10, 0.10}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=1.0}, [42]={["pos"]={-0.6, 2.26, 0.10}, ["color"]={0,0,255}, ["size"]=0.1, ["phase"]=0.0}, [43]={["pos"]={0.6, 2.26, 0.10}, ["color"]={0,0,255}, ["size"]=0.1, ["phase"]=0.0}, ----frente^ }, -- radio patrulha [404] = {["mode"]="led", [1]={["pos"]={-0.5,-0.1, 1.0}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [2]={["pos"]={0.5, -0.1, 1.0}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [3]={["pos"]={-0.1, 0.1, 1.0}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [4]={["pos"]={0.1, 0.1, 1.0}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [5]={["pos"]={-0.6, -0.25, 1.0}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [6]={["pos"]={0.6, -0.25, 1.0}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [7]={["pos"]={-0.2,0, 1.0}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [8]={["pos"]={0.2, 0, 1.0}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, -- [17]={["pos"]={-0.5,-0.1, 1.0}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [18]={["pos"]={0.5, -0.1, 1.0}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [19]={["pos"]={-0.1, 0.1, 1.0}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [199]={["pos"]={0.1, 0.1, 1.0}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [188]={["pos"]={-0.6, -0.25, 1.0}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [166]={["pos"]={0.6, -0.25, 1.0}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [177]={["pos"]={-0.2,0, 1.0}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, [155]={["pos"]={0.2, 0, 1.0}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}, --=-=-=-- [40]={["pos"]={-0.77, 2.16, -0.36}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=1.0}, [41]={["pos"]={0.77, 2.16, -0.36}, ["color"]={255,0,0}, ["size"]=0.1, ["phase"]=1.0}, [42]={["pos"]={-0.6, 2.36, -0.36}, ["color"]={0,0,255}, ["size"]=0.1, ["phase"]=0.0}, [43]={["pos"]={0.6, 2.36, -0.36}, ["color"]={0,0,255}, ["size"]=0.1, ["phase"]=0.0}, ----frente^ }, --------=========--------- -- FBI Rancher [490] = {["mode"]="lamp", [1]={["pos"]={0, 0.2, 0.9}, ["color"]={255,0,0}, ["size"]=0.4, ["phase"]=5.0}, [2]={["pos"]={0.4, 0, 0.9}, ["color"]={255,0,0}, ["size"]=0.4, ["phase"]=0.0}, [3]={["pos"]={-0.4, 0, 0.9}, ["color"]={255,0,0}, ["size"]=0.4, ["phase"]=15.0}, [4]={["pos"]={0.55, -0.2, 0.9}, ["color"]={255,0,0}, ["size"]=0.4, ["phase"]=7.0}, [5]={["pos"]={-0.55, -0.2, 0.9}, ["color"]={255,0,0}, ["size"]=0.4, ["phase"]=20.0} }, -- since 0.8 there are no default lights position, because only emergency and pre-defined vehicles can use lights --["default"] = {["mode"]="lamp", [1]={["pos"]={0.5, 0, 0.8}, ["color"]={255,0,0}, ["size"]=0.25, ["phase"]=0.0}, [2]={["pos"]={-0.5, 0, 0.8}, ["color"]={0,0,255}, ["size"]=0.25, ["phase"]=10.0}} } -- do not modify -------------------------------------------- local vehicles = {} local timers = {} local base_freq = 50 -- freq of timer for light change ------------------------------------------------------------- function release_vehicle(vehicle) if (isElement(vehicle)) then if (is_strobo_enabled) then setVehicleOverrideLights ( vehicle, 0) setVehicleLightState ( vehicle, 0, 1 ) setVehicleLightState ( vehicle, 1, 1 ) setVehicleLightState ( vehicle, 2, 1 ) setVehicleLightState ( vehicle, 3, 1 ) end end if (vehicles[vehicle]~=nil) then -- release the markers for key, value in pairs(vehicles[vehicle]["flist"]) do destroyElement (value["m"]) end setElementData(vehicle, "vtrgiroflex", false) vehicles[vehicle] = nil end if (timers[vehicle]~=nil) then -- kill the strobo timer killTimer(timers[vehicle]) timers[vehicle] = nil if (isElement(vehicle)) then if (getElementData( vehicle, "emerlights_source")==getPlayerName(getLocalPlayer())) then triggerEvent ( "onPlayerEmergencyLightStateChange", getRootElement(), 0 ) end end end end function checkForAbility(vehicle) local veh_model = getElementModel ( vehicle ) if (car_lights_table[veh_model]==nil)or(getElementData( vehicle, "emerlights_enabled" )=="false") then return false end return true end function strobo_state_update (vehicle) -- check for valid vehicle if (isElement(vehicle)) then if (vehicles[vehicle]==nil) then -- check for disallowing to use lights -- its enabled by default if (checkForAbility(vehicle)==false) then release_vehicle(vehicle) return end local veh_model = getElementModel ( vehicle ) --if (car_lights_table[veh_model]==nil) then --veh_model = "default" --end setElementData( vehicle, "emerlights_source", src, false) if (src==getPlayerName(getLocalPlayer())) then triggerEvent ( "onPlayerEmergencyLightStateChange", getRootElement(), 1 ) end -- init state variable vehicles[vehicle] = {} vehicles[vehicle]["lstate"] = 0 -- strobo lights state vehicles[vehicle]["fstate"] = 0 -- flash light state vehicles[vehicle]["flist"] = {} -- flash lights list (marker ids) -- create flash lights local mode = car_lights_table[veh_model]["mode"] if (mode==nil) then mode = "lamp" end local coeff = 0 if (mode=="lamp") then coeff = 3.141592654/10.0 else coeff = blink_interval/20.0 end vehicles[vehicle]["fmode"] = mode for light_id, light_desc in pairs(car_lights_table[veh_model]) do if (light_id~="mode") then vehicles[vehicle]["flist"][light_id] = {} vehicles[vehicle]["flist"][light_id]["m"] = createMarker( 0.0001, 0.0001, 0.0001, "corona", light_desc["size"], light_desc["color"][1], light_desc["color"][2], light_desc["color"][3], 100) vehicles[vehicle]["flist"][light_id]["p"] = light_desc["phase"]*coeff attachElements ( vehicles[vehicle]["flist"][light_id]["m"], vehicle, light_desc["pos"][1], light_desc["pos"][2], light_desc["pos"][3] ) end end end -- strobo light if (is_strobo_enabled) then setVehicleOverrideLights ( vehicle, 2) if (vehicles[vehicle]["lstate"]<strobo_interval) then setVehicleLightState ( vehicle, 0, 1 ) setVehicleLightState ( vehicle, 1, 0 ) setVehicleLightState ( vehicle, 2, 0 ) setVehicleLightState ( vehicle, 3, 1 ) else setVehicleLightState ( vehicle, 0, 0 ) setVehicleLightState ( vehicle, 1, 1 ) setVehicleLightState ( vehicle, 2, 1 ) setVehicleLightState ( vehicle, 3, 0 ) end if (vehicles[vehicle]["lstate"]>=strobo_interval*2) then vehicles[vehicle]["lstate"] = 0 else vehicles[vehicle]["lstate"] = vehicles[vehicle]["lstate"] + 1 end end -- flash light if (vehicles[vehicle]["fmode"]=="lamp") then -- lamp mode local tmp_fstate = vehicles[vehicle]["fstate"] for key, value in pairs(vehicles[vehicle]["flist"]) do local R, G, B, A = getMarkerColor( value["m"] ) setMarkerColor(value["m"], R, G, B, (math.sin(tmp_fstate+value["p"])+1.0)*128.0) end vehicles[vehicle]["fstate"] = vehicles[vehicle]["fstate"] + flash_interval else -- led mode local tmp_fstate = vehicles[vehicle]["fstate"] for key, value in pairs(vehicles[vehicle]["flist"]) do local R, G, B, A = getMarkerColor(value["m"]) -- blinking mode local tmp_val = tmp_fstate+value["p"] if (tmp_val>blink_interval) then tmp_val = tmp_val - blink_interval end if ((tmp_val>=0)and(tmp_val<blink_duration))or((tmp_val>=blink_duration+1)and(tmp_val<blink_duration*2+1)) then setMarkerColor(value["m"], R, G, B, 255) else setMarkerColor(value["m"], R, G, B, 0) end end vehicles[vehicle]["fstate"] = vehicles[vehicle]["fstate"] + 1 if (vehicles[vehicle]["fstate"]>blink_interval) then vehicles[vehicle]["fstate"] = vehicles[vehicle]["fstate"] - blink_interval end end else -- if vehicle is no more exists release_vehicle(vehicle) end end function isStroboLightsOn (vehicle_id) if (timers[vehicle_id]) then return 1 else return 0 end end function setStroboLightsOn(vehicle_id, value) if ( vehicle_id ) then if (value==nil) then if (isStroboLightsOn(vehicle_id)==1) then value = 0 else value = 1 end; end; if (value==0) then if (timers[vehicle_id]) then release_vehicle(vehicle_id) end end if (value==1) then if (timers[vehicle_id]) then release_vehicle(vehicle_id) end -- create strobo timer timers[vehicle_id] = setTimer ( strobo_state_update, base_freq, 0, vehicle_id ) end end end -- only local effect function enableStroboLightsMode(source, value) if (value=="0")or(value=="false") then is_strobo_enabled = false --outputConsole("Stroboscopic mode disabled") else if (value=="1")or(value=="true") then is_strobo_enabled = true --outputChatBox("Stroboscopic mode enabled") else --outputChatBox("Usage: strobo 0 or strobo 1 for disable/enable stroboscopic lights mode") end end end addCommandHandler("strobo", enableStroboLightsMode) -- triggered by server function setEmerlightsState(value, state) local player = getPlayerFromName ( value ) local vehicle = getPedOccupiedVehicle(player) if (vehicle) then setStroboLightsOn(vehicle, state) end end addEvent("setEmerlights", true) addEventHandler("setEmerlights", getRootElement(), setEmerlightsState) function requestEmerlights() -- check for driver playerVehicle = getPedOccupiedVehicle (getLocalPlayer()) -- get the player's vehicle if (playerVehicle) then -- if player is not a driver if getPedOccupiedVehicleSeat(localPlayer) == 1 or getPedOccupiedVehicleSeat(localPlayer) == 0 then -- sync setElementData(playerVehicle, "vtrgiroflex", true) triggerServerEvent("requestEmerlightChangeState", getLocalPlayer(), 1-isStroboLightsOn(getPedOccupiedVehicle(getLocalPlayer()))) else -- not able to use lights for this vehicle --outputChatBox("unknown car!") end end end addCommandHandler("Strobo Light On", requestEmerlights)--stroboLightOn) bindKey("1", "down", "Strobo Light On") addEvent("onPlayerEmergencyLightStateChange") Server-Side --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- local viaturas = { [436]=true,[490]=true,[404]=true } function Sirene1(player,thePlayer,seat) local vehicle = getPedOccupiedVehicle(player) if(vehicle and viaturas[getElementModel(vehicle)])then if getPedOccupiedVehicleSeat(player) == 1 or getPedOccupiedVehicleSeat(player) == 0 then triggerClientEvent("startSireneSound",vehicle) setElementData(vehicle, "SireneTocando1", true) end end end function onResStart1() for index, player in ipairs(getElementsByType("player")) do bindKey(player, "2", "down", Sirene1) end end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), onResStart1) function onPlayerJoin1() bindKey(source, "2", "down", Sirene1) end addEventHandler("onPlayerJoin", getRootElement(), onPlayerJoin1) function cleanAll1(player) for index, player in ipairs(getElementsByType("player")) do unbindKey(player, "2", "down", Sirene1) end end addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), cleanAll1) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- local viaturas3 = { [436]=true,[490]=true,[404]=true } function Sireneamb2(player,seat) local vehicle = getPedOccupiedVehicle(player) if(vehicle and viaturas3[getElementModel(vehicle)])then if getPedOccupiedVehicleSeat(player) == 1 or getPedOccupiedVehicleSeat(player) == 0 then triggerClientEvent("startSireneSound3",vehicle) setElementData(vehicle, "SireneTocando2", true) end end end function onResStart3() for index, player in ipairs(getElementsByType("player")) do bindKey(player, "3", "both", Sireneamb2) end end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), onResStart3) function onPlayerJoin3() bindKey(source, "3", "both", Sireneamb2) end addEventHandler("onPlayerJoin", getRootElement(), onPlayerJoin3) function cleanAll3(player) for index, player in ipairs(getElementsByType("player")) do unbindKey(player, "3", "both", Sireneamb2) end end addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), cleanAll3) addEventHandler("onElementDestroy", getResourceRootElement(getThisResource()), function () local viaturas3 = { [436]=true,[490]=true,[404]=true } local vehicle = getPedOccupiedVehicle(player) if(vehicle and viaturas3[getElementModel(vehicle)])then for index, player in ipairs(getElementsByType("player")) do unbindKey(player, "3", "both", Sireneamb2) unbindKey(player, "2", "down", Sirene1) if (getElementData(vehicle, "SireneTocando1") == true) then setElementData(vehicle, "SireneTocando1", false) triggerClientEvent("startSireneSound",vehicle) end if (getElementData(vehicle, "SireneTocando2") == true) then setElementData(vehicle, "SireneTocando2", false) triggerClientEvent("startSireneSound3",vehicle) end end end end) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- function onPlayerRequestEmerlight(value) triggerClientEvent(getRootElement(), "setEmerlights", getRootElement(), getPlayerName(source), value) end addEvent("requestEmerlightChangeState", true) addEventHandler("requestEmerlightChangeState", getRootElement(), onPlayerRequestEmerlight) --> Furkan Özulus <--
-
Gostaria de saber se é possível configurar um "grupo" de veículos criado através de um script onde tenha limitação por ACL. Vou ser mais específico, estou criando um script onde spawna um carro qualquer que possui na cidade com algumas configurações através do spawn, como Sirens, handling, cor e etc. Porém só consigo criar a limitação do veículo todo, mesmo fora desse spawn há a limitação até mesmo sem por o id do carro na função. Tem como eu criar um grupo por exemplo, vtr1, vtr2, vtr3... e ajustar a limitação de acl para apenas essas vtr's específicas, deixando os demais spawns do mesmo carro de forma livre? Ex. Conce, painel e etc. Outra coisa, a limitação está de uma forma que o veículo pareça trancado para quem não está na ACL, porém se alguém tentar entrar no carro estando com a porta aberta o player consegue entrar no veículo. Como faço para que quando o player que não esteja na ACL não tente nem mesmo entrar no carro, ele aperta F e não acontece nada somente acusa a mensagem? local auto1 = createVehicle ( 587, 1595.05359, -1711.63843, 5.6, 0, 0.0, 0 ) --- setElementRotation ( auto1, 0, 0, 0) removeVehicleSirens(auto1) addVehicleSirens(auto1, 6, 2, true, false, true, true ) setVehicleSirens(auto1, 1, -0.850, 2.400, 0.000, 255, 0, 0, 255, 255 ) setVehicleSirens(auto1, 2, 0.850, 2.400, 0.000, 0, 55, 255, 255, 255 ) setVehicleSirens(auto1, 3, -0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto1, 4, 0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto1, 5, -0.500, -0.350, 0.630, 255, 0, 0, 255, 255 ) setVehicleSirens(auto1, 6, 0.500, -0.350, 0.630, 0, 0, 255, 255, 255 ) setVehicleColor( auto1, 0, 0, 0, 255,255,255, 255,255,255 ,255,255,255 ) setElementData(auto1,"Descaracterizada",true) setElementFrozen (auto1, false ) local auto2 = createVehicle ( 587, 1590.96777, -1711.61438, 5.6, 0, 0, 0 ) --- setElementRotation ( auto2, 0, 0, 0) removeVehicleSirens(auto2) addVehicleSirens(auto2, 6, 2, true, false, true, true ) setVehicleSirens(auto2, 1, -0.850, 2.400, 0.000, 255, 0, 0, 255, 255 ) setVehicleSirens(auto2, 2, 0.850, 2.400, 0.000, 0, 55, 255, 255, 255 ) setVehicleSirens(auto2, 3, -0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto2, 4, 0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto2, 5, -0.500, -0.350, 0.630, 255, 0, 0, 255, 255 ) setVehicleSirens(auto2, 6, 0.500, -0.350, 0.630, 0, 0, 255, 255, 255 ) setVehicleColor( auto2, 0, 0, 0, 255,255,255, 255,255,255 ,255,255,255 ) setElementData(auto2,"Descaracterizada",true) setElementFrozen (auto2, false ) local auto3 = createVehicle ( 587, 1587.30481, -1712.10596, 5.6,0,0.0,0 ) --- removeVehicleSirens(auto3) addVehicleSirens(auto3, 6, 2, true, false, true, true ) setVehicleSirens(auto3, 1, -0.850, 2.400, 0.000, 255, 0, 0, 255, 255 ) setVehicleSirens(auto3, 2, 0.850, 2.400, 0.000, 0, 55, 255, 255, 255 ) setVehicleSirens(auto3, 3, -0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto3, 4, 0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto3, 5, -0.500, -0.350, 0.630, 255, 0, 0, 255, 255 ) setVehicleSirens(auto3, 6, 0.500, -0.350, 0.630, 0, 0, 255, 255, 255 ) setVehicleColor( auto3, 0, 0, 0, 0,0,0, 255,255,255 ,255,255,255 ) setElementData(auto3,"Descaracterizada",true) setElementFrozen (auto3, false ) local auto4 = createVehicle ( 587, 1583.30481, -1712.10596, 5.6,0,0.0,0 ) --- setElementRotation ( auto4, 0, 0, 0) removeVehicleSirens(auto4) addVehicleSirens(auto4, 6, 2, true, false, true, true ) setVehicleSirens(auto4, 1, -0.850, 2.400, 0.000, 255, 0, 0, 255, 255 ) setVehicleSirens(auto4, 2, 0.850, 2.400, 0.000, 0, 55, 255, 255, 255 ) setVehicleSirens(auto4, 3, -0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto4, 4, 0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto4, 5, -0.500, -0.350, 0.630, 255, 0, 0, 255, 255 ) setVehicleSirens(auto4, 6, 0.500, -0.350, 0.630, 0, 0, 255, 255, 255 ) setVehicleColor( auto4, 0, 0, 0, 0,0,0, 255,255,255 ,255,255,255 ) setElementData(auto4,"Descaracterizada",true) setElementFrozen (auto4, false ) function enterVehicle(thePlayer, seat, jacked) local account = getPlayerAccount(thePlayer) if (not account or isGuestAccount(account)) then return end local accountName = getAccountName(account) if (not isObjectInACLGroup("user.".. accountName,aclGetGroup("PF"))) then setVehicleLocked(source, true) outputChatBox("#ffff00Você não é da polícia", thePlayer) else setVehicleLocked(source, false) end end addEventHandler("onVehicleStartEnter",root,enterVehicle) ---- Reparo VTR local marker = createMarker(1585.41992, -1677.68030, 5.89699-0.9,"cylinder", 2, 20, 20, 20, 255) function reparar(el,md) if getElementType(el)=="vehicle" then if getElementModel(el)==587 then p=getVehicleController(el) local money = getPlayerMoney(p) if (money >= 0) then takePlayerMoney(p, 0) outputChatBox("Reparando veículo! Aguarde 5 segundos",p,255,0,0) setElementFrozen (el, true ) setTimer(function() setElementFrozen(el, false) fixVehicle(el) end, 5000, 1) else outputChatBox("Não podemos reparar sua viatura, você está com saldo negativo!",p,255,255,255) return end end end end addEventHandler("onMarkerHit", marker, reparar)
-
Olá estou com problemas em meu emprego, todo mundo mesmo quem não está atrabalhando neste emprego consegue spawnar o veiculo do trabalho apenas indo até o marker, tentei por uma proteção que faça com quem tem a skin do emprego consiga pegar o carro e o destruir. porém nenhum resultado se conseguirem me ajudar agraçederia muito. local marker = createMarker(2681.17285, -1957.08862, 12.7, "cylinder", 1.0, 0, 0, 255, 255) local Dmarker = createMarker(2679.63989, -1968.49829, 12.5, "cylinder", 3.0, 255, 0, 0, 100) function enterVehicle ( player, seat, jacked ) --quando um jogador entra em um veículo policeLimpador = { [552]=true} --ID Veiculos Policiais policeLimpadorSkins = { [27]=true } --ID Skins Policiais if ( policeLimpador[getElementModel(source)] ) and ( not policeLimpadorSkins[getElementModel(player)] ) then --se o veículo é um dos 4 carros da polícia, ea pele não é uma pele polícia cancelEvent() outputChatBox ( "#ff0000Somente Motoristas podem entrar neste veiculo", player, 255, 255, 255, true ) --and tell the player why end end addEventHandler ( "onVehicleStartEnter", getRootElement(), enterVehicle ) --add an event handler for onVehicleStartEnter function Vehicle( thePlayer ) if getElementType(thePlayer) == "player" then local x,y,z = getElementPosition(thePlayer) veh = createVehicle(552, 2687.59, -1970.002, 13.547, -0, 0, 266.348 ) warpPedIntoVehicle(thePlayer, veh) end end addEventHandler("onMarkerHit", marker, enterVehicle) function destroy (hitElement) if getElementType(hitElement) == "Vehicle" then destroyElement(hitElement) end end addEventHandler("onMarkerHit", Dmarker, destroy)
-
Boa Noite. Estou modificando um script de concessionaria para deixa-lo mais rp. e quero mudar 2 funções nele 1° - Mudar a função de trancar veículo para quando o proprietário sair do servidor só ele conseguir abrir novamente pelo painel de veículos. addEvent("LockMyVehicle", true) addEventHandler("LockMyVehicle", root, function(id) local vehicle = getVehicleByID(id) if isElement(vehicle) then if not isVehicleLocked(vehicle) then setVehicleLocked(vehicle, true) setVehicleDoorsUndamageable(vehicle, true) setVehicleDoorState(vehicle, 0, 0) setVehicleDoorState(vehicle, 1, 0) setVehicleDoorState(vehicle, 2, 0) setVehicleDoorState(vehicle, 3, 0) outputChatBox("#ffffff|#0000FF SRP - CONCESSIONÁRIA #ffffff| O seu veículo #0000FF"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #FFFFFFfoi #0000FFfechado.", source, 38, 122, 216, true) elseif isVehicleLocked(vehicle) then setVehicleLocked(vehicle, false) setVehicleDoorsUndamageable(vehicle, false) outputChatBox("#ffffff|#0000FF SRP - CONCESSIONÁRIA #ffffff| O seu veículo #0000FF"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #FFFFFFfoi #0000FFaberto.", source, 38, 122, 216, true) end else outputChatBox("#ffffff|#0000FF SRP - CONCESSIONÁRIA #ffffff| O seu veiculo não foi conectado.", source, 38, 122, 216, true) end end) 2° - Alterar a função de quando o proprietário do veiculo sair do servidor o veículo não sumir (ser destruido) function SaveVehicleDataOnQuit() for i, veh in ipairs (getElementsByType("vehicle")) do if getElementData(veh, "Owner") == source then destroyVehicle(veh) end end end addEventHandler("onPlayerQuit", root,SaveVehicleDataOnQuit) Podem me ajudar? por onde começo?
-
Opa blz! Preciso de ajuda, como fazer para deixar outro jogador que não seja do grupo "VIPCARRO" pelo menos pegar carona ?? ? ? E também como fazer pra colocar ao invés da ACL do grupo, colocar o veiculo pelo nick do jogador ??? function enterVehicle(thePlayer, seat, jacked) local account = getPlayerAccount(thePlayer) if (not account or isGuestAccount(account)) then return end local accountName = getAccountName(account) if (getElementModel(source) == 602) and (not isObjectInACLGroup("user.".. accountName,aclGetGroup("VIPCARRO"))) then setVehicleLocked(source, true) outputChatBox("#ffff00SOMENTE MEMBROS DA #000000[ #ff0000Nome da gang #000000] #ffff00PODEM USAR ESSE VEICULO!", thePlayer) else setVehicleLocked(source, false) end end addEventHandler("onVehicleStartEnter",root,enterVehicle)
-
Tem como usar o setVehicleComponentScale para aumentar peças do veiculo para todos os players?Tem que usar triggerClientEvent?Tentei usar mas n consegui,n sei usar essa função
-
Olá Pessoal, como fazer para clicar em um veículo e receber no chat uma localização da roda dele? Já tenho a ideia de como usar o getVehicleComponentPosition (algo do lado do cliente), mas como identificar ou veicular o que estou tentando ver no OnElementClicked é do lado Server? function rodadireita (source) local vehicle = --Queria por aqui o veiculo que estou clicando x, y, z = getVehicleComponentPosition ( vehicle , "wheel_rf_dummy", "world") outputChatBox ( "Cordenadas:"..x..", "..y..", "..z, 255, 255, 255, true ) end
-
Estou querendo fazer um script que quando clico no carro,me mostre as coordenadas da roda,mas a função getVehicleComponentPosition é somente do lado client e não sei jogar elas pro lado serve
-
Estou tentando criar uma função que faça com que a porta do veículo em que o Player estava seja fechada assim que ele deixar o carro. Não sei se isso é possível, mas tentei da seguinte maneira, porém sem sucesso: local theVehicle = getPedOccupiedVehicle ( source ) function SairVeiculo (theVehicle, leftSeat, jackerPlayer) if leftSeat == 0 and not jackerPlayer then setVehicleDoorOpenRatio ( theVehicle, 2, 0, 2500) setVehicleDoorOpenRatio ( theVehicle, 4, 0, 2500) end end addEventHandler("onPlayerVehicleExit", root, SairVeiculo) Se houver alguma maneira e puderem me ajudar, agradeço!
-
for i,veh in ipairs(spawnpatriot) do local x,y,z = veh[1],veh[2],veh[3] veh = createVehicle(470,x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,5) attachElements(vehCol, veh, 0, 0, 0 ) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementData(vehCol,"MAX_Slots",80) -- setElementHealth(veh,10000) local tires,engine,parts = getVehicleAddonInfos (getElementModel(veh)) setElementData(vehCol,"Tire_inVehicle",math.random(0,tires)) setElementData(vehCol,"Engine_inVehicle",math.random(0,engine)) setElementData(vehCol,"Parts_inVehicle",math.random(0,parts)) setElementData(vehCol,"spawn",{470,x,y,z,rx,ry,rz}) setElementData(vehCol,"fuel",10) -- setTimer(destroyElement, 60000, 1, veh) -- setTimer(destroyElement, 60000, 1, vehCol) end Pessoal estou com dificuldade no Spawn de veiculo do meu servidor. Nesse cado o patriot spawna sempre na mesma direção e eu queria que cada spawn tivesse sua rotação no local. local spawnpatriot = { {-755.21899414063,714.38708496094,18.156896591187,0,0,180}, {-760.74725341797,702.11535644531,18.427885055542,0,0,50} Alguém pode me ajudar?
-
resource controller Qual destes métodos é mais otimizado?
Lord Henry posted a topic in Programação em Lua
Olá senhoras e senhores. Tenho uma micro-dúvida com relação ao desempenho quando um resource controla os outros. A situação é a seguinte: Tenho 1 resource de painel de gerenciamento de mods de veículos (chamaremos de vehMods). Nesse painel tem uma lista com todos os veículos com as colunas ID, Veículo (nome), Status (ativado/desativado). Quando o jogador clica 2x em um veículo da lista, o painel ativa/desativa a modificação daquele veículo. Mas a modificação está em outro mod de veículo, cada veículo tem seu próprio resource de modificação (exemplo de resource: 420TaxiBMW). Dai o resource do painel vai gerenciar este outro resource do Taxi. Atualmente estou controlando os demais resources apenas forçando o jogador a executar o comando deles depois de clicar no painel. Ex: O jogador clica 2x no item da lista "Taxi". Dai o painel força o jogador que clicou a usar o comando /enableVeh 420 (o 420 ele pega de acordo com o ID que aparece na lista e o comando enableVeh ele usa dependendo do status que aparece na lista. Se estiver como "desativado", ele usa /enableVeh. Se estiver "ativado", ele usa /disableVeh. Dai com esse comando, o mod do Taxi vai aplicar/remover a modificação no Taxi e mandar uma mensagem de confirmação. Como poderia ser: Eu estava pensando em trocar por funções exportadas (call/exports). No entanto na Wiki tem um aviso que essa função é pesada quando executada para chamar funções de outros resources. Cada mod de veículo exportaria sua função que ativa/desativa seu veículo. Logicamente essas funções vão seguir o mesmo padrão, assim como os comandos seguem atualmente. Dai o painel passaria a não precisar mais da permissão especial function.executeCommandHandler (ou acesso Admin). Do jeito que está, além do painel precisar da permissão especial pra funcionar, ele usa triggers para passar o clique do painel (client-side) para o server-side para só então fazer o executeCommandHandler. Já tentei colocar TODOS os veículos no mesmo resource, mas ele estourou o limite de tamanho de segurança do MTA, que passa a não carregar os arquivos excedentes para evitar a queda do servidor. Imagina se eu carregasse isso num server hosteado! Geral ia tomar disconnect! O que vcs acham? Manter por comando forçado ou trocar por função exportada? (ou uma terceira sugestão)- 13 replies
-
- executecommandhandler
- export
-
(and 2 more)
Tagged with:
-
Podem me ajudar com um script que Repara o Veiculo quando você está dentro dele? Não tenho muito conhecimento na area e estava precisando desse Script para o meu servidor Preciso que a pessoa que tenha essa tag determinada , de mecanico por exemplo , conseguisse reparar o veiculo dando /repararveiculo , por exemplo POR FAVOR , ME AJUDEM!
-
local Veiculos = {494} -- IDs dos Veículos. Tulio = {} function CreateVehicle (source) if getElementData (source, "Pegou", true) then outputChatBox ('#c1c1c1Aguarde #ffffff20 #ffffffsegundos para pegar novamente.',source,255,255,255,true) return end if isElement(Tulio[source]) then destroyElement (Tulio[source]) Tulio[source] = nil end local x,y,z = getElementPosition (source) local Cars = Veiculos[math.random(#Veiculos)] Tulio[source] = createVehicle (Cars,x,y,z) setElementData (source, "Pegou",true) setTimer (setElementData, 20000, 1, source, "Pegou", false) end addCommandHandler ("494", CreateVehicle) function DestroyVeiculo () destroyElement (Tulio[source]) end addEventHandler ("onPlayerLogout", root, DestroyVeiculo) addEventHandler ("onPlayerQuit", root, DestroyVeiculo) addEventHandler ("onPlayerWasted", root, DestroyVeiculo) Como eu faço com que esse script faça o veiculo do player sair do lado e não encima dele?
-
Estou tentando criar um recurso de assalto ao carro forte, que funcionara da seguinte forma: Em determinado horário do jogo, o carro forte vai seguir uma rota, e o jogador deve matar os peds dentro do carro forte, em seguida explodir a parte onde ficam guardadas as sacolas de dinheiro, as quais vão ser possível roubar. A minha única dúvida até o momento sera na forma que posso fazer o veiculo(carro forte) seguir uma rota automaticamente, sendo controlado por um ped. Alguém sabe uma solução? Agradeço desde já.
-
GALERA EU TO CRIANDO UM PAINEL VIP E QUERIA UM SCRIPT QUE EU COLOQUE NO PAINEL PRA BLINDAR O CARRO ASSIM QUE A PESSOA PEGA ELE MAIS EU NAO SEI MI AJUDEM PFV E PQ COLOQUEI NO MEU PAINEL OPÇAO BLINDAGEM E PRECISO MT MT MSM QUEM MI AJUDAR VLW
- 1 reply
-
- blindagem
- indestrutivel
-
(and 2 more)
Tagged with: