Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - chaucer

1
RMMV Script Database / [MV] Chau Scene Stabilizer
February 06, 2018, 12:38:32 am
Chau_SceneStabilizer
Authors: Chaucer
Version: 2.0.0
Type: Scene Stabilizer
Key Term: Game Utility



Introduction

This This plugin is designed to make transitions between scenes smoother. When changing scenes in mv, theres a slight lag spike
which occurs when loading files & rendering images, this is more apparent in games which use large images, or lots of images, This plugin will pause the game from updating until all elements in the scene have been loaded AND are ready to be rendered. I seen a few people on the forum bring this issue up, so I decided I'd try to come up with a solution, unfortunately I've been a bit busier than expected, so it's taken me a bit longer to get around to this than I anticipated.​



Features


  • Transitioning between scenes is much smoother.

  • Options to wait for scene to stabalize when loading animations and pictures.

  • Option to preload audio for map/battle/title, before scene is loaded.





Screenshots

N/A



Script

Dropbox Download



Instructions

N/A



Compatibility

None that I know of.



Credits and Thanks


  • Chaucer

  • Oscar92player @ RMW forums, for suggesting adding audio preloader & helping to debug it.





Author's Notes

===============================================================================
Terms Of Use :
===============================================================================

  This Plugin may be used commercially, or non commercially so long as credit
is given, either in the games credit section, or in a text file alongside
the game. This plugin may NOT be sold, or Plagiarized. This plugin may
be extended upon, and shared freely.


===============================================================================
Version History :
===============================================================================

● Version : 1.0.0
● Date : 13/01/2018
   ★ Release.

● Version : 1.4.0
● Date : 17/01/2018
   ★ Added the option to attempt to stabalize animations.

● Version : 1.5.0
● Date : 17/01/2018
   ★ Upload Animations to GPU before playing.
   ✩ Fixed issue with picture stabalization.

● Version : 1.5.1
● Date : 17/01/2018
   ✩ Accidentally deleted code to shorten pause time.

● Version : 2.0.0
● Date : 17/01/2018
   ★ Added preload function for BGM and BGS( map, battle & title scene only ).

===============================================================================
Contact Me :
===============================================================================

  If you have questions, about this plugin, or commissioning me, or have
a bug to report, please feel free to contact me by any of the below
methods.

rmw : https://forums.rpgmakerweb.com/index.php?members/chaucer.44456
patreon : https://www.patreon.com/chaucer91
chaos-project username : chaucer
discord : chaucer#7538
skypeId : chaucer1991
gmail : chaucer91

()()
(^.^)
c(")(")

2
Sea of Code / Help With Seperating Axis Theorem
April 19, 2017, 11:01:18 pm
Hello, been a while since I've posted anything, I know this isn't specifically code related, and mostly math related, however recently I've been looking into seperating axis theorem, I've found several tutorials/explanations online, and to be honest, I cant exactly understand how all the math works(yet), but I do understand what it's doing. I've managed to successfully implement detection with rectangles, however I'm still having difficulties with a couple things, and I was hoping someone here could help give some insight into the situation. ^_^

My first problem is, for some reason I can't get collision between a circle and a square to work properly, I've found a tutorial which seems to cover it but whenever I try to implement it the results are incorrect, the tutorial can be found here. The math for circle/square collision is at the very bottom, I also have the same issue with polygons, I've tested with a simple rectangle and a square and again, it seems the math just isn't there, you can find the code for circles and polygons below( please note the code used is ES6 ).

Rectangle  * Polygon collision.

collision( a, b ) {
      var collided, corners, axes;
      collided = true;
      corners = [ a.points, b.points ]; //push all the normals into an array.
      axes = this.getAxes( a ).concat( this.getAxes( b ) ); //get new axes based on the normals
      for ( let i = 0; i < axes.length; i++ ) { //iterate through the axes we need to test.
        let axis, p1, p2 = 0;
        axis = axes[i];
        p1 = this.getProjections( axis, corners[0] ); //projections along the new axis for our first shape.(an object with min and max value).
        p2 = this.getProjections( axis, corners[1] ); //projections along the new axis for second shape.
        if ( p1.max < p2.min ) collided = false;
        if ( p2.max < p1.min ) collided = false;
        if ( !collided ) break;
      };
      return collided;
    };

Rectange * Circle Collision.

rectCirCollision( a, b ) {
    //a = rectangle, b = circle
      let circle, max, corners;
      max = -Infinity;
      corners = a.points; // get all the normals of the rectangle.
      circle = new Vector( b.x - a.center.x, b.y - a.center.y ); //create a new vector with the angle between the rect & circle.

      for ( let i = 0; i < corners.length; i++ ) { //iterate through the normals.
        let v = new Vector( corners[i].x - a.center.x, corners[i].y - a.center.y ); //new vector with angle of the center of triangle to each corner.
        let proj = v.dot( circle.normalize() ); //get our projection based on the circle vector as a unit vector.
        max = proj > max ? proj : max; // set our max distance.
      };
      if ( circle.magnitude - max - b.radius > 0 && circle.magnitude > 0 ) { //not exactly sure whats going on here, got this code from the tutorial linked above. xD
        return false;
      };
      return true;
    };



My other question is I'm not entirely sure how to handle collisions once they happen. I didn't find much info on how to push the collided sprite outside of the collision area once it's collided. Anyone know a good tutorial that could help with this? or have any advice on the matter? :D any help is much appreciated. thanks in advance. If you need more code just let me know, if you'd like i can post all the code i've written thus far. ^^
3
Projects / Games / Shave the World
July 11, 2016, 03:26:26 pm



It's another average day in Retro City, the birds are chirping, the sun is shining, and people are being transformed into hairy creatures and going on a rampage?! For some reason people are being taken over by the hair on their head, they seemingly are driven by a single goal, find and infect everyone they come across! Within hours the plague consumes seamingly all of Retro City, but hope is not lost yet, On the outskirts of town, theres an unlikely hero. The Odd barber with, a compulsive urge to shave people bald. Will our unlikely hero be able to shave the world?


• Awesome Pixel art graphics with a cartoony feel.
• An incredible soundtrack that will put you in the mood to shave.
• Hair raising action in Metroidvania style gameplay with it's own unique style.
• A variety of tools at your disposal range from giant straight razors, high powered blow driers, a giant high pressure mouse can and more!
• Several unique modern stages, like an electronics store, the super market and even the city itself.
• Lots of bad hair related puns.
• Several different game modes, ranging from easy - hard, for story mode, time attack and boss rush.
• A score system which will keep track of your best run on each stage as well as an online scoreboard to compete with other players high scores.


The Barber : 

Ever since he was little he's always been a bit odd, he never had any friends for long, due to his compulsive nature to shave them bald. His only friend growing up was the family dog, who he would chase around the yard to try and shave him. The dogs name started out as Rex, then turned to Patches, and then Baldy. When the barber grew his mustache, he claimed it could talk, everyone thought he was crazy but the barber's mustache often gives helpful advice that can help in hairy situations.

The Stylist :

An air headed klutz who while growing up, her parents had little hope for, at least until she got her hands on a pair of scissors, frightened at first, but soon they realized their daughter was a talented hair stylist. Her haircuts would always come out artful and unique, at least when she didn't space out and shave the person bald, she barely managed to get her cosmetology license, despite being the star pupil of the class. Her business didn't last long either, after balding half her clients due to forgetting what they asked for, but now that the worlds completely taken over by hair monsters, theres no one left to complain about a bad hair cut, so she sees this as her opportuity to make a comeback in her career.


Spoiler: ShowHide






Currently this is a very early demo, there's no actual story, or level design, it's just to get feedback on the games mechanics, attacking, jumping etc, any feedback is much appreciated :D

https://www.dropbox.com/s/heh379q2ofkpklk/STWMechanicsDemo.zip?dl=0

Credits :

 

ConkerMich - Artwork

 

jcbrickston - Music & Sfx

 

Yanfly - Screen Resolution Plugin
4
RPG Maker Scripts / MV bind sprite to map.
January 27, 2016, 08:21:06 pm
Hi everyone(been a while :P) I'm in the process of writing  a plugin, however I've run into a minor problem which seems to be setting me back. basically I've added shadow sprites below the character, however under certain circumstances I'd like the shadow sprite to be bound to a map Y location and not a screen Y location, now I've managed to accomplish this, however I seem to get a minor issue, the shadow seems to bounce around every time the player moves, I'm not exactly sure how to solve this issue though, I'll leave a video and the code used below.

Video of the problem :
https://www.youtube.com/watch?v=LA3_XVk0z2M

Code used:

Spoiler: ShowHide
 
        //------------------------------------------------------------------------------//
//create shadows
//------------------------------------------------------------------------------//
var spriteShadows = Spriteset_Map.prototype.createCharacters;
Spriteset_Map.prototype.createCharacters = function() {
spriteShadows.call(this);
this._characterShadow = [];
for (var i = 0; i < this._characterSprites.length; i++) {
if (this._characterSprites[i]._character._characterName !== '' &&
this._characterSprites[i]._character._characterName !== "Vehicle") {
this._characterShadow[i] = new Sprite();
this._characterShadow[i].bitmap = ImageManager.loadSystem('Shadow1');
this._characterShadow[i].anchor.x = 0.5;
this._characterShadow[i].anchor.y = 0.9;
this._characterShadow[i].z = 10;
this._tilemap.addChild(this._characterShadow[i]);
}
}
};

       //------------------------------------------------------------------------------//
//updates the shadows.
//------------------------------------------------------------------------------//
var updateShadow = Spriteset_Map.prototype.updateShadow;
Spriteset_Map.prototype.updateShadow = function() {
updateShadow.call(this);
var _party = function() {
var list = []
list.push($gamePlayer);
return list;
}
var characters = this._characterSprites;
for (var i = 0; i < characters.length; i++) {
if (!this._characterShadow[i]) {continue;}
var chara = characters[i]._character;
if (chara.characterName() == "") {
this._characterShadow[i].visible = false;
continue;
}
if (chara.constructor === Game_Vehicle) {
continue;
}
                        //used to update the shadows location(which is where the problem seems to be.)
chara.updateShadow();
this._characterShadow[i].x = chara.shadowX;
this._characterShadow[i].y = chara.shadowY;
this._characterShadow[i].z = chara.screenZ()-1;
this._characterShadow[i].opacity = characters[i].opacity;
this._characterShadow[i].visible = characters[i].visible;
}
};


        Game_CharacterBase.prototype.updateShadow = function() {
if (undefined !== this.shadowX && undefined !== this.shadowY && undefined === this._altitude) {
this.shadowX = this.screenX();
if (!this.jumping && !this.falling && !this.climbing) {
this.shadowY = this.screenY();
} else {
                                        //here's where the problem is.
var mapzero = this.screenY() - ((this._y) * $gameMap.tileHeight);
if (!this.jumpLoc) {
this.jumpLoc = this._y
}
                                         //calling this does keep the shadow from moving with the player, however it bounces when the player moves.
                                         //I'm aware of why, unfortunately just not sure how to fix it.
this.shadowY = mapzero + (this.jumpLoc * $gameMap.tileHeight);
}

}
};



5
Script Troubleshooting / [Resolved]Skipping an Event
April 01, 2015, 12:09:08 am
Hey all, I'm trying to create a way to skip certain events processing, I've created a small add on inside of interpreter class to exit the event processing, I can't seem to get it to work though and it's sort of begun to annoy me haha, so thought I'd ask for some advice here. So far what I have will close out any chat box that is opened, however your character remains frozen and I'm not quite sure how to unfreeze him at this point. I'm using default message systems, I'll post everything I've coded so far.

this is inside Window_Message Class

#skip if movie
     if $game_switches[8] && Input.trigger?(Input::Key['Esc'])
       terminate_scene
     end


which leads to terminate scene(exact same as terminate_message except 1 change)
Spoiler: ShowHide

def terminate_scene
   self.active = false
   self.pause = false
   self.index = -1
   self.contents.clear
   # Clear showing flag
   @contents_showing = false
   # Call message callback
   if $game_temp.message_proc != nil
    # $game_temp.message_proc <<<<
     @intr = Interpreter.new      <<<< Only Changes Made
     @intr.command_exit(15)     <<<<
   end
   # Clear variables related to text, choices, and number input
   $game_temp.message_text = nil
   $game_temp.message_proc = nil
   $game_temp.choice_start = 99
   $game_temp.choice_max = 0
   $game_temp.choice_cancel_type = 0
   $game_temp.choice_proc = nil
   $game_temp.num_input_start = 99
   $game_temp.num_input_variable_id = 0
   $game_temp.num_input_digits_max = 0
   # Open gold window
   if @gold_window != nil
     @gold_window.dispose
     @gold_window = nil
   end
 end


