Quantcast
Channel: RGSS3 Scripts (RMVX Ace) Latest Topics
Viewing all 416 articles
Browse latest View live

cyanic's Steam Achievements Integration

$
0
0

Quick and Easy Steamworks Achievements Integration for RPG Maker VX Ace r4
by cyanic


Introduction
This script allows you to use Steam achievements from your game. It needs no intermediary DLLs, only a recent version of the Steamworks DLL.

Features

  • Set/clear achievements
  • Get/set player stats
  • Supports average rate stats
  • Get achievement state and unlocked time
  • Enumerate achievements programmatically, get their display name and hidden status
  • Reset all stats and achievements
  • Check game ownership
  • Check if a DLC is installed

Changelog

 

Spoiler

r4 (06/16/16)

  • Updated script for Steamworks SDK 1.37.

r3.2 (03/12/16)

  • Fixed pointer return type on DLL imports.

r3.1 (11/15/15)

  • Added app is subscribed and DLC is installed methods.

r3 (11/15/15)

  • Added get methods, stats set methods.

r2 (11/15/15)

  • Tested in RPG Maker, fixed to make the script actually run.

r1 (11/14/15)

  • Initial version, written for Ruby 2.2.3.


How to Use

  • Download a recent version of the Steamworks SDK (>= 1.37), and put its steam_api.dll into the root of your project folder.
  • Add the script into the script editor.
  • In the event or wherever else you want to set an achievement, add the following code:
    steam = SteamUserStatsLite.instance
    steam.set_achievement 'YOUR_ACH_ID_HERE'
    steam.update
    Replace 'YOUR_ACH_ID_HERE' with the achievement's API name from the Steamworks partner site.
  • If you want to set a stat, use this code:
    steam = SteamUserStatsLite.instance
    steam.set_stat 'YOUR_STAT_ID_HERE', 100
    steam.update
    Replace 'YOUR_STAT_ID_HERE' with the stat's API name from the Steamworks partner site.
  • The #set_achievement and #set_stat methods return true when the achievement/stat has been set succesfully. If it returns false, see the FAQ for more information.

Please see documentation on GitHub.

Demo
This demo was created by Miller Berto. Create a default RPG Maker project, and extract the contents of the ZIP file into the project folder. Please replace the SteamUserStatsLite script with the latest version.

Script
Visit GitHub for the latest version. If you're using Steamworks SDK 1.32 to 1.36, please use this version.
 
License
You are free to use this script in any project without charge. A mention in the credits would be appreciated.

FAQ
Q: #set_achievement/#set_stat returns false. What's wrong?
A: It means either you haven't set up the achievement in the Steamworks partner site or you were playtesting through RPG Maker.
Because the playtesting game inherits the Steam context from RPG Maker, your achievements won't be found. If you launch your game directly, it should work. I recommend you add a steam_appid.txt file with your app ID during development so you can just launch the EXE and Steamworks will set the right context.
It could also be possible that Steamworks wasn't able to initialize. Check SteamUserStatsLite#initted? to see if Steamworks was initialized successfully.

Q: #set_stat is returning false, but I've already checked that Steamworks was initialized and the stat added and published on the Steamworks partner site. What do I do now?
A: #set_stat can take both Integers and Floats. Make sure when you're passing in the value, you have it converted to the type corresponding to what you set on the Steamworks partner site.

Q: I'm getting a RuntimeError telling me something about GetProcAddress.
A: You need to use at least Steamworks SDK 1.37 for this script to work. Download a newer version of the SDK.

Q: My game crashes when I try to call a Steamworks function. I'm using Steam DRM.
A: There is a compatibility problem with Steam DRM. So don't use it. Not as if it'll actually protect your game. It only gives you an illusion of safety, while in practice is practically useless for protection.

 

Q: I'm using r3.x, should I upgrade?

A: r4 is functionally the same as r3.2. If you do not need to use the latest Steamworks SDK, you do not need to (and probably should not) upgrade.

Credit and Thanks

Author's Notes
I'm actually a complete RPG Maker noob. I wrote this yesterday on pure Ruby 2.2.3, and only got a copy of RPG Maker VX Ace this morning to test and fix problems.


Conditional Branch+

$
0
0

Conditional Branch+ (VX Ace)
by mjshi- OK for use in all projects with credit

Get it here! (direct link)

MV version also available.

 

In the past, if you wanted to see if the player has more than 10 potions in their inventory, you would have to open up a new event and do the following:
Control Variables > Variable 1 > Set > Game Data > Item "Potion" In Inventory > OK > OK > ENTER > Conditional Branch > Variable 1 is > Greater than or equal to > "10" > OK
How tedious! If only there was a simpler, more efficient way...
Well. Look no further. Lazy- er, efficient people, rejoice! For the future is now, and with Conditional Branch+, you can replace that lengthy process with one that looks like this:
Conditional Branch > Script > "Check.has_more(1, 10)" > OK
Features 
- No longer do you need a bazillion nested conditional branches to check if the player has multiple items!

Check.has(list of item ids) does that for you.
- No more must you abuse the else branch to see if the player has either one item or another!
Check.has_any(list of item ids) does that for you.

- And the above apply for switches and variables as well, along with much, much more. A full list of functions can be found below:
Spoiler

# How to use:
# On a conditional branch, go to the fourth tab and select the "Script" option.
# Type in desired thing to check. See below...
#===============================================================================
#               Asterisk (*) means multiple inputs are accepted.
#===============================================================================
# Combining Checks
# Use "&&", "||", and "()" to combine several checks in a conditional branch.
# && = this AND that are true
# || = this OR that are true
# () = order of operations, check innermost parentheses first
# !  = translates to NOT. EX. !Check.has(1) checks if player DOESN'T have it.
#
#-- EX: (Check.has(1) && Check.greater(1 , 0)) || Check.has(2)
#-- Checks if player has item 1 and variable 1 > 0, or player has item 2.
#===============================================================================
# Possible Checks
#-------------------------------------------------------------------------------
# Items
#-------------------------------------------------------------------------------
# Check.has(*items)
#-- EX: Check.has(1, 3, 4)
#-- checks if player has items 1, 3, and 4 in inventory.
#
# Check.has_more(*items, number)
#-- EX: Check.has_more(1, 2, 3, 4, 5)
#-- checks if player has at least five (includes 5) of items 1, 2, 3, 4.
#
# Check.has_less(*items, number)
#-- EX: Check.has_less(1, 2, 3, 4, 5)
#-- checks if player has at most five (includes 5) of items 1, 2, 3, 4.
#
# Check.has_any(*items)
#-- EX: Check.has_any(1, 3, 4)
#-- checks if player has either item 1, 3, or 4 in inventory.
#
# Check.each_more(*[item, number])
#-- EX: Check.each_more([1, 2], [2, 4])
#-- checks if there are at least 2 of item 1 and at least 4 of item 2.
#
# Check.each_less(*[item, number])
#-- EX: Check.each_less([1, 2], [2, 4])
#-- checks if there are at most 2 of item 1 and at most 4 of item 2.
#-------------------------------------------------------------------------------
# Variables
#-------------------------------------------------------------------------------
# Check.is_any(variable, *values)
#-- EX: Check.is_any(1, 3, 4, 5)
#-- checks if variable 1 is either 3, 4, or 5
#
# Check.greater(*variables, value)
#-- EX: Check.greater(1, 2, 3, 5)
#-- checks if variables 1, 2, and 3 are at least 5.
#
# Check.lesser(*variables, value)
#-- EX: Check.lesser(1, 2, 3, 5)
#-- checks if variables 1, 2, and 3 are at most 5.
#
# Check.in_range(*variables, start, stop)
#-- EX: Check.in_range(1, 3, 4, 5)
#-- checks if variable 1 AND 3 are between 4 and 5, including 4 and 5.
#
# Check.any_inrange(*variables, start, stop)
#-- EX: Check.any_inrange(1, 3, 4, 5)
#-- checks if variable 1 OR 3 are between 4 and 5, including 4 and 5.
#
# Check.each_is(*[variable, value])
#-- EX: Check.each_is([1, 3], [4, 5])
#-- checks if variable 1 is 3, and variable 4 is 5.
#
# Check.each_greater(*[variable, value])
#-- EX: Check.each_greater([1, 3], [4, 5])
#-- checks if variable 1 is at least 3 and variable 4 is at least 5.
#
# Check.each_lesser(*[variable, value])
#-- EX: Check.each_lesser([1, 3], [4, 5])
#-- checks if variable 1 is at most 3 and variable 4 is at most 5.
#
# Check.each_inrange(*[variable, start, stop])
#-- EX: Check.in_range([1, 3, 5], [3, 1, 4])
#-- checks if variable 1 is between 3 and 5, and variable 3 is between 1 and 4.
#-------------------------------------------------------------------------------
# Switches
#-------------------------------------------------------------------------------
# Check.all_true(*switches)
#-- EX: Check.true(1, 2, 3)
#-- checks if switches 1, 2, 3 are true
#
# Check.any_true(*switches)
#-- EX: Check.any_true(1, 2, 3)
#-- checks if either of switches 1, 2, 3 are true
#
# Check.all_false(*switches)
#-- EX: Check.false(1, 2, 3)
#-- checks if switches 1, 2, 3 are false
#
# Check.any_false(*switches)
#-- EX: Check.any_false(1, 2, 3)
#-- checks if either of switches 1, 2, 3 are false
#
# Check.each_switch(*[switch, on/off])
# If on, put 1. If off, put 0.
#==============================================================================

 

Installation
Paste this script anywhere above Main, it's not too picky about where it should be.
Credit
mjshi

Yanfly Status Menu with Tsukihime's Element Information Fix!

$
0
0

Since this is a public script, It shouldn't do any harm in posting this for usage.
Several things I've found out to be a problem with this script found here:
http://www.rpgmakervxace.net/topic/6466-yanfly-status-menu-with-tsukihimes-element-information/
Its basically a modified version of Yanflys Status Menu to fit in Tsukihime's Element Information.

I found several problems to it though:
1 its buggy as hell
2 its "really" buggy as hell
3 it just bugs the hell out of meh
4 okay, the real problem was, "its buggy as hell" and ur computer will blow up in the end
5 when you go to status menu, go down to element window, go up or down and see what happens then exit. That bloody element window is still there!!!
6 when your at the element window, go and press page up or down, it creates a new instance of the element window all over again on top of the one thats already on there, thus, will lag your game after pressing page up or down 50-100 times. Dont believe me? Try it!
7 when you hit insert to exit when your at the element window, it doesn't dispose the actual element window. In fact, the element window never disposes.
8 There's no defense resistance
So, in the end, here's the fix to all that! Only one requirement though....... that is, you have to set aside one $game_switches which you have to choose an ID switch. I put it in here

    Switch_ID_To_Blow_Up_This_Joint = 55

So look for that at line 208 and put your desired switch! Other than that, heres the script!
 

 

The "SCRIPT!":

#==============================================================================
#
# ▼ Yanfly Engine Ace - Ace Status Menu with Elements v1.04
# -- Last Updated: 2012.08.22
# -- Authors: Yanfly, Tsukihime, DisturbedInside
# Modified by: The Black Swordsman so "SHIZNITS" don't hit the fan in the end
# -- Slight Modding: Gleason
# -- Level: Normal
# -- Requires: n/a
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YEA-StatusMenu_Elements"] = true

#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.08.21 - Fixed problem with window opacity and created new formula for
# window size (it should resize properly now)
# 2012.08.21 - Added Tsukihime's Element Info
# 2012.08.06 - Fix Sp Paramater TCR
# 2011.12.26 - Compatibility Update: Rename Actor
# 2011.12.23 - Started Script and Finished.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script changes the status screen completely to something the player can
# interact with more and be able to view actor data with more clarity. The
# player is able to view the general information for an actor (parameters and
# experience), a parameters bar graph, the various hidden extra parameters
# (named properties in the script), and a customizable biography for the actor.
# Also with this script, biographies can be changed at any time using a script
# call to add more of a personal touch to characters.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
#
# -----------------------------------------------------------------------------
# Script Calls - These commands are used with script calls.
# -----------------------------------------------------------------------------
# $game_actors[x].description = string
# Changes the biography description for actor x to that of the string. Use \n
# to designate linebreaks in the string. If you wish to use text codes, write
# them in the strings as \\n[2] or \\c[3] to make them work properly.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================

module YEA
module STATUS

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Command Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# This section adjusts the commands that appear in the command window used
# for the status screen. Rearrange the commands, add new ones, remove them
# as you see fit.
#
# -------------------------------------------------------------------------
# :command Description
# -------------------------------------------------------------------------
# :general Adds general page.
# :parameters Adds parameters page.
# :properties Adds properties page.
# :biography Adds biography page.
#
# :rename Requires YEA - Rename Actor
# :retitle Requires YEA - Retitle Actor
#
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
COMMANDS =[ # The order at which the menu items are shown.
# [ :command, "Display"],
[ :general, "General"],
[ :parameters, "Parameters"],
[ :properties, "Properties"],
[ :biography, "Biography"],
[ :elements, "Element Resists"], # this is the elements command
] # Do not remove this.

#--------------------------------------------------------------------------
# - Status Custom Commands -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# For those who use scripts to that may produce unique effects for the
# status menu, use this hash to manage the custom commands for the Status
# Command Window. You can disable certain commands or prevent them from
# appearing by using switches. If you don't wish to bind them to a switch,
# set the proper switch to 0 for it to have no impact.
#--------------------------------------------------------------------------
CUSTOM_STATUS_COMMANDS ={
# :command => [EnableSwitch, ShowSwitch, Handler Method, Window Draw],
:custom1 => [ 0, 0, :command_name1, :draw_custom1],
:custom2 => [ 0, 0, :command_name2, :draw_custom2],
:custom3 => [ 0, 0, :command_name3, :draw_custom3],
} # Do not remove this.

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - General Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# These settings adjust the way the general window visually appears.
# Not many changes need to be done here other than vocab changes.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PARAMETERS_VOCAB = "Parameters" # Title used for Parameters.
EXPERIENCE_VOCAB = "Experience" # Title used for Experience.
NEXT_TOTAL_VOCAB = "Total EXP for Next" # Label used for total experience.

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Parameters Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# These settings adjust the way the parameters window visually appears.
# Each of the stats have a non-window colour. Adjust them as you see fit.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PARAM_COLOUR ={
# ParamID => [:stat, Colour1, Colour2 ],
2 => [ :atk, Color.new(225, 100, 100), Color.new(240, 150, 150)],
3 => [ :def, Color.new(250, 150, 30), Color.new(250, 180, 100)],
4 => [ :mat, Color.new( 70, 140, 200), Color.new(135, 180, 230)],
5 => [ :mdf, Color.new(135, 130, 190), Color.new(170, 160, 220)],
6 => [ :agi, Color.new( 60, 180, 80), Color.new(120, 200, 120)],
7 => [ :luk, Color.new(255, 240, 100), Color.new(255, 250, 200)],
} # Do not remove this.

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Properties Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# These settings adjust the way the properties window visually appears.
# The properties have abbreviations, but leaving them as such makes things
# confusing (as it's sometimes hard to figure out what the abbreviations
# mean). Change the way the appear, whether or not they appear, and what
# order they will appear in.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PROPERTIES_FONT_SIZE = 16 # Font size used for properties.

# These are the properties that appear in column 1.
PROPERTIES_COLUMN1 =[
[:hit, "Hit Rate"],
[:eva, "Evasion"],
[:cri, "Critical Hit"],
[:cev, "Critical Evade"],
[:mev, "Magic Evasion"],
[:mrf, "Magic Reflect"],
[:cnt, "Counter Rate"],
[:tgr, "Target Rate"],
] # Do not remove this.

# These are the properties that appear in column 2.
PROPERTIES_COLUMN2 =[
[:hrg, "HP Regen"],
[:mrg, "MP Regen"],
[:trg, "TP Regen"],
[:rec, "Recovery"],
[:grd, "Guard Rate"],
[:pha, "Item Boost"],
[:exr, "EXP Rate"],
[:tcr, "TP Charge"],
] # Do not remove this.

# These are the properties that appear in column 3.
PROPERTIES_COLUMN3 =[
[:hcr, "HP Cost Rate"], # Requires YEA - Skill Cost Manager
[:mcr, "MP Cost Rate"],
[:tcr_y, "TP Cost Rate"], # Requires YEA - Skill Cost Manager
[:cdr, "Cooldown Rate"], # Requires YEA - Skill Restrictions
[:wur, "Warmup Rate"], # Requires YEA - Skill Restrictions
[:pdr, "Physical Damage"],
[:mdr, "Magical Damage"],
[:fdr, "Floor Damage"],
] # Do not remove this.


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Biography Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# These settings adjust the way the biography appears including the title
# used at the top, the font size, and whatnot.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
BIOGRAPHY_NICKNAME_TEXT = "%s %s" # How the nickname will appear.
BIOGRAPHY_NICKNAME_SIZE = 32 # Size of the font used.

#custom switch to blow up this bloody element window at prev/next actor.
Switch_ID_To_Blow_Up_This_Joint = 55 #make sure to set aside this game switch
end # STATUS
end # YEA

module Status_Element

# List of elements that should not be included in the list
Ignore = ["Absorb", "Physical", "Slash", "Blunt", "Pierce", "Gun", "Demonbreak"]

# Element entries. Format: "element name" => [index, icon]
# The name and icon must match the ones in the database
Elements = { "Fire" => [3, 187],
"Ice" => [4, 188],
"Thunder" => [5, 191],
"Water" => [6, 186],
"Earth" => [7, 190],
"Wind" => [8, 189],
"Holy" => [9, 184],
"Dark" => [10, 185],
"Time" => [15, 280]
}

# Icons to draw for attack/resistance
Attack_Icon = 132
Resist_Icon = 13
end

#==============================================================================
# ▼ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================

#==============================================================================
# ■ Numeric
#==============================================================================

class Numeric

#--------------------------------------------------------------------------
# new method: group_digits
#--------------------------------------------------------------------------
unless $imported["YEA-CoreEngine"]
def group; return self.to_s; end
end # $imported["YEA-CoreEngine"]

end # Numeric

#==============================================================================
# ■ Game_Temp
#==============================================================================

class Game_Temp

#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :scene_status_index
attr_accessor :scene_status_oy

end # Game_Temp



#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler

#--------------------------------------------------------------------------
# new method: description=
#--------------------------------------------------------------------------
def description=(text)
@description = text

end

#--------------------------------------------------------------------------
# overwrite method: description
#--------------------------------------------------------------------------
def description
return @description unless @description.nil?
return actor.description


end


def equips_elements(element_id)
end

def element_attack

end

def element_resist

end

end # Game_Actor

class Game_Battler < Game_BattlerBase

def element_resist

end

def element_attack

end


end

#==============================================================================
# ■ Window_StatusCommand
#==============================================================================

class Window_StatusCommand < Window_Command

#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :item_window

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(dx, dy)
super(dx, dy)
@actor = nil
end

#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return 160; end

#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end

#--------------------------------------------------------------------------
# visible_line_number
#--------------------------------------------------------------------------
def visible_line_number; return 4; end

#--------------------------------------------------------------------------
# ok_enabled?
#--------------------------------------------------------------------------
def ok_enabled?
return handle?(current_symbol)
end

#--------------------------------------------------------------------------
# make_command_list
#--------------------------------------------------------------------------
def make_command_list
return unless @actor
for command in YEA::STATUS::COMMANDS
case command[0]
#--- Default ---
when :general, :parameters, :properties, :biography, :elements
add_command(command[1], command[0])
#--- Yanfly Engine Ace ---
when :rename
next unless $imported["YEA-RenameActor"]
add_command(command[1], command[0], @actor.rename_allow?)
when :retitle
next unless $imported["YEA-RenameActor"]
add_command(command[1], command[0], @actor.retitle_allow?)
#--- Custom Commands ---
else
process_custom_command(command)
end
end
if !$game_temp.scene_status_index.nil?
select($game_temp.scene_status_index)
self.oy = $game_temp.scene_status_oy
end
$game_temp.scene_status_index = nil
$game_temp.scene_status_oy = nil
end

#--------------------------------------------------------------------------
# process_ok
#--------------------------------------------------------------------------
def process_ok
$game_temp.scene_status_index = index
$game_temp.scene_status_oy = self.oy
super
end

#--------------------------------------------------------------------------
# process_custom_command
#--------------------------------------------------------------------------
def process_custom_command(command)
return unless YEA::STATUS::CUSTOM_STATUS_COMMANDS.include?(command[0])
show = YEA::STATUS::CUSTOM_STATUS_COMMANDS[command[0]][1]
continue = show <= 0 ? true : $game_switches[show]
return unless continue
text = command[1]
switch = YEA::STATUS::CUSTOM_STATUS_COMMANDS[command[0]][0]
enabled = switch <= 0 ? true : $game_switches[switch]
add_command(text, command[0], enabled)
end

#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
super
update_item_window
end

#--------------------------------------------------------------------------
# update_item_window
#--------------------------------------------------------------------------
def update_item_window
return if @item_window.nil?
return if @current_index == current_symbol
@current_index = current_symbol
@item_window.refresh
end

#--------------------------------------------------------------------------
# item_window=
#--------------------------------------------------------------------------
def item_window=(window)
@item_window = window
update
end

#--------------------------------------------------------------------------
# update_help
#--------------------------------------------------------------------------
def update_help
return if @actor.nil?
@help_window.set_text(@actor.actor.description)
end

end # Window_StatusCommand

#==============================================================================
# ■ Window_StatusActor
#==============================================================================

class Window_StatusActor < Window_Base

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(dx, dy)
super(dx, dy, window_width, fitting_height(4))
@actor = nil
end

#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return Graphics.width - 160; end

#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end

#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
return unless @actor
draw_actor_face(@actor, 0, 0)
draw_actor_simple_status(@actor, 108, line_height / 2)


end

end # Window_StatusActor

#==============================================================================
# ■ Window_StatusItem
#==============================================================================

class Window_StatusItem < Window_Base

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(dx, dy, command_window)
super(dx, dy, Graphics.width, Graphics.height - dy)
@command_window = command_window
@actor = nil
refresh
end

#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end

#--------------------------------------------------------------------------
# refresh, edited to make my bomb explode upon impact
#--------------------------------------------------------------------------
def refresh
delete_this_effin_element_window_already_for_craps_sake if
$game_switches[YEA::STATUS::Switch_ID_To_Blow_Up_This_Joint]
contents.clear
reset_font_settings
return unless @actor
draw_window_contents
end
#--------------------------------------------------------------------------
# dispose window @ prev/next actor, well, how kind of u "The Black Swordsman"
#--------------------------------------------------------------------------
def delete_this_effin_element_window_already_for_craps_sake
unless @element_window.nil?
@element_window.dispose
end
#QWEEEK, turn the darn switch off before it blows up!!! O_O
$game_switches[YEA::STATUS::Switch_ID_To_Blow_Up_This_Joint] = false
end
#--------------------------------------------------------------------------
# draw_window_contents edited, so bombs go off every effin new window
#--------------------------------------------------------------------------
def draw_window_contents
case @command_window.current_symbol
when :general
unless @element_window.nil?
@element_window.dispose
end
self.opacity = 255
draw_actor_general
when :parameters
unless @element_window.nil?
@element_window.dispose
end
self.opacity = 255
draw_parameter_graph
when :properties
unless @element_window.nil?
@element_window.dispose
end
self.opacity = 255
draw_properties_list
when :elements
self.opacity = 0
draw_element_list
when :biography, :rename, :retitle
unless @element_window.nil?
@element_window.dispose
end
self.opacity = 255
draw_actor_biography
else
draw_custom
end
end

#--------------------------------------------------------------------------
# draw_element_list
#--------------------------------------------------------------------------
def draw_element_list
create_element_window
@element_window.show
@element_window.activate
end


def create_element_window
wx = Graphics.width - 400
wy = 192
@element_window = Window_ElementStatus.new(0, wy, Graphics.width, Graphics.height - wy)
@element_window.actor = @actor
end

#--------------------------------------------------------------------------
# * DISPOSE THIS WINDOW BEFORE I GO OUT OF MY MIND ALREAAAADY!
#--------------------------------------------------------------------------
alias dispose_this_bloody_effin_element_window_already_pluuuueeeaaaasssse dispose
def dispose
unless @element_window.nil?
@element_window.dispose
end
dispose_this_bloody_effin_element_window_already_pluuuueeeaaaasssse
end

#--------------------------------------------------------------------------
# draw_actor_general
#--------------------------------------------------------------------------
def draw_actor_general
change_color(system_color)
text = YEA::STATUS::PARAMETERS_VOCAB
draw_text(0, 0, contents.width/2, line_height, text, 1)
text = YEA::STATUS::EXPERIENCE_VOCAB
draw_text(contents.width/2, 0, contents.width/2, line_height, text, 1)
draw_general_parameters
draw_general_experience
end

#--------------------------------------------------------------------------
# draw_general_parameters
#--------------------------------------------------------------------------
def draw_general_parameters
dx = 24
dy = line_height / 2
draw_actor_level(dx, line_height*1+dy, contents.width/2 - 24)
draw_actor_param(0, dx, line_height*2+dy, contents.width/2 - 24)
draw_actor_param(1, dx, line_height*3+dy, contents.width/2 - 24)
draw_actor_param(2, dx, line_height*4+dy, contents.width/4 - 12)
draw_actor_param(4, dx, line_height*5+dy, contents.width/4 - 12)
draw_actor_param(6, dx, line_height*6+dy, contents.width/4 - 12)
dx += contents.width/4 - 12
draw_actor_param(3, dx, line_height*4+dy, contents.width/4 - 12)
draw_actor_param(5, dx, line_height*5+dy, contents.width/4 - 12)
draw_actor_param(7, dx, line_height*6+dy, contents.width/4 - 12)
end

#--------------------------------------------------------------------------
# draw_actor_level
#--------------------------------------------------------------------------
def draw_actor_level(dx, dy, dw)
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(dx+1, dy+1, dw-2, line_height-2)
contents.fill_rect(rect, colour)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, Vocab::level)
change_color(normal_color)
draw_text(dx+4, dy, dw-8, line_height, @actor.level.group, 2)
end

#--------------------------------------------------------------------------
# draw_actor_param
#--------------------------------------------------------------------------
def draw_actor_param(param_id, dx, dy, dw)
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(dx+1, dy+1, dw-2, line_height-2)
contents.fill_rect(rect, colour)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, Vocab::param(param_id))
change_color(normal_color)
draw_text(dx+4, dy, dw-8, line_height, @actor.param(param_id).group, 2)
end

#--------------------------------------------------------------------------
# draw_general_experience
#--------------------------------------------------------------------------
def draw_general_experience
if @actor.max_level?
s1 = @actor.exp.group
s2 = "-------"
s3 = "-------"
else
s1 = @actor.exp.group
s2 = (@actor.next_level_exp - @actor.exp).group
s3 = @actor.next_level_exp.group
end
s_next = sprintf(Vocab::ExpNext, Vocab::level)
total_next_text = sprintf(YEA::STATUS::NEXT_TOTAL_VOCAB, Vocab::level)
change_color(system_color)
dx = contents.width/2 + 12
dy = line_height * 3 / 2
dw = contents.width/2 - 36
draw_text(dx, dy + line_height * 0, dw, line_height, Vocab::ExpTotal)
draw_text(dx, dy + line_height * 2, dw, line_height, s_next)
draw_text(dx, dy + line_height * 4, dw, line_height, total_next_text)
change_color(normal_color)
draw_text(dx, dy + line_height * 1, dw, line_height, s1, 2)
draw_text(dx, dy + line_height * 3, dw, line_height, s2, 2)
draw_text(dx, dy + line_height * 5, dw, line_height, s3, 2)
end

#--------------------------------------------------------------------------
# draw_parameter_graph
#--------------------------------------------------------------------------
def draw_parameter_graph
draw_parameter_title
dy = line_height * 3/2
maximum = 1
minimum = @actor.param_max(2)
for i in 2..7
maximum = [@actor.param(i), maximum].max
minimum = [@actor.param(i), minimum].min
end
maximum += minimum * 0.33 unless maximum == minimum
for i in 2..7
rate = calculate_rate(maximum, minimum, i)
dy = line_height * i - line_height/2
draw_param_gauge(i, dy, rate)
change_color(system_color)
draw_text(28, dy, contents.width - 56, line_height, Vocab::param(i))
dw = (contents.width - 48) * rate - 8
change_color(normal_color)
draw_text(28, dy, dw, line_height, @actor.param(i).group, 2)
end
end

#--------------------------------------------------------------------------
# calculate_rate
#--------------------------------------------------------------------------
def calculate_rate(maximum, minimum, param_id)
return 1.0 if maximum == minimum
rate = (@actor.param(param_id).to_f - minimum) / (maximum - minimum).to_f
rate *= 0.67
rate += 0.33
return rate
end

#--------------------------------------------------------------------------
# draw_param_gauge
#--------------------------------------------------------------------------
def draw_param_gauge(param_id, dy, rate)
dw = contents.width - 48
colour1 = param_gauge1(param_id)
colour2 = param_gauge2(param_id)
draw_gauge(24, dy, dw, rate, colour1, colour2)
end

#--------------------------------------------------------------------------
# param_gauge1
#--------------------------------------------------------------------------
def param_gauge1(param_id)
return YEA::STATUS::PARAM_COLOUR[param_id][1]
end

#--------------------------------------------------------------------------
# param_gauge2
#--------------------------------------------------------------------------
def param_gauge2(param_id)
return YEA::STATUS::PARAM_COLOUR[param_id][2]
end

#--------------------------------------------------------------------------
# draw_parameter_title
#--------------------------------------------------------------------------
def draw_parameter_title
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(0, 0, contents.width, contents.height)
contents.fill_rect(rect, colour)
change_color(system_color)
text = YEA::STATUS::PARAMETERS_VOCAB
draw_text(0, line_height/3, contents.width, line_height, text, 1)
end

#--------------------------------------------------------------------------
# draw_properties_list
#--------------------------------------------------------------------------
def draw_properties_list
contents.font.size = YEA::STATUS::PROPERTIES_FONT_SIZE
draw_properties_column1
draw_properties_column2
draw_properties_column3
reset_font_settings
end

#--------------------------------------------------------------------------
# draw_properties_column1
#--------------------------------------------------------------------------
def draw_properties_column1
dx = 24
dw = (contents.width - 24) / 3 - 24
dy = 0
for property in YEA::STATUS::PROPERTIES_COLUMN1
dy = draw_property(property, dx, dy, dw)
end
end

#--------------------------------------------------------------------------
# draw_properties_column2
#--------------------------------------------------------------------------
def draw_properties_column2
dx = 24 + (contents.width - 24) / 3
dw = (contents.width - 24) / 3 - 24
dy = 0
for property in YEA::STATUS::PROPERTIES_COLUMN2
dy = draw_property(property, dx, dy, dw)
end
end

#--------------------------------------------------------------------------
# draw_properties_column3
#--------------------------------------------------------------------------
def draw_properties_column3
dx = 24 + (contents.width - 24) / 3 * 2
dw = (contents.width - 24) / 3 - 24
dy = 0
for property in YEA::STATUS::PROPERTIES_COLUMN3
dy = draw_property(property, dx, dy, dw)
end
end

#--------------------------------------------------------------------------
# draw_property
#--------------------------------------------------------------------------
def draw_property(property, dx, dy, dw)
fmt = "%1.2f%%"
case property[0]
#---
when :hit
value = sprintf(fmt, @actor.hit * 100)
when :eva
value = sprintf(fmt, @actor.eva * 100)
when :cri
value = sprintf(fmt, @actor.cri * 100)
when :cev
value = sprintf(fmt, @actor.cev * 100)
when :mev
value = sprintf(fmt, @actor.mev * 100)
when :mrf
value = sprintf(fmt, @actor.mrf * 100)
when :cnt
value = sprintf(fmt, @actor.cnt * 100)
when :hrg
value = sprintf(fmt, @actor.hrg * 100)
when :mrg
value = sprintf(fmt, @actor.mrg * 100)
when :trg
value = sprintf(fmt, @actor.trg * 100)
when :tgr
value = sprintf(fmt, @actor.tgr * 100)
when :grd
value = sprintf(fmt, @actor.grd * 100)
when :rec
value = sprintf(fmt, @actor.rec * 100)
when :pha
value = sprintf(fmt, @actor.pha * 100)
when :mcr
value = sprintf(fmt, @actor.mcr * 100)
when :tcr
value = sprintf(fmt, @actor.tcr * 100)
when :pdr
value = sprintf(fmt, @actor.pdr * 100)
when :mdr
value = sprintf(fmt, @actor.mdr * 100)
when :fdr
value = sprintf(fmt, @actor.fdr * 100)
when :exr
value = sprintf(fmt, @actor.exr * 100)
when :hcr
return dy unless $imported["YEA-SkillCostManager"]
value = sprintf(fmt, @actor.hcr * 100)
when :tcr_y
return dy unless $imported["YEA-SkillCostManager"]
value = sprintf(fmt, @actor.tcr_y * 100)
when :gcr
return dy unless $imported["YEA-SkillCostManager"]
value = sprintf(fmt, @actor.gcr * 100)
when :cdr
return dy unless $imported["YEA-SkillRestrictions"]
value = sprintf(fmt, @actor.cdr * 100)
when :wur
return dy unless $imported["YEA-SkillRestrictions"]
value = sprintf(fmt, @actor.wur * 100)
#---
else; return dy
end
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(dx+1, dy+1, dw-2, line_height-2)
contents.fill_rect(rect, colour)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, property[1], 0)
change_color(normal_color)
draw_text(dx+4, dy, dw-8, line_height, value, 2)
return dy + line_height
end


#--------------------------------------------------------------------------
# draw_actor_biography
#--------------------------------------------------------------------------
def draw_actor_biography
fmt = YEA::STATUS::BIOGRAPHY_NICKNAME_TEXT
text = sprintf(fmt, @actor.name, @actor.nickname)
contents.font.size = YEA::STATUS::BIOGRAPHY_NICKNAME_SIZE
draw_text(0, 0, contents.width, line_height*2, text, 1)
reset_font_settings
draw_text_ex(24, line_height*2, @actor.description)
end

#--------------------------------------------------------------------------
# draw_custom
#--------------------------------------------------------------------------
def draw_custom
current_symbol = @command_window.current_symbol
return unless YEA::STATUS::CUSTOM_STATUS_COMMANDS.include?(current_symbol)
method(YEA::STATUS::CUSTOM_STATUS_COMMANDS[current_symbol][3]).call
end

#--------------------------------------------------------------------------
# draw_custom1
#--------------------------------------------------------------------------
def draw_custom1
dx = 0; dy = 0
for skill in @actor.skills
next if skill.nil?
next unless @actor.added_skill_types.include?(skill.stype_id)
draw_item_name(skill, dx, dy)
dx = dx == contents.width / 2 + 16 ? 0 : contents.width / 2 + 16
dy += line_height if dx == 0
return if dy + line_height > contents.height
end
end

