F: Ich habe ein Helikoptermodel und möchte, dass der Spieler darin Platz nehmen kann (wie in Delta Force). Ich habe herausgefunden, dass die Bounding Box dies verhindert, aber ich bin sicher, dass man eine Lösung finden kann, weiß jemand wie?
A: Sobald der Spieler sich dem Helikopter nähert, bewegen Sie ihn, indem Sie seine xyz Koordinaten direkt ändern, anstelle von ent_move. Mit einer While Schleife bleibt er im Helikopter:

function player_flies()
{
    ............
    while (flying)
    {
        player.x = helicopter.x;
        player.y = helicopter.y;
        player.z = helicopter.z;
        player.pan = helicopter.pan;
        player.tilt = helicopter.tilt;
        player.roll = helicopter.roll;
        wait (1);
    }
}
 

F: Wenn ich meine Map starte, sehe ich nur einen schwarzen Bildschirm mit “A5” in der oberen rechten Ecke und nichts geschieht, nicht einmal nach 15 Minuten.
A: Die Kamera (Ihr “Auge” in die 3D Welt) ist außerhalb des Levels plaziert – daher Sehen sie nichts. Stellen Sie ein Model in Ihre Level und geben Sie ihm die Action “player_walk_fight”.
 
 
F: Ich verwende Ihre Resident Evil Kamera aus Aum4 und alles funktioniert gut, bis ich in den 2. Stock des Gebäudes komme. Wenn mein Spieler den Kameras aus dem Erdgeschoß zu nahe kommt (obwohl ich im 2. Stock bin), schaltet das Spiel auf diese. Wie kann ich das beheben?
A: Fügen Sie noch eine Anweisung zu der “if”-Bedingung der Funktion fixed_cameras() hinzu:

if ((camera_position[temp_counter] < winner && camera_position[temp_counter] > 0) && (player.z < 200))
{
    ...
}

Die Idee ist es, die Kameras nur dann zu aktivieren, wenn der Spieler eine ähnliche z-Koordinate hatte. Sie sollten außerdem:

while(player == null) {wait (1);}

als erste Zeile in fixed_cameras() hinzufügen, um einen Empty Pointer Fehler zu vermeiden.
 
 
F: Einige Models (Quake 2 MDL Dateien) funktionieren nicht richtig in 3DGS; wenn ich Ihnen die Funktion “player_walk” zuweise, zeigen Sie keine Gehanimation, wenn sie gehen. Aber sie enthalten welche!
A: Wenn Sie die Template Skripte verwenden, stellen Sie sicher, dass die Namen der Frames identisch sind mit den Namen, die von den Templates verwendet werden: “stand”, “walk”, “run”, “duck”, “swim”, “die”, “jump”, “crawl”. Wenn Ihre Gehanimation z.B. 12 Frames hat, sollten diese Frames walk01..walk12 heißen usw. Heißen Ihre Frames z.B. move01..move12, dann funktioniert es nicht.
 

F: Ich hätte gern einen Gegner-Generator, wenn ich einen Gegner töte, sollte ein anderer ihn ersetzen. Ist das möglich?
A: Sicher. Kopieren Sie den Code unten an das Ende Ihrer office.wdl, plazierne Sie irgendein Model im WED und geben Sie ihm die Action enemy_generator:

string guard_mdl = <guard.mdl>;

entity* my_enemy;

action enemy_generator
{
     my.invisible = on;
     my.passable = on;
     while (1)
     {
          my_enemy = ent_create(guard_mdl, my.pos, actor_ai_one);
          while (my_enemy != null) {wait (1);}
          wait (1);
     }
}
 
 
F: Wenn ich Mipmaps für mein Model möchte, müssen die Skins eine Zweierpotenz sein bzw. quadratisch?
A: Nein, das ist nicht nötig; wenn Sie aber rechteckige oder quadratische Bilder verwenden, deren Seitenabmessungen Zweierpotenzen sind, wird dies die Geschwindigkeit ein wenig erhöhen.
 
 
F: Wie kann ich die Tastenbelegung in player_walk_fight ändern?
A: Öffnen Sie input.wdl und suchen Sie nach dieser Codezeile in _player_intentions:

force.Z = strength.Z*(KEY_HOME-KEY_END);         // up and down

Dieses Beispiel ändert die Tasten für “jump” und “crouch” in S bzw. X:

force.Z = strength.Z*(KEY_S-KEY_X);         // up and down
 

F: Ich bekomme die Fehlermeldung 041 – lightmap space overrun, aber ich finde es nicht im Handbuch. Was bedeutet es?
A: Ihr Level ist zu groß und der Speicher für die Lightmaps ebenso. Verwenden Sie eine dieser Methoden:
- Verkleinern Sie Ihr Level.
- Wählen Sie die großen Blocks an (oder alle) und setzen Sie die Flächen auf “flat”.
 
 
F: Ich habe eine Variable so definiert:   var force[3];   und sagen wir ich mache die Zuweisung    force = 4;   wird dann der Inhalt von force  4, 4, 4 sein oder 4, 0, 0?
A: (4, 0, 0); übrigens   var force[3];   ist ähnlich (und funktioniert genauso) wie        var force;
 

F: Hat irgendjemand ein Beispiel für eine bearbeitete Acknex.wdf Datei?
A: Hier ist mein einfaches, aber voll funktionsfähiges WDF Template. Stellen Sie sicher, dass das Bild 256 Farben hat und nicht True Color.

WINDOW WINSTART
{
    TITLE "(c) Your company 2003";
    SIZE 576, 288; // size of the image in pixels
    MODE image; // standard
    BG_COLOR RGB(0,0,0); // black background
    FRAME FTYP1, 0, 0, 576, 288; // same size here
    SET FONT "Arial", RGB(0,0,0); // draw black text
    PICTURE <your_image.bmp> , opaque, 0, 0;
}