Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : HILFE: Befehl für Textsystemgrafik und Mapteleport!!!



Benshy
21.10.2007, 18:06
Also liebe Community. Ich hätte 2 wichtige anliegen. Ich hoffe ihr könnt mir helfen.

ERSTENS:
Am Titelbildschirm hätte ich gern eine andere Systemgrafik als im Spiel selbst.
Jetzt hab ich das so gemacht das ich in der Database unter System die Textsystemgrafik eingetragen habe die ich auf meinem Hauptmenü haben will und auf der ersten Map dann in einem Auto-Start-Event die Systemgrafik mit "Textsystemgrafik ändern" geändert habe.
Das Event wird auch einwandfrei abgespielt, aber die Textsystemgrafik ändert der trotzdem nich. Keine Ahnung warum.
Deshalb habe ich es jedenfalls umgeändert und habe in der Database als Textsystemgrafik überhauptkeine eingestellt und *DING*, das Event ändert ohne Probleme jetzt die Textsystemgrafik.
Allerdings hab ich jetzt im Hauptmenü keine Textsystemgrafik mehr.
Jetzt wollte ich wissen ob es einen Scriptbefehl gibt mit dem ich eine Systemgrafik einstellen kann und den ich dann im Script "Scene_Title" einfügen kann. Wär nett wenn ihr mir auch noch sagen könnt in welcher Zeile ich den einfügen soll.
Oder ob es einen Scriptbefehl gibt den ich per Event aufrufen kann und der meine Textsystemgrafik ändert.

ZWEITENS:
Ich habe im Hauptmenü statt 3 Auswahlmöglichkeiten 5 gemacht. Unter anderem auch einen Punkt mit Credits. Jetzt würde ich es gern so machen das wenn man diesen Punkt aktiviert das man dann auf die Map "CREDITS" geportet wird und die Credits ablaufen. Gibt es dafür einen Befehl den ich da eintragen könnte in die Scriptbase?


Wäre echt supi toll wenn jemand da ne Lösung für wüsste.
Diejenigen die mir eine Lösung sagen können bekommen einen Crediteintrag wenn der dann funktioniert ;)
Danke schonmal im vorraus für eure Mühe. :D

Ihr könnt mich auch per ICQ anschreiben, bin gerade online falls ihr noch was genaueres wissen wollt.
ICQ-ADDY = 381289296

Expresseon
21.10.2007, 19:23
ZWEITENS:
Ich habe im Hauptmenü statt 3 Auswahlmöglichkeiten 5 gemacht. Unter anderem auch einen Punkt mit Credits. Jetzt würde ich es gern so machen das wenn man diesen Punkt aktiviert das man dann auf die Map "CREDITS" geportet wird und die Credits ablaufen. Gibt es dafür einen Befehl den ich da eintragen könnte in die Scriptbase?

Erstmal würde ich im Spielmenü nicht die Credits reinpacken, sondern das Titelmenü erweitern. Es gibt eine Möglichkeit für die Credits, es ist zwar nicht die kürzeste, aber mit Hilfe dieser Methode kannst du Credits nach deiner Vorstellung machen. (Ich erkläre jetzt, wie das mit den Credits im Titelmenü geht.)

1. Erstelle eine neue Map (20*15) und nenne sie "Credits" oder so etwas in der Art.

2. Wähle das Script "Scene_Title".

3. An dieser Stelle musst du das, was in rot geschrieben ist hinzufügen.

# Make command window
s1 = "Neues Spiel"
s2 = "Spiel laden"
s3 = "Ende"
s4 = "Credits"
@command_window = Window_Command.new(192, [s1, s2, s3, s4])

4. Gehe im selben Script weiter runter und füge folgendes hinzu:

case @command_window.index
when 0 # New game
command_new_game
when 1 # Continue
command_continue
when 2 # Shutdown
command_shutdown
when 3
command_credits
end

5. Noch weiter runter scrollen.

6. Unter der Definition von command_shutdown wird alles das eingefügt: (In der blauen Zeile musst du eine beliebige Switch-ID wählen, für einen Switch, den du brauchst.


def command_credits
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Stop BGM
Audio.bgm_stop
# Reset frame count for measuring play time
Graphics.frame_count = 0
# Make each type of game object
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# Set up initial party
$game_party.setup_starting_members
# Set up initial map position
$game_map.setup($data_system.start_map_id)
# Move player to initial position
$game_player.moveto($data_system.start_x, $data_system.start_y)
# Refresh player
$game_player.refresh
# Run automatic change for BGM and BGS set with map
$game_map.autoplay
# Update map (run parallel process event)
$game_map.update
# Switch to map screen
$scene = Scene_Map.new
# Set credits switch
$game_switches[001] = true
end

7. Genug gescriptet! Jetzt erstellst du noch eine neue Map. Das Spiel MUSS hier losgehen, also die Startposition des Spielers muss auf dieser Map sein.

8. Erstelle ein Autostart-Event, dass abfragt, ob der Switch, den du in dem oberen Scriptstück ja ändern kannst, an ist. Wenn man als Spieler im Titelmenü auf "Credits" drückt, wird nämlich ein ganz normales Spiel gestartet, aber der eine Switch wird noch aktiviert. In das Autostart-Event kommt, wenn der Switch an ist, ein Teleport auf deine Creditsmap. Ist der Switch nicht an, wird man auf eine andere Map teleportiert, auf der das normale Spiel dann beginnt. Fertig! Damit es keine Probleme gibt, solltest du nach den Credits den Spieler wieder zum Titelmenü schicken.

Ich hoffe, es ist dir nicht zu lang. Ich bin nicht sehr gut in Ruby, aber mit dieser Methode klappt es sicher! Danke, dass ich dir helfen durfte. :D

Benshy
21.10.2007, 20:00
jep, GENAU das hab ich gesucht ;)
Die Punkte 1 - 5 hab ich bereits zwar schon selbst gemacht aber der rest ist perfekt.
Danke dir. Crediteintrag ist dir sicher ;)

EDIT: Habs eingefügt. Funktioniert perfekt genauso wie ichs gedacht hab.


Jetzt muss ich nur noch zu Punkt eins jemanden finden der mir da helfen könnte.

Expresseon
21.10.2007, 20:32
Eigentlich geht es auch einfacher. Man braucht nur einen Ruby-Teleportbefehl, den man aufruft und direkt auf die Creditsmap kommt.

Rabu
29.10.2007, 13:04
Zu 1)

@command_window = Window_Command.new(192, [s1, s2, s3, s4])
@command_window.windowskin = RPG::Cache.windowskin('Org-Clear.png')


Dir rote Zeile unter @Comand_window = einfügen, für Org-Clear.png deinen eigenen Window-Skin nehmen.

Blackduc
31.10.2007, 20:14
Coool, das funktioniert ja.
Ich hätte da noch eine frage.
Und die wäre, wenn ich jetzt halt alles mache was PX gepostet hat
gemacht. Nun wollte ich das der Hero auf eine andere Map geht.
Im klar Text: Wenn ich auf New Game Klicke, dass ich dan in die Map
komme wo die Story beginnt. Und wen ich z.B. jetzt auf Minispiel dürcke,
das ich dan in ener andere Map komme wie bei New Game.
Schon mal danke für die Antworten.

mfg Blackduc

-KD-
31.10.2007, 20:21
In der command_new_game Methode siehst du sicher die zwei Zeilen

# Set up initial map position
$game_map.setup($data_system.start_map_id)
# Move player to initial position
$game_player.moveto($data_system.start_x, $data_system.start_y)
Erstere legt fest auf welcher Map du startest (einfach nur die jeweilige ID eingeben), letzteres legt die Koordinaten fest, an denen der Held beginnt.

Blackduc
31.10.2007, 20:26
Ja, die Zeilen habe ich gefunden.
Und wie muss ich jetzt die Sachen einfügen?
Ein kleines Beispiel bitte.^^

mfg Blackduc
PS: Danke^^

-KD-
31.10.2007, 23:18
def command_new_game
init_new_game()
start_at()
end

def command_credits
init_new_game
start_at(1,1,1) #1 ist Map mit Credits!
end

def command_minispiel
init_new_game
start_at(1,1,2) #2 ist Map mit Minispiel
end

def init_new_game()
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Stop BGM
Audio.bgm_stop
# Reset frame count for measuring play time
Graphics.frame_count = 0
# Make each type of game object
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# Set up initial party
$game_party.setup_starting_members
end

def start_at(x=$data_system.start_x, y=$data_system.start_y,map_id=$data_system.start_map_id)
# Set up initial map position
$game_map.setup(map_id)
# Move player to initial position
$game_player.moveto(x,y)
# Refresh player
$game_player.refresh
# Run automatic change for BGM and BGS set with map
$game_map.autoplay
# Update map (run parallel process event)
$game_map.update
# Switch to map screen
$scene = Scene_Map.new
end

kurzum: erst mit init_new_game das Spiel starten, dann mit start_at(x,y,map_id) zur jeweiligen Position der Map teleportieren.

Blackduc
01.11.2007, 08:30
Vielen Dank KD.
(mehr fällt mir nicht mehr ein^^)

mfg Blackduc