#--------------------------------------------------------------------------
# draw_custom2
#--------------------------------------------------------------------------
def draw_custom2
dx = 4; dy = 0; slot_id = 0
for equip in @actor.equips
change_color(system_color)
text = Vocab.etype(@actor.equip_slots[slot_id])
draw_text(dx, dy, contents.width - dx, line_height, text)
reset_font_settings
draw_item_name(equip, dx+92, dy) unless equip.nil?
slot_id += 1
dy += line_height
break if dy + line_height > contents.height
end
dw = Graphics.width * 2 / 5 - 24
dx = contents.width - dw; dy = 0
param_id = 0
8.times do
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
contents.fill_rect(rect, colour)
size = $imported["YEA-AceEquipEngine"] ? YEA::EQUIP::STATUS_FONT_SIZE : 20
contents.font.size = size
change_color(system_color)
draw_text(dx+4, dy, dw, line_height, Vocab::param(param_id))
change_color(normal_color)
dwa = (Graphics.width * 2 / 5 - 2) / 2
draw_text(dx, dy, dwa, line_height, @actor.param(param_id).group, 2)
reset_font_settings
change_color(system_color)
draw_text(dx + dwa, dy, 22, line_height, "→", 1)
param_id += 1
dy += line_height
break if dy + line_height > contents.height
end
end

#--------------------------------------------------------------------------
# draw_custom3
#--------------------------------------------------------------------------
def draw_custom3
return unless $imported["YEA-ClassSystem"]
data = []
for class_id in YEA::CLASS_SYSTEM::CLASS_ORDER
next if $data_classes[class_id].nil?
item = $data_classes[class_id]
next unless @actor.unlocked_classes.include?(item.id) or
YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS.include?(item.id)
data.push(item)
end
dx = 0; dy = 0; class_index = 0
for class_id in data
item = data[class_index]
reset_font_settings
if item == @actor.class
change_color(text_color(YEA::CLASS_SYSTEM::CURRENT_CLASS_COLOUR))
elsif item == @actor.subclass
change_color(text_color(YEA::CLASS_SYSTEM::SUBCLASS_COLOUR))
else
change_color(normal_color)
end
icon = item.icon_index
draw_icon(icon, dx, dy)
text = item.name
draw_text(24, dy, contents.width-24, line_height, text)
next if YEA::CLASS_SYSTEM::MAINTAIN_LEVELS
level = @actor.class_level(item.id)
contents.font.size = YEA::CLASS_SYSTEM::LEVEL_FONT_SIZE
text = sprintf(YEA::CLASS_SYSTEM::CLASS_LEVEL, level.group)
dwa = contents.width - (Graphics.width * 2 / 5 - 24) - 28
draw_text(dx, dy, dwa, line_height, text, 2)
class_index += 1
dy += line_height
break if dy + line_height > contents.height
end
dw = Graphics.width * 2 / 5 - 24
dx = contents.width - dw; dy = 0
param_id = 0
8.times do
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
contents.fill_rect(rect, colour)
contents.font.size = YEA::CLASS_SYSTEM::PARAM_FONT_SIZE
change_color(system_color)
draw_text(dx+4, dy, dw, line_height, Vocab::param(param_id))
change_color(normal_color)
dwa = (Graphics.width * 2 / 5 - 2) / 2
draw_text(dx, dy, dwa, line_height, @actor.param(param_id).group, 2)
reset_font_settings
change_color(system_color)
draw_text(dx + dwa, dy, 22, line_height, "→", 1)
param_id += 1
dy += line_height
break if dy + line_height > contents.height
end
end
end # Window_StatusItem

#==============================================================================
# ▼ Window_ElementStatus
#==============================================================================

class Window_ElementStatus < Window_Selectable

def initialize(x, y, width, height)
super(x, y, width, height)
@opacity = 255
end

def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end

def ignore_list
Status_Element::Ignore
end

def include?(item)
return true unless item.nil? || item.empty? || ignore_list.include?(item)
end

def item_max
@data ? @data.size : 1
end

def make_item_list
@data = $data_system.elements.select {|item| include?(item) }
@data.push(nil) if include?(nil)
end

def element_info(item)
Status_Element::Elements[item]
end

def attack_icon
Status_Element::Attack_Icon
end

def resist_icon
Status_Element::Resist_Icon
end

def element_resist(element_id)
if $imported["Elemental_Modifiers"]
element_rate = @actor.element_resist_rate(element_id)
else
element_rate = @actor.element_rate(element_id)
end
resist = "%d%" %[0 + (element_rate*100 - 100) * -1.to_i]
return resist
end

def element_damage(element_id)
if $imported["Elemental_Modifiers"]
element_rate = @actor.element_attack_rate(element_id)
else
element_rate = @actor.element_rate(element_id)
end
resist = "%d%" %[0 + (element_rate*100 - 100).to_i]
return resist
end

def draw_item(index)
item = @data[index]
if item
info = element_info(item)
icon_index = info[1]
rect = item_rect(index)
rect.width -= 4
draw_icon(icon_index, rect.x, rect.y) if icon_index
draw_text(rect.x + 32, rect.y, 172, line_height, item)
draw_icon(attack_icon, rect.x + 148, rect.y)
draw_text(rect.x + 180, rect.y, 172, line_height, element_damage(info[0]))
draw_icon(resist_icon, rect.x + 252, rect.y)
draw_text(rect.x + 284, rect.y, 172, line_height, element_resist(info[0]))
end
end

def refresh
make_item_list
contents.clear
draw_all_items
end

def slide_speed
10
end

def show
@opacity = 255
end

def hide
@opacity = 0
end

end # Window_ElementStatus
#==============================================================================
# ■ Scene_Status
#==============================================================================

class Scene_Status < Scene_MenuBase

#--------------------------------------------------------------------------
# start
#--------------------------------------------------------------------------
def start
super
create_help_window
create_command_window
create_status_window
create_item_window
relocate_windows
end


def on_status_ok
@element_window.show
@element_window.activate
end

def on_element_cancel
@element_window.hide
@status_window.activate
end
#--------------------------------------------------------------------------
# * Switch to Next Actor edited to stop that effin annoying element window popup
#--------------------------------------------------------------------------
alias adding_a_bloody_extra_step_for_element_effin_window_next_act next_actor
def next_actor
#turn this bad boy on already so we can hit the sack
$game_switches[YEA::STATUS::Switch_ID_To_Blow_Up_This_Joint] = true
adding_a_bloody_extra_step_for_element_effin_window_next_act
end
#--------------------------------------------------------------------------
# * Switch to Previous Actor edited to stop that effin annoying element window popup
#--------------------------------------------------------------------------
alias adding_a_bloody_extra_step_for_element_effin_window_prev_act prev_actor
def prev_actor
#turn this bad boy on already so we can hit the sack
$game_switches[YEA::STATUS::Switch_ID_To_Blow_Up_This_Joint] = true
adding_a_bloody_extra_step_for_element_effin_window_prev_act
end
#--------------------------------------------------------------------------
# create_command_window
#--------------------------------------------------------------------------
def create_command_window
wy = @help_window.height
wy = @help_window.height
@command_window = Window_StatusCommand.new(0, wy)
@command_window.viewport = @viewport
@command_window.actor = @actor
@command_window.help_window = @help_window
@command_window.set_handler(:cancel, method(:return_scene))
@command_window.set_handler(:pagedown, method(:next_actor))
@command_window.set_handler(:pageup, method(:prev_actor))
process_custom_status_commands
end

#--------------------------------------------------------------------------
# process_custom_status_commands
#--------------------------------------------------------------------------
def process_custom_status_commands
for command in YEA::STATUS::COMMANDS
next unless YEA::STATUS::CUSTOM_STATUS_COMMANDS.include?(command[0])
called_method = YEA::STATUS::CUSTOM_STATUS_COMMANDS[command[0]][2]
@command_window.set_handler(command[0], method(called_method))
end
end

#--------------------------------------------------------------------------
# create_status_window
#--------------------------------------------------------------------------
def create_status_window
wy = @help_window.height
@status_window = Window_StatusActor.new(@command_window.width, wy)
@status_window.viewport = @viewport
@status_window.actor = @actor

end

#--------------------------------------------------------------------------
# create_item_window
#--------------------------------------------------------------------------
def create_item_window
dy = @command_window.y + @command_window.height
@item_window = Window_StatusItem.new(0, dy, @command_window)
@item_window.viewport = @viewport
@item_window.actor = @actor
@command_window.item_window = @item_window
end

#--------------------------------------------------------------------------
# relocate_windows
#--------------------------------------------------------------------------
def relocate_windows
return unless $imported["YEA-AceMenuEngine"]
case Menu.help_window_location
when 0 # Top
@help_window.y = 0
@command_window.y = @help_window.height
@item_window.y = @command_window.y + @command_window.height
when 1 # Middle
@command_window.y = 0
@help_window.y = @command_window.height
@item_window.y = @help_window.y + @help_window.height
else # Bottom
@command_window.y = 0
@item_window.y = @command_window.height
@help_window.y = @item_window.y + @item_window.height
end
@status_window.y = @command_window.y
end

#--------------------------------------------------------------------------
# on_actor_change
#--------------------------------------------------------------------------
def on_actor_change
@command_window.actor = @actor
@status_window.actor = @actor
@item_window.actor = @actor
@command_window.activate
end

#--------------------------------------------------------------------------
# new method: command_name1
#--------------------------------------------------------------------------
def command_name1
SceneManager.call(Scene_Skill)

end

#--------------------------------------------------------------------------
# new method: command_name2
#--------------------------------------------------------------------------
def command_name2
SceneManager.call(Scene_Equip)

end

#--------------------------------------------------------------------------
# new method: command_name3
#--------------------------------------------------------------------------
def command_name3
unless $imported["YEA-ClassSystem"]
@command_window.activate
return
end
SceneManager.call(Scene_Class)
end

end # Scene_Status

#==============================================================================
#
# ▼ End of File
#
#==============================================================================

Hospital Prizes

$
0
0

Hospital Prizes

Introduction

This script provides prizes for party when uses hospital services.

Features

- Nice layout (From Yanfly's Hospital in RGSS2)

- Easily to control prize requirements.

Screenshots

JlpwY.png

Download & Manual

Get them here

Requirement

Hospital Scene (Updated: 2012.11.13)

Credit

Yami

Yanfly (for his cool layout)

Crafting Script v3.8 - Updated 2/26/2015

$
0
0

Crafting Script v3.8

by Venka, based off GubiD's VX Cooking Script

 

Description:
This is a script will allow you to have a crafting system in your games. It has a crafting timer bar so you must activate it at the right time to successfully make an item. Crafting results vary depending on when you craft your item. You can set up a premature crafted item, for example you can craft some dough instead of bread if you activate too soon, or a burned product if you allow it to go for too long. You can use more then one craft. The demo has Cooking, Smithing, and Alchemy crafts (but you can make your own). Each craft has it's own exp and recipes.
 
Customization:
- You can customize the colors of the level up gauge and the cooking gauge colors.
- Set of font settings for various parts of the crafting scene.

- You can choose to use line separators to break up the information displayed.

- Set sounds for failure, success, opening the scene.. etc
- Set the sounds that play when crafting as well

- Each crafting type can use it's own music and background image.
- Set the pop up message for after crafting.
- Set the exp requirements for each crafting skill. (For example: Alchemy might take more to level up then Cooking). You can now also turn the exp off and do away with the levels if you wish.
- You can set craft Mastery text that will show in the top of the Scene. (For example after maxing out Cooking, you could be called a "Top Chef")
- Allows a variance to craft times (sometimes it might take a little longer to make a potion)
- You have the option of allowing lower level recipes to craft at a faster rate.

- You can also change the way the crafting gauge works. You can turn it off and always have a successfully crafted item, or turn it on and either have a progress bar that will fill up as you finish crafting your item or set it to an active bar that requires input from the player to make a good item.

- Added the ability to craft stacks of items since this has been requested a few times and I've made custom scripts each time.. figured I'd just make it a feature you can turn on/off.

 

What's new?

Fixed a minor equipment counting bug and added the option of setting the claim time by craft type.

 

The spoiler tag has the change log notes.

#===============================================================================# - Change Log -#------------------------------------------------------------------------------# 12/15/2014 - Fixed BGM's so the play through the craft scene if no new BGM#              was set.# 10/27/2014 - Fixed equipment count so it counts if an actor is wearing more#              then one piece of the same item - Like two of the same Rings.#            - You can set claim/buffer time by craft type now.# 09/15/2014 - Changes to make it a bit more friendly for the new bigger screen#              size RGSS301.dll. I just stretched the background images to#              make the scale to any resolution and made the windows scale more#              evenly in the higher resolutions.# 09/08/2014 - Fixed the change_level script call to award the correct amount#              of exp.# 09/04/2014 - You wouldn't auto learn recipes when using the script call to#              change levels. This has been fixed.#            - Added a new script call to set the craft to a specific level.#            - Crafting background images will now check the Titles1 Folder#              for images first and if it doesn't find one in that folder then#              it'll look for the image in the Pictures folder.# 09/01/2014 - Made the code more efficient for the Menu Add on.#            - No changes were made to the customize section so no need to#              replace that section if you are upgrading.# 08/17/2014 - Made it so you can use this script without using craft exp and#              levels. The pop up window will shrink as well if no exp is#              earned.#            - Put in fail safes for if an item is listed as required, but set#              to zero (so you won't get the divide by 0 error).# 08/01/2014 - Made slight changes to the way the crafting result info was#              stored for the actor stats add-on. Also small changes to#              the crafting stack number in the Details window.# 07/24/2014 - Added a font height method to Window_Base for general purpose#              use.# 07/21/2014 - Gave some attention to the result window. It will now scale in#              size and show learned recipes when you level up a craft.#            - Added display names to recipes. So a recipe could be called#              "Super Awesome Recipe" instead of whatever the item is it#              creates.# 07/05/2014 - Incorporated the Tools Add-on into the main script.#            - When counting items already owned (at the top of the recipe info#              window, not the ingredients themself), it'll count equipped items#            - Allows crafting of stacks of ingredients as this is a common#              request. You can set if you want to allow the player to craft#              stacks.#            - Added in Opacity settings for all the windows in the scene.#            - Added more text control settings#            - Changed the text color of the required level in the recipe#              detail window if the current level is insufficient.#            - Fixed potential  spacing issues with the text in the Result Window# 06/28/2014 - fixed an enable bug introduced in the previous update.# 06/13/2014 - Allow sorting of the recipe list by level, alphabetically, or#              order created.#            - Small fixes here and there for the new Shop Craft & Decompile#              add-on script.#            - Added in :shop_fee for set up with the Shop Craft & Decompile#              add-on script. This option can be omitted in the Recipe setup#              if you have no intentions of using that add-on.#            - The recipe list window was only returning the check of the last#              item in the list. So if you had that ingredient, it would allow#              you to try and craft the recipe. You still couldn't craft it#              without all the items, but it didn't gray out like it should.#            - Move the Customize and Instructions section to it's own entry#              in the script editor so its easier to update the script without#              having to move settings back in from older versions.#            - Allows you set set what time of crafting gauge you want. There#              are now 3 options. The standard activated gauge where the action#              key needs to be pressed at a certain time. You can now make the#              gauge a progress bar that just shows when you'll finish crafting.#              Or you can just do away with the bar and instantly craft the#              item.# 05/28/2014 - Updated the script to auto fail the craft if the max craft time#              is reached before the action key is pressed.#            - Fixed the map's BGM to save instead of resetting it.# 05/22/2014 - Fixed some bugs in the auto learning feature (wasn't auto#              auto learning on craft level changes).# 03/09/2014 - Allows for the automatic learning of recipes when the craft#              levels up (you can choose to use this option or not)#            - Re-formated the way the craft type information is input. More#              and more information was being stored here and the old way was#              getting hard to follow.#            - Made the script compatible with modern algebra's Icon Hues.#            - Added a script call for conditional branches# 02/20/2014 - Allows active crafting sounds (like a hammer while smithing)#              The sounds can be a SE or a BGS# 01/31/2014 - Allows a failure item if crafting before the set time#            - Allows you to use gold in crafting recipes#            - Allows you to set background pictures/music for each craft type#            - Option for using line separators#            - Recipe List window will gray out recipes if requirements for#              crafting are not met.#            - Fixed compatibility issue with LoneWolf's trash symbol fix#            - Fixed some typos and misspelled words# 12/13/2013 - Made inputting item info easier for the user.# 10/15/2013 - Fix a bug failed item bug introduced in previous patch.#              Fixed a max level bug (could still get exp after max level)#              Allows you to give custom crafter mastery titles.# 10/11/2013 - Cleaned up some code.#              Added a random craft time setting to allow for some variance#              in craft times. Also added the ability to speed up the craft#              time in relation to how easy it is for you to make.#              Example: a level 1 recipe should be fast for a level 30 crafter.#  9/30/2012 - Upgraded to version 2.0. Allows use of items, weapons, armor.#              And you can have multiple crafting skills each with their own#              Levels, Recipes, and Exp.#  8/23/2013 - Initial port from VX to VXAce##===============================================================================

 

Screenshots:

Finally got some updated screen shots loaded.

post-2313-0-15590200-1407010081_thumb.pn post-2313-0-86289900-1407010111_thumb.pn

post-2313-0-11510900-1407010123_thumb.pn

Some of the Add-Ons:

post-2313-0-29753200-1407010330_thumb.pn post-2313-0-69430000-1407010341_thumb.pn

post-2313-0-04374300-1407010350_thumb.pn post-2313-0-65679900-1411410533_thumb.pn

Demo:
Dropbox: Crafting Script v3.8 - https://www.dropbox.com/s/ip3s83koj7qxwo8/Crafting%20Script.exe?dl=0

Mediafire download (and zip file) - http://www.mediafire.com/download/sh9o0xvqwz1s6ob/Crafting+Script+-+v3.8.rar

 

WARNING:
If you are updating to v2.3 from a previous version, you will need to start a new game.

 

Also the script uses items I added to the database in the demo to demonstrate how the script works. So plugging the script into a completely new project will give errors.
 
Credits:
Mack for some of the tiles used in the demo

Ying for his wonderful icons used for the fishing stuff
Venka for the updated script.
GubiD for the original script (permission granted to post).

 

Sixth has a edited version of this script to use with Vlue's Weapon/Armor Randomization Script. You can find the add on here.

Thanks:
posters in this thread of feedback and suggestions

ShadowFox for testing out the scripts before 2.0 release
 
Usage:
Free to use for whatever purpose you see fit ;)
Yes this means you can use it commercially.

 

Add-ons:

Difficulty Settings - NEW!!

This add on lets you set up difficulty ranks for recipes. You can craft recipes above your current crafting level, but with a chance of failing. You can set the level ranges/tiers and set their fail rate as well as the color of the recipes name in the list window.

 

Menu access add-on - Updated 09/01/2014

This add on allows you to view all your recipes from the main menu. You can not craft from the menu.

The update to this script was to allow large number of crafting types to be displayed without making the text too hard to read.

 

Actor Specific Recipes - Updated 07/21/2014

This add on allows actors or classes to learn recipes apart from the party recipes. Recipes are learned as you level up. Use note tags to set up how each recipe is learned - via crafting level, or class level. You can also set if the actor forgets the recipe when the loose levels.

The last option is how the recipes will show in the list. You can require the actor to be the leader, in the active party, or just a party member (can be in the reserve).

 

Shop Recipes - Updated 07/07/2014

Allows you to buy recipes from a shop npc. You won't be able to buy the recipe or recipe books if the recipes are already known. This will prevent the player from wasting money.

 

NPC Crafters/Decompilers - Updated 10/14/2014

This add on will allow shop keepers that can craft items for you even if you do not know the recipe. They have the option of charging you more supplies and a fee should you hire them. They can also break down items for you in exchange for crafting components.. for a price :)

 

Tools Add-on - Outdated as of Crafting v3.0 (it was incorporated into the main script)

This add on will let you list a tool in the required items. Items with <tool> in their note tag box will not be consumed when crafted. Tools can be an item or a weapon.. or an armor if for some reason you can think of armor being a tool... :)

 

Actor Stats - Updated 09/01/2014

Allows you to preview stat changes for an item before crafting it. You can craft the item from the preview window for the actor selected. This add on has lots of customizable features and is compatible with the other crafting script add ons and Yanfly's Equipment Engine (extra equipment slots).

 

Claim Time Addon by Sixth- NEW!!

Gives you more control over the claim window when using the active crafting option. You can even have equipment that lets you get bigger windows of opportunity.

 

For more in depth explanation of how to set up new crafts and recipes, check out this post.

 

Known Issues:

None I know about.

DoubleX RMVXA Tag Addon to Yami Engine Symphony - Battle Symphony

$
0
0

DoubleX RMVXA Tag Addon v1.00a to Yami Engine Symphony - Battle Symphony

by DoubleX

 

Prerequisites

Yami Engine Symphony - Battle Symphony

http://forums.rpgmakerweb.com/index.php?/topic/6037-battle-engine-symphony/?hl=%2Bbattle+%2Bengine+%2Bsymphony

 

Introduction

Allows users to add their own symphony tags for battler selections

#==============================================================================|#  ** You only need to edit this part as it's about what this script does      |#------------------------------------------------------------------------------|module DoubleX_RMVXA  module YES_BattleSymphony_Tag_Addon    # This method will only be called by methods get_action_mains and    # get_action_targets under class Scene_Battle    def self.symphony_tag(action, result)      case action      # Example new symphony tag: id x, game actor with id x      when /ID[ ](\d+)/i        result.push($game_actors[$1.to_i])      #      #-------------------------------------------------------------------------      # Add your own symphony tags here            #      #-------------------------------------------------------------------------      end      return result    end # self.symphony_tag  end # YES_BattleSymphony_Tag_Addonend # DoubleX_RMVXA#==============================================================================|

You may want to 'upgrade' the example new symphony tag to this(it can handle any number of game_actor ids):

# Example new symphony tag: id x y - game actors with id x and y respectivelywhen /ID[ ](\d+(?:\s* \s*\d+)*)/i  $1.scan(/\d+/).each { |num|    result.push($game_actors[num.to_i])  }

 

Features

Decent symphony tag and scripting knowledge is needed to use this script

 

How to use

Open the script editor and put this script into an open slot below the script Yami Engine Symphony - Battle Symphony but above Main. Save to take effect.

 

FAQ

Q1: How to use symphony tags?

A1: Check http://forums.rpgmakerweb.com/index.php?/topic/19884-a-guide-to-yamis-battle-symphony/?hl=symphony

Q2: How to add new symphony tags using this script without having any scripting knowledge?

A2: You can ask for solutions to deal with specific tags you want to add here(but I may be too nub to answer :)), but right now I don't think I'm competent enough to teach general knowledge for adding new symphony tags XD

 

Credit and Thanks

DoubleX(Giving me credit is completely optional)

The terms of use is the same as that of Yami Engine Symphony - Battle Symphony except that you must also give Yami credit(you should do this anyway) if you give DoubleX or his alias credit

 

Compatibility
Same as that of Yami Engine Symphony - Battle Symphony

 

Changelog

v1.00a(GMT 0200 7-3-2014):

- 1st version of this script finished

 

(DoubleX)YES-Symphony Tag Addon v1.00a.txt

[RGSS3] - Conflict between scripts

$
0
0

Hello everybody.

I have two precious custom scripts, in my project: Seer UK & OriginalWij's Fixed Pictures and Woratana's Pictures Below Characters. The former allows me to use pictures as parallaxes displayed over the default tiles, while the latter, given a range of pictures by ID, will put those pictures under characters and above tiles. The problem is that, when the map is too big to fit in the screen all at one time, the pictures whose ID is in the range choosen for Woratana's Pictures Below Characters won't be displayed until the origin of the pictures (the coordinates you select on dysplay image command) will be visible in game. 

So far, I tried to put Woratana's script below Seer UK and OriginalWij's one, but the game freezes on opening returning an error in Woratana's script, so here is my question: could you help me find a way to make theese two scripts work finely together? Thank you in advance :)
 

P.S.: the scripts are in the spoilers.

 

Spoiler

#===============================================================
# ● [VXAce] ◦ Pictures under Characters ◦ □
# * Show pictures under characters on map but above map tiles *
#--------------------------------------------------------------
# ◦ by Woratana [woratana@hotmail.com]
# ◦ Thaiware RPG Maker Community
# ◦ Released on: 22/02/2009
# ◦ Version: 1.0
#
# This works but not compatible with the other scripts
# Credits: Woratana, bug fixes by SuppaYami and Kread-Ex.
#--------------------------------------------------------------
# ◦ Update:
#--------------------------------------------------------------
# □ Version 1.0 (22/02/2009)
# - Unlimited numbers of picture under characters
#
#--------------------------------------------------------------
# ◦ Compatibility:
#--------------------------------------------------------------
# □ This script will rewrite 0 method(s):
#
#
# □ This script will alias 2 method(s):
#     Spriteset_Map.create_pictures
#     Sprite_Picture.update
#
# □ This script should work with most scripts
#
#--------------------------------------------------------------
# ◦ Installation:
#--------------------------------------------------------------
# 1) This script should be placed JUST AFTER ▼ Materials.
#
# □ Like this:
# ▼ Materials
# *Pictures under Characters
# ...
# ...
# ▼ Main Process
# Main
#
# 2) Setup this script in Setup Part below.
#
#--------------------------------------------------------------
# ◦ How to use:
#--------------------------------------------------------------
# □ Place this script and setup in the setup part.
#
#=================================================================

class Spriteset_Map

  #=================================================================
  # ++ Setup Part
  #-----------------------------------------------------------------
  FIRST_PICBELOW_ID = 1 # First ID of picture that will show below characters
  LAST_PICBELOW_ID = 1 # Last ID of picture that will show below characters

  #   For example, if you set FIRST to 10 and LAST to 15, picture ID 10-15
  # will show below characters on map.
  #=================================================================

  alias wora_picbelow_sprsetmap_crepic create_pictures

  #--------------------------------------------------------------------------
  # * Create Picture Sprite
  #--------------------------------------------------------------------------
  def update_pictures
    $game_map.screen.pictures.each do |pic|
      case pic.number
      when FIRST_PICBELOW_ID..LAST_PICBELOW_ID
        #puts 'below'
        @picture_sprites[pic.number] ||= Sprite_Picture.new(@viewport1, pic)
      else
        @picture_sprites[pic.number] ||= Sprite_Picture.new(@viewport2, pic)
      end
      @picture_sprites[pic.number].update
      ## Mithran's pic fix code ~Kread
      if pic.name == ""
        $game_map.screen.pictures.remove(pic.number)
        @picture_sprites[pic.number].dispose
        @picture_sprites[pic.number] = nil
      end
    end
  end
end

class Sprite_Picture < Sprite
  alias wora_picbelow_sprpic_upd update

  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update(*args)
    wora_picbelow_sprpic_upd(*args)
    ## Override's Mithran Picture Fix ~Kread
    if @picture.number.between?(Spriteset_Map::FIRST_PICBELOW_ID,
    Spriteset_Map::LAST_PICBELOW_ID)
      self.viewport = MA_FixPicture.send(:"spriteset_vp#{1}")
      self.z = 50
    end
end
end
 

Spoiler

#==============================================================================
# Fixed Pictures
#==============================================================================
# Author : Seer UK & OriginalWij
# Version : 1.2
#
# Credit: Seer UK
#         OriginalWij (Original RGSS2 Script)
#==============================================================================

#==============================================================================
# To use:
#   put the tag [FIXED] in the affected picture's filename
#==============================================================================

#==============================================================================
# What this does:
#   fixes tagged pictures to the map (scrolls with the map)
#==============================================================================

#==============================================================================
# Sprite_Picture
#==============================================================================

class Sprite_Picture < Sprite
  #----------------------------------------------------------------------------
  # Update                                                              [ MOD ]
  #----------------------------------------------------------------------------
  def update
    update_bitmap
    update_origin
    if @picture.name.include?("[FIXED]")
      self.x = 0 - $game_map.display_x * 32
      self.y = 0 - $game_map.display_y * 32
    else
      update_position
    end
    update_zoom
    update_other
  end
end

 

V's Custom Animated Title Scene v2.7

$
0
0

V's Custom Animated Title Scene  v2.7
Written ku8i.png


Introduction
This script allows you to go well above and beyond what you can normally do to edit the title screen.
 
Features

  • Allows you to set up of multiple layers for animations as well as the cursor animations.
  • Allows for full control of the x, y and z positions of the commands.
  • Options for both horizontal and vertical command window layouts.
  • Allows for Images to be used instead of text for the commands.
  • Allows you to set up an image when you can not access the continue option.
  • Allows you to fully manipulate the title screens audio.
  • Allows you to create a clock on your title screen set to real time.
  • Allows you to optionally set up an initializing time for each layer with a new set of animations.
  • Option for a splash movie to play before the title appears or after selecting New Game.
  • Options to set a starting angle, blend, for all layers and maximum opacity for the fade animations
  • Option to permanently fade out an image.
  • Option for a minimum fade opacity for the fade in and out animation type.
  • There is now a timer to activate the command window

Animations Types

  • Rotating ~ Spins layer graphic clockwise or counter clockwise.
  • Looping ~ moves layer graphic up, down, left, and right, in a looping method.
  • Fade ~ Fades layer graphic opacity in and out.
  • Time ~ rotates layer graphic according to system hour or minute.
  • Wave ~ Makes the image move like a wave.
  • Blend ~ Makes the image flash.
  • Variable ~ Allows you to change the image name according to the variable value.
  • Cursor ~ Changes the layers x or y values according to the cursor index.
  • Initialize Rotate~ Allows you to spin the image while it is initializing .
  • Initialize Move~ Moves the object until it reaches a set x or y position.
  • Initialize Fade In~ Allows you to fade the image in while it is initializing.
  • Splash Movie ~ Allows you to play a movie either before the title appears or after a New Game has be selected.
  • Fade Out ~ Allows you to permanently fade out a pictures.

Screenshots
See demo for visual examples.
 

Updates / Bug Fixes

Any and all changes made can be found in the Description section located in the top portion of the script.


How to Use

Instructions can be found in the top of the script.
I have also create a help guide that can be found in the demo or at this link.


Script

Here is a link to the script.
 
 
Demo

Here is a link to the demo.


Requests
If anyone has any requests for alterations please PM me the details and I will try to accommodate them for you.
 

 

Terms

Here is a link to my terms




 

Really??? It can do all that??? Why, yes it can!!!


Modified Map Name Display

$
0
0

Map Name Display Plus v 1.0

by Majirefy

Introduction

This script will dislpay your map name in a modified way when switching between maps in Ace.

Features

- Easy to custom style

- Good for muti-language or add descriptions for map

- Make your game more "PRO"(at least I believe that... :D )

How to Use

  1. Paste above main
  2. Turn to Scence_Map section, on Line 161, change @map_name_window = Window_MapName.new to @map_name_window = Window_MapNamePlus.new
  3. In Map Properties window, set Display Name in format like: name1@name2. nam1 will be set above the split line and in bigger font size, while name2 will be below the split line and in smaller font size
  4. Run your game and see the change.

Demo

MapNamePlus.zip

Screenshot

post-1371-0-75230400-1340771634_thumb.pn

Script


# encoding: utf-8
#==============================================================================
# ** Window_MapNamePlus
#------------------------------------------------------------------------------
# This window displays the map name.
#------------------------------------------------------------------------------
# This class replaces the default Window_MapName class, adding more
# modification and custom.
#------------------------------------------------------------------------------
# Author: Majirefy
#------------------------------------------------------------------------------
# Guide:
# To use this script, create a new section below Materials in Script Editor
# and paste the script there. Then turn to Scene_Map section, find string
# "Window_MapName.new", replace it by "Winodw_MapNamePlus.new".
# Map name should be set in pattern like "拉普兰德@Lapland", using symbol "@"
# to split Chinese character and English text. You can also use "@" to split
# everything in map name.
#------------------------------------------------------------------------------
# Version: 1.0 - 20120502
# First Release
#==============================================================================
class Window_MapNamePlus < Window_Base
#--------------------------------------------------------------------------
# * Settings
#--------------------------------------------------------------------------
FONT_NAME_CH = ["PMingLiU", "FangSong"] # Chinese Font Name
FONT_SIZE_CH = 42 # Chinese Font Size
FONT_NAME_EN = ["Monotype Corsiva"] # English Font Name
FONT_SIZE_EN = 28 # English Font Size
FONT_BOLD = false # True if Font in Bold
FONT_COLOR = Color.new(255, 255, 255, 255) # Color of Font
FONT_OUT = true # True if Font Has Outline
OUT_COLOR = Color.new(0, 0, 0, 200) # Color of Outline Color of Font
FONT_SHADOW = false # True if Text Drops Shadow
MODIFIER = "~" # Modifier Added beside Map Name
PADDING = 8 # Padding between Window's Frame and Contents
LINE_HEIGHT = 6 # Height of Split Line
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :map_name_ch # Chinese Map Name
attr_reader :map_name_en # English Map Name
attr_reader :line_x # Split Line X Coordinate
attr_reader :line_y # Split Line Y Coordinate
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
#----------------------------------------------------------------------
# * Set the window in the middle of screen.
#----------------------------------------------------------------------
super(((Graphics.width - window_width) / 2),
((Graphics.height - (FONT_SIZE_CH + FONT_SIZE_EN + PADDING * 4 + LINE_HEIGHT)) / 2),
window_width, FONT_SIZE_CH + FONT_SIZE_EN + PADDING * 4 + LINE_HEIGHT)
#----------------------------------------------------------------------
# * Custom font and style.
#----------------------------------------------------------------------
contents.font.bold = FONT_BOLD
contents.font.color = FONT_COLOR
contents.font.outline = FONT_OUT
contents.font.out_color = OUT_COLOR
contents.font.shadow = FONT_SHADOW
#----------------------------------------------------------------------
# * Set Window Opacity
#----------------------------------------------------------------------
self.opacity = 0
self.contents_opacity = 0
@show_count = 0
refresh
end
#--------------------------------------------------------------------------
# * Get Window Width
#--------------------------------------------------------------------------
def window_width
return Graphics.width
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
if @show_count > 0 && $game_map.name_display
update_fadein
@show_count -= 1
else
update_fadeout
end
end
#--------------------------------------------------------------------------
# * Update Fadein
#--------------------------------------------------------------------------
def update_fadein
self.contents_opacity += 16
end
#--------------------------------------------------------------------------
# * Update Fadeout
#--------------------------------------------------------------------------
def update_fadeout
self.contents_opacity -= 16
end
#--------------------------------------------------------------------------
# * Open Window
#--------------------------------------------------------------------------
def open
refresh
@show_count = 150
self.contents_opacity = 0
self
end
#--------------------------------------------------------------------------
# * Close Window
#--------------------------------------------------------------------------
def close
@show_count = 0
self
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
set_map_name
unless $game_map.display_name.empty?
draw_map_name
end
end
#--------------------------------------------------------------------------
# * Draw Line
#--------------------------------------------------------------------------
def draw_line(rect)
temp_rect = rect.clone
temp_rect.height = LINE_HEIGHT
temp_rect.width /= 4
contents.gradient_fill_rect(temp_rect, color2, color1)
temp_rect.x += temp_rect.width
temp_rect.width *= 2
contents.fill_rect(temp_rect, color1)
temp_rect.x += temp_rect.width
temp_rect.width /= 2
contents.gradient_fill_rect(temp_rect, color1, color2)
end
#--------------------------------------------------------------------------
# * Set Map Name
#--------------------------------------------------------------------------
def set_map_name
temp_map_name = $game_map.display_name.split("@")
@map_name_ch = temp_map_name[0].to_s
@map_name_en = MODIFIER + " " + temp_map_name[1].to_s + " " + MODIFIER
end
#--------------------------------------------------------------------------
# * Draw Map Name
#--------------------------------------------------------------------------
def draw_map_name
set_line_position
set_line_width
temp_line_rect = Rect.new(@line_x, @line_y, set_line_width, LINE_HEIGHT)
draw_line(temp_line_rect)
temp_name_rect_ch = Rect.new(0, 0, contents.width, FONT_SIZE_CH)
contents.font.name = FONT_NAME_CH
contents.font.size = FONT_SIZE_CH
draw_text(temp_name_rect_ch, @map_name_ch, 1)
temp_name_rect_en = Rect.new(0, FONT_SIZE_CH, contents.width, FONT_SIZE_EN)
contents.font.size = FONT_SIZE_EN
contents.font.name = FONT_NAME_EN
draw_text(temp_name_rect_en, @map_name_en, 1)
end
#--------------------------------------------------------------------------
# * Set Line Width
#--------------------------------------------------------------------------
def set_line_width
text_width_ch = text_size(@map_name_ch).width * 1.5
text_width_en = text_size(@map_name_en).width * 1.5
(text_width_ch >= text_width_en) ?
(text_width_ch) : (text_width_en)
end
#--------------------------------------------------------------------------
# * Set Line Position
#--------------------------------------------------------------------------
def set_line_position
@line_x = (contents.width - set_line_width) / 2
@line_y = (contents.height - LINE_HEIGHT) / 2
end
#--------------------------------------------------------------------------
# * Get Color 1
#--------------------------------------------------------------------------
def color1
Color.new(255, 255, 255, 255)
end
#--------------------------------------------------------------------------
# * Get Color 2
#--------------------------------------------------------------------------
def color2
Color.new(255, 255, 255, 0)
end
end

