Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

2 Pages V   1 2 >  
Reply to this topicStart new topic
> ~[Visual Ring Menu]~, [VX] A cool ring menu !
MBii
post Jun 22 2008, 01:39 AM
Post #1


Level 5
Group Icon

Group: Member
Posts: 62
Type: Event Designer
RM Skill: Skilled




RingMenu
Version : unknown
Autor : DouglasMF

Information:
Screenshots say more than 1000 words ! smile.gif , but some things :

° Visual ring menu
° Name of map
° Your money [or whatever currency]

Screenshots:

[Show/Hide] Screenshot



Script + Instructions :

Just put it above main.

CODE
=begin
Script Criado por DouglasMF das comunidades VilaMakers Online e RPG Maker Brasil
Com base no script Ring Menu feito por XRXS, Dubealex e Hypershadow180

-- Instruções --
Para instalar este script coloque ele entre os scripts Main e Scene_Cameover

=end
#==============================================================================
# Scene_Menu
#------------------------------------------------------------------------------
# Esta classe controla o conjunto de objetos que forma o RingMenu
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # Inicializa
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # Inicia os objetos do menu
  #--------------------------------------------------------------------------
  def start
    super
    @spriteset = Spriteset_Map.new
    @gold_window = Window_Gold.new(0, 360)
    @win_local = Window_Local.new(0,0)
    @status_window = Window_MenuStatus.new(160, 0)
    px = $game_player.screen_x - 16
    py = $game_player.screen_y - 28
    @ring_menu = Window_RingMenu_Comando.new(px,py)
    @status_window.z = @ring_menu.z + 20
    @status_window.visible = false
  end
  #--------------------------------------------------------------------------
  # Fexa os objetos do menu
  #--------------------------------------------------------------------------
  def terminate
    super
    @spriteset.dispose
    @ring_menu.dispose
    @gold_window.dispose
    @win_local.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # Atualiza os objetos do menu
  #--------------------------------------------------------------------------
  def update
    super
    @ring_menu.update
    @gold_window.update
    @win_local.update
    @spriteset.update
    @status_window.update
    if @ring_menu.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # Atualiza o comando e a seleção do menu
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @ring_menu.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @ring_menu.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @ring_menu.indice
      when 0
        $scene = Scene_Item.new
      when 1,2,3
        start_actor_selection
      when 4
        $scene = Scene_File.new(true, false, false)
      when 5
        $scene = Scene_End.new
      end
    end
    if Input.trigger?(Input::UP) or  Input.trigger?(Input::LEFT)
      Sound.play_cursor
      @ring_menu.girar(3)
      return
    end
    if Input.trigger?(Input::DOWN) or  Input.trigger?(Input::RIGHT)
      Sound.play_cursor
      @ring_menu.girar(4)
      return
    end
  end
  #--------------------------------------------------------------------------
  # Inicia a seleção de personagem
  #--------------------------------------------------------------------------
  def start_actor_selection
    @ring_menu.active = false
    @status_window.visible = true
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # Finaliza a seleção de personagens
  #--------------------------------------------------------------------------
  def end_actor_selection
    @ring_menu.active = true
    @status_window.active = false
    @status_window.visible = false
    @status_window.index = -1
  end
  #--------------------------------------------------------------------------
  # Atualiza a seleção de personagens
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @ring_menu.indice
      when 1
        $scene = Scene_Skill.new(@status_window.index)
      when 2
        $scene = Scene_Equip.new(@status_window.index)
      when 3
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end

#==============================================================================
# Window_RingMenu_Comando
#------------------------------------------------------------------------------
# Esta classe cria o ring menu.
#==============================================================================

class Window_RingMenu_Comando < Window_Base
  
  DurIni = 30
  DurMov = 15
  RaioAnel = 64
  ModoIni = 1
  ModoEsp = 2
  ModoMD = 3
  ModoME = 4
  SE_Inicio = ""
  
  attr_accessor :indice
  #--------------------------------------------------------------------------
  # Inicia o objeto
  #--------------------------------------------------------------------------
  def initialize(centro_x,centro_y)
    super(0, 0, 544, 416)
    self.opacity = 0
    self.contents.font.size = 16
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    @item_name = [s1,s2,s3,s4,s5,s6]
    @item_max = 6
    @item_icon = [144,128,40,137,149,112]
    @item_hab = [true,true,true,true,true,true]
    @indice = 0
    @cx = centro_x - 12
    @cy = centro_y - 12
    inicia_menu
    refresh
  end
  #--------------------------------------------------------------------------
  # Atualiza o objeto
  #--------------------------------------------------------------------------
  def update
    super
    refresh
  end
  #--------------------------------------------------------------------------
  # Atualiza o objeto
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    case @modo
    when ModoIni
      refresh_inicio
    when ModoEsp
      refresh_espera
    when ModoMD
      refresh_mover(1)
    when ModoME
      refresh_mover(0)
    end
    sw = self.contents.width
    rect = Rect.new((@cx - ((sw-32)/2))+12, @cy - 40, sw-32, 32)
    self.contents.draw_text(rect, @item_name[@indice],1)
  end
  #--------------------------------------------------------------------------
  # Abre o menu
  #--------------------------------------------------------------------------
  def refresh_inicio
    d1 = 2.0 * Math::PI / @item_max
    d2 = 1.0 * Math::PI / DurIni
    r = RaioAnel - 1.0 * RaioAnel * @passos / DurIni
    for i in 0...@item_max
      j = i - @indice
      d = d1 * j + d2 * @passos
      x = @cx + ( r * Math.sin( d ) ).to_i
      y = @cy - ( r * Math.cos( d ) ).to_i
      desenha_item(x, y, i)
    end
    @passos -= 1
    if @passos < 1
      @modo = ModoEsp
    end
  end
  #--------------------------------------------------------------------------
  # Atualiza o menu
  #--------------------------------------------------------------------------
  def refresh_espera
    d = 2.0 * Math::PI / @item_max
    for i in 0...@item_max
      j = i - @indice
      x = @cx + ( RaioAnel * Math.sin( d * j ) ).to_i
      y = @cy - ( RaioAnel * Math.cos( d * j ) ).to_i
      desenha_item(x, y, i)
    end
  end
  #--------------------------------------------------------------------------
  # Movimenta o menu
  #--------------------------------------------------------------------------
  def refresh_mover(modo)
    d1 = 2.0 * Math::PI / @item_max
    d2 = d1 / DurMov
    d2 *= -1 if modo != 0
    for i in 0...@item_max
      j = i - @indice
      d = d1 * j + d2 * @passos
      x = @cx + ( RaioAnel * Math.sin( d ) ).to_i
      y = @cy - ( RaioAnel * Math.cos( d ) ).to_i
      desenha_item(x, y, i)
    end
    @passos -= 1
    if @passos < 1
      @modo = ModoEsp
    end
  end
  #--------------------------------------------------------------------------
  # Desenha o icone
  #--------------------------------------------------------------------------
  def desenha_item(x, y, i)
    if @indice == i
      self.cursor_rect.set(x-4, y-4, 32, 32)
      draw_icon(@item_icon[i], x, y, @item_hab[i])
    else
      draw_icon(@item_icon[i], x, y, @item_hab[i])
    end
  end
  #--------------------------------------------------------------------------
  # Inicia o menu
  #--------------------------------------------------------------------------
  def inicia_menu
    @modo = ModoIni
    @passos = DurIni
    if  SE_Inicio != nil and SE_Inicio != ""
      Audio.se_play("Audio/SE/" + SE_Inicio, 80, 100)
    end
  end
  #--------------------------------------------------------------------------
  # Gira o menu
  #--------------------------------------------------------------------------
  def girar(modo)
    if modo == ModoMD
      @indice -= 1
      @indice = @item_hab.size - 1 if @indice < 0
    elsif modo == ModoME
      @indice += 1
      @indice = 0 if @indice >= @item_hab.size
    else
      return
    end
    @modo = modo
    @passos = DurMov
  end
  
end

#==============================================================================
# Scene_Title
#------------------------------------------------------------------------------
# Faz modificações nescessarias para a exibição do nome do mapa
#==============================================================================

class Scene_Title
  alias load_database_old load_database
  def load_database
    load_database_old
    $data_mapinfo = load_data("Data/MapInfos.rvdata")
  end
end

#==============================================================================
# Window_Local
#------------------------------------------------------------------------------
# Cria a janela responsavel pela exibição do nome do mapa
#==============================================================================

class Window_Local < Window_Base
  #--------------------------------------------------------------------------
  # Inicia o objeto
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 160, 96)
    refresh
  end
  #--------------------------------------------------------------------------
  # Atualiza o objeto
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120, 32, "Local:")
    self.contents.font.color = system_color
    self.contents.draw_text(4, 32, 120, 32, $data_mapinfo[$game_map.map_id].name, 2)
  end
end



Demo Link: I think the screenshots are enough.


Compatibility: Works fine (I think)


Credits :

° DouglasMF
° XRXS
° Dubealex
° Hypershadow180

This post has been edited by MBii: Jun 22 2008, 08:14 AM


__________________________
Calvin for president !


Go to the top of the page
 
+Quote Post
   
jasonicus
post Jun 22 2008, 03:25 AM
Post #2


All Lies Lead to the Truth
Group Icon

Group: Revolutionary
Posts: 1,573
Type: Developer
RM Skill: Advanced




This'll be good. I know some people are looking for this.
Go to the top of the page
 
+Quote Post
   
YanXie
post Jun 22 2008, 03:32 AM
Post #3


Because Tomorrow Will Surely Come...
Group Icon

Group: Revolutionary
Posts: 1,137
Type: None
RM Skill: Skilled




Also, please add XRXS, Dubealex & Hypershadow180 to credit list, since this script is based on XP version of the ring menu script wrote by those three. It 's stated in the comment in the script :

CODE
Script Criado por DouglasMF das comunidades VilaMakers Online e RPG Maker Brasil
Com base no script Ring Menu feito por XRXS, Dubealex e Hypershadow180


cheers, puppeto4. smile.gif


__________________________
how make teleport to graveyard then your character die?

AWAY FOR VACATION.
NOT HERE UNTIL JAN/FEB 2010 -w-/
Go to the top of the page
 
+Quote Post
   
C7Edition
post Jun 22 2008, 03:35 AM
Post #4


Eight-Oh-Seven
Group Icon

Group: Revolutionary
Posts: 808
Type: None
RM Skill: Undisclosed




QUOTE (puppeto4 @ Jun 22 2008, 02:46 AM) *
Also, please add XRXS, Dubealex & Hypershadow180 to credit list, since this script is based on XP version of the ring menu script wrote by those three. It 's stated in the comment in the script :

CODE
Script Criado por DouglasMF das comunidades VilaMakers Online e RPG Maker Brasil
Com base no script Ring Menu feito por XRXS, Dubealex e Hypershadow180


cheers, puppeto4. smile.gif


can you provide me the link for the xp version




it would be great.
Go to the top of the page
 
+Quote Post
   
YanXie
post Jun 22 2008, 03:46 AM
Post #5


Because Tomorrow Will Surely Come...
Group Icon

Group: Revolutionary
Posts: 1,137
Type: None
RM Skill: Skilled




@CJ:

Check your PM.


__________________________
how make teleport to graveyard then your character die?

AWAY FOR VACATION.
NOT HERE UNTIL JAN/FEB 2010 -w-/
Go to the top of the page
 
+Quote Post
   
syvkal
post Jun 22 2008, 07:27 AM
Post #6


Level 7
Group Icon

Group: Revolutionary
Posts: 104
Type: Scripter
RM Skill: Advanced




Interesting, quite like ring menus ^.^
I see it's not in english, oh and you might want to change it from Codebox, it's making smiley faces appear.

