Common Events kann man scheinbar nicht per Erase Event löschen. Aber bei deinem Beispiel sollte es doch auch reichen, wenn du das Event einfach einmalig per Call Event aufrufst, oder?
Common Events kann man scheinbar nicht per Erase Event löschen. Aber bei deinem Beispiel sollte es doch auch reichen, wenn du das Event einfach einmalig per Call Event aufrufst, oder?
--"Banjo, you're a BEAR... and I will teach you... THESE MOVES!"
Das ganze soll eben auf jeder Map zu sehen sein, nicht einmalig schnell angezeigt werden.
Mit einem Picture lief die Sache eigentlch ohne Probleme, erst ab dem zweiten klappt es nicht mehr...
--
Angenommen du hast ein Event auf der Map und ein CommonEvent, in dem die Bilder angezeigt werden.
Dann sollte in deinem Event folgendes stehen.
- CallEvent ( dein CommonEvent)
- EraseEvent
Das EraseEvent löscht das Event dabei nicht wirklich. Es wird nur zeitweise deaktiviert und wenn die Map das nächste mal betreten wird ist es wieder da, wird aufgerufen und deaktiviert sich erneut. Das ist der einfachste Weg um Dinge beim Betreten der Map passieren zu lassen.
--CortiWins GitHub DynRPG < Charguide < [2k3] Zahlen und Werte < [2k3] Kurven als Wertetemplates < [2k3] DynRPG Werkstatt
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Hello from the otter side
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
gibt es eine Möglichkeit ein PP, welches per Switch gestartet und beendet wird, wieder vom Anfang starten zu lassen?
Wenn ich den Switch aus und wieder an mache, dann setzt das Event da fort wo ich es unterbrochen habe.
Jetzt such ich nach einer Möglichkeit das Event wieder komplett vom Anfang an laufen zu lassen .
Ich hätte auch mal eine kurze Frage:
Wenn ich viele Abfragen habe, was ist weniger rechenintensiv? Wenn ich das Ganze mittels :ELSE CASE ineinander verschachtel oder wenn ich die ganzen Forks einfach hintereinander weg platziere?
Wenn ich mal rein von der Abfolge der Schritte gehe, funktioniert da die Schachtelung schon besser, wenn du die weg lässt,
müssen auch noch alle anderen Sachen vom Eventinterpreter durchgegangen werden, die nach dem Treffer noch kommen.
Falls also nicht gerade die allerletzte Abfrage erst positiven Rückschlag gibt, ist das mittendrin sehr verschwenderisch.
Man kann zwar aus direkt untereinandergeschriebenen Bedingungen mit Labeljumps entkommen, aber das ist dann auch
nochmal ein Befehl mehr, der dann obendrein absuchen muss "Wo ist denn das jetzt?".
ganz klar wenn du mit ELSE arbeitest. Stell dir nur mal vor du hast 1000 forks. Wenn jetzt der erste zutrifft dann kann ja auch keiner der anderen 999 mehr zutreffen und deshalb lohnt es sich nicht diese auch alle abzufragen. Wenn du stattdessen else benutzt, dann schaut der sich die restlichen abfragen die bei else drinnen stehen erst gar nicht an und somit ist das ressourcenschonender.
Wie viel genau das jetzt wirklich bringt weiß ich nicht aber es sollte nicht wirklich viel sein, sodass man es auch einfach nur wegen der Übersicht ohne else machen kann.
Beim Vx hab ich die Erfahrung das das Elsecase verfahren Resourcen fressender ist.
Wenn du eine verschachtelung mit Else Case hast fragt er nicht nur ab ob es zutrifft, sondern muss jedesmal noch abfragen was passiert wenns nicht zutrifft.
Lässt man das Else weg, so muss der Maker nur abfragen obs Zutrifft:Ja/Nein aber kein extra Else. Mit Else wäre Resourcenfressender wenn nicht der erste Fork gleich zutrifft.
Damit der Maker nicht 999 Forks durchgehen muss wenn die Erste zutrifft, kann man folgendermaßen lösen:
1.Per Label, ganz unter alle Forks machst du ein Label, nennen wir es "Hier weiter Rechnen" nun kopierst du in jede Fork nur noch unter den Code im Fork ein Jump to Label "Hier weiter Rechnen".
Somit würden nicht immer alle Forks abgefragt werden, wenn der erste zutrifft.
2.Oder man macht nach den Forks falls sowieso kein Eventcode mehr folgt , den Befehl End Event Prozessing (Nicht Erase Event).
Mit End Event Prozessing springt die Codeabfrage zum ende des Events. Bei Paralellen Events fängt die abfrage also erneut an.
3. Benutzte den Elsecase einer Fork nur dann wenn du ihn wirklich brauchst bei deiner Schaltung.
Hoffe das hilft irgendwie.
Am besten könnte man dir helfen wenn man wüsste was du umsetzen willst.
Gruß Bex
Geändert von Bex (28.10.2012 um 13:30 Uhr)
@Bex:
Ganz einfach:
bzw. eben
Ich muss eine einzelne Variable abfragen und abhängig vom Wert eine Aktion ausführen. Welche das ist sei hier mal dahingestellt, da ich die Frage allgemein meine. Abfragen via Pointer sind allerdings natürlich nicht möglich, da die Aktionen keine Variablen als Referenzwert zulassen. (bspw. Tint Screen, Show Picture (ohne Patch jedenfalls), etc.)
Das Script an dem ich sitze (eine überarbeitete Version des Textsystem aus meinem Szenencontest-Projekt) braucht ca. 99 solcher Abfragen und diese müssen schnell und teilweise parallel zu ein paar anderen Events laufen. Letzteres lässt sich nicht vermeiden, da eben parallel zur Textanzeige auch andere Events laufen. Da der Spaß möglichst auch auf meinem Netbook noch flüssig sein soll, versuche ich nun, die Stellen, die in meinen Augen Knackpunkte sind, direkt zu optimieren soweit dies der Maker zulässt.
Btw, dein Vorschlag unter Punkt 1 wäre doch im Prinzip das selbe wie die Else-Case-Variante? Oder geht der Maker selbst dann den Rattenschwanz durch, wenn bei "If V[1]=3" tatsächlich 3 rauskommt? Else Case stellt ja soweit ich das bisher verstanden habe genau das sicher: Dass der Maker eben nicht alles durchgeht, sondern nur seine Abfragen macht, wenn eben der "'ansonsten'-Fall" eingetroffen ist und andernfalls zum passenden :END CASE springt, also das, was bei dir das Label bewirkt.
@Magicmaker:
Also die Elsecase-Variante, wenn ich das richtig verstehe? Gracias, das bestätigt meine Vermutung. (:
Sonst würde der Maker auch sehr paradox arbeiten bzw. die ganze elsecase-Funktion ad absurdum führen...
Geändert von BDraw (28.10.2012 um 15:17 Uhr)
Elsecase Pyramide sind sollte man besser vermeiden, weil's schnell unübersichtlich wird, und es ist kostet Generel mehr leistung, als wenn man die branches nach einander machen, kombiniert mit entweder einem label oder end event processing (je nach zweck), am ende jeden Fork zu machen.
z.b.
fork v = 1
blablah
jump to label 1
end
fork v = 2
blabla
jump to label 1
end
...
fork v = 99
blabla
jump to label 1
end
label 1
blabla (weiterem code)
Besser, wäre es möglicherweise wenn du aber statt so eine reihe von branches machst, einfach nur ein map event mit 99 seiten machst, gibst den event id in einem variabel rein, und lässt den anderen variabel entscheiden welcher event page ausgeführt werden soll. Ins besondere wenn die werte des variabel von 1 bis 99 gehen, sollte dies um einiges besser sein als ein grosses haufen von branches zu haben
Bloß in diesem speziellen Fall hab ich ein Common Event, ich könnte also maximal das ganze Messagesystem in MapEvents packen.
Wobei, wenn ich es schaffe, das auf ein Event zu Begrenzen... hrm...
Danke auf jeden Fall, der Ansatz hilft mir schon weiter. (:
Ich bin trotzdem neugierig.
Was genau wird mit 99 Forks bestimmt/gemacht/ausgelöst? Ohne diese Info kann man nicht sagen ob du es unnötig kompliziert angehst.
Vieleicht lässt sich das anders machen oder irgendwie aufteilen.
@Kazesui
Danke für das Beispiel^^ nicht das sich noch falsche Gerüchte als Eventweissheiten einbürgern.
Gruß Bex
Geändert von Bex (28.10.2012 um 16:46 Uhr)
Mjamm mjamm... weiß jemand, ob und wie man Cherrys 100 Pic Patch und sein Better AEP in eine RPG-RT.EXE bekommt?
(benutze rm2k3 1.08)
--![]()
Geändert von Itaju (04.11.2012 um 23:53 Uhr)
Ich hoffe, es kann mir jemand helfen. Ich hatte vorher ein kleines Netbook. Darunter liefen die spiele des RPG Maker 2000/2003 wunderbar. Jetzt habe ich einen neuen Laptop und der will mir den Maker unter 64 Bit nicht installieren, weil das Programm unter 32 Bit läuft. Auch die Spiele kann ich dann so nicht spielen. Weiß einer, einen Rat, wie ich den RPG Maker 2000 unter 64 Bit installieren und zum laufen bringen kann?
--Behandele mich so, wie du es auch von mir Erwartest
Hast du es schon mit "Als Administrator ausführen..." oder mit dem Kompatibilitätsmods versucht ?
--YetAnotherDungeonCrawler Makern
Habe es unter Administrator ausführen gemacht und es läuft jetzt. Gott sei Dank. Jetzt kann ich an meinem Projekt weiter arbeiten.![]()
--Behandele mich so, wie du es auch von mir Erwartest
--Elektra Kingdom v.4.12 Vollversion in der Mache, Zeitlimit bis zum 31.12.2024 *click
Offizieller Blog zum Spiel News, Links, Screenshots, etc. *click
Tanalin Integer Scaler Fullscreen Tool für RPG Maker 2000 / 2003 Spiele *click
VirtualMIDISynth Fix für kaputte MIDI Musik *click
Windows Photo Viewer Fix für unscharfe Windows Fotoanzeige *click
RPG Maker Ultimate (rpg2009) von Cherry: 1 Million Switches/Variablen, 125 Kästchen für BattleAnimationen, beliebige Picture-Größen importieren *click für DL & *click für 100.000 Pictures
RPG Maker 2000 / 2003 (Steam) Korrektes Vollbild , Performance+ & Ultimate *click
Gibt es ein Plugin/Patch, der mir erlaubt, im rm2k3 die Tasten STRG und ALT zu belegen ? Wenn ja: kann mir den bitte jemand schicken ?
Dazu brauchst du das DynRPG Plugin von Cherry. Hier geht's weiter: http://forum.rpg2000.4players.de/php...hp?f=3&t=98107
Gibt es eine genauere Abfrage für eine Positionsabfrage wenn man z.Bsp. einen gegensatand auffängt als die X,Y Positionen abzufragen oder arbeitet man dann besser mit der Bildauschnittsabfrage?
Lg
Multi-Master1988