which then calls exit event command(everything commented out is what I've tried to this point)

#--------------------------------------------------------------------------
 # * Exit Event
 #--------------------------------------------------------------------------
 def command_exit(event_id)
   # Clear list of event command
     $game_map.events[event_id].list = nil #List is set to accessor & not reader
   # If main map event and event ID are valid
  # if $game_map.events[event_id].id > 0
     # Unlock event
     #$game_map.events[event_id].unlock
     # erase event
     $game_map.events[event_id].erase
   #end
 end


so... any thoughts? I've also tried just using the event loop command, that's what I had orginally planned, however it don't seem to work for some reason, so kinda stumped on that one too.
6
RMXP Script Database / [XP] Weapon Charge
February 20, 2015, 11:10:09 pm
Weapon Charge
Authors: Chaucer
Version: 1.08
Type: Blizz-ABS Plugin
Key Term: Blizz-ABS Plugin



Introduction

This Script allows players to charge up they're weapons while holding the attack button, similalar to games like zelda & Secret of Mana etc
Upon release the weapons will trigger a skill.


Features


  • Can use custom graphics for charging HUD.

  • Can Set Sound Effect to play when charging is complete.

  • Can Add a charging Sprite Graphic for your actor.




Screenshots
None.


Script
Spoiler: ShowHide

=begin
Script Version:
1.08
Script Description:
This script is an add-on for Blizz abs, it allows weapons to "charge up"
when holding down the attack button, similar to many ABS games, when the
charge time is fulfilled then a skill will be released when the attack
button is release.

Script Instructions:
See module Skill_Charges for skill setup.

***Setting Images***
Background will be used as the background for the charging hud.
Charging is used as the bar that will fill up as the weapon charges.
Bar_Off_X is to center the X coordinate of the Charging bar on the background.
Bar_Off_Y same as above except for the Y coordinate.
Charging_Sprite is used to determine wether to use a character sprite or not
set to true or false.
Charging Sprites must be named as so.
ActorsName_charge_weapon_type(by default weapon type is 1 in blizz abs)
Weapon Types:
1.sword / axe / claws / unarmed / etc. (damages in close front)
2.spear / lance (damages only in front)
3.flail (distant weapon, does not damage close enemies, front)
4.boomerang (returning projectile weapon, front)
5.bow and arrow / gun / shuriken (non-returning projectile, NO consumption)
6.bow and arrow / gun (non-returning projectile, consumes AMMUNITION)
7.shuriken (non-returning projectile, consumes ITSELF)

***Sound Settings***
Sound_Effect, is the sound effect to play on charging completion.
Repeat_Sound, if set to true will replay the sound effect
while the button is held.
 
***Setting Skills for each weapon***
setup your skills as follows.
when [weapon_id] then return [skill_id]
 
Script Notes:
-Opening the menu will reset the timer upon exit.

-If using a bow and arrow(weapon that consumes items), it will consume the
lowest id item that the weapon can use for ammo(if you have any).

=Script Author=
  Chaucer
=end

module Skill_Charges
 #how many frames the timer will count before fully charged
 Timer = 40
 #Charging Background Sprite
 Background = 'Charging_Background'
 #Charging Bar
 Charging = 'Charging'
 #the offset(if needed) of the hud bar
 Bar_Off_X = 4
 Bar_Off_Y = 4
 #wether or not the sprite name will consider the weapon type.
 Weapon_Type = false
 #Use a charging sprite, set to true of false.
 Charge_Sprite = true
 #Sprite Extension name
 Name = '_charge'
 #the sound effect to be played when skill is ready.
 Sound_Effect = 'Charge_Ready'
 #if sound effect should repeat
 Repeat_Sound = true
 
 #Setup for weapons.
 def self.weapon_charge(weapon_id)
   case weapon_id
  #when weapon_id then return skill id
   when 1 then return 1
   when 2 then return 2
   when 3 then return 3
   when 4 then return 4
   when 5 then return 5
   when 6 then return 6
   end
   return 1
 end

end
#==============================================================================
#--------------------------- Charge Skills ------------------------------------
#- Class Dealing with Charging Skills.                                        -
#==============================================================================
class Charge_Skills
#------------------------------------------------------------------------------
#Initialize
#------------------------------------------------------------------------------
 def initialize
   #get variables needed
   @delay = 60
   @dummy = 60
   @ox = Skill_Charges::Bar_Off_X
   @oy = Skill_Charges::Bar_Off_Y
   @player = $game_party.actors[0]
   @counter = Skill_Charges::Timer
   @player_weapon = @player.weapon_id
   @sprites = Skill_Charges::Charge_Sprite
   @charge_speed = BlizzABS::Config::SNEAK_SPEED
   @player_speed = BlizzABS::Config::NORMAL_SPEED
   @type = BlizzABS::Weapons.type(@player_weapon)
   @original_sprite = $game_party.actors[0].character_name
 end
 
#------------------------------------------------------------------------------
#Update
#------------------------------------------------------------------------------
 def update
   #update players info.
   update_player
   #update the delay timer.
   update_delay
   #update the charge timer.
   update_timer
   #update the hud.
   update_hud
   #update sound effect.
   update_sound
   #update players sprite.
   update_sprite if @sprites
   dispose
 end
 
#------------------------------------------------------------------------------
#Update Player information
#------------------------------------------------------------------------------
 def update_player
   
   #when selecting a different character.
   if $game_party.actors[0] != @player
     #dispose of any previous charging sprites
     @stunned = true
     #change the player variable.
     @player = $game_party.actors[0]
     #change sprite variable.
     @original_sprite = $game_party.actors[0].character_name
   end
   
   #when selecting a different weapon and player is the same.
   if @player.weapon_id != @player_weapon
     #update the players weapon variable.
     @player_weapon = @player.weapon_id
     #update the weapon type
     @type = BlizzABS::Weapons.type(@player_weapon)
   end
   
   #checks if the player is charging an attack.
   if @delay == 0
     #changes speed to sneak speed.
     $game_player.normal_speed = @charge_speed if $game_player.normal_speed != @charge_speed
     #checks if the charging timer has finished and release attack button.
     if @timer == @counter && !Input.press?(Input::Attack)
       skill_id = Skill_Charges.weapon_charge(@player_weapon) if skill_id == nil
       $game_player.character_name_org = @original_sprite if $game_player.character_name_org != @original_sprite
       $game_player.use_skill($data_skills[skill_id], true)
     end
   end
 end
 
#------------------------------------------------------------------------------
#Update Delay Timer information
#------------------------------------------------------------------------------
 def update_delay
   #checks if battler size is greater than zero
   if $game_system.battlers_number > 0
     #checks if the player can use attack.
     if $game_player.attack_can_use?
       #if player is holding the attack button
       if Input.press?(Input::Attack)
         #calls to check which states are stuns.
         check_states if @stuns == nil
         #checks if the player has one of those states.
         @stuns.each do |n|
           #if player's stunned reset delay timer.
           if @player.states.include?(n)
             @stunned = true
           else
             #otherwise, countdown the delay
             @delay -= 1 if @delay != 0 unless @delay == 0
           end
         end
       end
     end
   end
 end
 
#------------------------------------------------------------------------------
# Checks the states database for stun states.
#------------------------------------------------------------------------------
 def check_states
   #checks the players states to see if he's stunned
   @stuns = [] if @stuns == nil
   if @stuns == []
     for i in 1...$data_states.size
        if $data_states[i].restriction == 4
          @stuns.push($data_states[i].id)
        end
     end
   end
 end
 
#------------------------------------------------------------------------------
# Update the timer for charging.
#------------------------------------------------------------------------------
 def update_timer
   #if the delay has finished
   if @delay == 0
     #if still holding the attack button
     if Input.press?(Input::Attack)
       @timer = 0 if @timer == nil
       @timer += 1 unless @timer == @counter
     end
   end
 end
 
#------------------------------------------------------------------------------
# Updates the sound effect for charging.
#------------------------------------------------------------------------------
 def update_sound
   #if skill is charged up
   if @timer == @counter
     #set repeat timer.
     if @repeat == nil
       @repeat = 0
     end
     #if repeat sound
     if Skill_Charges::Repeat_Sound
       if @repeat == @counter
         @repeat = nil
         @play = nil
       else
         @repeat += 1
       end
     end
     #setup sound
     sound = Skill_Charges::Sound_Effect if sound == nil
     #if the sound hasn't played
     if @play == nil
       #play the sound effect
       Audio.se_play("Audio/SE/" + sound, $game_variables[8], 150)
       @play = true
     end
   end
 end
#------------------------------------------------------------------------------
# Updates the players sprite.
#------------------------------------------------------------------------------
 def update_sprite
   if @delay == 0
     if @timer > 0
       #reset the players sprite so it doesn't cause any issues.
       $game_player.character_name_org = @original_sprite if @spr_refresh == nil
       @spr_refresh = true
       @ext = Skill_Charges::Name if @ext = nil
       #if the sprite has been reset.
       if @spr_refresh == true
         #set the sprite to charging sprite.
         if Skill_Charges::Weapon_Type
           $game_player.character_name_org = @original_sprite + @ext + '_' + @type if
           $game_player.character_name_org != @original_sprite + @ext + '_' + @type
         else
           $game_player.character_name_org = @original_sprite + @ext if
           $game_player.character_name_org != @original_sprite + @ext
         end
       end
     end
   end
 end
 
#------------------------------------------------------------------------------
#Update for the HUD.
#------------------------------------------------------------------------------
 def update_hud
   if @delay == 0
     #if images are nil
       #setup images and variables needed.
       @background = RPG::Cache.picture(Skill_Charges::Background) if @background == nil
       @bar        = RPG::Cache.picture(Skill_Charges::Charging) if @bar == nil
       @bw1,@bh1 = @background.width,@background.height if @bw1 == nil || @bh1 == nil
       @bw2,@bh2 = @bar.width,@bar.height if @bw2 == nil || @bh2 == nil
       rect1 = Rect.new(0,0,@bw1,@bh1) if rect1 == nil
       rect2 = Rect.new(0,0,@bw2,@bh2) if rect2 == nil
       @x = (@background.width / 2) if @x1 == nil
       @y = (@background.height / 2) - 16 if @y1 == nil
     
     #create sprites if not created.
     if @bhud == nil
       #create background
       @bhud = Sprite.new
       @bhud.bitmap = Bitmap.new(@bw1,@bh1)
       @bhud.bitmap.blt(0, 0, @background, rect1)
       @bhud.x = $game_player.screen_x - @x
       @bhud.y = $game_player.screen_y - @y
       @bhud.z = $game_player.screen_z
     #if it is created
     else
       @bhud.x = $game_player.screen_x - @x
       @bhud.y = $game_player.screen_y - @y
       @bhud.z = $game_player.screen_z
     end
   
     #creates bar when needed
     if @bhud2 == nil
       @bhud2 = Sprite.new
     #if already created
     else
       if @timer > 0 && @timer != @counter
         w = @timer * @counter / @counter
         @bhud2.bitmap = Bitmap.new(w,@bh2)
         @bhud2.bitmap.blt(0, 0, @bar, rect2)
         @bhud2.x = $game_player.screen_x - @x + @ox
         @bhud2.y = $game_player.screen_y - @y + @oy
         @bhud2.z = $game_player.screen_z + 1
       end
       @bhud2.x = $game_player.screen_x - @x + @ox
       @bhud2.y = $game_player.screen_y - @y + @oy
       @bhud2.z = $game_player.screen_z + 1
     end
   end
 end
#------------------------------------------------------------------------------
#Dispose
#------------------------------------------------------------------------------
 def dispose
   #if stunned or no longer pressing attack.
   if @stunned || !Input.press?(Input::Attack)
     #reset all the old variables.
     $game_player.character_name_org = @original_sprite if $game_player.character_name_org != @original_sprite
     $game_player.normal_speed = @player_speed if $game_player.normal_speed == @charge_speed
     @spr_refresh = nil if @spr_refresh != nil
     @bhud2.bitmap.dispose if @bhud2 != nil
     @stunned = false if @stunned == true
     @bhud.bitmap.dispose if @bhud != nil
     @bhud2.bitmap = nil if @bhud2 != nil
     @delay = @dummy if @delay != @dummy
     @bhud.bitmap = nil if @bhud != nil
     skill_id = nil if skill_id != nil
     @bhud2.dispose if @bhud2 != nil
     @repeat = nil if @repeat != nil
     @timer = nil if @timer != nil
     @bhud2 = nil if @bhud2 != nil
     @bhud.dispose if @bhud != nil
     @bhud = nil if @bhud != nil
     @play = nil if @play != nil
   end
 end
end

#==============================================================================
#-------------------------- Scene Map Alias -----------------------------------
#- Alias Scene Map to include Charge Skills.                                  -
#==============================================================================

class Scene_Map
 
 alias update_charge_later update
 
 def charge_new
   if @charging == nil
     @charging = Charge_Skills.new
     @charging.dispose
   end
 end
 
 def update
   update_charge_later
   charge_new
   @charging.update
 end
 
end





Instructions

See Script


Compatibility

Requires Blizz ABS.
Player Must have a weapon equipped or charging won't work.
Must have images for hud in folder(not included might add later.)


Credits and Thanks


  • Chaucer: Author

  • Blizzard, for Blizz-ABS

7
So I noticed this a few times I'm not sure whether I'm missing something or if I'm doing this wrong completely, But every time i draw a bitmap I have this weird issue where when I dispose it, it disposes slowly. I.E. I call dispose method and it takes anywhere from 0-3 seconds to dispose, it's sort of random. Here's an example from what I'm trying to write now.

def update_graphic
   
   if @timer_1 == 24
     @charge_hud = Sprite.new
     @charge_hud.bitmap = Bitmap.new(64,24)
     @charge_hud.bitmap.fill_rect(0,0,64,24,Color.new(0,0,0,255))
   end

 end

 def dispose
   if @charge_hud != nil
     @charge_hud.dispose
     @charge_hud.bitmap.dispose
   end
 end
end


It all looks logical to my eyes, but when I call it it doesn't seem to respond to dispose right away. I think it might be part of the issue that I'm calling it from Scene Map?

class Scene_Map
 alias main_charge main; alias update_charge_later update
def main
   @charging = Charge_Skills.new
   main_charge
   @charging.dispose
 end
 
 def update
   update_charge_later
   @charging.update
 end
end


Can anyone please tell me where I messed up? I've been messing with this for quite some time, I thought I'd post here before it completely frustrates me haha.(Also sorry if this issue had been discussed before, I did search, but honestly it wasn't that thorough.)
8
General Discussion / RMVX graphics pack in rmxp?
October 25, 2014, 10:09:45 pm
Hey, so I had a quick question, I tried looking through the Terms and Conditions on rpg maker website, but i couldnt find anything on this topic. I wanted to purchase 2 graphics packs from the rpg maker store, the problem is that they're for rmvxace(so it says on the image when you click to buy it) But I was curious would I be allowed to use this graphics pack in RMXP (I don't have vxace) in legal terms?(after i modified it of course into an xp tileset)
also sorry if this is in the wrong thread?
9
RPG Maker Scripts / Instance Map Script Help?
September 26, 2014, 08:26:34 pm
Hello all, I've been working on a script to add instance maps to RMX-OS, and I've run into a few problems, I'm not that great of a scripter, so bear with me please. I've tried to get what i could written down which wasn't very much I'll post it below though. The problem I seem to be running into right now, is loading the instance of the map into the game. I'm not 100% sure I'm heading in the right direction either. but that's why I decided to post here before i continue any further. any help is greatly appreciated.

Spoiler: ShowHide
module MAP_SETUP
  INSTANCE_MAPS = [2]
  MAP_LIMIT = 999
end

class Instance_Maps #< Game_Map
  def initialize
    @map_id = 0
    @instance_id = (@map_id + ($network.user_id * (MAP_SETUP::MAP_LIMIT + 1))) - 1
   
  end
  def update_maps(map_id)
    @map_id = map_id
    if MAP_SETUP::INSTANCE_MAPS.include?(@map_id)
    @instance_id = (@map_id + ($network.user_id * (MAP_SETUP::MAP_LIMIT + 1))) - 1
    # Load map from file and set @map
    @map = load_data(sprintf("Data/Map%03d.rxdata", @instance_id))
    @imap = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
    tileset = $data_tilesets[@imap.tileset_id]
    @tileset_name = tileset.tileset_name
    @autotile_names = tileset.autotile_names
    @panorama_name = tileset.panorama_name
    @panorama_hue = tileset.panorama_hue
    @fog_name = tileset.fog_name
    @fog_hue = tileset.fog_hue
    @fog_opacity = tileset.fog_opacity
    @fog_blend_type = tileset.fog_blend_type
    @fog_zoom = tileset.fog_zoom
    @fog_sx = tileset.fog_sx
    @fog_sy = tileset.fog_sy
    @battleback_name = tileset.battleback_name
    @passages = tileset.passages
    @priorities = tileset.priorities
    @terrain_tags = tileset.terrain_tags
    # Initialize displayed coordinates
    @display_x = 0
    @display_y = 0
    # Clear refresh request flag
    @need_refresh = false
    # Set map event data
    @events = {}
    for i in @map.events.keys
      @events[i] = Game_Event.new(@map_id, @map.events[i])
    end
    # Set common event data
    @common_events = {}
    for i in 1...$data_common_events.size
      @common_events[i] = Game_CommonEvent.new(i)
    end
    # Initialize all fog information
    @fog_ox = 0
    @fog_oy = 0
    @fog_tone = Tone.new(0, 0, 0, 0)
    @fog_tone_target = Tone.new(0, 0, 0, 0)
    @fog_tone_duration = 0
    @fog_opacity_duration = 0
    @fog_opacity_target = 0
    # Initialize scroll information
    @scroll_direction = 2
    @scroll_rest = 0
    @scroll_speed = 4
    end
  end
end

class Interpreter
  alias command_201_instance command_201
  def command_201
    command_201_instance
    @instance = Instance_Maps.new
    @instance.update_maps(@parameters[1])
    if @parameters[0] == 0 && MAP_SETUP::INSTANCE_MAPS.include?(@parameters[1])
      #$game_temp.player_new_map_id = @instance_id
      #$game_temp.player_new_x = @parameters[2]
      #$game_temp.player_new_y = @parameters[3]
      #$game_temp.player_new_direction = @parameters[4]
    end
  end
end
10
Chat / FEMA Camps & Flouride, Your thoughts?
August 16, 2014, 04:20:13 am
So, for a while now this has been bugging me, I'm sure not everyone reading this is from the USA & not everyone's aware of this. But I was wondering about you're guys opinions on this. Since the 1940's the USA has been adding fluoride into most water supplies as a source of fighting tooth decay & preventing Cavity Problems. It sounds nice and all but doing a bit more research into it, fluoride when Consumed causes Calcification of the Pineal Gland, which drastically slows the mind down & train of thought. So I started looking a bit more, fluoride also causes infertility & sterility then I found an article http://rense.com/general79/hd3.htm and many more like it, showing that nazis used fluoride in the water supply and for what purpose. Pretty scary thinking that the USA is doing this now, but I thought maybe this is just a strange coincidence.
Then I find out FEMA has built up a bunch of prison looking sites referred to as "FEMA Camps" all over the entire USA which imo seem similar to concentration camps. Later finding a video of Barack Obama saying these will be used for prisoners of war or something along these lines. Then found a document saying Homeless people would be using them instead as a form of free residency(seemed like a good idea!) as I continued reading later it's revealed the homeless people basically have no choice in the matter, and they will not be allowed to leave(not easily anyways).(http://money.msn.com/now/post--columbia-sc-to-exile-its-homeless) seems pretty drastic if you ask me, also noted it doesn't call them FEMA camps, I seen a report that LA intends to do the same thing soon, and they will be forcing RFID chips to all who reside in these housings. so even if they do manage to leave they'll be able to be tracked as long as the chips active. http://www.shtfplan.com/headline-news/hotel-california-l-a-officials-to-send-homeless-to-internment-camps-will-be-implanted-with-rfid-chips_07282014 shortly after i found this, http://www.pbs.org/auschwitz/40-45/background/ideology.html see any similarities in the "The Early Targets" section of the article?
What do you guys & girls think? Crazy conspiracy theories? or something to worry about.
lol apologies for rambling & the long read. Opinions?
11
Script Troubleshooting / @move_speed(Resolved)
August 07, 2014, 01:33:41 am
Hello all, I was messing around with RMXP and while playing with @move_speed, I realized I can't call it like other objects, I.E

$game_player.move_speed

I was wondering if it's possible to call @move_speed from another scene and if so how, I'm probably missing something simple I'm sure.
12
RMXP Script Database / [XP] RMX-OS Party HUD
August 04, 2014, 05:15:28 am
RMX-OS Party HUD
Authors: Chaucer
Version: 0.83
Type: RMX-OS Plugin
Key Term: RMX-OS Plugin, Blizz-ABS Plugin



Introduction

This Script allows the player to see party members on screen, as well as allowing them to see current hp/sp values



Features


  • Able to see current party members below your hud

  • Able to see HP/SP of party members

  • Toggle on & off with Blizz-ABS HUD button

  • Change color of party leader name or use icon to distinguish leader.

  • Can use custom pictures for hud or default blizz abs bars(read script for details)

  • Can set Icons for each class of party members

  • Can color the icons of party(still needs some work)

  • Modifies Blizz abs hud to show players name as well as change color according to setup.


Planned Features
  • Mouse interface(Possibly)

  • Fade out when player is under the hud




Screenshots




Demo

N/A it's pretty plug n play dont think a demo is needed


Script
Due to a weird issue, I've added the script to paste-bin.
http://pastebin.com/SWpzxY2G



Instructions

Place below RMX-OS, Blizz ABS, & Blizz ABS Controller for RMX-OS


Compatibility

Should be compatible with anything as far as I can tell.
Requires Blizz ABS, RMX-OS & Blizz ABS Controller for RMX-OS


Credits and Thanks


  • Blizzard for RMX-OS, Blizz ABS & Blizz ABS Controller

  • white spirits for requesting it.




Author's Notes

There are some minor issues, however it's not the scripts fault but I do plan on fixing a few of the issues
  • when the party leader disconnects the party does not disband, and no new leader is assigned.

  • when a party member leaves the party it doesn't remove that party member for some reason. Trying to invite another party member after one left(if the party was full) will result in party still being full

I tested both of these issues without the hud and it seems to be inside of Blizz ABS Controller, but I will look more into it later on.
If you find any issues please let me know and i will fix it when I can thank you.[/list]
13
Script Troubleshooting / for i in x loop[Resolved]
August 03, 2014, 10:01:11 pm
Hello, I've recently been working on a hud, and I didnt want to write out the same methods over and over, so I'm trying to use
Spoiler: ShowHide
for i in x

loop to draw out save some space, however I seem to be getting a small problem. Here's the code I used

for i in (0..4)
     @background_image = Sprite.new
     @background_image.bitmap = Bitmap.new(78,30)
     @background_image.bitmap.fill_rect(0, 0, 78, 30, Color.new(0, 0, 0,128))
     @background_image.x = NewHUD::HUD_X
     @background_image.y = NewHUD::HUD_Y + (30 + 1) * i
     @background_image.z = 1000
   end

it works, for a few seconds, and then everything except the last iteration is deleted from the screen, I'm not sure why, hope someone could help explain this to me am I missing something here? I also tried
(0..4).each do |i|

however the result is the same. :(
14
New Projects / [XP]Project Emerald
August 30, 2013, 12:45:30 pm




Summary
This is a Project I've been working on for some time, Although still in the early stages I thought to share the plans, story, features etc. with everyone. If you feel like joining in the project help is much appreciated as I'm the only one working on it at this time.




Story
Background story:
 In ancient times, there were two goddesses. These two goddesses Juphia and Mairsa, gave birth to
the planets, and life of all forms. These two goddesses, kept balance in the universe, however they could not keep watch over
everything, so they created deities, The deities would uphold the harmony  of all life forms, and teach the will of the goddesses
to the inhabitants of their core planets.
 The Eldest Goddess, Juphia, the keeper of peace was worshiped and loved by all of their creations. Howver Mairsa, the goddess
of death, was missunderstood and feared. Unfortunately as time went on, the fear
eventually led to hatred for the goddess Mairsa. Mairsa was jealous of the admiration the people had for her sister Juphia, and
carefully devised a plan behind her sisters back, with a handful of deities loyal to her. She planned to unleash all the
evils of the worlds with the help of Raxus the most powerful deity under her command, he was the gatekeeper of all darkness and chaos in
the realms. Together Mairsa and Raxus would unleash an everlasting darkness over all the planets, they would overthrow her
sister, and unleash unspeakable creatures to lay waste to all her sisters creations. The time has now come
and the plan has played out,Mairsa has sealed Juphia away,Raxus' Minions terrorize planets, deities fight amongst eachother.
 With her last bit of strength, Juphea beacons to her remaining deities to spread word, for her
followers to take up arms. against Raxus, and her sister, in order to restore the peace and love the worlds once held.


More Details later.
15
Resources / Chaucer's Resources
July 09, 2013, 07:08:16 am
for the past few weeks i've been working on graphics for a project im working on, and i figured i'd share all my resources as i get done  i'll try to keep this thread updated with more resources at least every week  they are 100% custom and free to use no credits necessary, I intend to create 72 icons 8 tilesets 12 autotiles 4 character sprites 1 Windowskin

Last Update ~ 2014/01/02

Preview:
Spoiler: ShowHide



Characters
Male01 + Hair + Clothing
Spoiler: ShowHide






Female01 + Hair + Clothing
Spoiler: ShowHide






Monsters
Spoiler: ShowHide

Monster-01


Others
Spoiler: ShowHide

door

Computer

Warp

Rock

Plant





AutoTiles
Grass
Spoiler: ShowHide


Grass  Trail
Spoiler: ShowHide


Sand
Spoiler: ShowHide


roof
Spoiler: ShowHide


road
Spoiler: ShowHide


snow
Spoiler: ShowHide


snow trail
Spoiler: ShowHide


Add-Ons
Spoiler: ShowHide

spiked fence






Tilesets
Grasslands
Spoiler: ShowHide
i'll probably edit this a littlemore, im not very happy with the wall, if i do edit it' i'll post the new one later
also i used the RTP standard grass which i'll change later i havent come up with a pattern i like yet for grass.



Snowy Field
Spoiler: ShowHide


Town/City
Spoiler: ShowHide


Add-Ons
Spoiler: ShowHide

Fence

Newly Cut Down Tree





WindowSkin
Spoiler: ShowHide





Icons
HP potion
Spoiler: ShowHide


MP Potion
Spoiler: ShowHide


Sword
Spoiler: ShowHide


Axe
Spoiler: ShowHide


Dagger
Spoiler: ShowHide
16
Auto-Targeting for Blizz-ABS + Mouse
Authors: Blizzard, chaucer
Version: 1.11
Type: Blizz ABS Plugin
Key Term: Blizz-ABS Plugin



Introduction
Allows you to select an enemy before using skills & items



Features


  • when targeting an enemy, every skill and item that would normally call the selection screen now execute on that target immediately

  • toggle it on and off

  • cycle through targets

  • optional auto-facing of target

  • able to select enemies with mouse click

  • able to choose to use Arrow_Base(cursor for normal battle's) or an animation

  • added ability to choose if arrow is above or below an enemy




Screenshots
Spoiler: ShowHide




Demo

N/A if you need one just ask :)


Script


Spoiler: ShowHide

#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Auto-Targeting for Blizz-ABS by Blizzard
# Version: 1.11b
# Type: Blizz-ABS Add-on
# Date: 26.7.2009
# Date v1.0b: 26.7.2009
# Date v1.1b: 19.8.2009
# Date v1.11b: 26.11.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#  This script is to be distributed under the same terms and conditions like
#  the script it was created for: Blizz-ABS.
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Information:
#
#   This script must be placed RIGHT BELOW Blizz-ABS and requires Blizz-ABS
#   v2.6 or higher to work properly. It will allow you to set a target for the
#   actor before using a skill or item that requires the selection screen.
#
#
# If you find any bugs, please report them here:
# http://forum.chaos-project.com
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

if !$BlizzABS || BlizzABS::VERSION < 2.6
 raise 'ERROR: The "Auto-Targeting" plugin requires Blizz-ABS 2.6 or higher.'
end

#==============================================================================
# module BlizzCFG
#==============================================================================

module BlizzCFG
 
 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 # START Configuration
 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
 # animation ID of animation to play over the target
 TARGET_ANIMATION_ID = 1      #ID of Animation or nil for Arrow Base
 #button for mouse toggle
 TARGET_MOUSE_KEY = Input::Key['Mouse Left']
 # button for target toggle
 TARGET_TOGGLE_KEY = Input::Key['Q']
 # button for target change
 TARGET_CHANGE_KEY = Input::Key['E']
 # choose if the arrow is ahove or below target(if TARGET_ANIMATION_ID = nil)
 TARGET_ABOVE = false
 # auto facing the target all the time
 AUTO_TURNING = false
 
 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 # END Configuration
 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

end

$blizzabs_auto_target = 1.11

#==============================================================================
# BlizzABS::Processor
#==============================================================================

class BlizzABS::Processor
 
 attr_accessor :autotarget
 
end
 
#==============================================================================
# BlizzABS::Controls
#==============================================================================

class BlizzABS::Controls
 
 alias update_attack_autotarget_later update_attack
 def update_attack
   if $BlizzABS.autotarget == nil
     if Input.trigger?(BlizzCFG::TARGET_TOGGLE_KEY) ||
         Input.trigger?(BlizzCFG::TARGET_CHANGE_KEY)
       targets = $game_map.battlers.find_all {|b| b.valid? && b.in_screen?}
       $BlizzABS.autotarget = targets[0] if targets.size > 0
     end
#===============================================================================
#Mouse Controls
     if Input.trigger?(BlizzCFG::TARGET_MOUSE_KEY)
       targets = $game_map.battlers.find_all {|b| b.valid? && b.in_screen? && b.mouse_in_area?}
       $BlizzABS.autotarget = targets[0]
     end

   elsif Input.trigger?(BlizzCFG::TARGET_MOUSE_KEY)
       targets = $game_map.battlers.find_all {|b| b.valid? && b.in_screen? && b.mouse_in_area?}
       index = $game_map.battlers.any?{|b| b.valid? && b.mouse_in_area?}
       $BlizzABS.autotarget = targets[0] if targets[0] !=nil
       # end
#===============================================================================
   elsif Input.trigger?(BlizzCFG::TARGET_TOGGLE_KEY)
     $BlizzABS.autotarget = nil
   elsif Input.repeat?(BlizzCFG::TARGET_CHANGE_KEY)
     targets = $game_map.battlers.find_all {|b| b.valid? && b.in_screen?}
     index = targets.index($BlizzABS.autotarget)
     $BlizzABS.autotarget = targets[(index + 1) % targets.size] if index != nil
   end
   if $BlizzABS.autotarget != nil && (!$BlizzABS.autotarget.in_screen? ||
       !$BlizzABS.autotarget.valid?)
     $BlizzABS.autotarget = nil
   end
   return update_attack_autotarget_later
 end
 
 alias update_skill_autotarget_later update_skill
 def update_skill
   result = update_skill_autotarget_later
   if result && $BlizzABS.autotarget != nil && $game_temp.select_data != nil
     characters = []
     $game_temp.select_data[3].each {|s| characters.push(s.character)}
     if characters.include?($BlizzABS.autotarget)
       $game_player.ai.target = $BlizzABS.autotarget
       $game_player.use_skill($game_temp.select_data[0])
     else
       $game_system.se_play($data_system.buzzer_se)
     end
     $game_temp.select_data = nil
   end
   return result
 end
 
 alias update_item_autotarget_later update_item
 def update_item
   result = update_item_autotarget_later
   if result && $BlizzABS.autotarget != nil && $game_temp.select_data != nil
     characters = []
     $game_temp.select_data[3].each {|s| characters.push(s.character)}
     if characters.include?($BlizzABS.autotarget)
       $game_player.ai.target = $BlizzABS.autotarget
       $game_player.use_item($game_temp.select_data[0])
     else
       $game_system.se_play($data_system.buzzer_se)
     end
     $game_temp.select_data = nil
   end
   return result
 end
 
end

$BlizzABS = BlizzABS::Processor.new

#==============================================================================
# Game_Character
#==============================================================================

class Game_Character
 
 attr_accessor :direction_fix

end

#==============================================================================
# Spriteset_Map
#==============================================================================

class Sprite_Targeter < RPG::Sprite
 
 attr_accessor :character
 def initialize(viewport, character = nil)
   super(viewport)
   self.bitmap = Bitmap.new(1, 1) if BlizzCFG::TARGET_ANIMATION_ID !=nil
   @character = character
   @blink_count = 0
   update
 end

 def update
   @character = $BlizzABS.autotarget
   if @character == nil
     self.bitmap = nil
     @loop_animation_id = 0
     loop_animation(nil)
     return
   end
   super
   @blink_count += 1 if BlizzCFG::TARGET_ANIMATION_ID ==nil
    @blink_count = 0 if @blink_count == 8
    self.bitmap = RPG::Cache.windowskin($game_system.windowskin_name) if BlizzCFG::TARGET_ANIMATION_ID ==nil
    self.ox = self.bitmap.width / 12 if BlizzCFG::TARGET_ANIMATION_ID ==nil
    self.oy = 0 if BlizzCFG::TARGET_ABOVE == false && BlizzCFG::TARGET_ANIMATION_ID ==nil
    self.oy = -(self.bitmap.height) + 64  if BlizzCFG::TARGET_ABOVE == true &&  BlizzCFG::TARGET_ANIMATION_ID ==nil
    self.mirror = true if BlizzCFG::TARGET_ABOVE == true
    self.angle = 180 if BlizzCFG::TARGET_ABOVE == true
    self.z = 0
    if @blink_count < 4
     self.src_rect.set(128, 96, 32, 32) if BlizzCFG::TARGET_ANIMATION_ID ==nil
   else
     self.src_rect.set(160, 96, 32, 32) if BlizzCFG::TARGET_ANIMATION_ID ==nil
   end
   if @loop_animation_id == 0
     @loop_animation_id = BlizzCFG::TARGET_ANIMATION_ID
     loop_animation($data_animations[@loop_animation_id]) if BlizzCFG::TARGET_ANIMATION_ID !=nil
   end
   self.x = @character.screen_x
   self.y = @character.screen_y
   self.z = @character.screen_z(0)
 end
 

end

#==============================================================================
# Spriteset_Map
#==============================================================================

class Spriteset_Map
 
 alias init_autotarget_later initialize
 def initialize
   @autotarget = Sprite_Targeter.new(@viewport1)
   init_autotarget_later
 end
 
 alias update_autotarget_later update
 def update
   @autotarget.update
   if BlizzCFG::AUTO_TURNING && $BlizzABS.autotarget != nil
     $game_player.turn_toward($BlizzABS.autotarget)
   end
   update_autotarget_later
 end
 
 alias dispose_autotarget_later dispose
 def dispose
   @autotarget.dispose
   @autotarget = nil
   dispose_autotarget_later
 end
 
end



Instructions

Place Below Blizz ABS (Instructions in script)


Compatibility

Requires Blizz-ABS & Mouse Controler to work


Credits and Thanks


  • thanks to Blizzard for making the original script

  • me, chaucer, for this edit



Author's Notes

None
17
RMXP Script Database / [XP] Gold Variance
June 09, 2013, 05:38:18 am
Gold Variance
Authors: Chaucer
Version: 1.0
Type: Battle Add-on
Key Term: Battle Add-on



Introduction
  • Adds Variance to gold so obtained ammount is random based on %




Features


  • Random gold gain from enemies

  • Easy to configure





Screenshots
N/A


Demo
N/A


Script
Spoiler: ShowHide

=begin
***********************************************************************
***********************************************************************
* [Gold Variance]
* Author : Chaucer
* Version 1.0
***********************************************************************
*Intro: This script change the way to get gold instead of static number
*       gold will be gained with a variance.
*
*Example: Before: Enemy ID killed = 60 gold every time.
*         After:  Eney ID killed = 60-75 gold(randomly).
*
*Features: Adds Variance to gold
*
*Instructions: Place below Scene_Debug but above everything else.
*              search for var to set the ratio var = 25 preset.
*
*Compatibility: no known issues except with scripts that rewrite gold
*               gained method.
*
*Credits: None required unless felt like
*        
=end

#==============================================================================
# ** Scene_Battle (part 2)
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================

class Scene_Battle
 
 def start_phase5
   # Shift to phase 5
   @phase = 5
   # Play battle end ME
   $game_system.me_play($game_system.battle_end_me)
   # Return to BGM before battle started
   $game_system.bgm_play($game_temp.map_bgm)
   # Initialize EXP, amount of gold, and treasure
   exp = 0
   gold = 0
   #var = パーセントの変数は整数を使用してくださいされて
   var = 25
   treasures = []
   # Loop
   for enemy in $game_troop.enemies
     # If enemy is not hidden
     unless enemy.hidden
       #amplified gold
       gold_m = [enemy.gold * var / 100, 1].max
       gold_m += rand(gold_m+1) + rand(gold_m+1) - gold_m
       # Add EXP and amount of gold obtained
       exp += enemy.exp
       gold += enemy.gold + gold_m
       # Determine if treasure appears
       if rand(100) < enemy.treasure_prob
         if enemy.item_id > 0
           treasures.push($data_items[enemy.item_id])
         end
         if enemy.weapon_id > 0
           treasures.push($data_weapons[enemy.weapon_id])
         end
         if enemy.armor_id > 0
           treasures.push($data_armors[enemy.armor_id])
         end
       end
     end
   end
   # Treasure is limited to a maximum of 6 items
   treasures = treasures[0..5]
   # Obtaining EXP
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     if actor.cant_get_exp? == false
       last_level = actor.level
       actor.exp += exp
       if actor.level > last_level
         @status_window.level_up(i)
       end
     end
   end
   # Obtaining gold
   $game_party.gain_gold(gold)
   # Obtaining treasure
   for item in treasures
     case item
     when RPG::Item
       $game_party.gain_item(item.id, 1)
     when RPG::Weapon
       $game_party.gain_weapon(item.id, 1)
     when RPG::Armor
       $game_party.gain_armor(item.id, 1)
     end
   end
   # Make battle result window
   @result_window = Window_BattleResult.new(exp, gold, treasures)
   # Set wait count
   @phase5_wait_count = 100
 end
end





Instructions
Place below Scene_Debug
Directions Inside Script


Compatibility
not compatible anything that rewrites gained gold method


Credits and Thanks


  • Chaucer

  • Credits not needed anyone could make this.




Author's Notes

Hope it helps someone
18
RPG Maker Scripts / [XP] critical rate
March 06, 2012, 09:17:13 am
I've been trying to find a way to display the players critical chance number cant seem to figure it out. any help? i'm trying to fit it into 
"#{critical % would be here}"
anyone know of a way to show the critical rate?
19
well im not really looking for a script i just need 2 things 1 is it possible to make it so after you click something it clicks again i know it sounds stupid and useless but its actually pretty important i tried a few things including this
Spoiler: ShowHide
if Input.trigger?(Input::C)
      Input.repeat(Input::C)

didnt work lol... and i also need a way to change a key just 1 when an event happens lol i think its possible with events but id preffer to add it to my script so i dont gotta set an extra event xP but ill acept even with events lookin for any help lol thanks
EDIT: actually i dont thnk itd be possible with events cause im using blizz abs+mouse controller+mouse menu lol and what i want is the Right mouse button to change to the back button while in the menu and then revert back to attack button when you return to map xP
20
lol as the title says im paying (very well ><) for 4 script/script modifications so i can complete my game lol if anyone is interested in helping please say so what i need is.
1.Need someone to make Mogs TP System compatible with blizz abs i managed to get the TP into the HUD(works well) jst it dont cost TP in the map.
2.Need Blizzards Mouse Controller to be Compatible with Guilluame777's Multi Slot Equipment Script(not really Neccesary but would be nice)
3.Kinda Falls Under the 2nd category but i need Blizzards mouse controller to also be more compatible with Scene Hotkeys.
4.need a way to Recover SP over time(although it will be used for the TP system same thing though).
5. Lastly i need a way to Show the Icon Image when you pick up an item/gold just the icon no need for words lol.
well i hope i get some responses to this thanks everyone if anything i could use a point in the right direction cause i wouldnt mind doin this myself if i knew where to start looking D: if you can do any of these PM me with w/e price you want and estimated time to do the script

EDIT: Also need Winkios Action Recharge to somehow go with Blizzards Z-HUD lol all thats wrong is the Z hud goes up and down and the timers for the Recharge go Left to right
21
Script Requests / TP System+Blizz abs[Paying]
March 27, 2011, 01:00:31 am
is there anyway someone could edit mogs TP system to fit blizz abs? or point me in the right direction i think this is something i could do i just need to find a way to add the tp cost to blizz abs anyone kno a way? heres the script PM me the cost and time estimated to edit the script to fit blizz abs thanks.
Spoiler: ShowHide
#_______________________________________________________________________________
# MOG TP System V2.1        
#_______________________________________________________________________________
# By Moghunter            
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# Troca o custo de SP por TP, ou seja, é possível definir
#que certas habilidades tenham o custo de TP no lugar do SP,
# O sistema é útil quando quisermos, por exemplo, que habilidades
#físicas não gastem SP mas outro parâmetro.
#_______________________________________________________________________________
module MOG
#Definição do nome do TP (Talent Points).  
TP_NAME = "SP "
#NOTA - Para mudar o nome do SP basta entrar no banco
#de dados na parte de System e mudar o nome de SP para outro
#nome, por exemplo, MP.
#-------------------------------------------------------------------------------
#Definição de quais habilidades terão o custo de TP.
#
#TP_COST = {A=>B, A=>B, ...}
#
#A = ID of SKILL.
#B = Cost of TP.
TP_COST = {
57=>1000,    #Cross Cut
58=>12,   #Feint Attack
59=>26,   #Hurricane
60=>40,   #Spiral Blade
61=>7,    #Leag Sweep
62=>15,   #Beast Slayer
63=>32,   #Thunder Pierce
64=>50,   #Screw Thrust
65=>6,    #Power Break
66=>13,   #Mind Break
67=>28,   #Aqua Buster
68=>32,   #Rolling Axe
73=>10,   #Bird Killer
74=>15    #Mute Arrow
         }  
#-------------------------------------------------------------------------------          
#Definição da quantidade inicial de TP.
#(Caso não especificado TP inicial igual a 1)
#
#A=>B
#
#A = ID of actor
#B = Initial TP.
INITP = {
1=>1000,
2=>70,
7=>15,
8=>20
        }
#-------------------------------------------------------------------------------
#Definição da quantidade de TP ganho ao fazer LV-UP.
#(Caso não especificado TP ganho igual a 1)
#
#A=>B
#
#A = ID of actor    
#B = Amount of TP per lvl.
TP_EXP = {
1=>0,
2=>0,
7=>0,
8=>0
        }
#-------------------------------------------------------------------------------
#Items that recover tp
#A=>B
#
#A = ID do Item
#B = Amount of tp
ITEM_TP_RECOVER = {
1=>10,
2=>999
}  
#-------------------------------------------------------------------------------
end

#===============================================================================
# Game_Actor
#===============================================================================
class Game_Actor < Game_Battler  
 attr_accessor   :tp
 attr_accessor   :maxtp
#--------------------------------------------------------------------------
# Setup
#--------------------------------------------------------------------------
 alias mog45_setup setup
 def setup(actor_id)
   mog45_setup(actor_id)  
   @maxtp = 0
   @maxtp_plus = 0
   @tp_exp = MOG::TP_EXP[actor_id]
   ini_tp = MOG::INITP[actor_id]
   if ini_tp != nil
     @base_tp = ini_tp
   else
     @base_tp = 0
   end
   if @tp_exp != nil
     tpx = (@tp_exp * @level) - @tp_exp
   else
     tpx = 1
   end
   @tp = @base_tp + tpx
 end
#--------------------------------------------------------------------------
# maxtp_plus
#--------------------------------------------------------------------------  
 def maxtp_plus
   if @tp_exp != nil and @level > 1  
     cal =  @tp_exp * @level
     return @maxtp_plus + cal - @tp_exp
   else
     return @maxtp_plus
   end
 end
#--------------------------------------------------------------------------
# maxtp
#--------------------------------------------------------------------------
 def maxtp
   n = [[@base_tp + maxtp_plus, 1].max, 9999].min
   return n
 end  
#--------------------------------------------------------------------------
# TP
#--------------------------------------------------------------------------
 def tp=(tp)
   @tp = [[tp, maxtp].min, 0].max
 end
end

#===============================================================================
# Game_Battler
#===============================================================================
class Game_Battler
 alias mog45_skill_can_use? skill_can_use?  
 def skill_can_use?(skill_id)
   tp_cost = MOG::TP_COST[skill_id]
   if tp_cost != nil and self.is_a?(Game_Actor)
     if tp_cost > self.tp
       return false
     end
   else
     if $data_skills[skill_id].sp_cost > self.sp
       return false
     end
   end
   if dead?
     return false
   end
   if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
     return false
   end
   occasion = $data_skills[skill_id].occasion
   if $game_temp.in_battle
     return (occasion == 0 or occasion == 1)
   else
     return (occasion == 0 or occasion == 2)
   end
   return
   mog45_skill_can_use?(skill_id)    
 end
end

#===============================================================================
# Scene_Battle
#===============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# update_phase4_step5
#--------------------------------------------------------------------------  
 alias mog45_update_phase4_step5 update_phase4_step5
 def update_phase4_step5
   mog45_update_phase4_step5
   item_tp_recover_id = MOG::ITEM_TP_RECOVER[@item.id]
   if @active_battler.is_a?(Game_Actor) and @active_battler.current_action.kind == 2 and @item =! nil
     for target_tp in @target_battlers    
   if target_tp.is_a?(Game_Actor) and item_tp_recover_id != nil  
     target_tp.tp += item_tp_recover_id
     target_tp.damage = MOG::TP_NAME.to_s + item_tp_recover_id.to_s
     target_tp.damage_pop = true
   end  
   end
   end  
 end
#--------------------------------------------------------------------------
# make_skill_action_result
#--------------------------------------------------------------------------
 alias mog45_make_skill_action_result make_skill_action_result
 def make_skill_action_result
   @skill = $data_skills[@active_battler.current_action.skill_id]
   unless @active_battler.current_action.forcing
     unless @active_battler.skill_can_use?(@skill.id)
       $game_temp.forcing_battler = nil
       @phase4_step = 1
       return
     end
   end
   tp_cost = MOG::TP_COST[@skill.id]
   if tp_cost != nil and @active_battler.is_a?(Game_Actor)
     @active_battler.tp -= tp_cost
   else
     @active_battler.sp -= @skill.sp_cost
   end
   @status_window.refresh
   @help_window.set_text(@skill.name, 1)
   @animation1_id = @skill.animation1_id
   @animation2_id = @skill.animation2_id
   @common_event_id = @skill.common_event_id
   set_target_battlers(@skill.scope)
   for target in @target_battlers
     target.skill_effect(@active_battler, @skill)
   end
   return
   mog45_make_skill_action_result
 end
end  

#===============================================================================
# Game_Battler
#===============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# item_effect
#--------------------------------------------------------------------------  
 alias mog45_item_effect item_effect
 def item_effect(item)
   if $game_temp.in_battle == false  
   item_tp_recover = MOG::ITEM_TP_RECOVER[item.id]
   if item_tp_recover != nil
     if self.tp < self.maxtp
       self.tp += item_tp_recover
       return true
     else  
       return false
     end
       return false
     end
   end
   mog45_item_effect(item)
 end
end

#===============================================================================
# Interpreter
#===============================================================================
class Interpreter
#--------------------------------------------------------------------------
# command_314
#--------------------------------------------------------------------------    
 alias mog45_command_314 command_314
 def command_314
   mog45_command_314
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     actor.tp = actor.maxtp
   end
   return true
 end
end

#===============================================================================
# Window_Base
#===============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# draw_actor_tp
#--------------------------------------------------------------------------      
 def draw_actor_tp(actor, x, y,type)
   self.contents.font.color = system_color  
   self.contents.draw_text(x, y, 32, 32, MOG::TP_NAME)
   self.contents.font.color = normal_color
   case type
   when 0
     self.contents.draw_text(x - 40, y, 198, 32, actor.tp.to_s + " / " + actor.maxtp.to_s, 2)
   when 1
     self.contents.draw_text(x - 70, y, 198, 32, actor.tp.to_s + " / " + actor.maxtp.to_s, 2)
   when 2
       self.contents.draw_text(x + 40, y, 80, 32, actor.tp.to_s,2)
   when 3
     self.contents.draw_text(x - 20, y, 150, 32, actor.tp.to_s + " / " + actor.maxtp.to_s, 2)
   when 4
     self.contents.font.name = "Georgia"
     self.contents.draw_text(x - 55, y, 130, 32, actor.tp.to_s, 2)
   end  
 end
#--------------------------------------------------------------------------
# draw_actor_tp2
#--------------------------------------------------------------------------
 def draw_actor_tp2(actor, x, y)
   self.contents.font.name = "Georgia"
   back = RPG::Cache.picture("STBAR_Back")    
   cw = back.width  
   ch = back.height
   src_rect = Rect.new(0, 0, cw, ch)    
   self.contents.blt(x + 86, y - ch + 40, back, src_rect)  
   meter = RPG::Cache.picture("STBAR.png")    
   cw2 = meter.width * actor.tp / actor.maxtp
   ch2 = meter.height
   src_rect2 = Rect.new(0, 0, cw2, ch2)    
   self.contents.blt(x + 86, y - ch + 40, meter, src_rect2)  
   self.contents.font.color = normal_color  
   self.contents.draw_text(x - 40, y, 198, 32, MOG::TP_NAME + actor.tp.to_s, 2)
 end
end

#===============================================================================
# Window_Help
#===============================================================================
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# set_actor
#--------------------------------------------------------------------------        
 alias mog45_set_actor set_actor
 def set_actor(actor)
   if actor != @actor
     self.contents.clear
     draw_actor_name(actor, 4, 0)
     draw_actor_hp(actor, 110, 0)
     draw_actor_sp(actor, 460, 0)
     draw_actor_tp(actor, 284, 0,0)
     @actor = actor
     @text = nil
     self.visible = true
   end
   return
   mog45_set_actor(actor)
 end
end

#===============================================================================
# Window_SkillStatus
#===============================================================================
class Window_SkillStatus < Window_Base
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   self.contents.clear
   draw_actor_name(@actor, 4, 0)
   draw_actor_hp(@actor, 110, 0)
   draw_actor_sp(@actor, 460, 0)
   draw_actor_tp(@actor, 284, 0,0)
   return
   mog45_refresh
 end
end  

#===============================================================================
#  Window_Status
#===============================================================================
class Window_Status < Window_Base
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   mog45_refresh
   if $mog_rgss_Scene_Status != nil
     draw_actor_tp2(@actor, 435, 250)    
   else
     draw_actor_tp(@actor, 96, 170,0)  
   end  
 end  
end

#===============================================================================
#  Window_BattleStatus
#===============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   self.contents.clear
   @item_max = $game_party.actors.size
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     actor_x = i * 160 + 4
     draw_actor_name(actor, actor_x, 0)
     draw_actor_hp(actor, actor_x, 24, 120)
     draw_actor_sp(actor, actor_x, 48, 120)
     draw_actor_tp(actor, actor_x, 72,2)
     if @level_up_flags[i]
       self.contents.font.color = normal_color
       self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
     else
       draw_actor_state(actor, actor_x, 96)
     end
   end
 end  
end

#===============================================================================
#  Window_MenuStatus
#===============================================================================
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   self.contents.clear  
   mog45_refresh
   for i in 0...$game_party.actors.size
     x = 64
     y = i * 116
     actor = $game_party.actors[i]
     draw_actor_tp(actor, x + 236, y,1 )
   end
 end
end

#===============================================================================
# Window_Target
#===============================================================================
class Window_Target < Window_Selectable
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   self.contents.clear
   for i in 0...$game_party.actors.size
     x = 4
     y = i * 116
     actor = $game_party.actors[i]
     draw_actor_name(actor, x, y)
     draw_actor_level(actor, x + 8, y + 32)
     draw_actor_state(actor, x + 8, y + 64)
     draw_actor_hp(actor, x + 152, y + 0)
     draw_actor_tp(actor, x + 152, y + 32,3)
     draw_actor_sp(actor, x + 152, y + 64)
   end
   return
   mog45_refresh  
 end
end

#===============================================================================
# Window_Skill
#===============================================================================
class Window_Skill < Window_Selectable
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------        
 alias mog45_draw_item draw_item
 def draw_item(index)
   skill = @data[index]
   if @actor.skill_can_use?(skill.id)
     self.contents.font.color = normal_color
     else
     self.contents.font.color = disabled_color
     end
     x = 4 + index % 2 * (288 + 32)
     y = index / 2 * 32
     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
     bitmap = RPG::Cache.icon(skill.icon_name)
     opacity = self.contents.font.color == normal_color ? 255 : 128
     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
     self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
     tp_cost = MOG::TP_COST[skill.id]
     if tp_cost != nil
       self.contents.font.color = Color.new(50,250,150,255)
       self.contents.draw_text(x + 180, y, 48, 32,MOG::TP_NAME, 2)
       self.contents.font.color = Color.new(255,255,255,255)
       self.contents.draw_text(x + 232, y, 48, 32,tp_cost.to_s, 2)
     else
       self.contents.font.color = Color.new(250,150,50,255)  
       self.contents.draw_text(x + 180, y, 48, 32,$data_system.words.sp, 2)
       self.contents.font.color = Color.new(255,255,255,255)
       self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)  
   end
   return
   mog45_draw_item(index)
 end
end

#===============================================================================
# Scene_Skill
#===============================================================================
class Scene_Skill
#--------------------------------------------------------------------------
# update_target
#--------------------------------------------------------------------------        
 alias mog45_update_target update_target
 def update_target
   if Input.trigger?(Input::C)
   unless @actor.skill_can_use?(@skill.id)
     $game_system.se_play($data_system.buzzer_se)
     return
   end
   if @target_window.index == -1
     used = false
     for i in $game_party.actors
       used |= i.skill_effect(@actor, @skill)
     end
   end
   if @target_window.index <= -2
     target = $game_party.actors[@target_window.index + 10]
     used = target.skill_effect(@actor, @skill)
   end
   if @target_window.index >= 0
     target = $game_party.actors[@target_window.index]
     used = target.skill_effect(@actor, @skill)
   end
   if used
     $game_system.se_play(@skill.menu_se)
     tp_cost = MOG::TP_COST[@skill.id]
     if tp_cost != nil  
       @actor.tp -= tp_cost
     else
       @actor.sp -= @skill.sp_cost
     end        
     @status_window.refresh
     @skill_window.refresh
     @target_window.refresh
     if $game_party.all_dead?
       $scene = Scene_Gameover.new
       return
     end
     if @skill.common_event_id > 0
       $game_temp.common_event_id = @skill.common_event_id
       $scene = Scene_Map.new
       return
     end
     end
     unless used
       $game_system.se_play($data_system.buzzer_se)
     end
     return
   end
   mog45_update_target    
 end
end

$mog_rgss_TP_System = true
any help would be greatly apprieciated thank you :)
22
Script Requests / Hud update[Resolved]
March 25, 2011, 07:23:47 pm
I'd like if someone could help with 2 scripts i've got a "TP" script
Spoiler: ShowHide
#_______________________________________________________________________________
# MOG TP System V2.1        
#_______________________________________________________________________________
# By Moghunter            
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# Troca o custo de SP por TP, ou seja, é possível definir
#que certas habilidades tenham o custo de TP no lugar do SP,
# O sistema é útil quando quisermos, por exemplo, que habilidades
#físicas não gastem SP mas outro parâmetro.
#_______________________________________________________________________________
module MOG
#Definição do nome do TP (Talent Points).  
TP_NAME = "SP "
#NOTA - Para mudar o nome do SP basta entrar no banco
#de dados na parte de System e mudar o nome de SP para outro
#nome, por exemplo, MP.
#-------------------------------------------------------------------------------
#Definição de quais habilidades terão o custo de TP.
#
#TP_COST = {A=>B, A=>B, ...}
#
#A = ID of SKILL.
#B = Cost of TP.
TP_COST = {
57=>500,    #Cross Cut
58=>12,   #Feint Attack
59=>26,   #Hurricane
60=>40,   #Spiral Blade
61=>7,    #Leag Sweep
62=>15,   #Beast Slayer
63=>32,   #Thunder Pierce
64=>50,   #Screw Thrust
65=>6,    #Power Break
66=>13,   #Mind Break
67=>28,   #Aqua Buster
68=>32,   #Rolling Axe
73=>10,   #Bird Killer
74=>15    #Mute Arrow
         }  
