Ergebnis 1 bis 10 von 10

Thema: HILFE: Befehl für Textsystemgrafik und Mapteleport!!!

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    !!! HILFE: Scriptbefehl für Textsystemgrafikeinstellung

    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.

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

    Geändert von Benshy (22.10.2007 um 19:36 Uhr) Grund: Ein Teil ist bereits geklärt.

  2. #2
    Zitat Zitat von Benshy Beitrag anzeigen
    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.
    Code:
        # 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:
    Code:
    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.

    Code:
    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.

  3. #3
    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.

    Geändert von Benshy (21.10.2007 um 20:08 Uhr)

  4. #4
    Eigentlich geht es auch einfacher. Man braucht nur einen Ruby-Teleportbefehl, den man aufruft und direkt auf die Creditsmap kommt.

  5. #5
    Zu 1)
    Code:
    @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.

  6. #6
    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

  7. #7
    In der command_new_game Methode siehst du sicher die zwei Zeilen
    Code:
    # 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.

  8. #8
    Ja, die Zeilen habe ich gefunden.
    Und wie muss ich jetzt die Sachen einfügen?
    Ein kleines Beispiel bitte.^^

    mfg Blackduc
    PS: Danke^^

  9. #9
    Code:
    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.

  10. #10
    Vielen Dank KD.
    (mehr fällt mir nicht mehr ein^^)

    mfg Blackduc

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •