Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Montag, 15. August 2016, 09:04

Erweitertes Kistenschieberätsel und Variable Set Move Route-Routine

Hallo zusammen,

ich steh vor 2 Problemen und das Internet gibt mir leider zum XP keinerlei Ergebniss (oder hab ich falsch gesucht?):
Ich möchte einen Gegenstand per Tastendruck bewegen. Soweit so gut. Aber ich möchte eine Erweiterung einbauen. Wenn der Spieler links vom Gegenstand steht und rückwärts geht, soll der Gegenstand nach rechts verschoben werden. Wenn der Spieler nun aber nach links geht, soll der Gegenstand nach links verschoben werden. Wie bau ich diese Erweiterung ein? Hab ich nicht richtig gesucht? :/

Problem 2: stellt Euch folgendes Szenario vor: der Held steht am limken Rand vor einem Gebäude und schaltet die Stromversorgung für das Gebäude ab. Nach einigen Sekunden kommt jemand zur Tür raus. Ziel ist es, unbemerkt durch die Tür ins Gebäude zu kommen.
Nun fängt mein Problem an. Was ich machen will ist folgendes: wenn der Held einfach nur rumsteht und wartet was passiert, geht zwar ein Person 2 trotzdem aus dem Gebäude, aber kommt nur bis zum Helden und schnauzt den dann an, er soll abhauen. Nun kann der Held aber einen Container rechts neben die Eingangstür ziehen. Er schaltet den Strom ab, hat gerade mal so viel Zeit sich hinter dem COntainer zu verstecken, die Person 2 kommt aus dem Gebäude raus und weil der Held ja ned im Weg steht, kann diese direkt bis zum Stromkasten gehen, während der Held nun unbemerkt ins Gebäude kommt.

Mein konkretes Problem ist: wie setze ich dieses "Wenn... Dann"-Szenario konkret um. Ich kenn z.B. das Hide & Seek-Script, hab das im Spiel auch schon erfolgreich im Einsatz. Nur ist in diesem konkreten Fall diese Person 2 ja erstmal unsichtbar. Wenn ich nun also hergeh und sag, beim Stromabschalten kommt Person 2 raus, geht zum Stromkasten, schaltet den Strom wieder an und geht zurück ins Gebäude, funktioniert das ja nur solange, wie der Held nicht im Weg steht. Also brauch ich ja eine Abfrage die schaut, ob der Held im Weg steht und wenn ja, dann wird er angeschnauzt. Wenn der Held nicht im Weg steht, dann geht Person2 ganz normal seines Weges und der Held kann ins Gebäude, solang er nicht im Blickfeld von Person 2 ist.

Ich hoff ich konnte mich verständlich ausdrücken.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »kunst79« (15. August 2016, 09:04)


Mitsch93

Drachentöter

Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.

  • Nachricht senden

2

Montag, 15. August 2016, 14:41

zu 2.)
Weiß nich, ob ich das jetzt korrekt verstanden habe, aber versuchs mal:

Abfrage, ob Player im weg steht:
Du könntest dem NPC eine Custom Moveroute geben - eben der Weg, den er zum Stromkasten geht.
Den Trigger setzt du dann auf Event Touch.
Das würde bewirken, dass der NPC eine Aktion startet, sobald er den Spieler berührt.

zu 1.)
Ich verstehe das jetzt so mit dem "Rückwärts laufen", dass man dann quasi den Gegenstand zieht, oder wie?
Das könntest du mit einer simplen Tastenabfrage machen mit Button Imput Processing.
Ordnest du der Funktion eine Variable zu, wird sie, je nachdem welche Taste du gedrück hast,
einen der folgenden Werte besitzen:
Links: 4
Rechts: 6
Oben: 8
Unten: 2

Ob der Player links, rechts, über oder unter dem Objekt steht, kannst Du über seine Blickrichtung ermitteln:
Blick nach oben: Player unter Objekt
Blick nach unten: Player über Objekt
Blick nach rechts: Player links neben Objekt
Blick nach links: Player rechts neben Objekt
Die Blickrichtung lässt sich über Conditional Branch abfragen.

Wenn du jetzt den Spieler die Truhe mit Enter anklicken lässt, kannst du über seine Blickrichtung seine Position
ermitteln. Je nachdem welche Taste dann gedrückt wird, kannst du die Aktion starten, die du möchtest.

3

Montag, 15. August 2016, 20:32

Super vielen Dank für die Antwort, werde es ausprobieren und nochmals melden wie es geklappt hat. Aber erstmal überhaupt Danke für's Antworten :)

4

Mittwoch, 17. August 2016, 22:04

So... jetzt meld ich mich wie versprochen nochmals. Das mit dem Kisten verschieben klappt sowit gut, nur das Ziehen macht noch Probleme. Aber das werd ich schon hinbekommen..

