F: Könnten Sie mir bitte demonstrieren, wie ich eine Egoperspektive mit Ihrem Schwertkampf Code aus AUM12 kombiniere?
A: Klicken Sie hier, um das modifizierte Skript herunterzuladen.

 

F: Ich würde gern einen Sound, der in einer Schleife läuft, zu einem der Roboter-Skripte hinzufügen. Wie kann ich das anstellen?
A: Hier ist der Code für die modifizierte robot2 Action; die neuen Codezeilen sind rot markiert.

sound patrol_wav = <patrol.wav>;

ACTION robot2
{
    ent_playloop (my, patrol_wav, 200);
    MY._FORCE = 2;
    MY._FIREMODE = DAMAGE_SHOOT+FIRE_PARTICLE+HIT_FLASH+0.05;
    MY._HITMODE = HIT_GIB;//HIT_EXPLO;
    MY._WALKSOUND = _SOUND_ROBOT;
   anim_init();
   drop_shadow(); // attach shadow to robot
   actor_fight();
   // if(MY.FLAG4 == ON) { patrol(); }
   // create(<arrow.pcx>,MY.POS,_ROBOT_TEST_WATCHER); // used to activate watcher drone
}

F: Wie kann ich ein Panel implementieren, das je nach Pan des Spielers ein- und ausgeblendet wird? Ich möchte gern einen Lens Flare Effekt simulieren.
A: Benutzen Sie diesen Code.

bmap flarepan_tga = <flarepan.tga>;

panel flare_pan
{
   pos_x = 0;
   pos_y = 0;
   bmap = flarepan_tga;
   flags = overlay, refresh, transparent, visible;
}

starter show_flare()
{
   while (player == null) {wait (1);}
   while (1)
   {
      if (player.pan < 180)
      {
          temp.x = 360 - player.pan;
      }
      else
      {
          temp.x = player.pan;
      }
      player.pan %= 360;
      flare_pan.alpha = temp.x * temp.x / 1500; // play with "1500"
      wait (1);
   }
}

 

F: Ich konnte ein Problem auf eine .sav-Datei zurückführen, die erzeugt wird, wenn ich mein Projekt starte. Lösche ich sie, funktioniert alles. Was kann ich tun, um das abzustellen?
A: Öffnen Sie menu.wdl und fügen Sie folgende Codezeile zur save_status() Funktion hinzu:

function save_status()
{
    return;
    ifdef old_a52;
      save_info(INFO_NAME,0);
    ifelse;
      game_save(app_name,0,SV_INFO+SV_STRINGS+SV_BMAPS);
    endif;
}
 

F: Woran liegt es, wenn ein Text Objekt nicht in voller Länge angezeigt wird? Die Anzeige des Strings stoppt einfach, obwohl noch genug Platz wäre, ihn zu zeigen.
A: Das war ein Bug in einer der frühen A6 Versionen. Laden Sie das neueste Update runter und es wird funktionieren.

 

F: Wie kann man ein Panel definieren, dass nur unter bestimmten Umständen erscheint? Zum Beispiel ein Panel, das erscheint, wenn die Gesundheit des Spielers voll ist.
A: Verwenden Sie diesen Code:

bmap full_pcx = <fullhealth.pcx>;

panel full_pan
{
   pos_x = 0;
   pos_y = 0;
   bmap = full_pcx;
   flags = overlay, refresh;
}

starter show_panel()
{
   while (player == null) {wait (1);}
   while (1)
   {
      if (player._health == 100)
      {
          full_pan.visible = on;
      }
      else
     {
          full_pan.visible = off;
      }
      wait (1);
   }
}

 

F: Ich frage mich, ob es einen Weg gibt, meinen Charakter sanft vom letzten Frame des Walk Zyklus in das erste Frame des Stand Zyklus zu überführen.
A: Gibt es, mit diesem Code Beispiel:

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

while(my.skill20 < 100)
{
    ent_cycle("walk", my.skill20);
    ent_blend("stand", 0, my.skill20);
    my.skill20 += 10 * time;
    wait(1);
}

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

 
F: Haben Sie Tipps, wie meine Panels bei jeder Auflösung dieselbe Größe behalten?
A: Dieses Feature ist bislang nur in der A6 Beta Version verfügbar. Schauen Sie sich den Code unten an, um zu sehen wie es funktionieren wird.

bmap ammo_pcx = <ammo.pcx>;

panel ammo_pan
{
   pos_x = 0;
   pos_y = 0;
   bmap = ammo_pcx;
   flags = overlay, refresh, visible;
}

starter adjust_panel()
{
   while (1)
   {
      if (video_mode == 6) // 640 x 480 pixels?
      {
          ammo_pan.scale_x = 1;
          ammo_pan.scale_y = 1;
      }
      if (video_mode == 7) // 800 x 600 pixels?
      {
          ammo_pan.scale_x = 800 / 640;
          ammo_pan.scale_y = 600 / 480;
      }
      if (video_mode == 8) // 1024 x 768 pixels?
      {
          ammo_pan.scale_x = 1024 / 640;
          ammo_pan.scale_y = 768 / 480;
      }
      wait (1);
   }
}

F: Wie kann ich die Kamera von einem Pfad auf die normale Egoperspektive umschalten?
A: Verwenden Sie zwei verschiedene Views: camera und second_camera. Definieren Sie second_camera für den Pfad und camera für die Egoperspektive.

function main()
{
    ....................
    camera.visible = off;
    second_camera.visible = on; // show second_camera on the path
}

function switch_cameras()
{
   second_camera.visible = off;
   camera.visible = on; // show the 1st person view
}

on_s = switch_cameras;