Ergebnis 1 bis 9 von 9

Thema: Simpeles KS

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    AW: Simpeles KS

    Ohja verdammt, hab die falsche Variable benutzt (das war die, mit der ich es vorher versucht habe x))

    Okay, jetzt funktioniert es wunderbar, aber eine Kleinigkeit ist noch falsch. Wenn der Gegner besiegt, sprich wenn die GegnerHP Variable auf 0 ist, verschwindert zwar der Gegner, aber das Event bleibt unsichtbar auf der selben Position.

    Kann ich da einfach 'Set Event Place, this Event, 0;0' machen?

    Und wieviele Gegner sollte ich maximal auf eine Map machen, damit es nicht ruckelt? Sind ja ne Menge Variablen (das Spiel ist eher auf Rätsel und nicht auf das Kämpfen fokusiert.)

    Aufjedenfall bedank ich mich an der Stelle schonmal, ihr habt mir echt sehr viel weitergeholfen, vorallem Phönix Tear wegen dem Beispiel und wegen dem ganzen Rumtesten, einfach Spitze.

    Edit: Achja, und der Gegner greift auch noch an, wenn gerade das Moveevent läuft, um die Transparenz zu steigern, wenn der gegner tot ist.

    Geändert von dasBAUM (28.12.2006 um 22:55 Uhr)

  2. #2
    Tja, ich denke, dass eher du selbst die Maximalzahl festlegst, als der Maker. Denn für jeden neuen Gegner brauchst du erneut die Abfrage im PP und neue Variablen. D.h. jeder Gegner macht für dich mehr arbeit. Aber an sich sollte der Maker bei einem derart leichten KS 10 bis 20 solcher Gegner locker schaffen

    Und zu deinem Fehler:
    Durch den "Clear Timer" Befehl wird das Event komplett gelöscht. Es ist also wirklich nichts mehr übrig. Ich bevorzuge dies der "Set Event Place" Methode, da es sonst zu schwerwiegenden Bugs kommen kann, falls das Feld (0|0) dann doch mal erreichbar sein sollte .
    Damit der Gegner einen nach dem Tod nicht mehr angreift werden ja seinen X- und Y-Koordinate auf -10 gesetzt, also ein Feld das auf jeden Fall außerhalb der Reichweite des Helden liegt.
    Trotzdem kann es nicht schaden für jeden Gegner einen "Gegner tot" Switch einzubauen, der dann auch das PP beendet, bzw. den betroffenen Code-Teil überspringt. So kann es nämlich noch vorkommen, dass ein Gegner den Helden noch angreift, obwohl er schon am sterben ist...

    Damit du den Code auch auf mehrere Gegner anwenden kannst muss er allerdings noch angepasst werden. Kopierbare Gegner wären auch möglich, dass würde den Code allerdings schon um einiges komplizierter machen. Wenn du willst schreibe ich dir aber einen entsprechenden Code. Das würde dir zumindest die Arbeit ersparen für jeden Gegner eigene Variablen zu erstellen...
    Aber trotzdem, ich erweitere den Code jetzt mal auf 2 Gegner. Das Gegnerevent selbst muss nur marginal angepasst werden.

    Gegner 1:
    Code:
    Push Key | Same Level As Hero | Keine Startbedingung
    
    Route: "Step Towards Hero ; Face towards Hero"
    
    <>Change Variable "Gegner 1 Zeitzähler", set 0
    <>Show Battle Animation "Sword 1" at 'This Event'
    <>Change Variable "Gegner 1 HP" - "Held Schaden"
    <>Fork Variable "Gegner 1 HP" <= 0
    <><>Play SE: "Monster 2"
    <><>Move Event 'This Event': "Transp. Up ; Wait ; Transp. Up ; etc."
    <><>Flash Cjarakter 'This Event' [31 ; 0 ; 0 ; 31] for 1 sec [Wait until done]
    <><>Change Variable "Gegner 1 X", set -10
    <><>Change Variable "Gegner 1 Y", set -10
    <><>Clear Timer
    <>End:
    <>
    Gegner 2:
    Code:
    Push Key | Same Level As Hero | Keine Startbedingung
    
    Route: "Step Towards Hero ; Face towards Hero"
    
    <>Change Variable "Gegner 2 Zeitzähler", set 0
    <>Show Battle Animation "Sword 1" at 'This Event'
    <>Change Variable "Gegner 2 HP" - "Held Schaden"
    <>Fork Variable "Gegner 2 HP" <= 0
    <><>Play SE: "Monster 2"
    <><>Move Event 'This Event': "Transp. Up ; Wait ; Transp. Up ; etc."
    <><>Flash Cjarakter 'This Event' [31 ; 0 ; 0 ; 31] for 1 sec [Wait until done]
    <><>Change Variable "Gegner 2 X", set -10
    <><>Change Variable "Gegner 2 Y", set -10
    <><>Clear Timer
    <>End:
    <>
    Ich habe alles markiert was sich im Vergleich zum Gegner 1 Event verändert hat.

    Nun zum PP:
    Code:
    Parallel-Process | Keine Startbedingung | Below Hero
    
    <>Change Variable "Held X", set [(Hero) X-Coord.]
    <>Change Variable "Held Y", set [(Hero) Y-Coord.]
    <>Change Variable "Gegner 1 X", set [(Gegner 1) X-Coord.]
    <>Change Variable "Gegner 1 Y", set [(Gegner 1) Y-Coord.]
    <>Change Variable "Gegner 2 X", set [(Gegner 2) X-Coord.]
    <>Change Variable "Gegner 2 Y", set [(Gegner 2) Y-Coord.]
    <>... Weiter für alle Gegner ...
    <>
    <>Fork Event 'Gegner 1' Face Dir. = Down
    <><>Change Variable "Gegner 1 Y" + 1
    <>Else:
    <>Fork Event 'Gegner 1' Face Dir. = Left
    <><>Change Variable "Gegner 1 X" - 1
    <>Else:
    <>Fork Event 'Gegner 1' Face Dir. = Right
    <><>Change Variable "Gegner 1 X" + 1
    <>Else:
    <>Fork Event 'Gegner 1' Face Dir. = Up
    <><>Change Variable "Gegner 1 Y" - 1
    <>End:
    <>
    <>Fork Variable "Gegner 1 X" = "Held X"
    <><>Fork Variable "Gegner 1 Y" = "Held Y"
    <><><>Change Variable "Gegner 1 Zeitzähler" +1
    <><>Else:
    <><><>Change Variable "Gegner 1 Zeitzähler", set 0
    <><>End:
    <>Else:
    <><>Change Variable "Gegner 1 Zeitzähler", set 0
    <>End:
    <>
    <>Fork Event 'Gegner 2' Face Dir. = Down
    <><>Change Variable "Gegner 2 Y" + 1
    <>Else:
    <>Fork Event 'Gegner 2' Face Dir. = Left
    <><>Change Variable "Gegner 2 X" - 1
    <>Else:
    <>Fork Event 'Gegner 2' Face Dir. = Right
    <><>Change Variable "Gegner 2 X" + 1
    <>Else:
    <>Fork Event 'Gegner 2' Face Dir. = Up
    <><>Change Variable "Gegner 2 Y" - 1
    <>End:
    <>
    <>Fork Variable "Gegner 2 X" = "Held X"
    <><>Fork Variable "Gegner 2 Y" = "Held Y"
    <><><>Change Variable "Gegner 2 Zeitzähler" +1
    <><>Else:
    <><><>Change Variable "Gegner 2 Zeitzähler", set 0
    <><>End:
    <>Else:
    <><>Change Variable "Gegner 2 Zeitzähler", set 0
    <>End:
    <>
    <>... Weiter für alle Gegner ...
    <>
    <>Fork Variable "Gegner 1 Zeitzähler" >= "Gegner 1 Reaktionszeit"
    <><>Show Battle Animation "Hit A" at 'Hero' [wait until done]
    <><>Change HP [Whole Party] dec. "Gegner 1 Schaden" [possible death]
    <><>Change Variable "Gegner 1 Zeitzähler", set 0
    <>End:
    <>
    <>Fork Variable "Gegner 2 Zeitzähler" >= "Gegner 2 Reaktionszeit"
    <><>Show Battle Animation "Hit A" at 'Hero' [wait until done]
    <><>Change HP [Whole Party] dec. "Gegner 2 Schaden" [possible death]
    <><>Change Variable "Gegner 2 Zeitzähler", set 0
    <>End:
    <>
    <>... Weiter für alle Gegner ...
    <>
    <>Wait 0,0 secs
    <>
    Ich hab die Variante mit dem Lable diesmal bleiben lassen. Das würde es nur unnötig kompliziert machen. Ich hab diese Version jetzt zwar nicht getestet, ich gehe aber davon aus das sie funktioniert. Wenn nicht, sag bescheid

    mfg
    Phönix Tear

  3. #3
    Dass der Gegner verschwindet, sollte ja recht einfaach zu erreichen sein. Mach einfach einen Switch "Gegner 1 tot", und wenn der on ist, wird beim Gegner-Event ne zweite Page aktiviert, auf welcher kein Bild und Below Hero eingestellt ist. Das könntest du sogar auf Parallel Process einstellen, um mit diversen Scripten erreichen zu können, dass der Gegner respawnt, dass er eine giftige Wolke hinterlässt, dass nach einer Weile etwas dort passiert... Der Fantasie sind keine Grenzen gesetzt

    Und eigentlich sollte es bei fast jeder vernünftigen Monsterzahl ruckelfrei bleiben. So ein paar Charsets mit kleinem PP belasten die CPU ziemlich wenig. Ich denke, bis etwa 50 monster pro Map sollte das ruckelfrei ablaufen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •