F: Der Artikel über “intelligente Musik” aus Aum38 hat mir sehr gefallen; wie bekomme ich es hin, dass die Musik von sanft zu spannend und zurück wechselt, wann immer ich mich der Entity nähere bzw. mich entferne?
A: Klicken Sie hier um das modifizierte Skript herunterzuladen.

 

F: Ich brauche Code für eine Entity, die wartet bis der Spieler nahe herankommt, sich dann zu ihm umdreht, ein Geräusch abspielt und dann 3 Entities erzeugt. Können Sie mir helfen?
A: Klicken Sie hier für ein eigenständiges Skript.

 

F: Der Artikel über “editierbare Texte” aus Aum38 gefiel mir; ich habe mich allerdings gefragt, ob ich den Code auch verwenden könnte, um Zahlen anzeigen zu lassen.
A: Klicken Sie hier für das modifizierte Skript; es zeigt alle 2 Sekunden eine zufällige Zahl zwischen 0 und 10.000 an.

 

F: Ich nutze das Skript für das Rennspiel, das im Aum entwickelt wurde. Wie kann ich den Wagen des Spielers Funken sprühen lassen, wenn er vor eine Wand fährt?
A: Hier gibt es das modifizierte carai4 Projekt.



F: Ich nutze das Zugangscode-Skript aus Aum33; wie kann ich den Code für die Tür ändern, um zu erreichen, dass sie nach oben aufgeht?
A: Klicken Sie hier für die modifizierte access.wdl Datei.

 

F: Ich habe noch nicht herausgefunden, wie ich meine Models einbinde, wenn ich Milkshapes A5 Export nutze. Können Sie mir helfen?
A: Schauen wir uns ein typisches qc Skript an:

// header: not used entries (just let them be)
$final 0
$pad 0.0
$eye 0.0 0.0 0.0
$flags 0

// skin size and name
$skinwidth 512
$skinheight 256
$skin soldier.pcx

// animation frames
$sequence stand 1 5
$sequence walk 6 31
$sequence run 32 61

Ignorieren wir den Header – als nächstes stehen Breite und Höhe des Skins (in Pixeln) und der Name der Skin. Dieses Model hat 3 Animationen: stand, walk und run und Sie können die entsprechenden Frames erkennen; fügen Sie weitere Sequenzen ein, falls nötig. Kopieren Sie die gelben Zeilen in eine Textdatei und nennen Sie diese mymodel.qc (zum Beispiel). Stellen Sie sicher, dass das exportierte Model den gleichen Namen trägt (hier also mymodel.mdl). Der Skin könnte etwas seltsam aussehen, aber Sie können den Skin im MED erneut laden und alles wird funktionieren.

 

F: Ich brauche ein Skript, das eine Entity alle paar Sekunden sichtbar und wieder unsichtbar macht. Wenn man auf die Entity schießt und sie ist sichtbar, soll der Spieler Punkte bekommen. Können Sie mir bitte helfen?
A: Hier ist ein Stück Code, der das Gewünschte tut:

var my_score = 0;

function you_hit_me()
{
   my_score += 10;
}

action my_entity
{
   my.enable_impact = on; // sensitive to impact with other entitites (any weapon that fires rockets or bullets)
   my.event = you_hit_me;
   while (1)
   {
      my.invisible = on;
      my.passable = on;
      sleep (3); // invisible for 3 seconds
      my.invisible = off;
      my.passable = off;
      sleep (3); // visible for 3 seconds
   }
}

panel score_pan
{
   layer = 10;
   pos_x = 10;
   pos_y = 10;
   digits = 7, 15, 3, _a4font, 1, my_score;
   flags = overlay, refresh, visible;
}

 

F: Ich benötige ein einfaches Skript zum Levelwechsel, wenn ich auf eine Entity trete und dann möchte ich einen Film als Zwischensequenz abspielen. Wie geht das?
A: Mit diesem Skript:

string level2_wmb = <level2.wmb>;

action level_changer
{
   while (vec_dist (my.x, player.x) > 100) {wait (1);} // wait until the player has come close enough
   my = null; // keep the function running even after level_load
   level_load (level2_wmb);
   wait (3); // wait until the level is loaded
   media_play ("cutscene.avi", null, 100); // now play the movie
}

 

F: Ich möchte gern ein Kampfspiel schreiben, bei dem zwei Leute sich mit Schwertern bekämpfen. Es wäre genial, wenn Funken sprühen würden, wenn sie Schwerter kollidieren. Ist es mit der Physikengine oder einer anderen Technik möglich zu ermitteln, wo genau die Kollision stattfand, so dass ich sehen kann, welche Teile der Models kollidierten?
A: Die einfachste Methode wäre es, für die Schwerter separate Models zu verwenden. Stellen Sie für diese “my.enable_impact = on” und prüfen Sie auf Kollision, indem Sie z.B. überprüfen, ob “you.skill35 == bestimmter_Wert”, wobei nur die Schwerter diesen Wert in Skill35 stehen haben und sich so erkennen können. Bei Acknex Unlimited finden Sie ein Skript, das Waffen an Charakteren ausrichtet.