kieran Posted July 10, 2017 Share Posted July 10, 2017 (edited) So I found a script on resources for trucker, server side though, and I am trying to tweak it to be client side, code is in spoiler because it kinda "medium sized"... But the problem on my debugscript 3 it says nothing when I hit spawn marker, marker is there, but no vehicle spawns, nothing happens... Any help at all is good had this sitting there for weeks now and kept meaning to make it better :3 Spoiler --// Made by: MoPoMaN --//Tables and other stuff tableLocationsX = {} tableLocationsY = {} tableLocationsZ = {} tableMoney = {} locationCount = 3 --//Location 1 tableLocationsX[1] = 2253.7 tableLocationsY[1] = -84.0 tableLocationsZ[1] = 25.3 tableMoney[1] = 500 --//Location 2 tableLocationsX[2] = 1093.7 tableLocationsY[2] = -931.6 tableLocationsZ[2] = 41.9 tableMoney[2] = 550 --//Location3 tableLocationsX[3] = -47.3 tableLocationsY[3] = -1137.5 tableLocationsZ[3] = 0.07 tableMoney[3] = 500 function startScript () --Marker marker = createMarker (2776.6, -2425.5, 12.6, "cylinder", 1.1, 0, 255, 0) addEventHandler ("onMarkerHit", marker, startMission) --Objects and Ped ped = createPed (302, 2776.7, -2428.1, 13.6) tableObj = createObject (2205, 2775.9, -2426.8, 12.6) chairObj = createObject (2309, 2776.7, -2427.4, 12.6) addEventHandler ("onPedWasted", getRootElement(), respawnPed) --Blip startBlip = createBlip (2776.9, -2423.9, 12.7, 51) end function startMission (hitElement) if getElementType (hitElement) == "player" then truck = createVehicle (515, 2779.6, -2437.2, 14.7, 0, 0, 90) trailer = createVehicle (450, 2789.2, -2437.1, 14.2, 0, 0, 90) randomLoc = math.random (1, locationCount) finish = createMarker (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], "cylinder", 3, 0, 200, 55, 255, hitElement) blip = createBlip (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], 0, 2, 255, 0, 0, 255, 0, 10000, hitElement) --addEventHandlers addEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) addEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) addEventHandler ("onMarkerHit", finish, reward) addEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other setVehicleLocked (truck, true) destroyElement (startBlip) player = hitElement outputChatBox ("#ffaa00***#ffffffDrive to the red blip on the map #ffaa00***", player, 255, 255, 255, true) setElementPosition (marker, -406, -64, 2.4) warpPedIntoVehicle (hitElement, truck) -- end else return false end end function trailerDetach () if source == trailer then --destroyThings outputChatBox ("#ffffffMission failed, go back for more cargo!", player, 255, 255, 255, true) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false end end function vehicleExit (leaver) if source == truck and leaver == player then setVehicleLocked (truck, false) outputChatBox ("#ffaa00// #ffffffGo back to the truck in 10 seconds!", leaver, 255, 255, 255, true) destroyTimer = setTimer (destroyVehicle, 10000, 1) addEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) else return false end end function destrTimer (thePlayer) if source == truck and thePlayer == player then local team = getPlayerTeam (thePlayer) if getTeamName (team) == "Freeroam" or getTeamName (team) == "The Police" then return false else killTimer (destroyTimer) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) setVehicleLocked (truck, true) end else return false end end function destroyVehicle () if destroyTimer then --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false end end function onQuit () if source == player then --destroyThings destroyElement (truck) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) end end function reward (hitElement) if hitElement == truck then --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) outputChatBox ("#ffaa00// #ffffffGood job! You've been rewarded " .. tableMoney[randomLoc] .. "$", player, 255, 255, 255, true) setElementPosition (marker, 2776.6, -2425.5, 12.6) occupant = getVehicleOccupant (truck, 0) givePlayerMoney (occupant, tableMoney[randomLoc]) --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) else return false end end function respawnPed () if source == ped then timer = setTimer (pedRespawn, 5000, 1) else return false end end function pedRespawn () killTimer (timer) destroyElement (ped) ped = createPed (302, 2776.7, -2428.1, 13.6) end addEventHandler ("onClientResourceStart", getResourceRootElement(getThisResource()), startScript) All made by NoPoMaN, but as I say, it is server side, so worried there will be loads of problems with markers etc So tryna change to client Edited July 10, 2017 by kieran Link to comment
Ayush Rathore Posted July 10, 2017 Share Posted July 10, 2017 1 hour ago, kieran said: So I found a script on resources for trucker, server side though, and I am trying to tweak it to be client side, code is in spoiler because it kinda "medium sized"... But the problem on my debugscript 3 it says nothing when I hit spawn marker, marker is there, but no vehicle spawns, nothing happens... Any help at all is good had this sitting there for weeks now and kept meaning to make it better :3 Hide contents --// Made by: MoPoMaN --//Tables and other stuff tableLocationsX = {} tableLocationsY = {} tableLocationsZ = {} tableMoney = {} locationCount = 3 --//Location 1 tableLocationsX[1] = 2253.7 tableLocationsY[1] = -84.0 tableLocationsZ[1] = 25.3 tableMoney[1] = 500 --//Location 2 tableLocationsX[2] = 1093.7 tableLocationsY[2] = -931.6 tableLocationsZ[2] = 41.9 tableMoney[2] = 550 --//Location3 tableLocationsX[3] = -47.3 tableLocationsY[3] = -1137.5 tableLocationsZ[3] = 0.07 tableMoney[3] = 500 function startScript () --Marker marker = createMarker (2776.6, -2425.5, 12.6, "cylinder", 1.1, 0, 255, 0) addEventHandler ("onMarkerHit", marker, startMission) --Objects and Ped ped = createPed (302, 2776.7, -2428.1, 13.6) tableObj = createObject (2205, 2775.9, -2426.8, 12.6) chairObj = createObject (2309, 2776.7, -2427.4, 12.6) addEventHandler ("onPedWasted", getRootElement(), respawnPed) --Blip startBlip = createBlip (2776.9, -2423.9, 12.7, 51) end function startMission (hitElement) if getElementType (hitElement) == "player" then truck = createVehicle (515, 2779.6, -2437.2, 14.7, 0, 0, 90) trailer = createVehicle (450, 2789.2, -2437.1, 14.2, 0, 0, 90) randomLoc = math.random (1, locationCount) finish = createMarker (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], "cylinder", 3, 0, 200, 55, 255, hitElement) blip = createBlip (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], 0, 2, 255, 0, 0, 255, 0, 10000, hitElement) --addEventHandlers addEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) addEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) addEventHandler ("onMarkerHit", finish, reward) addEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other setVehicleLocked (truck, true) destroyElement (startBlip) player = hitElement outputChatBox ("#ffaa00***#ffffffDrive to the red blip on the map #ffaa00***", player, 255, 255, 255, true) setElementPosition (marker, -406, -64, 2.4) warpPedIntoVehicle (hitElement, truck) -- end else return false end end function trailerDetach () if source == trailer then --destroyThings outputChatBox ("#ffffffMission failed, go back for more cargo!", player, 255, 255, 255, true) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false end end function vehicleExit (leaver) if source == truck and leaver == player then setVehicleLocked (truck, false) outputChatBox ("#ffaa00// #ffffffGo back to the truck in 10 seconds!", leaver, 255, 255, 255, true) destroyTimer = setTimer (destroyVehicle, 10000, 1) addEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) else return false end end function destrTimer (thePlayer) if source == truck and thePlayer == player then local team = getPlayerTeam (thePlayer) if getTeamName (team) == "Freeroam" or getTeamName (team) == "The Police" then return false else killTimer (destroyTimer) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) setVehicleLocked (truck, true) end else return false end end function destroyVehicle () if destroyTimer then --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false end end function onQuit () if source == player then --destroyThings destroyElement (truck) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) end end function reward (hitElement) if hitElement == truck then --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) outputChatBox ("#ffaa00// #ffffffGood job! You've been rewarded " .. tableMoney[randomLoc] .. "$", player, 255, 255, 255, true) setElementPosition (marker, 2776.6, -2425.5, 12.6) occupant = getVehicleOccupant (truck, 0) givePlayerMoney (occupant, tableMoney[randomLoc]) --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) else return false end end function respawnPed () if source == ped then timer = setTimer (pedRespawn, 5000, 1) else return false end end function pedRespawn () killTimer (timer) destroyElement (ped) ped = createPed (302, 2776.7, -2428.1, 13.6) end addEventHandler ("onClientResourceStart", getResourceRootElement(getThisResource()), startScript) All made by NoPoMaN, but as I say, it is server side, so worried there will be loads of problems with markers etc So tryna change to client Try this btw u have to change many things in addEventHandler Thingy as : see below --// Made by: MoPoMaN --//Tables and other stuff tableLocationsX = {} tableLocationsY = {} tableLocationsZ = {} tableMoney = {} locationCount = 3 --//Location 1 tableLocationsX[1] = 2253.7 tableLocationsY[1] = -84.0 tableLocationsZ[1] = 25.3 tableMoney[1] = 500 --//Location 2 tableLocationsX[2] = 1093.7 tableLocationsY[2] = -931.6 tableLocationsZ[2] = 41.9 tableMoney[2] = 550 --//Location3 tableLocationsX[3] = -47.3 tableLocationsY[3] = -1137.5 tableLocationsZ[3] = 0.07 tableMoney[3] = 500 function startScript () --Marker marker = createMarker (2776.6, -2425.5, 12.6, "cylinder", 1.1, 0, 255, 0) addEventHandler ("onClientMarkerHit", marker, startMission) --Objects and Ped ped = createPed (302, 2776.7, -2428.1, 13.6) tableObj = createObject (2205, 2775.9, -2426.8, 12.6) chairObj = createObject (2309, 2776.7, -2427.4, 12.6) addEventHandler ("onClientPedWasted", getRootElement(), respawnPed) --Blip startBlip = createBlip (2776.9, -2423.9, 12.7, 51) end function startMission (hitElement) if getElementType (hitElement) == "player" then truck = createVehicle (515, 2779.6, -2437.2, 14.7, 0, 0, 90) trailer = createVehicle (450, 2789.2, -2437.1, 14.2, 0, 0, 90) randomLoc = math.random (1, locationCount) finish = createMarker (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], "cylinder", 3, 0, 200, 55, 255, hitElement) blip = createBlip (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], 0, 2, 255, 0, 0, 255, 0, 10000, hitElement) --addEventHandlers addEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) addEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) addEventHandler ("onClientMarkerHit", finish, reward) addEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other setVehicleLocked (truck, true) destroyElement (startBlip) player = hitElement outputChatBox ("#ffaa00***#ffffffDrive to the red blip on the map #ffaa00***", player, 255, 255, 255, true) setElementPosition (marker, -406, -64, 2.4) warpPedIntoVehicle (hitElement, truck) -- end else return false end end function trailerDetach () if source == trailer then --destroyThings outputChatBox ("#ffffffMission failed, go back for more cargo!", player, 255, 255, 255, true) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false end end function vehicleExit (leaver) if source == truck and leaver == player then setVehicleLocked (truck, false) outputChatBox ("#ffaa00// #ffffffGo back to the truck in 10 seconds!", leaver, 255, 255, 255, true) destroyTimer = setTimer (destroyVehicle, 10000, 1) addEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) else return false end end function destrTimer (thePlayer) if source == truck and thePlayer == player then local team = getPlayerTeam (thePlayer) if getTeamName (team) == "Freeroam" or getTeamName (team) == "The Police" then return false else killTimer (destroyTimer) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) setVehicleLocked (truck, true) end else return false end end function destroyVehicle () if destroyTimer then --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false end end function onQuit () if source == player then --destroyThings destroyElement (truck) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) end end function reward (hitElement) if hitElement == truck then --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) outputChatBox ("#ffaa00// #ffffffGood job! You've been rewarded " .. tableMoney[randomLoc] .. "$", player, 255, 255, 255, true) setElementPosition (marker, 2776.6, -2425.5, 12.6) occupant = getVehicleOccupant (truck, 0) givePlayerMoney (occupant, tableMoney[randomLoc]) --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) else return false end end function respawnPed () if source == ped then timer = setTimer (pedRespawn, 5000, 1) else return false end end function pedRespawn () killTimer (timer) destroyElement (ped) ped = createPed (302, 2776.7, -2428.1, 13.6) end addEventHandler ("onClientResourceStart", getResourceRootElement(getThisResource()), startScript) 1 Link to comment
kieran Posted July 10, 2017 Author Share Posted July 10, 2017 @Ayush Rathore It sort of worked, started mission, spawned truck etc... but doesn't like warpPedIntoVehicle it says it will only work with client created peds and vehicles, is there any other way to warp him into vehicle? Link to comment
pa3ck Posted July 10, 2017 Share Posted July 10, 2017 triggerServerEvent, you should avoid creating vehicles client side, unless you want them to be static "objects". Link to comment
kieran Posted July 10, 2017 Author Share Posted July 10, 2017 I tried something but it went wrong Server function SpawnTruck(hitElement) if getElementType (hitElement) == "player" then truck = createVehicle (515, 2779.6, -2437.2, 14.7, 0, 0, 90) setVehicleLocked (truck, true) player = hitElement warpPedIntoVehicle (hitElement, truck) end end addEvent( "SpawnTheTrucks", true ) addEventHandler( "SpawnTheTrucks", resourceRoot, SpawnTruck ) function SpawnTrailers() trailer = createVehicle (450, 2789.2, -2437.1, 14.2, 0, 0, 90) end addEvent( "SpawnTheTrailers", true ) addEventHandler( "SpawnTheTrailers", resourceRoot, SpawnTrailers ) Client --// Made by: MoPoMaN --//Tables and other stuff tableLocationsX = {} tableLocationsY = {} tableLocationsZ = {} tableMoney = {} locationCount = 3 --//Location 1 tableLocationsX[1] = 2253.7 tableLocationsY[1] = -84.0 tableLocationsZ[1] = 25.3 tableMoney[1] = 500 --//Location 2 tableLocationsX[2] = 1093.7 tableLocationsY[2] = -931.6 tableLocationsZ[2] = 41.9 tableMoney[2] = 550 --//Location3 tableLocationsX[3] = -47.3 tableLocationsY[3] = -1137.5 tableLocationsZ[3] = 0.07 tableMoney[3] = 500 function startScript () --Marker marker = createMarker (2776.6, -2425.5, 12.6, "cylinder", 1.1, 0, 255, 0) addEventHandler ("onClientMarkerHit", marker, startMission) --Objects and Ped ped = createPed (302, 2776.7, -2428.1, 13.6) tableObj = createObject (2205, 2775.9, -2426.8, 12.6) chairObj = createObject (2309, 2776.7, -2427.4, 12.6) addEventHandler ("onClientPedWasted", getRootElement(), respawnPed) --Blip startBlip = createBlip (2776.9, -2423.9, 12.7, 51) end function startMission (hitElement) if getElementType (hitElement) == "player" then truck = triggerServerEvent ( "SpawnTheTrucks", resourceRoot ) trailer = triggerServerEvent ( "SpawnTrailers", resourceRoot ) randomLoc = math.random (1, locationCount) finish = createMarker (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], "cylinder", 3, 0, 200, 55, 255, hitElement) blip = createBlip (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], 0, 2, 255, 0, 0, 255, 0, 10000, hitElement) --addEventHandlers addEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) addEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) addEventHandler ("onClientMarkerHit", finish, reward) addEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other destroyElement (startBlip) outputChatBox ("#ffaa00***#ffffffDrive to the red blip on the map #ffaa00***", 255, 255, 255, true) setElementPosition (marker, -406, -64, 2.4) -- end else return false end end function trailerDetach () if source == trailer then --destroyThings outputChatBox ("#ffffffMission failed, go back for more cargo!", 255, 255, 255, true) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false end end function vehicleExit (leaver) if source == truck and leaver == player then setVehicleLocked (truck, false) outputChatBox ("#ffaa00// #ffffffGo back to the truck in 10 seconds!", 255, 255, 255, true) destroyTimer = setTimer (destroyVehicle, 10000, 1) addEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) else return false end end function destrTimer (thePlayer) if source == truck and thePlayer == player then local team = getPlayerTeam (thePlayer) if getTeamName (team) == "Freeroam" or getTeamName (team) == "The Police" then return false else killTimer (destroyTimer) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) setVehicleLocked (truck, true) end else return false end end function destroyVehicle () if destroyTimer then --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false end end function onQuit () if source == player then --destroyThings destroyElement (truck) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) end end function reward (hitElement) if hitElement == truck then --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) outputChatBox ("#ffaa00// #ffffffGood job! You've been rewarded " .. tableMoney[randomLoc] .. "$", 255, 255, 255, true) setElementPosition (marker, 2776.6, -2425.5, 12.6) occupant = getVehicleOccupant (truck, 0) givePlayerMoney (occupant, tableMoney[randomLoc]) --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) else return false end end function respawnPed () if source == ped then timer = setTimer (pedRespawn, 5000, 1) else return false end end function pedRespawn () killTimer (timer) destroyElement (ped) ped = createPed (302, 2776.7, -2428.1, 13.6) end addEventHandler ("onClientResourceStart", getResourceRootElement(getThisResource()), startScript) Tweaked it a little and added server events, but now it won't spawn vehicle sorry for being so nub only place I used event handlers was on my login panel... Link to comment
Ayush Rathore Posted July 10, 2017 Share Posted July 10, 2017 Man you really cracked it so i suggest you to first tell all about the mission i will give you a working script in a day or 2 ok ? happy scripting P.S. give me your original script 8 minutes ago, Ayush Rathore said: Man you really cracked it so i suggest you to first tell all about the mission i will give you a working script in a day or 2 ok ? happy scripting P.S. give me your original script 1 hour ago, kieran said: I tried something but it went wrong Server function SpawnTruck(hitElement) if getElementType (hitElement) == "player" then truck = createVehicle (515, 2779.6, -2437.2, 14.7, 0, 0, 90) setVehicleLocked (truck, true) player = hitElement warpPedIntoVehicle (hitElement, truck)endendaddEvent( "SpawnTheTrucks", true )addEventHandler( "SpawnTheTrucks", resourceRoot, SpawnTruck ) function SpawnTrailers() trailer = createVehicle (450, 2789.2, -2437.1, 14.2, 0, 0, 90)endaddEvent( "SpawnTheTrailers", true )addEventHandler( "SpawnTheTrailers", resourceRoot, SpawnTrailers ) Client --// Made by: MoPoMaN--//Tables and other stufftableLocationsX = {}tableLocationsY = {}tableLocationsZ = {}tableMoney = {}locationCount = 3--//Location 1tableLocationsX[1] = 2253.7tableLocationsY[1] = -84.0tableLocationsZ[1] = 25.3tableMoney[1] = 500--//Location 2tableLocationsX[2] = 1093.7tableLocationsY[2] = -931.6tableLocationsZ[2] = 41.9tableMoney[2] = 550--//Location3tableLocationsX[3] = -47.3tableLocationsY[3] = -1137.5tableLocationsZ[3] = 0.07tableMoney[3] = 500function startScript () --Marker marker = createMarker (2776.6, -2425.5, 12.6, "cylinder", 1.1, 0, 255, 0) addEventHandler ("onClientMarkerHit", marker, startMission) --Objects and Ped ped = createPed (302, 2776.7, -2428.1, 13.6) tableObj = createObject (2205, 2775.9, -2426.8, 12.6) chairObj = createObject (2309, 2776.7, -2427.4, 12.6) addEventHandler ("onClientPedWasted", getRootElement(), respawnPed) --Blip startBlip = createBlip (2776.9, -2423.9, 12.7, 51)endfunction startMission (hitElement) if getElementType (hitElement) == "player" then truck = triggerServerEvent ( "SpawnTheTrucks", resourceRoot ) trailer = triggerServerEvent ( "SpawnTrailers", resourceRoot ) randomLoc = math.random (1, locationCount) finish = createMarker (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], "cylinder", 3, 0, 200, 55, 255, hitElement) blip = createBlip (tableLocationsX[randomLoc], tableLocationsY[randomLoc], tableLocationsZ[randomLoc], 0, 2, 255, 0, 0, 255, 0, 10000, hitElement) --addEventHandlers addEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) addEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) addEventHandler ("onClientMarkerHit", finish, reward) addEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other destroyElement (startBlip) outputChatBox ("#ffaa00***#ffffffDrive to the red blip on the map #ffaa00***", 255, 255, 255, true) setElementPosition (marker, -406, -64, 2.4) -- end else return false endendfunction trailerDetach () if source == trailer then --destroyThings outputChatBox ("#ffffffMission failed, go back for more cargo!", 255, 255, 255, true) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false endendfunction vehicleExit (leaver) if source == truck and leaver == player then setVehicleLocked (truck, false) outputChatBox ("#ffaa00// #ffffffGo back to the truck in 10 seconds!", 255, 255, 255, true) destroyTimer = setTimer (destroyVehicle, 10000, 1) addEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) else return false endendfunction destrTimer (thePlayer) if source == truck and thePlayer == player then local team = getPlayerTeam (thePlayer) if getTeamName (team) == "Freeroam" or getTeamName (team) == "The Police" then return false else killTimer (destroyTimer) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) setVehicleLocked (truck, true) end else return false endendfunction destroyVehicle () if destroyTimer then --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientVehicleEnter", getRootElement(), destrTimer) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) else return false endendfunction onQuit () if source == player then --destroyThings destroyElement (truck) destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) setElementPosition (marker, 2776.6, -2425.5, 12.6) endendfunction reward (hitElement) if hitElement == truck then --other startBlip = createBlip (2776.9, -2423.9, 12.7, 51) outputChatBox ("#ffaa00// #ffffffGood job! You've been rewarded " .. tableMoney[randomLoc] .. "$", 255, 255, 255, true) setElementPosition (marker, 2776.6, -2425.5, 12.6) occupant = getVehicleOccupant (truck, 0) givePlayerMoney (occupant, tableMoney[randomLoc]) --destroyThings destroyElement (trailer) destroyElement (finish) destroyElement (blip) --removeEventHandlers removeEventHandler ("onClientTrailerDetach", getRootElement(), trailerDetach) removeEventHandler ("onClientVehicleExit", getRootElement(), vehicleExit) removeEventHandler ("onClientPlayerQuit", getRootElement(), onQuit) else return false endendfunction respawnPed () if source == ped then timer = setTimer (pedRespawn, 5000, 1) else return false endendfunction pedRespawn () killTimer (timer) destroyElement (ped) ped = createPed (302, 2776.7, -2428.1, 13.6)endaddEventHandler ("onClientResourceStart", getResourceRootElement(getThisResource()), startScript) Tweaked it a little and added server events, but now it won't spawn vehicle sorry for being so nub only place I used event handlers was on my login panel... read my message above Link to comment
kieran Posted July 10, 2017 Author Share Posted July 10, 2017 (edited) It is not actually my script, It was made by MoPoMaN and he used it server side, I made a similar script before.... But I had many problems with blips and markers showing for all players, this is why I want to make this script client side, after I will give it to him. You can find his script here. I know is 3 years old.... But loads of servers want a good script, even if it's just to use as a skeleton for there own script Basically the idea is when player hits marker, truck spawns with trailer, removes marker client side so other players may take the job, and then when player hits the delivery marker his trailer gets destroyed, which then triggers client side event to put marker to spawn truck from again.... So rather basic script. As I say, MoPoMaN's script. If you want I will PM you some other ideas I had for scripts. Edited July 10, 2017 by kieran Link to comment
Discord Moderators Pirulax Posted July 11, 2017 Discord Moderators Share Posted July 11, 2017 MTA is not that kind of game which loves trailers...There will be some syncing bugs 1 Link to comment
kieran Posted July 11, 2017 Author Share Posted July 11, 2017 (edited) 1 hour ago, Pirulax said: MTA is not that kind of game which loves trailers...There will be some syncing bugs I found out that is not my biggest problem.... The trailers are so easy :3 not too worried about syncing.... The problem NOW is that blips show for all players! Oh... And also the truck doesn't want to warp ped in (I know, is server side function, why I put it in server) basically the bare bones of what I'm trying to achieve are above if you wanna help make it feel free, but I have also had another idea for trailers.... From another server I used to play at I know it is possible to attach that flat trailer you get for trains (forget the name)...It seems there were no bugs with that somehow. Anyway, thing I really want is to get it actually warping ped into vehicle and only showing stuff to player that hits marker, as opposed to showing blips etc to every player. P.S. This is basically a script I will build on once working and I understand it a bit better, I plan to make numerous jobs in the future such as captain and arms/drugs delivery, basically warping a player into vehicle, spawning marker and blip for the player, then when player hits marker he gets cash sum. Edited July 11, 2017 by kieran bear bones? I think RIP English..... -_- Link to comment
Discord Moderators Pirulax Posted July 11, 2017 Discord Moderators Share Posted July 11, 2017 (edited) I want to help you, but i cant write a script now..Use some setElementData, and some if statements.And, if you have a custom minimap, that its much easier Btw, if the blip is created client side, i think you can destroy it with destroyElement(), but im not sure about that(and im lazy to look at the element list) Edit ==> Blip is an element.Element list ==> elements. Edited July 11, 2017 by Pirulax adding a wiki link. 1 Link to comment
kieran Posted July 11, 2017 Author Share Posted July 11, 2017 (edited) Haha, I'll try bud... the data is not the problem though it's warping player to vehicle, as it is a server function I am trying to be "smart" and use triggerServerEvent to trigger the warp.... I am very inexperienced Edited July 11, 2017 by kieran NVM, I get what you mean now! haha Link to comment
Discord Moderators Pirulax Posted July 11, 2017 Discord Moderators Share Posted July 11, 2017 (edited) --//*** --//**Server-Side --//*** addEvent("warpPedIntoVehicleEvent", resourceRoot, function(veh) -- use resourceRoot if you want only to call the event from the same res, this way you can save CPU warpPedIntoVehicle(client,veh) --here i use global variable client, its always the players element who calls the function with triggerServerEvent.Its more secure then sending the player thru. end) --//*** --//**Client-Side --Use this ClientSide to warp the ped into the veh. --//*** triggerServerEvent("warpPedIntoVehicleEvent",resourceRoot) --use resourceRoot if the event is in the same resource as triggerServerEvent / triggerClientEVent, this way u cant save CPU. Btw WarpPedIntoVehicle() is a shared function. Edited July 11, 2017 by Pirulax Link to comment
pa3ck Posted July 11, 2017 Share Posted July 11, 2017 (edited) No offence here at all, I know you just started programming(?) and new to MTA scripting.. but you should really think about certain things. Stop coding and before you touch your mouse and keyboard, which is really hard, I know, do the logic in your head. You want to spawn a truck when player enters the marker -> simple. But how am I gonna do that? Well, do I need client or server? Server, because cars must be spawned on the server. This brings up the question, do I create the marker client or server side? Well, I can do it client side, but that wouldn't make sense since I still need to trigger to server.. why don't I create the marker on server to spawn my truck right away? The problem in your code is that you assumed you will have hitElement on the server, but you won't, since you never passed the "hitElement" argument in your triggerServerEvent. I know this community here is great, people will always help you, but you should really trace down the problems yourself. I'm pretty sure MTA is complaining about that hitElement not being defined... Edited July 11, 2017 by pa3ck 3 Link to comment
kieran Posted July 11, 2017 Author Share Posted July 11, 2017 Thanks @pa3ck Needed that you're right, not thinking it out, should make plan then use wiki to find stuff..... Otherwise I'll get nowhere. 2 Link to comment
Discord Moderators Pirulax Posted July 11, 2017 Discord Moderators Share Posted July 11, 2017 (edited) @pa3ck Belive me, i would comment "use /debugscript 3 and read this" everywhere, in every post.Nah, even if you know enligsh, than u can suppose whats the error..For example i never have read that Debugging turorial. P.S. bad enlgish... sometimes Edited July 11, 2017 by Pirulax 1 Link to comment
Discord Moderators Pirulax Posted July 11, 2017 Discord Moderators Share Posted July 11, 2017 27 minutes ago, kieran said: Thanks @pa3ck Needed that you're right, not thinking it out, should make plan then use wiki to find stuff..... Otherwise I'll get nowhere. you should use wiki before creating a plan... if the plan fails use GOOOGlE and then forum. 1 Link to comment
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