Index: trunk/src/world_entities/npcs/generic_npc.cc
===================================================================
--- trunk/src/world_entities/npcs/generic_npc.cc	(revision 8778)
+++ trunk/src/world_entities/npcs/generic_npc.cc	(revision 8783)
@@ -125,5 +125,5 @@
  * @param coordinate: coordinate to go to
  */
-bool GenericNPC::walkTo(const Vector& coordinate, float time)
+float GenericNPC::walkTo(const Vector& coordinate, const Quaternion& dir)
 {
 
@@ -136,5 +136,5 @@
  * @param coordinate: coordinate to go to
  */
-bool GenericNPC::walkTo(float x, float y, float z, float time)
+float GenericNPC::walkTo(float x, float y, float z, float qu, float qx, float qy, float qz)
 {
 
Index: trunk/src/world_entities/npcs/generic_npc.h
===================================================================
--- trunk/src/world_entities/npcs/generic_npc.h	(revision 8778)
+++ trunk/src/world_entities/npcs/generic_npc.h	(revision 8783)
@@ -38,6 +38,16 @@
   void playSound(int i);
 
-  bool walkTo(const Vector& coordinate, float time);
-  bool walkTo(float x, float y, float z, float time);
+  float walkTo(const Vector& coordinate, const Quaternion& dir);
+  float walkTo(float x, float y, float z, float qu, float qx, float qy, float qz);
+  float walkTo(float x, float y, float qu, float qx, float qy, float qz);
+
+  float runTo(const Vector& coordinate, const Quaternion& dir);
+  float runTo(float x, float y, float z, float qu, float qx, float qy, float qz);
+  float runTo(float x, float y, float qu, float qx, float qy, float qz);
+
+  float crouchTo(const Vector& coordinate, const Quaternion& dir);
+  float crouchTo(float x, float y, float z, float qu, float qx, float qy, float qz);
+  float crouchTo(float x, float y, float qu, float qx, float qy, float qz);
+
 
   void destroy();
Index: trunk/src/world_entities/script_trigger.cc
===================================================================
--- trunk/src/world_entities/script_trigger.cc	(revision 8778)
+++ trunk/src/world_entities/script_trigger.cc	(revision 8783)
@@ -21,4 +21,11 @@
 #include "state.h"
 
+
+CREATE_SCRIPTABLE_CLASS(ScriptTrigger, CL_SCRIPT_TRIGGER,
+                            addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
+                                ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
+                                ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
+                                ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+                       );
 
 
@@ -40,6 +47,17 @@
   scriptIsOk = false;
   triggerLasts = false;
+  addToScript = false;
+  
+  if(root != NULL)
+  {
+    
   loadParams(root);
-
+  
+  if(addToScript)
+  {
+    script->addObject( "ScriptTrigger", this->getName());
+  }
+  
+  }
 }
 
@@ -60,6 +78,5 @@
 void ScriptTrigger::loadParams(const TiXmlElement* root)
 {
-  if(root != NULL)
-  {
+
     WorldEntity ::loadParams(root);
 
@@ -97,6 +114,7 @@
         .describe("True if the script should only be called once")
         .defaultValues("");
-  }
-
+    LoadParam(root, "addtoscript", this, ScriptTrigger, setAddToScript)
+        .describe("True if this scripttrigger should be aviable in the script")
+        .defaultValues("");
 }
 
Index: trunk/src/world_entities/script_trigger.h
===================================================================
--- trunk/src/world_entities/script_trigger.h	(revision 8778)
+++ trunk/src/world_entities/script_trigger.h	(revision 8783)
@@ -14,4 +14,5 @@
 #include "script_manager.h"
 #include "script.h"
+#include "script_class.h"
 
 class ScriptTrigger : public WorldEntity
@@ -42,4 +43,5 @@
     void setFunction(const std::string& function){ this->functionName = function;}
     void setDebugDraw(const bool draw) { this->doDebugDraw = draw; }
+    void setAddToScript(const bool add) { this->addToScript = add; }
 
     ///DRAWING
@@ -57,5 +59,5 @@
     std::string  functionName;
     bool         doDebugDraw;
-
+    bool         addToScript;
     //for internal use
     bool         scriptCalled;
@@ -66,3 +68,4 @@
 };
 
+
 #endif
Index: trunk/src/world_entities/space_ships/helicopter.cc
===================================================================
--- trunk/src/world_entities/space_ships/helicopter.cc	(revision 8778)
+++ trunk/src/world_entities/space_ships/helicopter.cc	(revision 8783)
@@ -36,6 +36,13 @@
 CREATE_FACTORY(Helicopter, CL_HELICOPTER);
 #include "script_class.h"
-//CREATE_SCRIPTABLE_CLASS(Helicopter, CL_HELICOPTER, NULL);
-
+CREATE_SCRIPTABLE_CLASS(Helicopter, CL_HELICOPTER,
+                        addMethod("moveUp", ExecutorLua1<Helicopter,bool>(&Helicopter::moveUp))
+                            ->addMethod("moveDown", ExecutorLua1<Helicopter,bool>(&Helicopter::moveDown))
+                            ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
+                            ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
+                            ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
+                            ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+                            
+                       );
 
 /**
Index: trunk/src/world_entities/space_ships/helicopter.h
===================================================================
--- trunk/src/world_entities/space_ships/helicopter.h	(revision 8778)
+++ trunk/src/world_entities/space_ships/helicopter.h	(revision 8783)
@@ -83,14 +83,3 @@
 };
 
-CREATE_SCRIPTABLE_CLASS(Helicopter, CL_HELICOPTER,
-                        addMethod("moveUp", ExecutorLua1<Helicopter,bool>(&Helicopter::moveUp))
-                        ->addMethod("moveDown", ExecutorLua1<Helicopter,bool>(&Helicopter::moveDown))
-                        ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                        ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                        ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                        ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
-                            
-                        );
-
-
 #endif /* _HELICOPTERS_H */