#-------------------------------------------------------------------------------          
#Definição da quantidade inicial de TP.
#(Caso não especificado TP inicial igual a 1)
#
#A=>B
#
#A = ID do personagem.
#B = Quantidade inicial de TP.
INITP = {
1=>1000,
2=>70,
7=>15,
8=>20
        }
#-------------------------------------------------------------------------------
#Definição da quantidade de TP ganho ao fazer LV-UP.
#(Caso não especificado TP ganho igual a 1)
#
#A=>B
#
#A = ID do personagem.
#B = Quantidade de TP ganho.
TP_EXP = {
1=>0,
2=>0,
7=>0,
8=>0
        }
#-------------------------------------------------------------------------------
#Itens que recuperam o TP.
#A=>B
#
#A = ID do Item
#B = Quantidade de TP recuperado.
ITEM_TP_RECOVER = {
1=>10,
2=>999
}  
#-------------------------------------------------------------------------------
end

#===============================================================================
# Game_Actor
#===============================================================================
class Game_Actor < Game_Battler  
 attr_accessor   :tp
 attr_accessor   :maxtp
#--------------------------------------------------------------------------
# Setup
#--------------------------------------------------------------------------
 alias mog45_setup setup
 def setup(actor_id)
   mog45_setup(actor_id)  
   @maxtp = 0
   @maxtp_plus = 0
   @tp_exp = MOG::TP_EXP[actor_id]
   ini_tp = MOG::INITP[actor_id]
   if ini_tp != nil
     @base_tp = ini_tp
   else
     @base_tp = 0
   end
   if @tp_exp != nil
     tpx = (@tp_exp * @level) - @tp_exp
   else
     tpx = 1
   end
   @tp = @base_tp + tpx
 end
