I do believe your porblem is not defining your player.
Make sure he has a name (IE Bob, or E12, whatever).
In your script, change it to... (I use getdamage)
?((getdamage _this) >= 0.5) : goto "vehicleloop".
Also, just to make sure you know. "?" are used to check something when the script is run, and return either true or false. "@"s are triggers, that wait until the condition is true before continueing onward with the script, or continued to a defined (goto) part of the script.
Also there is one last way to fix you script. Put this up top.
player = _this