PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Terran ID Abfragen und deren Verwendung



Rash
23.06.2004, 00:44
Hallo mitnander,

Ich such schon seit ner weile irgend nen weg die Terrain ID abzfragen.
(nur dass keine missverständnisse vorkommen: ich suche einen weg die Terrain ID abzufragen und nicht die Map ID!)

Hat da irgendwer ne ahnung wie man das abfragt?

Schonmal THX im vorraus

Grüße
Rash

Dhan
23.06.2004, 00:54
Set/Change Terrain ID, zweite Seite

ist ein Übersetzungsfehler von Don, müsste eigentlich Get Terrain ID heißen

Rash
23.06.2004, 00:58
http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif
Ou, Danke, mann!!!!
Dhan, Ich liebe dich :D !!!! *lol*



Gruß
Rash
http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif

Square
23.06.2004, 01:05
Mit der Funktion "Get Terrain-ID" kannst du die Terrain-IDs in eine Variabel speichern.

Nun brauchst du zwei Variabeln, die wir bei "Get coordinates from variables" eingeben.

<> Eine nennen wir [101]X-Koordinate
<> Die andere nennen wir [102]Y-Koordinate

Danach speichern wir die Terrain-IDs in eine Variabel.

Set ID-Value to variable

<> Wir nehmen als Beispiel nun [103]Terrain

Folgende Wirkung ist bisher erzielt: Im Menü Chipsets (Database) gibt es rechts eine Leiste mit den Terraintypen. Diese haben z.B. die Bezeichnung 0001: Grasland oder 0002: Desert - wie es einem Lieb ist. Mit der Funktion "If-fork" kann man die Terrain-ID dann wie eine Variable abfragen.

z.B. ist 0001: Grasland = der Variablewert 1

Wozu du das nun brauchst, ist mir schleierhaft. Bei The Nightmare Project wurde damit das Laufgeräuschskript gemacht. ;)

Rash
23.06.2004, 01:12
Wozu du das nun brauchst, ist mir schleierhaft. Bei The Nightmare Project wurde damit das Laufgeräuschskript gemacht.

Du hast die Frage selbst beantwortet ;)

Außerdem THX für die ausführliche erklärung ;)


Tschö
Rash

Jamahl
23.06.2004, 03:00
Weils grade so passt, wie macht man soein laufgeräusch-script?

Mephisto
23.06.2004, 03:08
am anfang machst du mal ein enter password (ohne häckchen bei wait until key hit, direction angekreuzt). dann fragst du am, ob dieses enter password über 1 und unter 4 ist (also 2 verschachtelte forks, ohne else cases...) dann fragst du die coordinaten des helden ab und setzt dann auf diese coords den terrain ID (also mit set terrain ID, die variablen auswählen, indie du vorher die koords gespeichtert hast und in die letzte (terrain) eine neue wählen). danach fragst du ab, ob der terrain gleich 1 ist. wenn ja, dann fragst du ab, ob der switch schritt off ist. wenn ja, dann nimmst du den ersten sound (also den sound, der für terrain 1 in frage kommt... du musst dann einfach z.B jedem dreckweg die terrain 1 geben und gras 2). dann stellst du den switch schritt auf on. dann gehst du in die else case von dieser fork und machst den rechtenfußschritt sound hin und stellst den switch schritt wieder auf off ôô. dann hast du schon mal nen schrittsound für den terrain 1 :D. wenn du noch weitere willst, dann musst du nur nach der fork - terrain = 1. eine andere fork machen, die abfragt, ob dieser terrain bspweise 2 ist. ;)

ich hoffe du hast es wenigstens ansatzweise verstanden :)

Ineluki
23.06.2004, 05:45
Es gibt auch noch eine andere sehr gute Moeglichkeit, wozu man die TerrainIDs braucht. Damit kann man wunderbar NPCs auf Random Movement haben, und trotzdem diese in ein bestimmtes Gebiet einsperren, z.B. in einem Stadtpark ausschliesslich auf den Wegen und nicht ueber das Gras laufen lassen. Dazu gibt man dem Weg eine eigene TerrainID und erstellt im NPC ein PP, in deim eine Zufallszahl zwischen 1 und 4 (bzw 1 und 8 bei diagonallaufen) erzeugt wird. Nun speichert man die Koordinaten des NPC in zwei variablen, addier bzw subtrahiert 1 von der X bzw Y Pos, je nachdem, welcher Zahl man welche Richtung zuordnet, und liest die TerrainID auf dem entsprechenden Feld ein. Hat es die selbe TerrainID wie das Feld auf dem man steht (bzw wie die ID des Weges), wird der NPC in die entsprechende Richtung bewegt. Wenn jedoch die ID nicht uebereinstimmt, wird eine andere Variable um eins erhoet, und zur auswahl der Zufallszahl zurueck gesprungen. Wird schliesslich doch noch eine Richtung gefunden, in der die IDs uebereinstimmen, wird die Variable auf 0 zurueck gesetzt. Andernfalls wird die Bewegung des NPCs abgebrochen, wenn die Variable einen bestimmten Wert ueberschreitet. Dieses Verfahren mit dem Erhoehen der Variable ist dazu da, dass der NPC nicht den ganzen Computer aufhaengtm wenn er mal auf ein Feld gesetzt wurde, an dass kein anderes Feld mit der entsprechenden ID angrenzt.

Nun hat man einen NPC, der sich zwar zufaellig bewegt, jedoch den Weg bzw sein vorgegebenes Gebiet niemals verlaesst

Wenn bedarf besteht, poste ich gerne nochmal etwas Pseudocode. Da aber das Script so einfach ist, hab ich mir das erstmal gespart.

Gruss Ineluki

Caine Luveno
23.06.2004, 05:59
Hmm ich habe Terrain IDs bisher immer ignoriert da ich sie nicht brauchte aber das liefert guten Stoff für mein Game. Dadurch kann ich die Angriffsbewegung der Gegner verbessern.

Dhan
23.06.2004, 20:09
Hmmm... das, was Luki sagt, ist extrem interresant... da müsste sich doch damit das Brückenscript machen lassen rein theoretisch...