#--------------------------------------------------------------------------
# maxtp_plus
#--------------------------------------------------------------------------  
 def maxtp_plus
   if @tp_exp != nil and @level > 1  
     cal =  @tp_exp * @level
     return @maxtp_plus + cal - @tp_exp
   else
     return @maxtp_plus
   end
 end
#--------------------------------------------------------------------------
# maxtp
#--------------------------------------------------------------------------
 def maxtp
   n = [[@base_tp + maxtp_plus, 1].max, 9999].min
   return n
 end  
#--------------------------------------------------------------------------
# TP
#--------------------------------------------------------------------------
 def tp=(tp)
   @tp = [[tp, maxtp].min, 0].max
 end
end

#===============================================================================
# Game_Battler
#===============================================================================
class Game_Battler
 alias mog45_skill_can_use? skill_can_use?  
 def skill_can_use?(skill_id)
   tp_cost = MOG::TP_COST[skill_id]
   if tp_cost != nil and self.is_a?(Game_Actor)
     if tp_cost > self.tp
       return false
     end
   else
     if $data_skills[skill_id].sp_cost > self.sp
       return false
     end
   end
   if dead?
     return false
   end
   if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
     return false
   end
   occasion = $data_skills[skill_id].occasion
   if $game_temp.in_battle
     return (occasion == 0 or occasion == 1)
   else
     return (occasion == 0 or occasion == 2)
   end
   return
   mog45_skill_can_use?(skill_id)    
 end
