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 - RPGManiac3030

1
Whenever I save/load a game, I can't see the information - the actor graphic, play time, gold, etc.

I'm able to load and save perfectly, it's just that I can't see anything. I have the default save system with no changes, so I'm really confused as to why this is happening...

Edit: I know what's wrong...I was using Redd's instant save/load before, then I removed it. I forgot, however, to make a few small edits to Scene_Title. I'm using it again now, so it should be good.
2
New Projects / [XP] Gio: Eras
July 11, 2011, 06:11:35 pm
Gio: Eras





Story: The year is 7000, second era. The ten planets of Jalar Galaxy have just finished a war that spanned over 5 thousand years, known as the 5k War. The winners were the Imperial Alliance, consisting of 5 planets that were more advanced, civilized, and powerful than the Freedom Alliance, consisting of the other 5 undeveloped and poor planets. The big two - Germanium and Regal - Became the superpowers of the galaxy. The Freedom Alliance planet who initiated the war, Cruzin, has experienced a coupe after the end of the war, with a fascist ruler known as Supreme General Cazzo taking control. All of the old kingdoms of Cruzin have now been taken over by the Cruzian Fascist Army and their commanding generals. In response to this threat, Germanium has sent a small army, led by General Sen, to restore the old Kings and Queens to the throne, and this is where part 1 of our story begins...

Part 2 of Gio: Eras, starts in the year 49, third era. 49 years prior, the ending events of Germanium's invasion of Cruzin led to a drastic event which signified a new era. A lowly Regalian man known as Anthonix discovers his true destiny and sets up the rest of the Gio series. How is he tied with Sen, and what is his destiny?

Background information:
I'm starting to write a companion piece to my series which will detail almost everything about the history of the game's background and information about each planet (topography, geography, etc.)

1)Don't compare what we perceive in our universe to this game universe. Think of the planets as 10 continents in one world. The realm of gods and the dark realm are not connected to the planets; in order to reach them, one must travel through dimensions, basically.

Here, use this analogy:
It's like going through a door - the room you are in is not directly connected to whatever is beyond the door. Each planet represents a wooden chair, and there are 2 additional wooden chairs on the other side of the door that represent the other realms. In the first era, there was no door and the chairs in the room were still a large tree. The first hero traveled outside of the room, received a legendary blade, created the door, and divided the tree into 10 chairs. Mortals must bring a piece of each chair to the door in order to get through to the other side. The door itself can be opened by monsters and demons, though, which is something the gods do not want in order to protect the mortals from the demons. The ultimate goal is to find four more heroes who can give power to a legendary blade known as the Gio Blade and turn the door into a permanent wall where nothing can get through.

2)Travel between planets is easy to gods, but mortals use airships. Yes, there is air in Jalar Galaxy space, so the people can breathe in space and travel. In the late third era, more advanced space technology is touched upon.

3)The gods use something known as God Power, which is what helped each individual god craft a landmass in a respective planet. The people of that region then worship that god for helping them allow to live the way they do. The gods then leave behind a crystal containing his/her respective power. Only gods, half-gods, or Coronas can use the crystal's power without corrupting. A Corona is a human blessed with the power to communicate with gods. People in the first era used Magika, which simulated the power of the crystals. Magika eventually evolved into what we know as magic, but some planets like Cruzin still use Magika.

4)I mentioned a half-god in the previous one. Basically if a god mates with a mortal, a half-god is created. All offspring from then on would be considered a half-god. The power, however, only transfers between the same gender. If the god is male, all of the male offspring will be half-gods. Vice versa for females. Because the half-god doesn't have the full potential of a god, they experience something called god puberty. Their powers kick in, but they may sway between the light and the darkness. Most demons are a result of half-gods.

5)Going back to the crystals...the 4 chosen heroes must collect each crystal of each god and bring them to the core of that planet. A small piece of the core is given to the hero, and he then repeats with the other planets. The core contains the spiritual power of the gods, which could be deadly if one were to take too much of the core. The original Gio and Gio 2 deal with the repercussions of this.

6)The economy of each planet is roughly similar. Planets that were a part of the Imperial Alliance are much better than the others, though. The currency is known as Gill. 100 Gill make a Gildor, and 100 Gildors make a Gilltree. Their economy is somewhat of a free market.

7)Ever since the beginning of the first era, each region has followed something known as Democratic Monarchy. There is the royal family that is in charge of relations between kingdoms, and the Duke who attends to the people. The Imperial Alliance changed this when the Germanian royal families started taking direct control over its subjects. Other planets with like-minds followed suit. These were the wealthier, successful planets. The others held on to traditional beliefs and became the Freedom Alliance. Then, the events of the 5k war broke out. It wasn't all battles for that time period, but more like unhealthy relations and a shift between cold war and hot war. The Imperial Alliance eventually won, which crippled the poorer planets. Other beliefs such as Fascism emerged in these poor planets, namely Cruzin.

The official Gio Timeline
Information about the Gio Universe

Main Characters:

General Sen: The main character of part 1, General Sen was just appointed general by the King of Falla. He wishes to be a great general just like his forefathers who helped win the 5k war. He trains under his Captain, who also plays a father-like role to Sen. Sen has a mysterious past and a great destiny ahead of him.

Anthonix: The main character of part 2, Anthonix is a simple peasant living on Regal. Training under the Dragon Code, Anthonix soon embarks on a journey of self-discovery. This journey eventually becomes intertwined with Sen's destiny, and plays a key role in the rest of the Gio Saga.

Supporting Characters:

Basil: A trained spearman, Basil is the most logical of Sen's 3 teammates. His speed can help Sen take out many enemies at a time.

Liam: A strong axeman, Liam is the toughest of the three, but he may be a little too impulsive. No doubt, when Liam swings his axe, he hits hard.

Estella: An elegant hunter, Estella is the most spiritual and fun-loving. She has a variety of spells that can aid Sen on his journey.

Captain: Sen's trainer and father-like figure. Being well-rounded is Captain's strength, but he may be getting too old for the adventures he used to have.

Features to both parts:
-This game features the Blizz-ABS, providing a very Zelda-Like Battle system not seen in many other RPG Maker Games.

-Various weapons such as swords, maces, bows, and boomerangs can be found on your journey.

-There is no world map; instead, the world is divided into sections and regions. This provides for a very expansive and explorable world, filled with animals, enemies, and merchants trying to make a living.

-There are many dungeons containing helpful treasure.

-A port system allows the player to travel between continents for a fee.

-There are many side-quests that can yield great rewards, both for the player and the story.

-Certain monsters, merchants, people, and events will only happen during certain times of the day. Using an inn and saving will advance the time by 6 hours. Make sure to check everywhere during the day AND night!

-You can attack anyone you see on your journey besides other major allies, like teammates. This means you CAN attack independent allies. If you do, they and/or others might gang up on you and attack. However, no NPC, ally, or guard will give exp...Some may give items, but you could just kill monsters for those. You may need to kill people for quests, though.

-Magic is known to the Cruzians as "Magika." It's a more ancient way of learning spells than what the rest of the galaxy uses. You can learn ANY spell in ANY Magika Shop. You might need to be a certain level to use some, though. Magika can also be leveled up through skill points. Skill points can be earned through leveling up, through items, or as a reward for quests. This allows for great customization of your spells, since you don't have to have EVERY spell out there.

-85 Quests divided into different categories. Most quests are NOT part of the story, although the ones that are may not be directly given to you via story events.

-General Quests: These are the side quests that the townsfolk or guards may   give you. These are what they say they are - general.

-Knight Duties: These become available after a certain part of the game and are given to you by the King of Falla Castle.

-Merchant Quests: These are obviously given to you by merchants, and are the main way of getting stronger weapons and armor. You usually have to complete a dungeon to complete the quest. Merchants may either give you the equipment directly or tell you where it can be found.

-Rare Monster Hunting: These quests are started via a bulletin board in Vesura Kingdom, as well as other places. You basically have to find and kill the listed monster. Your reward usually comes from the monster directly. Some monster listings are endorsed by people that you must talk to after killing the monster to receive the reward.

-(Not final) "Downloadable content" which will be given through downloads here along with the main game. I'm planning 3 downloads, each giving new armor, quests, and a new part to the story. If I end up doing this, the quest total would go to 101. I was thinking about just merging this with the main game, but I'll either do it this way or remove it completely.

Part 1 Features:
-To advance the story, castles must be explored and conquered.
-Allies can either follow you, be summoned into battle, or are independent.
-Castles don't have to be completed in a certain order, but some places require certain castles to be completed.
-Explore the planets Cruzin and Germanium.