Notes

This is my first time working with script and I am thirst to have some advices from you.

Have fun and give me reply if that won't bother you! :wub:

[RGSS2/3]MSX - XP Characters on VX/VXAce

$
0
0

Is it me or can you just make a custom XP-chara image file and put it into the graphics/characters map?

What's the use of this script?

Graphics States

$
0
0

State Graphics Script v1.3

Created by Neon Black

 

What is it?
This script allows states to change an actor's or an enemy's graphic while a state is applied to the battler.  This change lasts while the state is applied.  You can make changes to a battler's battle graphic, character sprite, or face as well as changing the character's name.  While multiple states are active that change graphic, the highest priority state with a type of change is the one to take effect.

 

How can I use it?
Insert this below materials and above main.  This script works using several different tags.

  • battler gfx["name" 0] -or- enemy battler gfx["name" 0 1,2,3] -or- actor battler gfx["name" 0 1,2,3] - Changes the in battle graphics of a battler applied with the state.  The short version (battler gfx["name" 0]) will change both actors and enemies while it is applied.  The long version only works on either actors or enemies and requires you to add the IDs of the actors or enemies whose graphics you want to change, each separated by commas.  For this tag, "name" is the name of the file and MUST be surrounded in quotes.  0 in this case is the hue, which must be a number from 0-255.  1,2,3 are the IDs of the actors or enemies whose graphics will be changed by the state.  These can be changed to reflect the desired graphic, hue, or battler IDs as needed.
  • face gfx["name" 3] -or- character gfx["name" 3] -etc- - Work exactly like the tags above only on faces and walking sprites.  In this case the "3" is the index of the graphic to use from a sheet.  These can also be prefixed with "actor" or "enemy" such as "actor face gfx["name" 3, 1,2,3]".
  • name change["name"] -or- actor name change["name" 1,2,3] -or- enemy name change["name" 1,2,3] - changes the name of the battler with the state applied.  Can be used for a character in disguise or a shape shifting enemy that you don't want to completely transform.
     
  • stack gfx[1] - Adding this tag after any other tag will cause the change to only take effect while a state is at a certain stack level.  The 1 can be any number from 1 or above.

What does it work with?
This script should be compatible with most other script, but it assumes that enemies do not have face or character sets.  If you find another script that this is incompatible with, first try place this script ABOVE the other script.  If you still note issues with it, follow the instructions in the compatibility section in the script and then move the script BELOW the other script.  If you are still having problems, leave a message with your issue here.

 

How can I get the code?
Version 1.3 (base script, 8.17.2013) is available from my pastebin account here.

 

I would like to use this code.
80x15.png
This work is licensed under a Creative Commons Attribution 3.0 Unported License and is available for commercial and non-commercial use.

 

Author's Disclaimer:
Since it seemed a few people really wanted a script like this, I took the time to make it.  While working on it I got a lot of interesting ideas with transforming which led to one or two other scripts being developed to go along with it.  Overall it makes states a little bit more interesting to work with.  As always, enjoy!

Spell Tiers

$
0
0

AuthorMr Trivel

Name: Spell Tiers

 

Version: 1.1

 

Version History:

1.1 - Completely rewritten with less and lighter code. Removed Tier limit of 8. Tiers are limitless now. Also removed battle system overwriting.

 

Features: 
Instead of having unlimited skills this script will limit your class. You can set any number of tiers for your class. Each tier consists of up to 3 individual skills.

 

Screenshots: 

mrts_skill_tiers-0.pngmrts_skill_tiers-1.png\mrts_skill_tiers-3.png

 

 

Instructions: 

Set <Max Tier: X> in classes Note boxes to  set the highest tier they can have.
Set <Tier: X> in spell's Note box to set  tier of that spell.

 

 

Script: <Link: Pastebin>

Blog: <Link: On blog>

[Ace] Difficulty Script v5.0 **UPDATED****NEW**

$
0
0

I have been wanting to write a difficulty script for a long time now. With the help of Dekita it has finally happened. While it is extremely simple right now, I do plan on having some more features. I just don't know what to add really.
 
I will post the script here as it's very short, but if I end up do adding stuff, and it gets too long it will be put on pastebin, or something like that.

 
Here is the script:

#=============================================================================##Script By: Bloodmorphed#Difficulty Script v3.5##Change Log:#v5.0# This is a decently big change. This version completely enables full#customization. There is no longer set in stone rules, if you want higher then#4 difficulties all you have to do is add them! I have also enabled you to use#more then 4 battlers for difficulties. You just have to change it where it#is needed.#It's Located in Script: Game_Party (Line 72) Change the return 4 to whatever.## Now a little bit how it works now.#    Param_Settings = { #don't touch#     Corresponding Params:#               MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK#      :easy => [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5],#      :normal => [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],#      :hard => [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0],#      :insane => [4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0],#      } #don't touch# This is the old way I have it, it will stay the same... unless you want to#change it. You can even change the name of them, for example :easy could be#renamed to :normal### Here is an example:#    Param_Settings = { #don't touch#     Corresponding Params:#               MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK#      :normal => [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5],#      :medium => [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],#      :hard => [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0],#      :insane => [4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0],#      :impossible = > [6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0],#      } #don't touch## See how I changed the name of two, AND created another one? Yup that works.#Now, while this will work seamlessly for using the Party, very easily, you#have to know what the variable you will be corrisponds to what.##```NOTICE````NOTICE!!!!!!#If you change ANYTHING on one thing, you MUST change it on everything! #(otherwise you will either get errors, or weird changes)#If you re-name :easy in one thing, you must re-name it in all things. if you also#make a new difficulty, such as :impossible above, you MUST make it every where else, as well.#Everything must have the same order as well! If it is:#:normal :medium :hard in one category it must be the same for every category.#For example you cant have it like this :medium :normal :hard in one category and the other way in another!### Let's say this is our Enemy settings, which is set to 99 variable by default.## When this is set to 0 it pulls from :normal# 1 = :medium# 2 = :hard# See, easy, right? So be sure to if you do this by events and not party to#use the right setting you want to!###v4.0#Condensed the script down some (reduced some line lengths.)#Added an option to use the party size for the difficulty.##v3.6#Removed the "+1" from gold and XP to avoid confusion and so that if you put#0 in the database for XP or Gold it will be 0 rather then 1.##v3.5#Added TP Settings. CAUTION: Try not to set them higher then 5! It will get#broken past that! Based on actor getting hit only!###v3.0#I've added Actor params, and you can now disable Actor edits, and Enemy edits.#Putting these both to false will disable the script, if needed.## Note:#   You can use this script as you please, as long as you give credit! This#   script was made possible by massive help from Dekita.##=============================================================================##=============================================================================## Param_Settings is each param that will be modified. You may edit these as# you please. Keep in mind I have added something that will NEVER make these# reach 0.## Exp_Settings is the experience gained based on difficulty, normally people# use higher Experience the lower the difficulty, but this your choice!## Gold_Settings increases or decreases gold gain. Again most peopel would give# more gold the lower the difficulty, but again, it is your choice!## Keep in mind everything is MULTIPLIED! Not ADDED. To go lower, use 0.9 and# lower. For example## gold * 0.5 will be HALF of what it used to be.#=============================================================================#module Blood  #-----------------------------------------------------------------------------  #Putting these both to false will disable the script, if you ever need to.  #If you are going to use Use_Party, Use_Enemy must also be true!  #  #Note: If you use party for difficulty you do not need to setup a event!  #-----------------------------------------------------------------------------  Use_Enemy = true         #Use enemy edits? Default is true  Use_Actor = false        #Use actor edits? Default is false  Use_Party = false        #Use Party? Default is false  module Enemy    Param_Settings = { #don't touch      # Corresponding Params:      #        MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK      :easy => [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5],      :normal => [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],      :hard => [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0],      :insane => [4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0],      } #don't touch    Exp_Settings = { #don't touch      :easy => 2,               :normal => 1,             :hard => 0.8,      :insane => 0.5,    } #don't touch    Gold_Settings = { #don't touch    :easy => 2,    :normal => 1,    :hard => 0.8,    :insane => 0.5,    } #don't touch  end #ends Enemy  module Actor#=============================================================================## Param_Settings is each param that will be modified. You may edit these as# you please. Keep in mind I have added something that will NEVER make these# reach 0.## This part people usually go higher the easier difficulty, lower the higher.#=============================================================================#    Param_Settings = { #don't touch      # Corresponding Params:      #        MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK      :easy => [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0],      :normal => [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],      :hard => [0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8],      :insane => [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5],      } #don't touch         #=========================================================================      # TP Settings scales QUICKLY, do not go over 5, if you do it gets pretty      # broken. I didn't test this exstensively but it works well. This only      # effects the CHARGE of TP (Getting hit)      #      # easy default = 2      # normal default = 1      # hard default = 0.8      # insane default = 0.5      #=========================================================================    TP_Settings = { #don't touch      :easy => 2,      :normal => 1,      :hard => 0.8,      :insane => 0.5,      } #don't touch  end #ends Actor  #============================================================================#  # Variable to use. This variable will be used for the difficulty setting  #============================================================================#  module Variable    Enemy_Variable = 99  # Which to use for enemy/party. Default is 99    Actor_Variable = 100 # Which to use for actor. Default 100  end #ends variableend #ends Blood#==============================================================================## Do not edit anything past this point, unless you know what you are doing# edit at your own risk, just know that if you have no idea what you are doing,# you could break it.#==============================================================================#if Blood::Use_Party == true#===============================================================================  class Scene_Map < Scene_Base#===============================================================================  alias bloody_update update      #-------------------------------------------------------------------------      #Updates our party difficulty      #-------------------------------------------------------------------------      def update        bloody_update        update_difficulty      end #ends update      #-------------------------------------------------------------------------      #Increases, or decreses the Enemy_Variable based on party members      #-------------------------------------------------------------------------    def update_difficulty      @old_size = 0 if @old_size.nil?        if @old_size != $game_party.battle_members.size          $game_variables[Blood::Variable::Enemy_Variable] =            [$game_party.battle_members.size - 1,$game_party.max_battle_members].min          @old_size = $game_party.battle_members.size        end #ends if    end #ends update_difficulty  end #ends classend #ends if Use_Partyif Blood::Use_Enemy == true#===============================================================================  class Game_Enemy#===============================================================================  #-----------------------------------------------------------------------------  # List Of Aliased Methods  #-----------------------------------------------------------------------------  alias :bloody_param :param  #-----------------------------------------------------------------------------  # Method to determine value of enemies params based on difficulty.  #-----------------------------------------------------------------------------    def param(param_id)      eps = Blood::Enemy::Param_Settings      diff = eps.keys[$game_variables[Blood::Variable::Enemy_Variable]]      return (bloody_param(param_id) * eps[diff][param_id] + 1).to_i    end #ends def  #--------------------------------------------------------------------------  # * Get Experience  #--------------------------------------------------------------------------    alias :blood_exp :exp    def exp      ees = Blood::Enemy::Exp_Settings      diff = ees.keys[$game_variables[Blood::Variable::Enemy_Variable]]      return (blood_exp * ees[diff]).to_i    end #end def  #--------------------------------------------------------------------------  # * Get Gold  #--------------------------------------------------------------------------    alias :blood_gold :gold    def gold      egs = Blood::Enemy::Gold_Settings      diff = egs.keys[$game_variables[Blood::Variable::Enemy_Variable]]      return (blood_gold * egs[diff]).to_i    end #ends def  end #ends classend #ends ifif Blood::Use_Actor == true#===============================================================================  class Game_Actor#===============================================================================  #-----------------------------------------------------------------------------  # List Of Aliased Methods  #-----------------------------------------------------------------------------  alias :bloody_param :param  #-----------------------------------------------------------------------------  # Method to determine value of actors params based on difficulty.  #-----------------------------------------------------------------------------    def param(param_id)      aps = Blood::Actor::Param_Settings      diff = aps.keys[$game_variables[Blood::Variable::Actor_Variable]]      return (bloody_param(param_id) * aps[diff][param_id] + 1).to_i    end #ends def     #    # TP Regen    #    def charge_tp_by_damage(damage_rate)      calc = self.tp += 50 * damage_rate * tcr      ats = Blood::Actor::TP_Settings      diff = ats.keys[$game_variables[Blood::Variable::Actor_Variable]]      return (calc * ats[diff]).to_i    end #ends def  end #ends classend #ends if