end

#===============================================================================
# Scene_Battle
#===============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# update_phase4_step5
#--------------------------------------------------------------------------  
 alias mog45_update_phase4_step5 update_phase4_step5
 def update_phase4_step5
   mog45_update_phase4_step5
   item_tp_recover_id = MOG::ITEM_TP_RECOVER[@item.id]
   if @active_battler.is_a?(Game_Actor) and @active_battler.current_action.kind == 2 and @item =! nil
     for target_tp in @target_battlers    
   if target_tp.is_a?(Game_Actor) and item_tp_recover_id != nil  
     target_tp.tp += item_tp_recover_id
     target_tp.damage = MOG::TP_NAME.to_s + item_tp_recover_id.to_s
     target_tp.damage_pop = true
   end  
   end
   end  
 end
#--------------------------------------------------------------------------
# make_skill_action_result
#--------------------------------------------------------------------------
 alias mog45_make_skill_action_result make_skill_action_result
 def make_skill_action_result
   @skill = $data_skills[@active_battler.current_action.skill_id]
   unless @active_battler.current_action.forcing
     unless @active_battler.skill_can_use?(@skill.id)
       $game_temp.forcing_battler = nil
       @phase4_step = 1
       return
     end
   end
   tp_cost = MOG::TP_COST[@skill.id]
   if tp_cost != nil and @active_battler.is_a?(Game_Actor)
     @active_battler.tp -= tp_cost
   else
     @active_battler.sp -= @skill.sp_cost
   end
   @status_window.refresh
   @help_window.set_text(@skill.name, 1)
   @animation1_id = @skill.animation1_id
   @animation2_id = @skill.animation2_id
   @common_event_id = @skill.common_event_id
   set_target_battlers(@skill.scope)
   for target in @target_battlers
     target.skill_effect(@active_battler, @skill)
   end
   return
   mog45_make_skill_action_result
 end
