It worked! Thanx so much! Thats been bugging me for days.
One other thing though, I want to learn scripting, and atm I'm a complete noob at it. What kind of scripting is it? And where should I start?
It's Ruby. And: http://rmrk.net/index.php/topic,1723.0.html
Also, I think GubiD made some tutorials and I'm sure that would be a good resource (so check on hbgames.org). There are also some script-related tutorials in the Tutorials Database (http://rmrk.net/index.php/board,106.0.html), though they are few and I wouldn't say for beginners (at least none that I've seen/remember).
And you could always try just going into the default scripts and playing around with them.
Thanx MA. Always there to help. That'll definitely help. I'm gonna start going through the link first, and then just playing around with it for a while. Gonna be awesome.
I made a really bad simple tutorial going from the basics up of Ruby.
http://rmrk.net/index.php/topic,43380.0.html (http://rmrk.net/index.php/topic,43380.0.html)
And GubuD's tutorials are handy, but there are some small mistakes in them.
UI'm trying to install RUBY, but it says I need RVM, but that doesn't install unless I have Unix systems, so it wants me to install cygwin... well I cant seem to do that. Any help? maybe we can make this simpler? I don't know what to do when the installers give me a piece of a script and say this is how to install it.
You can just use the Script Editor in your RM game. You don't need Ruby. Ruby is just the language used. But if you're writing RM scripts, then you're better off writing them in the Script Editor of RM since that way you can make use of the library.
The library?
Oh and I've been looking for a better victory aftermath script, and I think I found a very good one, but it doesn't seem to work for me. The yanfly one. Dyou know of it? All of it's links are broken on all of the sites I see it at, and none of the pictures work. It's in the scripting index. Any idea what I can do for that? Or to find a reasonable replacement?
You can get it here: http://rmrk.net/index.php/topic,42396.0.html
Awesome thanx, but why wont it work? I even threw the compatibility script just to make sure and it keeps spitting back a syntax error at line 130, which is an end. It gives me this error before I even get to the title screen. Any idea how I can fix that?
You weren't very clear that the script wasn't working - I thought you were referring just to links to it being broken.
Anyway, line 130 of the version of YEM Victory Aftermath I have isn't an end, so I would need to see your copy of the script before I could tell you how to fix it.
Normally, a syntax error at an end would mean that you are missing other ends or you have too many ends, but that would usually be a copying error and it would be the end of the script, and Victory Aftermath is way longer than 130 lines.
Anyway, post the script you're using and I'll take a look.
It sounds more likely to be a missing closing bracket like a ) or a }.
It's this specific part of the coding. It says syntax error line 130.
#===========================================================================
# Audio Settings
# --------------------------------------------------------------------------
# This part of the module adjusts everything that's audio related. Be sure
# to modify them accordingly.
#===========================================================================
# This victory BGM will play once the fanfare finishes.
BGM = RPG::BGM.new("Field1", 100, 100)
# This sound adjusts the ticking noise that occurs as the experience bar
# goes upward. Adjust it accordingly.
TICK_SOUND = RPG::SE.new("Decision1", 80, 100)
# The following adjusts how long to play the Victory ME after finishing
# battle in milliseconds (if it is still continuing).
FANFARE_FADE = 1000
# This is the level up sound that plays when an actor levels up.
LEVEL_SOUND = RPG::SE.new("Flash1", 100, 100)
# This is the sound that will play if items were found.
ITEM_SOUND = RPG::SE.new("Item1", 80, 100)
end
end
I need more than that. Give me the whole script, or at least everything above the line that throws the error. And put it between code tags. IE:
[code]
[/code]
# --------------------------------------------------------------------------
# The following below will adjust the basic settings and vocabulary that
# will display throughout the script. Change them as you see fit.
#===========================================================================
# This is how many frames to wait before displaying the victory aftermath
# scene on the screen.
WAIT = 60
# The following adjusts the two switches that are associated with this
# script so bind them accordingly. Bypassing the BGM will cause no BGM
# change from battle start to end. Skip victory switch will cause the
# victory display portion to be ignored (but gaining EXP and such will
# still occur).
BYPASS_BGM_SWITCH = 4
SKIP_VICTORY_SWITCH = 5
# This hash adjusts the vocabulary used throughout the script.
VOCAB ={
:top_message => "Battle Results",
:gold_found => "Found %s Gold",
:exp_receive => "Earned %s EXP",
:percent_exp => "%1.2f%%",
:next_level => "To Level %s",
:max_level => "Max Level",
:next_exp => "%s EXP",
:level_up => "LEVELS UP",
:to_level => "to Level %s",
:level_msg => "%s has reached level %s!",
:next_stat => "?",
:new_skills => "Skills Acquired",
:spoils => "Victory Spoils",
:no_items => "No items were found.",
:found_items => "%s has found items!",
:item_amount => "×%2d",
} # Do not remove this.
# This determines the gauge information for the victory screens.
FACE_OPACITY = 200 # This adjusts the opacity of the actor's faces
EXP_TICKS = 10 # This is how many ticks it takes to fill the gauge.
EXP_GAUGE_1 = 28 # Experience gauge colour 1 for non-leveled characters.
EXP_GAUGE_2 = 29 # Experience gauge colour 2 for non-leveled characters.
EXP_FONT_SIZE = 18 # Font size used for experience gauge.
LVL_COLOUR = 6 # Text colour used for leveling up.
LVL_GAUGE_1 = 20 # Experience gauge colour 1 for leveled characters.
LVL_GAUGE_2 = 21 # Experience gauge colour 2 for leveled characters.
#===========================================================================
# Experience Settings
# --------------------------------------------------------------------------
# The following below allows you to adjust the amount of experience each
# actor will earn and the rules that govern the experience gained.
#===========================================================================
# If any allies are dead, are they allowed to gain EXP?
DEAD_ALLY_EXP = false
# Do you want the game to scale the experience based on how many actors are
# in the party? This means actors can earn more or less.
PARTY_SPLIT_EXP = false
PARTY_SIZE_SCALING ={
1 => 1.000, # If one actor is active.
2 => 0.500, # If two actors are active.
3 => 0.334, # If three actors are active.
4 => 0.250, # If four actors are active.
5 => 0.200, # If five actors are active.
6 => 0.167, # If six actors are active.
7 => 0.143, # If seven actors are active.
8 => 0.125, # If eight actors are active.
} # Do not remove this.
# The following will determine how HP and MP recovery is calculated upon
# leveling up. 0 - no change. 1 - difference from max. 2 - full recovery.
HP_RECOVERY = 2 # Adjusts HP Recovery Style
MP_RECOVERY = 1 # Adjusts MP Recovery Style
#===========================================================================
# Level Settings
# --------------------------------------------------------------------------
# The following below allows you to adjust the amount of experience each
# actor will earn and the rules that govern the experience gained.
#===========================================================================
# The following array determines which stats will be shown with level up
# increases and also what order. Only the following can be used.
# :maxhp, :maxmp, :atk, :def, :spi, :res, :dex, :agi
SHOWN_STATS = [:maxhp, :maxmp, :atk, :def, :spi, :res, :dex, :agi]
# The following hash adjusts the colours used to display each of the
# various objects inside of the level window.
LEVEL_COLOURS ={
:stat_name => 4, # The stat's name.
:arrow => 4, # Arrow in between the old and new stats.
:old_stat => 5, # The older unleveled stat.
:new_stat => 6, # The newer leveled stat.
} # Do not remove this.
# Changing the following value to an icon ID will change the ? arrow to use
# an icon instead. i.e. ARROW_ICON = 142
ARROW_ICON = nil
# Changing the following below will show the change in stat difference from
# the old stat to the new stat rather than just showing the new stat.
SHOW_DIFFERENCE = true
#===========================================================================
# Audio Settings
# --------------------------------------------------------------------------
# This part of the module adjusts everything that's audio related. Be sure
# to modify them accordingly.
#===========================================================================
# This victory BGM will play once the fanfare finishes.
BGM = RPG::BGM.new("Field1", 100, 100)
# This sound adjusts the ticking noise that occurs as the experience bar
# goes upward. Adjust it accordingly.
TICK_SOUND = RPG::SE.new("Decision1", 80, 100)
# The following adjusts how long to play the Victory ME after finishing
# battle in milliseconds (if it is still continuing).
FANFARE_FADE = 1000
# This is the level up sound that plays when an actor levels up.
LEVEL_SOUND = RPG::SE.new("Flash1", 100, 100)
# This is the sound that will play if items were found.
ITEM_SOUND = RPG::SE.new("Item1", 80, 100)
end
end
#===============================================================================
# Lunatic Mode - Victory Aftermath
# -----------------------------------------------------------------------------
# This mode allows you to add in a bit more of a personal touch to your game by
# adding in victory battle quotes. If they're on, actors who were participating
# in battle can brief the victory spoils and whatnot.
#
# To use this mode, bind each actor to a common event ID. Those common events
# will play out the messages written for them. However, to distinguish when to
# display each message, use conditional branches with a script value check.
# Insert the following into your script value checks:
#
# victory_quote("Main") Occurs at the first page of victory.
# victory_quote("JP") Requires YEZ Job System: Base.
# victory_quote("Level") Occurs when leveling up your character.
# victory_quote("Skill") Occurs when leveling up and learning a skill.
# victory_quote("Nothing") Occurs when no drops are found.
# victory_quote("Drops") Occurs if the enemy has left drops.
#
# When displaying the message events, a few new text shortcuts should be taken
# note of. They are the two following:
#
# \VN This displays the talking actor's name.
# \VF This displays the talking actor's face.
#
# Anything else in the common event will run normally.
#===============================================================================
module YEZ::VICTORY
# If this is enabled, victory quotes will occur instead of the typical
# battle end messages.
ENABLE_QUOTES = true
# The following hash determines which common event ID's are bound to which
# actors when their victory quotes are to be launched.
ACTOR_QUOTES ={ # Actor 0 is the actor used for unlisted actors.
# ActorID => Common Event ID
0 => 20, # Common Victory Quotes
1 => 21, # Ralph's Victory Quotes
2 => 22, # Ulrika's Victory Quotes
3 => 23, # Bennett's Victory Quotes
4 => 24, # Ylva's Victory Quotes
5 => 25, # Lawrence's Victory Quotes
6 => 26, # Oscar's Victory Quotes
7 => 27, # Vera's Victory Quotes
8 => 28, # Elmer's Victory Quotes
} # Do not remove this.
end # YEZ::VICTORY
#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================
#===============================================================================
# Game_Temp
#===============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :victory_actor
attr_accessor :victory_quote
attr_accessor :victory_clone
end # Game_Temp
#===============================================================================
# Game_Actor
#===============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# new method: learned_skills
#--------------------------------------------------------------------------
def learned_skills
result = []
for i in @skills
result.push($data_skills[i])
end
return result
end
#--------------------------------------------------------------------------
# new method: now_exp
#--------------------------------------------------------------------------
def now_exp
return @exp - @exp_list[@level]
end
#--------------------------------------------------------------------------
# new method: next_exp
#--------------------------------------------------------------------------
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end # Game_Actor
#==============================================================================
# Game_Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# victory_quote
#--------------------------------------------------------------------------
def victory_quote(text)
return false unless $game_temp.in_battle and $scene.is_a?(Scene_Battle)
return false if $game_temp.victory_quote == nil
return true if text.upcase == $game_temp.victory_quote
return false
end
end # Game_Interpreter
#===============================================================================
# Scene Map
#===============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# alias method: call battle
#--------------------------------------------------------------------------
alias call_battle_va call_battle unless $@
def call_battle
if $game_switches[YEZ::VICTORY::BYPASS_BGM_SWITCH]
@spriteset.update
Graphics.update
$game_player.make_encounter_count
$game_player.straighten
$game_temp.map_bgm = RPG::BGM.last
$game_temp.map_bgs = RPG::BGS.last
Sound.play_battle_start
$game_temp.next_scene = nil
$scene = Scene_Battle.new
else
call_battle_va
end
end
end # Scene Map
#===============================================================================
# Scene_Battle
#===============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# alias method: terminate
#--------------------------------------------------------------------------
alias terminate_va terminate unless $@
def terminate
@top_window.dispose if @top_window != nil
@exp_window.dispose if @exp_window != nil
@gold_window.dispose if @gold_window != nil
@exp_back_window.dispose if @exp_back_window != nil
@exp_front_window.dispose if @exp_front_window != nil
@drops_window.dispose if @drops_window != nil
terminate_va
end
#--------------------------------------------------------------------------
# overwrite method: process_victory
#--------------------------------------------------------------------------
def process_victory
wait(YEZ::VICTORY::WAIT, true)
@info_viewport.visible = false
if $imported["BattleEngineZealous"]
@message_window.dispose
@message_window = Window_BattleMessage.new
elsif $imported["VictoryCompatibility"]
@message_window.dispose
@message_window = Window_BattleMessageCompatible.new
end
@message_window.visible = true
unless $game_switches[YEZ::VICTORY::BYPASS_BGM_SWITCH]
RPG::BGM.stop
$game_system.battle_end_me.play
YEZ::VICTORY::BGM.play unless YEZ::VICTORY::BGM == nil
end
create_victory_clones
create_victory_actor
display_exp_and_gold
display_level_up
display_drop_items
battle_end(0)
$game_temp.victory_actor = nil
$game_temp.victory_clone = nil
if $imported["BattleEngineZealous"] and
YEZ::BATTLE::ZEALOUS::COMMON_EVENTS[:battle_end] != nil
common_event = YEZ::BATTLE::ZEALOUS::COMMON_EVENTS[:battle_end]
$game_temp.common_event_id = common_event
end
victory_me = Thread.new {
time = YEZ::VICTORY::FANFARE_FADE
RPG::ME.fade(time)
sleep(time / 1000.0)
RPG::ME.stop }
battle_end(0)
end
#--------------------------------------------------------------------------
# overwrite method: display_exp_and_gold
#--------------------------------------------------------------------------
def display_exp_and_gold
unless $game_switches[YEZ::VICTORY::SKIP_VICTORY_SWITCH]
show_exp_and_gold
else
@exp = $game_troop.exp_total
if YEZ::VICTORY::PARTY_SPLIT_EXP
size = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members.size : $game_party.existing_members.size
@exp = Integer(@exp * YEZ::VICTORY::PARTY_SIZE_SCALING[size])
end
$game_party.gain_gold($game_troop.gold_total)
end
end
#--------------------------------------------------------------------------
# overwrite method: display_level_up
#--------------------------------------------------------------------------
def display_level_up
unless $game_switches[YEZ::VICTORY::SKIP_VICTORY_SWITCH]
show_level_up
else
group = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members : $game_party.existing_members
for actor in group
last_level = actor.level
last_skills = actor.learned_skills.clone
actor.gain_exp(@exp, false)
end
if $imported["PartySelectionSystem"]
@exp = Integer(@exp * YEZ::PARTY::BATTLE_RESERVE_EXP)
for actor in $game_party.reserve_members
last_level = actor.level
last_skills = actor.learned_skills.clone
actor.gain_exp(@exp, false) if actor.exist? or
YEZ::VICTORY::DEAD_ALLY_EXP
end
end
end
end
#--------------------------------------------------------------------------
# overwrite method: display_drop_items
#--------------------------------------------------------------------------
def display_drop_items
@active_battler = nil
unless $game_switches[YEZ::VICTORY::SKIP_VICTORY_SWITCH]
show_drop_items
else
drop_items = $game_troop.make_drop_items
for item in drop_items; $game_party.gain_item(item, 1); end
end
end
#--------------------------------------------------------------------------
# new method: create_victory_clones
#--------------------------------------------------------------------------
def create_victory_clones
$game_temp.victory_clone = {}
$game_temp.in_battle = false
for actor in $game_party.members
$game_temp.victory_clone[actor.id] = actor.clone
end
$game_temp.in_battle = true
end
#--------------------------------------------------------------------------
# new method: create_victory_actor
#--------------------------------------------------------------------------
def create_victory_actor
$game_temp.victory_actor = nil
@original_victory_actor = victory_actor
end
#--------------------------------------------------------------------------
# new method: victory_actor
#--------------------------------------------------------------------------
def victory_actor
if $game_temp.victory_actor == nil
roulette = []
for actor in $game_party.existing_members; roulette.push(actor); end
$game_temp.victory_actor = roulette.size > 0 ?
roulette[rand(roulette.size)] : nil
end
return $game_temp.victory_actor
end
#--------------------------------------------------------------------------
# new method: victory_actor_quote
#--------------------------------------------------------------------------
def victory_actor_quote(value)
$game_temp.victory_quote = value
if YEZ::VICTORY::ACTOR_QUOTES.include?(victory_actor.id)
$game_temp.common_event_id = YEZ::VICTORY::ACTOR_QUOTES[victory_actor.id]
else
$game_temp.common_event_id = YEZ::VICTORY::ACTOR_QUOTES[0]
end
@message_window.visible = true
process_victory_event
end
#--------------------------------------------------------------------------
# new method: process_victory_event
#--------------------------------------------------------------------------
def process_victory_event
loop do
$game_troop.interpreter.update
$game_troop.setup_battle_event
wait_for_message
return unless $game_troop.interpreter.running?
update_basic
end
end
#--------------------------------------------------------------------------
# new method: show_exp_and_gold
#--------------------------------------------------------------------------
def show_exp_and_gold
#--- Draw Victory Message
@top_window = Window_Help.new
text = YEZ::VICTORY::VOCAB[:top_message]
@top_window.set_text(text, 1)
#--- Draw EXP Window
@exp = $game_troop.exp_total
if YEZ::VICTORY::PARTY_SPLIT_EXP
size = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members.size : $game_party.existing_members.size
@exp = Integer(@exp * YEZ::VICTORY::PARTY_SIZE_SCALING[size])
end
@exp_window = Window_Base.new(272, 56, 272, 56)
text = sprintf(YEZ::VICTORY::VOCAB[:exp_receive], @exp)
@exp_window.contents.draw_text(0, 0, 240, 24, text, 1)
#--- Draw Gold Window
@gold = $game_troop.gold_total
$game_party.gain_gold(@gold)
@gold_window = Window_Base.new(0, 56, 272, 56)
text = sprintf(YEZ::VICTORY::VOCAB[:gold_found], @gold)
@gold_window.contents.draw_text(0, 0, 240, 24, text, 1)
#--- Draw Party EXP Windows
@exp_back_window = Window_Party_Exp_Back.new
@exp_front_window = Window_Party_Exp_Front.new
fill_exp_gauge
#--- Battle Quotes
if YEZ::VICTORY::ENABLE_QUOTES
victory_actor_quote("MAIN")
else
text = sprintf(Vocab::Victory, $game_party.name)
$game_message.texts.push(text)
wait_for_message
end
end
#--------------------------------------------------------------------------
# new method: fill_exp_gauge
#--------------------------------------------------------------------------
def fill_exp_gauge
ticks = 0
percent = 0
increase = 100 / YEZ::VICTORY::EXP_TICKS
until ticks > YEZ::VICTORY::EXP_TICKS
ticks += 1
percent += increase
@exp_front_window.refresh(percent)
if @exp_front_window.full_actors != $game_party.existing_members.size
YEZ::VICTORY::TICK_SOUND.play if YEZ::VICTORY::TICK_SOUND != nil
end
update_basic
end
end
#--------------------------------------------------------------------------
# new method: show_level_up
#--------------------------------------------------------------------------
def show_level_up
@exp_window.visible = false
@gold_window.visible = false
@exp_back_window.visible = false
@exp_front_window.visible = false
group = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members : $game_party.existing_members
for actor in group
last_level = actor.level
last_skills = actor.learned_skills.clone
actor.gain_exp(@exp, false)
create_level_up_windows(actor, last_skills) if actor.level > last_level
end
if $imported["PartySelectionSystem"]
@exp = Integer(@exp * YEZ::PARTY::BATTLE_RESERVE_EXP)
for actor in $game_party.reserve_members
last_level = actor.level
last_skills = actor.learned_skills.clone
actor.gain_exp(@exp, false) if actor.exist? or
YEZ::VICTORY::DEAD_ALLY_EXP
create_level_up_windows(actor, last_skills) if actor.level > last_level
end
end
wait_for_message
end
#--------------------------------------------------------------------------
# new method: create_level_up_windows
#--------------------------------------------------------------------------
def create_level_up_windows(actor, last_skills)
@active_battler = actor
#--- Basic Settings
YEZ::VICTORY::LEVEL_SOUND.play if YEZ::VICTORY::LEVEL_SOUND != nil
$game_temp.victory_actor = actor
new_skills = actor.learned_skills - last_skills
@top_window.contents.clear
text = sprintf(YEZ::VICTORY::VOCAB[:level_msg], actor.name, actor.level)
@top_window.set_text(text, 1)
case YEZ::VICTORY::HP_RECOVERY
when 1; actor.hp += actor.maxhp - $game_temp.victory_clone[actor.id].maxhp
when 2; actor.hp = actor.maxhp
end
case YEZ::VICTORY::MP_RECOVERY
when 1; actor.mp += actor.maxmp - $game_temp.victory_clone[actor.id].maxmp
when 2; actor.mp = actor.maxmp
end
#--- Create Windows
if new_skills != []
@levelup_window = Window_Level_Up.new(actor, 0, 56, 316, 232)
@skill_back_window = Window_Base.new(316, 56, 228, 232)
@skill_back_window.contents.font.color = @skill_back_window.system_color
text = YEZ::VICTORY::VOCAB[:new_skills]
@skill_back_window.contents.draw_text(0, 0, 196, 24, text, 1)
@skill_list_window = Window_New_Skills.new(new_skills)
else
@levelup_window = Window_Level_Up.new(actor, 0, 56, 544, 232)
end
if YEZ::VICTORY::ENABLE_QUOTES
value = (last_skills != actor.learned_skills) ? "SKILL" : "LEVEL"
victory_actor_quote(value)
else
text = sprintf(Vocab::LevelUp, actor.name, Vocab::level, actor.level)
$game_message.new_page
$game_message.texts.push(text)
if new_skills != []
for skill in new_skills
text = sprintf(Vocab::ObtainSkill, skill.name)
$game_message.texts.push(text)
end
end
wait_for_message
end
#--- Skill Window Scrolling
if new_skills.size > 7
@skill_list_window.index = 0
@skill_list_window.active = true
@skill_list_window.help_window = @top_window
loop do
update_basic
@skill_list_window.update
if Input.trigger?(Input::C)
Sound.play_decision; break
elsif Input.trigger?(Input::B)
Sound.play_cancel; break
elsif Input.press?(Input::A)
break
end
end
end
#--- Disposal of Windows
@levelup_window.dispose if @levelup_window != nil
@levelup_window = nil
@skill_back_window.dispose if @skill_back_window != nil
@skill_back_window = nil
@skill_list_window.dispose if @skill_list_window != nil
@skill_list_window = nil
#--- HP and MP Recovery
end
#--------------------------------------------------------------------------
# new method: show_drop_items
#--------------------------------------------------------------------------
def show_drop_items
@drop_items = $game_troop.make_drop_items
for item in @drop_items; $game_party.gain_item(item, 1); end
if @drop_items != []
@top_window.set_text(YEZ::VICTORY::VOCAB[:spoils],1)
YEZ::VICTORY::ITEM_SOUND.play if YEZ::VICTORY::ITEM_SOUND != nil
@drops_window = Window_BattleDrops.new(@drop_items)
else
@top_window.set_text(YEZ::VICTORY::VOCAB[:no_items],1)
@exp_window.visible = true
@gold_window.visible = true
@exp_back_window.visible = true
@exp_front_window.visible = true
@exp_front_window.refresh
end
if YEZ::VICTORY::ENABLE_QUOTES
$game_temp.victory_actor = @original_victory_actor
value = (@drop_items == []) ? "NOTHING" : "DROPS"
victory_actor_quote(value)
else
if @drop_items == []
text = YEZ::VICTORY::VOCAB[:no_items]
else
text = sprintf(YEZ::VICTORY::VOCAB[:found_items], $game_party.name)
end
$game_message.texts.push(text)
wait_for_message
end
if @drop_items != [] and @drops_window.item_max > 16
@drops_window.index = 0
@drops_window.active = true
@drops_window.help_window = @top_window
loop do
update_basic
@drops_window.update
if Input.trigger?(Input::C)
Sound.play_decision; break
elsif Input.trigger?(Input::B)
Sound.play_cancel; break
elsif Input.press?(Input::A)
break
end
end
end
end
end # Scene_Battle
#===============================================================================
# Window_Message
#===============================================================================
class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# alias method: convert_special_characters
#--------------------------------------------------------------------------
unless $imported["CustomMessageSystemZeal"]
alias convert_special_characters_va convert_special_characters unless $@
def convert_special_characters
@text.gsub!(/\\VF/i) { victory_face_art }
@text.gsub!(/\\VN/i) { victory_actor_name }
convert_special_characters_va
end
end
#--------------------------------------------------------------------------
# new method: victory_actor_name
#--------------------------------------------------------------------------
def victory_actor_name
return "" unless $scene.is_a?(Scene_Battle)
return $scene.victory_actor.name
end
#--------------------------------------------------------------------------
# new method: victory_face_art
#--------------------------------------------------------------------------
def victory_face_art
return "" unless $scene.is_a?(Scene_Battle)
$game_message.face_name = $scene.victory_actor.face_name
$game_message.face_index = $scene.victory_actor.face_index
return ""
end
end # Window_Message
#===============================================================================
# Window_Party_Exp_Back
#===============================================================================
class Window_Party_Exp_Back < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, 112, 544, 176)
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
sw = self.width - 32
dy = 0
dx = (sw/2) - $game_party.members.size*60
for actor in $game_party.members
opacity = YEZ::VICTORY::FACE_OPACITY
draw_party_face(actor, dx+12, dy, opacity)
self.contents.draw_text(dx+12, dy, 96, WLH, actor.name, 1)
dx += 120
end
end
#--------------------------------------------------------------------------
# Draw Party Face
#--------------------------------------------------------------------------
def draw_party_face(actor, x, y, opacity = 255, size = 96)
face_name = actor.face_name
face_index = actor.face_index
bitmap = Cache.face(face_name)
rect = Rect.new(0, 0, 0, 0)
rect.x = face_index % 4 * 96 + (96 - size) / 2
rect.y = face_index / 4 * 96 + (96 - size) / 2
rect.width = size
rect.height = size
self.contents.blt(x, y, bitmap, rect, opacity)
bitmap.dispose
end
end # Window_Party_Exp_Back
#===============================================================================
# Window_Party_Exp_Front
#===============================================================================
class Window_Party_Exp_Front < Window_Base
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :full_actors
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, 112, 544, 176)
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh(extra_per = 0)
self.contents.clear
@full_actors = 0
sw = self.width - 32
dy = WLH*4
dx = (sw/2) - $game_party.members.size*60
for actor in $game_party.members
self.contents.font.color = normal_color
self.contents.font.size = Font.default_size
draw_exp_gauge(actor, dx, dy, extra_per)
draw_exp_text(actor, dx, dy+WLH, extra_per)
dx += 120
end
end
#--------------------------------------------------------------------------
# draw_exp_gauge
#--------------------------------------------------------------------------
def draw_exp_gauge(actor, dx, dy, extra_per)
self.contents.font.size = YEZ::VICTORY::EXP_FONT_SIZE
gc1 = text_color(YEZ::VICTORY::EXP_GAUGE_1)
gc2 = text_color(YEZ::VICTORY::EXP_GAUGE_2)
if actor.level > $game_temp.victory_clone[actor.id].level
gc1 = text_color(YEZ::VICTORY::LVL_GAUGE_1)
gc2 = text_color(YEZ::VICTORY::LVL_GAUGE_2)
gw = 96
self.contents.font.color = text_color(YEZ::VICTORY::LVL_COLOUR)
text = YEZ::VICTORY::VOCAB[:level_up]
elsif actor.next_exp != 0
gw = 96 * (actor.now_exp + exp_gained(extra_per, actor))
gw /= actor.next_exp
gw = [[gw, 96].min, 0].max
text = sprintf(YEZ::VICTORY::VOCAB[:next_level], actor.level + 1)
if gw == 96
self.contents.font.color = text_color(YEZ::VICTORY::LVL_COLOUR)
gc1 = text_color(YEZ::VICTORY::LVL_GAUGE_1)
gc2 = text_color(YEZ::VICTORY::LVL_GAUGE_2)
text = YEZ::VICTORY::VOCAB[:level_up]
end
else
gw = 96
text = YEZ::VICTORY::VOCAB[:max_level]
end
self.contents.fill_rect(dx + 12, dy - 6, 96, 6, gauge_back_color)
self.contents.gradient_fill_rect(dx + 12, dy - 6, gw, 6, gc1, gc2)
self.contents.draw_text(dx, dy, 120, WLH, text, 1)
self.contents.font.color = normal_color
end
#--------------------------------------------------------------------------
# draw_exp_text
#--------------------------------------------------------------------------
def draw_exp_text(actor, dx, dy, extra_per)
if actor.level > $game_temp.victory_clone[actor.id].level
exp_percent = 100.0
text1 = sprintf(YEZ::VICTORY::VOCAB[:percent_exp], exp_percent)
text2 = sprintf(YEZ::VICTORY::VOCAB[:to_level], actor.level)
elsif actor.next_exp != 0
exp_percent = (actor.now_exp + exp_gained(extra_per, actor)) * 100.0
exp_percent /= actor.next_exp
exp_percent = [[exp_percent, 100.0].min, 0].max
@full_actors += 1 if exp_percent >= 100.0
value = [actor.next_rest_exp_s - exp_gained(extra_per, actor), 0].max
text1 = sprintf(YEZ::VICTORY::VOCAB[:percent_exp], exp_percent)
text2 = sprintf(YEZ::VICTORY::VOCAB[:next_exp], value)
else
exp_percent = 100.0
@full_actors += 1
text1 = sprintf(YEZ::VICTORY::VOCAB[:percent_exp], exp_percent)
text2 = ""
end
self.contents.draw_text(dx, dy - WLH * 2, 120, WLH, text1, 1)
self.contents.draw_text(dx, dy, 120, WLH, text2, 1)
end
#--------------------------------------------------------------------------
# exp_gained
#--------------------------------------------------------------------------
def exp_gained(extra_per, actor)
return 0 if actor.dead?
extra_per = 100 if extra_per > 100
exp = $game_troop.exp_total
members = $game_party.members.size
if YEZ::VICTORY::PARTY_SPLIT_EXP
size = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members.size : $game_party.existing_members.size
exp = Integer(exp * YEZ::VICTORY::PARTY_SIZE_SCALING[size])
end
exp *= 2 if actor.double_exp_gain
exp *= extra_per
exp /= 100
return exp
end
end # Window_Party_Exp_Front
#===============================================================================
# Window_New_Skills
#===============================================================================
class Window_New_Skills < Window_Selectable
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(new_skills)
@new_skills = new_skills
super(316, 80, 228, 208)
self.index = -1
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# skill
#--------------------------------------------------------------------------
def skill; return @data[self.index]; end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
@data = []
for skill in @new_skills
@data.push(skill)
end
@item_max = @data.size
create_contents
for i in 0..(@item_max-1)
draw_item(i)
end
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
skill = @data[index]
return if skill == nil
draw_item_name(skill, rect.x, rect.y)
end
#--------------------------------------------------------------------------
# update_help
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(skill == nil ? "" : skill.description)
end
end # Window_New_Skills
#===============================================================================
# Window_BattleDrops
#===============================================================================
class Window_BattleDrops < Window_Selectable
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(drop_items)
super(0, 56, 544, 232)
@drop_items = drop_items
@column_max = 2
self.index = -1
refresh
end
#--------------------------------------------------------------------------
# item
#--------------------------------------------------------------------------
def item; return @data[self.index]; end
#--------------------------------------------------------------------------
# refrehs
#--------------------------------------------------------------------------
def refresh
@items = {}; @weapons = {}; @armours = {}; @goods = {}; @data = []
for item in @drop_items
case item
when RPG::Item
@items[item] = 0 if @items[item] == nil
@items[item] += 1
when RPG::Weapon
@weapons[item] = 0 if @weapons[item] == nil
@weapons[item] += 1
when RPG::Armor
@armours[item] = 0 if @armours[item] == nil
@armours[item] += 1
end
end
@items = @items.sort { |a,b| a[0].id <=> b[0].id }
@weapons = @weapons.sort { |a,b| a[0].id <=> b[0].id }
@armours = @armours.sort { |a,b| a[0].id <=> b[0].id }
for key in @items; @goods[key[0]] = key[1]; @data.push(key[0]); end
for key in @weapons; @goods[key[0]] = key[1]; @data.push(key[0]); end
for key in @armours; @goods[key[0]] = key[1]; @data.push(key[0]); end
@item_max = @data.size
create_contents
for i in 0..(@item_max-1); draw_item(i); end
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
return if item == nil
number = @goods[item]
rect.width -= 4
draw_item_name(item, rect.x, rect.y)
self.contents.draw_text(rect, sprintf(YEZ::VICTORY::VOCAB[:item_amount],
number), 2)
end
#--------------------------------------------------------------------------
# update_help
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(item == nil ? "" : item.description)
end
end # Window_BattleDrops
#===============================================================================
# Window_Level_Up
#===============================================================================
class Window_Level_Up < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(actor, dx, dy, dw, dh)
super(dx, dy, dw, dh)
@actor = actor
@clone = $game_temp.victory_clone[actor.id]
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
sw = self.width - 32
dy = 0; dx = sw/2 - 234/2
draw_stats(dx, dy)
end
#--------------------------------------------------------------------------
# draw_stats
#--------------------------------------------------------------------------
def draw_stats(dx, dy)
arrow = YEZ::VICTORY::VOCAB[:next_stat]
colours = YEZ::VICTORY::LEVEL_COLOURS
for stat in YEZ::VICTORY::SHOWN_STATS
case stat
when :maxhp
icon = $imported["Icons"] ? YEZ::ICONS[:hp] : 0
text = Vocab.hp
value1 = @clone.maxhp
value2 = @actor.maxhp
when :maxmp
icon = $imported["Icons"] ? YEZ::ICONS[:mp] : 0
text = Vocab.mp
value1 = @clone.maxmp
value2 = @actor.maxmp
when :atk
icon = $imported["Icons"] ? YEZ::ICONS[:atk] : 0
text = Vocab.atk
value1 = @clone.atk
value2 = @actor.atk
when :def
icon = $imported["Icons"] ? YEZ::ICONS[:def] : 0
text = Vocab.def
value1 = @clone.def
value2 = @actor.def
when :spi
icon = $imported["Icons"] ? YEZ::ICONS[:spi] : 0
text = Vocab.spi
value1 = @clone.spi
value2 = @actor.spi
when :agi
icon = $imported["Icons"] ? YEZ::ICONS[:agi] : 0
text = Vocab.agi
value1 = @clone.agi
value2 = @actor.agi
when :dex
next unless $imported["BattlerStatDEX"]
icon = $imported["Icons"] ? YEZ::ICONS[:dex] : 0
text = Vocab.dex
value1 = @clone.dex
value2 = @actor.dex
when :res
next unless $imported["BattlerStatRES"]
icon = $imported["Icons"] ? YEZ::ICONS[:res] : 0
text = Vocab.res
value1 = @clone.res
value2 = @actor.res
else; next
end
value2 = sprintf("%+d", value2 - value1) if YEZ::VICTORY::SHOW_DIFFERENCE
draw_icon(icon, dx, dy)
self.contents.font.color = text_color(colours[:stat_name])
self.contents.draw_text(dx+24, dy, 60, WLH, text, 0)
self.contents.font.color = text_color(colours[:old_stat])
self.contents.draw_text(dx+84, dy, 60, WLH, value1, 2)
if YEZ::VICTORY::ARROW_ICON.is_a?(Integer)
draw_icon(YEZ::VICTORY::ARROW_ICON, dx+147, dy)
else
self.contents.font.color = text_color(colours[:arrow])
self.contents.draw_text(dx+144, dy, 30, WLH, arrow, 1)
end
self.contents.font.color = text_color(colours[:new_stat])
self.contents.draw_text(dx+174, dy, 60, WLH, value2, 0)
dy += WLH
end
end
end # Window_Level_Up
#===============================================================================
#
# END OF FILE
#
#===============================================================================
Under the audio settings at the second end from the bottom is where it says the error is.
You need to use the whole script, not just the configuration and code. I'm willing to bet that you're missing at least two lines from that code, and it seems that you deleted them for some reason. You need those lines, the
module YEZ
module VICTORYI think it would be.
Holy crap how'd I miss that? I was somehow missing over 40 lines of missing script. I must have copied wrong. Well I recopied and now it's working. Wow. Thanx guys.
Well if you could believe it, I've got 2 more problems, and I'd rather not just make another whole thread for it. Ones about scripting anyway. And these are all mostly problems that have been bugging me for quite a while. So theyre not really new. Accept for the first one that is. Getting past the first battle in a big complex game is always the hardest.
1. I keep getting this error message right after I finish a battle. Directly after I see the XP head in to the main character. See the attachment, capture.
2. This error message I see every time I go to battle test and initialize. After a few seconds of loading, it pops up. See Initialize Battle attachment. It's about the cache.
3. Is there anyway to change the control scheme? Like make the moving of the character WASD?
Alright so that was 3 but eh. Any help on either of them would be greatly appreciated!