Did not know XRXS, Dubealex & Hypershadow180 made the original, but when I finally release mine, it will hopefully be different from there's xD


__________________________



Is time the wheel that turns, or the track it leaves behind?


Go to the top of the page
 
+Quote Post
   
zolaga
post Jun 22 2008, 08:18 AM
Post #7


The Dazzler
Group Icon

Group: Revolutionary
Posts: 245
Type: Writer
RM Skill: Intermediate




Nice but I don't like it personaly


__________________________
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Clicking this link gives me $0.50
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Facebook Account - Timothy Rosenberg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Go to the top of the page
 
+Quote Post
   
kingoftheroad
post Jun 22 2008, 08:43 AM
Post #8


Level 4
Group Icon

Group: Member
Posts: 49
Type: Mapper
RM Skill: Advanced




This goes well with that nice ring battle system:) cheers MBii.


__________________________
Go to the top of the page
 
+Quote Post
   
MBii
post Jun 22 2008, 09:12 AM
Post #9


Level 5
Group Icon

Group: Member
Posts: 62
Type: Event Designer
RM Skill: Skilled




QUOTE (kingoftheroad @ Jun 22 2008, 05:57 PM) *
This goes well with that nice ring battle system:) cheers MBii.


Can you give me the link of that 'ring battlesysytem' please happy.gif

I hate the current one, it's so boring simple ...


__________________________
Calvin for president !


Go to the top of the page
 
+Quote Post
   
watervivi
post Jun 22 2008, 10:46 AM
Post #10


Level 7
Group Icon

Group: Revolutionary
Posts: 103
Type: None
RM Skill: Beginner




QUOTE (MBii @ Jun 22 2008, 12:26 PM) *
QUOTE (kingoftheroad @ Jun 22 2008, 05:57 PM) *
This goes well with that nice ring battle system:) cheers MBii.


Can you give me the link of that 'ring battlesysytem' please happy.gif

I hate the current one, it's so boring simple ...


Can I get that as well?

also this script isn't working with the kgc-large party script.

it state line 1488 no method
undefined method 'index' for nil:NilClass

This post has been edited by watervivi: Jun 22 2008, 10:59 AM


__________________________

[Show/Hide] Current Projects
Ethereal Darkness
(First Demo - Coming Soon)

Go to the top of the page
 
+Quote Post
   
lawl 111
post Jun 22 2008, 11:50 AM
Post #11


Level 2
Group Icon

Group: Member
Posts: 20
Type: None
RM Skill: Skilled




its great for ppl making a sword of mana style game for sure! laugh.gif


__________________________
What is the most important ability for a warrior?

How gravity defying my hair is.








ROFLMAO
Go to the top of the page
 
+Quote Post
   
yayfunhappy
post Jun 22 2008, 12:35 PM
Post #12


Level 2
Group Icon

Group: Member
Posts: 17
Type: None
RM Skill: Skilled




How can I add this level_up script to it so that I can use this as an option in that menu, is it possible?

CODE

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/◆ Attribute Point Stat Distribution - KGC_DistributeParameter ◆ VX ◆
#_/◇ Last Update: 2008/04/01 ◇
#_/◆ Original translation by Mr. Anonymous ◆
#_/◆ Extended annotation and updates by Touchfuzzy ◆
#_/-----------------------------------------------------------------------------
#_/ ◆ 2008/04/01 UPDATE ◆
#_/ Added toggle to display actor's AP and position on the status screen, and
#_/ toggle to enable the display of Accuracy, Evasion, and Critical parameters
#_/ on the status screen. Added by Mr. Anonymous
#_/-----------------------------------------------------------------------------
#_/ ◆ 2008/03/23 UPDATE ◆
#_/ Updated to latest version of KGC Script. Fixes a bug in the calculation
#_/ of Max Ap.
#_/-----------------------------------------------------------------------------
#_/ ◆ 2008/03/10 UPDATE ◆
#_/ Level-based maximums moved into GAIN_PARAMETERS charts and MAXRP equation
#_/ moved into GAIN_PARAMETERS charts so that it can be changed for each
#_/ character/class by Touchfuzzy.
#_/-----------------------------------------------------------------------------
#_/ ◆ 2008/03/09 UPDATE ◆
#_/ Level-based maximums & separate maxes for current status bars
#_/ Added by Touchfuzzy
#_/-----------------------------------------------------------------------------
#_/ ◆ 2008/03/08 UPDATE ◆
#_/ Updated to the newest KCG version through the efforts of Touchfuzzy,
#_/ which added Class-specific parameter tables and other features/fixes.
#_/=============================================================================
#_/ ◆ Script Commands ◆
#_/ These commands are used in "Script" function in the third page of event
#_/ commands under "Advanced".
#_/
#_/ * gain_rp(ActorID, Value)
#_/ Increases the MaxRP of a given actor.
#_/
#_/ * reset_distributed_count(ActorID)
#_/ Resets the distributed RP of a given actor.
#_/
#_/ * call_distribute_parameter(ActorID)
#_/ Calls the Distribute Parameter screen for a given actor.
#_/
#_/=============================================================================
#_/ Installation: Insert this script above Main.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_

#==============================================================================#
# ★ Customization ★ #
#==============================================================================#

module KGC
module DistributeParameter
# ◆ Distribution Tables ◆
# Here you may customize the costs and increase rates of specific parameters.
# The order in which these costs and increase rates are set are as follows:
# [IPC, IPSG, MAP, PCI, PSGI, SBM]
# Key:
# IPC = Initial Point Cost. This is how many AP it cost to buy the first
# point of this parameter.
#
# IPSG = Initial Point Stat Growth. This is how much the stat will go up with
# the first point of this parameter.
#
# MAP = Maximum Attribute Points. The maximum amount of AP that can be spent
# on this stat. You may also put a level based equation in this but
# remember that if you put in an equation it is IMPORTANT that you put
# quotation marks ("") around it and to use level in all lower case.
# Example: "level"
#
# PCI = Point Cost Increase. For every AP spent in this parameter the cost
# of this parameter increases by this amount.
#
# PSGI = Point Stat Growth Increase. For every AP spent in this parameter
# the number of points you gain in the stat increases by this much.
#
# A Touchfuzzy Update
# SBM = Separate Bar Maximum. This will let you use a different maximum for
# the bar in the current status section. Useful if using a level based
# MAP and wish to show the bar at max level instead of current. If
# this is omitted the script instead uses the MAP (or the result of the
# equation your maximum is based on).
#
# Also, if you completely remove a line (e.g. ":hit => [1, 1, 20, 0.7],")
# it will remove it from the distribution screen altogether.
# Very useful if your project doesn't require a specific stat.

# ◆ AP Gain Rate ◆
# I added this in to the GAIN_PARAMETER tables so that you can use seperate
# equations for different characters and classes.
# This is the equation that determines your total AP gained every level.
# (Character Level to the 0.25th power + 2) * Level
# This causes you to start at 3 points per level and increase slightly over
# time.
# As an example if you wish to gain a static 3 points per level write it as
# :maxrpexp = "level * 3"

GAIN_PARAMETER = {
:maxhp => [1, 30, 30, 0.4, 2], # Maximum HP
:maxmp => [1, 5, 30, 0.4, 0.5], # Maximum MP
:atk => [1, 2, 30, 0.4, 0.5], # Attack
:def => [1, 2, 30, 0.4, 0.5], # Defense
:spi => [1, 2, 30, 0.4, 0.5], # Spirit (AKA Intelligence)
:agi => [1, 2, 30, 0.4, 0.5], # Agility
:hit => [1, 1, 20, 0.7], # Hit Percentage (AKA Accuracy)
:eva => [1, 1, 20, 0.7], # Evasion
:cri => [1, 1, 20, 0.7], # Critical
:maxrpexp => ["(level ** 0.25 + 2.0) * level"] #Max AP, DO NOT REMOVE
}


# ◆ Individual Actor Gain Parameter Tables ◆
PERSONAL_GAIN_PARAMETER = [] # DO NOT REMOVE

PERSONAL_GAIN_PARAMETER[1] = {
:maxhp => [1, 30, 30, 0.4, 2], # Maximum HP
:maxmp => [1, 5, 30, 0.4, 0.5], # Maximum MP
:atk => [1, 2, 30, 0.4, 0.5], # Attack
:def => [1, 2, 30, 0.4, 0.5], # Defense
:spi => [0, 0, 0, 0, 0], # Spirit (AKA Intelligence)
:agi => [1, 2, 30, 0.4, 0.5], # Agility
:hit => [1, 1, 20, 0.7], # Hit Percentage (AKA Accuracy)
:eva => [1, 1, 20, 0.7], # Evasion
:cri => [1, 1, 20, 0.7], # Critical
:maxrpexp => ["(level ** 0.25 + 2.0) * level"] #Max AP, DO NOT REMOVE
}
# You may choose to manually specify an individual actor's gain parameters.
# To do so, use the same format as above GAIN_PARAMETER table but instead
# use PERSONAL_GAIN_PARAMETER [n] (Where n = Actor ID)
# Any parameter you do not set in this table will instead draw from the
# GAIN_PARAMETER chart.
#
# Example:
# PERSONAL_GAIN_PARAMETER[1] = {
# :maxhp => [2, 20, 50, 0.5, 5],
# :maxmp => [1, 10, 30, 0.3, 0.5],
# :atk => [1, 1, 30, 0.3, 0.5],
# :def => [1, 2, 30, 0.4, 0.5],
# :spi => [1, 2, 50, 0.5, 0.8],
# :agi => [1, 2, 30, 0.4, 0.6],
# :hit => [1, 1, 20, 0.7],
# :eva => [1, 1, 20, 0.7],
# :cri => [1, 1, 20, 0.7],
# :maxrpexp => ["(level ** 0.25 + 2.0) * level"]
# }

# ◆ Class-Specific Gain Parameter Tables ◆
CLASS_GAIN_PARAMETER = [] # DO NOT REMOVE

# You may choose to manually specify an entire class's gain parameters.
# To do so, use the same format as above GAIN_PARAMETER table but instead
# use CLASS_GAIN_PARAMETER [n] (Where n = Number of class in the database)
# Any parameter you do not set in this table will instead draw from the
# GAIN_PARAMETER chart.

# ◆ AP = Attribute Points. These settings are for the AP Distrubution Screen.
# VOCAB_RP appears at the top of the column which lists the AP cost of
# the parameter
VOCAB_RP = "Cost"

# VOCAB_RP_A appears next to where it lists your current and total AP.
VOCAB_RP_A = "AP"

# ◆ Extended Vocabulary ◆
# Allows you to change the text of Hit Ratio, Evasion, and Critical on the
# distribution screen.
VOCAB_PARAM = {
:hit => "ACU", # Hit Ratio
:eva => "EVA", # Evasion
:cri => "CRI", # Criticals
}
# Text of the menu title for the AP Distribution Screen.
DISTRIBUTE_SCENE_CAPTION = "Attribute Distribution - Press L or R to change characters."

# Allows you to change the color of the guages that appear under the stats
# side bar. The color can also be determined by a numerical expression.
# Example: GAUGE_START_COLOR = Color.new(255, 0, 0) <- This is red.
# This is the fill color for the early phase of the guage.
GAUGE_START_COLOR = 28
# This is the fill color for the late phase of the guage. (When full)
GAUGE_END_COLOR = 29

# ◆ Menu Command Button & Text ◆
# When USE_MENU_DISTRIBUTE_PARAMETER_COMMAND = true,
# the AP Distribution System is added to the menu under "Quit Game".
# When false, it does not. (Obviously)
USE_MENU_DISTRIBUTE_PARAMETER_COMMAND = true
# Allows you to change the text for this button on the main command menu.
VOCAB_MENU_DISTRIBUTE_PARAMETER = "Level Up"

