@ SARAB
Der Trailer ist der Vorspann des Spiels. Ich mag keine Post-Apokalypsen, die sich um die Darstellung der Zerstörung herummogeln, also zerballere ich im Intro die Welt und der Spieler darf dann in den Resten toben.
@ FlipelyFlip
Ich möchte dieses Script (zeigt die HP-Balken der Gegner) jederzeit an- bzw. ausschalten können, je nachdem, ob der Schalter mit der ID 100 an ist.
Eigentlich dachte ich, es gehe so:
In der Hinsicht sind Programmiersprachen etwas fies: $game_switches[100] = true testet nicht, ob der Switch an ist, sondern setzt ihn auf true. Um auf Gleichheit zu testen, muss ein Doppel-Gleichheitszeichen benutzt werden, also:
@ Kelven
Ah, danke. Das ist wirklich eine etwas eigene Ausdrucksweise.
Ich scheine aber noch wesentlich mehr nicht zu beachten. Wenn ich das Script mit dieser if-Klammer versehe, bricht der RPG Maker XP direkt mit der Meldung eines "NoMethodError" ab. Vermutlich fehlen Vordefinitionen in einer wie auch immer gearteten Kopfzeile. Ist doch alles komplizierter als gedacht. Entweder lese ich mich da vertiefend ein oder ich handhabe auch diese Makerversion im ursprünglichen Sinne und nutze nur die Möglichkeiten, die keine echten Programmierkenntnisse verlangen. Auch in der Form bietet der XP-Maker durchaus noch seine spezifischen Vorzüge.
Vielleicht hast du die Abfrage an der falschen Stelle eingesetzt. Eine (wenig elegante) Lösung wäre vielleicht, nur das Anzeigen der Balken auszuklammern.
@Kelven & realTroll:
Damit löst du lediglich die eine draw_bars-Funktionen die es gibt. Witzigerweise sind zwei verbaut (einmal HP und einmal SP), was aber nicht viel mehr aufwand ist sogesehen. Ich hätte es allgemein eher so gelöst:
Da ein Switch lediglich nur true/false haben kann als Wert (ist seine einzige Gültigkeit, nicht so wie bei Variablen, dass diese auch Strings haben können), reicht lediglich folgendes für die Abfrage:
Die Abfrage verlangt ja lediglich nur, ob das Ergebnis true ist. Es kommt nun aufs selbe raus, ob wir direkt hier true als Ergebnis erhalten, oder es zuerst mit true abgleichen (:
Für die False-Abfrage (also ob ein Switch False ist) reicht es lediglich folgendes zu machen:
Das Rufezeichen invertiert die Aussage, was bedeutet: Ist der Switch auf true gesetzt, gibt dies nun ein False zurück und der Inhalt der Abfrage wird übersprungen. Bei False wäre
nun genau das umgekehrte der Fall und würde aus dem False ein true machen (:
Aber um kurz auf meine Änderung im Script einzugehen, also was ich geändert habe ist folgendes:
Es wird ja in der setup-Methode das draw_bars aufgerufen. Ich hab lediglich nur eine Abfrage eingefügt (draw_bars if $game_switches[100]). Diese Abfrage bedeutet soviel wie:
in kurz (:
Ist sehr zu empfehlen, wenn man mal einzelne Zeilen so verstecken will.
Bei deiner Fehlermeldung realTroll hast du wohl das gesamte Script in die Abfrage gepackt (vermute ich zumindest mal). Der Maker geht beim Playtest einmal die gesamte Scriptlist durch und schaut mal kurz durch, ob Fehler auftreten und initialisiert nur einen minimalen Anteil an den benötigten Daten (Game_System grundsätzlich) und startet danach erst die Scene_Title. Das führt dazu, dass in diesem Fehlerdurchlauf geschaut wird, ob ein End oder ähnliches vergessen wurde. Da die $game_switches noch nicht erstellt wurden, geht das System davon aus, dass hier ein Fehler in der Syntax ist und wirft deswegen den NoMethodError aus (:
Die Variable $game_switches wird nämlich erst im Scene_Title initialisiert, bzw. beim Start dessen (:
Danke für die Hilfe. Ganz klappt es noch nicht. In eurer Variante werden die Lebensbalken der Gegner nunmehr erst erstellt, wenn der Feind getroffen wurde, anstatt von Anfang an angezeigt zu werden.
Und vielen Dank für die Erklärung, in welcher Reihenfolge der Maker die Scripte initiiert. Dadurch hat sich ein kryptisches Mirakel in einen rationalen Umstand verwandelt.
Du schaltest den Switch erst im Kampf ein, oder? Ich hab das Script mal getestet. Wenn der Switch vor dem Kampf eingeschaltet wird, dann sieht man die Balken sofort, schaltet man den Switch aber erst im Kampf ein, dann sieht man die Balken erst nach einem Treffer. Da bin ich auf die Schnelle überfragt, wie man das Problem am besten löst.
Dadurch wird es sofort angezeigt, wenn der Switch 100 auf true gesetzt wird (:
Einzig allein, musste ich in der update-Methode von Sprite_HP_Bars eine Zeile ergänzen, welche folgende wäre:
Dadurch wird nur dann die Zeile ausgeführt, wenn der aktuelle @battler ein Gegner ist. Würde die if-Abfrage fehlen, würde es auch für Helden gelten und
diese würden dann auch eine Anzeigeleiste bekommen (:
@ Kelven
Nee, der Schalter fragt schon vor dem Kampf die Erfüllung einer Bedingung ab, ist also bereits aktiv. Erst dachte ich, eventuell beißt sich etwas mit einem anderen Script, aber die Nachforschung hat mir FlipelyFlip dankenswerterweise erspart.
@ FlipelyFlip
Super, es klappt. Und dank deiner Erklärung weiß ich sogar, weshalb. Dann kann ich mich ja jetzt in unbelasteter Leichtfertigkeit auf dynamische Lichteffekte stürzen. Die sind zum Glück nicht nur schick, sondern auch spielmechanisch attraktiv.
Ein riesigesSpiel wie Wolfenhain gerade erst beendet und schon am nächsten Meisterwerk arbeiten. Du bist echt Toll, woher nimmst du nur die Ausdauer?! Und danke, dass du dem Grafikstil treu bleibst! Viel Spaß beim Werkeln, freue mich schon auf das Ergebnis, denn der Trailer macht Lust auf mehr! Grüße ein Fanboy
@ C3lv1c3
Endzeit wird kleiner als "Wolfenhain" oder die "Allreise". Ganz so unverwüstlich bin ich dann doch nicht, als dass ich nach dem gerade fertigen Spielzeitkoloss bereits die Puste für den nächsten hätte.
Eine der angenehme Seiten einer in Europa angesiedelten Endzeit ist die Abkehr von überstrapazierten Bildmotiven. Freiheitsstatue zerdeppert, Wolkenkratzer mal wieder geborstene Stümpfe, dazwischen die immergleichen Funktionsbauten mit flachem Dach und ohne Gesicht. Das ist nicht per se schlimm (ich gucke ja selbst mit unverwüstlichem Beharren solche Filme), aber ein gelegentlicher Ausbruch aus der Standardrotation kann der Postapokalypse neue Eindrücke abgewinnen. Belgien wird seit der Antike besiedelt und mit Eifer bebaut, es hält also genug zum kreativen Kaputtmachen bereit. Da bin ich gerade mit Freude dabei.
Hitze, Druckwelle und Strahlung sind ein vergnügliches Trio, die ich als Einwirkungsfaktoren dem Brüsseler Umland überstülpe und daraus möglichst unterhaltsame Konstellationen entwickle. Interessant wird es auch dann, wenn die Endzeit auf die Bausubstanz des Mittelalters trifft. Wie ist sie denn so, die Postapokalypse in einer Burg? In Europa ist eben auch das Zusammentreffen von modernen Gefahren in klassischen Rollenspielkulissen möglich, woraus ein ganz eigener Charme erwachsen kann.