Bots Al Bhed

● ARCHIVED · READ-ONLY
Started by Meridianbot 8 posts View original ↗
  1. This script allows you to give ur game a snd language which is similar to the language of the Al Bhed of FF-X and can be learned by the player.

    Don't know FF-10 or the Albeth language

    Spoiler
    Source:

    The Al Bhed language is a unique language in Spira, spoken by the Al Bhed people. Working like a substitution cipher (a language system replacing certain letters with others), it shares the same syntax and grammar of English in the English versions of Final Fantasy X and Final Fantasy X-2.
    Script

    Spoiler
    Installation: Place this script below Materials and above Main

    module Translator Notranslatet_color= "3"; # Its the Colo(u)r of the recognized Letters Translatet_color= "2"; # Its the Colo(u)r of the unrecognized Letters TransSwitch= 3; # This is the Switch which holds the solved letters. The switch # must not be changed with the maker TransVar= 7; # for later usage GesamtVar= 8; # for later usage ChangerVal= 4; # It holds the value how far the letters are shifted end class Game_Switches #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize #include Translator @data = [] @data[Translator::TransSwitch]={} endendclass Window_Base < Window alias :koma :convert_escape_characters def convert_escape_characters(text) $game_switches[Translator::TransSwitch] ={} if !$game_switches[Translator::TransSwitch] change_color(normal_color) translate=false result = text.to_s.clone result.gsub!(/\\/) { "\e" } result.gsub!(/\ey\[(.+)\]/i) { (help="\eC["+Translator::Translatet_color+"]"; (a=$1).each_char do |char| if char.match(/^[[:alpha:]]$/) if $game_switches[Translator::TransSwitch][char.upcase] if(translate) translate=false help+="\eC["+Translator::Translatet_color+"]"+char else $game_variables[Translator::TransVar]+=1 help+=char end else if(!translate) translate=true help+="\eC["+Translator::Notranslatet_color+"]"+((char.upcase.ord+Translator::ChangerVal)>'Z'.ord ? (char.ord-Translator::ChangerVal).chr : (char.ord+Translator::ChangerVal).chr) else help+=((char.upcase.ord+Translator::ChangerVal)>'Z'.ord ? (char.ord-Translator::ChangerVal).chr : (char.ord+Translator::ChangerVal).chr) end end else if translate translate=false help+= "\ec["+Translator::Translatet_color+"]"+char else help+=char end end end translate=false;help+= "\ec[0]" )} result.gsub!(/\e\e/) { "\\" } result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] } result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] } result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) } result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) } result.gsub!(/\eG/i) { Vocab::currency_unit } result endend
    History + Releases

    Spoiler
    V 1.0 initial Release
    What will come

    Spoiler
    -More than one language

    -Different fonts for other languages

    -Information about how many the player understand of the spoken

    -Additional Modi to Cesar Ciphre
    Usage
    Just use the following snippet in the message-box

    \y[<text>]<text>: is the text u wanna have spoken in the differnt language.

    ===================================================

    With the following scriplet u can teach the player new "letters"

    a=$game_switches[Translator::TransSwitch]a['<letter>']=true<letter>:it is the letter u want the player be taught. (upppercase!)

    ===================================================

    Things which can be changed:

    The six constants at the beginning of the script can be changed according to need.

    ===================================================

    ===================================================

    Sampleproject is attached

    Credit

    If you plan on using this script credit me. If u wanna use it for a commercial product pm me (even though i don't think this will ever happen^^).

    If u find any bug or have ideas for additional ideas please post in this thread


    regards Bot

    Language.zip
  2. I do not understand how to use this. Please explain a little better.
  3. What is it that u don't understand?

    • Transforming normal text into 2nd language
    • Learning the player a new letters
    • something else

    regards Bot
  4. So where are the letters stored at? Is there a way I can step up what letters are what letters?
  5. The script uses at the moment a pseudo Cesarshifre it shifts the letter in the alphabeth.

    TransSwitch= 3; # This is the Switch which holds the solved letters. The switch # The Switch must not be changed with in the makerChangerVal= 4; # It holds the value how far the letters are shifted At the moment u can only change ChangerVal to change how far the letters are shifted.

    regards Bot
  6. This sounds awesome. But, can we see this in action so that us less script-savvy members can understand? Also, can you change the script so that you can choose different letters/sounds?

    For instance: I created a language called Runic for a story. Say I wanted to use that language for a game. 'Ze-ges' would be 'Hi' in Runic. (The hyphen separates the letters/sounds.)
  7. Fixed script format, credit Meridianbot.
    See main thread for details- https://forums.rpgmakerweb.com/index.php?threads/bots-al-bhed.11511/
    How to use by Roninator2- https://forums.rpgmakerweb.com/index.php?threads/bots-al-bhed.11511/#post-1048235

    Code:
    module Translator
        Notranslatet_color= "3"; # Its the Colo(u)r of the recognized Letters
        Translatet_color=   "2"; # Its the Colo(u)r of the unrecognized Letters
        TransSwitch=         3;  # This is the Switch which holds the solved letters. The switch  
                                 # must not be changed with the maker
        TransVar=            7;  # for later usage
        GesamtVar=           8;  # for later usage
        ChangerVal=          4;  # It holds the value how far the letters are shifted
    end
    
    class Game_Switches
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        #include Translator
        @data = []
        @data[Translator::TransSwitch]={}
      end
    end
    
    class Window_Base < Window
    
        alias :koma :convert_escape_characters
        def convert_escape_characters(text)
        $game_switches[Translator::TransSwitch] ={} if !$game_switches[Translator::TransSwitch]
    
        change_color(normal_color)
        translate=false
        result = text.to_s.clone
        result.gsub!(/\\/)            { "\e" }
        result.gsub!(/\ey\[(.+)\]/i)          {
         (help="\eC["+Translator::Translatet_color+"]"; (a=$1).each_char do |char|
         
          if char.match(/^[[:alpha:]]$/)
            if $game_switches[Translator::TransSwitch][char.upcase]
              if(translate)
                translate=false
                help+="\eC["+Translator::Translatet_color+"]"+char
              else
                $game_variables[Translator::TransVar]+=1
                help+=char
              end
            else
              if(!translate)
                translate=true
                help+="\eC["+Translator::Notranslatet_color+"]"+((char.upcase.ord+Translator::ChangerVal)>'Z'.ord ?
    
    (char.ord-Translator::ChangerVal).chr : (char.ord+Translator::ChangerVal).chr)
              else
                help+=((char.upcase.ord+Translator::ChangerVal)>'Z'.ord ? (char.ord-Translator::ChangerVal).chr :
    
    (char.ord+Translator::ChangerVal).chr)
              end
            end
          else
            if translate
             translate=false
             help+= "\ec["+Translator::Translatet_color+"]"+char
            else
              help+=char        
          end
        end
        end
           translate=false;help+= "\ec[0]"
        )}
       
        result.gsub!(/\e\e/)          { "\\" }
        result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
        result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
        result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) }
        result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) }
        result.gsub!(/\eG/i)          { Vocab::currency_unit }
        result
      end
    end
  8. tale said:
    Fixed script format,
    Thanks a lot I might use this now, you wouldn't happen to know how the script is properly used?
    the line that says
    a=$game_switches[Translator::TransSwitch]a['<letter>']=true
    is this the correct script line to use? or is it something like
    a=$game_switches[Translator::TransSwitch]
    a['<letter>']=true

    if so then I'm guessing you can do
    a=$game_switches[Translator::TransSwitch]
    a['<letter>']=true
    a['<letter>']=true
    a['<letter>']=true
    a['<letter>']=true

    Just wondering because I have not seen a line like that before. It's the 'a' in the middle that confuses me.
    a=$game_switches[Translator::TransSwitch]a['<letter>']=true


    After some testing I see how to use the script.
    The switch used is not turned on.
    The lines are put together in the same script call but are on different lines and you can only use one character at a time.

    a=$game_switches[Translator::TransSwitch]
    a['A']=true
    a['B']=true
    a['C']=true
    a['D']=true