F: Ich erstelle ein Level mit einem großen Terrain, das viele Polygone hat. Ich würde gerne wissen, wie ich nicht sichtbare Terrainteile deaktivieren kann, um die Framerate zu erhöhen.

A: Sie können mehrere Terrain Entities (hmp Dateien) und LOD oder ein wenig einfachen Code, der vec_dist zur Entfernungsberechnung Ihres Terrain Entity und dem Spieler nutzt, verwenden. Vergessen sie nicht, dass eine sinnvolle clip_range die Framerate deutlich verbessern kann.
 

F: Kann mir bitte jemand erklären, wie man eine hbar macht, die sinkt, wenn man getroffen wird, aber sich regeneriert wenn man einen Knopf drückt?

A: Hier ist ein Beispiel:

bmap health_map = <health.pcx>;

panel hbar_pan
{
     hbar 400, 10, 100, health_map, 1, player._health;
     flags = refresh, visible, overlay;
}

Alles was Sie tun müssen, ist dafür zu sorgen, dass die Lebensenergie sinkt, wenn der Spieler getroffen wird (Sie können hierfür player_fight verwenden). Benutzen Sie so etwas für die Regeneration:

function regenerate()
{
     while (player._health < 80)
     {
           player._health += 0.2 * time;
           wait (1);
     }
}
 

F: Während der Laufzeit ohne player_move, kann ich die Nulltaste drücken und kann so die Kamera herum bewegen. Wenn ich zu bestimmten Punkten komme, verschwinden alle meine Entities - was passiert?

A: Sie kommen einfach außerhalb des Levels, daher werden die Entities nicht mehr gerendert.

 
F: Ich würde gerne wissen, wie man ein Licht bewegt, seine Reichweite und Farbe im Spiel verändert.

A: Sie können ein dynamisches Licht benutzen, um jedes Entity zu beleuchten. Benutzen Sie so etwas:

action my_entity
{
    ...............
    // code that moves the entity (patrol_path, etc)
    ...............
    my.lightred = random(255);
    my.lightgreen = random(255);
    my.lightblue = random(255);
    my.lightrange = random(300);
    ...............
}
 

F: Ist es möglich, mehrere Körperteile für den Spieler zu haben? z.B. einen Körper, Beine, Arme, getrennte Objekte aber Teil der selben Gruppe, so dass sie vom Spielerbewegungsskript kontrolliert werden?

A: Sehen sie sich die Funktion attach_entity und attach_flare in der office.wdl an - Sie können so viele Körperteile wie Sie wollen mit Hilfe ähnlicher Funktionen zuweisen.

 
F: Ich will wissen, wie ich ein Entity einem Pfad folgen lassen kann und seine Geschwindigkeit verändern kann.

A: Sie können die patrol_path Aktion aus actors.wdl verwenden. Ändern Sie folgende Zeile in actor_init (patrolling speed = 1):

if (my._FORCE == 0) {my._FORCE = 1;}
 

F: Wie ist es möglich, ein bmap auf einem Panel in Richtung des Spielerwinkels (player.pan) zu drehen? Ich will eine Kompassnadel erstellen.

A: Klicken Sie hier um Alain Bregeons Antwort runterzuladen (beinhaltet Kompass Bitmaps).
 
 
F: Ich hab Teile des Template Codes modifiziert, so dass der Spieler stirbt wenn er zu lange unter Wasser ist, aber ich will, dass er nur Lebensenergie verliert, wenn die Kamera ebenfalls unter Wasser ist. Was soll ich tun?

A: Hier ist der Code, der Ihr Problem löst:

if(my._movemode == _MODE_SWIMMING)
{
    result = content (camera.x);
    if (result == content_passable)
    {
        player._HEALTH -= random(10) *time;
    }
}
 

F: Ich habe ein animiertes Fackelmodel - wie erstelle ich den Code dafür?

A: Hier kommt die Antwort (ich nehme an, dass Ihre Fackel 15 Animationsphasen hat):

action torch
{
     while (1)
     {
         my.frame = random (15);
         waitt (2);
     }
}
 

F: Ist es möglich verschiedene Wassereffekte zu erhalten? Wie?

A: Verändern Sie die Werte für turb_speed und turb_range - Sie können tolle Effekte erhalten.
 

F: Ich bräuchte einen code, der den Spieler Lebensenergie verlieren lässt, wenn er in Lava fällt.

A: Benutzen Sie so etwas:

function kill_player()
{
    if (event_type == event_impact && you == player)
    {
        player._health -= (10 + random(10))* time;
    }
}

action lava_entity
{
     my.enable_impact = on;
     my.event = kill_player;
}