Ergebnis 1 bis 9 von 9

Thema: Schleichaktion

  1. #1

    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

  2. #2
    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:
    Code:
    <> 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

  3. #3

    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

  4. #4
    OK, also dann nochmal etwas ausführlicher.
    Also, als erstes die 11 neuen Terrains:

    So, nun das Event dazu, was alles abfragt:

    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

  5. #5
    Zitat Zitat von Phönix Tear
    OK, also dann nochmal etwas ausführlicher.
    Also, als erstes die 11 neuen Terrains:

    So, nun das Event dazu, was alles abfragt:

    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

  6. #6
    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 ^^

  7. #7
    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...

  8. #8
    So habs ich gemacht, nur mit Variablen:


    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

    Geändert von Chr!zZ (10.07.2005 um 12:33 Uhr)

  9. #9
    Tja, bewegende Schatten hatte ich nicht einberechnet ^^°.
    Aber wie gesagt, die Kombination ist es...
    Du musst im Endeffekt einfach noch vor meinen Code ein
    Code:
    <>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:
    Code:
     - 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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •