F: Was ist der Unterschied zwischen "smooth" Schatten and regulären Schatten?
A: Klicken Sie hier, um eine Zip-Datei zu erhalten, welche ein Bild und ein Level mit 2 identischen Areas, mit und ohne "smooth" Texturen. Dieses Testlevel wurde freundlicherweise von Marco Grubert bereitgestellt. 
 

F: Wie kann ich es machen, dass, wenn ich eine CD berühre, ich ins nächste Level befördert werde? 
A: Hier ist ein Schnipsel:

string nextlevel_wmb = <next.wmb>;

function beam_me_up();

action take_me_there // attach it to the cd
{
    my.enable_impact = on;
    my.event = beam_me_up;
}

function beam_me_up()
{
    wait (1);
    level_load (nextlevel_wmb);
}
 

F: Ich habe die Standard Version von 3D Gamestudio, und kann deshalb keine Terrains einfügen. Ich könnte Modelle verwenden; gibt es einen Weg mein Terrain nicht passable zu machen, damit mein Spieler drauf gehen kann?
A: Machen Sie Ihr Terrain passable und erstellen Sie eine einfache, unsichtbare Block-Struktur darunter. 
 

F: Wie kann ich Charaktere mit Skin-Animationen machen (ein Charakter blinzelt mit den Augen und öffnet den Mund)?
A: Erstelle verschiedene Skins für diesen Charakter und füge sie dem Modell im MED hinzu. Benutzen Sie diesen Code, um Ihren Charakter zu animieren: 

action imtalking
{
    while (1)
    {
        while (I am supposed to talk) // put your stuff here
        {
            my.skin = 1;
            waitt (3);
            my.skin = 2;
            wait (3)
            my.skin = 3;
            waitt (3);
        }
        wait (1);
    }
}
 

F: Kann mir jemand ein Skript geben, dass eine Entity mit Hilfe der Pfeiltasten bewegt werden kann, aber nicht die Kamera bewegt?
A: Der einfache Weg wäre, einen neuen View zu definieren und ihn sichtbar zu machen. Schreibe diese Zeile am Anfang der office.wdl:

view camera2{ }

und die folgenden Zeilen am Ende der main function: 

camera.visible = off;
camera2.size_x = screen_size.x;
camera2.size_y = screen_size.y;
camera2.pos_x = 0;
camera2.pos_y = 0;
camera2.visible = on;  
 

F: Wie ändere ich den Cursor, wenn ich mit der Maus über einen NPC fahre?Können Sie mir helfen? 
A: Hier ist der Code:

bmap cursor_normal = <normal.pcx>;
bmap cursor_changed = <changed.pcx>;

function change_cursor();

action npc
{
    my.enable_touch = on;
    my.enable_release = on;
    my.event = change_cursor;
}

function change_cursor()
{
    wait (1);
    while (event_type == event_touch)
    {
        mouse_map = cursor_changed;
        wait (1);
    }
    while (event_type == event_release)
    {
        mouse_map = cursor_normal;
        wait (1);
    }
}
 

F: Ich benutze den "pathcamera" code aus Aum6. Die Kamera soll stoppen, wenn sie den letzten Wegpunkt erreicht. Wie mache ich das?
A: Nehmen Sie die xyz-Koordinaten als Maß für den letzten Pfad und dann überschreiben Sie while (1) in cutcam.wdl mit:

while (my.x < x_coord && my.y < y_coord && my.z > z_coord)

Bitte nhemen Sie zur Kenntnis, dass Sie evtl. < mit > und > mit < vertauschen müssen, ganz abhängig von Ihrem Pfad.
 

F: Ich möchhte, dass die Einschusslöcher in der Wand bleiben. Ist das möglich? 
A: Zuerst müssen wir diese Zeile in weapons.wdl ändern: 

DEFINE kMaxBulletHole 100; -> DEFINE kMaxBulletHole 1000; // 1000 bullet holes now

Überschreiben Sie die Function bullet_hole() hiermit:

function bullet_hole()
{
     // check for maximum bullet holes at any time
     if(bullet_hole_index >= kMaxBulletHole)
     {
          bullet_hole_index = 0;
     }

     // check to see if its already in use
     temp = h_bullet_hole_array[bullet_hole_index];
     if(temp != 0)
     {
          // remove old hole
          p_bullet_hole_temp = ptr_for_handle(temp);
          remove(p_bullet_hole_temp);
     }

     // assign this as the new value in the array
     h_bullet_hole_array[bullet_hole_index] = handle(me);
     my.skill4 = bullet_hole_index;  // save index for removal

     bullet_hole_index += 1;  // increament index

     my.transparent = on;
     my.flare = on;
     my.passable = on;

     my.oriented = on;

     vec_to_angle(my.pan,normal); // rotate to target normal
}
 

F: Ich habe ein paar Modelle und ich möcht, dass sie gehen und die walkframes benutzen; Ich habe auch einen Charakter, der eine "stillgestanden"-Animation hat. Haben Sie den richtigen Code für mich?
A: Schauen Sie sich die enemy_fight Action in dieser AUM-Ausgabe an - der Code beinhaltet gehen, still stehen, angreifen und sterben.
 

F: Wie kann man überprüfen, ob der Spieler ene gewisse Straße betreten hat? 
A: Nehmen Sie die X- und Y-Koordinaten (min und max) der Straße in Wed vergleiche die Werte mit der Position des Spielers: 

function street_checker() // start it in main
{
    while (1)
    {
        if (player.x > street_min_x && player.x < street_max_x && player.y > street_min_y && player.y < street_max_y)
        {
            // the player has entered the street
            // add your code here
        }
        else
        {
            // the player is outside the street
            // add your code here
        }
        wait (1);
    }
}