# ◆ Parameter Re-distribution ◆
# This affects whether the player can delevel the parameters that have
# been increased.
# true : Allows the player to reassign AP.
# false : Prevents the player from unassigning AP if set to false.
ENABLE_REVERSE_DISTRIBUTE = false

# ◆ AP in Status Window ◆
# The following four features have been scripted by Mr. Anonymous.
# This toggle allows you to enable/disable the AP display on the status
# screen.
SHOW_STATUS_RP = true
# This toggle allows you to adjust the position of the AP display on the
# status screen. (If SHOW_STATUS_RP = true)
# 0. Below Actor's Face Image
# 1. Below Actor's Parameters
SHOW_STATUS_RP_POS = 1

# ◆ Extra Parameters in Status Window ◆
# This toggle allows you to enable/disable the parameters for accuracy,
# evasion, and critical below the regular paramaters (STR, DEF, SPI, AGI)
SHOW_STATUS_EX_PARAMS = true

# ◆ Call DistributeParameter from the Status Window ◆
# This allows you to change what key/button is pressed on the status window
# to shift to the DistributeParameter window.
# When set to nil, this is disabled. ( CALL_DISTPARAMKEY = Input::nil )
CALL_DISTPARAMKEY = Input::X # On the keyboard, button X is the A key.

end
end

#------------------------------------------------------------------------------#

$imported = {} if $imported == nil
$imported["DistributeParameter"] = true

module KGC::DistributeParameter
PARAMS = [:maxhp, :maxmp, :atk, :def, :spi, :agi, :hit, :eva, :cri]
end

#==============================================================================
# ■ Vocab
#==============================================================================

module Vocab

def self.hit
return KGC::DistributeParameter::VOCAB_PARAM[:hit]
return $data_system.terms.hit # Added 4/1/08
end

def self.eva
return KGC::DistributeParameter::VOCAB_PARAM[:eva]
return $data_system.terms.eva # Added 4/1/08
end

def self.cri
return KGC::DistributeParameter::VOCAB_PARAM[:cri]
return $data_system.terms.cri # Added 4/1/08
end

def self.rp
return KGC::DistributeParameter::VOCAB_RP
end

def self.rp_a
return KGC::DistributeParameter::VOCAB_RP_A
end

def self.distribute_parameter
return KGC::DistributeParameter::VOCAB_MENU_DISTRIBUTE_PARAMETER
end
end

#==============================================================================
# □ KGC::Commands
#==============================================================================

module KGC::Commands
module_function

def check_distribution_values
(1...$data_actors.size).each { |i|
actor = $game_actors[i]
actor.check_distribution_values
actor.calc_distribution_values
}
end

def gain_rp(actor_id, value)
actor = $game_actors[actor_id]
return if actor == nil
actor.gain_rp(value)
end

def reset_distributed_count(actor_id)
actor = $game_actors[actor_id]
return if actor == nil
actor.clear_distribution_values
actor.calc_distribution_values
end

def call_distribute_parameter(actor_index = 0)
return if $game_temp.in_battle
$game_temp.next_scene = :distribute_parameter
$game_temp.next_scene_actor_index = actor_index
end
end

class Game_Interpreter
include KGC::Commands
end

#==============================================================================
# ■ Game_Battler
#==============================================================================

class Game_Battler

alias clear_extra_values_KGC_DistributeParameter clear_extra_values
def clear_extra_values
clear_extra_values_KGC_DistributeParameter

clear_distribution_values
calc_distribution_values
end

def clear_distribution_values
@distributed_count = {}
KGC::DistributeParameter::PARAMS.each { |param|
@distributed_count[param] = 0
}
end

def check_distribution_values
last_distributed_count = @distributed_count

clear_distribution_values

@distributed_count = last_distributed_count if last_distributed_count !=

nil
end

def calc_distribution_values

end
end

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

class Game_Actor < Game_Battler

alias initialize_KGC_DistributeParameter initialize
def initialize(actor_id)
@actor_id = actor_id
@class_id = $data_actors[actor_id].class_id
initialize_KGC_DistributeParameter(actor_id)
end

def gain_parameter_list
result = KGC::DistributeParameter::GAIN_PARAMETER
list = KGC::DistributeParameter::PERSONAL_GAIN_PARAMETER[self.id]
result = result.merge(list) if list != nil
list = KGC::DistributeParameter::CLASS_GAIN_PARAMETER[self.class_id]
result = result.merge(list) if list != nil
return result
end

def calc_distribution_values
@rp_cost = 0
@distributed_param = {}
gain_parameter_list.each { |k, v|
next if v == nil
cost = 0
param = 0
distributed_count(k).times { |i|
cost_plus = v[0]
cost_plus += v[3] * i if v[3] != nil
param_plus = v[1]
param_plus += v[4] * i if v[4] != nil
cost += Integer(cost_plus)
param += Integer(param_plus)
}
@rp_cost += [cost, 0].max
@distributed_param[k] = param
}
end

def distributed_param(param)
return 0 if @distributed_param == nil
return 0 if @distributed_param[param] == nil
return @distributed_param[param]
end

alias base_maxhp_KGC_DistributeParameter base_maxhp
def base_maxhp
n = base_maxhp_KGC_DistributeParameter + distributed_param(:maxhp)
return n
end

alias base_maxmp_KGC_DistributeParameter base_maxmp
def base_maxmp
n = base_maxmp_KGC_DistributeParameter + distributed_param(:maxmp)
return n
end

alias base_atk_KGC_DistributeParameter base_atk
def base_atk
n = base_atk_KGC_DistributeParameter + distributed_param(:atk)
return n
end

alias base_def_KGC_DistributeParameter base_def
def base_def
n = base_def_KGC_DistributeParameter + distributed_param(:def)
return n
end

alias base_spi_KGC_DistributeParameter base_spi
def base_spi
n = base_spi_KGC_DistributeParameter + distributed_param(:spi)
return n
end

alias base_agi_KGC_DistributeParameter base_agi
def base_agi
n = base_agi_KGC_DistributeParameter + distributed_param(:agi)
return n
end

alias hit_KGC_DistributeParameter hit
def hit
n = hit_KGC_DistributeParameter + distributed_param(:hit)
return n
end

alias eva_KGC_DistributeParameter eva
def eva
n = eva_KGC_DistributeParameter + distributed_param(:eva)
return n
end

alias cri_KGC_DistributeParameter cri
def cri
n = cri_KGC_DistributeParameter + distributed_param(:cri)
return n
end

def maxrp
gain = gain_parameter_list[:maxrpexp]
n = Integer(eval(gain[0]))
return [n + maxrp_plus, 0].max
end

def maxrp_plus
@maxrp_plus = 0 if @maxrp_plus == nil
return @maxrp_plus
end

def rp
return [maxrp - @rp_cost, 0].max
end

def distributed_count(param)
clear_distribution_values if @distributed_count == nil
@distributed_count[param] = 0 if @distributed_count[param] == nil
return @distributed_count[param]
end

def gain_rp(value)
@maxrp_plus = maxrp_plus + value
end

def gain_distributed_count(param, value = 1)
n = distributed_count(param)
@distributed_count[param] += value if n.is_a?(Integer)
end

def rp_growth_effect(param, reverse = false)
gain = gain_parameter_list[param]
return if gain == nil

if reverse
return if distributed_count(param) == 0
else
return unless can_distribute?(param)
end

gain_distributed_count(param, reverse ? -1 : 1)
calc_distribution_values
end

def can_distribute?(param)
gain = gain_parameter_list[param]
return false if gain == nil
return false if self.rp < distribute_cost(param)
return false if gain[2] <= distributed_count(param)

return true
end

def distribute_cost(param)
gain = gain_parameter_list[param]
return 0 if gain == nil

n = gain[0]
n += gain[3] * distributed_count(param) if gain[3] != nil
return [Integer(n), 0].max
end

def distribute_gain(param)
gain = gain_parameter_list[param]
return 0 if gain == nil

n = gain[1]
n += gain[4] * distributed_count(param) if gain[4] != nil
return Integer(n)
end
end

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window

def rp_color(actor)
return (actor.rp == 0 ? knockout_color : normal_color)
end

def distribute_gauge_color1
color = KGC::DistributeParameter::GAUGE_START_COLOR
return (color.is_a?(Integer) ? text_color(color) : color)
end

def distribute_gauge_color2
color = KGC::DistributeParameter::GAUGE_END_COLOR
return (color.is_a?(Integer) ? text_color(color) : color)
end

def draw_actor_rp(actor, x, y, width = 120)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, WLH, Vocab::rp_a)
self.contents.font.color = rp_color(actor)
xr = x + width
if width < 120
self.contents.draw_text(xr - 40, y, 40, WLH, actor.rp, 2)
else
self.contents.draw_text(xr - 90, y, 40, WLH, actor.rp, 2)
self.contents.font.color = normal_color
self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxrp, 2)
end
self.contents.font.color = normal_color
end

def draw_actor_distribute_gauge(actor, param, x, y, width = 120)
gain = actor.gain_parameter_list[param]
return if gain == nil
if gain[5] == nil
n = 2
else
n = 5
end
gw = width * actor.distributed_count(param) / [gain[n], 1].max
gc1 = distribute_gauge_color1
gc2 = distribute_gauge_color2
self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
end
#==========================================================================
# Added by Mr. Anonymous ( 4/1/08 )
# Sets up the initial parameters and the entended/extra parameters.
#==========================================================================
if KGC::DistributeParameter::SHOW_STATUS_EX_PARAMS
alias draw_actor_parameter_KGC_DistributeParameter draw_actor_parameter
def draw_actor_parameter(actor, x, y, type)
case type
when 0
parameter_name = Vocab::atk
parameter_value = actor.atk
when 1
parameter_name = Vocab::def
parameter_value = actor.def
when 2
parameter_name = Vocab::spi
parameter_value = actor.spi
when 3
parameter_name = Vocab::agi
parameter_value = actor.agi
when 4
parameter_name = Vocab::hit
parameter_value = actor.hit
when 5
parameter_name = Vocab::eva
parameter_value = actor.eva
when 6
parameter_name = Vocab::cri
parameter_value = actor.cri
end
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2)
end
end
end

#==============================================================================
# ■ Window_Command
#==============================================================================

class Window_Command < Window_Selectable
unless method_defined?(:add_command)

def add_command(command)
@commands << command
@item_max = @commands.size
item_index = @item_max - 1
refresh_command
draw_item(item_index)
return item_index
end

def refresh_command
buf = self.contents.clone
self.height = [self.height, row_max * WLH + 32].max
create_contents
self.contents.blt(0, 0, buf, buf.rect)
buf.dispose
end

def insert_command(index, command)
@commands.insert(index, command)
@item_max = @commands.size
refresh_command
refresh
end

def remove_command(command)
@commands.delete(command)
@item_max = @commands.size
refresh
end
end
end

