So, is it possible to crete a ciphere substitution script? Like Al Bhed in FFX?
I mean, it would automatically put a certain color to letters that haven´t been learned, and a different color to the translated ones? Am i making any sense here? Anyway, if you´ve played Final Fantasy X (10) you know what i´m talking about.
I´ll put an example: Pmewwynt in this, you haven´t learned any letters.
The you find two letters, and next time you look at the text, it has become like this: B mewwynd
then eventually you have found the reamining letters so it now looks like this: Blizzard
So, that´s what i want. But, before making a request, i want to know if it´s even possible.
don't think you need a script for this... events can handle this without a problem
?~? Well, it would take a whole lot of swiches, what 26. Well, i was in a kind of a dumb mood since i just had woken up, an for somereason thought this thing... :P
No wait, it would take more than 26 switches, since the maximum amount is 26*25*24*23...*1
aka 26! if i remeber my math techings correctly... So script would be a lot easier than eventing... or if not easier, simpler i think...
I'm almost certain I saw a script for this somewhere... :uhm:
@Jackolas, it would take alot of conditional branches :P
*goes to look for script*
It would take millions if i got it right. Just multiply 26 backwars, to times 1. so like this 26*25*24...*2*1=?X?X?X?X?X?
I am positive that this can be scripted, as the RTP's scripts replace certain things, too, like the variable shortcuts, in message boxes. It'd be EXTREMELY easy to use, and as a matter of fact, you could/should probably have it so that you flip the "al bhed" switch, and....well, you get the drill. I'm pretty busy now, but PM me if a few days go by without any results, and I'll be glad to help. ^_^
Seox out.
This is what I found (http://rpgmxpstudio.pellnet.ch/lataverne/viewtopic.php?t=1356)
Though that's definetly not the one I was thinking about... :<_<:
Well, there is Seph's Multiple Languages Script (http://rmrk.net/index.php?action=dlattach;topic=14223.0;attach=3339) but that needs the SDK.
Quote from: Blizzard @http://rmrk.net/index.php/topic,14223.msg181545.html#msg181545
Post Seph's script, I'll make it non-SDK.
(Lol, I always wanted to say that! ^__^ )
The lies Blizzy >:( (unless you already did :P)
Quote from: Hellfire Dragon on July 14, 2009, 10:43:48 am
The lies Blizzy >:( (unless you already did :P)
Lolz, let's go beat the shit out of him.
*Blizz walks in*
OH!. Errrr.....Hi Blizz, the most awesomeful person in da world. Hiya! *hides gun behind back*
Seox, I expect you to try this. It'll be very good for you as a scripter. >=V
Just kidding. But, you should take a shot at it; just add a message window command (\g, \c, etc) that makes everything until the next instance of that command be translated.
This really isn't too hard.
You'd just need to tell which string is in Al Bhed, then split that string into individual letters, then if the letter is learned, pass it through a case statement that will spit out the unciphered letter, then put the string back together, and display it XD
I might make this for fun... o.o
So, if i understand Aqua correctly, with a proper script, i just need 26 switches. One for each letter...
Let´s mark this a official request then, shant we? (is that even a proper word :P, well, i mean by that slaa we not... :P)
You don't need any switches, just a case statement.
No, if you use a script, you should only need to start messages with a shortcut type thing.
IE
\albhed[So, you want to know what color my underwear is?]
And it would do everything else for you. No switches. No variables. No hassle. There are some things money can't buy. For everything else, there's mastercard.
Ya know, if Aqua doesn't do this, I will. Thanks, Longfellow ^_^
EDIT:
Ok, I've talked with Aqua, and I'm going to attempt this myself. Gimme a bit of time, I have a bit of a queue to work through >.<. Should be able to start within a few days. ^_^
Quote from: Hellfire Dragon on July 14, 2009, 10:43:48 am
This is what I found (http://rpgmxpstudio.pellnet.ch/lataverne/viewtopic.php?t=1356)
Though that's definetly not the one I was thinking about... :<_<:
Well, there is Seph's Multiple Languages Script (http://rmrk.net/index.php?action=dlattach;topic=14223.0;attach=3339) but that needs the SDK.
Quote from: Blizzard @http://rmrk.net/index.php/topic,14223.msg181545.html#msg181545
Post Seph's script, I'll make it non-SDK.
(Lol, I always wanted to say that! ^__^ )
The lies Blizzy >:( (unless you already did :P)
Lol, how old is that post? xD
Over 2 years old
Quote
March 23, 2007, 04:03:50 AM
You'd think 2 years would be enough for blizz to finish a script :O.o: :V: :xD:
:P
I'll do it somewhere later today if I can find the time.
EDIT: Here it is without AIDS. I mean SDK. It wasn't really dependant on SDK, it was just a bit badly coded.
#==============================================================================
# ** Multiple Languages
#------------------------------------------------------------------------------
# SephirothSpawn
# Version 2
# 2006-08-27
#------------------------------------------------------------------------------
# * Version History :
#
# Version 1 ---------------------------------------------------- (2005-09-04)
# - Note : 99% of the System Created By Makeamidget
# Version 2 ---------------------------------------------------- (2006-08-27)
# - Update : Rescripted Entire System System
#------------------------------------------------------------------------------
# * Description :
#
# This script was designed to let you simulate multiple languages through
# letter transfers. It allows you to transfer one letter to another, until
# you learn the letter (One Letter = Another Letter). You can set up
# multiple languages and control color of known and unknown letters for
# each language.
#------------------------------------------------------------------------------
# * Instructions :
#
# Place The Script Below the SDK and Above Main.
#
# Turning on Different Language:
# - $game_languages.language_id = language_id
#
# Turning off multiple langauges:
# - $game_languages.language_id = nil
#
# To Learn a letter, use:
# - $game_languages.learn_letter(language_id, 'letter')
#
# ** NOTE: Due to the complexity of message systems, you cannot use special
# commands such as the show gold window when displaying an alternate language
#------------------------------------------------------------------------------
# * Setting Up A Language
#
# Setting Color for Known and Unknown letters
# - Known_Letter_Color = {language_id => text_color, ...}
# - Unknown_Letter_Color = {language_id => text_color, ...}
#
# Setting Up Language Table
# - Languages = {language_id => <language_table>, ...}
#
# <language_table> is a hash of all letters and symbols that will transfer
# to something else. The keys are what the letter is, and the values are
# how the letters will appear until translated.
#
# Example:
# {'a' => 'j', 'b' => 'k', 'c' => 'l', 'd' => 'm', 'e' => 'n'}
#
# CbaEBac -> LkjNKjl
#------------------------------------------------------------------------------
# * Credits :
#
# Thanks To Makeamidget For helping me with previous versions
#==============================================================================
#==============================================================================
# ** Game_Languages
#==============================================================================
class Game_Languages
#--------------------------------------------------------------------------
# * Letter Colors
#
# ~ language_id => text_colors
#
# The Text Colors are the colors you would use when you use \c[n].
# By Default, these are the colors:
#
# 0 : White 1 : Dark Blue
# 2 : Red 3 : Green
# 4 : Light Blue 5 : Purple
# 6 : Yellow 7 : Gray
#--------------------------------------------------------------------------
Known_Letter_Color = {
1 => 0
}
Unknown_Letter_Color = {
1 => 6
}
#--------------------------------------------------------------------------
# * Languages
#
# ~ language_id => {a => 'f', 'b' => 'c', ...}
#
# * Template For Letters
# = {'a' => '', 'b' => '', 'c' => '', 'd' => '', 'e' => '',
# 'f' => '', 'g' => '', 'h' => '', 'i' => '', 'j' => '',
# 'k' => '', 'l' => '', 'm' => '', 'n' => '', 'o' => '',
# 'p' => '', 'q' => '', 'r' => '', 's' => '', 't' => '',
# 'u' => '', 'v' => '', 'w' => '', 'x' => '', 'y' => '',
# 'z' => ''}
#--------------------------------------------------------------------------
Languages = {
1 => {'a' => 'y', 'b' => 'p', 'c' => 'l', 'd' => 't', 'e' => 'a',
'f' => 'v', 'g' => 'k', 'h' => 'r', 'i' => 'e', 'j' => 'z',
'k' => 'g', 'l' => 'm', 'm' => 's', 'n' => 'h', 'o' => 'u',
'p' => 'b', 'q' => 'x', 'r' => 'n', 's' => 'c', 't' => 'd',
'u' => 'i', 'v' => 'v', 'w' => 'f', 'x' => 'q', 'y' => 'o',
'z' => 'w'
}
}
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :language_id
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@language_id = nil
@known_letters = {}
end
#--------------------------------------------------------------------------
# * Learn Letter
#--------------------------------------------------------------------------
def learn_letter(language_id, letter)
unless @known_letters.has_key?(language_id)
@known_letters[language_id] = []
end
unless @known_letters[language_id].include?(letter.downcase)
@known_letters[language_id] << letter.downcase
end
end
#--------------------------------------------------------------------------
# * Change To Language
#--------------------------------------------------------------------------
def change_to_language
return_text = ''
text = $game_temp.message_text
last_color = 0
begin
while ((c = text.slice!(/./m)) != nil)
if @known_letters.has_key?(@language_id)
if @known_letters[@language_id].include?(c.downcase)
next_color = Known_Letter_Color[@language_id]
unless next_color == last_color
last_color = next_color
return_text += '\c' + "[#{next_color}]"
end
return_text += c
next
end
end
if Languages[@language_id].include?(c.downcase)
if c.upcase == c
c = Languages[@language_id][c.downcase].upcase
else
c = Languages[@language_id][c]
end
end
next_color = Unknown_Letter_Color[@language_id]
unless next_color == last_color
last_color = next_color
return_text += '\c' + "[#{next_color}]"
end
return_text += c
end
end
$game_temp.message_text = return_text
end
end
#==============================================================================
# ** Window_Message
#==============================================================================
class Window_Message
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_wdmsg_refresh refresh
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
# If Alternate Languages Isn't Nil
unless $game_languages.language_id.nil?
$game_languages.change_to_language
end
# Original Method Refresh
seph_gmlngs_wdmsg_refresh
end
end
#==============================================================================
# ** Scene_Title
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_scnttl_cng command_new_game
#--------------------------------------------------------------------------
# * Command : New Game
#--------------------------------------------------------------------------
def command_new_game
# Original Command New Game
seph_gmlngs_scnttl_cng
# Creates Game Languages Game Data
$game_languages = Game_Languages.new
end
end
#==============================================================================
# ** Scene_Save
#==============================================================================
class Scene_Save
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_scnsave_wd write_save_data
#--------------------------------------------------------------------------
# * Command : New Game
#--------------------------------------------------------------------------
def write_save_data(file)
# Original Write Data
seph_gmlngs_scnsave_wd(file)
# Saves Game Languages Data
Marshal.dump($game_languages, file)
end
end
#==============================================================================
# ** Scene_Load
#==============================================================================
class Scene_Load
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_scnload_rd read_save_data
#--------------------------------------------------------------------------
# * Command : New Game
#--------------------------------------------------------------------------
def read_save_data(file)
# Original Write Data
seph_gmlngs_scnload_rd(file)
# Saves Game Languages Data
$game_languages = Marshal.load(file)
end
end
Quote from: Blizzard on July 15, 2009, 07:14:33 am
I'll do it somewhere later today if I can find the time.
EDIT: Here it is without AIDS. I mean SDK. It wasn't really dependant on SDK, it was just a bit badly coded.
#==============================================================================
# ** Multiple Languages
#------------------------------------------------------------------------------
# SephirothSpawn
# Version 2
# 2006-08-27
#------------------------------------------------------------------------------
# * Version History :
#
# Version 1 ---------------------------------------------------- (2005-09-04)
# - Note : 99% of the System Created By Makeamidget
# Version 2 ---------------------------------------------------- (2006-08-27)
# - Update : Rescripted Entire System System
#------------------------------------------------------------------------------
# * Description :
#
# This script was designed to let you simulate multiple languages through
# letter transfers. It allows you to transfer one letter to another, until
# you learn the letter (One Letter = Another Letter). You can set up
# multiple languages and control color of known and unknown letters for
# each language.
#------------------------------------------------------------------------------
# * Instructions :
#
# Place The Script Below the SDK and Above Main.
#
# Turning on Different Language:
# - $game_languages.language_id = language_id
#
# Turning off multiple langauges:
# - $game_languages.language_id = nil
#
# To Learn a letter, use:
# - $game_languages.learn_letter(language_id, 'letter')
#
# ** NOTE: Due to the complexity of message systems, you cannot use special
# commands such as the show gold window when displaying an alternate language
#------------------------------------------------------------------------------
# * Setting Up A Language
#
# Setting Color for Known and Unknown letters
# - Known_Letter_Color = {language_id => text_color, ...}
# - Unknown_Letter_Color = {language_id => text_color, ...}
#
# Setting Up Language Table
# - Languages = {language_id => <language_table>, ...}
#
# <language_table> is a hash of all letters and symbols that will transfer
# to something else. The keys are what the letter is, and the values are
# how the letters will appear until translated.
#
# Example:
# {'a' => 'j', 'b' => 'k', 'c' => 'l', 'd' => 'm', 'e' => 'n'}
#
# CbaEBac -> LkjNKjl
#------------------------------------------------------------------------------
# * Credits :
#
# Thanks To Makeamidget For helping me with previous versions
#==============================================================================
#==============================================================================
# ** Game_Languages
#==============================================================================
class Game_Languages
#--------------------------------------------------------------------------
# * Letter Colors
#
# ~ language_id => text_colors
#
# The Text Colors are the colors you would use when you use \c[n].
# By Default, these are the colors:
#
# 0 : White 1 : Dark Blue
# 2 : Red 3 : Green
# 4 : Light Blue 5 : Purple
# 6 : Yellow 7 : Gray
#--------------------------------------------------------------------------
Known_Letter_Color = {
1 => 0
}
Unknown_Letter_Color = {
1 => 6
}
#--------------------------------------------------------------------------
# * Languages
#
# ~ language_id => {a => 'f', 'b' => 'c', ...}
#
# * Template For Letters
# = {'a' => '', 'b' => '', 'c' => '', 'd' => '', 'e' => '',
# 'f' => '', 'g' => '', 'h' => '', 'i' => '', 'j' => '',
# 'k' => '', 'l' => '', 'm' => '', 'n' => '', 'o' => '',
# 'p' => '', 'q' => '', 'r' => '', 's' => '', 't' => '',
# 'u' => '', 'v' => '', 'w' => '', 'x' => '', 'y' => '',
# 'z' => ''}
#--------------------------------------------------------------------------
Languages = {
1 => {'a' => 'y', 'b' => 'p', 'c' => 'l', 'd' => 't', 'e' => 'a',
'f' => 'v', 'g' => 'k', 'h' => 'r', 'i' => 'e', 'j' => 'z',
'k' => 'g', 'l' => 'm', 'm' => 's', 'n' => 'h', 'o' => 'u',
'p' => 'b', 'q' => 'x', 'r' => 'n', 's' => 'c', 't' => 'd',
'u' => 'i', 'v' => 'v', 'w' => 'f', 'x' => 'q', 'y' => 'o',
'z' => 'w'
}
}
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :language_id
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@language_id = nil
@known_letters = {}
end
#--------------------------------------------------------------------------
# * Learn Letter
#--------------------------------------------------------------------------
def learn_letter(language_id, letter)
unless @known_letters.has_key?(language_id)
@known_letters[language_id] = []
end
unless @known_letters[language_id].include?(letter.downcase)
@known_letters[language_id] << letter.downcase
end
end
#--------------------------------------------------------------------------
# * Change To Language
#--------------------------------------------------------------------------
def change_to_language
return_text = ''
text = $game_temp.message_text
last_color = 0
begin
while ((c = text.slice!(/./m)) != nil)
if @known_letters.has_key?(@language_id)
if @known_letters[@language_id].include?(c.downcase)
next_color = Known_Letter_Color[@language_id]
unless next_color == last_color
last_color = next_color
return_text += '\c' + "[#{next_color}]"
end
return_text += c
next
end
end
if Languages[@language_id].include?(c.downcase)
if c.upcase == c
c = Languages[@language_id][c.downcase].upcase
else
c = Languages[@language_id][c]
end
end
next_color = Unknown_Letter_Color[@language_id]
unless next_color == last_color
last_color = next_color
return_text += '\c' + "[#{next_color}]"
end
return_text += c
end
end
$game_temp.message_text = return_text
end
end
#==============================================================================
# ** Window_Message
#==============================================================================
class Window_Message
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_wdmsg_refresh refresh
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
# If Alternate Languages Isn't Nil
unless $game_languages.language_id.nil?
$game_languages.change_to_language
end
# Original Method Refresh
seph_gmlngs_wdmsg_refresh
end
end
#==============================================================================
# ** Scene_Title
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_scnttl_cng command_new_game
#--------------------------------------------------------------------------
# * Command : New Game
#--------------------------------------------------------------------------
def command_new_game
# Original Command New Game
seph_gmlngs_scnttl_cng
# Creates Game Languages Game Data
$game_languages = Game_Languages.new
end
end
#==============================================================================
# ** Scene_Save
#==============================================================================
class Scene_Save
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_scnsave_wd write_save_data
#--------------------------------------------------------------------------
# * Command : New Game
#--------------------------------------------------------------------------
def write_save_data(file)
# Original Write Data
seph_gmlngs_scnsave_wd(file)
# Saves Game Languages Data
Marshal.dump($game_languages, file)
end
end
#==============================================================================
# ** Scene_Load
#==============================================================================
class Scene_Load
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_scnload_rd read_save_data
#--------------------------------------------------------------------------
# * Command : New Game
#--------------------------------------------------------------------------
def read_save_data(file)
# Original Write Data
seph_gmlngs_scnload_rd(file)
# Saves Game Languages Data
$game_languages = Marshal.load(file)
end
end
I'm powering you up, JUST FOR SAYING THAT.
With real AIDS, you can't get rid of it. At least with RGSSAIDS, you can. Hurray, CTRL + A + Delete!
Which is really quite ironic. Now you're going from lv 270 to 271. I just ruined a rifle round, and I'm the ballistics maven.
:/
Powers/levels up (one up something eh, ;))
Thank you Blizzard. You´re a scripting god!
Quote from: Pyhankoski on July 16, 2009, 03:32:10 am
Powers/levels up (one up something eh, ;))
Thank you Blizzard. You´re a scripting god!
That's demeaning. He's better than
A scripting god. He's
THE scripting god. :haha:
Eh, ok, let's lock this topic before it gets spammed more since the problem has already been solved.