Archiv verlassen und diese Seite im Standarddesign anzeigen : Schleichaktion
Ums kurz zu fassen: Ich suche jemanden der mir hilft eine Schleichaktion àla Splinter Cell zu machen. Also man muss im Schatten bleiben um nicht gesehen werden. Man kann aber dicht hinter im laufen.
Hoffe ihr könnt mir helfen ;)
Skye
Phönix Tear
07.07.2005, 17:44
Ich denke der einfachste Weg sind die Terrain IDs.
Mach einfach 11 neue Terrain IDs die du mit 0-100 benennst (in 10er Schritten).
Jetzt schreibst du als Code nur:
<> Change Variable "Held X" -> Hero X Position
<> Change Variable "Held Y" -> Hero Y Position
<> Set Terrain ID from X = "Held X", Y = "Held Y" to "Schatten Terrain"
<>
<>Fork: Variable "Schatten Terrain" <-> 1 {same}
<><>Set Variable "Aktuelle Sichtbarkeit" -> 0
<>Else:
<>Fork: Variable "Schatten Terrain" <-> 2 {same}
<><>Set Variable "Aktuelle Sichtbarkeit" -> 1
<>Else:
<>Fork: Variable "Schatten Terrain" <-> 3 {same}
<><>Set Variable "Aktuelle Sichtbarkeit" -> 2
<>Else:
<>Fork: Variable "Schatten Terrain" <-> 4 {same}
<><>Set Variable "Aktuelle Sichtbarkeit" -> 3
<>Else:
<>usw...
Hier bedeutet dann der Wert der Variable "Akutelle Sichtbarkeit" bei 1 "unsichtbar" bei 2 10% Sichtbar bei 3 20% Sichtbar usw.
Ich hoffe du hast verstanden was ich meine ;)
mfg
Phönix Tear
http://www.multimediaxis.de/images/smilies/old/1/gruebel.gif
Um ehrlich zu sein... Hab ich nichts verstanden^^
Ich bin ,was die Makertechnik angeht nicht so ganz der hellste xD
Mhhh... Aber ich guck was ich draus machen kann...
Danke trotzdem :)
Phönix Tear
08.07.2005, 20:37
OK, also dann nochmal etwas ausführlicher.
Also, als erstes die 11 neuen Terrains:
http://www.directupload.net/images/050708/temp/f5yKO3zc.png (http://www.directupload.net/show/d/387/f5yKO3zc.png)
So, nun das Event dazu, was alles abfragt:
http://www.directupload.net/images/050708/temp/MxvqB2sQ.png (http://www.directupload.net/show/d/387/MxvqB2sQ.png)
Unten geht dies einfach so weiter. Ganz am Ende steht dann noch ein Wait von 0,1.
Damit ist der grobe Teil schonmal fertig.
Die Variable "Schattenstärke" gibt nun an wie stark der Schatten ist, also wie gut man den Helden sehen kann. 0 ist hier 0%, 2 ist 20%, 8 ist 80% und 10 ist 100%...
Ich denke den Rest kannst du dir erschließen.
Bei einem Gegner kannst du dann in der Abfrage ob er einen sieht oder nicht die Entfernung zum Helden errechnen und das in Verbindung mit dem Schatten bringen. Ist der Schattenwert zu schwach und der Held zu nah am Gegner wird er gesehen. Der Rest ist dann wirklich ein Kinderspiel ;)
mfg
Phönix Tear
OK, also dann nochmal etwas ausführlicher.
Also, als erstes die 11 neuen Terrains:
http://www.directupload.net/images/050708/temp/f5yKO3zc.png (http://www.directupload.net/show/d/387/f5yKO3zc.png)
So, nun das Event dazu, was alles abfragt:
http://www.directupload.net/images/050708/temp/MxvqB2sQ.png (http://www.directupload.net/show/d/387/MxvqB2sQ.png)
Unten geht dies einfach so weiter. Ganz am Ende steht dann noch ein Wait von 0,1.
Damit ist der grobe Teil schonmal fertig.
Die Variable "Schattenstärke" gibt nun an wie stark der Schatten ist, also wie gut man den Helden sehen kann. 0 ist hier 0%, 2 ist 20%, 8 ist 80% und 10 ist 100%...
Ich denke den Rest kannst du dir erschließen.
Bei einem Gegner kannst du dann in der Abfrage ob er einen sieht oder nicht die Entfernung zum Helden errechnen und das in Verbindung mit dem Schatten bringen. Ist der Schattenwert zu schwach und der Held zu nah am Gegner wird er gesehen. Der Rest ist dann wirklich ein Kinderspiel ;)
Schön und gut, aber kann man mit der terrainversion auch machn, dass sich der von dem man nicht gesehn werden soll, bewegt?
Ich kann mir das so mit Terrain ID`s nich vorstelln, nur mit Hero X, Hero Y, WacheX un WacheY (Beispielsweise)
Jedoch ist das etwas aufwendiger als die Terrain ID, wie gesagt kann man es auch so machn das sich die Wache bewegt?
Chr!Zz
Phönix Tear
10.07.2005, 11:39
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):
<>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:
<>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 ^^
Deathball
10.07.2005, 11:42
Nope, mit Terrain IDs sind die Schatten fest, d.h. es ist unmöglich sich bewegende Schatten umzusetzen. Mit dem Befehl "(Chipsatz-)Tile austauschen" zu arbeiten funktioniert auch nicht, da man damit immer gleich eine komplette Tile-Art austauscht.
Wenn man wirklich so machen will, das die Schatten sich auch verändern können, sich also wegbewegen und man plötzlich im Licht steht, dann fallen mir nur 3 Möglichkeiten ein.
Die erste wäre eine Mischung aus dem Vorschlag von Phönix Tear und Variablen. Wenn also der Gegner beispielsweise eine Taschenlampe bei sich trägt, mit der er den Held sieht, müsste man zusätzlich noch eine Abfrage erstellen, die abfragt ob sich der Held beispielsweise 3 Kästchen vor dem Gegner befindet.
Bei der zweiten Lösung die mir einfällt, wird über Events die auf "On Hero Touch/Bei Heldberührung" eingestellt sind. Wenn sich der Schatten wegbewegt, werden die Events auch wegteleportiert. Auch wenn ich diese Lösung noch nicht ausprobiert hab, würde ich von dieser abraten - viel zu viele Events pro Map, für meinen Geschmack.
Lösung 3 ist eine reine Variablen-Lösung. Bei dieser Lösung wird einfach abgefragt ob sich der Held in dem sichtbaren Bereich befindet, evntl. noch mit Abstufungen bei der Sichtbarkeit.
cya
Deathball
der hofft wenigstens einigermaßen verständlich geschrieben zu haben, obwohl er selbst nicht daran glaubt ^^°
edit: zu spät... ...naja, kann ma nix mache...
So habs ich gemacht, nur mit Variablen:
http://img88.imageshack.us/img88/7775/script1tx.png
Am Wächter is noch n bei Berührung Held Event das auch den Tab GESEHEN anmacht
PS: Das "hab dich" is nur so als running Gag^^
Chr!Zz
Phönix Tear
11.07.2005, 13:24
Tja, bewegende Schatten hatte ich nicht einberechnet ^^°.
Aber wie gesagt, die Kombination ist es...
Du musst im Endeffekt einfach noch vor meinen Code ein
<>Fork: Switch "Schattenabfrage" -> ON
setzen und alle Probleme sind gelöst...
Tritt der Held nun auf ein Feld wo der Schatten sich variabel ändert steht einfach in dem Event:
- On Hero Touch -
- Below Hero -
<>Change Switch "Schattenabfrage" -> OFF
<>Change Variable "Schattenwert" set X //Halt den entsprechenden Wert...
Dieses Event muss dann einfach nur so viele Seiten haben, wie es unterschiedliche Zustände gibt. Natürlich darf man dann nicht vergessen um dieses Event andere Events zu positionieren, die dann den Switch "Schattenabfrage" wieder auf "ON" stellen.
Bei der Taschenlampe musst du dann einfach (was heißt hier einfach XD) den Code so wie Chr!zZ es schon angedeutet hat, erweitern.
Indem du eine Abfrage hinzufügst wo drinnsteht, dass wenn der Held auf eine bestimmte Entfernung an die Wache mit Taschenlampe rankommt und der Held in Blickrichtung steht, auch der Alarm aktiviert wird ;)
Falls ich das auch noch erklären soll, sag bescheid...
mfg
Phönix Tear
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.