end  

#===============================================================================
# Game_Battler
#===============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# item_effect
#--------------------------------------------------------------------------  
 alias mog45_item_effect item_effect
 def item_effect(item)
   if $game_temp.in_battle == false  
   item_tp_recover = MOG::ITEM_TP_RECOVER[item.id]
   if item_tp_recover != nil
     if self.tp < self.maxtp
       self.tp += item_tp_recover
       return true
     else  
       return false
     end
       return false
     end
   end
   mog45_item_effect(item)
 end
end

#===============================================================================
# Interpreter
#===============================================================================
class Interpreter
#--------------------------------------------------------------------------
# command_314
#--------------------------------------------------------------------------    
 alias mog45_command_314 command_314
 def command_314
   mog45_command_314
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     actor.tp = actor.maxtp
   end
   return true
 end
end

#===============================================================================
# Window_Base
#===============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# draw_actor_tp
#--------------------------------------------------------------------------      
 def draw_actor_tp(actor, x, y,type)
   self.contents.font.color = system_color  
   self.contents.draw_text(x, y, 32, 32, MOG::TP_NAME)
   self.contents.font.color = normal_color
   case type
   when 0
     self.contents.draw_text(x - 40, y, 198, 32, actor.tp.to_s + " / " + actor.maxtp.to_s, 2)
   when 1
     self.contents.draw_text(x - 70, y, 198, 32, actor.tp.to_s + " / " + actor.maxtp.to_s, 2)
   when 2
       self.contents.draw_text(x + 40, y, 80, 32, actor.tp.to_s,2)
   when 3
     self.contents.draw_text(x - 20, y, 150, 32, actor.tp.to_s + " / " + actor.maxtp.to_s, 2)
   when 4
     self.contents.font.name = "Georgia"
     self.contents.draw_text(x - 55, y, 130, 32, actor.tp.to_s, 2)
   end  
 end
#--------------------------------------------------------------------------
# draw_actor_tp2
#--------------------------------------------------------------------------
 def draw_actor_tp2(actor, x, y)
   self.contents.font.name = "Georgia"
   back = RPG::Cache.picture("STBAR_Back")    
   cw = back.width  
   ch = back.height
   src_rect = Rect.new(0, 0, cw, ch)    
   self.contents.blt(x + 86, y - ch + 40, back, src_rect)  
   meter = RPG::Cache.picture("STBAR.png")    
   cw2 = meter.width * actor.tp / actor.maxtp
   ch2 = meter.height
   src_rect2 = Rect.new(0, 0, cw2, ch2)    
   self.contents.blt(x + 86, y - ch + 40, meter, src_rect2)  
   self.contents.font.color = normal_color  
   self.contents.draw_text(x - 40, y, 198, 32, MOG::TP_NAME + actor.tp.to_s, 2)
 end
end

#===============================================================================
# Window_Help
#===============================================================================
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# set_actor
#--------------------------------------------------------------------------        
 alias mog45_set_actor set_actor
 def set_actor(actor)
   if actor != @actor
     self.contents.clear
     draw_actor_name(actor, 4, 0)
     draw_actor_hp(actor, 110, 0)
     draw_actor_sp(actor, 460, 0)
     draw_actor_tp(actor, 284, 0,0)
     @actor = actor
     @text = nil
     self.visible = true
   end
   return
   mog45_set_actor(actor)
 end
end

#===============================================================================
# Window_SkillStatus
#===============================================================================
class Window_SkillStatus < Window_Base
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   self.contents.clear
   draw_actor_name(@actor, 4, 0)
   draw_actor_hp(@actor, 110, 0)
   draw_actor_sp(@actor, 460, 0)
   draw_actor_tp(@actor, 284, 0,0)
   return
   mog45_refresh
 end
end  

#===============================================================================
#  Window_Status
#===============================================================================
class Window_Status < Window_Base
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   mog45_refresh
   if $mog_rgss_Scene_Status != nil
     draw_actor_tp2(@actor, 435, 250)    
   else
     draw_actor_tp(@actor, 96, 170,0)  
   end  
 end  
end

#===============================================================================
#  Window_BattleStatus
#===============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   self.contents.clear
   @item_max = $game_party.actors.size
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     actor_x = i * 160 + 4
     draw_actor_name(actor, actor_x, 0)
     draw_actor_hp(actor, actor_x, 24, 120)
     draw_actor_sp(actor, actor_x, 48, 120)
     draw_actor_tp(actor, actor_x, 72,2)
     if @level_up_flags[i]
       self.contents.font.color = normal_color
       self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
     else
       draw_actor_state(actor, actor_x, 96)
     end
   end
 end  
end

#===============================================================================
#  Window_MenuStatus
#===============================================================================
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   self.contents.clear  
   mog45_refresh
   for i in 0...$game_party.actors.size
     x = 64
     y = i * 116
     actor = $game_party.actors[i]
     draw_actor_tp(actor, x + 236, y,1 )
   end
 end
end

#===============================================================================
# Window_Target
#===============================================================================
class Window_Target < Window_Selectable
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------        
 alias mog45_refresh refresh
 def refresh
   self.contents.clear
   for i in 0...$game_party.actors.size
     x = 4
     y = i * 116
     actor = $game_party.actors[i]
     draw_actor_name(actor, x, y)
     draw_actor_level(actor, x + 8, y + 32)
     draw_actor_state(actor, x + 8, y + 64)
     draw_actor_hp(actor, x + 152, y + 0)
     draw_actor_tp(actor, x + 152, y + 32,3)
     draw_actor_sp(actor, x + 152, y + 64)
   end
   return
   mog45_refresh  
 end
end

#===============================================================================
# Window_Skill
#===============================================================================
class Window_Skill < Window_Selectable
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------        
 alias mog45_draw_item draw_item
 def draw_item(index)
   skill = @data[index]
   if @actor.skill_can_use?(skill.id)
     self.contents.font.color = normal_color
     else
     self.contents.font.color = disabled_color
     end
     x = 4 + index % 2 * (288 + 32)
     y = index / 2 * 32
     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
     bitmap = RPG::Cache.icon(skill.icon_name)
     opacity = self.contents.font.color == normal_color ? 255 : 128
     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
     self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
     tp_cost = MOG::TP_COST[skill.id]
     if tp_cost != nil
       self.contents.font.color = Color.new(50,250,150,255)
       self.contents.draw_text(x + 180, y, 48, 32,MOG::TP_NAME, 2)
       self.contents.font.color = Color.new(255,255,255,255)
       self.contents.draw_text(x + 232, y, 48, 32,tp_cost.to_s, 2)
     else
       self.contents.font.color = Color.new(250,150,50,255)  
       self.contents.draw_text(x + 180, y, 48, 32,$data_system.words.sp, 2)
       self.contents.font.color = Color.new(255,255,255,255)
       self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)  
   end
   return
   mog45_draw_item(index)
 end
