Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 2,650
» Latest member: lauraccsilva
» Forum threads: 7,781
» Forum posts: 57,079

Full Statistics

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.

Print this item

  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.

Print this item

  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
[Image: my.php?image=lines0as.png]


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.

Print this item

  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.

Print this item

  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
[Image: exseikentv2.png]


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.

Print this item

  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
[Image: screeniezh6.png]


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.

Print this item

  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.

Print this item

  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.

Print this item

  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.

Print this item

  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.

Print this item