Ergebnis 1 bis 20 von 38

Thema: Sprache in Kampfsystem (Ace)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  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

Berechtigungen

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