end

#===============================================================================
# Scene_Skill
#===============================================================================
class Scene_Skill
#--------------------------------------------------------------------------
# update_target
#--------------------------------------------------------------------------        
 alias mog45_update_target update_target
 def update_target
   if Input.trigger?(Input::C)
   unless @actor.skill_can_use?(@skill.id)
     $game_system.se_play($data_system.buzzer_se)
     return
   end
   if @target_window.index == -1
     used = false
     for i in $game_party.actors
       used |= i.skill_effect(@actor, @skill)
     end
   end
   if @target_window.index <= -2
     target = $game_party.actors[@target_window.index + 10]
     used = target.skill_effect(@actor, @skill)
   end
   if @target_window.index >= 0
     target = $game_party.actors[@target_window.index]
     used = target.skill_effect(@actor, @skill)
   end
   if used
     $game_system.se_play(@skill.menu_se)
     tp_cost = MOG::TP_COST[@skill.id]
     if tp_cost != nil  
       @actor.tp -= tp_cost
     else
       @actor.sp -= @skill.sp_cost
     end        
     @status_window.refresh
     @skill_window.refresh
     @target_window.refresh
     if $game_party.all_dead?
       $scene = Scene_Gameover.new
       return
     end
     if @skill.common_event_id > 0
       $game_temp.common_event_id = @skill.common_event_id
       $scene = Scene_Map.new
       return
     end
     end
     unless used
       $game_system.se_play($data_system.buzzer_se)
     end
     return
   end
   mog45_update_target    
 end
end

$mog_rgss_TP_System = true

and i got a custom hud and i was hopig someone could make it so the TP displays on the screen as well as the SP or if possible id like if certain characters can only have TP  displayed and others can only have SP displayed also if possible i'd like  it to refresh whenCharacter is changed with blizz abs i got nothing really to offer except 2 fully animated characters for blizz abs and heres the HUD script
Spoiler: ShowHide
#_______________________________________________________________________________
# MOG - C Hud 1.0 (Classic Hud)      
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# Hud estilo clássico.
#
# ARQUIVOS NECESSÁRIOS
#
# C_Layout
# C_Exp_Meter
# C_Layout
# C_HP_Meter
# C_SP_Meter
# Hud_HP_Number
# Hud_SP_Number
# Hud_Exp_Number
#
# Deixe as imagens na pasta Windowskins
#_______________________________________________________________________________
module MOG
#Posição geral da HUD  
CHUD_X = 0
CHUD_Y = 0
#Posição do layout
C_LAYOUT_X = 0  
C_LAYOUT_Y = 0
#Posição do numero de HP
C_HP_NUMBER_X = -5
C_HP_NUMBER_Y = 12
#Posição do medidor de HP
C_HP_METER_X = 19
C_HP_METER_Y = 17
#Posição do numero de SP
C_SP_NUMBER_X = 100
C_SP_NUMBER_Y = 28
#Posição do medidor de SP
C_SP_METER_X = 19
C_SP_METER_Y = 32
#Posição posição do level
C_LEVEL_X = 3
C_LEVEL_Y = 53
#Posição posição do medidor de exp
C_LEVEL_METER_X = 19
C_LEVEL_METER_Y = 45
#Posição dos ícones de status
C_STATES_X = 180
C_STATES_Y = -2
#Deixar a HUD opaco caso o herói estiver em cima da HUD.
C_FADE = true
#Tamanho planejado da hud, isso influência no sensor do FADE.
C_HUD_SIZE_X = 420
C_HUD_SIZE_Y = 64
#Switch que desativa a HUD
DISABLE_C_HUD_SWITCH = 50
end
#==============================================================================
# Game_Actor
#==============================================================================
class Game_Actor < Game_Battler  
#--------------------------------------------------------------------------
# Now Exp
#--------------------------------------------------------------------------
def now_exp
   return @exp - @exp_list[@level]
end  
#--------------------------------------------------------------------------
# Next Exp
#--------------------------------------------------------------------------
def next_exp
   return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
   end
