From your latest code, just spotted this;
else{return;Remove_Script(obj,"VT_CarryAll");}
The Remove_Script will never be called because it will return first. You should swap the order of these calls around if you want the script to get removed properly. I am a bit surprised the compiler didn't warn you about unreachable code actually...
EDIT;
Also, this check
if (o && As_ScriptableGameObj(o) && Is_Vehicle(o) && o!=obj)
Has a redundant part, a VehicleGameObj is *always* scriptable, so there's no need to test for As_ScriptableGameObj(o). You can safely remove this check to leave you with;
if (o && Is_Vehicle(o) && o!=obj)
[Updated on: Wed, 20 October 2010 03:03]
Report message to a moderator