EventsProfessional  Die HP- und MP-Darstellung
Vorüberlegungen I - Die grafische Darstellung der HP und MP

Eure Helden werden sich, wenn ihr ein AKS verwendet, immer in der Spielwelt umherbewegen. Genauer gesagt wird dies nur ein einziger Held tun, wenn ihr unser Beispiel-AKS verwendet, das wir nach und nach ausbauen werden. Den Anfang soll die Darstellung der Lebens- und Zauberkraft machen, kurz HP und MP genannt.
Sie müssen immer dargestellt werden, egal wo sich der Hauptcharakter eures Projektes befindet, denn schließlich kann überall etwas lauern, was die HP und MP verringern könnte, beispielsweise eine Fallgrube, ein Dornbusch, ein Gegner oder sonstige Dinge. Bevor ihr also weiter fortfahrt mit der Erstellung des erforderlichen Maker-Codes solltet ihr euch Gedanken über die Grafiken machen, die ihr für die Darstellung von HP und MP braucht. In unserem Beispiel soll die HP durch die Grafiken des Pakets [aks_hp.zip] (40 Teilgrafiken) und die MP durch die Grafiken des Pakets [aks_mp.zip] (10 Teilgrafiken) dargestellt werden. Vom Prinzip her kommt für die Darstellung der HP- und MP-Anzeige der selbe Code zum Einsatz, wobei jeweils für die HP und MP ein eigenes "Common Event/Häufig benötigtes Ereignis" in der Datenbank eures Projektes angelegt wird:

. Zunächst soll die HP und die maximale HP bzw. MP und die maximale MP in jeweils einer neuen, freien Variablen gespeichert werden, die ihr "Hero-HP", "Hero-MAX-HP", "Hero-MP" und "Hero-MAX-MP" nennt.
 
. Hiernach soll der Wert in der Variable "Hero-HP" mit der Anzahl der Teilgrafiken für die HP-Darstellung und analog der Wert der Variable "Hero-MP" mit der Anzahl der Teilgrafiken für die MP-Darstellung malgenommen werden.
Direkt danach sollen die Werte der Variablen "Hero-HP" und "Hero-MP" durch die Werte in den Variablen "Hero-MAX-HP" bzw. "Hero-MAX-MP" geteilt werden.

Grund:
Das Ergebnis ist in unserem Beispiel bei der Hero-HP ein Wert zwischen 0 und 40 und bei den Hero-MP einer zwischen 0 und 10. Mit diesen Zahlen lassen sich genau die entsprechenden Teilgrafiken der HP- und MP-Skala ansteuern.
Wichtig ist hierbei, dass ihr darauf achtet, dass die HP des Helden durch die Anzahl an Teilgrafiken für die HP- und seine MP durch die Anzahl der Teilgrafiken für die MP-Darstellung teilbar ist, damit das ganze nahezu stufenlos funktioniert. In unserem Beispiel wird der Held (Alex) HP von 40 und MP von 10 haben.
 
. Nach der HP- bzw. MP-Berechnung soll nun eine Bedingung prüfen, ob der Wert der Variable "Hero-HP" bei der HP-Anzeige bzw. der von "Hero-MP" für die MP-Anzeige genau dem Wert "0" entspricht. Wichtig ist, dass ihr hier einen Nein-Fall braucht.
 
. Im Ja-Fall der Bedingung soll nun mit der Bild-ID 20 die Grafik in der rechten oberen Ecke angezeigt werden, die einen Stand von "0" HP darstellt. Sollen die MP darstellt werden, so soll mit der Bild-ID 19 die Grafik in der linken oberen Ecke gezeigt werden, die einen MP-Stand von "0" grafisch darstellt.
(Wenn ihr die Grafiken aus den beiden oben genannten Paketen [
aks_hp.zip] und [aks_mp.zip] verwendet, so sind das die Grafiken mit den Namen "hp_00_0.png" bzw. "mp_00_0.png". Die Koordinaten sind für X = 160 und Y = 120)
 
. Im Nein-Fall wiederholt ihr die beiden vorangegangenen Punkte für den Fall, dass der Wert der Variable "Hero-HP" für die HP-Anzeige bzw. der Wert der Variable "Hero-MP" für die MP-Anzeige genau "1" entspricht und stellt das entsprechende Bild für die HP- bzw. MP-Skala dar. Achtet darauf, dass ihr für die gesamte HP-Skala die Bild-ID 20 und für die MP-Skala die Bild-ID 19 verwendet.
Führt das Schema so lange fort, bis die letzte Grafik für die HP- bzw. MP-Skala dargestellt wurde. Die Bedingung, die ihr dafür angelegt habt (Hero-HP ist genau 40 bzw. Hero-MP ist genau 10) brauchen keinen Nein-Fall mehr.
Darstellung der Stichpunkte in MML am Beispiel der MP-Skala
 MP-Ereignis
[Variable [Hero-MP]][<-- [Wert setzen][Alex's MP]]
[Variable [Hero-MAX-MP]][<-- [Wert setzen][Alex's MAX MP]]
[Variable [Hero-MP]][<-- [Malnehmen][10]]
[Variable [Hero-MP]][<-- [Teilen][Hero-MAX-MP]]
[Bedingung][Variable][Hero-MP][gleich][0]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_00_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][1]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_01_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][2]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_02_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][3]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_03_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][4]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_04_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][5]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_05_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][6]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_06_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][7]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_07_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][8]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_08_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][9]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_09_0.png]
    [X = [160] Y = [120]][Transparent]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Hero-MP][gleich][10]
  [Ja-Fall]
  [Picture zeigen][Bildnummer [19]][mp_10_0.png]
    [X = [160] Y = [120]][Transparent]