You need an event like this, before your game starts.
XsJtZO2.png
 
Features:

-Full Customization

-You can now use your battle members for difficulty, now also able to change the max easily (even past 4!)

-Individual editing of each parameter.

-Experience editing.

-Gold Editing.

-Actor Param edits

-Enabaling and disabling the use of Actor, and Enemy edits. Putting both to false will disable the script, if needed.

-Added TP Settings (This is based on the actor getting hit, not the actor hitting!)

 

Future Features:

I'm not too sure what else to put in here. If you have suggestions please let me know. I'm new to scripting and scripting something this simple is a BIG help, you have no idea.

 
Credit:
Bloodmorphed for writing it.
Dekita for his major guidance in the process.
 
Use it as you please, with credits of course.

 

 

I'm going to add this:

 

I would like to thank Dekita and others for their support and help through this, they have been patient with me! You guys are awesome!

Sliding Puzzle Mini-game

$
0
0

Sliding Block Puzzle


 
Compatible with: RMVXAce
Compatibility :excelent
Difficulty to use: easy
Processing demand?: low
 

Using condition

Portuguese user? Portuguese Script link

  Can be modified and advertise, but keep credits to me
 
 

Script Usage and Features


  The script adds the famous sliding Panel mini-game, it can be added anytime during game development.
 
Features are:
- Any size of picture
- Any size of puzzle(3x3, 3x4, 7x4, 10x10)
- Easy and fast configuration.
 
 
 

Script


 
Demo if needed: Download
raw script: http://pastebin.com/raw.php?i=HTqH2vbx
 
 

Videos and Images


 

KhLBHxG.png

 
fboKeU9.png

 

 
 

Credits and stuff


 
 Raizen

Global Common Events

$
0
0

This script allows you to assign certain common events as "global" common events. These are common events that will be run in almost any scene, as long as the run conditions are met.

globalcommonevents1.gif

Download

Get it at Hime Works!

Installation

Place this script below Materials and above Main

Usage

globalcommonevents2.gif

To set a common event as a global common event, create a comment with the following string

 <global common event>
You can set the run condition if you want to control when the common event will be updated. The trigger itself is irrelevant since a global common event does not need it.

If you would like the common events to continue running even if the message

window is open, use the comment

 

 <global common event: non-blocking>
Filtering Scenes

You may not want all global common events to run in every scene, but you may

want to run certain global common events in certain scenes, but not others.

You can control which scenes global common events run in using a set of

filters, organized into two types of filters: whitelists, and blacklists.

Whitelists determine which scenes allow global common events to update.

If the whitelist is empty, then all scenes will update events.

If the whitelist is not empty, then only those scenes will update events.

Blacklists determine which scenes disallow global common events to update.

The blacklist is used to prevent updating in certain scenes, while allowing

all other scenes to update events.

Note that by this definition, whitelists are more restrictive. For example,

if you put Scene_Map on the whitelist, then global common events will

ONLY run on the map and nowhere else. But if you put Scene_Map on the blacklist, then the events will run on any scene EXCEPT the map scene

Universal Filters

In the configuration section, there is a whitelist and a blacklist. These are universal filter lists: they apply to all global common events.

Local Filters

Each global common event can have its own whitelist and blacklist.

To specify filters, create a comment of the form

<global scene blacklist: scene_name1, scene_name2, ... ><global scene whitelist: scene_name3, scene_name4, ... >
You must specify the exact scene name (eg: Scene_Title), each scene separated by a single comma.

Local filters only apply to the events that they are defined in and do not affect other events.


Pets and Summons

$
0
0

Pets and Summons v1.1a
By Vlue


Introduction
This script allows you to create skills that temporarily add actors into the party. These actors (or pets, summons, whatever) will last until the end of the battle, unless they die first... or their turn timer runs up (optional). Summoned pets will be at the same level as the actor who used the skill, with options to adjust level for specific skills. Yay notetags!

Features
- Summon actors into battle
- Summoned actors last for duration of battle or until dead or by timer, whichever comes first
- Different skills can summon same actor at different levels

How to Use
Plug and play, set up notetags as needed.

Script
Pastebanana as usual, compatibility mode is for use with scripts that display actor sprites:
Stand Alone: http://pastebin.com/zuGyMX7z
Compatibility: http://pastebin.com/ef084qjG

FAQ
Q. But, what if I don't want to summon pets...
A. Then don't use this script.

Credit and Thanks
- By Vlue
- Free to use in any project (commercial or otherwise) with credit given

Author's Notes
Pets and totems and beasts, oh my!

Extract Events to Text File

$
0
0

Extract Events to Text File 1.01
Shaz

Introduction
This is a DEVELOPMENT script (should not be included in released games) that will let you extract the contents of ALL of your events into text files that can be opened and viewed in a spreadsheet.
This is for VIEWING events only - checking your event logic, proofreading (or as a starting point for translation), searching for switch/variable/item usage, etc. There is NO facility to make changes to these files and merge the changes back into the game. I will not be creating such a facility.


Versions



1.01  22 Jun 2014   Fix crash with troop event conditions



Features
- Optionally extract common events
- Optionally extract battle events
- Extract events from all maps, or from a single map
- Open extracted data in a spreadsheet to convert to columns, browse, search and sort
- Data/_EventContents.txt contains ALL event commands
- Data/_EventDialogue.txt contains all event commands causing text to be displayed (Show Text, Show Choices, name processing, etc)
- Data/_EventSwitchesVariables.txt contains all event commands and conditions that use or change switches or variables

Screenshots

Data/_EventContents.txt converted to columns:
ExtractEvents1.png


Data/_EventDialogue.txt converted to columns:
ExtractEvents2.png


Data/_EventSwitchesVariables.txt converted to columns:
ExtractEvents3.png


How to Use
Copy and paste the script into a new slot in Materials, below all other scripts.
Check the customize options. They are explained in the script header, and the constants/variables to change are in the first few lines of script.

Enable or disable the script by commenting out the entire thing. It does not use switches or get called - if it's not commented out, it runs.
Run your game. When your title screen appears, the script has run and the files have been created.
Close the game and disable the script (Ctrl A, Ctrl Q will select and disable, or select and enable the whole thing).

Open the .txt files and copy and paste the contents into spreadsheets.
Use the spreadsheet's Convert Text to Columns feature to separate the text using a delimiter. The default delimiter is the ^ character.

Script
Download here

FAQ


Credit and Thanks
- You do NOT need to list me in your game credits if you use this script - it is for development only and should be removed before you release your game
- Okay to use in development of commercial games

Author's Notes
Missing parameters
On some event commands I have not included all the parameters (for example, Show Picture and Move Picture do not include the Zoom parameters).
I don't have a complete list of these.
If you use a command and discover some of its parameters are missing, please post below with the command name and the missing parameters, and I will include it in a future update.

Stuff not included
I don't extract the sprite name or autonomous move route details from event pages.
I should do this.
I will include it in a future update.

BUGS!!!
I have not tested every single event command with every single possible combination of options.
I fully expect that some of you will be using commands I have not yet tested, and MAY result in the script crashing before the title screen appears.
If this happens, please take a screenshot of the error message, or type the FULL error message text here EXACTLY as it appears in the error window.
Also indicate in your post what version of the script you are using.
Then disable the script so you can continue working on your game while waiting for a fix.

Bug Fixes
Any bugs and fixes will be listed here until they are added to a new version.



Dash Stamina

$
0
0

Dash Stamina

Introduction

This script provides stamina feature for dashing on map. Dashing will comsume stamina and be disable if run our of stamina.

Features

- Provides Stamina.

- A small window shows stamina.

Screenshots

kz2Gp.png

Download & Manual

Get them here

Credit

Yami

Orange Movement 3

$
0
0

Who wants another pixel movement script?

I had created this one for my game, but I decided to share it here.

 

Here's the link:

https://github.com/Hudell/scripts/blob/master/standalone/movement/orange_movement.rb

 

On the Pixel Movement part, there's just one configuration: Tile_Section.

This config determines on how many pieces a tile should be broken. The default is 4, which means the 32px tile is going to be broken on 4 pieces of 8px. If you set this config to 1, the game will continue using a tile based movement.

 

This script only affects the player. All other events will continue using the default tile based movement.

 

Besides that, there are some cool different features on this script:

1) Automatically jump over small obstacles

   There are many configs to determine when and how the player should jump over something. I recommend using a region to configure all jumpable tiles, though.

 

2) Let the player fall from high places.

  This one requires a region to work. You can use a different region for each direction

 

OrangeMovement.png

3) Automatically walk around objects that would otherwise block the player's route.

This one doesn't require any configuration, but there's one config that let's you define how far the character can walk automatically on a different direction than the button the player is pressing.

If you set that to a larger value, the character will even walk around whole buildings automatically!

 

4) Diagonal movement

There's no reason to walk on only 4 directions anymore.

 

5) Configure the player hitbox

You can now have larger or smaller sprites triggering collisions and events right.

6) Event hitboxes:

You can now move or resize the event hitboxes.

The default hitbox is x=0,y=0, width=1, height=1

If you want to use an event that has double height, you add a comment on it with those configurations:

 

hitbox_y=-1hitbox_height=2
7) Several new features were added to the script since this first post. Check the discussion on this thread.

Here's an old video showing the results of different configurations on the very first version of the orange movement script:

Sapphire Action System IV

$
0
0

SASIV.png


- Introduction:
An ABS, plus a Pixel Movement and a Particle Engine. The result? SAS IV.

- Features:
Full Pixel Movement
Khas Particle Engine powered
Realistic Collisions
Awesome Gameplay
High customization
Weapon icon
Easy to use
Skills
Lag free
Damage PopUp
Optimized HUD
Voice
And more...

- Add-ons:
Optimized HUD with HP, MP, EXP and Skill
Damage PopUp script
Heal player when Level Up

- Instructions:
All the instructions are on the SAS IV demo.
Please read them carefully.

Video:


- Screenshots:
print5.jpg
print4.jpg
print3.jpg
print2.jpg
print1.jpg

- Links:
Terms of Use: English - Read before use
Download: English - Latest version
Blog: Click Here!

- Credits:
Created by Khas Arcthunder.
A special thanks to OmTsTM for testing SAS and recording the video.
Viewing all 416 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>