--[[ Destroys a train as soon it streams out and no other players are nearby ]]-- function stream_out_train( ) triggerServerEvent("GTWtrain.destroy", root, source) end --[[ Check when the train streams out and destroys it ]]-- function check_stream_out(c_train) addEventHandler("onClientElementStreamOut", c_train, stream_out_train) --setElementStreamable(c_train, false) end addEvent("GTWtrain.onStreamOut", true) addEventHandler("GTWtrain.onStreamOut", root, check_stream_out) --[[ Updating control state based on server orders ]]-- function set_train_control_policy(engineer, state) if state == 0 then setPedControlState(engineer, "accelerate", false) setPedControlState(engineer, "brake_reverse", false) elseif state == 1 then setPedControlState(engineer, "accelerate", true) setPedControlState(engineer, "brake_reverse", false) elseif state == 2 then setPedControlState(engineer, "accelerate", false) setPedControlState(engineer, "brake_reverse", true) end end addEvent("GTWtrain.setPedControlState", true) addEventHandler("GTWtrain.setPedControlState", root, set_train_control_policy) function set_train_track(cmd, new_track) -- Verify MTA version local version = getVersion() if tonumber(version.mta) < 1.6 then outputChatBox("This feature is not yet supported! please download MTASA v1.6 or later", 255,0,0) return end -- Check if the player is driving a train local train = getPedOccupiedVehicle(localPlayer) if not train or getVehicleType(train) ~= "Train" then return end local x,y,z = getElementPosition(train) if cmd == "gettrack" then outputChatBox("Current track is: "..getTrainTrack(train), 255,100,0) elseif new_track then setTrainTrack(train, new_track) setElementPosition(train, x,y,z) outputChatBox("Current track is: "..getTrainTrack(train), 255,100,0) end end addCommandHandler("settrack", set_train_track) addCommandHandler("gettrack", set_train_track)