RPG Maker 2000 - Taschenlampe geht an/aus, wenn man ein Event anspricht
Soo, und da bin ich wieder mit einer neuen Frage. Man lernt ja nie aus. ^^
Ich habe jetzt ein wunderbar funktionierendes Taschenlampenskript geskriptet. Läuft alles wunderbar, jedes Bild wird da angezeigt, wo es hingehört, kein Problem. War schon richtig stolz, dass beim ersten Versuch hinbekommen zu haben...
...bis ich ein Fass ansprach und die Lampe ausging.
Ja, die Taste zum Aktivieren der Lampe ist auf Space/Enter. Aber auf den Pfeiltasten oder Escape hätte es noch weniger Sinn gemacht, dann wäre sie mitten in der Bewegung oder eben beim Menü ausgegangen.
Jetzt die Frage: Kann man irgendwie einen Befehl dazwischenschalten, der die Lampe nicht aus- oder angehen lässt? Käme etwas blöd, wenn (wie geplant) der Charakter in einer Höhle vor einer beschriebenen Wand steht, die Lampe anmacht und sich beschwert, dass er es vor Dunkelheit nicht lesen kann. ^^ Lässt sich da etwas machen oder sollte ich die Lampe lieber über das Item im Inventar aktivieren lassen? Danke schon einmal im Voraus.
Du kannst vor jedem Objekt, welches ansprechbar ist ein event platzieren, welches das Taschenlampen Skript solange pausiert bis man es wieder verlassen hat...
Ansonsten such dir einen Patch um alle Tasten abzufragen und setz die Taschenlampe auf einen anderen Buchstaben...
--
Langzeitstudien an einer Universität in England haben ergeben, dass Homosexuelle die Signaturen anderer immer mit der Hand auf der Maus lesen.
Du brauchst sie jetzt nicht mehr wegzunehmen, es
ist eh schon zu spät....
Ich würde das per Item machen. Es liegt ja auch nahe, dass man die Lampe wie andere Gegenstände über das Inventar benutzt. Natürlich gibt es andere Lösungen, aber damit machst du es dir wohl nur unnötig schwer (den Vorschlag von djeurissen mit dem Event halte ich z. B. für viel zu umständlich). Eine zusätzliche Taste per Patch ist nur dann sinnvoll, wenn die Lampe ständig zum Einsatz kommt.
Im Endeffekt setzt du einen Switch. Den nennst du z.B. "In der Höhle"
Den machst du immer an, wenn du in Gebiete kommst, wo du die Lampe aktivieren sollst/darfst. Wenn du das Gebiet wieder verlässt musst du die Switches "in der höhle" und das später kommende "Lampe an" Ausschalten.
Dann Database->Item->"Taschenlampe" [Typ SWITCH] Einen neuen Switch erstellen und ihn bspw:"Lampenevent" nennen.
Dann Database->Common Event.
Neues Common event benennen ---> Typ Autostart --->Switch [Lampenevent]
Der Code dieses Events ist
<>Branch If [In der Höhle] ON
<>Change Switch ON [Lampe an]
else:
<>Change Switch OFF [Lampe an}
Comment: Nur zur Sicherheit
End
<>Change Switch OFF [Lamopenevent]
Dann brauchst du nur noch in den Höhlenmaps oder gar in den Common Events einen parallel Process machen, der das Lampenskript beinhaltet und welches sich nur bei LAMPE AN aktiv aktiviert.
Danke an alle erstmal für die schnelle Hilfe. Ich werd mal sehen, wie ich es umsetze. Im absoluten Notfall mach ichs tatsächlich über das Item oder mit nem Tastenpatch.
Stimmt, die Erreichbarkeit der Taschenlampe sollte vom Spielprinzip abhängig sein - so wie Kelven meinte. In einem Horrorgame wird man sie sicherlich ständig nutzen müssen, dann macht ein Hotkey Sinn. In einem Rollenspiel hingegen ist eine Taschenlampe wie ein gewöhnliches Fundobjekt, das sich an bestimmter Stelle über das Menü aktivieren lassen sollte. Das Ganze wäre übrigens über den 2k3, wo auch die Shift-Taste vergeben werden kann, leichter gewesen und unproblematisch, aber das war ja nicht deine Frage.
Djeurissens Vorschlag zur Direktlösung ist gar nicht all zu kompliziert, wenn es richtig angegangen wird.
Deine Taschenlampe wird ja über Enter aktiviert. Doch zeitgleich willst du mit Enter irgendein Objekt ansprechen, wodurch zwei Events gleichzeitig aktiv werden. Also selbst wenn du ins Map-Event einen Schalter legst, der das Common Event unterbricht, wird sich beides zwangsweise überschneiden, es sei denn die Taschenlampe springt mit einer winzigen Verzögerung an und hat so die Chance auf den Tab/Switch zu reagieren. Ich würde das Ganze folgendermaßen lösen (ohne den Maker vor der Nase zu haben):
Map Event:
<> Switch: Taschenlampenfunktion AN
<> Rest deines Events
<> Switch: Taschenlampenfunktion AUS
Common Event (Taschenlampenskript):
<> Wait 0.1 (oder mehrere Wait 0.0 hintereinander, aber 0.1 sollte genügen)
<> Bedingung Wenn: Taschenlampenfunktion AUS
Dann: Skript überspringen (zB über Layer) oder das Aktivierungs-Event Deaktivieren
Sonst: Taschenlampenskript ausführen
Man müsste dann zwar jedes mal zwei Schalter setzen, aber so ein großer Aufwand ist das nun auch nicht.
PS: Für den Schalter im Map-Event geht "Toggle AN/AUS" natürlich auch, aber das ist mir persönlich nicht kontrolliert genug. Kann Fehler erzeugen, wenn man nicht aufpasst.
...und wie immer sind die einfachsten Möglichkeiten die besten. Ich komme mir gerade reichlich dämlich vor. ^^
Zum Glück geht es (vorerst) nur um einen Raum, da wird es noch nicht so schwer, jedes Event noch einmal zu überarbeiten. Und der Grund, warum ich es gerne auf einer Taste hätte, war einfach, dass einen die Gegner verfolgen, solange man die Lampe anhat. Von daher wäre es etwas unpraktisch, dann ins Menü wechseln zu müssen, sinngemäß also die Laterne erst aus seinem Reisegepäck rauszukramen bzw reinzuverfrachten, nur damit das Licht an- oder ausgeht und die Biester einen nicht mehr verfolgen.
Ich bedanke mich bei allen für die schnelle Hilfe. Wahrscheinlich kann ich dann in grob geschätzt 5 Jahren auch das Tutorial in meinem Projekt fertig stellen. ^^'
Du kannst, wenn du Tasten verwenden willst meinen Code komplett übernehmen. Nur lass den Schritt mit dem Item weg und mach einen Parallel Process in den Common Events und mach den Haken rein bei Switch und wähle den [In der Höhle]!
Dann musst du nur folgenden Code machen
<>Key Input Proc [variable xyz] [Haken bei SHIFT reinmachen...den rest raus...und den Wait befehl haken rein]
<>If Switch [Lampe An] OFF
Change Switch ON [Lampe An]
Else:
Change Switch OFF [Lampe An]
End Case
Gerade habe ich leider keines zur Hand. Es kann natürlich auch sein, dass ich mich nun mit dem RM2k vertu'.
Naja...ich denke, es ist kein Hexenwerk mal eben eine Abfrage zu machen.
Ich meine, es war damals ein Rästel, bei dem man Schalter an und ausschaltet. Und jeder Schalter "toggelt" einen oder mehrere Schalter.