#==============================================================================
# ■ Window_Status
#==============================================================================
# Added by Mr. Anonymous ( 4/1/08 )
# Checks SHOW_STATUS_RP's value, if true RP is added to Status Window.
#==============================================================================
if KGC::DistributeParameter::SHOW_STATUS_RP
class Window_Status < Window_Base
#--------------------------------------------------------------------------
# ● Draw RP in Status Window
# x : Width X - 128 (beneath actor face)
# y : Hight Y (On row + Window_Status Definition)
#--------------------------------------------------------------------------
alias draw_basic_info_KGC_DistributeParameter draw_basic_info
def draw_basic_info(x, y)
draw_basic_info_KGC_DistributeParameter(x, y)
# Checks SHOW_STATUS_RP_POS, if 0, RP is shown beneath face of actor.
if KGC::DistributeParameter::SHOW_STATUS_RP_POS == 0
draw_actor_rp(@actor, x - 129, y + WLH * 4)
end
# If 1, RP is shown under parameters. (Centered)
if KGC::DistributeParameter::SHOW_STATUS_RP_POS == 1
draw_actor_rp(@actor, x - 80, y + WLH * 13)
end
end
end
end
#--------------------------------------------------------------------------
# ● Draw Extra (Normally Hidden) Parameters in Status Window
# x : Width X - 128 (beneath actor face)
# y : Hight Y (On row + Window_Status Definition)
# Added by Mr. Anonymous ( 4/1/08 )
#--------------------------------------------------------------------------
if KGC::DistributeParameter::SHOW_STATUS_EX_PARAMS
class Window_Status < Window_Base
alias draw_parameters_KCG_DistributeParameter draw_parameters
def draw_parameters(x, y)
draw_actor_parameter(@actor, x, y + WLH * 0, 0)
draw_actor_parameter(@actor, x, y + WLH * 1, 1)
draw_actor_parameter(@actor, x, y + WLH * 2, 2)
draw_actor_parameter(@actor, x, y + WLH * 3, 3)
draw_actor_parameter(@actor, x, y + WLH * 4, 4)
draw_actor_parameter(@actor, x, y + WLH * 5, 5)
draw_actor_parameter(@actor, x, y + WLH * 6, 6)
end
end
end

#==============================================================================
# □ Window_DistributeParameterActor
#==============================================================================

class Window_DistributeParameterActor < Window_Base

def initialize(x, y, actor)
super(x, y, Graphics.width, WLH + 32)
@actor = actor
refresh
end

def refresh
self.contents.clear
draw_actor_name(@actor, 4, 0)
draw_actor_level(@actor, 140, 0)
draw_actor_rp(@actor, 240, 0)
end
end

#==============================================================================
# □ Window_DistributeParameterList
#==============================================================================

class Window_DistributeParameterList < Window_Selectable

def initialize(actor)
off_h = (WLH + 32) * 2
super(0, off_h, Graphics.width / 2 + 80, Graphics.height - off_h)
@actor = actor
refresh
self.index = 0
end

def parameter_symbol
return @data[self.index]
end

def refresh
@data = []
gain_params = @actor.gain_parameter_list
KGC::DistributeParameter::PARAMS.each { |param|
next if gain_params[param] == nil
@data << param
}
@item_max = @data.size
create_contents
draw_caption
@item_max.times { |i| draw_item(i, @actor.can_distribute?(@data[i])) }
end

def item_rect(index)
rect = super(index)
rect.y += WLH
return rect
end

def draw_caption
self.contents.font.color = system_color
# This is shown at the top of the column that lists the stats.
self.contents.draw_text( 4, 0, 96, WLH, "Attribute")
self.contents.draw_text(120, 0, 40, WLH, Vocab.rp, 2)
# This is shown at the top of the column that lists the number of stat points
# you will gain from buying the next point of the parameter.
self.contents.draw_text(170, 0, 60, WLH, "Rate", 2)
# This is shown at the top of the column that lists the current and max
# points you have in each parameter.
self.contents.draw_text(240, 0, 80, WLH, "Spent", 2)
self.contents.font.color = normal_color
end

def draw_item(index, enabled = true)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
if item != nil
draw_parameter(rect.x, rect.y, @data[index], enabled)
end
end

def draw_parameter(x, y, type, enabled)
case type
when :maxhp
name = Vocab.hp
when :maxmp
name = Vocab.mp
when :atk
name = Vocab.atk
when :def
name = Vocab.def
when :spi
name = Vocab.spi
when :agi
name = Vocab.agi
when :hit
name = Vocab.hit
when :eva
name = Vocab.eva
when :cri
name = Vocab.cri
else
return
end

self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x + 4, y, 96, WLH, name)

gain = @actor.gain_parameter_list[type]
value = @actor.distribute_cost(type)
self.contents.draw_text(x + 120, y, 40, WLH, value, 2)
value = sprintf("%+d", @actor.distribute_gain(type))
self.contents.draw_text(x + 190, y, 40, WLH, value, 2)
value = sprintf("%3d/%3d", @actor.distributed_count(type), gain[2])
self.contents.draw_text(x + 236, y, 80, WLH, value, 2)
self.contents.font.color = normal_color
end
end

#==============================================================================
# □ Window_DistributeParameterStatus
#==============================================================================

class Window_DistributeParameterStatus < Window_Base

def initialize(actor)
dx = Graphics.width / 2 + 80
off_h = (WLH + 32) * 2
super(dx, off_h, Graphics.width - dx, Graphics.height - off_h)
@actor = actor
refresh
end

def refresh
self.contents.clear
self.contents.font.color = system_color
# This allows you to change the text that appears on top of the right panel
# which contains current parameter changes.
self.contents.draw_text(0, 0, width - 32, WLH, "Current Status", 1)
self.contents.font.color = normal_color
dy = WLH
gain_params = @actor.gain_parameter_list
KGC::DistributeParameter::PARAMS.each { |param|
next if gain_params[param] == nil
draw_parameter(0, dy, param)
dy += WLH
}
end

def draw_parameter(x, y, type)
case type
when :maxhp
name = Vocab.hp
value = @actor.maxhp
when :maxmp
name = Vocab.mp
value = @actor.maxmp
when :atk
name = Vocab.atk
value = @actor.atk
when :def
name = Vocab.def
value = @actor.def
when :spi
name = Vocab.spi
value = @actor.spi
when :agi
name = Vocab.agi
value = @actor.agi
when :hit
name = Vocab.hit
value = @actor.hit
when :eva
name = Vocab.eva
value = @actor.eva
when :cri
name = Vocab.cri
value = @actor.cri
else
return
end
draw_actor_distribute_gauge(@actor, type, x + 106, y, 48)
self.contents.font.color = system_color
self.contents.draw_text(x + 4, y, 96, WLH, name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 106, y, 48, WLH, value, 2)
end
end

#==============================================================================
# ■ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base

alias update_scene_change_KGC_DistributeParameter update_scene_change
def update_scene_change
return if $game_player.moving?

if $game_temp.next_scene == :distribute_parameter
call_distribute_parameter
return
end

update_scene_change_KGC_DistributeParameter
end

def call_distribute_parameter
$game_temp.next_scene = nil
$scene = Scene_DistributeParameter.new(
$game_temp.next_scene_actor_index,
0,
Scene_DistributeParameter::HOST_MAP)
end
end

#==============================================================================
# ■ Scene_Menu
#==============================================================================

class Scene_Menu < Scene_Base
if KGC::DistributeParameter::USE_MENU_DISTRIBUTE_PARAMETER_COMMAND

alias create_command_window_KGC_DistributeParameter create_command_window
def create_command_window
create_command_window_KGC_DistributeParameter

return if $imported["CustomMenuCommand"]

@__command_distribute_parameter_index =
@command_window.add_command(Vocab.distribute_parameter)
if @command_window.oy > 0
@command_window.oy -= Window_Base::WLH
end
@command_window.index = @menu_index
end
end

alias update_command_selection_KGC_DistributeParameter

update_command_selection
def update_command_selection
call_distribute_parameter_flag = false
if Input.trigger?(Input::C)
case @command_window.index
when @__command_distribute_parameter_index
call_distribute_parameter_flag = true
end
end

if call_distribute_parameter_flag
if $game_party.members.size == 0
Sound.play_buzzer
return
end
Sound.play_decision
start_actor_selection
return
end

update_command_selection_KGC_DistributeParameter
end

alias update_actor_selection_KGC_DistributeParameter update_actor_selection
def update_actor_selection
if Input.trigger?(Input::C)
$game_party.last_actor_index = @status_window.index
Sound.play_decision
case @command_window.index
when @__command_distribute_parameter_index
$scene = Scene_DistributeParameter.new(
@status_window.index,
@__command_distribute_parameter_index,
Scene_DistributeParameter::HOST_MENU)
return
end
end

update_actor_selection_KGC_DistributeParameter
end
end

#==============================================================================
# □ Scene_DistributeParameter
#==============================================================================

class Scene_DistributeParameter < Scene_Base

HOST_MENU = 0
HOST_MAP = 1

def initialize(actor_index = 0, menu_index = 0, host_scene = HOST_MENU)
@actor_index = actor_index
@menu_index = menu_index
@host_scene = host_scene
end

def start
super
create_menu_background

@actor = $game_party.members[@actor_index]
create_windows
end

def create_windows
@help_window = Window_Help.new
@help_window.set_text(KGC::DistributeParameter::DISTRIBUTE_SCENE_CAPTION)
dy = @help_window.height
@actor_window = Window_DistributeParameterActor.new(0, dy, @actor)
@parameter_window = Window_DistributeParameterList.new(@actor)
@status_window = Window_DistributeParameterStatus.new(@actor)
end

def terminate
super
dispose_menu_background
@help_window.dispose
@actor_window.dispose
@parameter_window.dispose
@status_window.dispose
end

def return_scene
case @host_scene
when HOST_MENU
$scene = Scene_Menu.new(@menu_index)
when HOST_MAP
$scene = Scene_Map.new
end
end

def update
super
update_menu_background
update_window
if @parameter_window.active
update_parameter_list
end
end

def update_window
@help_window.update
@actor_window.update
@parameter_window.update
@status_window.update
end

def refresh_window
@actor_window.refresh
@parameter_window.refresh
@status_window.refresh
Graphics.frame_reset
end

def next_actor
@actor_index += 1
@actor_index %= $game_party.members.size
$scene = Scene_DistributeParameter.new(@actor_index,
@menu_index, @host_scene)
end

def prev_actor
@actor_index += $game_party.members.size - 1
@actor_index %= $game_party.members.size
$scene = Scene_DistributeParameter.new(@actor_index,
@menu_index, @host_scene)
end

def update_parameter_list
if Input.trigger?(Input::cool.gif
Sound.play_cancel
return_scene
elsif input_growth?
param = @parameter_window.parameter_symbol
unless @actor.can_distribute?(param)
Sound.play_buzzer
return
end
Input.repeat?(Input::C) ? Sound.play_decision : Sound.play_cursor
@actor.rp_growth_effect(param)
refresh_window
elsif input_reverse_growth?
param = @parameter_window.parameter_symbol
if @actor.distributed_count(param) == 0
Sound.play_buzzer
return
end
Input.repeat?(Input::A) ? Sound.play_decision : Sound.play_cursor
@actor.rp_growth_effect(param, true)
refresh_window
elsif Input.trigger?(Input::R)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::L)
Sound.play_cursor
prev_actor
end
end

def input_growth?
if KGC::DistributeParameter::ENABLE_REVERSE_DISTRIBUTE
return Input.repeat?(Input::C) || Input.repeat?(Input::RIGHT)
else
return Input.trigger?(Input::C)
end
end

def input_reverse_growth?
if KGC::DistributeParameter::ENABLE_REVERSE_DISTRIBUTE
return Input.repeat?(Input::A) || Input.repeat?(Input::LEFT)
else
return false
end
end
end

#==============================================================================
# ■ Scene_File
#==============================================================================

class Scene_File < Scene_Base

alias read_save_data_KGC_DistributeParameter read_save_data
def read_save_data(file)
read_save_data_KGC_DistributeParameter(file)

KGC::Commands.check_distribution_values
Graphics.frame_reset
end
end

