
alias_method :seph_btmem_scnbtl_ssws, :start_switch_select
text = b[1] > 0 ? 'Equipping ' : 'Removing '
if b[1] < 1
text += b[0] == 0 ? $data_system.words.weapon : eval("$data_system.words.armor#{b[1]}")
elsif b[0] == 0
text += $data_weapons[b[1]].name
else
text += $data_armors[b[1]].name
end
@help_window.set_text(text, 1)
Script 'RMXP SDK2 Part 1' line 411: TypeError occurred.
cannot convert Symbol into String
#--------------------------------------------------------------------------
# * Check for Aliases
#
# Value = [classname, methodname]
#--------------------------------------------------------------------------
def self.check_for_aliases(value)
# Check If Method Ever Aliased
@aliases.each do |script, list|
# Pass Through Alias List
list.each do |con|
# If Class & Method Match
if con[0] == value[0] && con[1] == value[1]
# Print Error
p 'The following script will not work : ' + script,
'Reason : The (' + @last_script + ') overwrites the method ' +
value[1].to_s + ' aliased from ' + "#{con[1]} to #{con[2]}" +
'found in class ' + value[0]
end
end
end
..........
# We will use the point slope formula for the enemy stats since its just simple
# Point Slope (Type : 0) (Args : min_level, max_level, start value, inflation)
# Enemy 5
# Hp - Min Level : 1, Max Level : 99, Start Value : 500, Inflation : 150
# Sp - 1, 99, 200, 75
# Str - 1, 99, 50, 10
# Dex - 1, 99, 50, 10
# Agi - 1, 99, 50, 10
# Int - 1, 99, 50, 10
# I can do more stats, but you get the idea.
# Below this line
Stats = {}
# Add this:
Stats[5] = {}
Stats[5]['hp'] = [0, 1, 99, 500, 150]
Stats[5]['sp'] = [0, 1, 99, 200, 75]
Stats[5]['str'] = [0, 1, 99, 50, 10]
Stats[5]['dex'] = [0, 1, 99, 50, 10]
Stats[5]['agi'] = [0, 1, 99, 50, 10]
Stats[5]['int'] = [0, 1, 99, 50, 10]
SephirothSpawn;253758 said:If you can give me some exact setup to what you are looking for for enemies stats to be, I can give you some sample setup.
If you need the curve generator setup, click me
For example:
Code:# We will use the point slope formula for the enemy stats since its just simple # Point Slope (Type : 0) (Args : min_level, max_level, start value, inflation) # Enemy 5 # Hp - Min Level : 1, Max Level : 99, Start Value : 500, Inflation : 150 # Sp - 1, 99, 200, 75 # Str - 1, 99, 50, 10 # Dex - 1, 99, 50, 10 # Agi - 1, 99, 50, 10 # Int - 1, 99, 50, 10 # I can do more stats, but you get the idea. # Below this line Stats = {} # Add this: Stats[5] = {} Stats[5]['hp'] = [0, 1, 99, 500, 150] Stats[5]['sp'] = [0, 1, 99, 200, 75] Stats[5]['str'] = [0, 1, 99, 50, 10] Stats[5]['dex'] = [0, 1, 99, 50, 10] Stats[5]['agi'] = [0, 1, 99, 50, 10] Stats[5]['int'] = [0, 1, 99, 50, 10]
You just do that for your enemies. Just toy around with the values until you find something you like.
the event sound script is awesome, although it would be even better if it allowed the user to add info on the pitch too. Either way im using this for definate. it would work so well for a market place
Im still worried about moving to SDK 2+ as i'm still using SDk 1.5 scripts, with the main one being action battlers. I have yet to try all my used scripts with the new SDK's (although the idea of using those seperate files for them is pretty cool); but i hope they all work.
Just a quick question on the SDK file things used in your test bed demo. Do these contain all the parts neccessary, so i dont have to worry about what SDK parts are required if i have those SDK data files (RSC hidden files)?
Oh and im realy happy to see a fix on the quick treasure chest script and the additon of a worldmap teleporter (although you didnt provide an event to activate the world map, i created an event anyways and was surprised how easy it was to call it although im a little confused on how to toggle the auto scroll mode).
However, when im using the manual mode on the world map, when i reach the edge of the screen, the world map does not scroll
Anyways, im pretty excited about implementing the world map script, especially since it allows for multiple world maps
thanks again.
Here are my questions:
1. Is that curve generator you just linked to required for this script to function properly, or does it add any benefits to this script? As I mentioned before, I'm not a scripter so please forgive me ignorance.
2. As you asked for a more exact set up, how would one, for example, do the statistics for the default RTP ghost and basalisk*- using their default statistics and giving them a medium ... er... experience curve, I suppose you'd call it. As in not a steep change from level to level but not an overly gentle one, a happy middle.
3. what does the 5 in "Stats[5]" signify? Everything else I can pretty much understand (or I think I do). Actually, let me tell you how I understand it just in case I have it wrong:
[0, 1, 99, 500, 150]
For the HP, the 1 means minimum or base level, the 99 means the highest level the monster can reach, 500 is it's base health, 150 is by how much it's health will increase per level. I don't know what the 0 signifies, if anything.
4. Using this script, does every monster in the database require an entry like the one you demo'd in the script, or...? I'd assume not, seeing as their is a tidbit of script mentioning defaults, as well as another mentioning listing monsters not effected by the script.
5. How does this script interact with the values entered in the monster database? I assume in cases where the script is asked to ignore certain monsters that the database statistics are then used, but what of for monsters that have entries in the script about them? Do their database statistics factor in at any time or is it all done by the script?
Anyway, I believe I've asked more then enough questions now. Thank you for your helpfulness so far, I greatly appreciate it.
*I ask for two as I wish to see the difference between the two monsters and how they would be listed in the script.
Mr.Seph. im going to say this with all the respect of the world..
What happen to the Famous Ocarina Player and the Most waiting script Map Object Manager?? (in the beta you say that these will be released)...
(i cant sleep all the elapsed time between the TB3 and 4...)
Its only a question from This server.
______________________________
in any case, Great work with the test bed, and i'll waiting for all your releases and updates.!
Good Luck!
#---------------------------------------------------------------------
# * Draw Actor Information
#---------------------------------------------------------------------
def draw_actor_information(actor, y)
# If Nil Actor
if actor.nil?
# Sets Font
self.contents.font.color = disabled_color
# Draws Empty Sprite
self.contents.draw_anim_sprite(0, y, 48, 64,
Game_Party::EmptySlot_CharacterFile, 0)
# Draws Empty Postition Text
self.contents.draw_text(32, y, 256, 64, Game_Party::EmptySlot_Word, 1)
return
end
# Sets Font
self.contents.font.color = normal_color
# Draws Actor Sprite
self.contents.draw_anim_sprite(0, y, 48, 64, actor.character_name,
actor.character_hue)
# Draws Actor Name, Class & Level
self.contents.draw_text(48, y, 224, 32, actor.name)
self.contents.draw_text(92, y, 224, 32,
"#{actor.class_name}", 1)
self.contents.draw_text(48, y+24, 250, 32,
"Level - #{actor.level}", 1)
# Draws Actor Experience
self.contents.font.color = system_color
self.contents.draw_text(48, y + 32, 224, 24, 'Exp')
self.contents.font.color = normal_color
self.contents.draw_text(48, y + 32, 224, 24, actor.exp_s, 2)
l, c, n = actor.last_exp, actor.exp, actor.next_exp_s.to_i
self.contents.draw_slant_bar(138, y + 56, (c - l), (n - l), 128, 6)
end
# Draws Actor Name, Class & Level
self.contents.draw_text(48, y, 224, 32, actor.name)
self.contents.draw_text(92, y, 224, 32,
"#{actor.class_name}", 1)
self.contents.draw_text(48, y+24, 250, 32,
"Level - #{actor.level}", 1)
# Finds Item Max
list.each do |sub_list|
if sub_list.is_a?(Hash)
item_max += sub_list.keys.size
else
item_max += 1
end
end
# If Item Max is 0
SephirothSpawn;254602 said:1. Yes, the curve generator is required, but the curve generator is included in the MACL, so all you need is the 2.1 version or the MACL.
2. You could more or less just use the point slope formula (this script randomizes stats, so it would still be unique stats). You just need to come up with a decent base value and growth value per level. Just try out values. If you have exact numbers and don't know how to set them up, I can show you how, but I don't know the values myself. It all depends on your stats in your game.
3. The [5] chooses the enemy. Stats[enemy_id] = {} followed by lines with Stats[enemy_id]['stat'] = curve_data is just a simple way to modify them. The 0 is just the first value passed to the curve generator, which is the curve type (there are 3 types).
4. Yes, you need to specify each enemy or create a default to the Stats hash. I am going to make a copy and paste addition that gives an easy setup for the default enemies. I will add this in tomorrow's release, but it is just going to be for the default database.
5. It doesn't effect the stats in the database, just ignores them. You can still read them, but the stats are ignored completely unless you set them as an enemy that isn't effected by this script.
SephirothSpawn;254923 said:@Deebs: Sure thing. I might make a little addon, that reads the values from the database as base values, and you just need to give them growth values. That should make things workable for people who don't like over-complexing things like me. I just like to give you options. 8-)
#==============================================================================
# ** Multiple Languages
#------------------------------------------------------------------------------
# SephirothSpawn
# Version 2.1
# 2007-03-02
# SDK : Version 2.0+, Part I & III
#------------------------------------------------------------------------------
# * 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
# Version 2.1 ------------------------------------------------- (2007-03-02)
# - Update : Updated to SDK 2.0
#------------------------------------------------------------------------------
# * 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
#==============================================================================
#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log('Multiple Languages', 'SephirothSpawn', 2.1, '2007-03-02')
SDK.check_requirements(2.0, [3])
#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.enabled?('Multiple Languages')
#==============================================================================
# ** 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
}
#--------------------------------------------------------------------------
# * Language Tables
#
# ~ 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 = {}
@known_letters.default = []
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_method :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_method :seph_gmlngs_scnttl_cnggd, :commandnewgame_gamedata
#--------------------------------------------------------------------------
# * Command : New Game - Game Data
#--------------------------------------------------------------------------
def commandnewgame_gamedata
# Original Command New Game
seph_gmlngs_scnttl_cnggd
# Creates Game Languages Game Data
$game_languages = Game_Languages.new
end
end
#==============================================================================
# ** Scene_Save
#==============================================================================
class Scene_Save
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias_method :seph_gmlngs_scnsave_wd, :write_data
#--------------------------------------------------------------------------
# * Write Data
#--------------------------------------------------------------------------
def write_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_method :seph_gmlngs_scnload_rd, :read_data
#--------------------------------------------------------------------------
# * Read Data
#--------------------------------------------------------------------------
def read_data(file)
# Original Write Data
seph_gmlngs_scnload_rd(file)
# Saves Game Languages Data
$game_languages = Marshal.load(file)
end
end
#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end