Zum NPC hab ich aber noch 'ne Anmerkung. Der NPC geht ja ned nur zum Stromkasten, sondern auch wieder zurück. Wenn der NPC nun auf Weg zum Stromkasten den Helden berührt, schnauzt er ihn an. Wenn der Held sich aber rechtzeitig versteckt hat, geht der NPC normal seines Weges, flucht darüber, daß sich irgendwer am Stromkasten zu schaffen gemacht hat, schaltet den Strom wieder ein und geht zurück ins Haus. Wenn ich das nun über einen Self Switch steuere gibt's 2 Szenarien.

Szenario 1 - ich aktivere den NPC-Event, sobald der Self Switch on ist: Es passiert rein gar nix.

Szenario 2 - ich hab in dem Event vor dem Stromkasten eine Registerkarte, die aktiv wird, sobald der Self Switch on ist: dort ist dann der Bewegungsablauf des NPC hinterlegt. Der NPC kommt auch normal raus, geht zum Stromkasten und bleibt dort stehen. Außerdem ist der NPC durchsichtig, heißt: er kann durch den Helden durchgehen und umgekehrt.

Hast Du da noch einen Denkanstoß für mich?

Mitsch93

Drachentöter

Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.

  • Nachricht senden

5

Donnerstag, 18. August 2016, 16:56

Ich stelle einfach mal die Behauptung auf, dass Selfswitches für dieses Szenario der falsche Weg sind, denn

  • Der NPC und der Spieler sollen sich parallel zueinander bewegen können
  • Der NPC muss in der Zeit eine vorgefertigte Mouveroute abwandern
  • Sollte der Spieler bemerkt worden sein, muss man das dem "Spiel mitteilen"


Ansatz:
Lösung über ein Event mit Parallel Process.
Dieses Event wird gestartet, sobald der Spieler den Stromkasten ausschaltet und ist demnach
soetwas wie ein Timer.
In diesem Event werden die verschiedenen Dinge abgearbeitet:
  • Mann kommt aus Haus
  • Mann geht zum Stromkasten
  • Mann aktiviert Stromkasten
  • Mann geht zurück zum Haus
  • Mann geht ins Haus zurück


Da du dann ein Event mit parallel Process und Move Routes verwendest, solltest du den
Befehl Wait for Move's Completion unbedingt vermeiden, da der erfahrungsgemäß auch auf alle anderen
Bewegungen, die parallel ablaufen, wartet. D.h. benötigen wir ein Wait nach jeder Bewegung.

Die Kollisionsabfrage mit dem Mann kannst du implementieren, wie oben erwähnt.
Da er über eine Move Route "gesteuert" wird, wird die Kollision trotzdem erkannt.
In diesem Fall solltest du einen Switch aktivieren, der den Ablauf des Parallel Process Event
stoppt. Denn sonst würde das Spiel "denken", der Mann wäre noch am laufen.
Ergo würde auch der Stromkasten ausgeschaltet werden ect. obwohl der Spieler bereits
erwischt wurde.

Den selben Switch solltest du aktivieren, sobald der Spieler vom Hide and Seek Skript
erfasst wurde. Leider verwendet ich das Skript nicht selbst und kenne mich dementsprechend nicht damit aus.

Vorraussetzung das das klappt: Egal ob der Spieler vom Mann "angerannt" oder per Skript gesehen wurde,
es läuft auf das gleiche Ereigbnis heraus. (oder?).

Kurz und knapp
Ein Event per parallel Process muss den Ablauf des Mannes regeln
und unterbrochen werden, sobald der Spieler entdeckt wurde.

________________________________________

Im Anhang habe ich mal eine Demo zum Kasten schieben und ziehen, als auch für dein
Stromkasten- Problem.

Aus der ersten Demo solltest du das Event einfach so 1:1 übernehmen können - nur aufpassen, da ich
in der Demo Variable #1 für die Tastenabfrage verwende.

In der Stromkastendemo habe ich jeden Schritt kommentiert, sodass es gut nachvollziehbar sein sollte,
was da vor sich geht.


Falls es noch Fragen gibt einfach melden!
»Mitsch93« hat folgende Dateien angehängt:
  • Kistenschieben.exe (265,46 kB - 14 mal heruntergeladen - zuletzt: 3. März 2018, 20:29)
  • Stromkasten.exe (265,56 kB - 4 mal heruntergeladen - zuletzt: 2. Januar 2017, 13:32)

6

Donnerstag, 18. August 2016, 23:40

Vielen herzlichen Dank für die beiden Demos!!! Das Kisten schieben klappt jetzt perfekt - hatte in meiner Version einen kleinen Denkfehler drinnen, der Dank Deines Demos klar wurde.
Die Stromkasten-Demo werd ich mir am WE in Ruhe reinziehen, erste Tests funktionieren noch ned so ganz. Ich denke jedoch, das schaff ich alleine :)

DANKE!!!

Ähnliche Themen

Social Bookmarks