Seite 2 von 2 ErsteErste 12
Ergebnis 21 bis 38 von 38

Thema: Sprache in Kampfsystem (Ace)

  1. #21
    Hallo Linkey, mir ist aufgefallen, daß Itembeschreibungen noch nicht zweisprachig möglich sind. Also die Beschreibungen oben, die man im KS sieht, wenn man auf den Reiter Items geht. Kannst du das noch machen? Und geht es auch, daß ich dort (und bei LDT_SKILL_MES2) auch Icons anzeigen kann?

    Geändert von Ken der Kot (03.08.2018 um 19:50 Uhr)

  2. #22
    Können denn ohne mein Script Icons angezeigt werden? Wenn ich das richtig im Kopf habe greife ich ja nur in den Text ein, den ich für die Ausgabe weiter gebe, ohne die Ausgaben-Funktion umzuschreiben.
    Falls es im Standard nicht möglich ist, müsste ich da den Battlelog anpassen - dazu müsste ich den Maker öffnen, den kenne ich nicht auswendig. => wenn ich zwischendurch mal Zeit und Lust habe, längere Zeit am PC/RPGMaker zu verbringen, schau ich mir das an.

    Die Itembeschreibungen trag ich noch nach, wenn ich mal Luft zwischendurch hab.

  3. #23
    Ja, die Icons sind auch nicht so wichtig, lass das einfach sein, wenn es zu viel Arbeit wäre oder du keine Zeit dafür finden würdest.

    Itembeschreibungen sind da schon wichtiger xD

  4. #24
    Unter LDT_ITEM folgenden Code hinzufügen:
    Code:
    LDT_ITEM_DESC = {
          1=>["Heilt 500 HP.","Restores 500 HP."],
          2=>["",""],
          4=>["",""]
          }
    Hier kannst du pro Item die Beschreibung in beiden Sprachen pflegen.

    Ab Zeile "def self.get_subject(subject)" alles mit folgendem Code ersetzen:
    Code:
    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
      
      def self.get_item_desc(item)
        if(LDT_ITEM_DESC.has_key?(item.id))
          return LDT_ITEM_DESC[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.description
        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_Help < Window_Base
      def set_item(item)
        set_text(item ? Vocab.get_item_desc(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

  5. #25
    Danke, eben getestet und es tut. Schade daß man Leuten hier keine positive Bewertung geben kann

  6. #26
    Hmm, es scheint keine Rolle zu spielen, was ich im Skript für Special reinschreibe. Es zeigt mir "Special" an (aus der Database).

    Also es geht um die beiden Skilltypen Special und Magic.

    Geändert von Ken der Kot (07.08.2018 um 14:36 Uhr)

  7. #27
    Der Maker ist mal wieder ganz super aufgebaut. Anstatt über das Vocab-Modul zu gehen, werden die Skilltypen direkt aus der DB gelesen.

    Ganz unten fügst du folgendes ein:
    Code:
    class Window_ActorCommand < Window_Command
      def add_skill_commands
        @actor.added_skill_types.sort.each do |stype_id|
          name = Vocab.get_skilltype(stype_id)
          add_command(name, :skill, true, stype_id)
        end
      end
    end
    class Window_SkillCommand < Window_Command
      def make_command_list
        return unless @actor
        @actor.added_skill_types.sort.each do |stype_id|
          name = Vocab.get_skilltype(stype_id)
          add_command(name, :skill, true, stype_id)
        end
      end
    end
    Zwischen "def self.get_item_desc(item)" und "class Window_Base" fügst du das rote ein:
    Code:
      def self.get_item_desc(item)
        if(LDT_ITEM_DESC.has_key?(item.id))
          return LDT_ITEM_DESC[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return item.description
        end
      end
      
      def self.get_skilltype(skid)
        if(LDT_SKILLTYPE.has_key?(skid))
          return LDT_SKILLTYPE[skid][$game_switches[LDT_SWITCH] ? 1 : 0]
        else
          return $data_system.skill_types[skid]
        end
      end
    end
    
    class Window_Base
    Unter "LDT_ITEM_DESC = { ..........." fügst du folgendes ein:
    Code:
    # Skilltype ID => [Language switch off][language switch on]
      LDT_SKILLTYPE = {
          1=>["Technik","Special"],
          2=>["Magie","Magic"],
          }

  8. #28
    Funktioniert Astrein, tausend Dank!!!

  9. #29
    Wird es noch gehen, daß ich Icons in Skilltexte einfügen kann?

    Ken der Iconskilltextkot

  10. #30
    Zitat Zitat von Linkey Beitrag anzeigen
    Können denn ohne mein Script Icons angezeigt werden? Wenn ich das richtig im Kopf habe greife ich ja nur in den Text ein, den ich für die Ausgabe weiter gebe, ohne die Ausgaben-Funktion umzuschreiben.
    Falls es im Standard nicht möglich ist, müsste ich da den Battlelog anpassen - dazu müsste ich den Maker öffnen, den kenne ich nicht auswendig. => wenn ich zwischendurch mal Zeit und Lust habe, längere Zeit am PC/RPGMaker zu verbringen, schau ich mir das an.

    Die Itembeschreibungen trag ich noch nach, wenn ich mal Luft zwischendurch hab.
    Zitat Zitat von Ken der Kot Beitrag anzeigen
    Ja, die Icons sind auch nicht so wichtig, lass das einfach sein, wenn es zu viel Arbeit wäre oder du keine Zeit dafür finden würdest.

    Itembeschreibungen sind da schon wichtiger xD
    Noch keine Zeit dazu gefunden. Wird vor dem Wochenende auch auf keinen Fall etwas.

  11. #31
    Wollte nur wissen, ob du es noch vorhast zu ergänzen.

    Ja, das ist vollkommen i.o.

    Aber ich sehe gerade: Die Skill Descriptions sind erstmal wichtiger. Da kann ich alles erklären, dann brauche ich wohl auch keine Icons.

    Geändert von Ken der Kot (09.08.2018 um 12:49 Uhr)

  12. #32
    Unter "LDT_SKILL_MES2" folgendes einfügen:
    Code:
      LDT_SKILL_DESC = {
          1=>["",""],
          2=>["",""],
          4=>["Trifft den Gegner doppelt.","Hits the Enemy two times!"]
          }
    Die Methode "def self.get_item_desc(item)" mit folgender ersetzen:
    Code:
    def self.get_item_desc(item)
        if(item.is_a?(RPG::Item))
          if(LDT_ITEM_DESC.has_key?(item.id))
            return LDT_ITEM_DESC[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
          else
            return item.description
          end
        elsif(item.is_a?(RPG::Skill))
          if(LDT_SKILL_DESC.has_key?(item.id))
            return LDT_SKILL_DESC[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
          else
            return item.description
          end
        else
          return item.description
        end
      end

  13. #33
    Hab eine Frage: mit %s kann ich doch den Namen anzeigen lassen. Wieso funktioniert das bei SKILL_MES2 aber nicht?

    Edit: Ich glaub, ich habs gefunden.

    tmes2 = tsub + Vocab.get_message2(item)

    Edit2:

    Argh, jetzt machts das für alle Message 2. Wollt es doch so machen, daß ich die Wahl hab, ob der Name drin steht oder nicht

    Edit3:

    Ne, passt alles. Kann mich damit arrangieren. Ist gar nicht so schlecht.

    Geändert von Ken der Kot (23.08.2018 um 22:53 Uhr)

  14. #34
    Bräuchte noch den Teil "Actor revives" (Actor steht wieder auf) als Übersetzung.

    Zitat Zitat
    Auch Status ("Wurde vergiftet") usw. wird sicherlich noch ein Thema werden
    Und wie recht du hattest ab jetzt brauch ich das nämlich auch xD

  15. #35
    Unter LDT_SKILLTYPE usw.:
    Code:
    # State ID => [[State Spieler, State Gegner, State anhaltend, State zuende],
      #              [State Player, State Enemy, State continues, State ends]]
      LDT_STATEMES = {
          7=>[[" ist gelähmt!"," ist gelähmt!","k ann sich nicht bewegen!"," kann sich wieder bewegen!"],
          [" is paralyzed!"," is paralyzed!"," cannot move!"," isn't paralyzed anymore!"]],
          8=>[["t1","t2","t3","t4"],
          ["t1","t2","t3","t4"]]
          }
    Für jeden State hast du 4 Messages: Text wenn der Spieler ihn erhält, Text wenn der Gegner ihn erhält, Text wenn der Status anhält, Text wenn der Status endet (also die 4, die du in der Datenbank auch siehst)

    Dann noch das rotmarkierte hinzufügen:
    Code:
    # 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"
        change_state_mes()
      end
    
      def self.change_state_mes()
        $data_states.each do |st|
          if(st)
            if(LDT_STATEMES.has_key?(st.id))
              st.message1 = LDT_STATEMES[st.id][$game_switches[LDT_SWITCH] ? 1 : 0][0]
              st.message2 = LDT_STATEMES[st.id][$game_switches[LDT_SWITCH] ? 1 : 0][1]
              st.message3 = LDT_STATEMES[st.id][$game_switches[LDT_SWITCH] ? 1 : 0][2]
              st.message4 = LDT_STATEMES[st.id][$game_switches[LDT_SWITCH] ? 1 : 0][3]
            end
          end
        end
      end

  16. #36
    Danke, es funktioniert gut. Nun muss ich nur noch meine Daten einpflegen. Danke.

    Das mit dem Wiederbeleben übersetzen ginge sicher auch, oder?

  17. #37
    Ist doch damit erledigt oder? Wiederbeleben sollte die Message 4 vom Status "Tod" sein

  18. #38
    Richtig, my bad ^^

Berechtigungen

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