#==============================================================================
# ■ Scene_Status
#==============================================================================
# Added by Mr. Anonymous
#==============================================================================
class Scene_Status < Scene_Base
#--------------------------------------------------------------------------
# Update Actor
#--------------------------------------------------------------------------
alias update_KGC_DistributeParameter update
def update
if KGC::DistributeParameter::CALL_DISTPARAMKEY != nil &&
Input.trigger?(KGC::DistributeParameter::CALL_DISTPARAMKEY)
Sound.play_decision
$scene = Scene_DistributeParameter.new(@actor_index)#,@menu_index,@host_scene
end
update_KGC_DistributeParameter
end
end

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/ The original untranslated version of this script can be found here:
# http://f44.aaa.livedoor.jp/~ytomy/tkool/rp...ibute_parameter
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_


__________________________
If I had a dollar for every smart person I met, I'd be in debt.
Go to the top of the page
 
+Quote Post
   
MBii
post Jun 23 2008, 04:45 AM
Post #13


Level 5
Group Icon

Group: Member
Posts: 62
Type: Event Designer
RM Skill: Skilled




Euh ... It's not my script, I only placed it here cause many people want it ... (I think happy.gif )

So, maybe you should ask the creator of the level_up script or another good scripter.


__________________________
Calvin for president !


Go to the top of the page
 
+Quote Post
   
yayfunhappy
post Jun 23 2008, 08:36 AM
Post #14


Level 2
Group Icon

Group: Member
Posts: 17
Type: None
RM Skill: Skilled




I figured it wasn't your script but I thought that you'd be able to help, thanks anyways thumbsup.gif


__________________________
If I had a dollar for every smart person I met, I'd be in debt.
Go to the top of the page
 
+Quote Post
   
kingoftheroad
post Jun 23 2008, 10:40 AM
Post #15


Level 4
Group Icon

Group: Member
Posts: 49
Type: Mapper
RM Skill: Advanced




Hmm.. cant find the link so im uploading it.
its japanese and the author appears to be " Ziifee " i cant get his permission as i dont speak japanese
http://www.rpgrevolution.com/forums/?showtopic=15954


__________________________
Go to the top of the page
 
+Quote Post
   
MBii
post Jun 23 2008, 10:42 AM
Post #16


Level 5
Group Icon

Group: Member
Posts: 62
Type: Event Designer
RM Skill: Skilled




QUOTE (kingoftheroad @ Jun 23 2008, 07:54 PM) *
Hmm.. cant find the link so im uploading it.
its japanese and the author appears to be " Ziifee " i cant get his permission as i dont speak japanese
http://www.rpgrevolution.com/forums/?showtopic=15954



Thanks happy.gif !


__________________________
Calvin for president !


Go to the top of the page
 
+Quote Post
   
YanXie
post Jun 23 2008, 10:56 AM
Post #17


Because Tomorrow Will Surely Come...
Group Icon

Group: Revolutionary
Posts: 1,137
Type: None
RM Skill: Skilled




@ yayfunhappy :

[Show/Hide] KGC + Ring Menu
CODE
=begin
Script Criado por DouglasMF das comunidades VilaMakers Online e RPG Maker Brasil
Com base no script Ring Menu feito por XRXS, Dubealex e Hypershadow180

-- Instrucoes --
Para instalar este script coloque ele entre os scripts Main e Scene_Cameover

=end
#==============================================================================
# Scene_Menu
#------------------------------------------------------------------------------
# Esta classe controla o conjunto de objetos que forma o RingMenu
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # Inicializa
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # Inicia os objetos do menu
  #--------------------------------------------------------------------------
  def start
    super
    @spriteset = Spriteset_Map.new
    @gold_window = Window_Gold.new(0, 360)
    @win_local = Window_Local.new(0,0)
    @status_window = Window_MenuStatus.new(160, 0)
    px = $game_player.screen_x - 16
    py = $game_player.screen_y - 28
    @ring_menu = Window_RingMenu_Comando.new(px,py)
    @status_window.z = @ring_menu.z + 20
    @status_window.visible = false
  end
  #--------------------------------------------------------------------------
  # Fexa os objetos do menu
  #--------------------------------------------------------------------------
  def terminate
    super
    @spriteset.dispose
    @ring_menu.dispose
    @gold_window.dispose
    @win_local.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # Atualiza os objetos do menu
  #--------------------------------------------------------------------------
  def update
    super
    @ring_menu.update
    @gold_window.update
    @win_local.update
    @spriteset.update
    @status_window.update
    if @ring_menu.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # Atualiza o comando e a selecao do menu
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @ring_menu.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @ring_menu.index == 5
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @ring_menu.indice
      when 0
        $scene = Scene_Item.new
      when 1,2,3
        start_actor_selection
      when 5
        $scene = Scene_File.new(true, false, false)
      when 6
        $scene = Scene_End.new
      end
    end
    if Input.trigger?(Input::UP) or  Input.trigger?(Input::LEFT)
      Sound.play_cursor
      @ring_menu.girar(3)
      return
    end
    if Input.trigger?(Input::DOWN) or  Input.trigger?(Input::RIGHT)
      Sound.play_cursor
      @ring_menu.girar(4)
      return
    end
  end
  #--------------------------------------------------------------------------
  # Inicia a selecao de personagem
  #--------------------------------------------------------------------------
  def start_actor_selection
    @ring_menu.active = false
    @status_window.visible = true
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # Finaliza a selecao de personagens
  #--------------------------------------------------------------------------
  def end_actor_selection
    @ring_menu.active = true
    @status_window.active = false
    @status_window.visible = false
    @status_window.index = -1
  end
  #--------------------------------------------------------------------------
  # Atualiza a selecao de personagens
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @ring_menu.indice
      when 1
        $scene = Scene_Skill.new(@status_window.index)
      when 2
        $scene = Scene_Equip.new(@status_window.index)
      when 3
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end

#==============================================================================
# Window_RingMenu_Comando
#------------------------------------------------------------------------------
# Esta classe cria o ring menu.
#==============================================================================

class Window_RingMenu_Comando < Window_Base
  
  DurIni = 30
  DurMov = 15
  RaioAnel = 64
  ModoIni = 1
  ModoEsp = 2
  ModoMD = 3
  ModoME = 4
  SE_Inicio = ""
  
  attr_accessor :indice
  #--------------------------------------------------------------------------
  # Inicia o objeto
  #--------------------------------------------------------------------------
  def initialize(centro_x,centro_y)
    super(0, 0, 544, 416)
    self.opacity = 0
    self.contents.font.size = 16
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = "Level Up"
    s6 = Vocab::save
    s7 = Vocab::game_end
    @item_name = [s1,s2,s3,s4,s5,s6]
    @item_max = 7
    @item_icon = [144,128,40,137,142,149,112]
    @item_hab = [true,true,true,true,true,true,true]
    @indice = 0
    @cx = centro_x - 12
    @cy = centro_y - 12
    inicia_menu
    refresh
  end
  #--------------------------------------------------------------------------
  # Atualiza o objeto
  #--------------------------------------------------------------------------
  def update
    super
    refresh
  end
  #--------------------------------------------------------------------------
  # Atualiza o objeto
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    case @modo
    when ModoIni
      refresh_inicio
    when ModoEsp
      refresh_espera
    when ModoMD
      refresh_mover(1)
    when ModoME
      refresh_mover(0)
    end
    sw = self.contents.width
    rect = Rect.new((@cx - ((sw-32)/2))+12, @cy - 40, sw-32, 32)
    self.contents.draw_text(rect, @item_name[@indice],1)
  end
  #--------------------------------------------------------------------------
  # Abre o menu
  #--------------------------------------------------------------------------
  def refresh_inicio
    d1 = 2.0 * Math::PI / @item_max
    d2 = 1.0 * Math::PI / DurIni
    r = RaioAnel - 1.0 * RaioAnel * @passos / DurIni
    for i in 0...@item_max
      j = i - @indice
      d = d1 * j + d2 * @passos
      x = @cx + ( r * Math.sin( d ) ).to_i
      y = @cy - ( r * Math.cos( d ) ).to_i
      desenha_item(x, y, i)
    end
    @passos -= 1
    if @passos < 1
      @modo = ModoEsp
    end
  end
  #--------------------------------------------------------------------------
  # Atualiza o menu
  #--------------------------------------------------------------------------
  def refresh_espera
    d = 2.0 * Math::PI / @item_max
    for i in 0...@item_max
      j = i - @indice
      x = @cx + ( RaioAnel * Math.sin( d * j ) ).to_i
      y = @cy - ( RaioAnel * Math.cos( d * j ) ).to_i
      desenha_item(x, y, i)
    end
  end
  #--------------------------------------------------------------------------
  # Movimenta o menu
  #--------------------------------------------------------------------------
  def refresh_mover(modo)
    d1 = 2.0 * Math::PI / @item_max
    d2 = d1 / DurMov
    d2 *= -1 if modo != 0
    for i in 0...@item_max
      j = i - @indice
      d = d1 * j + d2 * @passos
      x = @cx + ( RaioAnel * Math.sin( d ) ).to_i
      y = @cy - ( RaioAnel * Math.cos( d ) ).to_i
      desenha_item(x, y, i)
    end
    @passos -= 1
    if @passos < 1
      @modo = ModoEsp
    end
  end
  #--------------------------------------------------------------------------
  # Desenha o icone
  #--------------------------------------------------------------------------
  def desenha_item(x, y, i)
    if @indice == i
      self.cursor_rect.set(x-4, y-4, 32, 32)
      draw_icon(@item_icon[i], x, y, @item_hab[i])
    else
      draw_icon(@item_icon[i], x, y, @item_hab[i])
    end
  end
  #--------------------------------------------------------------------------
  # Inicia o menu
  #--------------------------------------------------------------------------
  def inicia_menu
    @modo = ModoIni
    @passos = DurIni
    if  SE_Inicio != nil and SE_Inicio != ""
      Audio.se_play("Audio/SE/" + SE_Inicio, 80, 100)
    end
  end
  #--------------------------------------------------------------------------
  # Gira o menu
  #--------------------------------------------------------------------------
  def girar(modo)
    if modo == ModoMD
      @indice -= 1
      @indice = @item_hab.size - 1 if @indice < 0
    elsif modo == ModoME
      @indice += 1
      @indice = 0 if @indice >= @item_hab.size
    else
      return
    end
    @modo = modo
    @passos = DurMov
  end
  
end

#==============================================================================
# Scene_Title
#------------------------------------------------------------------------------
# Faz modificacoes nescessarias para a exibicao do nome do mapa
#==============================================================================

class Scene_Title
  alias load_database_old load_database
  def load_database
    load_database_old
    $data_mapinfo = load_data("Data/MapInfos.rvdata")
  end
end

#==============================================================================
# Window_Local
#------------------------------------------------------------------------------
# Cria a janela responsavel pela exibicao do nome do mapa
#==============================================================================

class Window_Local < Window_Base
  #--------------------------------------------------------------------------
  # Inicia o objeto
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 160, 96)
    refresh
  end
  #--------------------------------------------------------------------------
  # Atualiza o objeto
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120, 32, "Local:")
    self.contents.font.color = system_color
    self.contents.draw_text(4, 32, 120, 32, $data_mapinfo[$game_map.map_id].name, 2)
  end
