EventsProfessional  Das SKS-Menü der Heldentruppe
Vorüberlegungen I - Grafische Darstellung des SKS-Menüs

Nun, da ihr die Gegner mit einer eigenen KI, Fertigkeiten und der Möglichkeit des Kämpfens ausgestattet habt, so sollen auch eure Helden das tun können. Da es jedoch den Spielern überlassen sein soll, welchen Zug die Helden ausführen, muss eine manuelle Steuerung mit eigenem Menü her.
Die Grafiken des Pakets [sks_menu.png] sollen hier das Menü darstellen, während die Grafiken des Pakets [sks_hpmp_rahmen.zip] die Mini-Avatare der Helden darstellen sollen. So soll später erkennbar sein, welcher Held am Zug ist, wenn das Menü dargestellt wird. Doch... wie geht das?

. Zunächst legt ihr ein neues Ereignis an, das ihr "Hero-Control" nennt und sorgt noch dafür, dass es mit "Push Key/ENTER" startet und zwei zusätzliche Ereignis-Seiten da sind.

Grund dafür:
Auf der ersten Seite sollen die Seiten aufgerufen werden, die noch in diesem Ereignis angelegt werden. Die zweite Ereignis-Seite soll die Darstellung des Menüs übernehmen, während die dritte Seite dafür sorgt, dass es wieder komplett verschwindet, also die angezeigten SKS-Menü-Bilder löscht.
 
. Begebt euch zunächst auf die dritte Ereignis-Seite. Hier sollen die Pictures mit den IDs 17, 18, 19 und 20 gelöscht werden.
 
. Wechselt nun auf die zweite Ereignis-Seite. Hier soll das Bild aus dem Paket [sks_menu.png] angezeigt werden, das "sks_menu" heißt. Da die Grafik 96x96 Pixel groß ist und in der rechten, oberen Ecke des Bildbereichs dagestellt werden soll, bestimmt ihr für X den Wert 272 und für Y den Wert 48. Gebt dem Bild die ID 18.
 
. Nun geht es an die Mini-Avatare:
Beginnt mit einer Bedingung, die prüft, ob der Wert der Variable "Chara-Move-ID" dem Wert "1" entspricht. Achtet darauf, dass ihr hier einen Nein-Fall mitanlegt.
 
. Im Ja-Fall der Bedingung soll eine weitere Bedingung folgen, die prüft, ob der Wert der Variable "Held #1" genau dem Wert 1 entspricht.
In deren Ja-Fall soll mit der Bild-ID 17 die Rahmengrafik aus dem Paket [
sks_hpmp_rahmen.zip], die dem Helden mit der Nummer 1 entspricht. Da die Heldenrahmen des Pakets 64x16 Pixel groß sind und so angezeigt werden sollen, dass die Gesichtsgrafik in der linken oberen Ecke der Menügrafik sichtbar ist, legt ihr X mit 256 und Y mit 8 fest.
Im Nein-Fall der Bedingung wiederholt ihr das ganze für den Fall, dass der Wert der Variable "Held #1" dem Wert "2" entspricht und so weiter, bis ihr sämtliche Helden durch habt.
 
. Wiederholt die vorangegangenen Punkte für Fälle, in denen die Variable "Chara-Move-ID" dem Wert 2, 3 und 4 entspricht, im Nein-Fall der ersten Bedingung. Beachtet, dass wenn "Chara-Move-ID" 2 ist, ihr die Variable "Held #2", bei 3 die Variable "Held #3 und bei 4 die Variable "Held #4" prüft. Die Position der "Mini-Avatare soll immer die selbe sein.
 
. Begebt euch zum Abschluss noch auf die erste Seite dieses Ereignisses, wo zuerst die zweite Ereignis-Seite aufgerufen werden soll (die stellt dann das Heldenmenü grafisch dar).
 
. Direkt darunter soll die dritte Ereignis-Seite aufgerufen werden, die das Heldenmenü wieder löscht.
Darstellung der Stichpunkte in MML
 Hero-Control-Ereignis
