Dipl. User mit summa cum laude
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