end
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/◆     Attribute Point Stat Distribution - KGC_DistributeParameter     ◆ VX ◆
#_/◇                        Last Update: 2008/04/01                           ◇
#_/◆                 Original translation by Mr. Anonymous                    ◆
#_/◆              Extended annotation and updates by Touchfuzzy               ◆
#_/-----------------------------------------------------------------------------
#_/                       ◆ 2008/04/01 UPDATE ◆
#_/  Added toggle to display actor's AP and position on the status screen, and
#_/   toggle to enable the display of Accuracy, Evasion, and Critical parameters
#_/   on the status screen. Added by Mr. Anonymous
#_/-----------------------------------------------------------------------------
#_/                       ◆ 2008/03/23 UPDATE ◆          
#_/   Updated to latest version of KGC Script.  Fixes a bug in the calculation
#_/     of Max Ap.
#_/-----------------------------------------------------------------------------
#_/                       ◆ 2008/03/10 UPDATE ◆          
#_/   Level-based maximums moved into GAIN_PARAMETERS charts and MAXRP equation
#_/     moved into GAIN_PARAMETERS charts so that it can be changed for each
#_/     character/class by Touchfuzzy.
#_/-----------------------------------------------------------------------------
#_/                       ◆ 2008/03/09 UPDATE ◆          
#_/   Level-based maximums & separate maxes for current status bars
#_/     Added by Touchfuzzy
#_/-----------------------------------------------------------------------------
#_/                       ◆ 2008/03/08 UPDATE ◆
#_/   Updated to the newest KCG version through the efforts of Touchfuzzy,
#_/  which added Class-specific parameter tables and other features/fixes.
#_/=============================================================================
#_/                       ◆ Script Commands ◆
#_/  These commands are used in "Script" function in the third page of event
#_/   commands under "Advanced".
#_/
#_/ * gain_rp(ActorID, Value)
#_/    Increases the MaxRP of a given actor.
#_/
#_/ * reset_distributed_count(ActorID)
#_/    Resets the distributed RP of a given actor.
#_/
#_/ * call_distribute_parameter(ActorID)
#_/    Calls the Distribute Parameter screen for a given actor.
#_/
#_/=============================================================================
#_/ Installation: Insert this script above Main.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_

#==============================================================================#
#                           ★ Customization ★                                  #
#==============================================================================#

module KGC
module DistributeParameter
  #                      ◆ Distribution Tables ◆
  # Here you may customize the costs and increase rates of specific parameters.
  # The order in which these costs and increase rates are set are as follows:
  #                     [IPC, IPSG, MAP, PCI, PSGI, SBM]
  #                                Key:
  # IPC = Initial Point Cost. This is how many AP it cost to buy the first
  #       point of this parameter.
  #
  # IPSG = Initial Point Stat Growth. This is how much the stat will go up with
  #        the first point of this parameter.
  #                                              
  # MAP = Maximum Attribute Points. The maximum amount of AP that can be spent  
  #       on this stat.  You may also put a level based equation in this but
  #       remember that if you put in an equation it is IMPORTANT that you put
  #       quotation marks ("") around it and to use level in all lower case.
  #       Example: "level"
  #
  # PCI = Point Cost Increase.  For every AP spent in this parameter the cost
  #       of this parameter increases by this amount.
  #
  # PSGI = Point Stat Growth Increase.  For every AP spent in this parameter
  #        the number of points you gain in the stat increases by this much.
  #
  #                           A Touchfuzzy Update
  # SBM = Separate Bar Maximum. This will let you use a different maximum for
  #       the bar in the current status section.  Useful if using a level based
  #       MAP and wish to show the bar at max level instead of current.  If
  #       this is omitted the script instead uses the MAP (or the result of the
  #       equation your maximum is based on).
  #
  #   Also, if you completely remove a line (e.g. ":hit => [1, 1, 20, 0.7],")
  #   it will remove it from the distribution screen altogether.
  #   Very useful if your project doesn't require a specific stat.
  
  #                         ◆ AP Gain Rate ◆
  #  I added this in to the GAIN_PARAMETER tables so that you can use seperate
  #  equations for different characters and classes.
  #  This is the equation that determines your total AP gained every level.
  #  (Character Level to the 0.25th power + 2) * Level
  #  This causes you to start at 3 points per level and increase slightly over
  #  time.
  #  As an example if you wish to gain a static 3 points per level write it as
  #  :maxrpexp = "level * 3"
  
  GAIN_PARAMETER = {
    :maxhp => [1, 30, 30, 0.4, 2],    # Maximum HP
    :maxmp => [1,  5, 30, 0.4, 0.5],  # Maximum MP
    :atk   => [1,  2, 30, 0.4, 0.5],  # Attack
    :def   => [1,  2, 30, 0.4, 0.5],  # Defense
    :spi   => [1,  2, 30, 0.4, 0.5],  # Spirit (AKA Intelligence)
    :agi   => [1,  2, 30, 0.4, 0.5],  # Agility
    :hit   => [1,  1, 20, 0.7],       # Hit Percentage (AKA Accuracy)
    :eva   => [1,  1, 20, 0.7],       # Evasion
    :cri   => [1,  1, 20, 0.7],       # Critical
    :maxrpexp => ["(level ** 0.25 + 2.0) * level"]  #Max AP, DO NOT REMOVE
  }
  

  #              ◆ Individual Actor Gain Parameter Tables ◆
    PERSONAL_GAIN_PARAMETER = []  # DO NOT REMOVE

     PERSONAL_GAIN_PARAMETER[1] = {
    :maxhp => [1, 30, 30, 0.4, 2],    # Maximum HP
    :maxmp => [1,  5, 30, 0.4, 0.5],  # Maximum MP
    :atk   => [1,  2, 30, 0.4, 0.5],  # Attack
    :def   => [1,  2, 30, 0.4, 0.5],  # Defense
    :spi   => [0,  0, 0, 0, 0],  # Spirit (AKA Intelligence)
    :agi   => [1,  2, 30, 0.4, 0.5],  # Agility
    :hit   => [1,  1, 20, 0.7],       # Hit Percentage (AKA Accuracy)
    :eva   => [1,  1, 20, 0.7],       # Evasion
    :cri   => [1,  1, 20, 0.7],       # Critical
    :maxrpexp => ["(level ** 0.25 + 2.0) * level"]  #Max AP, DO NOT REMOVE
    }
  #  You may choose to manually specify an individual actor's gain parameters.
  #  To do so, use the same format as above GAIN_PARAMETER table but instead
  #  use PERSONAL_GAIN_PARAMETER [n] (Where n = Actor ID)
  #  Any parameter you do not set in this table will instead draw from the
  #  GAIN_PARAMETER chart.
  #
  #  Example:
  # PERSONAL_GAIN_PARAMETER[1] = {
  # :maxhp => [2, 20, 50, 0.5,   5],    
  # :maxmp => [1, 10, 30, 0.3, 0.5],  
  # :atk   => [1,  1, 30, 0.3, 0.5],  
  # :def   => [1,  2, 30, 0.4, 0.5],  
  # :spi   => [1,  2, 50, 0.5, 0.8],  
  # :agi   => [1,  2, 30, 0.4, 0.6],  
  # :hit   => [1,  1, 20, 0.7],      
  # :eva   => [1,  1, 20, 0.7],      
  # :cri   => [1,  1, 20, 0.7],      
  # :maxrpexp => ["(level ** 0.25 + 2.0) * level"]
  # }
  
  #               ◆ Class-Specific Gain Parameter Tables ◆
    CLASS_GAIN_PARAMETER = [] # DO NOT REMOVE

  #  You may choose to manually specify an entire class's gain parameters.
  #  To do so, use the same format as above GAIN_PARAMETER table but instead
  #  use CLASS_GAIN_PARAMETER [n] (Where n = Number of class in the database)
  #  Any parameter you do not set in this table will instead draw from the
  #  GAIN_PARAMETER chart.
  
  # ◆ AP = Attribute Points. These settings are for the AP Distrubution Screen.
  #  VOCAB_RP appears at the top of the column which lists the AP cost of
  #  the parameter
  VOCAB_RP   = "Cost"

  # VOCAB_RP_A appears next to where it lists your current and total AP.
  VOCAB_RP_A = "AP"

  #                        ◆ Extended Vocabulary ◆
  #  Allows you to change the text of Hit Ratio, Evasion, and Critical on the
  #   distribution screen.
  VOCAB_PARAM = {
    :hit => "ACU",       # Hit Ratio
    :eva => "EVA",        # Evasion
    :cri => "CRI",        # Criticals
  }
  #  Text of the menu title for the AP Distribution Screen.
  DISTRIBUTE_SCENE_CAPTION = "Attribute Distribution - Press L or R to change characters."

  #  Allows you to change the color of the guages that appear under the stats
  #   side bar. The color can also be determined by a numerical expression.
  #  Example: GAUGE_START_COLOR = Color.new(255, 0, 0)  <- This is red.
  #  This is the fill color for the early phase of the guage.
  GAUGE_START_COLOR = 28
  #  This is the fill color for the late phase of the guage. (When full)
  GAUGE_END_COLOR   = 29

  #                   ◆ Menu Command Button & Text ◆
  #  When USE_MENU_DISTRIBUTE_PARAMETER_COMMAND = true,
  #  the AP Distribution System is added to the menu under "Quit Game".
  #  When false, it does not. (Obviously)
  USE_MENU_DISTRIBUTE_PARAMETER_COMMAND = true
  #  Allows you to change the text for this button on the main command menu.
  VOCAB_MENU_DISTRIBUTE_PARAMETER       = "Level Up"
  
  #                    ◆ Parameter Re-distribution ◆
  #  This affects whether the player can delevel the parameters that have
  #  been increased.
  #  true  : Allows the player to reassign AP.
  #  false : Prevents the player from unassigning AP if set to false.
  ENABLE_REVERSE_DISTRIBUTE = false
  
  #                        ◆ AP in Status Window ◆
  # The following four features have been scripted by Mr. Anonymous.
  #  This toggle allows you to enable/disable the AP display on the status
  #   screen.
  SHOW_STATUS_RP = true
  #  This toggle allows you to adjust the position of the AP display on the
  #   status screen. (If SHOW_STATUS_RP = true)
  #  0. Below Actor's Face Image
  #  1. Below Actor's Parameters
  SHOW_STATUS_RP_POS = 1
  
  #                   ◆ Extra Parameters in Status Window ◆
  #  This toggle allows you to enable/disable the parameters for accuracy,
  #   evasion, and critical below the regular paramaters (STR, DEF, SPI, AGI)
  SHOW_STATUS_EX_PARAMS = true
  
  #              ◆ Call DistributeParameter from the Status Window ◆
  #  This allows you to change what key/button is pressed on the status window
  #   to shift to the DistributeParameter window.
  #  When set to nil, this is disabled. ( CALL_DISTPARAMKEY = Input::nil )
  CALL_DISTPARAMKEY = Input::X   # On the keyboard, button X is the A key.
  
end
end

#------------------------------------------------------------------------------#

$imported = {} if $imported == nil
$imported["DistributeParameter"] = true

module KGC::DistributeParameter
  PARAMS = [:maxhp, :maxmp, :atk, :def, :spi, :agi, :hit, :eva, :cri]
end

#==============================================================================
# ■ Vocab
#==============================================================================

module Vocab

  def self.hit
    return KGC::DistributeParameter::VOCAB_PARAM[:hit]
    return $data_system.terms.hit    # Added 4/1/08
  end

  def self.eva
    return KGC::DistributeParameter::VOCAB_PARAM[:eva]
    return $data_system.terms.eva    # Added 4/1/08
  end

  def self.cri
    return KGC::DistributeParameter::VOCAB_PARAM[:cri]
    return $data_system.terms.cri    # Added 4/1/08
  end

  def self.rp
    return KGC::DistributeParameter::VOCAB_RP
  end

  def self.rp_a
    return KGC::DistributeParameter::VOCAB_RP_A
  end

  def self.distribute_parameter
    return KGC::DistributeParameter::VOCAB_MENU_DISTRIBUTE_PARAMETER
  end
end

#==============================================================================
# □ KGC::Commands
#==============================================================================