end
#==============================================================================
# C_Hud
#==============================================================================
class C_Hud < Sprite  
 include MOG
 #--------------------------------------------------------------------------
 # * Initialize
 #--------------------------------------------------------------------------
 def initialize(viewport)
   super(viewport)
   @actor = $game_party.actors[0]
   return if @actor == nil
   @low_sp = 30
   @low_hp = 30
   @hp = @actor.hp
   @sp = @actor.sp
   @exp = @actor.exp
   @level = @actor.level
   @hp_old = @actor.hp
   @hp_ref = @hp_old
   @hp_refresh = false
   @sp_old = @actor.sp
   @sp_ref = @sp_old
   @sp_refresh = false
   hud_size_x = C_HUD_SIZE_X
   hud_size_y = C_HUD_SIZE_Y
   @oc_range_x = hud_size_x + CHUD_X
   @oc_range_y = hud_size_y + CHUD_Y    
   # Layout -------------------------------------------------------------------
   @layout_image = RPG::Cache.windowskin("C_Layout")
   @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
   @layout_sprite = Sprite.new
   @layout_sprite.bitmap = @layout_bitmap
   @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
   @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
   @layout_sprite.z = 5001
   @layout_sprite.x = CHUD_X + C_LAYOUT_X
   @layout_sprite.y = CHUD_Y + C_LAYOUT_Y    
   # HP NUMBER ---------------------------------------------------------------------
   @hp_number_image = RPG::Cache.windowskin("Hud_HP_Number")
   @hp_number_bitmap = Bitmap.new(@hp_number_image.width,@hp_number_image.height)
   @hp_number_sprite = Sprite.new
   @hp_number_sprite.bitmap = @hp_number_bitmap
   @hp_number_sprite.z = 5003
   @hp_number_sprite.x = CHUD_X + C_HP_NUMBER_X
   @hp_number_sprite.y = CHUD_Y + C_HP_NUMBER_Y
   @im_cw = @hp_number_image.width / 10
   @im_ch = @hp_number_image.height / 2    
   @hp_src_rect = Rect.new(@im_cw,0, @im_cw, @im_ch)
   @hp_number_text = @actor.hp.abs.to_s.split(//)
     lowhp2 = @actor.maxhp * 30 / 100
     if @actor.hp < lowhp2
     @health2 = @im_ch
     else
     @health2 = 0
     end
     @hp_health = @health2
     for r in 0..@hp_number_text.size - 1        
        @hp_number_abs = @hp_number_text[r].to_i
        @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, @hp_health, @im_cw, @im_ch)
        @hp_number_bitmap.blt(20 + ((@im_cw - 7) *  r), 0, @hp_number_image, @hp_src_rect)        
     end    
  #HP Meter
   @hp_flow = 0
   @hp_damage_flow = 0
   @hp_image = RPG::Cache.windowskin("C_HP_Meter")
   @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
   @hp_range = @hp_image.width
   @hp_width = @hp_range  * @actor.hp / @actor.maxhp  
   @hp_height = @hp_image.height
   @hp_width_old = @hp_width
   @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
   @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
   @hp_sprite = Sprite.new
   @hp_sprite.bitmap = @hp_bitmap
   @hp_sprite.z = 5002
   @hp_sprite.x = CHUD_X + C_HP_METER_X
   @hp_sprite.y = CHUD_Y + C_HP_METER_Y
   # SP Number ---------------------------------------------------------------------
   @sp_number_image = RPG::Cache.windowskin("Hud_SP_Number")
   @sp_number_bitmap = Bitmap.new(@sp_number_image.width,@sp_number_image.height)
   @sp_number_sprite = Sprite.new
   @sp_number_sprite.bitmap = @sp_number_bitmap
   @sp_number_sprite.z = 5003
   @sp_number_sprite.x = CHUD_X + C_SP_NUMBER_X
   @sp_number_sprite.y = CHUD_Y + C_SP_NUMBER_Y
   @sp_im_cw = @sp_number_image.width / 10
   @sp_im_ch = @sp_number_image.height / 2    
   @sp_src_rect = Rect.new(@sp_im_cw,0, @sp_im_cw, @sp_im_ch)
   @sp_number_text = @actor.sp.abs.to_s.split(//)
   for r in 0..@sp_number_text.size - 1
      @sp_number_abs = @sp_number_text[r].to_i
      @sp_src_rect = Rect.new(@sp_im_cw * @sp_number_abs, 0, @sp_im_cw, @sp_im_ch)
      @sp_number_bitmap.blt(20 + ((@sp_im_cw - 7) *  r), 0, @sp_number_image, @sp_src_rect)        
   end        
   @sp_flow = 0
   @sp_damage_flow = 0
   @sp_image = RPG::Cache.windowskin("C_SP_Meter")
   @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
   @sp_range = @sp_image.width
   @sp_width = @sp_range  * @actor.sp / @actor.maxsp  
   @sp_height = @sp_image.height
   @sp_width_old = @sp_width
   @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
   @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
   @sp_sprite = Sprite.new
   @sp_sprite.bitmap = @sp_bitmap
   @sp_sprite.z = 5002
   @sp_sprite.x = CHUD_X + C_SP_METER_X
   @sp_sprite.y = CHUD_Y + C_SP_METER_Y
   # Level Number ---------------------------------------------------------------------
   @level_number_image = RPG::Cache.windowskin("Hud_Exp_Number")
   @level_number_bitmap = Bitmap.new(@level_number_image.width,@level_number_image.height)
   @level_number_sprite = Sprite.new
   @level_number_sprite.bitmap = @level_number_bitmap
   @level_number_sprite.z = 5003
   @level_number_sprite.x = CHUD_X + C_LEVEL_X
   @level_number_sprite.y = CHUD_Y + C_LEVEL_Y
   @level_im_cw = @level_number_image.width / 10
   @level_im_ch = @level_number_image.height    
   @level_number_text = @actor.level.abs.to_s.split(//)
   for r in 0..@level_number_text.size - 1
      @level_number_abs = @level_number_text[r].to_i
      @level_src_rect = Rect.new(@level_im_cw * @level_number_abs, 0, @level_im_cw, @level_im_ch)
      @level_number_bitmap.blt(13 + ((@level_im_cw - 12) *  r), 0, @level_number_image, @level_src_rect)        
   end  
   # Level Meter ---------------------------------------------------------------------
   @level_image = RPG::Cache.windowskin("C_Exp_Meter")
   @level_bitmap = Bitmap.new(@level_image.width,@level_image.height)
   @level_sprite = Sprite.new  
   if @actor.next_exp != 0
   rate = @actor.now_exp.to_f / @actor.next_exp
   else
   rate = 1
   end
   if @actor.level < 99
   @level_cw = @level_image.width * rate
   else
   @level_cw = @level_image.width
   end      
   @level_src_rect_back = Rect.new(0, 0,@level_cw, @level_image.height)
   @level_bitmap.blt(0,0, @level_image, @level_src_rect_back)
   @level_sprite.bitmap = @level_bitmap
   @level_sprite.z = 5007
   @level_sprite.x = CHUD_X + C_LEVEL_METER_X
   @level_sprite.y = CHUD_Y + C_LEVEL_METER_Y  
   # States -------------------------------------------------------------------
   @states_max = 0
   @states = Sprite.new
   @states.bitmap = Bitmap.new(156,24)
   @states_x = @actor.states.size
   @states_y = 0
   @states_f = false
   sta = []
     for i in @actor.states
       unless @states_max > 5
         sta.push($data_states[i].name)
         image = RPG::Cache.icon(sta[@states_max])
         cw = image.width
         ch = image.height
         @states.bitmap.blt(26 * @states_max, 0, image, Rect.new(0, 0, cw, ch))
         @states_max += 1
        end
      end  
   @states.x = CHUD_X + C_STATES_X
   @states.y = CHUD_Y + C_STATES_Y
   @states.z = 5003    
   hud_visible_update    
   sp_flow_update
   sp_number_refresh        
   hp_flow_update
   hp_number_refresh  
 end
 #--------------------------------------------------------------------------
 # * Dispose
 #--------------------------------------------------------------------------
 def dispose
   return if @actor == nil
   #Layout Dispose
   @layout_sprite.bitmap.dispose
   @layout_sprite.bitmap = nil
   @layout_sprite.dispose
   @layout_sprite = nil    
   @layout_bitmap.dispose
   @layout_bitmap = nil
   #Hp Number Dispose
   @hp_number_sprite.bitmap.dispose
   @hp_number_sprite.bitmap = nil
   @hp_number_sprite.dispose
   @hp_number_sprite = nil
   @hp_number_bitmap.dispose
   @hp_number_bitmap = nil    
   #HP Meter Dispose
   @hp_sprite.bitmap.dispose
   @hp_sprite.bitmap = nil
   @hp_sprite.dispose
   @hp_sprite = nil  
   @hp_bitmap.dispose
   @hp_bitmap = nil  
   #SP Number Dispose
   @sp_number_sprite.bitmap.dispose
   @sp_number_sprite.bitmap = nil
   @sp_number_sprite.dispose
   @sp_number_sprite = nil
   @sp_number_bitmap.dispose
   @sp_number_bitmap = nil    
   #SP Meter Dispose
   @sp_sprite.bitmap.dispose
   @sp_sprite.bitmap = nil
   @sp_sprite.dispose
   @sp_sprite = nil    
   @sp_bitmap.dispose
   @sp_bitmap = nil    
   #Level Number Dispose
   @level_number_sprite.bitmap.dispose
   @level_number_sprite.bitmap = nil
   @level_number_sprite.dispose
   @level_number_sprite = nil    
   @level_number_bitmap.dispose
   @level_number_bitmap = nil  
   #Level Meter Dispose
   @level_sprite.bitmap.dispose
   @level_sprite.bitmap = nil
   @level_sprite.dispose
   @level_sprite = nil    
   @level_bitmap.dispose
   @level_bitmap = nil      
   #States Dispose
   @states.bitmap.dispose
   @states.bitmap = nil
   @states.dispose
   @states = nil    
 end  
 #--------------------------------------------------------------------------
 # * Updade
 #--------------------------------------------------------------------------
 def update
    return if @actor == nil
    hud_visible_update
    hp_number_update if @hp_old != @actor.hp
    hp_number_refresh if @hp_refresh == true or @actor.hp == 0
    sp_number_update if @sp_old != @actor.sp
    sp_number_refresh if @sp_refresh == true    
    level_update if @level != @actor.level    
    exp_update if @exp != @actor.exp
    hp_flow_update
    sp_flow_update
    fade_update if C_FADE == true
    states_update
 end
 #--------------------------------------------------------------------------
 # fade_update
 #--------------------------------------------------------------------------
 def fade_update
     x = ($game_player.real_x - $game_map.display_x) / 6
     y = ($game_player.real_y - $game_map.display_y) / 6
     if x < @oc_range_x and x > CHUD_X - 6 and
        y > CHUD_Y - 6 and y < @oc_range_y and
        @hp_number_sprite.opacity > 150
        @hp_number_sprite.opacity -= 10
        @hp_sprite.opacity -= 10
        @sp_number_sprite.opacity -= 10
        @sp_sprite.opacity -= 10
        @states.opacity -= 10
        @level_sprite.opacity -= 10
        @level_number_sprite.opacity -= 10
        @layout_sprite.opacity -= 10
     elsif @hp_number_sprite.opacity < 255
        @hp_number_sprite.opacity += 10
        @hp_sprite.opacity += 10
        @sp_number_sprite.opacity += 10
        @sp_sprite.opacity += 10
        @states.opacity += 10
        @level_sprite.opacity += 10
        @level_number_sprite.opacity += 10
        @layout_sprite.opacity += 10
    end
 end    
 #--------------------------------------------------------------------------
 # * States_Update
 #--------------------------------------------------------------------------
 def states_update
      @states.x = CHUD_X + C_STATES_X
      @states.y = CHUD_Y + C_STATES_Y
    if @states_x != @actor.states.size
       @states_x = @actor.states.size
       @states.bitmap.clear
       @states_max = 0
       sta = []
       for i in @actor.states
          unless @states_max > 5
            sta.push($data_states[i].name)
            image = RPG::Cache.icon(sta[@states_max])
            cw = image.width
            ch = image.height
            @states.bitmap.blt(26 * @states_max, 0, image, Rect.new(0, 0, cw, ch))
            @states_max += 1
          end
        end  
      sta = nil
    end
  end
 #--------------------------------------------------------------------------
 # * hud_visible_update
 #--------------------------------------------------------------------------
 def hud_visible_update
     if $game_switches[MOG::DISABLE_C_HUD_SWITCH] == true
       @layout_sprite.visible = false
       @hp_number_sprite.visible = false
       @hp_sprite.visible = false
       @sp_number_sprite.visible = false
       @sp_sprite.visible = false
       @level_number_sprite.visible = false
       @states.visible = false
     else
       @layout_sprite.visible = true
       @hp_number_sprite.visible = true
       @hp_sprite.visible = true
       @sp_number_sprite.visible = true
       @sp_sprite.visible = true
       @level_number_sprite.visible = true
       @states.visible = true
     end  
 end
 #--------------------------------------------------------------------------
 # * hp_number_update
 #--------------------------------------------------------------------------
 def hp_number_update
      @hp_refresh = true
      if @hp_old < @actor.hp
          @hp_ref = 5 * (@actor.hp - @hp_old) / 100
          @hp_ref = 1 if @hp_ref < 1
          @hp += @hp_ref    
          if @hp >= @actor.hp
             @hp_old = @actor.hp
             @hp = @actor.hp  
             @hp_ref = 0
          end              
       elsif @hp_old > @actor.hp  
          @hp_refresh = true
          @hp_ref = 5 * (@hp_old - @actor.hp) / 100
          @hp_ref = 1 if @hp_ref < 1
          @hp -= @hp_ref                
          if @hp <= @actor.hp
             @hp_old = @actor.hp
             @hp = @actor.hp  
             @hp_ref = 0
          end            
       end  
  end    
 #--------------------------------------------------------------------------
 # * hp_number_refresh
 #--------------------------------------------------------------------------
 def hp_number_refresh
     @hp_number_sprite.bitmap.clear
     @hp = 0 if @actor.hp == 0
     @hp_number_text = @hp.abs.to_s.split(//)
     lowhp2 = @actor.maxhp * @low_hp / 100
     if @actor.hp < lowhp2
     @health2 = @im_ch
     else
     @health2 = 0
     end
     @hp_health = @health2
     for r in 0..@hp_number_text.size - 1        
        @hp_number_abs = @hp_number_text[r].to_i
        @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, @hp_health, @im_cw, @im_ch)
        @hp_number_bitmap.blt(20 + ((@im_cw - 7) *  r), 0, @hp_number_image, @hp_src_rect)        
      end  
      @hp_refresh = false if @hp == @actor.hp
    end  
 #--------------------------------------------------------------------------
 # * Hp Flow Update
 #--------------------------------------------------------------------------
 def hp_flow_update
     @hp_sprite.bitmap.clear
     @hp_width = @hp_range  * @actor.hp / @actor.maxhp
         #HP Damage---------------------------------
         valor = (@hp_width_old - @hp_width) * 3 / 100
         valor = 0.5 if valor < 1          
         if @hp_width_old != @hp_width
         @hp_width_old -= valor if @hp_width_old > @hp_width
         @hp_width_old = 0 if @actor.hp == 0
         if @hp_width_old < @hp_width
            @hp_width_old = @hp_width
         end      
         @hp_src_rect_old = Rect.new(@hp_flow, 0,@hp_width_old, @hp_height)
         @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
         end
       
     #HP Real------------------------------------
     @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
     @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
 end          
 #--------------------------------------------------------------------------
 # * Sp_number_update
 #--------------------------------------------------------------------------
 def sp_number_update
   @sp_refresh = true
   if @sp_old < @actor.sp
      @sp_refresh = true
      @sp_ref = 5 * (@actor.sp - @sp_old) / 100
      @sp_ref = 1 if @sp_ref < 1
      @sp += @sp_ref  
      if @sp >= @actor.sp
         @sp_old = @actor.sp
         @sp = @actor.sp  
         @sp_ref = 0
      end  
   elsif @sp_old >= @actor.sp    
      @sp_ref = 5 * (@sp_old - @actor.sp) / 100
      @sp_ref = 1 if @sp_ref < 1
      @sp -= @sp_ref    
      if @sp <= @actor.sp
         @sp_old = @actor.sp
         @sp = @actor.sp  
         @sp_ref = 0
       end          
   end    
 end  
 #--------------------------------------------------------------------------
 # * sp_number_refresh
 #--------------------------------------------------------------------------
 def sp_number_refresh
   @sp_number_sprite.bitmap.clear
   @s = @actor.sp * 100 / @actor.maxsp
   @sp_number_text = @sp.abs.to_s.split(//)
     for r in 0..@sp_number_text.size - 1        
        @sp_number_abs = @sp_number_text[r].to_i
        if @actor.sp <= @actor.maxsp * @low_sp / 100
        @sp_src_rect = Rect.new(@sp_im_cw * @sp_number_abs, @sp_im_ch, @sp_im_cw, @sp_im_ch)  
        else  
        @sp_src_rect = Rect.new(@sp_im_cw * @sp_number_abs, 0, @sp_im_cw, @sp_im_ch)
        end
      @sp_number_bitmap.blt(20 + ((@sp_im_cw - 7) *  r), 0, @sp_number_image, @sp_src_rect)        
    end  
    @sp_refresh = false if @sp == @actor.sp
 end    
 #--------------------------------------------------------------------------
 # * Sp Flow Update
 #--------------------------------------------------------------------------
 def sp_flow_update
     @sp_sprite.bitmap.clear
     @sp_width = @sp_range  * @actor.sp / @actor.maxsp
         #SP Damage---------------------------------
         if @sp_width_old != @sp_width
         valor = (@sp_width_old - @sp_width) * 3 / 100
         valor = 0.5 if valor < 1              
         @sp_width_old -= valor if @sp_width_old > @sp_width  
         if @sp_width_old < @sp_width
            @sp_width_old = @sp_width
         end      
         @sp_src_rect_old = Rect.new(@sp_flow, 0,@sp_width_old, @sp_height)
         @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
         end
     #SP Real------------------------------------
     @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
     @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
   end  
 #--------------------------------------------------------------------------
 # * level_update
 #--------------------------------------------------------------------------
 def level_update
   @level_number_sprite.bitmap.clear
   @level_number_text = @actor.level.abs.to_s.split(//)
   for r in 0..@level_number_text.size - 1
      @level_number_abs = @level_number_text[r].to_i
      @level_src_rect = Rect.new(@level_im_cw * @level_number_abs, 0, @level_im_cw, @level_im_ch)
      @level_number_bitmap.blt(13 + ((@level_im_cw - 12) *  r), 0, @level_number_image, @level_src_rect)        
   end      
   @level = @actor.level
 end  
 #--------------------------------------------------------------------------
 # * exp_update
 #--------------------------------------------------------------------------
 def exp_update
   @level_sprite.bitmap.clear    
   if @actor.next_exp != 0
   rate = @actor.now_exp.to_f / @actor.next_exp
   else
   rate = 1
   end
   if @actor.level < 99
   @level_cw = @level_image.width * rate
   else
   @level_cw = @level_image.width
   end      
   @level_src_rect_back = Rect.new(0, 0,@level_cw, @level_image.height)
   @level_bitmap.blt(0,0, @level_image, @level_src_rect_back)  
   @exp = @actor.exp
 end    
 
end  
#===============================================================================
# Scene_Map
#===============================================================================
class Scene_Map  
 alias chud_main main
#--------------------------------------------------------------------------
# Main
#--------------------------------------------------------------------------
 def main
     @c_viewport = Viewport.new(0, 0, 640, 480)
     @c_viewport.z = 9999    
     @chud = C_Hud.new(@c_viewport)
   chud_main    
     @chud.dispose
     @chud = nil
     @c_viewport.dispose
     @c_viewport = nil
 end  
#--------------------------------------------------------------------------
# Update
#--------------------------------------------------------------------------    
 alias chud_update update
 def update
   chud_update
   @chud.update
 end  
end

$mog_rgss_c_hud = true
if needed i can upload a demo all i need is the hid to be able to show TP and to refresh when "Select" button is pressed(character change) i am also using blizz abs 2.84. i dont think itd be that hard but im not great at scripting.
23
i dont kno if theres a way to get around this but ok so im using both Action Recharge time and the Z HUD scripts and my problem is the Z hud makes the hotkeys go Up and Down but the Action recharge time places the Cooldown bars for skills from left to right and i want them to match the Z hud sorry if it sounds confusing. lol
24
Script Requests / Seperate Save menu button
February 24, 2011, 02:09:12 pm
can anyone help me with seperating the save button from the cancel button? is it possible? O_o if so itd be great to have this :) thanks i dont know if anyones already done this but i hope its possible   :^_^':
25
Script Requests / Character Selection window? (RESOLVED)
February 24, 2011, 02:07:19 pm
i was looking for a new start menu that looks something like this (off of secret of mana 2) where you can select new game continue and options (or exit) and when you select a new game you choose the characters you want to play as from the same menuhttp://s905.photobucket.com/albums/ac253/saiwari123/?action=view&current=SoMana2e000.png
26
Script Requests / Faceset in savescreen
February 24, 2011, 02:02:31 pm
im looking for a custom save scene that shows the characters faces in place of the characters' sprite if its compatible with blizz abs thanks :)  hope someone can help  :naughty:
27
Script Requests / Timed attacks For Blizz ABS?
December 28, 2010, 04:51:21 am
sorry i didnt know what else to call it basically im looking for an attack system kind of like an MMORPG or like FF12 System where you set yourself to an enemy and it auto attacks and where you only need to press buttons for skills or something similar im using Blizz ABS Latest Version with most of Blizz's Scripts Hope someone can help with this i know not many people want something like this for an offline game but i hope someone can come up with something :/ thanks for your time though :)
28
Script Requests / Custom Equipment Menu
December 28, 2010, 04:43:53 am
Hello Im pretty new and im looking for 2 Scripts that i cant find I've Searched pretty much every forum and cant find anything similar well i found one but it was in some language i couldnt read so that brings me to posting for help im looking for a Custuom Equipment menu i cant explain but ive made a thorough image of what i want it to look like so ill just post that if anyone can make something even close to this i'd appreciate it and give them full credit lol i dont know if anyones up to ithttp://img812.imageshack.us/i/mycustomequipscene.png/ basically the white part should be the Background of the menu i guess and pretty much everything else is labeled sorry for some sloppy writing i got lazy lol but its pretty understandable i think? and the bottom white arrow indicates it scrolls down lmao ofcourse sorry ima noob i dont even know it this is possible (thanks anyways hope someone can help) Im Using pretty much all of Blizz's Script Including Blizz ABS but not sure it matters for this lol OH one more thing the Big Empty Space i was hoping for a picture of the character also where is says armor name its suppose to be class sorry im tired -.- and the red spaces on bottom is for armor name and the space next to them is the  space for the armor/weapon and i was hoping for a tab to seperate weapon from armor but its not necessary