Ich wollte mal in die Runde fragen.
Wie ihr ein Aschenregen mit Kisel und Broken und eben den Dicken Schwarzen wolken so erstellen würdet?
Ich wollte mal in die Runde fragen.
Wie ihr ein Aschenregen mit Kisel und Broken und eben den Dicken Schwarzen wolken so erstellen würdet?
@Chili: Toll, jetzt auch noch die falsche URL kopiert... @_@
http://share.cherrytree.at/showfile-...ventbugfix.ips
Jetzt aber.
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny:CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT
Ich wollte mal wissen ob mir wer bei meinen Problem helfen kann.
Und zwar kann ich seit einiger Zeit keine Spiele mehr spielen die mit dem RPG-Maker 2000 und 2003 erstellt worden. Immer wenn ich Sie versuche zu starten wird der Bildschirm schwarz und der PC friert ein. Zudem bekomme ich auch keine Fehlermeldung. Dieses Problem tritt übrigens nur bei Spielen die mit dem RPG-Maker 2000 und 2003 erstellt wurden auf und Spiele die mit dem RPG-Maker XP und VX erstellt wurden funktionieren einwandfrei.
Das RTP hab ich instaliert und ich hab auch schon versucht die Spiele als Administrator auszuführen.
--This is my latest masterpiece. I call it: MYSELF
Auch, wenn du das Spiel im Fenstermodus startest?
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny:CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT
@Cherry
Wie startet man die Spiele denn im Fenstermodus?
@MajinSonic
Schon probiert geht aber trotzdem nicht.
--This is my latest masterpiece. I call it: MYSELF
Am einfachsten: Spiel direkt im Maker öffnen und dort Vollbildmodus abschalten vor dem Testplay.
Am direktesten: Mit den Kommandozeilenparametern "TestPlay ShowTitle Window" starten. Z.B. eine Verknüpfung zur RPG_RT.exe erstellen, Eigenschaften der Verknüpfung öffnen und bei "Ziel" ganz am Ende noch die Parameter (ohne Anführungszeichen) anfügen.
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny:CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT
gibt es einen 100 pic patch für den rm2k?
ich hab versucht den destiny patcher zu finden aber irgendwie sind alle links down
9999 Pics im 2k gibts mit Hyper Patcher 2: http://cherrytree.at/download/?did=10
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny:CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT
Hai!
Ich bräuchte Hilfe bei einem Skript.
Folgende Situation:
Ich habe in der Spielwelt verschiedene Arten von Pflanzen, die der Spieler aufsammeln kann, diese sollen je nach Art zu einer bestimmten Zeit respawnen.
Der Timer wird durch eine Variabel Uhr gesteuert. Nachdem eine Pflanze aufgesammelt wurde, darf sie natürlich nicht wieder sammelbar sein bis der
Befehl vom respawntimer kommt.
Mein Problem: Gibt es eine Möglichkeit obiges zu erzielen, ohne für jede einzelne Pflanze einen Switch zu setzen, um sie bis zum respawnen der Pflanzenart "auszuschalten"?
Irgendwie komme ich auf keinen grünen Zweig.
Bin auch für alternative Ideen und Vorschläge offen^^
Danke!
Dieser Code geht davon aus dass 5000 die höchste verwendete Variablen-ID ist. Solltest du höhere Variablen verwenden, musst du die Zahl "5000" im Code entsprechend ändern.
Für die anderen Variablen habe ich keine ID angegeben, da kannst du beliebige nehmen.
Es wird ein assoziatives Array implementiert, in Variablen NACH DEM ENDE DER DEFINIERTEN, also wenn z.B. 5000 die höchste eingestellte Variable ist, werden Variablen ab #5001 verwendet. Diese erscheinen NICHT im F9-Menü!
Es werden Daten in je 2 Variablen gespeichert, einmal ein Schlüssel, einmal ein Wert. Das Ende der Liste wird durch Schlüssel 0 signalisiert.
Dieses Skript kodiert Map ID und Event ID in einem Schlüssel. In dem assoziativen Array speichert jedes Pflanzenevent den Zeitpunkt an dem es respawnt wird, oder 0 wenn es gerade sichtbar und aktiv ist. Es gibt ein Common Event was den Timer verwaltet und bei Bedarf Events respawnt oder beim Mapwechsel erneut deaktiviert, je nach Bedarf.
Auf diese Weise kann man Pflanzen einfach kopieren. Pflanzen haben 3 Eventseiten, Eventseite 1 dient dazu, eine Pflanze zu respawnen, während Eventseite 2 sie deaktiviert. Dies passiert nach außen rein über die Eventgrafik (leer = deaktiviert). Eventseite 3 ist die, die beim Enterdruck ausgeführt wird. Da wird u.a. die Respawnzeit der Pflanze festgelegt sowie was genau passieren soll wenn man eine aktive Pflanze anspricht.
Das Skript geht von maximal 1000 Events auf einer Map aus, obwohl der Maker afaik 9999 erlaubt, sowie maximal 9999 Maps (ich gehe davon aus du verwendest den 2k3, sonst wären es 999 Maps). Solltest du tatsächlich mehr verwenden, musst du die Zahl "1000" im Code ändern, allerdings je mehr Events du erlaubst, desto weniger Maps sind möglich. 1000 sollte also normalerweise gut passen.
WARNUNG: Das ganze entstand gerade hier aus meinem Kopf. Ich habe es nicht getestet!
Common Event "GetAssocValue":
<> Comment: Dieses CE dient dazu, einen Wert anhand eines Schlüssels aus unserem assoziativen Array zu lesen.
<> Comment: Skript erwartet Schlüssel in Variable [AKey] und liefert Ergebnis in Variable [AValue] oder 0 wenn Schlüssel nicht vorhanden
<> Comment: Alle Elemente des assoziativen Arrays werden abgeklappert.
<> Change Variable [AIndexCounter] = 5000
<> Comment: Standardwert ist 0.
<> Change Variable [AValue] = 0
<> Label: 1
<> Change Variable [AIndexCounter] += 1
<> Change Variable [ATempKey] = V[V[AIndexCounter]]
<> Comment: Ist der Schlüssel 0, wäre das Ende der Liste erreicht.
<> Fork Condition: If V[ATempKey] != 0
....<> Change Variable [AIndexCounter] += 1
....<> Fork Condition: If V[ATempKey] != V[AKey]
........<> Comment: Weitersuchen
........<> Go To Label: 1
........<>
....: Else Case
........<> Comment: Schlüssel gefunden, Wert einlesen
........<> Change Variable [AValue] = V[V[AIndexCounter]]
........<>
....: End Case
....<>
: End Case
Common Event "SetAssocValue":
<> Comment: Dieses CE dient dazu, einen Wert anhand eines Schlüssels in unserem assoziativen Array zu speichern.
<> Comment: Skript erwartet Schlüssel in Variable [AKey] und Wert in Variable [AValue]
<> Comment: Alle Elemente des assoziativen Arrays werden abgeklappert.
<> Change Variable [AIndexCounter] = 5000
<> Label: 1
<> Change Variable [AIndexCounter] += 1
<> Change Variable [ATempKey] = V[V[AIndexCounter]]
<> Comment: Wenn der Schlüssel nicht 0 ist, ist der Slot schon belegt.
<> Fork Condition: If V[ATempKey] != 0
....<> Comment: In diesem Fall stellen wir sicher, dass wir den gesuchten Schlüssel gefunden haben.
....<> Fork Condition: If V[ATempKey] != V[AKey]
........<> Comment: Weitersuchen
........<> Change Variable [AIndexCounter] += 1
........<> Go To Label: 1
........<>
....: End Case
....<>
: Else Case
....<> Comment: Der Schlüssel ist 0, d.h. der Slot ist frei (Ende der Liste erreicht), wir legen hier also den neuen Schlüssel fest.
....<> Change Variable [V[AIndexCounter]] = V[AKey]
....<>
: End Case
<> Comment: Wert wird gesetzt.
<> Change Variable [AIndexCounter] += 1
<> Change Variable [V[AIndexCounter]] = V[AValue]
Pflanzenevent Seite 1 (keine Startbedingungen, On Key Press):
<> Comment: Diese Eventseite wird gecallt wenn das Event respawnt wird
<> Move Event: This Event => Change Event Graphic (Die Grafik die die Pflanze im Normalfall haben soll)
Pflanzenevent Seite 2 (keine Startbedingungen, On Key Press):
<> Comment: Diese Eventseite wird gecallt wenn das Event deaktiviert wird
<> Move Event: This Event => Change Event Graphic (Leeres Tile im Upper Layer oben links)
Pflanzenevent Seite 3 (keine Startbedingungen, On Key Press):
<> Comment: Diese Eventseite wird im Normalfall gecallt (wenn der Spieler das Event anspricht)
<> Comment: Hier wird der Schlüssel zusammengebaut. Er besteht aus Map ID * 1000 + Event ID, also z.B. 34009 für Map 34, Event 9
<> Change Variable [AKey] = Map ID of This Event
<> Change Variable [AKey] *= 1000
<> Change Variable [X] = X of This Event
<> Change Variable [Y] = Y of This Event
<> Get Event ID (V[X], V[Y]) => [EventID]
<> Change Variable [AKey] += V[EventID]
<> Comment: Der aktuell gespeicherte Wert für dieses Event wird aus dem assoziativen Array gelesen. Ist er 0, heißt das, das Event ist aktiv!
<> Call Common Event: GetAssocValue
<> Fork Condition: If V[AValue] == 0
....<> *********************************** HIER CODE EINFÜGEN DER BEIM ANSPRECHEN DES AKTIVEN (!) EVENTS PASSIEREN SOLL, z.B. "Du hast die Pflanze gepflückt" o.ä.
....<> Comment: Das Event wird jetzt deaktiviert.
....<> Change Variable [PageID] = 2
....<> Call Map Event: ID V[EventID], Page V[PageID]
....<> Change Variable [AValue] = V[GlobalTimer]
....<> Comment: ***** HIER DIE DAUER IN SEKUNDEN EINSTELLEN DIE DAS EVENT ZUM RESPAWNEN BRAUCHT! *****
....<> Change Variable [AValue] += 300
....<> Comment: Der Zeitpunkt, zu der das Event respawnt werden soll, wird im assoziativen Array gespeichert.
....<> Call Common Event: SetAssocValue
....<>
: End Case
Parallel Process Common Event: "TimerUpdate"
<> Comment: Dieses Common Event updatet den Timer und sorgt dafür dass deaktivierte Events beim Mapwechsel automatisch wieder deaktiviert werden.
<> Label: 1
<> Change Variable [TMapID] = Map ID of Hero
<> Comment: In FrameCounter wird die Anzahl Frames seit der letzten Sekundenzählung gespeichert. Eine Sekunde hat 60 Frames.
<> Comment: GlobalTimer enthält die Anzahl Sekunden seit Beginn des Spiels. Ist FrameCounter 0, gilt eine Sekunde als abgelaufen und GlobalTimer erhöht.
<> Comment: Zu Beginn des Spiels ist FrameCounter 0, GlobalTimer wird also sofort um 1 erhöht, dadurch ist es nie 0 (was wir ja als "Event aktiv" verwenden).
<> Fork Condition: If V[FrameCounter] == 0
....<> Change Variable [GlobalTimer] += 1
....<> Comment: Alle Elemente des assoziativen Arrays werden abgeklappert.
....<> Change Variable [TIndexCounter] = 5000
....<> Label: 2
....<> Change Variable [TIndexCounter] += 1
....<> Change Variable [TTempKey] = V[V[TIndexCounter]]
....<> Comment: Ist der Schlüssel 0, wäre das Ende der Liste erreicht.
....<> Fork Condition: If V[TTempKey] != 0
........<> Change Variable [TIndexCounter] += 1
........<> Change Variable [TTempMapID] = V[TTempKey]
........<> Change Variable [TTempMapID] /= 1000
........<> Comment: Nur Events auf der aktuellen Map werden berücksichtigt.
........<> Fork Condition: If V[TTempMapID] == V[TMapID]
............<> Change Variable [TTempValue] = V[V[TIndexCounter]]
............<> Comment: Ist das Event bereits aktiv, weitersuchen
............<> Fork Condition: If V[TTempValue] == 0
................<> Go To Label: 2
................<>
............: End Case
............<> Comment: Ist der Respawnzeitpunkt erreicht oder überschritten, wird das Event respawnt.
............<> Fork Condition: If V[TTempValue] < V[GlobalTimer]
................<> Comment: Wert wird auf 0 für "Event aktiv" gesetzt und Eventseite 1 aufgerufen (wo die Grafik auf Normalgrafik geändert wird).
................<> Change Variable V[V[TIndexCounter]] = 0
................<> Change Variable [TTempKey] Mod= 1000
................<> Change Variable [TPageID] = 1
................<> Call Map Event: ID V[TTempKey], Page V[TPageID]
................<>
............: End Case
............<>
........: End Case
........<> Go To Label: 2
........<>
....: End Case
....<>
: End Case
<> Comment: Wenn die Map gewechselt wurde, werden alle Events auf der neuen Map bei Bedarf deaktiviert, wenn sie nicht aktiv sein sollen
<> Fork Condition: If V[TMapID] != V[TLastMapID]
....<> Change Variable [TLastMapID] = V[TMapID]
....<> Comment: Alle Elemente des assoziativen Arrays werden abgeklappert.
....<> Change Variable [TIndexCounter] = 5000
....<> Label: 3
....<> Change Variable [TIndexCounter] += 1
....<> Change Variable [TTempKey] = V[V[TIndexCounter]]
....<> Comment: Ist der Schlüssel 0, wäre das Ende der Liste erreicht.
....<> Fork Condition: If V[TTempKey] != 0
........<> Change Variable [TIndexCounter] += 1
........<> Change Variable [TTempMapID] = V[TTempKey]
........<> Change Variable [TTempMapID] /= 1000
........<> Comment: Nur Events auf der aktuellen Map werden berücksichtigt.
........<> Fork Condition: If V[TTempMapID] == V[TMapID]
............<> Change Variable [TTempValue] = V[V[TIndexCounter]]
............<> Comment: Nur deaktivierte Events werden berücksichtigt.
............<> Fork Condition: If V[TTempValue] != 0
................<> Comment. Eventseite 2 wird aufgerufen damit das Event unsichtbar (und durchgängig) wird.
................<> Change Variable [TTempKey] Mod= 1000
................<> Change Variable [TPageID] = 2
................<> Call Map Event: ID V[TTempKey], Page V[TPageID]
................<>
............: End Case
............<>
........: End Case
........<> Go To Label: 3
........<>
....: End Case
....<>
: End Case
<> Comment: Eigentlich ist am Ende eines PP automatisch ein 1-Frame-Wait, aber um auf Nummer sicher zu gehen, machen wir das Wait selber und verwenden Label 1 als Loop.
<> Wait 0.0s
<> Comment: FrameCounter wird erhöht und wenn er 60 wäre, auf 0 gesetzt.
<> Change Variable: [FrameCounter] += 1
<> Change Variable: [FrameCounter] Mod= 60
<> Go To Label: 1
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny:CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT
Geändert von Cherry (14.08.2012 um 15:41 Uhr)