module KGC::Commands
  module_function

  def check_distribution_values
    (1...$data_actors.size).each { |i|
      actor = $game_actors[i]
      actor.check_distribution_values
      actor.calc_distribution_values
    }
  end

  def gain_rp(actor_id, value)
    actor = $game_actors[actor_id]
    return if actor == nil
    actor.gain_rp(value)
  end

  def reset_distributed_count(actor_id)
    actor = $game_actors[actor_id]
    return if actor == nil
    actor.clear_distribution_values
    actor.calc_distribution_values
  end

  def call_distribute_parameter(actor_index = 0)
    return if $game_temp.in_battle
    $game_temp.next_scene = :distribute_parameter
    $game_temp.next_scene_actor_index = actor_index
  end
end

class Game_Interpreter
  include KGC::Commands
end

#==============================================================================
# ■ Game_Battler
#==============================================================================

class Game_Battler

  alias clear_extra_values_KGC_DistributeParameter clear_extra_values
  def clear_extra_values
    clear_extra_values_KGC_DistributeParameter

    clear_distribution_values
    calc_distribution_values
  end

  def clear_distribution_values
    @distributed_count = {}
    KGC::DistributeParameter::PARAMS.each { |param|
      @distributed_count[param] = 0
    }
  end

  def check_distribution_values
    last_distributed_count = @distributed_count

    clear_distribution_values

    @distributed_count = last_distributed_count if last_distributed_count !=

nil
  end

  def calc_distribution_values

  end
end

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

class Game_Actor < Game_Battler

  alias initialize_KGC_DistributeParameter initialize
  def initialize(actor_id)
    @actor_id = actor_id
    @class_id = $data_actors[actor_id].class_id
    initialize_KGC_DistributeParameter(actor_id)
  end

  def gain_parameter_list
    result = KGC::DistributeParameter::GAIN_PARAMETER
    list = KGC::DistributeParameter::PERSONAL_GAIN_PARAMETER[self.id]
    result = result.merge(list) if list != nil
    list = KGC::DistributeParameter::CLASS_GAIN_PARAMETER[self.class_id]
    result = result.merge(list) if list != nil
    return result
  end

  def calc_distribution_values
    @rp_cost = 0
    @distributed_param = {}
    gain_parameter_list.each { |k, v|
      next if v == nil
      cost = 0
      param = 0
      distributed_count(k).times { |i|
        cost_plus   = v[0]
        cost_plus  += v[3] * i if v[3] != nil
        param_plus  = v[1]
        param_plus += v[4] * i if v[4] != nil
        cost  += Integer(cost_plus)
        param += Integer(param_plus)
      }
      @rp_cost += [cost, 0].max
      @distributed_param[k] = param
    }
  end

  def distributed_param(param)
    return 0 if @distributed_param == nil
    return 0 if @distributed_param[param] == nil
    return @distributed_param[param]
  end

  alias base_maxhp_KGC_DistributeParameter base_maxhp
  def base_maxhp
    n = base_maxhp_KGC_DistributeParameter + distributed_param(:maxhp)
    return n
  end

  alias base_maxmp_KGC_DistributeParameter base_maxmp
  def base_maxmp
    n = base_maxmp_KGC_DistributeParameter + distributed_param(:maxmp)
    return n
  end

  alias base_atk_KGC_DistributeParameter base_atk
  def base_atk
    n = base_atk_KGC_DistributeParameter + distributed_param(:atk)
    return n
  end

  alias base_def_KGC_DistributeParameter base_def
  def base_def
    n = base_def_KGC_DistributeParameter + distributed_param(:def)
    return n
  end

  alias base_spi_KGC_DistributeParameter base_spi
  def base_spi
    n = base_spi_KGC_DistributeParameter + distributed_param(:spi)
    return n
  end

  alias base_agi_KGC_DistributeParameter base_agi
  def base_agi
    n = base_agi_KGC_DistributeParameter + distributed_param(:agi)
    return n
  end

  alias hit_KGC_DistributeParameter hit
  def hit
    n = hit_KGC_DistributeParameter + distributed_param(:hit)
    return n
  end

  alias eva_KGC_DistributeParameter eva
  def eva
    n = eva_KGC_DistributeParameter + distributed_param(:eva)
    return n
  end

  alias cri_KGC_DistributeParameter cri
  def cri
    n = cri_KGC_DistributeParameter + distributed_param(:cri)
    return n
  end

  def maxrp
    gain = gain_parameter_list[:maxrpexp]
    n = Integer(eval(gain[0]))
    return [n + maxrp_plus, 0].max
  end

  def maxrp_plus
    @maxrp_plus = 0 if @maxrp_plus == nil
    return @maxrp_plus
  end

  def rp
    return [maxrp - @rp_cost, 0].max
  end

  def distributed_count(param)
    clear_distribution_values if @distributed_count == nil
    @distributed_count[param] = 0 if @distributed_count[param] == nil
    return @distributed_count[param]
  end

  def gain_rp(value)
    @maxrp_plus = maxrp_plus + value
  end

  def gain_distributed_count(param, value = 1)
    n = distributed_count(param)
    @distributed_count[param] += value if n.is_a?(Integer)
  end

  def rp_growth_effect(param, reverse = false)
    gain = gain_parameter_list[param]
    return if gain == nil

    if reverse
      return if distributed_count(param) == 0
    else
      return unless can_distribute?(param)
    end

    gain_distributed_count(param, reverse ? -1 : 1)
    calc_distribution_values
  end

  def can_distribute?(param)
    gain = gain_parameter_list[param]
    return false if gain == nil
    return false if self.rp < distribute_cost(param)
    return false if gain[2] <= distributed_count(param)

    return true
  end

  def distribute_cost(param)
    gain = gain_parameter_list[param]
    return 0 if gain == nil

    n = gain[0]
    n += gain[3] * distributed_count(param) if gain[3] != nil
    return [Integer(n), 0].max
  end

  def distribute_gain(param)
    gain = gain_parameter_list[param]
    return 0 if gain == nil

    n = gain[1]
    n += gain[4] * distributed_count(param) if gain[4] != nil
    return Integer(n)
  end
end

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window

  def rp_color(actor)
    return (actor.rp == 0 ? knockout_color : normal_color)
  end

  def distribute_gauge_color1
    color = KGC::DistributeParameter::GAUGE_START_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end

  def distribute_gauge_color2
    color = KGC::DistributeParameter::GAUGE_END_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end

  def draw_actor_rp(actor, x, y, width = 120)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 40, WLH, Vocab::rp_a)
    self.contents.font.color = rp_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.rp, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.rp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxrp, 2)
    end
    self.contents.font.color = normal_color
  end

  def draw_actor_distribute_gauge(actor, param, x, y, width = 120)
    gain = actor.gain_parameter_list[param]
    return if gain == nil
    if gain[5] == nil
      n = 2
    else
      n = 5
    end
    gw = width * actor.distributed_count(param) / [gain[n], 1].max
    gc1 = distribute_gauge_color1
    gc2 = distribute_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
  #==========================================================================
  #   Added by Mr. Anonymous ( 4/1/08 )
  # Sets up the initial parameters and the entended/extra parameters.
  #==========================================================================
  if KGC::DistributeParameter::SHOW_STATUS_EX_PARAMS
    alias draw_actor_parameter_KGC_DistributeParameter draw_actor_parameter
    def draw_actor_parameter(actor, x, y, type)
      case type
        when 0
          parameter_name = Vocab::atk
          parameter_value = actor.atk
        when 1
          parameter_name = Vocab::def
          parameter_value = actor.def
        when 2
          parameter_name = Vocab::spi
          parameter_value = actor.spi
        when 3
          parameter_name = Vocab::agi
          parameter_value = actor.agi
        when 4
          parameter_name = Vocab::hit
          parameter_value = actor.hit
        when 5
          parameter_name = Vocab::eva
          parameter_value = actor.eva
        when 6
          parameter_name = Vocab::cri
          parameter_value = actor.cri
       end
       self.contents.font.color = system_color
       self.contents.draw_text(x, y, 120, WLH, parameter_name)
       self.contents.font.color = normal_color
       self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2)
     end
  end
end

#==============================================================================
# ■ Window_Command
#==============================================================================

class Window_Command < Window_Selectable
  unless method_defined?(:add_command)

  def add_command(command)
    @commands << command
    @item_max = @commands.size
    item_index = @item_max - 1
    refresh_command
    draw_item(item_index)
    return item_index
  end

  def refresh_command
    buf = self.contents.clone
    self.height = [self.height, row_max * WLH + 32].max
    create_contents
    self.contents.blt(0, 0, buf, buf.rect)
    buf.dispose
  end

  def insert_command(index, command)
    @commands.insert(index, command)
    @item_max = @commands.size
    refresh_command
    refresh
  end

  def remove_command(command)
    @commands.delete(command)
    @item_max = @commands.size
    refresh
  end
end
end

#==============================================================================
# ■ Window_Status
#==============================================================================
# Added by Mr. Anonymous  ( 4/1/08 )
# Checks SHOW_STATUS_RP's value, if true RP is added to Status Window.
#==============================================================================
if KGC::DistributeParameter::SHOW_STATUS_RP
  class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # ● Draw RP in Status Window
  #     x : Width X - 128 (beneath actor face)
  #     y : Hight Y (On row + Window_Status Definition)
  #--------------------------------------------------------------------------
    alias draw_basic_info_KGC_DistributeParameter draw_basic_info
    def draw_basic_info(x, y)
      draw_basic_info_KGC_DistributeParameter(x, y)
      # Checks SHOW_STATUS_RP_POS, if 0, RP is shown beneath face of actor.
      if KGC::DistributeParameter::SHOW_STATUS_RP_POS == 0
         draw_actor_rp(@actor, x - 129, y + WLH * 4)
       end
      # If 1, RP is shown under parameters. (Centered)
      if KGC::DistributeParameter::SHOW_STATUS_RP_POS == 1
         draw_actor_rp(@actor, x - 80, y + WLH * 13)
      end
    end
  end
end
  #--------------------------------------------------------------------------
  # ● Draw Extra (Normally Hidden) Parameters in Status Window
  #     x : Width X - 128 (beneath actor face)
  #     y : Hight Y (On row + Window_Status Definition)
  # Added by Mr. Anonymous  ( 4/1/08 )
  #--------------------------------------------------------------------------
if KGC::DistributeParameter::SHOW_STATUS_EX_PARAMS
  class Window_Status < Window_Base
    alias draw_parameters_KCG_DistributeParameter draw_parameters
    def draw_parameters(x, y)
       draw_actor_parameter(@actor, x, y + WLH * 0, 0)
       draw_actor_parameter(@actor, x, y + WLH * 1, 1)
       draw_actor_parameter(@actor, x, y + WLH * 2, 2)
       draw_actor_parameter(@actor, x, y + WLH * 3, 3)
       draw_actor_parameter(@actor, x, y + WLH * 4, 4)
       draw_actor_parameter(@actor, x, y + WLH * 5, 5)
       draw_actor_parameter(@actor, x, y + WLH * 6, 6)
     end
  end
end

#==============================================================================
# □ Window_DistributeParameterActor
#==============================================================================

class Window_DistributeParameterActor < Window_Base

  def initialize(x, y, actor)
    super(x, y, Graphics.width, WLH + 32)
    @actor = actor
    refresh
  end

  def refresh
    self.contents.clear
    draw_actor_name(@actor, 4, 0)
    draw_actor_level(@actor, 140, 0)
    draw_actor_rp(@actor, 240, 0)
  end
end

#==============================================================================
# □ Window_DistributeParameterList
#==============================================================================

