F: Ich benutze die cutcam.wdl aus Aum6, aber würde mich gern umschauen können, während die Kamera dem Pfad folgt. Können Sie mir helfen?
A: Hier gibt es die modifizierte cutcam.wdl.

 

F: Ich verwende den Bewegungscode aus der FAQ von Aum37. Er funktioniert gut, aber ich würde gern die Kamera drehen, wenn die Maus nach links oder rechts bewegt wird. Können Sie mir helfen?
A: Klicken Sie hier um die geänderte Version zu erhalten.

 

F: In Aum6 gibt es ein Demoskript für ein Auto. Wie kann ich den Schadenscode entfernen, um es unverwundbar zu machen?
A: Kommentieren Sie diese Zeile aus:

action my_car
{

   ...............
   // my.event = increase_damage; // comment this line

   ...............

}

 

F: Ich habe mit der Arbeit an einem Spiel begonnen. Wenn der Spieler das Level wechselt, möchte ich eine Zwischensequenz abspielen, dann eine Sounddatei, ein zweites Level laden und dann eine weitere Sounddatei abspielen. Wie geht das?
A: Mit diesem Code:

sound level1_wav = <level1.wav>;
sound level2_wav = <level2.wav>;

string level2_wmb = <level2.wmb>;

action level_12 // attach this action to the entity that changes from level1 to level2
{
   var shandle;
   while (vec_dist (my.x, player.x) > 50) {wait (1);} // wait until the player has come close enough
   shandle = media_play ("cutscene1.avi", null, 50); // now play the cut scene movie
   while (media_playing(shandle) != null) {wait (1);} // wait until it is finished
   shandle = snd_play (level1_wav, 50, 0); // start playing the first wave file
   while (snd_playing(shandle) != null) {wait (1);} // wait until the wave is played
   my = null; // keep the function running even after level_load
   level_load (level2_wmb); // load the second level
   wait (3); // wait until the level is loaded
   snd_play (level2_wav, 50, 0); // now play the new sound
}

 

F: Wie kann ich dem Spieler in der Egoperspektive ohne eine “Entity” Definition eine Waffe geben?
A: Fügen Sie den Code am Ende Ihres Skriptes ein. Die Methode funktioniert für die Egoperspektive ebenso wie für die Außenansicht.

string gun_mdl = <gun.mdl>;

function move_weapon();

starter player_gets_weapon()
{
   while (player == null) {wait (1);}
   ent_create (gun_mdl, player.x, move_weapon);
}

function move_weapon()
{
   my.passable = on;
   while (1)
   {
      my.x = player.x + 5 * cos(player.pan) + 10 * sin(player.pan); // 5 quants in front of the player
      my.y = player.y + 5 * sin(player.pan) - 10 * cos(player.pan); // and 10 quants sideway (to the right)
      my.z = player.z + 40; // the height of the gun is set 40 quants above player's origin
      my.pan = player.pan;
      my.tilt = player.tilt;
      wait (1);
   }
}

 

F: Wenn ich zwischen den Beinen des Gegners hindurchschieße, treffe ich ihn trotzdem. Können Sie mir helfen?
A: Die A6 Engine erlaubt es, das “polygon” Flag für die Feinde zu setzen. Benutzen Sie die Physikengine für die Pistolenkugeln und Sie erhalten eine polygongenaue Kollisionsabfrage.

 

F: Wie kann ich einen Splashscreen einbauen? Der Spieler soll mit der Leertaste fortfahren können.
A: Benutzen Sie diesen Code:

bmap splash_pcx = <splash.pcx>;

panel splash_pan
{
   bmap = splash_pcx;
   pos_x = 0;
   pos_y = 0;
   layer = 1;
   flags = overlay, refresh;
}

starter show_splash()
{
   freeze_mode = 1; // stop all the entities in the level
   splash_pan.visible = on; // show the splash screen
   while (key_space == 0) {wait (1);} // wait until the "space" key is pressed
   while (key_space == 1) {wait (1);} // wait until the "space" key is released
   splash_pan.visible = off;
   freeze_mode = 0; // resume the gameplay
}


 

F: Ich frage mich, wie ich mit A6.3 mehrdimensionale Arrays nutzen kann.
A: Dieses Feature ist noch in der Experimentierphase und in Version 6.3 noch nicht eingebaut.

 

F: Wie kann ich einen Teil eines Hauses transparent machen, um Soldaten darin zu sehen?
A: Bauen Sie das Dach als separate Map Entity und geben Sie ihr die Action transparent_roof. Wenn Sie die Maus darüber bewegen, wir das Dach transparent.

function set_transparency()
{
    if (event_type == event_touch)
    {
       my.alpha = 60; // show the soldiers
    }
    if (event_type == event_release)
    {
       my.alpha = 100;
    }
}

action transparent_roof
{
   my.transparent = on;
   my.alpha = 100;
   my.enable_touch = on;
   my.enable_release = on;
   my.event = set_transparency;
}