Ich weiß jetzt leider nicht so genau wie du das meinst ^^°
Natürlich muss, damit die Wachen mit dem Helden interagieren können, eine Koordinatenabfrage her. Aber das hat ja erstmal nichts mit den Schatten zu tun...
Wenn du den Schattenwert erstmal hast ist es recht einfach den Rest zu machen. Man kann ja auch zwei Systeme kombinieren...

Bei der Wache steht dann (vereinfacht):
Code:
<>Change Variable "Held X" -> Hero X Position
<>Change Variable "Held Y" -> Hero Y Position
<>Change Variable "Wache 1 X" -> Wache 1 X Position // Das Event der Wache heißt hier "Wache 1"
<>Change Variable "Wache 1 Y" -> Wache 1 Y Position
<>
<>Change Variable "Held X" - "Wache 1 X" // Die erste Variable - (minus) die zweite
<>Change Variable "Held Y" - "Wache 1 Y"
<> //Jetzt kommt der Schattenwert ins Spiel
<>Fork: Variable "Schattenwert" 0 same
<><>Change Variable "Maximale Entfernung" 10
<>Else: //ACHTUNG: Dieser Teil wiederhohlt sich einfach die ganze Zeit mit anderen Werten!
<>Fork: Variable "Schattenwert" 1 same
<><>Change Variable "Maximale Entfernung" 9
<>Else:
<>Fork: Varibale "Schattenwert" 2 same
<><>Change Variable "Maximale Entfernung" 8
<>Else:
<>Fork: Varibale "Schattenwert" 3 same
<><>Change Variable "Maximale Entfernung" 7
<>Else:
<>Fork: Varibale "Schattenwert" 4 same
<><>Change Variable "Maximale Entfernung" 6
<>Else:
<>Fork: Varibale "Schattenwert" 5 same
<><>Change Variable "Maximale Entfernung" 5
<>Else:
<>Fork: Varibale "Schattenwert" 6 same
<><>Change Variable "Maximale Entfernung" 4
<>Else:
<>Fork: Varibale "Schattenwert" 7 same
<><>Change Variable "Maximale Entfernung" 3
<>Else:
<>Fork: Varibale "Schattenwert" 8 same
<><>Change Variable "Maximale Entfernung" 2
<>Else:
<>Fork: Varibale "Schattenwert" 9 same
<><>Change Variable "Maximale Entfernung" 1
<>Else:
<>Fork: Varibale "Schattenwert" 10 same
<><>Change Variable "Maximale Entfernung" 0
<>End Case
<>
<>Fork: Variable "Held X", Variable "Maximale Entfernung" below
<><>Change Variable "Maximale Entfernung" * (-1) //Variable mal minus eins
<><>Fork: Variable "Held X", Variable "Maximale Entfernung" above
<><><>Fork: Variable "Held Y", Variable "Maximale Entfernung" above
<><><><>Change Variable "Maximale Entfernung" * (-1) //siehe oben
<><><><>Fork: Variable "Held Y", Variable "Maixmale Entfernung" below
<><><><><>Change Switch "Wache 1 Held gesehen" -> ON
<><><><>End Case
<><><>End Case
<><>End Case
<>End Case
Das wirkt jetzt erstmla recht kompliziert, ist es aber nicht.
Ganz zu Anfang weise ich erstmal die Variablen der Koordinaten zu, dann ziehe ich die X, bzw. Y Werte der Wache von denen des Helden ab. Nun erhalten wir eine bestimmte Zahl die die Entfernung angibt.
(Steht die Wache auf 10|8 und der Held auf 9|6 erhalten wir als Wert -1|-2)
Nun müssen wir nur noch abfragen ob diese Werte in einem bestimmten Radius liegen. Dazu weise ich erstmal der Variable "Maximale Entfernung" einen Wert zu, der dem aktuellen Schattenwert des Helden entspricht. Wie du oben sehen kannst kann die Wache den Helden über 10 Felder hinweg sehen, sollte sein Schattenwert 0 sein, über 9 Felder, wenn dieser 1 ist, über 8 Felder wenn dieser 2 ist, usw.
Danach kommt dann nur noch die Abfrage ob der Held auch in diesem Bereich ist. Da (wie im Beispiel) der Held ja auf allen 4 Seiten stehen kann, muss die Abfrage auch für den negativen Bereich durchgeführt werden. Um keine neue Variable zu verbrauchen, die den selben Wert hat wie die Variable "Maximale Entfernung", nur negativ, rechne ich immer, wenn es gebraucht wird, einmal mal minus eins und erhalte damit den negativen Wert.
So sähe das für das Beispiel aus bei einem Schattenwert von 4:
Code:
<>Fork: (-1), 6 below
<><>6 * (-1)
<><>Fork: (-1), (-6) above
<><><>Fork: (-2), (-6) above
<><><><>6 * (-1)
<><><><>Fork: (-2), 6 below
<><><><><>Change Switch "Wache 1 Held gesehen" -> ON
<><><><>End Case
<><><>End Case
<><>End Case
<>End Case
Da hier alles übereinstimmt würde die Wache den Helden sehen.

Ich hoffe das ganze war einigermaßen verständlich ^^

mfg
Phönix Tear

P.S.:
Kann sein das es eine bessere Möglichkeit gibt. Dann bitte ich denjenigen der sie kennt diese zu posten, damit ich auch davon profitiere ^^