[Ereignisseite 1] [Push Key]
[Ereignisaufruf][Kartenereignis [Hero-Control][Ereignisseite [2]]
[Ereignisaufruf][Kartenereignis [Hero-Control][Ereignisseite [3]]
[Ereignisseite 2] [Push Key]
[Picture zeigen][18][sks_menu][X = [272] Y = [48]]
    [Transparent]
[Bedingung][Variable][Chara-Move-ID][gleich][1]
  [Ja-Fall]
  [Bedingung][Variable][Held #1][gleich][1]
  [Ja-Fall]
  [Picture zeigen][17][alex_window[[X = [272] Y = [48]]
    [Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Held #1][gleich][2]
  [Ja-Fall]
  [Picture zeigen][17][annie_window[[X = [272] Y = [48]]
    [Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Chara-Move-ID][gleich][2]
  [Ja-Fall]
  [Bedingung][Variable][Held #2][gleich][1]
  [Ja-Fall]
  [Picture zeigen][17][alex_window[[X = [272] Y = [48]]
    [Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Held #2][gleich][2]
  [Ja-Fall]
  [Picture zeigen][17][annie_window[[X = [272] Y = [48]]
    [Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Chara-Move-ID][gleich][3]
  [Ja-Fall]
  [Bedingung][Variable][Held #3][gleich][1]
  [Ja-Fall]
  [Picture zeigen][17][alex_window[[X = [272] Y = [48]]
    [Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Held #3][gleich][2]
  [Ja-Fall]
  [Picture zeigen][17][annie_window[[X = [272] Y = [48]]
    [Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Chara-Move-ID][gleich][4]
  [Ja-Fall]
  [Bedingung][Variable][Held #4][gleich][1]
  [Ja-Fall]
  [Picture zeigen][17][alex_window[[X = [272] Y = [48]]
    [Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Held #4][gleich][2]
  [Ja-Fall]
  [Picture zeigen][17][annie_window[[X = [272] Y = [48]]
    [Transparent]
[Ereignisseite 3] [Push Key]
[Picture weg][17]
[Picture weg][18]
[Picture weg][19]
[Picture weg][20]
Der erstellte Maker-Code auf den drei Seiten des Ereignisses
Im englischem Maker
<>Call Event: Hero-ControlPG[2]
<>Call Event: Hero-ControlPG[3]
<>
<>Show Picture: ID:18-sks_menu-(272, 48)
<>If Var(hhh2: Chara-Move-ID) 1
 <>If Var(aaa1: Held #1) 1
  <>Show Picture: ID:17-alex_window-(256, 8)
  <>
 :Else Case
  <>If Var(aaa1: Held #1) 2
   <>Show Picture: ID:17-annie_window-(256, 8)
   <>
  :End Case
  <>
 :End Case
 <>
:Else Case
 <>If Var(hhh2: Chara-Move-ID) 2
  <>If Var(aaa2: Held #2) 1
   <>Show Picture: ID:17-alex_window-(256, 8)
   <>
  :Else Case
   <>If Var(aaa2: Held #2) 2
    <>Show Picture: ID:17-annie_window-(256, 8)
    <>
   :End Case
   <>
  :End Case
  <>
 :Else Case
  <>If Var(hhh2: Chara-Move-ID) 3
   <>If Var(aaa3: Held #3) 1
    <>Show Picture: ID:17-alex_window-(256, 8)
    <>
   :Else Case
    <>If Var(aaa3: Held #3) 2
     <>Show Picture: ID:17-annie_window-(256, 8)
     <>
    :End Case
    <>
   :End Case
   <>
  :Else Case
   <>If Var(hhh2: Chara-Move-ID) 4
    <>If Var(aaa4: Held #4) 1
     <>Show Picture: ID:17-alex_window-(256, 8)
     <>
    :Else Case
     <>If Var(aaa4: Held #4) 2
      <>Show Picture: ID:17-annie_window-(256, 8)
      <>
     :End Case
     <>
    :End Case
    <>
   :End Case
   <>
  :End Case
  <>
 :End Case
 <>
:End Case
<>
<>Erase Picture: ID:17
<>Erase Picture: ID:18
<>Erase Picture: ID:19
<>Erase Picture: ID:20
<>
Im deutschem Maker (V1.10c)
<>Ereignis aufrufen: Hero-Control[2]
<>Ereignis aufrufen: Hero-Control[3]
<>
<>Bild anzeigen: 18 sks_menu, (272,48)
<>Bedingung: Varbl[hhh2: Chara-Move-ID]-1
 <>Bedingung:Varbl[aaa1: Held #1]-1
  <>Bild anzeigen: 17, alex_window, (256,8)
  <>
 :Ansonsten
  <>Bedingung:Varbl[aaa1: Held #1]-2
   <>Bild anzeigen: 17, annie_window, (256,8)
   <>
  :End-Fall
  <>
 :End-Fall
 <>
:Ansonsten
 <>Bedingung: Varbl[hhh2: Chara-Move-ID]-2
  <>Bedingung:Varbl[aaa2: Held #2]-1
   <>Bild anzeigen: 17, alex_window, (256,8)
   <>
  :Ansonsten
   <>Bedingung:Varbl[aaa2: Held #2]-2
    <>Bild anzeigen: 17, annie_window, (256,8)
    <>
   :End-Fall
   <>
  :End-Fall
  <>
 :Ansonsten
  <>Bedingung: Varbl[hhh2: Chara-Move-ID]-3
   <>Bedingung:Varbl[aaa3: Held #3]-1
    <>Bild anzeigen: 17, alex_window, (256,8)
    <>
   :Ansonsten
    <>Bedingung:Varbl[aaa3: Held #3]-2
     <>Bild anzeigen: 17, annie_window, (256,8)
     <>
    :End-Fall
    <>
   :End-Fall
   <>
  :Ansonsten
   <>Bedingung: Varbl[hhh2: Chara-Move-ID]-4
    <>Bedingung:Varbl[aaa4: Held #4]-1
     <>Bild anzeigen: 17, alex_window, (256,8)
     <>
    :Ansonsten
     <>Bedingung:Varbl[aaa4: Held #4]-2
      <>Bild anzeigen: 17, annie_window, (256,8)
      <>
     :End-Fall
     <>
    :End-Fall
    <>
   :End-Fall
   <>
  :End-Fall
  <>
 :End-Fall
 <>
:End-Fall
<>
<>Bild löschen: 17
<>Bild löschen: 18
<>Bild löschen: 19
<>Bild löschen: 20
<>