Part 2 Features:
-Part 2 does not rely on castles to further the story, but some dungeons are story-based.
-Gain help from the gods throughout your journey, replacing the allies from part 1.
-Explore the planets Regal and Germanium.

Screenshots
Spoiler: ShowHide


This is the world map of the first planet, Cruzin, as seen through a map item:


These two images are a general idea of what the game will look like:




These images show the general gameplay idea:






-Demos (There are 2 demos: A technical demo and a castle demo)-
The Gio Official Website (Under construction)
The game is also posted on RPGMaker.net

DEMO 3 is now up!
Demo 3 Download


Credits
-JK Productions
-Blizzard and Winkio for the Blizz-ABS (Actually, I give 80% of my thanks to them)
-Once I get a final list of the scripts I'm using, I'll put the proper credits here!
-I also did not create any of the custom graphics from scratch, only modified them to fit the game. I'll get a full list of sites when I round them all up.
3
Mouse Friendly Equipment Screen
Author: RPGManiac3030
Version: 1.0
Type: Custom Menu
Key Term: Custom Menu



Introduction

This is a small edit of Scene_Equip that basically makes it more compatible with a mouse script.

If you're not using a mouse script in your game, this script also allows the player to quickly change a piece of equipment in the menu. If you equipped a sword, you can then quickly choose another sword instead of having to choose your already-equipped sword and going through the list again. See the demo to see this in action.

