F: Wie kann ich eine Action erstellen, die dem Spieler Punkte gibt und wenn er über 100 Punkte hat, kann er eine Tür öffnen?
A: Hier ist der Code: (code)

var points = 0; // zero points at game start
 
function open_over_100 () // call this function at the end of your main action
{
    while (points < 100) {wait (1);}
    key1 = 1; // opens the doors that need key1
}
 
action increase_points // attach this action to any model
{
    while (1)
    {
        if (vec_dist (my.x, player.x) < 200) // if the player comes close to this object, give him points
        {
            points += 10 * time;
        }
        wait (1);
    }
}
 

F: Wie kann ich das Geld-Skript auf Aum 9 benutzen, um eine Waffe zu kaufen?
A: Sehen Sie sich diese Funktion an:

function buy_me()
{
      wait (1);
      if (event_type != event_click || cash < my.skill1) {return;}
      cash -= my.skill1;
      snd_play (spentcash_snd, 70, 0);
      ent_remove (me);
}

Damit es funktioniert, ändern Sie sie wie folgt:

string gun_mdl = <gun.mdl>;

function buy_me()
{
      wait (1);
      if (event_type != event_click || cash < my.skill1) {return;}
      cash -= my.skill1;
      snd_play (spentcash_snd, 70, 0);
      my.passable = on;
      my.invisible = on;
      ent_create(gun_mdl, my.pos, action_for_gun);
}

Die Action action_for_gun ist so ähnlich wie die anderen Gun Actions in den Templates (weap_m16, etc.)

 
F: Wie kann ich ein Video zum Spielstart und zum Beginn von Level 2 einbauen?
A: Hier ist eines meiner älteren Projekte; rufen Sie die Funktion an geeigneter Stelle auf:

function play_video ()
{
       if (movie_frame == 0)
       {
             play_moviefile "your_video.avi";
       }
       else
       {
             stop_movie;
       }
}
 

F: Hilfe! Mein Spieler kommt keine Stufen hoch!
A: Das Zentrum des Spielermodels ist zu niedrig. Öffnen Sie Med, selektieren Sie den Spieler mit Edit -> Select All, klicken Sie "Use Frame Range" an und bewegen Sie ihn nach oben.
 

F: Ist es möglich, key_force auf andere Tasten zu legen?
A: Sicher. Ersetzen Sie einfach key_force.x mit "(key_w - key_s)" etc.
 

F: Wenn mein Model sich dreht, möchte ich, daß es sich mit derselben Animation zurückdreht, wenn man den Knopf losläßt, aber rückwärts abgespielt.
A: Ein Beispiel:

var sense; // 1 = normal animation, -1 = reversed animation

while (1)
{
    // add your movement code here
   ...................
   sense = key_cuu - key_cud; // use cursor keys for forward / backward movement
   ent_cycle("walk", my.skill10);
   my.skill10 += sense * init_speed * time;
   my.skill10 %= 100 // loop animation
   wait (1);
}

 
F: Wenn ich eine Waffe aufhebe, ist sie in der falschen Position. Was soll ich tun?
A: Setzen Sie skill1..3 für jedes Waffenmodel - sie kontrollieren die Position der Waffe auf dem Bildschirm, wenn sie aufgehoben wurde.
 

F: Wie kann ich ein Panel drehen?
A: Sie können kein Panel drehen, aber Sie können es als Entity definieren - auf diese Weise können Sie es durch Ändern des Roll Wertes drehen:

function rotate_entity();

entity my_panel
{
     type = <panel.mdl>;
     layer = 10;
     view = camera;
     x = 25;
     y = 10;
     z = -10;
}

function rotate_entity()
{
    my_panel.visible = on;
    while (1)
    {
        my_panel.roll += 5 * time;
        wait (1);
    }
}
  

F: Im Gamestudio ist ein weißgrauer Strahl voreingestellt, der aus der Waffe kommt. Wie ändere ich das?
A: Modifizieren Sie die Funktion particle_fadeout.