Also ich schreibe gerade ein Script für den 2k3, dass das Teleportieren in meinem Games vereinfachen soll. Folgendes Beispiel:
Mein Held befindet sich am rechten Bildrand (X:24,Y:6). Damit ich nun nicht jedes Feld mit einem Event/Teleporter besetzen will habe ich ein CPP das die Koordinaten des Helden bestimmt. Dieses fragt nun ab, ob der Held sich auf X:24 befindet. Wenn ja wird je nach MapID auf die nächste Map, natürlich an die Stelle X:0 teleportiert. So weit so gut... Nun meiner Frage:
Wie mache ich das nun, wenn ich auf der "neuen" Map angekommen bin, das er abfragt, ob ich mich umdrehe und somit sofort auf die "alte" Map teleportiert werde oder ob ich nach rechts weiter gehe...
Ich hoffe ihr wisst was ich meine. Oder vielleicht gibt es schon so ein ähnliches Script...
Du kannst doch per Fork-Condition die Gesichtsrichtung des Helden abfragen. Bei Forks die zweite Auswahlseite und dann bei Event "Hero" auswählen. Da kannst du dann bestimmte Gesichtsrichtungen abfragen. Z. B. eben, wenn der Held auf X=0 steht. Wenn ja, wird abgefragt, ob er nach links schaut und wird gegebenenfalls teleportiert.
Die Sache ist doch es bisschen schwieriger. Also wenn dann der Teleport passiert wenn der Held nach rechts schaut, hat er immer noch die Koordiante X=0 und wird dann nachdem er angekommen ist gleich weiter teleportiert, usw...
Setz doch einfach, bevor der Held teleportiert wird, eine Abfrage, in welche Richtung der Held schaut, und teleportier ihn nur dann, wenn er in Richtung Ende der Map blickt. Für den linken Rand wäre dass dann bei Held X=0, für den rechten Rand X="Anzahl der Felder der Map in X-Richtung", für den oberen Rand Y=0 und für den unteren ist Y="Anzahl der Felder der Map in Y-Richtung". Die Werte für den rechten und unteren Rand musst du halt irgendwo auf der Map "initialiesieren", also dass beim Map-betreten die entsprechenden Werte in zwei Vergleichsvariablen gespeichert werden, damit dein Skript immer mit den gleichen Variablen arbeiten kann. Und dann machst du die Abfrage für den Teleport folgendermaßen (beispiel für X=0):
Ich hab btw das Gefühl, dass ich mich wiederhole...
Oder mach, dass er nicht auf den Rand der anderen Karte teleportiert wird sondern ein Feld weiter, sprich wenn er von Karte A den rechten Rand betritt, kommt er nicht auf die Koord x=0 von Karte B sondern auf Koord x=1
--
class Dog { //(...)
boolean getBuddha() { throw NullPointerException; } }
Spielt Hero-Chan!
Oder mach, dass er nicht auf den Rand der anderen Karte teleportiert wird sondern ein Feld weiter, sprich wenn er von Karte A den rechten Rand betritt, kommt er nicht auf die Koord x=0 von Karte B sondern auf Koord x=1
...
Ich habs hinbekommen. Aber das mit einem Feld davor sieht scheisse aus. Wie macht ihr das eigentlich? Habt ihr für jeden Teleport ein Event.
Ich habs hinbekommen. Aber das mit einem Feld davor sieht scheisse aus. Wie macht ihr das eigentlich? Habt ihr für jeden Teleport ein Event.
...
Da das wesentlich einfacher ist, ja. Ist ja auch nich so als würden die paar Teleportevents pro Map die mapgröße gewaltig anwachsen lassen. Dinge wie Maperweiterungen (z.B. Bäume) per Charset fallen da wesentlich mehr ins Gewicht.