Features


  • Makes the default equipment screen compatible with a mouse script (i.e. Blizzard's mouse controller) so that the equipment list menu doesn't disappear when the mouse isn't selecting a piece of equipment...see the screenshot to see what I'm talking about   :^_^':

  • After equipping a weapon/armor, you can quickly select another piece.




Screenshots

This is before my edit is implemented:
Spoiler: ShowHide


This is after my edit is implemented:
Spoiler: ShowHide



Demo
Note: The demo doesn't make use of a mouse input module. It will work, though



Script
Spoiler: ShowHide
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Mouse friendly Equip Screen
# By RPGManiac3030
# Version 1.0
# www.chaos-project.com
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Version History:
#   v.1.0
#    -Original Release
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Features:
#   -Makes the Equipment screen more convenient to use with a mouse.
#   -Doesn't return to character's equip list after equipping/removing
#    a weapon/armor, allowing the player to quickly choose a different one.
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Instructions:
#    -This script is designed to work with the default equipment menu, and is
#     therefore plug-and-play. If you are using a custom equip screen, you
#     will need to adapt this script to fit the Scene_Equip of whatever
#     custom script you are using.
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Compatibility:
#
#   -Created with Blizzard's Mouse Controller as a reference, but should work
#    with any mouse script out there.
#
#   -This CAN be used without a mouse script, but it was made to make
#    the equipment screen compatable with a mouse.
#
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Author's notes:
#   I edited 2 different things in this script for the purpose of making the
#   equipment screen not glitch up with a mouse:
#
#   1)Adding an empty window to draw when the index = nil (If the mouse isn't over
#     any of the currently equipped items).
#
#   2)Editing the input update for the list of equippable items so that it
#     doesn't automatically return to the list of equipped items.
#
#   If you have a custom equipment menu script, you should edit number 1
#   ONLY.
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
#Begin Edit
#==============================================================================
# ** Scene_Equip
#------------------------------------------------------------------------------
#  This class performs equipment screen processing.
#==============================================================================

class Scene_Equip
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
   # Get actor
   @actor = $game_party.actors[@actor_index]
   # Make windows
   @help_window = Window_Help.new
   @left_window = Window_EquipLeft.new(@actor)
   @right_window = Window_EquipRight.new(@actor)
   @item_window1 = Window_EquipItem.new(@actor, 0)
   @item_window2 = Window_EquipItem.new(@actor, 1)
   @item_window3 = Window_EquipItem.new(@actor, 2)
   @item_window4 = Window_EquipItem.new(@actor, 3)
   @item_window5 = Window_EquipItem.new(@actor, 4)
   @item_window6 = Window_EquipItem.new(@actor, 4)
   # Associate help window
   @right_window.help_window = @help_window
   @item_window1.help_window = @help_window
   @item_window2.help_window = @help_window
   @item_window3.help_window = @help_window
   @item_window4.help_window = @help_window
   @item_window5.help_window = @help_window
   # Set cursor position
   @right_window.index = @equip_index
   refresh
   # Execute transition
   Graphics.transition
   # Main loop
   loop do
     # Update game screen
     Graphics.update
     # Update input information
     Input.update
     # Frame update
     update
     # Abort loop if screen is changed
     if $scene != self
       break
     end
   end
   # Prepare for transition
   Graphics.freeze
   # Dispose of windows
   @help_window.dispose
   @left_window.dispose
   @right_window.dispose
   @item_window1.dispose
   @item_window2.dispose
   @item_window3.dispose
   @item_window4.dispose
   @item_window5.dispose
   @item_window6.dispose
 end
 #--------------------------------------------------------------------------
 # * Refresh
 #--------------------------------------------------------------------------
 def refresh
   # Set item window to visible
   @item_window1.visible = (@right_window.index == 0)
   @item_window2.visible = (@right_window.index == 1)
   @item_window3.visible = (@right_window.index == 2)
   @item_window4.visible = (@right_window.index == 3)
   @item_window5.visible = (@right_window.index == 4)
   # Get currently equipped item
   item1 = @right_window.item
   # Set current item window to @item_window
   @item_window6.contents.dispose
   case @right_window.index
   when 0
     @item_window = @item_window1
   when 1
     @item_window = @item_window2
   when 2
     @item_window = @item_window3
   when 3
     @item_window = @item_window4
   when 4
     @item_window = @item_window5
   else
     @item_window = @item_window6
   end
   # If right window is active
   if @right_window.active
     # Erase parameters for after equipment change
     @left_window.set_new_parameters(nil, nil, nil)
   end
   # If item window is active
   if @item_window.active
     # Get currently selected item
     item2 = @item_window.item
     # Change equipment
     last_hp = @actor.hp
     last_sp = @actor.sp
     @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
     # Get parameters for after equipment change
     new_atk = @actor.atk
     new_pdef = @actor.pdef
     new_mdef = @actor.mdef
     # Return equipment
     @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
     @actor.hp = last_hp
     @actor.sp = last_sp
     # Draw in left window
     @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
   end
 end
 #--------------------------------------------------------------------------
 # * Frame Update (when item window is active)
 #--------------------------------------------------------------------------
 def update_item
   # If B button was pressed
   if Input.trigger?(Input::B)
     # Play cancel SE
     $game_system.se_play($data_system.cancel_se)
     # Activate right window
     @right_window.active = true
     @item_window.active = false
     @item_window.index = -1
     # Remake right window and item window contents
     @right_window.refresh
     @item_window.refresh
     return
   end
   # If C button was pressed
   if Input.trigger?(Input::C)
     # Play equip SE
       $game_system.se_play($data_system.equip_se)
     # Get currently selected data on the item window
     item = @item_window.item
     # Change equipment
     @actor.equip(@right_window.index, item == nil ? 0 : item.id)
     # Remake right window and item window contents
     @right_window.refresh
     @item_window.refresh
     return
   end
 end
end
#End Edit



If you use Fyre's custom equipment screen, use this edit:
See instructions on how to install this!
Spoiler: ShowHide

#==============================================================================
# ** Scene_Equip
#------------------------------------------------------------------------------
#  This class performs equipment screen processing.
#==============================================================================

class Scene_Equip
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor_index : actor index
  #     equip_index : equipment index
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, equip_index = 0)
    @actor_index = actor_index
    @equip_index = equip_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Get actor
    @actor = $game_party.actors[@actor_index]
    # Make windows
    @char_window = Window_CharInfo.new(@actor)
    @help_window = Window_EquipHelp.new
    @left_window = Window_EquipStat.new(@actor)
    @right_window = Window_Equipment.new(@actor)
    @item_window1 = Window_EquipmentHeld.new(@actor, 0)
    @item_window2 = Window_EquipmentHeld.new(@actor, 1)
    @item_window3 = Window_EquipmentHeld.new(@actor, 2)
    @item_window4 = Window_EquipmentHeld.new(@actor, 3)
    @item_window5 = Window_EquipmentHeld.new(@actor, 4)
    @item_window6 = Window_EquipmentHeld.new(@actor, 4)
    # Associate help window
    @right_window.help_window = @help_window
    @item_window1.help_window = @help_window
    @item_window2.help_window = @help_window
    @item_window3.help_window = @help_window
    @item_window4.help_window = @help_window
    @item_window5.help_window = @help_window
    # Set cursor position
    @right_window.index = @equip_index
    refresh
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @char_window.dispose
    @help_window.dispose
    @left_window.dispose
    @right_window.dispose
    @item_window1.dispose
    @item_window2.dispose
    @item_window3.dispose
    @item_window4.dispose
    @item_window5.dispose
    @item_window6.dispose
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # Set item window to visible
    @item_window1.visible = (@right_window.index == 0)
    @item_window2.visible = (@right_window.index == 1)
    @item_window3.visible = (@right_window.index == 2)
    @item_window4.visible = (@right_window.index == 3)
    @item_window5.visible = (@right_window.index == 4)
    # Get currently equipped item
    item1 = @right_window.item
    @item_window6.contents.dispose
    # Set current item window to @item_window
    case @right_window.index
    when 0
      @item_window = @item_window1
    when 1
      @item_window = @item_window2
    when 2
      @item_window = @item_window3
    when 3
      @item_window = @item_window4
    when 4
      @item_window = @item_window5
    else
      @item_window = @item_window6
    end
    # If right window is active
    if @right_window.active
      # Erase parameters for after equipment change
      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)
    else
      @item_window1.update
    end
    # If item window is active
    if @item_window.active
      # Get currently selected item
      item2 = @item_window.item
      # Change equipment
      last_hp = @actor.hp
      last_sp = @actor.sp
      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
      # Get parameters for after equipment change
      new_atk = @actor.atk
      new_pdef = @actor.pdef
      new_mdef = @actor.mdef
      new_str = @actor.str
      new_dex = @actor.dex
      new_agi = @actor.agi
      new_int = @actor.int
      # Return equipment
      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
      @actor.hp = last_hp
      @actor.sp = last_sp
      # Draw in left window
      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @char_window.update
    @left_window.update
    @right_window.update
    @item_window.update
    refresh
    # If right window is active: call update_right
    if @right_window.active
      update_right
      return
    end
    # If item window is active: call update_item
    if @item_window.active
      update_item
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when right window is active)
  #--------------------------------------------------------------------------
  def update_right
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to menu screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If equipment is fixed
      if @actor.equip_fix?(@right_window.index)
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # Activate item window
      @right_window.active = false
      @item_window.active = true
      @item_window.index = 0
      return
    end
    # If R button was pressed
    if Input.trigger?(Input::R)
      # Play cursor SE
      $game_system.se_play($data_system.cursor_se)
      # To next actor
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      # Switch to different equipment screen
      $scene = Scene_Equip.new(@actor_index, @right_window.index)
      return
    end
    # If L button was pressed
    if Input.trigger?(Input::L)
      # Play cursor SE
      $game_system.se_play($data_system.cursor_se)
      # To previous actor
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
      # Switch to different equipment screen
      $scene = Scene_Equip.new(@actor_index, @right_window.index)
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when item window is active)
  #--------------------------------------------------------------------------
  def update_item
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Activate right window
      @right_window.active = true
      @item_window.active = false
      @item_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Play equip SE
      $game_system.se_play($data_system.equip_se)
      # Get currently selected data on the item window
      item = @item_window.item
      # Change equipment
      @actor.equip(@right_window.index, item == nil ? 0 : item.id)
      # Remake right window and item window contents
      @right_window.refresh
      @item_window.refresh
      return
    end
  end
