Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 38

Thema: Sprache in Kampfsystem (Ace)

  1. #1

    Sprache in Kampfsystem (Ace)

    Hallo Makergemeinde. Gibt es vielleicht ein Skript, mit dem man einstellen kann, auf welcher Sprache das Kampfsystem im Rpg Maker Vx Ace ist? Ich hab einen Switch, der die Sprache regelt und hätte das auch gerne so für das Standard Kampfsystem, aber das kann man ja glaub nur bei Vocab (?) einstellen, was da steht (Kampf, Flucht, etc.) und das nur für eine Sprache?

    Vorab: Sowas wie "Kampf/Fight" oder "Flucht/Flee" kommt für mich nicht in Frage. Ich will schon, daß das KS komplett die Sprache hat, für die sich der Spieler entschieden hat. Und nicht im Ks plötzlich Englisch obwohl er zb Deutsch gewählt hat.

    Ist das irgendwie machbar, mit oder ohne Skript?

    Danke für eure Hilfe.

    Ken der multilinguale Kot

  2. #2
    Hallo Ken der Maker-Kot,

    Habe mal schnell das "Vocab" Module genommen und dementsprechend angepasst. Folgendes Script einfach über Main einfügen:
    Code:
    module Vocab
      LDT_SWITCH = 101
      LDT_BASIC = [
          "", # Level/Stufe
          "", #  Level/Stufe (kurz)
          "", #  HP/LP
          "", #  HP/LP (kurz)
          "", #  MP
          "", #  MP (kurz)
          "", #  TP
          ""] #  TP (kurz)
      LDT_COMMAND = [
          "", #  Kampf
          "", #  Fliegen
          "", #  Angriff
          "", #  Verteidigen
          "", #  Gegenstände
          "", #  Fähigkeiten
          "", #  Ausrüstung
          "", #  Status
          "", #  Formation ändern
          "", #  Speichern
          "", #  Spiel beenden
          "", #  Platzhalter 
          "", #  Waffen
          "", #  Rüstungen
          "", #  Wichtige Objekte
          "", #  Ausrüstung wechseln
          "", #  Beste Ausrüstung
          "", #  Alles entfernen
          "", #  Neues Spiel
          "", #  Fortsetzen
          "", #  Programm beenden
          "", #  Zum Titelmenü
          ""] #  Abbrechen
    
      
      # Basis-Status
      def self.basic(basic_id)
        return $game_switches[LDT_SWITCH] ? LDT_BASIC[basic_id] : $data_system.terms.basic[basic_id]
      end
      
       # Befehle
      def self.command(command_id)
        return $game_switches[LDT_SWITCH] ? LDT_COMMAND[command_id] : $data_system.terms.commands[command_id]
      end 
    end
    Bei LDT_SWITCH trägst du die Nummer deines Sprachen-Switchs ein. Wenn der Switch aktiv ist, übernimmt er die Übersetzung, die du in LDT_COMMAND und LDT_BASIC eingetragen hast.
    Ist der Switch aus, übernimmt er die Texte, die in der Datenbank eingetragen sind.

    Willst du beides lieber hier im Script einstellen oder gar noch mehr sprachen verwenden, kann ich das Script auch dementsprechend anpassen.

    Geändert von Linkey (28.07.2018 um 17:47 Uhr)

  3. #3
    Hallo Linkey, der Skripte-Schwertmeister

    Danke, daß du dich dessen angenommen hast. Cool von dir. Beide Sprachen im Skript einstellbar wäre schon besser (allgemein, weil man dann nicht mehr in der Datenbank rumfuhrwerken muss). Wenn du es willst, kannst du die Einstellung für die andere Sprache gern auch noch mit reinnehmen. (hab nur zwei Sprachen)

    Geht selbiges auch mit den Skills? Also daß ich Name und Beschreibung der Skills quasi zweisprachig haben kann? Weil das wärs ja glaub ich. Vocab und Skills. Mehr braucht man für ein KS ja glaub nicht.

    Ken der erfreute Makerkot

  4. #4
    Hallo Ken,

    hier schon einmal das Script, dass du die Commands und Basics im Script übersetzten kannst [Sprache Switch aus, Sprache switch an]:
    Code:
    module Vocab
      LDT_SWITCH = 101
      #language siwtch off , language switch on
      #example ["Beenden","Back to title"] # Zum Titelmenü
      LDT_BASIC = [
          ["",""], # Level/Stufe
          ["",""], #  Level/Stufe (kurz)
          ["",""], #  HP/LP
          ["",""], #  HP/LP (kurz)
          ["",""], #  MP
          ["",""], #  MP (kurz)
          ["",""], #  TP
          ["",""]] #  TP (kurz)
      LDT_COMMAND = [
          ["",""], #  Kampf
          ["",""], #  Fliegen
          ["",""], #  Angriff
          ["",""], #  Verteidigen
          ["",""], #  Gegenstände
          ["",""], #  Fähigkeiten
          ["",""], #  Ausrüstung
          ["",""], #  Status
          ["",""], #  Formation ändern
          ["",""], #  Speichern
          ["",""], #  Spiel beenden
          ["",""], #  
          ["",""], #  Waffen
          ["",""], #  Rüstungen
          ["",""], #  Wichtige Objekte
          ["",""], #  Ausrüstung wechseln
          ["",""], #  Beste Ausrüstung
          ["",""], #  Alles entfernen
          ["",""], #  Neues Spiel
          ["",""], #  Fortsetzen
          ["",""], #  Programm beenden
          ["",""], #  Zum Titelmenü
          ["",""]] #  Abbrechen
    
      
      # Basis-Status
      def self.basic(basic_id)
        return LDT_BASIC[basic_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end
      
       # Befehle
      def self.command(command_id)
        return LDT_COMMAND[command_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end 
    end
    Bezüglich Skills usw. editiere ich gleich nach.
    Ok, das ist natürlich blöd. Ich sehe gerade, dass das Vocab Module auch einige Konstanten verwendet. Die kann man natürlich nicht dynamisch stellen.

    Geändert von Linkey (28.07.2018 um 18:32 Uhr)

  5. #5
    Hey, danke soweit O

    Was genau meinst du denn mit Konstanten? Edit: Damit meine ich: Was genau lässt sich nicht verändern?

    Mal abgesehen von den Skills, bräuchte ich halt noch die Möglichkeit, die Gegner sprachlich einzustellen und dieses "Spieler benutzt Feuerball" bzw. "Player uses Fireball", was bei Angriffen immer angezeigt wird. Ich benötige also nicht das ganze Vocab, falls es irgendwo noch ein Problem wegen einer nicht änderbaren Konstante oder so gibt.

    Grüßlies

    Ken der Kot

    Geändert von Ken der Kot (28.07.2018 um 18:49 Uhr)

  6. #6
    Konstanten sind konstant . D.h. der Wert wird einmal gesetzt und kann danach nicht mehr geändert werden. Ergo sind die nicht besonders hilfreich, wenn du willst, dass man die Sprache im Spiel ändern kann.
    Habe gerade keinen neuen Maker parat, sonst würde ich auch mal nachschauen.

  7. #7
    Hallo Ken,

    im Vocab Script sind die ersten ~30 Texte alle als Konstante hinterlegt. Um das jetzt zu umgehen, habe ich eine Methode in Vocab eingefügt, die die Konstanten ersetzt. Damit kannst du nun auch diese Texte übersetzen (das sind Texte, die in anderen Windows/Scenes verwendet werden. Z.b. das "Welchen Spielstand willst du laden" usw.).:

    Code:
    module Vocab
      # Whenever the language is changed ingame, call:
      # Vocab.change_vocab()
      
      # Number of the language switch
      LDT_SWITCH = 101
      #language siwtch off , language switch on
      #example ["Beenden","Back to title"] # Zum Titelmenü
      LDT_BASIC = [
          ["",""], # Level/Stufe
          ["",""], #  Level/Stufe (kurz)
          ["",""], #  HP/LP
          ["",""], #  HP/LP (kurz)
          ["",""], #  MP
          ["",""], #  MP (kurz)
          ["",""], #  TP
          ["",""]] #  TP (kurz)
      LDT_COMMAND = [
          ["",""], #  Kampf
          ["",""], #  Fliegen
          ["",""], #  Angriff
          ["",""], #  Verteidigen
          ["",""], #  Gegenstände
          ["",""], #  Fähigkeiten
          ["",""], #  Ausrüstung
          ["",""], #  Status
          ["",""], #  Formation ändern
          ["",""], #  Speichern
          ["",""], #  Spiel beenden
          ["",""], #  
          ["",""], #  Waffen
          ["",""], #  Rüstungen
          ["",""], #  Wichtige Objekte
          ["",""], #  Ausrüstung wechseln
          ["",""], #  Beste Ausrüstung
          ["",""], #  Alles entfernen
          ["",""], #  Neues Spiel
          ["",""], #  Fortsetzen
          ["",""], #  Programm beenden
          ["",""], #  Zum Titelmenü
          ["",""]] #  Abbrechen
    
      def self.change_vocab()
        Vocab::ShopBuy.replace !$game_switches[LDT_SWITCH] ? "Kaufen" : "Kaufen"
        Vocab::ShopSell.replace !$game_switches[LDT_SWITCH] ? "Verkaufen" : "Verkaufen"
        Vocab::ShopCancel.replace !$game_switches[LDT_SWITCH] ? "Abbrechen" : "Abbrechen"
        Vocab::Possession.replace !$game_switches[LDT_SWITCH] ? "Im Besitz" : "Im Besitz"
    
        # Status-Menübildschirm
        Vocab::ExpTotal.replace !$game_switches[LDT_SWITCH] ? "Aktuelle Exp" : "Aktuelle Exp"
        Vocab::ExpNext.replace !$game_switches[LDT_SWITCH] ? "Bis zum nächsten %s" : "Bis zum nächsten %s"
    
        # Speichern/Laden-Menübildschirm
        Vocab::SaveMessage.replace !$game_switches[LDT_SWITCH] ? "In welchen Stand speichern" : "In welchen Stand speichern"
        Vocab::LoadMessage.replace !$game_switches[LDT_SWITCH] ? "Welchen Stand laden" : "Welchen Stand laden"
        Vocab::File.replace !$game_switches[LDT_SWITCH] ? "Spielstand" : "Spielstand"
    
        # Anzeige, wenn es mehrere Gruppenmitglieder gibt
        Vocab::PartyName.replace !$game_switches[LDT_SWITCH] ? "%s's Gruppe" : "%s's Gruppe"
    
        # Basis-Nachrichten im Kampf
        Vocab::Emerge.replace !$game_switches[LDT_SWITCH] ? "%s erscheint!" : "%s erscheint!"
        Vocab::Preemptive.replace !$game_switches[LDT_SWITCH] ? "%s ist im Vorteil!" : "%s ist im Vorteil!"
        Vocab::Surprise.replace !$game_switches[LDT_SWITCH] ? "%s wurde überrascht!" : "%s wurde überrascht!"
        Vocab::EscapeStart.replace !$game_switches[LDT_SWITCH] ? "%s versucht zu fliehen!" : "%s versucht zu fliehen!"
        Vocab::EscapeFailure.replace !$game_switches[LDT_SWITCH] ? "War nicht in der Lage zu fliehen!" : "War nicht in der Lage zu fliehen!"
    
        # Nachrichten bei Kampfende
        Vocab::Victory.replace !$game_switches[LDT_SWITCH] ? "%s war siegreich!" : "%s war siegreich!"
        Vocab::Defeat.replace !$game_switches[LDT_SWITCH] ? "%s wurde besiegt." : "%s wurde besiegt."
        Vocab::ObtainExp.replace !$game_switches[LDT_SWITCH] ? "%s EXP erhalten!" : "%s EXP erhalten!"
        Vocab::ObtainGold.replace !$game_switches[LDT_SWITCH] ? "%s\\G gefunden!" : "%s\\G gefunden!"
        Vocab::ObtainItem.replace !$game_switches[LDT_SWITCH] ? "%s gefunden!" : "%s gefunden!"
        Vocab::LevelUp.replace !$game_switches[LDT_SWITCH] ? "%s ist nun %s %s!" : "%s ist nun %s %s!"
        Vocab::ObtainSkill.replace !$game_switches[LDT_SWITCH] ? "%s erlernt!" : "%s erlernt!"
    
        # Benutzung von Gegenständen
        Vocab::UseItem.replace !$game_switches[LDT_SWITCH] ? "%s nutzt %s!" : "%s nutzt %s!"
    
        # Kritischer Treffer
        Vocab::CriticalToEnemy.replace !$game_switches[LDT_SWITCH] ? "Kritischer Treffer!!" : "Kritischer Treffer!!"
        Vocab::CriticalToActor.replace !$game_switches[LDT_SWITCH] ? "Wurde schwer getroffen!!" : "Wurde schwer getroffen!!"
    
        # Ergebnis für Aktionen, welche die Helden betreffen
        Vocab::ActorDamage.replace !$game_switches[LDT_SWITCH] ? "%s nimmt %s Schaden!" : "%s nimmt %s Schaden!"
        Vocab::ActorRecovery.replace !$game_switches[LDT_SWITCH] ? "%s heilt %s %s!" : "%s heilt %s %s!"
        Vocab::ActorGain.replace !$game_switches[LDT_SWITCH] ? "%s bekommt %s %s!" : "%s bekommt %s %s!"
        Vocab::ActorLoss.replace !$game_switches[LDT_SWITCH] ? "%s verliert %s %s!" : "%s verliert %s %s!"
        Vocab::ActorDrain.replace !$game_switches[LDT_SWITCH] ? "%s wurde %s %s entzogen!" : "%s wurde %s %s entzogen!"
        Vocab::ActorNoDamage.replace !$game_switches[LDT_SWITCH] ? "%s hat keinen Schaden eritten!" : "%s hat keinen Schaden eritten!"
        Vocab::ActorNoHit.replace !$game_switches[LDT_SWITCH] ? "Verfehlt! %s wurde nicht getroffen!" : "Verfehlt! %s wurde nicht getroffen!"
    
        # Ergebnis für Aktionen, welche die Gegner betreffen
        Vocab::EnemyDamage.replace !$game_switches[LDT_SWITCH] ? "%s erleidet %s Schaden!" : "%s erleidet %s Schaden!"
        Vocab::EnemyRecovery.replace !$game_switches[LDT_SWITCH] ? "%s heilt %s %s!" : "%s heilt %s %s!"
        Vocab::EnemyGain.replace !$game_switches[LDT_SWITCH] ? "%s bekommt %s %s!" : "%s bekommt %s %s!"
        Vocab::EnemyLoss.replace !$game_switches[LDT_SWITCH] ? "%s verliert %s %s!" : "%s verliert %s %s!"
        Vocab::EnemyDrain.replace !$game_switches[LDT_SWITCH] ? "Entzieht %s %s von %s!" : "Entzieht %s %s von %s!"
        Vocab::EnemyNoDamage.replace !$game_switches[LDT_SWITCH] ? "%s hat keinen Schaden erlitten!" : "%s hat keinen Schaden erlitten!"
        Vocab::EnemyNoHit.replace !$game_switches[LDT_SWITCH] ? "Verfehlt! %s wurde nicht getroffen!" : "Verfehlt! %s wurde nicht getroffen!"
    
        # Ausweichen/Zurückwerfen
        Vocab::Evasion.replace !$game_switches[LDT_SWITCH] ? "%s weicht dem Angriff aus!" : "%s weicht dem Angriff aus!"
        Vocab::MagicEvasion.replace !$game_switches[LDT_SWITCH] ? "%s wehrt die Magie ab!" : "%s wehrt die Magie ab!"
        Vocab::MagicReflection.replace !$game_switches[LDT_SWITCH] ? "%s reflektiert die Magie!" : "%s reflektiert die Magie!"
        Vocab::CounterAttack.replace !$game_switches[LDT_SWITCH] ? "%s startet einen Gegenangriff!" : "%s startet einen Gegenangriff!"
        Vocab::Substitute.replace !$game_switches[LDT_SWITCH] ? "%s verteidigt %s!" : "%s verteidigt %s!"
    
        # Buff/Debuff
        Vocab::BuffAdd.replace !$game_switches[LDT_SWITCH] ? "%s's %s wird verstärkt!" : "%s's %s wird verstärkt!"
        Vocab::DebuffAdd.replace !$game_switches[LDT_SWITCH] ? "%s's %s wird geschwächt!" : "%s's %s wird geschwächt!"
        Vocab::BuffRemove.replace !$game_switches[LDT_SWITCH] ? "%s's %s ist wieder normal." : "%s's %s ist wieder normal."
    
        # Fähigkeit oder Gegenstand hatte keinen Effekt
        Vocab::ActionFailure.replace !$game_switches[LDT_SWITCH] ? "Hat keine Auswirkung auf %s!" : "Hat keine Auswirkung auf %s!"
    
        # Fehler-Meldungen
        Vocab::PlayerPosError.replace !$game_switches[LDT_SWITCH] ? "Spieler-Startpoistion wurde nicht gesetzt" : "Spieler-Startpoistion wurde nicht gesetzt"
        Vocab::EventOverflow.replace !$game_switches[LDT_SWITCH] ? "Zuviele gleichzeitige Aufrufe Gemeinsamer Events"  : "Zuviele gleichzeitige Aufrufe Gemeinsamer Events"
      end
      
      # Basis-Status
      def self.basic(basic_id)
        return LDT_BASIC[basic_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end
      
       # Befehle
      def self.command(command_id)
        return LDT_COMMAND[command_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end 
    end
    
    module DataManager
      class <<self; alias ldt_vocab_load_game load_game end
      def self.load_game(index)
        treturn = ldt_vocab_load_game(index)
        Vocab.change_vocab()
        return treturn
      end
      
      class <<self; alias ldt_vocab_new_game setup_new_game end
      def self.setup_new_game
        treturn = ldt_vocab_new_game
        Vocab.change_vocab()
        return treturn
      end
    end
    Edit: @Caledoriv: "Lustigerweise" kann man Constante ändern, wenn man diese mit der Replace-Methode ersetzt.
    War jetzt einfacher, wenn auch nicht ganz so sauber, als alle Zielklassen zu nehmen, dort die Aufrufe so zu verändern, dass generell alles über Methoden statt Konstanten läuft. Wobei das generell schöner wäre, als dieser "dreckige" Mix, der im Ace drin ist.

    @Ken:
    Was beim Skill willst du denn genau übersetzen? Den Skillnamen? Oder sonst noch was?

    Geändert von Linkey (28.07.2018 um 19:33 Uhr)

  8. #8
    Das ist ja regelrecht herrlich, vielen Dank!!!

    Zitat Zitat
    @Ken:
    Was beim Skill willst du denn genau übersetzen? Den Skillnamen? Oder sonst noch was?
    Name des Skills und seine Beschreibung. Bei Items ebenfalls.

    Edit: Jetzt brauch ich halt nur noch eine Möglichkeit, vor dem Titelscreen den Switch festzulegen. Eine Sprachabfrage á la "Welche Sprache darfs denn sein?"

    Denn so habe ich nun ja gar keine Titeloptionen, weil ich vor Game Start ja noch keine Switches festlegen kann. ^^
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Unbenannt.png  

    Geändert von Ken der Kot (28.07.2018 um 19:38 Uhr)

  9. #9
    Hallo Ken,

    das sollte trotzdem funktionieren. Wenn du immer beide Sprachen gepflegt hast, sollte er die Sprache anzeigen, die für "Switch = aus" verwendet wird.

    Hier das Script erweitert um Skill- und Item-Namen. Ich habe jetzt nicht die Zeit alle Windows durchzuschauen, wo es noch verwendet wird. Falls dir irgendwo mal eine falsche Ausgabe begegnet, sag bescheid, dann erweitere ich das Script einfach.

    Code:
    module Vocab
      # Whenever the language is changed ingame, call:
      # Vocab.change_vocab()
      
      # Number of the language switch
      LDT_SWITCH = 101
      #language siwtch off , language switch on
      #example ["Beenden","Back to title"] # Zum Titelmenü
      LDT_BASIC = [
          ["",""], # Level/Stufe
          ["",""], #  Level/Stufe (kurz)
          ["",""], #  HP/LP
          ["",""], #  HP/LP (kurz)
          ["",""], #  MP
          ["",""], #  MP (kurz)
          ["",""], #  TP
          ["",""]] #  TP (kurz)
      LDT_COMMAND = [
          ["",""], #  Kampf
          ["",""], #  Fliegen
          ["",""], #  Angriff
          ["",""], #  Verteidigen
          ["",""], #  Gegenstände
          ["",""], #  Fähigkeiten
          ["",""], #  Ausrüstung
          ["",""], #  Status
          ["",""], #  Formation ändern
          ["",""], #  Speichern
          ["",""], #  Spiel beenden
          ["",""], #  
          ["",""], #  Waffen
          ["",""], #  Rüstungen
          ["",""], #  Wichtige Objekte
          ["",""], #  Ausrüstung wechseln
          ["",""], #  Beste Ausrüstung
          ["",""], #  Alles entfernen
          ["",""], #  Neues Spiel
          ["",""], #  Fortsetzen
          ["",""], #  Programm beenden
          ["",""], #  Zum Titelmenü
          ["",""]] #  Abbrechen
      # Skill ID => [Language switch off][Language siwtch on]
      # Skills which are not maintained here will be read from database
      LDT_SKILL = {
          1=>["",""],
          2=>["",""],
          4=>["Doppelter Hieb","Double Attack"]
          }
      # Item ID => [Language switch off][Language siwtch on]
      # Items which are not maintained here will be read from database
      LDT_ITEM = {
          1=>["Trank","Potion"],
          2=>["",""],
          4=>["",""]
          }    
      def self.change_vocab()
        Vocab::ShopBuy.replace !$game_switches[LDT_SWITCH] ? "Kaufen" : "Kaufen"
        Vocab::ShopSell.replace !$game_switches[LDT_SWITCH] ? "Verkaufen" : "Verkaufen"
        Vocab::ShopCancel.replace !$game_switches[LDT_SWITCH] ? "Abbrechen" : "Abbrechen"
        Vocab::Possession.replace !$game_switches[LDT_SWITCH] ? "Im Besitz" : "Im Besitz"
    
        # Status-Menübildschirm
        Vocab::ExpTotal.replace !$game_switches[LDT_SWITCH] ? "Aktuelle Exp" : "Aktuelle Exp"
        Vocab::ExpNext.replace !$game_switches[LDT_SWITCH] ? "Bis zum nächsten %s" : "Bis zum nächsten %s"
    
        # Speichern/Laden-Menübildschirm
        Vocab::SaveMessage.replace !$game_switches[LDT_SWITCH] ? "In welchen Stand speichern" : "In welchen Stand speichern"
        Vocab::LoadMessage.replace !$game_switches[LDT_SWITCH] ? "Welchen Stand laden" : "Welchen Stand laden"
        Vocab::File.replace !$game_switches[LDT_SWITCH] ? "Spielstand" : "Spielstand"
    
        # Anzeige, wenn es mehrere Gruppenmitglieder gibt
        Vocab::PartyName.replace !$game_switches[LDT_SWITCH] ? "%s's Gruppe" : "%s's Gruppe"
    
        # Basis-Nachrichten im Kampf
        Vocab::Emerge.replace !$game_switches[LDT_SWITCH] ? "%s erscheint!" : "%s erscheint!"
        Vocab::Preemptive.replace !$game_switches[LDT_SWITCH] ? "%s ist im Vorteil!" : "%s ist im Vorteil!"
        Vocab::Surprise.replace !$game_switches[LDT_SWITCH] ? "%s wurde überrascht!" : "%s wurde überrascht!"
        Vocab::EscapeStart.replace !$game_switches[LDT_SWITCH] ? "%s versucht zu fliehen!" : "%s versucht zu fliehen!"
        Vocab::EscapeFailure.replace !$game_switches[LDT_SWITCH] ? "War nicht in der Lage zu fliehen!" : "War nicht in der Lage zu fliehen!"
    
        # Nachrichten bei Kampfende
        Vocab::Victory.replace !$game_switches[LDT_SWITCH] ? "%s war siegreich!" : "%s war siegreich!"
        Vocab::Defeat.replace !$game_switches[LDT_SWITCH] ? "%s wurde besiegt." : "%s wurde besiegt."
        Vocab::ObtainExp.replace !$game_switches[LDT_SWITCH] ? "%s EXP erhalten!" : "%s EXP erhalten!"
        Vocab::ObtainGold.replace !$game_switches[LDT_SWITCH] ? "%s\\G gefunden!" : "%s\\G gefunden!"
        Vocab::ObtainItem.replace !$game_switches[LDT_SWITCH] ? "%s gefunden!" : "%s gefunden!"
        Vocab::LevelUp.replace !$game_switches[LDT_SWITCH] ? "%s ist nun %s %s!" : "%s ist nun %s %s!"
        Vocab::ObtainSkill.replace !$game_switches[LDT_SWITCH] ? "%s erlernt!" : "%s erlernt!"
    
        # Benutzung von Gegenständen
        Vocab::UseItem.replace !$game_switches[LDT_SWITCH] ? "%s nutzt %s!" : "%s nutzt %s!"
    
        # Kritischer Treffer
        Vocab::CriticalToEnemy.replace !$game_switches[LDT_SWITCH] ? "Kritischer Treffer!!" : "Kritischer Treffer!!"
        Vocab::CriticalToActor.replace !$game_switches[LDT_SWITCH] ? "Wurde schwer getroffen!!" : "Wurde schwer getroffen!!"
    
        # Ergebnis für Aktionen, welche die Helden betreffen
        Vocab::ActorDamage.replace !$game_switches[LDT_SWITCH] ? "%s nimmt %s Schaden!" : "%s nimmt %s Schaden!"
        Vocab::ActorRecovery.replace !$game_switches[LDT_SWITCH] ? "%s heilt %s %s!" : "%s heilt %s %s!"
        Vocab::ActorGain.replace !$game_switches[LDT_SWITCH] ? "%s bekommt %s %s!" : "%s bekommt %s %s!"
        Vocab::ActorLoss.replace !$game_switches[LDT_SWITCH] ? "%s verliert %s %s!" : "%s verliert %s %s!"
        Vocab::ActorDrain.replace !$game_switches[LDT_SWITCH] ? "%s wurde %s %s entzogen!" : "%s wurde %s %s entzogen!"
        Vocab::ActorNoDamage.replace !$game_switches[LDT_SWITCH] ? "%s hat keinen Schaden eritten!" : "%s hat keinen Schaden eritten!"
        Vocab::ActorNoHit.replace !$game_switches[LDT_SWITCH] ? "Verfehlt! %s wurde nicht getroffen!" : "Verfehlt! %s wurde nicht getroffen!"
    
        # Ergebnis für Aktionen, welche die Gegner betreffen
        Vocab::EnemyDamage.replace !$game_switches[LDT_SWITCH] ? "%s erleidet %s Schaden!" : "%s erleidet %s Schaden!"
        Vocab::EnemyRecovery.replace !$game_switches[LDT_SWITCH] ? "%s heilt %s %s!" : "%s heilt %s %s!"
        Vocab::EnemyGain.replace !$game_switches[LDT_SWITCH] ? "%s bekommt %s %s!" : "%s bekommt %s %s!"
        Vocab::EnemyLoss.replace !$game_switches[LDT_SWITCH] ? "%s verliert %s %s!" : "%s verliert %s %s!"
        Vocab::EnemyDrain.replace !$game_switches[LDT_SWITCH] ? "Entzieht %s %s von %s!" : "Entzieht %s %s von %s!"
        Vocab::EnemyNoDamage.replace !$game_switches[LDT_SWITCH] ? "%s hat keinen Schaden erlitten!" : "%s hat keinen Schaden erlitten!"
        Vocab::EnemyNoHit.replace !$game_switches[LDT_SWITCH] ? "Verfehlt! %s wurde nicht getroffen!" : "Verfehlt! %s wurde nicht getroffen!"
    
        # Ausweichen/Zurückwerfen
        Vocab::Evasion.replace !$game_switches[LDT_SWITCH] ? "%s weicht dem Angriff aus!" : "%s weicht dem Angriff aus!"
        Vocab::MagicEvasion.replace !$game_switches[LDT_SWITCH] ? "%s wehrt die Magie ab!" : "%s wehrt die Magie ab!"
        Vocab::MagicReflection.replace !$game_switches[LDT_SWITCH] ? "%s reflektiert die Magie!" : "%s reflektiert die Magie!"
        Vocab::CounterAttack.replace !$game_switches[LDT_SWITCH] ? "%s startet einen Gegenangriff!" : "%s startet einen Gegenangriff!"
        Vocab::Substitute.replace !$game_switches[LDT_SWITCH] ? "%s verteidigt %s!" : "%s verteidigt %s!"
    
        # Buff/Debuff
        Vocab::BuffAdd.replace !$game_switches[LDT_SWITCH] ? "%s's %s wird verstärkt!" : "%s's %s wird verstärkt!"
        Vocab::DebuffAdd.replace !$game_switches[LDT_SWITCH] ? "%s's %s wird geschwächt!" : "%s's %s wird geschwächt!"
        Vocab::BuffRemove.replace !$game_switches[LDT_SWITCH] ? "%s's %s ist wieder normal." : "%s's %s ist wieder normal."
    
        # Fähigkeit oder Gegenstand hatte keinen Effekt
        Vocab::ActionFailure.replace !$game_switches[LDT_SWITCH] ? "Hat keine Auswirkung auf %s!" : "Hat keine Auswirkung auf %s!"
    
        # Fehler-Meldungen
        Vocab::PlayerPosError.replace !$game_switches[LDT_SWITCH] ? "Spieler-Startpoistion wurde nicht gesetzt" : "Spieler-Startpoistion wurde nicht gesetzt"
        Vocab::EventOverflow.replace !$game_switches[LDT_SWITCH] ? "Zuviele gleichzeitige Aufrufe Gemeinsamer Events"  : "Zuviele gleichzeitige Aufrufe Gemeinsamer Events"
      end
      
      # Basis-Status
      def self.basic(basic_id)
        return LDT_BASIC[basic_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end
      
       # Befehle
      def self.command(command_id)
        return LDT_COMMAND[command_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end 
      
      def self.get_item_text(item)
        if(item.is_a?(RPG::Skill))
          return get_skill_name(item)
        elsif(item.is_a?(RPG::Item))
          return get_item_name(item)
        else
          return item.name
        end
      end
      
      def self.get_skill_name(item)
        if(LDT_SKILL.has_key?(item.id))
          return LDT_SKILL[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.name
        end
      end
      
      def self.get_item_name(item)
        if(LDT_ITEM.has_key?(item.id))
          return LDT_ITEM[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.name
        end
      end
    end
    
    class Window_Base
      def draw_item_name(item, x, y, enabled = true, width = 172)
        return unless item
        draw_icon(item.icon_index, x, y, enabled)
        change_color(normal_color, enabled)
        draw_text(x + 24, y, width, line_height, Vocab.get_item_text(item))
      end
    end
    class Window_BattleLog
      def display_use_item(subject, item)
        if item.is_a?(RPG::Skill)
          add_text(subject.name + item.message1)
          unless item.message2.empty?
            wait
            add_text(item.message2)
          end
        else
          add_text(sprintf(Vocab::UseItem, subject.name, Vocab.get_item_text(item)))
        end
      end
    end
    module DataManager
      class <<self; alias ldt_vocab_load_game load_game end
      def self.load_game(index)
        treturn = ldt_vocab_load_game(index)
        Vocab.change_vocab()
        return treturn
      end
      
      class <<self; alias ldt_vocab_new_game setup_new_game end
      def self.setup_new_game
        treturn = ldt_vocab_new_game
        Vocab.change_vocab()
        return treturn
      end
    end

  10. #10
    Stimmt, du hast recht Danke dir, ich werd mal damit arbeiten und meld mich, falls noch was sein sollte ^^

    Edit: Hmm, aber ohne Vorab-Abfrage hab ich ja nicht die Option Start, Laden, Beenden sowohl entweder auf Deutsch oder auf Englisch anzuzeigen... das wäre schon ganz cool, wenn es eine Option gäbe, mit der ich vor dem Spiel schon einen Bildschirm aufrufen kann, der die Sprache abfragt.

    Ken der Kot

    Geändert von Ken der Kot (28.07.2018 um 20:25 Uhr)

  11. #11
    So, das war es dann aber erstmal. Muss dieses Wochenende auch arbeiten und will mal weg vom PC

    Code:
    module Vocab
      # Whenever the language is changed ingame, call:
      # Vocab.change_vocab()
      
      # Language Selection Constants
      LDT_LANG = ["Deutsch","English"]
      # Number of the language switch
      LDT_SWITCH = 101
      #language siwtch off , language switch on
      #example ["Beenden","Back to title"] # Zum Titelmenü
      LDT_BASIC = [
          ["",""], # Level/Stufe
          ["",""], #  Level/Stufe (kurz)
          ["",""], #  HP/LP
          ["",""], #  HP/LP (kurz)
          ["",""], #  MP
          ["",""], #  MP (kurz)
          ["",""], #  TP
          ["",""]] #  TP (kurz)
      LDT_COMMAND = [
          ["",""], #  Kampf
          ["",""], #  Fliegen
          ["",""], #  Angriff
          ["",""], #  Verteidigen
          ["",""], #  Gegenstände
          ["",""], #  Fähigkeiten
          ["",""], #  Ausrüstung
          ["",""], #  Status
          ["",""], #  Formation ändern
          ["",""], #  Speichern
          ["",""], #  Spiel beenden
          ["",""], #  
          ["",""], #  Waffen
          ["",""], #  Rüstungen
          ["",""], #  Wichtige Objekte
          ["",""], #  Ausrüstung wechseln
          ["",""], #  Beste Ausrüstung
          ["",""], #  Alles entfernen
          ["",""], #  Neues Spiel
          ["",""], #  Fortsetzen
          ["",""], #  Programm beenden
          ["",""], #  Zum Titelmenü
          ["",""]] #  Abbrechen
      # Skill ID => [Language switch off][Language siwtch on]
      # Skills which are not maintained here will be read from database
      LDT_SKILL = {
          1=>["",""],
          2=>["",""],
          4=>["Doppelter Hieb","Double Attack"]
          }
      # Item ID => [Language switch off][Language siwtch on]
      # Items which are not maintained here will be read from database
      LDT_ITEM = {
          1=>["Trank","Potion"],
          2=>["",""],
          4=>["",""]
          }    
      def self.change_vocab()
        Vocab::ShopBuy.replace !$game_switches[LDT_SWITCH] ? "Kaufen" : "Kaufen"
        Vocab::ShopSell.replace !$game_switches[LDT_SWITCH] ? "Verkaufen" : "Verkaufen"
        Vocab::ShopCancel.replace !$game_switches[LDT_SWITCH] ? "Abbrechen" : "Abbrechen"
        Vocab::Possession.replace !$game_switches[LDT_SWITCH] ? "Im Besitz" : "Im Besitz"
    
        # Status-Menübildschirm
        Vocab::ExpTotal.replace !$game_switches[LDT_SWITCH] ? "Aktuelle Exp" : "Aktuelle Exp"
        Vocab::ExpNext.replace !$game_switches[LDT_SWITCH] ? "Bis zum nächsten %s" : "Bis zum nächsten %s"
    
        # Speichern/Laden-Menübildschirm
        Vocab::SaveMessage.replace !$game_switches[LDT_SWITCH] ? "In welchen Stand speichern" : "In welchen Stand speichern"
        Vocab::LoadMessage.replace !$game_switches[LDT_SWITCH] ? "Welchen Stand laden" : "Welchen Stand laden"
        Vocab::File.replace !$game_switches[LDT_SWITCH] ? "Spielstand" : "Spielstand"
    
        # Anzeige, wenn es mehrere Gruppenmitglieder gibt
        Vocab::PartyName.replace !$game_switches[LDT_SWITCH] ? "%s's Gruppe" : "%s's Gruppe"
    
        # Basis-Nachrichten im Kampf
        Vocab::Emerge.replace !$game_switches[LDT_SWITCH] ? "%s erscheint!" : "%s erscheint!"
        Vocab::Preemptive.replace !$game_switches[LDT_SWITCH] ? "%s ist im Vorteil!" : "%s ist im Vorteil!"
        Vocab::Surprise.replace !$game_switches[LDT_SWITCH] ? "%s wurde überrascht!" : "%s wurde überrascht!"
        Vocab::EscapeStart.replace !$game_switches[LDT_SWITCH] ? "%s versucht zu fliehen!" : "%s versucht zu fliehen!"
        Vocab::EscapeFailure.replace !$game_switches[LDT_SWITCH] ? "War nicht in der Lage zu fliehen!" : "War nicht in der Lage zu fliehen!"
    
        # Nachrichten bei Kampfende
        Vocab::Victory.replace !$game_switches[LDT_SWITCH] ? "%s war siegreich!" : "%s war siegreich!"
        Vocab::Defeat.replace !$game_switches[LDT_SWITCH] ? "%s wurde besiegt." : "%s wurde besiegt."
        Vocab::ObtainExp.replace !$game_switches[LDT_SWITCH] ? "%s EXP erhalten!" : "%s EXP erhalten!"
        Vocab::ObtainGold.replace !$game_switches[LDT_SWITCH] ? "%s\\G gefunden!" : "%s\\G gefunden!"
        Vocab::ObtainItem.replace !$game_switches[LDT_SWITCH] ? "%s gefunden!" : "%s gefunden!"
        Vocab::LevelUp.replace !$game_switches[LDT_SWITCH] ? "%s ist nun %s %s!" : "%s ist nun %s %s!"
        Vocab::ObtainSkill.replace !$game_switches[LDT_SWITCH] ? "%s erlernt!" : "%s erlernt!"
    
        # Benutzung von Gegenständen
        Vocab::UseItem.replace !$game_switches[LDT_SWITCH] ? "%s nutzt %s!" : "%s nutzt %s!"
    
        # Kritischer Treffer
        Vocab::CriticalToEnemy.replace !$game_switches[LDT_SWITCH] ? "Kritischer Treffer!!" : "Kritischer Treffer!!"
        Vocab::CriticalToActor.replace !$game_switches[LDT_SWITCH] ? "Wurde schwer getroffen!!" : "Wurde schwer getroffen!!"
    
        # Ergebnis für Aktionen, welche die Helden betreffen
        Vocab::ActorDamage.replace !$game_switches[LDT_SWITCH] ? "%s nimmt %s Schaden!" : "%s nimmt %s Schaden!"
        Vocab::ActorRecovery.replace !$game_switches[LDT_SWITCH] ? "%s heilt %s %s!" : "%s heilt %s %s!"
        Vocab::ActorGain.replace !$game_switches[LDT_SWITCH] ? "%s bekommt %s %s!" : "%s bekommt %s %s!"
        Vocab::ActorLoss.replace !$game_switches[LDT_SWITCH] ? "%s verliert %s %s!" : "%s verliert %s %s!"
        Vocab::ActorDrain.replace !$game_switches[LDT_SWITCH] ? "%s wurde %s %s entzogen!" : "%s wurde %s %s entzogen!"
        Vocab::ActorNoDamage.replace !$game_switches[LDT_SWITCH] ? "%s hat keinen Schaden eritten!" : "%s hat keinen Schaden eritten!"
        Vocab::ActorNoHit.replace !$game_switches[LDT_SWITCH] ? "Verfehlt! %s wurde nicht getroffen!" : "Verfehlt! %s wurde nicht getroffen!"
    
        # Ergebnis für Aktionen, welche die Gegner betreffen
        Vocab::EnemyDamage.replace !$game_switches[LDT_SWITCH] ? "%s erleidet %s Schaden!" : "%s erleidet %s Schaden!"
        Vocab::EnemyRecovery.replace !$game_switches[LDT_SWITCH] ? "%s heilt %s %s!" : "%s heilt %s %s!"
        Vocab::EnemyGain.replace !$game_switches[LDT_SWITCH] ? "%s bekommt %s %s!" : "%s bekommt %s %s!"
        Vocab::EnemyLoss.replace !$game_switches[LDT_SWITCH] ? "%s verliert %s %s!" : "%s verliert %s %s!"
        Vocab::EnemyDrain.replace !$game_switches[LDT_SWITCH] ? "Entzieht %s %s von %s!" : "Entzieht %s %s von %s!"
        Vocab::EnemyNoDamage.replace !$game_switches[LDT_SWITCH] ? "%s hat keinen Schaden erlitten!" : "%s hat keinen Schaden erlitten!"
        Vocab::EnemyNoHit.replace !$game_switches[LDT_SWITCH] ? "Verfehlt! %s wurde nicht getroffen!" : "Verfehlt! %s wurde nicht getroffen!"
    
        # Ausweichen/Zurückwerfen
        Vocab::Evasion.replace !$game_switches[LDT_SWITCH] ? "%s weicht dem Angriff aus!" : "%s weicht dem Angriff aus!"
        Vocab::MagicEvasion.replace !$game_switches[LDT_SWITCH] ? "%s wehrt die Magie ab!" : "%s wehrt die Magie ab!"
        Vocab::MagicReflection.replace !$game_switches[LDT_SWITCH] ? "%s reflektiert die Magie!" : "%s reflektiert die Magie!"
        Vocab::CounterAttack.replace !$game_switches[LDT_SWITCH] ? "%s startet einen Gegenangriff!" : "%s startet einen Gegenangriff!"
        Vocab::Substitute.replace !$game_switches[LDT_SWITCH] ? "%s verteidigt %s!" : "%s verteidigt %s!"
    
        # Buff/Debuff
        Vocab::BuffAdd.replace !$game_switches[LDT_SWITCH] ? "%s's %s wird verstärkt!" : "%s's %s wird verstärkt!"
        Vocab::DebuffAdd.replace !$game_switches[LDT_SWITCH] ? "%s's %s wird geschwächt!" : "%s's %s wird geschwächt!"
        Vocab::BuffRemove.replace !$game_switches[LDT_SWITCH] ? "%s's %s ist wieder normal." : "%s's %s ist wieder normal."
    
        # Fähigkeit oder Gegenstand hatte keinen Effekt
        Vocab::ActionFailure.replace !$game_switches[LDT_SWITCH] ? "Hat keine Auswirkung auf %s!" : "Hat keine Auswirkung auf %s!"
    
        # Fehler-Meldungen
        Vocab::PlayerPosError.replace !$game_switches[LDT_SWITCH] ? "Spieler-Startpoistion wurde nicht gesetzt" : "Spieler-Startpoistion wurde nicht gesetzt"
        Vocab::EventOverflow.replace !$game_switches[LDT_SWITCH] ? "Zuviele gleichzeitige Aufrufe Gemeinsamer Events"  : "Zuviele gleichzeitige Aufrufe Gemeinsamer Events"
      end
      
      # Basis-Status
      def self.basic(basic_id)
        return LDT_BASIC[basic_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end
      
       # Befehle
      def self.command(command_id)
        return LDT_COMMAND[command_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end 
      
      def self.get_item_text(item)
        if(item.is_a?(RPG::Skill))
          return get_skill_name(item)
        elsif(item.is_a?(RPG::Item))
          return get_item_name(item)
        else
          return item.name
        end
      end
      
      def self.get_skill_name(item)
        if(LDT_SKILL.has_key?(item.id))
          return LDT_SKILL[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.name
        end
      end
      
      def self.get_item_name(item)
        if(LDT_ITEM.has_key?(item.id))
          return LDT_ITEM[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.name
        end
      end
    end
    
    class Window_Base
      def draw_item_name(item, x, y, enabled = true, width = 172)
        return unless item
        draw_icon(item.icon_index, x, y, enabled)
        change_color(normal_color, enabled)
        draw_text(x + 24, y, width, line_height, Vocab.get_item_text(item))
      end
    end
    class Window_BattleLog
      def display_use_item(subject, item)
        if item.is_a?(RPG::Skill)
          add_text(subject.name + item.message1)
          unless item.message2.empty?
            wait
            add_text(item.message2)
          end
        else
          add_text(sprintf(Vocab::UseItem, subject.name, Vocab.get_item_text(item)))
        end
      end
    end
    ## Scene Title changes + new window
    class Window_LanguageCommand < Window_Command
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0)
        update_placement
        self.openness = 0
        open
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        return 160
      end
      #--------------------------------------------------------------------------
      # * Update Window Position
      #--------------------------------------------------------------------------
      def update_placement
        self.x = (Graphics.width - width) / 2
        self.y = (Graphics.height * 1.6 - height) / 2
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        p("test")
        add_command(Vocab::LDT_LANG[0], :lang1)
        add_command(Vocab::LDT_LANG[1], :lang2)
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Continue
      #--------------------------------------------------------------------------
      def continue_enabled
        DataManager.save_file_exists?
      end
    end
    class Scene_Title < Scene_Base
      def start
        super
        SceneManager.clear
        Graphics.freeze
        create_background
        create_foreground    
        create_language_window
        play_title_music
      end
      
      def create_language_window
        @language_window = Window_LanguageCommand.new
        @language_window.set_handler(:lang1, method(:command_lang1))
        @language_window.set_handler(:lang2, method(:command_lang2))
        @language_window.visible = true
        @language_window.active = true
      end
      
      def command_lang1()
        $game_switches[Vocab::LDT_SWITCH] = false
        language_selected()
      end
      
      def command_lang2()
        $game_switches[Vocab::LDT_SWITCH] = true
        language_selected()
      end
      
      def language_selected()
        @language_window.visible = false
        @language_window.active = false
        create_command_window
      end
    end
    module DataManager
      class <<self; alias ldt_vocab_load_game load_game end
      def self.load_game(index)
        tlang = $game_switches[Vocab::LDT_SWITCH]
        treturn = ldt_vocab_load_game(index)
        Vocab.change_vocab()
        $game_switches[Vocab::LDT_SWITCH] = tlang
        return treturn
      end
      
      class <<self; alias ldt_vocab_new_game setup_new_game end
      def self.setup_new_game
        tlang = $game_switches[Vocab::LDT_SWITCH]
        treturn = ldt_vocab_new_game
        Vocab.change_vocab()
        $game_switches[Vocab::LDT_SWITCH] = tlang
        return treturn
      end
    end

  12. #12
    Kein Problem, vielen Dank

  13. #13
    Hallo,

    wenn ich den Spielstand nicht lade, sondern Esc drücke bekomm ich einen RGSS Error (disposed window) in line 83, der sich auf Window Base bezieht.

    Was kann man tun?

    Ken der Kot
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Unbenannt.png  

    Geändert von Ken der Kot (29.07.2018 um 20:13 Uhr)

  14. #14
    In dem Script, was ich dir gegeben habe, ersetze die class Scene_Title durch folgende (sollte so bei ca. zeile ~230+ liegen):
    Code:
    class Scene_Title < Scene_Base
      def start
        super
        SceneManager.clear
        Graphics.freeze
        create_background
        create_foreground   
        create_command_window
        @command_window.visible = false
        @command_window.active = false
        create_language_window
        play_title_music
      end
      
      def create_language_window
        @language_window = Window_LanguageCommand.new
        @language_window.set_handler(:lang1, method(:command_lang1))
        @language_window.set_handler(:lang2, method(:command_lang2))
        @language_window.visible = true
        @language_window.active = true
      end
      
      def command_lang1()
        $game_switches[Vocab::LDT_SWITCH] = false
        language_selected()
      end
      
      def command_lang2()
        $game_switches[Vocab::LDT_SWITCH] = true
        language_selected()
      end
      
      def language_selected()
        @language_window.visible = false
        @language_window.active = false
        create_command_window
      end
    end
    Edit: In rot noch einmal ein Fix des Fixs....

    Geändert von Linkey (29.07.2018 um 20:39 Uhr)

  15. #15
    So, jetzt noch erweitert, dass man vom Titelmenü zurück zur Sprachauswahl kommt und vom Ladebildschirm zurück zum Titelmenü (wieder ab ca. ~230 Scene_Title alles komplett ersetzen):
    Code:
    class Scene_Title < Scene_Base
      def start
        super
        SceneManager.clear
        Graphics.freeze
        create_background
        create_foreground   
        create_command_window
        create_language_window
        unless($ldt_lang_selected)
          @command_window.visible = false
          @command_window.active = false      
        else
          @language_window.visible = false
          @language_window.active = false 
        end
        play_title_music
      end
      
      def create_language_window
        @language_window = Window_LanguageCommand.new
        @language_window.set_handler(:lang1, method(:command_lang1))
        @language_window.set_handler(:lang2, method(:command_lang2))
        @language_window.visible = true
        @language_window.active = true
      end
      
      def command_lang1()
        $game_switches[Vocab::LDT_SWITCH] = false
        language_selected()
      end
      
      def command_lang2()
        $game_switches[Vocab::LDT_SWITCH] = true
        language_selected()
      end
      
      def language_selected()
        $ldt_lang_selected = true
        @language_window.visible = false
        @language_window.active = false
        Vocab.change_vocab()
        create_command_window
      end
      
      alias ldt_create_command_window create_command_window
      def create_command_window
        ldt_create_command_window
        @command_window.set_handler(:cancel, method(:command_cancel))
      end
      
      def command_cancel
        @command_window.visible = false
        @command_window.active = false
        @language_window.visible = true
        @language_window.active = true
      end
    end
    module DataManager
      class <<self; alias ldt_vocab_load_game load_game end
      def self.load_game(index)
        tlang = $game_switches[Vocab::LDT_SWITCH]
        treturn = ldt_vocab_load_game(index)
        $game_switches[Vocab::LDT_SWITCH] = tlang
        Vocab.change_vocab()
        return treturn
      end
      
      class <<self; alias ldt_vocab_new_game setup_new_game end
      def self.setup_new_game
        tlang = $game_switches[Vocab::LDT_SWITCH]
        treturn = ldt_vocab_new_game
        $game_switches[Vocab::LDT_SWITCH] = tlang
        Vocab.change_vocab()
        return treturn
      end
    end

    Geändert von Linkey (29.07.2018 um 21:12 Uhr)

  16. #16
    Hi Linkey, habe noch ein Problem mit dem Skript gefunden. Also wenn die Gegner (oder ich) angreifen, dann steht oben immer noch "Actor uses..." bzw "Actor released..." etc. Also im Prinzip das, was in der Database bei Action Message steht. Einfach leer lassen geht auch nicht, dann wird im Kampf nichts angezeigt. Kann man das noch übersetzbar machen + eben auch die Gegnernamen?

    Ken der Sprachkot
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Unbenannt.png  

    Geändert von Ken der Kot (01.08.2018 um 15:46 Uhr)

  17. #17
    Hallo Ken,

    Als erstes fügst du folgenden Code unter LDT_SKILL ein:
    Code:
      LDT_SKILL_MES1 = {
          1=>["",""],
          2=>["",""],
          4=>["benutzt Doppelter Hieb!","uses Double Attack!!!"]
          }
      LDT_SKILL_MES2 = {
          1=>["",""],
          2=>["",""],
          4=>["Irgendein Text der als Info drunter erscheint.","Insert something useful here..."]
          }    
      LDT_ENEMY = {
          1=>["Geist","Ghost"],
          2=>["Ratte","Rat"],
          3=>["",""],
          4=>["",""]}
    Hier kannst du die Angriffstexte, equivlanet zur Database, pflegen. Ist vom Aufbau her genauso wie LDT_SKILL.
    LDT_SKILL_MES1 ist der Text, der hinter dem ausführenden Charakter steht.
    LDT_SKILL_MES2 ist der zweite Text, der komplett angezeigt wird (ohne Anwender).
    In dem Beispiel, was ich dort eingetragen habe, erscheint folgender Text, wenn der "Peter" den Skill 4 benutzt:
    Peter benutzt Doppelter Hieb!
    Irgendein Text der als Info drunter erscheint.


    In LDT_ENEMY kannst du die Gegnernamen pflegen.

    Ab der Zeile "def self.basic(basic_id)" das komplette Coding durch folgendes ersetzen:
    Code:
    # Basis-Status
      def self.basic(basic_id)
        return LDT_BASIC[basic_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end
      
       # Befehle
      def self.command(command_id)
        return LDT_COMMAND[command_id][$game_switches[LDT_SWITCH] ? 1 : 0]
      end 
      
      def self.get_item_text(item)
        if(item.is_a?(RPG::Skill))
          return get_skill_name(item)
        elsif(item.is_a?(RPG::Item))
          return get_item_name(item)
        else
          return item.name
        end
      end
      
      def self.get_skill_name(item)
        if(LDT_SKILL.has_key?(item.id))
          return LDT_SKILL[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.name
        end
      end
      
      def self.get_item_name(item)
        if(LDT_ITEM.has_key?(item.id))
          return LDT_ITEM[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.name
        end
      end
      
      def self.get_message1(item)
        if(LDT_SKILL_MES1.has_key?(item.id))
          return LDT_SKILL_MES1[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.message1
        end
      end
      
      def self.get_message2(item)
        if(LDT_SKILL_MES2.has_key?(item.id))
          return LDT_SKILL_MES2[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.message2
        end
      end
      
      def self.get_subject(subject)
        if(subject.is_a?(Game_Enemy))
          if(LDT_ENEMY.has_key?(subject.enemy_id))
            return LDT_ENEMY[subject.enemy_id][$game_switches[LDT_SWITCH] ? 1 : 0]
          else
            return subject.name
          end
        elsif(subject.is_a?(RPG::Enemy))
          if(LDT_ENEMY.has_key?(subject.id))
            return LDT_ENEMY[subject.id][$game_switches[LDT_SWITCH] ? 1 : 0]
          else
            return subject.name
          end
        else
          return subject.name
        end
      end
    end
    
    class Window_Base
      def draw_item_name(item, x, y, enabled = true, width = 172)
        return unless item
        draw_icon(item.icon_index, x, y, enabled)
        change_color(normal_color, enabled)
        draw_text(x + 24, y, width, line_height, Vocab.get_item_text(item))
      end
    end
    class Window_BattleLog
      def display_use_item(subject, item)
        tsub = Vocab.get_subject(subject)
        if item.is_a?(RPG::Skill)
          add_text(tsub + Vocab.get_message1(item))
          tmes2 = Vocab.get_message2(item)
          unless tmes2.empty?
            wait
            add_text(tmes2)
          end
        else
          add_text(sprintf(Vocab::UseItem, tsub, Vocab.get_item_text(item)))
        end
      end
    end
    ## Scene Title changes + new window
    class Window_LanguageCommand < Window_Command
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0)
        update_placement
        self.openness = 0
        open
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        return 160
      end
      #--------------------------------------------------------------------------
      # * Update Window Position
      #--------------------------------------------------------------------------
      def update_placement
        self.x = (Graphics.width - width) / 2
        self.y = (Graphics.height * 1.6 - height) / 2
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        add_command(Vocab::LDT_LANG[0], :lang1)
        add_command(Vocab::LDT_LANG[1], :lang2)
      end
      #--------------------------------------------------------------------------
      # * Get Activation State of Continue
      #--------------------------------------------------------------------------
      def continue_enabled
        DataManager.save_file_exists?
      end
    end
    class Scene_Title < Scene_Base
      def start
        super
        SceneManager.clear
        Graphics.freeze
        create_background
        create_foreground   
        create_command_window
        create_language_window
        unless($ldt_lang_selected)
          @command_window.visible = false
          @command_window.active = false      
        else
          @language_window.visible = false
          @language_window.active = false 
        end
        play_title_music
      end
      
      def create_language_window
        @language_window = Window_LanguageCommand.new
        @language_window.set_handler(:lang1, method(:command_lang1))
        @language_window.set_handler(:lang2, method(:command_lang2))
        @language_window.visible = true
        @language_window.active = true
      end
      
      def command_lang1()
        $game_switches[Vocab::LDT_SWITCH] = false
        language_selected()
      end
      
      def command_lang2()
        $game_switches[Vocab::LDT_SWITCH] = true
        language_selected()
      end
      
      def language_selected()
        $ldt_lang_selected = true
        @language_window.visible = false
        @language_window.active = false
        Vocab.change_vocab()
        create_command_window
      end
      
      alias ldt_create_command_window create_command_window
      def create_command_window
        ldt_create_command_window
        @command_window.set_handler(:cancel, method(:command_cancel))
      end
      
      def command_cancel
        @command_window.visible = false
        @command_window.active = false
        @language_window.visible = true
        @language_window.active = true
      end
    end
    
    class Game_Enemy < Game_Battler
      alias ldt_initialize initialize
      def initialize(index, enemy_id)
        ldt_initialize(index, enemy_id)
        @original_name = Vocab.get_subject(enemy)
      end
    end
    module DataManager
      class <<self; alias ldt_vocab_load_game load_game end
      def self.load_game(index)
        tlang = $game_switches[Vocab::LDT_SWITCH]
        treturn = ldt_vocab_load_game(index)
        $game_switches[Vocab::LDT_SWITCH] = tlang
        Vocab.change_vocab()
        return treturn
      end
      
      class <<self; alias ldt_vocab_new_game setup_new_game end
      def self.setup_new_game
        tlang = $game_switches[Vocab::LDT_SWITCH]
        treturn = ldt_vocab_new_game
        $game_switches[Vocab::LDT_SWITCH] = tlang
        Vocab.change_vocab()
        return treturn
      end
    end

    Geändert von Linkey (01.08.2018 um 21:59 Uhr)

  18. #18
    Funktioniert tadellos vielen Dank!!

  19. #19
    Da wird sicherlich noch einiges in Zukunft kommen. Hab wie gesagt keine Zeit das alles zu ermitteln, aber so Dinge wie Gegner hatte ich schon auf dem Schirm. Auch Status ("Wurde vergiftet") usw. wird sicherlich noch ein Thema werden

  20. #20
    ich halt dich auf dem Laufenden

Berechtigungen

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