Der erstellte Maker-Code
Im englischem Maker
<>Change Var: Var[Hero-MP] (Set)-Alex's MP
<>Change Var: Var[Hero-MAX-MP] (Set)-Alex's Max MP
<>Change Var: Var[Hero-MP] (*)- 10
<>Change Var: Var[Hero-MP] (/)- Var[Hero-MAX-MP]
<>If Var (Hero-MP) 0
 <>Show Picture: ID:19-mp_00_0-(160,120)
 <>
:Else Case
 <>If Var (Hero-MP) 1
  <>Show Picture: ID:19-mp_01_0-(160,120)
  <>
 :Else Case
  <>If Var (Hero-MP) 2
   <>Show Picture: ID:19-mp_02_0-(160,120)
   <>
  :Else Case
   <>If Var (Hero-MP) 3
    <>Show Picture: ID:19-mp_03_0-(160,120)
    <>
   :Else Case
    <>If Var (Hero-MP) 4
     <>Show Picture: ID:19-mp_04_0-(160,120)
     <>
    :Else Case
     <>If Var (Hero-MP) 5
      <>Show Picture: ID:19-mp_05_0-(160,120)
      <>
     :Else Case
      <>If Var (Hero-MP) 6
       <>Show Picture: ID:19-mp_06_0-(160,120)
       <>
      :Else Case
       <>If Var (Hero-MP) 7
        <>Show Picture: ID:19-mp_07_0-(160,120)
        <>
       :Else Case
        <>If Var (Hero-MP) 8
         <>Show Picture: ID:19-mp_08_0-(160,120)
         <>
        :Else Case
         <>If Var (Hero-MP) 9
          <>Show Picture: ID:19-mp_09_0-(160,120)
          <>
         :Else Case
          <>If Var (Hero-MP) 10
          <>Show Picture: ID:19-mp_10_0-(160,120)
          <>
         :End Case
         <>
        :End Case
        <>
       :End Case
       <>
      :End Case
      <>
     :End Case
     <>
    :End Case
    <>
   :End Case
   <>
  :End Case
  <>
 :End Case
 <>
:End Case
<>
Im deutschem Maker (V1.10c)
<>Var. ändern:[Hero-MP]Wert, Alex MP
<>Var. ändern:[Hero-MAX-MP]Wert, Alex MAX MP
<>Var. ändern:[Hero-MP]*, 10
<>Var. ändern:[Hero-MP]/, Hero-MAX-MP
<>Bedingung:Varbl[Hero-MP]-0
 <>Bild anzeigen: 19, mp_00_0,(160,120)
 <>
:Ansonsten
 <>Bedingung:Varbl[Hero-MP]-1
  <>Bild anzeigen: 19, mp_01_0,(160,120)
  <>
 :Ansonsten
  <>Bedingung:Varbl[Hero-MP]-2
   <>Bild anzeigen: 19, mp_02_0,(160,120)
   <>
  :Ansonsten
   <>Bedingung:Varbl[Hero-MP]-3
    <>Bild anzeigen: 19, mp_03_0,(160,120)
    <>
   :Ansonsten
    <>Bedingung:Varbl[Hero-MP]-4
     <>Bild anzeigen: 19, mp_04_0,(160,120)
     <>
    :Ansonsten
     <>Bedingung:Varbl[Hero-MP]-5
      <>Bild anzeigen: 19, mp_05_0,(160,120)
      <>
     :Ansonsten
      <>Bedingung:Varbl[Hero-MP]-6
       <>Bild anzeigen: 19, mp_06_0,(160,120)
       <>
      :Ansonsten
       <>Bedingung:Varbl[Hero-MP]-7
        <>Bild anzeigen: 19, mp_07_0,(160,120)
        <>
       :Ansonsten
        <>Bedingung:Varbl[Hero-MP]-8
         <>Bild anzeigen: 19, mp_08_0,(160,120)
         <>
        :Ansonsten
         <>Bedingung:Varbl[Hero-MP]-9
          <>Bild anzeigen: 19, mp_09_0,(160,120)
          <>
         :Ansonsten
          <>Bedingung:Varbl[Hero-MP]-10
           <>Bild anzeigen: 19, mp_10_0,(160,120)
           <>
          :End-Fall
          <>
         :End-Fall
         <>
        :End-Fall
        <>
       :End-Fall
       <>
      :End-Fall
      <>
     :End-Fall
     <>
    :End-Fall
    <>
   :End-Fall
   <>
  :End-Fall
  <>
 :End-Fall
 <>
:End-Fall
<>
Vorüberlegungen II - Die Startaufstellung

Damit von der Anzeige für die HP und MP eures Helden auch etwas zu sehen ist, braucht ihr noch zwei Ereignisse: Eines in der Datenbank (nennt es "Startaufstellung"), das die Ereignisse in der Datenbank aufruft, die ihr "HP-Calc" und "MP-Calc" genannt habt; auch braucht ihr ein zweites auf jeder (!) Map (Mit Auto-Start) eures Projekts, die euer Held jemals betreten wird. Dieses zweite Ereignis soll das Ereignis "Startaufstellung" aus der Datenbank aufgerufen und ein neuer, freier Schalter auf AN gestellt werden, den ihr "AKS-Display DONE" nennt. Gebt hiernach dem Ereignis eine zweite Seite, die durch Tastendruck startet und  dann aktiv wird, wenn der Schalter "AKS-Display DONE" auf AN steht. Lasst die Seite leer.

Habt ihr alles soweit angelegt, sollte bei einem Testspiel euer AKS wie folgt ausschauen:

[Beispiel des AKS]