Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : VX Ace - Tag und Nacht System beim Kampf "deaktivieren"



Dennios
11.08.2013, 15:13
Hallo liebe Community,

ich habe ein in meinem Spiel ein tag/Nacht System eingebaut und es funktioniert super,allerdings ist es nachts im Kampf um einiges dunkler als in einer Map. Deswegen würde ich gerne eine andere Helligkeit in der Nacht haben,sobald ein Kampf beginnt.
Meine Idee war, in allen Kämpfen ein Bedienung einzubauen,die überprüft ob es Nacht ist,wenn das zutrifft wird die die Helligkeit etwas aufgehellt ( das man eben was erkennne kann) und am ende des Kampfes kommt dann wieder die normale Helligkeit. Das bezog sich auf die Datebase bei den Gegnergruppen. Blöder weiße kommt erst die Nachricht "XY ist erschienen" und dann ändert sich die Helligkeit. Deswegen muss ich Skripten und davon habe ich kaum eine Ahnung.

Ich brauch eine Skript, das vor der Nachricht "XY ist aufgetaucht" überprüft, auf welche Zahl die Variable Tag/Abend/Nacht steht und es 3 ist,dann soll es heller werden und das Commen Event "Uhrzeit" ausschalten und nach dem Kampf wieder einschalten.
Kann mir da jemand helfen?

MfG
Dennios

Nemica
11.08.2013, 15:14
Welches Script?

Achso, das Tag/Nacht-System ist aus Events gemacht.

Dennios
11.08.2013, 16:23
Ich brauch eine Skript, das vor der Nachricht "XY ist aufgetaucht" überprüft, auf welche Zahl die Variable Tag/Abend/Nacht steht und es 3 ist,dann soll es heller werden und das Commen Event "Uhrzeit" ausschalten und nach dem Kampf wieder einschalten. Sorry,gerade das hatte ich vergessne zu erwähnen -_-

Ja,genau. Da ich nicht Scripten kann,hab eich das Tag/Nacht System aus Events gefertigt. :)

FlipelyFlip
11.08.2013, 17:48
warum nimmst du nicht im Event die Condition Branch und überprüfst die Variable in der du die Uhrzeit drin hast? oO

Dennios
11.08.2013, 17:50
Kannst du mir das genauer erklären, was du meinst? :)

Nemica
11.08.2013, 17:55
Zeig mal dein Common Event.

Dennios
11.08.2013, 18:03
1843118432

Es sind zwei,eines für die Uhrzeit,das andere für die Helligkeit.

Nemica
11.08.2013, 18:11
Schalt das Event vorm Kampf aus und stell die Helligkeit hoch. Oder wo liegt dein Problem?

goldenroy
11.08.2013, 18:12
Der Code für die Kampfbefehle wird halt erst nach der "XXX erscheint!" Message ausgeführt. Abhilfe würde das Ändern der Werte schaffen, bevor das Kampfevent eingeleitet wird. Außer du benutzt Random Encounter... U:

Dennios
11.08.2013, 18:19
Also das Problem kommt ja nur bei zufälligen Gegnern die auf der Map auftauchen. Sonst kann ich das machen,was goldenroy sagte. Wie kann ich also das Event ausschalten und die Helligkeit einstellen,bevor so ein Zufalls Gegner kommt? Da bräuchte ich eben die Hilfe :)

Das tag/Nacht-System läuft immer, das Problem sind die Zufalls Gegner. Ich muss wohl am eigentlichem Script bisschen rumpfuschen.Aber was und wie,das weiß ebne nicht :/

Lares Yamoir
11.08.2013, 23:39
So hier ein Script, dass das Problem lösen sollte:



class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
def start
super
#============
# stoppt Common-Event über Switch und weißt neuen Ton der Szene zu
$game_switches[1] = false

if $game_switches[2] == false
if $game_variables[2] == 0
$game_troop.screen.start_tone_change(Tone.new(r,g,b),0)
elsif $game_variables[2] == 1
$game_troop.screen.start_tone_change(Tone.new(r,g,b),0)
end
end
#=============
create_spriteset
create_all_windows
BattleManager.method_wait_for_message = method(:wait_for_message)
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_spriteset
@info_viewport.dispose
RPG::ME.stop
#============
#Nach dem Kampf wird Common-Event wieder aktiviert (über Switch)
$game_switches[1] = true
#=============
end
end


Das Script fügst du unter Materials im Script-Editor ein.
So nun zur Erklärung des Codes:
$game_switches[1] ist der Switch, bei dem dein Common-Event aktiv ist.
$game_switches[2] bestimmt, ob der Spieler drinne oder draußen ist.
$game_variables[2] ist die Variable, in der du die aktuelle Stunde speicherst. Hinter den == setzt du dann entsprechend die Werte, bei denen der Battlescreen nen anderen Wert hat, als die Map.
Bei Tone.new(r,g,b) änderst du r,g,b in die entsprechenden Zahlenwerte, die du brauchst.

Für mehr Abfragen kopierst du


elsif $game_variables[2] == 1
$game_troop.screen.start_tone_change(Tone.new(r,g,b),0)

hintereinander, so dass sie vor dem end stehen.

Hoffe das Script hilft dir weiter.

Dennios
12.08.2013, 02:08
Super,vielen vielen Dank! Das mir jemand gleich ein Script zuschickt hatte ich echt nicht erwartet. Dafür hast du was gut bei mir!
Es hat geholfen. Mein Problem wäre damit verschwunden.
Allerdings wird es nicht auf einmal heller sondern dauert (Ich glaub 60 frames). Hinter den Farbtönen kommt bei den Events immer noch so ein @1. Aber ich habe es wohl falsch eingebaut. Ich möchte jetzt echt nicht undankbar klingen,aber es wäre gut wenn du mir noch sagen könntest, wie ich das erhellen beschleunigen kann :) Man soll nämlich nicht unbedingt merken,das sich da was "färbt" :) Aber wenn das nicht geht,dann kann ich auch damit leben,bin jetzt echt sehr froh über dien Skript. Nochmals Danke.
Und an die anderen,die mir ebenfalls geholfen haben ebenfalls vielen Dank :)

MfG
Dennis

Lares Yamoir
12.08.2013, 13:30
Hmm eigentlich sollte das direkt in der Farbe auftauchen. Die Geschwindigkei bestimmst du in der Zeile


$game_troop.screen.start_tone_change(Tone.new(r,g,b),0)

Die letzte Zahl bestimmt, wie viele Frames die Anwendung vom Ausgangsfarbton zum neuen Farbton braucht. Bei 0 wird es somit direkt geändert.

Könnte dir sonst nur noch anbieten, selber mal ins Projekt zu schauen, ob ich den Fehler finde.

Dennios
12.08.2013, 13:44
Achso, dann war es mein Fehler. Ich habe außerhalb deiner Anweisung die 0 zu einer 80 geändert,weil ich dachte,es ging hier um die Grautönung.
Hab es wieder auf null zurück gestellt und es hat klappt,vielen danke :)

Lares Yamoir
12.08.2013, 14:19
Wenn du den Grauton noch drinne haben möchtest machst du folgendes:


$game_troop.screen.start_tone_change(Tone.new(r,g,b,gr),0)

Bei gr setzt du dann den entsprechenden Grauton ein.

Dennios
12.08.2013, 15:24
Achso,okay. Danke sehr :)