Welcome, Guest |
You have to register before you can post on our site.
|
Latest Threads |
Rave Heart
Forum: Complete Projects
Last Post: Starmage
4 hours ago
» Replies: 60
» Views: 50,857
|
Heroes of the Seasons
Forum: Upcoming Projects
Last Post: Starmage
6 hours ago
» Replies: 12
» Views: 1,829
|
RPG::ME Extended
Forum: Scripts Database
Last Post: kyonides
Today, 02:57 AM
» Replies: 1
» Views: 201
|
What's up, RMers?
Forum: Development Discussion
Last Post: kyonides
Yesterday, 09:30 PM
» Replies: 2,665
» Views: 1,874,526
|
News of the World
Forum: General Chat
Last Post: kyonides
Yesterday, 05:10 AM
» Replies: 1,080
» Views: 393,589
|
KItemRefill XP
Forum: Scripts Database
Last Post: kyonides
05-03-2024, 07:34 PM
» Replies: 1
» Views: 3,285
|
Birthday Thread
Forum: Occasions
Last Post: DerVVulfman
05-03-2024, 04:50 AM
» Replies: 3,561
» Views: 2,185,634
|
HiddenChest RGSS Player E...
Forum: Tools
Last Post: kyonides
05-02-2024, 07:46 PM
» Replies: 139
» Views: 110,611
|
Sharing My Original Music...
Forum: Music and Audio
Last Post: Eric Matyas
05-02-2024, 12:34 PM
» Replies: 152
» Views: 66,321
|
What are YouTubing?
Forum: General Chat
Last Post: AVGB-KBGaming
05-02-2024, 05:09 AM
» Replies: 835
» Views: 575,894
|
|
|
Individual Turns Battle System |
Posted by: Trickster - 03-02-2008, 05:56 AM - Forum: Scripts Database
- No Replies
|
|
Individual Turns Battle System
Version: 2.5
Introduction
This script transforms the DBS (Group Turns System) Into an Individual Turns Battle System. This Battle System lets actions be selected individually and they are performed immediately.
Demo
Download Here
Script
Script? there was never a script here if you are a family member then you must be surely seeing things get the demo. The FAMILIES MUST DECIDE IN A GROUP
Instructions
Add the SDK and the Method and Class Library if not present
There are no options or customizations as this script is plug and play
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
May not be compatible with some Battle Addons (I know for a fact it is not compatible with my Ally AI script) if you happen to find incompatibility ask me nicely and I may merge them (Depends though)
SDk 2.x compliant
Credits and Thanks
Me
Author's Notes
Scripted in less than an hour :)
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
Image Damage Display |
Posted by: Trickster - 03-02-2008, 05:55 AM - Forum: Scripts Database
- No Replies
|
|
Image Damage Display
Version: 1.2
Introduction
This script modifies the way damage is shown in battle instead of using the font and displaying damage it shows an image instead.
Screenshots
Oh wait I feel generous now...
...not.
Demo
Download Here
Script
Families...
Instructions
Add the script Damage Display, and if you want add one of the addon scripts, see the Damage module for setup options
Also copy the folder Damage from the Graphics folder of the demo, the only images you need are the numbers, the critical, and miss images the rest will be addons for this script later or you may use your own images
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
Requires SDK Parts I & II
Credits and Thanks
Mac for the images you must also credit him
KGC for the algorithm for zoomed damage, which was he base of my own
Author's Notes
Was making more addons dealing with this script
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
Geometry Module |
Posted by: Trickster - 03-02-2008, 05:52 AM - Forum: Scripts Database
- No Replies
|
|
Geometry Module
Version: 1.0
Introduction
This is the Geometry Module, originally created by ShadowText. It allows you to draw lines, shapes, circles and other stuff. So far you can only draw lines.
This module is designed to do some geometric functions, including drawing lines and shapes for whatever crazy purpose you need to draw lines and shapes for. It also draws text balloons. Yay.
NOT FOR NON-SCRIPTERS
Screenshots
Not a very pratical screenshot, but a screenshot of me playing around with it
Script
Yes a script this time
Code: class Bitmap
#-------------------------------------------------------------------------
# * Name: Draw Line
# Info: Draws a Line
# Author: Trickster (Based on ShadowTexts Line#draw)
# Call Info: One - Six Arguments
# Call 1 - Line line Line to draw (Integer width, Color color)
# Call 2 - Point a, b points to create line (Integer width, Color color)
# Call 3 - Numeric x1, y1, x2, y2 points to create line
# (Integer width, Color color)
#-------------------------------------------------------------------------
def draw_line(*args)
if args[0].is_a?(Geometry::Line)
line = args[0]
width = args[1].nil? ? 1 : args[1]
color = args[2].nil? ? Color.new(0, 0, 0) : args[2]
elsif args[0].is_a?(Geometry::Point)
line = Geometry::Line.new(*args[0..1])
width = args[2].nil? ? 1 : args[2]
color = args[3].nil? ? Color.new(0,0,0) : args[3]
elsif args[0].is_a?(Integer)
line = Geometry::Line.new(*args[0..3])
width = args[4].nil? ? 1 : args[4]
color = args[5].nil? ? Color.new(0,0,0) : args[5]
end
min_x, min_y = line.min_x, line.min_y
max_x, max_y = line.max_x, line.max_y
slope = line.slope
if line.vertical?
self.fill_rect(min_x, min_y, width, max_y - min_y, color)
elsif line.horizontal?
self.fill_rect(min_x, min_y, max_x - min_x, width, color)
else
line.each do |x, y|
self.fill_rect(x, y, width, width, color)
end
end
end
end
#==============================================================================
# ** Geometry V2.0 Originally by ShadowText
# Rewritten by Trickster
#-----------------------------------------------------------------------------
# Description by Shadow Text
# This module is designed to do some geometric functions, including drawing
# lines and shapes for whatever crazy purpose you need to draw lines and
# shapes for. It also draws text balloons. Yay.
#==============================================================================
module Geometry
#==============================================================================
# ** Point Originally by ShadowText
# Rewritten by Trickster
#-----------------------------------------------------------------------------
# The class of points, nothing interesting you can use this class to easily.
# Set the position of line objects for now. There is also a move method.
#==============================================================================
class Point
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :x
attr_reader :y
#-------------------------------------------------------------------------
# * Name: Object Initialization
# Info: Creates a New Point Object
# Author: ShadowText - Mods By Trickster
# Call Info: Two Arguments Numeric X and Y
#-------------------------------------------------------------------------
def initialize(x,y)
@x, @y = x, y
end
#-------------------------------------------------------------------------
# * Name: - (Distance)
# Info: Finds Distance Between two Points
# Author: ShadowText - Mods By Trickster
# Call Info: One Argument Point i - Other Point
#-------------------------------------------------------------------------
def -(i)
return Math.sqrt((i.x - x) ** 2 + (i.y - y) ** 2)
end
#-------------------------------------------------------------------------
# * Name: Move
# Info: Returns a point moved width and height units
# Author: Trickter (Based on ShadowText's version)
# Call Info: Two Arguments Mx My distance to move horiz. and vert.
# Returns: A Point Object moved width and height units
#-------------------------------------------------------------------------
def move(mx,my)
return Point.new(@x + mx, @y + my)
end
#-------------------------------------------------------------------------
# * Name: Move! (Dangerous)
# Info: Moves this point width and height units
# Author: ShadowText - Mods By Trickster
# Call Info: Two Arguments Mx My distance to move horiz. and vert.
#-------------------------------------------------------------------------
def move!(mx,my)
@x += mx
@y += my
end
#-------------------------------------------------------------------------
# * Name: To S (To String)
# Info: Returns the string representation of this object
# Author: ShadowText - Mods By Trickster
# Call Info: None
# Returns: String (x,y)
#-------------------------------------------------------------------------
def to_s
return "(#{@x},#{@y})"
end
end
#==============================================================================
# ** Line Originally by ShadowText
# Rewritten by Trickster
#-----------------------------------------------------------------------------
# The class of lines, includes useful methods such as slope, intercepts, and
# finding a point along the line. You can declare it with either Point Objects
# or specify the points yourself. There are also pretty useful iterator methods
# to use at your disposal. Can be used with Bitmap#draw_line to draw the line.
#==============================================================================
class Line
#-------------------------------------------------------------------------
# * Public Instance Variables
#-------------------------------------------------------------------------
attr_reader :x1
attr_reader :x2
attr_reader :y1
attr_reader :y2
#-------------------------------------------------------------------------
# * Name: Object Initialization
# Info: Creates a new line object
# Author: Trickster (Based on ShadowText's version)
# Call Info: Two Arguments Point p1 and p2 - Starting Point and Ending Point
# Four Arguments Numeric X1, Y1, X2, Y2 Coordinates
#-------------------------------------------------------------------------
def initialize(*args)
if args.size == 2
@x1, @y1 = args[0].x, args[0].y
@x2, @y2 = args[1].x, args[1].y
elsif args.size == 4
@x1, @y1, @x2, @y2 = args
end
end
#-------------------------------------------------------------------------
# * Name: To S (To String)
# Info: String Representation of this line
# Author: ShadowText - Mods By Trickster
# Call Info: No Arguments
# Returns: (x1,y1):(x2,y2)
# Slope = slope
# Y-Int = yint
#-------------------------------------------------------------------------
def to_s
return "(#{@x1},#{@y1}):(#{@x2},#{@y2})\nSlope = #{slope}\nY-Int = #{yint}"
end
#-------------------------------------------------------------------------
# * Name: Get X Coordinate
# Info: Gets X Coordinate
# Author: ShadowText - Mods By Trickster
# Call Info: One-Two Arguments Numeric Y - y coordinate
# Boolean Domain - Flag to restrict to domain (Def. True)
# Returns: nil if domain option and outside domain
# Infinity if horizontal line (0 slope)
# Else the value for x that corresponds to y
#-------------------------------------------------------------------------
def get_x(y, domain = true)
return if domain && (y < min_y || y > max_y)
return min_x if slope.infinite?
return Infinity if slope.zero?
return (y - y_int) / slope.to_f
end
#-------------------------------------------------------------------------
# * Name: Get Y Coordinate
# Info: Gets Y Coordinate
# Author: ShadowText - Mods By Trickster
# Call Info: One-Two Arguments Numeric X - x coordinate
# Boolean Domain - Flag to restrict to domain (Def. True)
# Returns: nil if domain option and outside domain
# Infinity if vertical line (Infinite slope)
# Else the value for y that corresponds to x
#-------------------------------------------------------------------------
def get_y(x, domain = true)
return if domain && (x < min_x || x > max_x)
return Infinity if slope.infinite?
return min_y if slope.zero?
return slope * x + y_int
end
#-------------------------------------------------------------------------
# * Name: Minimum X
# Info: Returns the Minimum Value X can be for this line
# Author: ShadowText - Mods By Trickster
# Call Info: No Arguments
# Returns: The Minimum Value for X, that is, the minimum of the x values
# Sent for this line.
#-------------------------------------------------------------------------
def min_x
return [@x1, @x2].min
end
#-------------------------------------------------------------------------
# * Name: Minimum Y
# Info: Returns the Minimum Value Y can be for this line
# Author: ShadowText - Mods By Trickster
# Call Info: No Arguments
# Returns: The Minimum Value for Y, that is, the minimum of the y values
# Sent for this line.
#-------------------------------------------------------------------------
def min_y
return [@y1, @y2].min
end
#-------------------------------------------------------------------------
# * Name: Maximum X
# Info: Returns the Maximum Value X can be for this line
# Author: ShadowText - Mods By Trickster
# Call Info: No Arguments
# Returns: The Maximum Value for X, that is, the maximum of the x values
# Sent for this line.
#-------------------------------------------------------------------------
def max_x
return [@x1, @x2].max
end
#-------------------------------------------------------------------------
# * Name: Maximum Y
# Info: Returns the Maximum Value Y can be for this line
# Author: ShadowText - Mods By Trickster
# Call Info: No Arguments
# Returns: The Maximum Value for Y, that is, the maximum of the y values
# Sent for this line.
#-------------------------------------------------------------------------
def max_y
return [@y1, @y2].max
end
#-------------------------------------------------------------------------
# * Name: Length
# Info: Returns the Length of this Line Segment
# Author: ShadowText - Mods By Trickster
# Call Info: No Arguments
# Returns: The Length of this line segment
#-------------------------------------------------------------------------
def length
return Math.sqrt((@y1 - @y2) ** 2 + (@x1 - @x2) ** 2)
end
#-------------------------------------------------------------------------
# * Name: Slope
# Info: Returns the slope of this line (rise over run)
# Author: ShadowText - Mods By Trickster
# Call Info: No Arguments
# Returns: The Slope that is the difference in y / difference in x
#-------------------------------------------------------------------------
def slope
return (@y1 - @y2).to_f / (@x1 - @x2)
end
#-------------------------------------------------------------------------
# * Name: X Int
# Info: X Intercept (Point where line crosses X Axis)
# Author: Trickster
# Call Info: No Arguments
# Returns: nil if Horizontal Line, else x intercept
#-------------------------------------------------------------------------
def x_int
return slope.infinite? ? @x1 : slope.zero? ? nil : @x1 - @y1 / slope
end
#-------------------------------------------------------------------------
# * Name: Y Int
# Info: Y Intercept (Point where line crosses Y Axis)
# Author: ShadowText - Mods By Trickster
# Call Info: No Arguments
# Returns: nil if Vertical Line, else y intercept
#-------------------------------------------------------------------------
def y_int
return slope.infinite? ? nil : @y1 - slope * @x1
end
#-------------------------------------------------------------------------
# * Name: Horizontal?
# Info: Is this a horizontal line?
# Author: Trickster
# Call Info: No Arguments
# Returns: True if slope is 0 false otherwise
#-------------------------------------------------------------------------
def horizontal?
return slope.zero?
end
#-------------------------------------------------------------------------
# * Name: Vertical?
# Info: Is this a vertical line?
# Author: Trickster
# Call Info: No Arguments
# Returns: True if slope is Infinite false otherwise
#-------------------------------------------------------------------------
def vertical?
return slope.infinite? != nil
end
#-------------------------------------------------------------------------
# * Name: Find Point
# Info: Finds Point on Line
# Author: ShadowText - Mods By Trickster
# Call Info: One or Two Arguments - Numeric Percentage percentage of distance
# Boolean point - True returns a point object false [x, y]
# Returns: A Point with the coordinate or an array with [x, y]
#-------------------------------------------------------------------------
def find_point(percentage, point = true)
return if percentage < 0 or percentage > 100
dist = percentage * length / 100.0
if horizontal?
return point ? Point.new(min_x + dist, min_y) : [min_x + dist, min_y]
elsif vertical?
return point ? Point.new(min_x, min_y + dist) : [min_x, dist + min_y]
else
x = @x1 + dist / Math.sqrt(slope ** 2 + 1)
y = @y1 + dist * slope / Math.sqrt(slope ** 2 + 1)
return point ? Point.new(x, y) : [x, y]
end
end
#-------------------------------------------------------------------------
# * Name: Each (Iterator method)
# Info: Runs Through each point (Integer) (x, y) in the line
# Author: Trickster
# Call Info: A Block
# Returns: an array of Integers [x, y]
# Coomments: See Each_Step to evaluate through decimals
#-------------------------------------------------------------------------
def each
(min_x.round..max_x.round).each {|x| yield(x, get_y(x).round)}
end
#-------------------------------------------------------------------------
# * Name: Each X (Iterator method)
# Info: Runs Through each x (Integer) in the line
# Author: Trickster
# Call Info: A Block
# Returns: an Integer x
#-------------------------------------------------------------------------
def each_x
(min_x.round..max_x.round).each {|x| yield(x)}
end
#-------------------------------------------------------------------------
# * Name: Each Y (Iterator method)
# Info: Runs Through each y (Integer) in the line
# Author: Trickster
# Call Info: A Block
# Returns: an Integer y
#-------------------------------------------------------------------------
def each_y
(min_y.round..max_y.round).each {|y| yield(y)}
end
#-------------------------------------------------------------------------
# * Name: Each Step (Iterator method)
# Info: Runs Through each point (Integer) (x, y) in the line
# Author: Trickster
# Call Info: Zero - Two Arguments
# Numeric Step - Amount to increment by (def 1.0)
# A Block
# Returns: an Integer x
#-------------------------------------------------------------------------
def each_step(step = 1.0)
min_x.step(max_x, step) {|x| yield(x, get_y(x))}
end
end
end
Instructions
See method and class headers I spent some time writing those
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
Well if you are using ShadowText's older version of this script then you will have some trouble
Credits and Thanks
ShadowText for version 1, which I rewrote, added, and removed stuff.
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
FFI Party Select |
Posted by: Trickster - 03-02-2008, 04:42 AM - Forum: Scripts Database
- No Replies
|
|
FFI Party Select
Version: 1.0
Instructions
This script is a copy (not 100%) of the Party Selection screen from Final Fantasy I. It gives you some classes to choose, you choose one. Enter a name and you are done.
Demo
Download Here
Script
The familes, they don't select their party it is fixed so they have no use for this.
Instructions
Instructions are given in the setup, ask if it gives you any trouble.
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
Requires Sephs Virtual Database for without it this script would have not existed
Requires SDK V2.3 parts I and III (and II - Virtual Database)
Requires MACL V2.1
There may be compatibility problems, if you see any let me know and I may do something about it
Credits and Thanks
Seph for Virtual Database
Author's Notes
Best suggest things for this script at this moment the actors in the party are exact copies same stats, same skills, same everything.
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
Exseiken's Party Switcher |
Posted by: Trickster - 03-02-2008, 04:35 AM - Forum: Scripts Database
- No Replies
|
|
Exseiken's Party Switcher
Version: 1.1
Introduction
A Version of Exseiken's Party Switcher that I rewrote, I did do a few minor graphical modifications to the script, but nothing major. I did a few improvements on its coding and included a setup module.
Screenshots
Demo
Download Here
Script
The Families should not be able to party switch the old grandma with the younger members of the family...
Instructions
Add in a new script above main
If you want to make an actor mandatory use
.mandatory = true
where actor is an instance of Game_Actor ex ($game_party.actors[0], $game_actors[2])
If you want to make an actor available use
.unavailable = false
where actor is an instance of Game_Actor ex ($game_party.actors[0], $game_actors[2])
See the setup module for the one option I added to the script
See the script header on how to call the Scene
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
Requires SDK Part I
Credits and Thanks
Exseiken for writing the original.
Author's Notes
May do some improvements later, Sleepy time...
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
Equipment Weights |
Posted by: Trickster - 03-02-2008, 04:34 AM - Forum: Scripts Database
- No Replies
|
|
Equipment Weights
Version: 2.0
Introduction
This script allows you to assign a weight to your equipment and how much each actor can carry at once, If the actor equips stuff to heavy then either 1) They can't equip it 2) Their stats are reduced. This script also lets you setup a curve so that the amount they can carry increases with level. This script also comes with a conversion function so you can either your swords in one unit while rings and hats in another.
Screenshots
Demo
Download Here
Instructions
If not using SDK then remove the SDK test lines and the last end of every script Setup, Edits to Classes, and Equip Windows
Instructions are given in the Setup script.
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
SDK complaint but not dependent
Requires MACL V1.5 or greater
Incompatible with my and G777's Multi-Equip Script
Although I do plan on merging this with mine
Credits and Thanks
Twilight for Requesting
BlueScope for ragging on my design :D
Kuri$u for suggestions
Author's Notes
There might be a few Float Hiccups in the conversion method.
Note: If using the can't equip option. It doesn't check if you use the Change Equipment event command and starting equipment for the start of the game and test battle
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
Elemental and State Rates |
Posted by: Trickster - 03-02-2008, 04:32 AM - Forum: Scripts Database
- No Replies
|
|
Elemental and State Rates
Version: 1.0
Introduction
This script brings back a lost feature from rm2k(3). It allows you to set the elemental multiplier for elemental and chance for state resistance. It also changes the resistance system to bump down a resistance level if they guard against the element (rather than reducing by half which is crazy)
Script
Code: module Elem_State_Rate
#--------------------------------------------------------------------------
# * Elemental Rates
# - syntax: Element_Id => [A, B, C, D, E, F]
#--------------------------------------------------------------------------
Elemental = {
1 => [1000, 500, 200, 100, 0, -100]
}
#--------------------------------------------------------------------------
# * Default Elemental Rate
# - syntax: [A, B, C, D, E, F]
#--------------------------------------------------------------------------
Elemental.default = [200,150,100,50,0,-100]
#--------------------------------------------------------------------------
# * State Rates
# - syntax: Element_Id => [A, B, C, D, E, F]
#--------------------------------------------------------------------------
States = {
}
#--------------------------------------------------------------------------
# * Default State Rate
# - syntax: [A, B, C, D, E, F]
#--------------------------------------------------------------------------
States.default = [100,80,60,40,20,0]
end
class Game_Battler
#--------------------------------------------------------------------------
# * State Change (+) Application
# plus_state_set : State Change (+)
#--------------------------------------------------------------------------
def states_plus(plus_state_set)
# Clear effective flag
effective = false
# Loop (added state)
for i in plus_state_set
# If this state is not guarded
unless self.state_guard?(i)
# Set effective flag if this state is not full
effective |= self.state_full?(i) == false
# If states offer [no resistance]
if $data_states[i].nonresistance
# Set state change flag
@state_changed = true
# Add a state
add_state(i)
# If this state is not full
elsif self.state_full?(i) == false
# Get Table
table = Elem_State_Rate::States[i]
# Random Chance
if rand(100) < table[self.state_ranks[i]-1]
# Set state change flag
@state_changed = true
# Add a state
add_state(i)
end
end
end
end
# End Method
return effective
end
end
class Game_Actor < Game_Battler
#-------------------------------------------------------------------------
# * Name: Armor Ids
# Info: Gets ALL Armor IDs
# Author: Trickster
# Call Info: No Arguments
# Returns: An Array of Armor Ids
# Comments: Detects @armor(n)_id
#-------------------------------------------------------------------------
def armor_ids
equipment = []
i = 1
while eval("@armor#{i}_id") != nil
equipment << eval("@armor#{i}_id")
i += 1
end
return equipment
end
#--------------------------------------------------------------------------
# * Get Element Revision Value
# element_id : element ID
#--------------------------------------------------------------------------
def element_rate(element_id)
# Get values corresponding to element effectiveness
table = Elem_State_Rate::Elemental[element_id]
# Get Value Minus 1 (0 in front was removed)
value = $data_classes[@class_id].element_ranks[element_id] - 1
# Run Through each armor
self.armor_ids.each do |armor_id|
# Get Armor
armor = $data_armors[armor_id]
# Skip if state is nil or doesn't guard
next if armor == nil or !armor.guard_element_set.include?(element_id)
# Add 1 (Bump up)
value += 1
end
# Run Through each state
@states.each do |state_id|
# Get State
state = $data_states[state_id]
# Skip if state is nil or doesn't guard against element
next if state == nil or !state.guard_element_set.include?(element_id)
# Add 1 (Bump up)
value += 1
end
# Restrict to[0,5]
value = [[value, 0].max, 5].min
# End Method
return table[value]
end
end
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# * Get Element Revision Value
# element_id : Element ID
#--------------------------------------------------------------------------
def element_rate(element_id)
# Get values corresponding to element effectiveness
table = Elem_State_Rate::Elemental[element_id]
# Get Value Minus 1 (0 in front was removed)
value = $data_enemies[@enemy_id].element_ranks[element_id] - 1
# Run Through each state
@states.each do |state_id|
# Get State
state = $data_states[state_id]
# Skip if state is nil or doesn't guard against element
next if state == nil or !state.guard_element_set.include?(element_id)
# Add 1 (Bump up)
value += 1
end
# Restrict to[0,5]
value = [[value, 0].max, 5].min
# End Method
return table[value]
end
end
Instructions
Add this script in a new script below Scene_Debug and above your custom scripts
Here is the setup portion of the script it is pretty much self explanatory
Code: #--------------------------------------------------------------------------
# * Elemental Rates
# - syntax: Element_Id => [A, B, C, D, E, F]
#--------------------------------------------------------------------------
Elemental = {
1 => [1000, 500, 200, 100, 0, -100]
}
#--------------------------------------------------------------------------
# * Default Elemental Rate
# - syntax: [A, B, C, D, E, F]
#--------------------------------------------------------------------------
Elemental.default = [200,150,100,50,0,-100]
#--------------------------------------------------------------------------
# * State Rates
# - syntax: Element_Id => [A, B, C, D, E, F]
#--------------------------------------------------------------------------
States = {
}
#--------------------------------------------------------------------------
# * Default State Rate
# - syntax: [A, B, C, D, E, F]
#--------------------------------------------------------------------------
States.default = [100,80,60,40,20,0]
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
The methods Game_Battler#states_plus, Game_Actor#element_rate, and Game_Enemy#element_rate were modified
Author's Notes
This is the rescripted version of this script since I don't have access to the version I had before the hack.
If anyone has the other version that was posted before the hack contact me with the script, though this isn't very important but would be appreciated.
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
Elemental Alignment |
Posted by: Trickster - 03-01-2008, 05:31 AM - Forum: Scripts Database
- Replies (4)
|
|
Elemental Alignment
Version: 1.0
Introduction
This script is designed to make setting up elemental rates in the database simpler. This script aligns a enemy/actor with an element so that you don't have to set that stuff up via the database.
Screenshots
Light a match, its fire, its an element, and its the screenshot :)
Demo
Download Here
Script
The families are alignment with one element, the IAMNOTPOSTINGTHISSCRIPTFORFAMILIES element
Instructions
See Setup Script, should be self-explanatory, if not post and I'll answer your questions
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
Requires SDK Part I
Requires MACL Libraries (Array.math, Numeric, and Actor and Party Info)
Credits and Thanks
Me for creating
Author's Notes
Better appreciate this script I could have easily not posted it and used it exclusively for myself for-the-game-I-am-working-on-but-not-working-on
Scripted in about 30 minutes Hooray for two new scripts in one day :)
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
Easy Battle Back Stretching |
Posted by: Trickster - 03-01-2008, 05:29 AM - Forum: Scripts Database
- No Replies
|
|
Easy Battle Back Stretching
Version: 2.0
Introduction
A Simple Plug and Play script that stretches all battlebacks to fit the whole screen (640 by 480 pixels). Also allows you to have 640 by 480 sized battlebacks
Screenshots
Ok Visualize the normal battlebacks only stretched to fit the whole screen. There's your screenshot.
Script
Code: #==============================================================================
# ?? Easy Battle Back Stretching
#------------------------------------------------------------------------------
# Trickster (tricksterguy@hotmail.com)
# Version 2.0
# Date 5/31/07
# Goto rmxp.org for updates/support/bug reports
#------------------------------------------------------------------------------
# This script allows you to use 640x480 battle back images for the battle
# scene. It also stretches the images if they aren't 640 by 480.
#==============================================================================
#--------------------------------------------------------------------------
# Begin SDK Log
#--------------------------------------------------------------------------
SDK.log('Easy Battle Back Stretching', 'Trickster', 2.0, '5/31/07')
#--------------------------------------------------------------------------
# Begin SDK Requirement Check
#--------------------------------------------------------------------------
SDK.check_requirements(2.0, [1, 2])
#--------------------------------------------------------------------------
# Begin SDK Enabled Check
#--------------------------------------------------------------------------
if SDK.enabled?('Easy Battle Back Stretching')
class Spriteset_Battle
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias_method :trick_stretch_battle_init_viewport, :init_viewport
def init_viewport
# The Usual
trick_stretch_battle_init_viewport
# Setup Viewport Rectangle
@viewport1.rect.set(0, 0, 640, 480)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update_battleback
# If battleback file name is different from current one
if @battleback_name != $game_temp.battleback_name
# Set Battle Back
@battleback_name = $game_temp.battleback_name
# If Bitmap Defined
if @battleback_sprite.bitmap != nil
# Dispose Bitmap
@battleback_sprite.bitmap.dispose
end
# Create Bitmap
@battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
# Setup Source Rectangle
@battleback_sprite.src_rect.set(0, 0, 640, 480)
# If height is not 480 pixels
if @battleback_sprite.bitmap.height != 480
# Setup Zoom Y
@battleback_sprite.zoom_y = 480.0 / @battleback_sprite.bitmap.height
end
# If width is not 640 pixels
if @battleback_sprite.bitmap.width != 640
# Setup Zoom X
@battleback_sprite.zoom_x = 640.0 / @battleback_sprite.bitmap.width
end
end
end
end
#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end
Instructions
Add in a new script above main
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
SDK 2.x compliant
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
Draw Text |
Posted by: Trickster - 03-01-2008, 05:27 AM - Forum: Scripts Database
- No Replies
|
|
Draw Text
Version: 1.0
Introduction
An Little addon for any bitmap that allows you to draw wrapped text or formatted text it automatically wraps to the next line if the text is too long to fit on the line. Also adds features (for formatted text) like color changing, italics, bold, new line, and tabbing.
Screenshots
I'll post them if requested
Script
add this in a new script above main
Code: #C[RRBBGG] Changes the Color (RR,BB,GG)
#C[N] Changes to color back to normal
#I[] Changes the font to Italics
#B[] Changes the font to Bold
#T[] A Tab
#N[] New Line
#==============================================================================
# ** Bitmap
#------------------------------------------------------------------------------
# Additions add a draw wrap text method which draws word wrapped text
# Text Automattically goes to the next line if the text can not fit on the line
#==============================================================================
class Bitmap
def draw_wrap_text(x,y,width, height, text)
array = text.split
for i in array
word = i + ' '
word_width = text_size(word).width
if x + word_width > width
y += height
x = 0
end
self.draw_text(x, y, word_width, height, word)
x += word_width
end
end
def text_wrap_size(x,y,width, height, text)
array = text.split
begin_y = y
y += height
for i in array
word = i + ' '
word_width = text_size(word).width
if x + word_width > width
y += height
x = 0
end
x += word_width
end
return Rect.new(x, y, width, y-begin_y)
end
def draw_formatted_text(offset_x, offset_y, width, height, text)
self.font.color = Color.new(255, 255, 255)
text = text.dup
text.gsub!(/[Cc]\[((([A-F]|[a-f]|[0-9])+)|N)\]/) {" \001[#{$1}] "}
text.gsub!(/[Bb]\[\]/) {" \002 "}
text.gsub!(/[Ii]\[\]/) {" \003 "}
text.gsub!(/[Tt]\[\]/) {" \004 "}
text.gsub!(/[Nn]\[\]/) {" \005 "}
x = 0
y = 0
while ((c = text.slice!(/(\S+\s)|(\S+)/m)) != nil)
if c.include?("\001")
c.slice!("\001")
# Change text color
c.sub!(/\[((([A-F]|[a-f]|[0-9])+)|N)\]\s/, "")
if $1 != nil and $1.size > 1
r = $1.slice(0..1).to_i(16)
g = $1.slice(2..3).to_i(16)
b = $1.slice(4..5).to_i(16)
color = Color.new(r,g,b)
else
color = Color.new(255, 255, 255)
end
self.font.color = color
# go to next text
next
end
if c.include?("\002")
c.slice!("\002")
self.font.bold = !self.font.bold
c = ""
# go to next text
next
end
if c.include?("\003")
c.slice!("\003")
self.font.italic = !self.font.italic
c = ""
# go to next text
next
end
if c.include?("\004")
c.slice!("\004")
x += text_size(" ").width
c = ""
next
end
if c.include?("\005")
c.slice!("\005")
y = x / width + 1
x = y * width
c = ""
next
end
word_width = text_size(c).width
if (x+word_width) % width < x % width
y = x / width + 1
x = y * width
end
pos_x = x % width + offset_x
pos_y = x / width * height + offset_y
self.draw_text(pos_x, pos_y, word_width, 32, c)
x += word_width
end
end
def get_formatted_size(off_x, off_y, width, height, text)
text = text.dup
text.gsub!(/[Cc]\[((([A-F]|[a-f]|[0-9])+)|N)\]/) {""}
text.gsub!(/[Bb]\[\]/) {""}
text.gsub!(/[Ii]\[\]/) {""}
text.gsub!(/[Tt]\[\]/) {" \004 "}
text.gsub!(/[Nn]\[\]/) {" \005 "}
x = 0
y = 0
while ((c = text.slice!(/(\S+\s)|(\S+)/m)) != nil)
if c.include?("\004")
c.slice!("\004")
x += text_size(" ").width
c = ""
next
end
if c.include?("\005")
c.slice!("\005")
y = x / width + 1
x = y * width
c = ""
next
end
word_width = text_size(c).width
if (x+word_width) % width < x % width
y = x / width + 1
x = y * width
end
x += word_width
pos_x = x % width + off_x
pos_y = x / width * height + off_y
end
return Rect.new(pos_x, pos_y, width, (pos_y-off_y+height).to_i)
end
end
Instructions
to call this all you have to do is
self.contents.draw_formatted_text(x,y,width, height, text)
or
self.contents.draw_wrap_text(x,y,width,height,text)
you may also call get_wrap_size, and get_formatted size to get the rectangle the text is drawn on (corresponds to method text_size)
where offset_x is the x coordinate to start drawing text and offset_y is the y coordinate to start drawing, text is the text to draw
If you use C[RRGGBB] where RR GG and BB are hexadecimal color values inside the text then the color will change to that color. To change it back just put C[N]. If you want bold text then type B[] for Italics use I[]. If you want a newline just put N[] and for tab (4 spaces) use T[] you can easily change these flags by modifing the Regexp used in these lines
Code: text.gsub!(/[Cc]\[((([A-F]|[a-f]|[0-9])+)|N)\]/) {" \001[#{$1}] "}
text.gsub!(/[Bb]\[\]/) {" \002 "}
text.gsub!(/[Ii]\[\]/) {" \003 "}
text.gsub!(/[Tt]\[\]/) {" \004 "}
text.gsub!(/[Nn]\[\]/) {" \005 "}
FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.
Compatibility
Compatible with any script
Author's Notes
If you find any bugs let me know...
Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.
|
|
|
|