end




Instructions

If you are using the default equipment menu:
Put the script above main and below any mouse script.

If you are using Fyre's custom equipment menu:
Put the edit below Fyre's script.

If you are using a different custom equipment menu:
Place this below whatever you are using, and edit my script accordingly.
Do not make ANY edits to the frame update or else you will lose the ability to quickly change equipment in the menu.



Compatibility

  • Should be compatible with any mouse script out there, since I only edit Scene_Equip.

  • Edited for the default equipment menu.



Credits and Thanks


  • RPGManiac3030





Author's notes
If you use this in your game, please credit me :)
This is technically 2 scripts in 1, since I needed to use the quick equip feature to make the mouse compatibility better.
There were some issues when I tried testing the menu with other characters, all types of equipment, etc. and I fixed what I found. If you find any other errors like that, or any compatibility issues, please post it here!
4
Blizz ABS Weapon Equip HUD for Z-HUD
Authors: RPGManiac3030
Version: 1.6
Type: Blizz-ABS Plugin/ Z-HUD addon
Key Term: Blizz-ABS Plugin



Introduction

(My first script post)
This addon/edit basically adds an equipped weapon HUD to the Z-HUD.
I've now edited the script so the weapon, skill, AND item hotkeys all appear on the screen (if you're not using direct hotkeys, of course)
I've also added a background picture to the weapon HUD. You can enable/disable this feature and change the picture in the config area of the script.
Features


  • Adds the player's/party leader's equipped weapon to the screen




Screenshots

Spoiler: ShowHide





Demo

N/A


Script

Spoiler: ShowHide

#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Weapon Equip HUD for Z-HUD
# By RPGManiac3030
# Version 1.6
# www.chaos-project.com
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Version History:
#   v.1.0
#    -Original Release
#   v.1.1
#    -Removed direct hotkey code
#   v.1.2
#    -Added compatibility for no weapon equipped
#   v.1.3
#    -Added weapon background that displays when no weapon is equipped
#   v.1.4
#    -Added option to change order of the icons via config.
#   v.1.5
#    -Removed edits in v.1.4, and added a background to the weapon icon if desired
#   v.1.5.5
#    -Added option to change location of hotkeys/weapon HUD.
#   v.1.6
#    -Background images for weapon graphic can now be larger than 24x24.
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Features:
#   -Adds the player's equipped weapon to the HUD.
#   -Displays a graphic for when no weapon is equipped.
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Instructions:
# -Instructions for editing the config are located in that section.
# -Place this script right under Z-HUD and above main.
# -Place all graphics in your game's pictures folder.
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
# Improvements/ Things to change for next version:
# -Spread out icons to it doesn't look cluttered.
# -Improve efficiency of the code.
# -Return layout options?
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
if !$BlizzABS || BlizzABS::VERSION < 2.7
  raise 'Error: Weapon Equip Hud needs Blizz-ABS of version 2.7 or higher.'
end

#BEGIN CONFIGURATION
#==============================================================================
# module BlizzCFG
#==============================================================================
module BlizzCFG
 
  #Set to false to show a picture behind the equipped weapon, and true for none
  DISABLE_WEAPON_BACK = false
 
 
  Z_WEAPON_BACK = ''              #image to be displayed behind the weapon
 
 
  WEAPON_EMPTY = 'Weapon'        #image file for when no weapon is equipped
 
  HUD_X = 632                  #Horizontal location of HUD.
                               #This is where the right side of the hud will be!
                               #Take into effect the width of your 3 pictures
                               #in order to set this properly.
                               #The formula is: HUD's left side = HUD_X - width of 3 graphics
                               
  HUD_Y = 4                   #Vertical location of HUD.
 
#END CONFIGURATION
end
#==============================================================================
# DO NOT EDIT ANYTHING BELOW UNLESS YOU KNOW WHAT YOU'RE DOING!!!
#==============================================================================


#==============================================================================
# Hud
#------------------------------------------------------------------------------
#  This class was modified to support SR display and modify the number of
#  skills left to use.
#==============================================================================
class Hud
  #----------------------------------------------------------------------------
  # update
  #  Checks if HUD needs refreshing.
  #----------------------------------------------------------------------------
  def update
    # if actor doesn't exist
    if actor == nil
      # unless already drawn empty HUD
      unless @empty_hud_drawn
        # draw HUD template
        draw_basic
        # draw empty HP, SP and EXP bars
        draw_empty
        # empty HUD was drawn
        @empty_hud_drawn = true
      end
    else
      # if HUD needs refresh
      if $game_temp.hud_refresh
        # draw all data about actor
        draw_name
        draw_level
        draw_hp
        draw_sp
        draw_equip
        draw_hitem
        draw_litem
        unless BlizzABS::Config::DIRECT_HOTKEYS
          draw_hskill
          draw_lskill
        end
        # remove flag
        $game_temp.hud_refresh = nil
      else
        # draw data that needs to ve updated
        test_name
        test_level
        test_hp
        test_sp
        test_equip
        test_hitem
        test_litem
        unless BlizzABS::Config::DIRECT_HOTKEYS
          test_hskill
          test_lskill
        end
      end
      # empty HUD wasn't drawn
      @empty_hud_drawn = false
    end
  end
  #-------------------------------------------------------------------
  # draw_equip
  #  Draws the equipped weapon on the screen.
  #----------------------------------------------------------------------------
  def draw_equip
      b0 = RPG::Cache.picture(BlizzCFG::Z_WEAPON_BACK)
    if BlizzCFG::DISABLE_WEAPON_BACK == true
      @hotkey_sprite.bitmap.fill_rect(0, 0, 24, 24, Color.new(0, 0, 0, 0))
    else
      @hotkey_sprite.bitmap.fill_rect(0, 0, b0.width, b0.height, Color.new(0, 0, 0, 0))
      @hotkey_sprite.bitmap.blt(0, 0, b0, Rect.new(0, 0, b0.width, b0.height))
    end
    wpn = $data_weapons[$game_party.actors[0].weapon_id]
    if wpn != nil
      b1 = RPG::Cache.icon(wpn.icon_name)
      x, y = (b0.width - 24) / 2, (b0.height - 24) / 2
      @hotkey_sprite.bitmap.blt(x, y, b1, Rect.new(0, 0, 24, 24))
    else
       b1 = RPG::Cache.picture(BlizzCFG::WEAPON_EMPTY)
      x, y = (b0.width - 24) / 2, (b0.height - 24) / 2
      @hotkey_sprite.bitmap.blt(x, y, b1, Rect.new(0, 0, 24, 24))
    end
  end
  #----------------------------------------------------------------------------
  # draw_hskill
  #  Draws the skill hotkey on the screen.
  #---------------------------------------------------------------------------- 
  def draw_hskill
      @skill = actor.skill
      b1 = RPG::Cache.picture(BlizzCFG::Z_WEAPON_BACK)
      b2 = RPG::Cache.picture(BlizzCFG::Z_SKILL_BACK)
      x = b1.width + 4
      @hotkey_sprite.bitmap.fill_rect(x, 0, b2.width, b2.height, Color.new(0, 0, 0, 0))
      @hotkey_sprite.bitmap.blt(x, 0, b2, Rect.new(0, 0, b2.width, b2.height))
      if @skill != 0
        bitmap = RPG::Cache.icon($data_skills[@skill].icon_name)
        x, y = b1.width + 4 + (b2.width - 24) / 2, (b2.height - 24) / 2
        @hotkey_sprite.bitmap.blt(x, y, bitmap, Rect.new(0, 0, 24, 24))
      end
    draw_lskill
  end
  #----------------------------------------------------------------------------
  # draw_lskill
  # Draws the number of skills left to use.
  #----------------------------------------------------------------------------
  def draw_lskill
     b1 = RPG::Cache.picture(BlizzCFG::Z_WEAPON_BACK)
      x = b1.width + 4
      @hotkey_sprite.bitmap.fill_rect(x, @left_y, @left_x, 16, Color.new(0, 0, 0, 0))
      @skills_left = get_skills_left
      if @skill != nil && @skill > 0
        if @skills_left >= 0
          if @skills_left == 0
            @hotkey_sprite.bitmap.font.color = Color.new(255, 0, 0)
          elsif @skills_left <= 5
            @hotkey_sprite.bitmap.font.color = Color.new(255, 255, 0)
          else
            @hotkey_sprite.bitmap.font.color = normal_color
          end
          @hotkey_sprite.bitmap.font.size -= 2
          @hotkey_sprite.bitmap.draw_text_full(x, @left_y - 4, @left_x, 20, @skills_left.to_s, 1)
          @hotkey_sprite.bitmap.font.size += 2
        elsif @skills_left == -1
          @hotkey_sprite.bitmap.font.color = Color.new(0, 255, 0)
          @hotkey_sprite.bitmap.font.size += 4
          @hotkey_sprite.bitmap.draw_text_full(x, @left_y - 4, @left_x, 20, '∞', 1)
          @hotkey_sprite.bitmap.font.size -= 4
        end
      end
    end
 
  #----------------------------------------------------------------------------
  # draw_hitem
  # Draws the item hotkey on the screen.
  #----------------------------------------------------------------------------
  def draw_hitem
    @item = actor.item
    b1 = RPG::Cache.picture(BlizzCFG::Z_WEAPON_BACK)
    b2 = RPG::Cache.picture(BlizzCFG::Z_SKILL_BACK)
    b3 = RPG::Cache.picture(BlizzCFG::Z_ITEM_BACK)
    x = b1.width + b2.width + 4
    @hotkey_sprite.bitmap.fill_rect(x, 0, b3.width, b3.height, Color.new(0, 0, 0, 0))
    @hotkey_sprite.bitmap.blt(x, 0, b3, Rect.new(0, 0, b3.width, b3.height))
    if @item != 0
      bitmap = RPG::Cache.icon($data_items[@item].icon_name)
      x, y = b1.width + b2.width + 4 + (b3.width - 24) / 2, (b3.height - 24) / 2
      @hotkey_sprite.bitmap.blt(x, y, bitmap, Rect.new(0, 0, 24, 24))
    end
    draw_litem
  end
 
  #----------------------------------------------------------------------------
  # draw_litem
  # Draws the number of items left to use.
  #----------------------------------------------------------------------------
  def draw_litem
    @items_left = $game_party.item_number(@item)
    b1 = RPG::Cache.picture(BlizzCFG::Z_WEAPON_BACK)
    b2 = RPG::Cache.picture(BlizzCFG::Z_SKILL_BACK)
    x = b1.width + b2.width + 4
    @hotkey_sprite.bitmap.fill_rect(x, @left_y, @left_x, 16, Color.new(0, 0, 0, 0))
    if @item != nil && @item > 0
      if $data_items[@item] != nil && !$data_items[@item].consumable
        @hotkey_sprite.bitmap.font.color = Color.new(0, 255, 0)
        @hotkey_sprite.bitmap.font.size += 4
        @hotkey_sprite.bitmap.draw_text_full(x, @left_y - 4, @left_x, 20, '∞', 1)
        @hotkey_sprite.bitmap.font.size -= 4
      else
        if @items_left == 0
          @hotkey_sprite.bitmap.font.color = Color.new(255, 0, 0)
        elsif @items_left <= 10
          @hotkey_sprite.bitmap.font.color = Color.new(255, 255, 0)
        else
          @hotkey_sprite.bitmap.font.color = normal_color
        end
        @hotkey_sprite.bitmap.font.size -= 2
        @hotkey_sprite.bitmap.draw_text_full(x, @left_y - 4, @left_x, 20, @items_left.to_s, 1)
        @hotkey_sprite.bitmap.font.size += 2
      end
    end
  end
 
  #----------------------------------------------------------------------------
  # test_equip
  #  Tests and draws the equipment.
  #----------------------------------------------------------------------------
  def test_equip
    # tests if the weapon was changed
    draw_equip if actor.weapon_id != nil
  end
 
  #----------------------------------------------------------------------------
  # init_hotkey_sprite(viewport)
  # Sets up the area where the hotkey icons and equipped weapon will be drawn.
  #----------------------------------------------------------------------------
  def init_hotkey_sprite(viewport)
    b1 = RPG::Cache.picture(BlizzCFG::Z_WEAPON_BACK)
    b2 = RPG::Cache.picture(BlizzCFG::Z_ITEM_BACK)
    b3 = RPG::Cache.picture(BlizzCFG::Z_SKILL_BACK)
    width = b1.width + b2.width + b3.width
    @hotkey_sprite = Sprite.new(viewport)
    @hotkey_sprite.x = BlizzCFG::HUD_X - width
    @hotkey_sprite.y = BlizzCFG::HUD_Y
    @hotkey_sprite.bitmap = Bitmap.new(width + 4, b1.height + 24)
    @hotkey_sprite.bitmap.font.name = 'Times New Roman'
    @hotkey_sprite.bitmap.font.size = 16
    @hotkey_sprite.bitmap.font.bold = true
  end
end
$BlizzABS = BlizzABS::Processor.new




Instructions

Put the script below Blizz-ABS and BELOW the Z-HUD. Set DISABLE_WEAPON_BACK to false to allow a picture to be displayed behind the weapon graphic (set what picture will display in the script!), or set to true to disable this picture. You also need to create an "empty weapon" file, which should be the same dimensions as the item and skill back pictures. Name it Weapon and place it in the pictures folder, or name it anything you want and edit the appropriate place in the script. It would be a fist or anything you want that will show when the player is unarmed. You can either make your own, or use this one. I got this graphic from http://www.pixeljoint.com/files/icons/full/34x34icons.png Place all graphics in your game's pictures folder!

Spoiler: ShowHide



Compatibility

  • Requires Blizz ABS and Z-HUD to work.

  • Any other script that modifies the Z-HUD may not be compatible.

  • Works with the Quick weapon switch addon by Blizzard perfectly.


Credits and Thanks


  • Blizzard

  • Winkio

  • ForeverZer0 (For help with fixing the no weapon problem)





Author's notes
I kind of just did this version and didn't test it yet...if anyone has a problem, please let me know!