class Window_DistributeParameterList < Window_Selectable

  def initialize(actor)
    off_h = (WLH + 32) * 2
    super(0, off_h, Graphics.width / 2 + 80, Graphics.height - off_h)
    @actor = actor
    refresh
    self.index = 0
  end

  def parameter_symbol
    return @data[self.index]
  end

  def refresh
    @data = []
    gain_params = @actor.gain_parameter_list
    KGC::DistributeParameter::PARAMS.each { |param|
      next if gain_params[param] == nil
      @data << param
    }
    @item_max = @data.size
    create_contents
    draw_caption
    @item_max.times { |i| draw_item(i, @actor.can_distribute?(@data[i])) }
  end

  def item_rect(index)
    rect = super(index)
    rect.y += WLH
    return rect
  end

  def draw_caption
    self.contents.font.color = system_color
  # This is shown at the top of the column that lists the stats.
    self.contents.draw_text(  4, 0, 96, WLH, "Attribute")
    self.contents.draw_text(120, 0, 40, WLH, Vocab.rp, 2)
  # This is shown at the top of the column that lists the number of stat points
  #   you will gain from buying the next point of the parameter.
    self.contents.draw_text(170, 0, 60, WLH, "Rate", 2)
  # This is shown at the top of the column that lists the current and max
  #   points you have in each parameter.
    self.contents.draw_text(240, 0, 80, WLH, "Spent", 2)
    self.contents.font.color = normal_color
  end

  def draw_item(index, enabled = true)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index]
    if item != nil
      draw_parameter(rect.x, rect.y, @data[index], enabled)
    end
  end

  def draw_parameter(x, y, type, enabled)
    case type
    when :maxhp
      name  = Vocab.hp
    when :maxmp
      name  = Vocab.mp
    when :atk
      name  = Vocab.atk
    when :def
      name  = Vocab.def
    when :spi
      name  = Vocab.spi
    when :agi
      name  = Vocab.agi
    when :hit
      name  = Vocab.hit
    when :eva
      name  = Vocab.eva
    when :cri
      name  = Vocab.cri
    else
      return
    end

    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(x + 4, y, 96, WLH, name)

    gain = @actor.gain_parameter_list[type]
    value = @actor.distribute_cost(type)
    self.contents.draw_text(x + 120, y, 40, WLH, value, 2)
    value = sprintf("%+d", @actor.distribute_gain(type))
    self.contents.draw_text(x + 190, y, 40, WLH, value, 2)
    value = sprintf("%3d/%3d", @actor.distributed_count(type), gain[2])
    self.contents.draw_text(x + 236, y, 80, WLH, value, 2)
    self.contents.font.color = normal_color
  end
end

#==============================================================================
# □ Window_DistributeParameterStatus
#==============================================================================

class Window_DistributeParameterStatus < Window_Base

  def initialize(actor)
    dx = Graphics.width / 2 + 80
    off_h = (WLH + 32) * 2
    super(dx, off_h, Graphics.width - dx, Graphics.height - off_h)
    @actor = actor
    refresh
  end

  def refresh
    self.contents.clear
    self.contents.font.color = system_color
  # This allows you to change the text that appears on top of the right panel
  #  which contains current parameter changes.
    self.contents.draw_text(0, 0, width - 32, WLH, "Current Status", 1)
    self.contents.font.color = normal_color
    dy = WLH
    gain_params = @actor.gain_parameter_list
    KGC::DistributeParameter::PARAMS.each { |param|
      next if gain_params[param] == nil
      draw_parameter(0, dy, param)
      dy += WLH
    }
  end

  def draw_parameter(x, y, type)
    case type
    when :maxhp
      name  = Vocab.hp
      value = @actor.maxhp
    when :maxmp
      name  = Vocab.mp
      value = @actor.maxmp
    when :atk
      name  = Vocab.atk
      value = @actor.atk
    when :def
      name  = Vocab.def
      value = @actor.def
    when :spi
      name  = Vocab.spi
      value = @actor.spi
    when :agi
      name  = Vocab.agi
      value = @actor.agi
    when :hit
      name  = Vocab.hit
      value = @actor.hit
    when :eva
      name  = Vocab.eva
      value = @actor.eva
    when :cri
      name  = Vocab.cri
      value = @actor.cri
    else
      return
    end
    draw_actor_distribute_gauge(@actor, type, x + 106, y, 48)
    self.contents.font.color = system_color
    self.contents.draw_text(x + 4, y, 96, WLH, name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 106, y, 48, WLH, value, 2)
  end
end

#==============================================================================
# ■ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base

  alias update_scene_change_KGC_DistributeParameter update_scene_change
  def update_scene_change
    return if $game_player.moving?

    if $game_temp.next_scene == :distribute_parameter
      call_distribute_parameter
      return
    end

    update_scene_change_KGC_DistributeParameter
  end

  def call_distribute_parameter
    $game_temp.next_scene = nil
    $scene = Scene_DistributeParameter.new(
      $game_temp.next_scene_actor_index,
      0,
      Scene_DistributeParameter::HOST_MAP)
  end
end

#==============================================================================
# ■ Scene_Menu
#==============================================================================

class Scene_Menu < Scene_Base
  if KGC::DistributeParameter::USE_MENU_DISTRIBUTE_PARAMETER_COMMAND

  alias update_command_selection_KGC_DistributeParameter update_command_selection
  def update_command_selection
    call_distribute_parameter_flag = false
    if Input.trigger?(Input::C)
      case @ring_menu.indice
      when 4
        call_distribute_parameter_flag = true
      end
    end
    if call_distribute_parameter_flag
      if $game_party.members.size == 0
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      start_actor_selection
      return
    end
    update_command_selection_KGC_DistributeParameter
  end

  alias update_actor_selection_KGC_DistributeParameter update_actor_selection
  def update_actor_selection
    if Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @ring_menu.indice
      when 4
        $scene = Scene_DistributeParameter.new(
          @status_window.index,4,
          Scene_DistributeParameter::HOST_MENU)
        return
      end
    end
    update_actor_selection_KGC_DistributeParameter
  end
  end
end

#==============================================================================
# □ Scene_DistributeParameter
#==============================================================================

class Scene_DistributeParameter < Scene_Base

  HOST_MENU   = 0
  HOST_MAP    = 1

  def initialize(actor_index = 0, menu_index = 0, host_scene = HOST_MENU)
    @actor_index = actor_index
    @menu_index = menu_index
    @host_scene = host_scene
  end

  def start
    super
    create_menu_background

    @actor = $game_party.members[@actor_index]
    create_windows
  end

  def create_windows
    @help_window = Window_Help.new
    @help_window.set_text(KGC::DistributeParameter::DISTRIBUTE_SCENE_CAPTION)
    dy = @help_window.height
    @actor_window = Window_DistributeParameterActor.new(0, dy, @actor)
    @parameter_window = Window_DistributeParameterList.new(@actor)
    @status_window = Window_DistributeParameterStatus.new(@actor)
  end

  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @actor_window.dispose
    @parameter_window.dispose
    @status_window.dispose
  end

  def return_scene
    case @host_scene
    when HOST_MENU
      $scene = Scene_Menu.new(@menu_index)
    when HOST_MAP
      $scene = Scene_Map.new
    end
  end

  def update
    super
    update_menu_background
    update_window
    if @parameter_window.active
      update_parameter_list
    end
  end

  def update_window
    @help_window.update
    @actor_window.update
    @parameter_window.update
    @status_window.update
  end

  def refresh_window
    @actor_window.refresh
    @parameter_window.refresh
    @status_window.refresh
    Graphics.frame_reset
  end

  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_DistributeParameter.new(@actor_index,
      @menu_index, @host_scene)
  end

  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    $scene = Scene_DistributeParameter.new(@actor_index,
      @menu_index, @host_scene)
  end

  def update_parameter_list
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif input_growth?
      param = @parameter_window.parameter_symbol
      unless @actor.can_distribute?(param)
        Sound.play_buzzer
        return
      end
      Input.repeat?(Input::C) ? Sound.play_decision : Sound.play_cursor
      @actor.rp_growth_effect(param)
      refresh_window
    elsif input_reverse_growth?
      param = @parameter_window.parameter_symbol
      if @actor.distributed_count(param) == 0
        Sound.play_buzzer
        return
      end
      Input.repeat?(Input::A) ? Sound.play_decision : Sound.play_cursor
      @actor.rp_growth_effect(param, true)
      refresh_window
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    end
  end

  def input_growth?
    if KGC::DistributeParameter::ENABLE_REVERSE_DISTRIBUTE
      return Input.repeat?(Input::C) || Input.repeat?(Input::RIGHT)
    else
      return Input.trigger?(Input::C)
    end
  end

  def input_reverse_growth?
    if KGC::DistributeParameter::ENABLE_REVERSE_DISTRIBUTE
      return Input.repeat?(Input::A) || Input.repeat?(Input::LEFT)
    else
      return false
    end
  end
end

#==============================================================================
# ■ Scene_File
#==============================================================================

class Scene_File < Scene_Base

  alias read_save_data_KGC_DistributeParameter read_save_data
  def read_save_data(file)
    read_save_data_KGC_DistributeParameter(file)

    KGC::Commands.check_distribution_values
    Graphics.frame_reset
  end
end

#==============================================================================
# ■ Scene_Status
#==============================================================================
# Added by Mr. Anonymous
#==============================================================================
class Scene_Status < Scene_Base
  #--------------------------------------------------------------------------
  # ? Update Actor
  #--------------------------------------------------------------------------
    alias update_KGC_DistributeParameter update
    def update
      if KGC::DistributeParameter::CALL_DISTPARAMKEY != nil &&
         Input.trigger?(KGC::DistributeParameter::CALL_DISTPARAMKEY)
         Sound.play_decision
         $scene = Scene_DistributeParameter.new(@actor_index)#,@menu_index,@host_scene
      end
     update_KGC_DistributeParameter
   end
end

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/  The original untranslated version of this script can be found here:
# http://f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/php/tech.php?tool=VX&cat=tech_vx/special_system&tech=distribute_parameter
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_



Replace both KGC script and ring menu script with this script that I post

cheers, puppeto4. wink.gif


__________________________
how make teleport to graveyard then your character die?

AWAY FOR VACATION.
NOT HERE UNTIL JAN/FEB 2010 -w-/
Go to the top of the page
 
+Quote Post
   
Protoman5801
post Jun 23 2008, 11:01 AM
Post #18


Level 3
Group Icon

Group: Member
Posts: 33
Type: None
RM Skill: Undisclosed




Nice work! I think it looks real cool.


__________________________
[Show/Hide] Cool thingy I made


[Show/Hide] Can you read this?
Cna yuo raed tihs? Olny 55% of plepoe can.
I cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg. The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it dseno't mtaetr in waht oerdr the ltteres in a wrod are, the olny iproamtnt tihng is taht the frsit and lsat ltteer be in the rghit pclae. The rset can be a taotl mses and you can sitll raed it whotuit a pboerlm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Azanmig huh? yaeh and I awlyas tghuhot slpeling was ipmorantt!
fi yuo cna raed tihs, palce it in yuor siantugre.



Signature made by me with GIMP
Go to the top of the page
 
+Quote Post
   
kingoftheroad
post Jun 23 2008, 11:10 AM
Post #19


Level 4
Group Icon

Group: Member
Posts: 49
Type: Mapper
RM Skill: Advanced




Told you it fitted didnt i:)

Vote mozilla!
bomb_ie.gif


__________________________
Go to the top of the page
 
+Quote Post
   
yayfunhappy
post Jun 23 2008, 11:13 AM
Post #20


Level 2
Group Icon

Group: Member
Posts: 17
Type: None
RM Skill: Skilled




[size="7"][/size]AWESOME!
THANKS!


This post has been edited by yayfunhappy: Jun 23 2008, 11:14 AM


__________________________
If I had a dollar for every smart person I met, I'd be in debt.
Go to the top of the page
 
+Quote Post
   

2 Pages V   1 2 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 18th May 2013 - 09:19 AM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker