Jump to content
Rpg²S Forum

Soulsmoke

Utenti
  • Posts

    8
  • Joined

  • Last visited

Posts posted by Soulsmoke

  1. Scene_file no, Scene_save ho cambiato solo il nome, cioè la domanda che ti fa quando salvi. Che dovrei fare?

     

    Scusate il doppio post, ma anche Scene_save è rimasto intatto...

    l'errore che mi fa quando avvio il gioco è:

    Errore di script'SDK_1' sulla linea 2079 del tipo 'TypeError'

    undefined superclass 'Scene_file'

     

    Che significa???

  2. Salve, su un forum di rpg ho trovato questo script, cioè serve per mettere le abilità nelle armi come FF IX:

    #==============================================================================
    # ** Equipment Skills
    #------------------------------------------------------------------------------
    # SephirothSpawn
    # 2006-04-13
    # Version 2.01
    #------------------------------------------------------------------------------
    # * Instructions
    #
    #   ~ Skill Learning Types (Choose 1, or neither for cannot learn)
    #	 - Learn_By_Level = true (On) or false (Off)
    #	 - Learn_By_AP = true (On) or false (Off)
    #
    #   ~ Disabling Moves Until Learned
    #	 - Disable_Until_Learned = true (On) or false (Off)
    #	 - Only Required For Learn By AP
    #
    #   ~ Learn One Skill At A Time
    #	 - Learn_One_Skill = true (On) or false (Off)
    #
    #   ~ Victory Window Options
    #	 - Show Victory Window
    #	   Show_Victory_Skills = true (On) or false (Off)
    #	 - Show Only Newly Mastered Skills
    #	   Show_Only_Mastered = true (On) or false (Off)
    #
    #   ~ Enemy AP Values
    #	 - Default_Enemy_AP = Default Enemy AP
    #	 - Enemy_AP_Values = { enemy_id => ap given, ... }
    #
    #   ~ Weapon Skills & Armor Skills
    #	 - Weapon_Skills or Armor_Skills
    #	 - = { equipment_id => { skill_id => Ap or Level Required, ... }, ... }
    #------------------------------------------------------------------------------
    # ~ One Skill At a Time Feature Requires 
    #	 Near Fantastica's Keyboard Input Module
    #==============================================================================
    
    #------------------------------------------------------------------------------
    # * SDK Log Script
    #------------------------------------------------------------------------------
    SDK.log('Equipment Skills', 'SephirothSpawn', 1, '2006-03-12')
    
    #------------------------------------------------------------------------------
    # * Begin SDK Enable Test
    #------------------------------------------------------------------------------
    if SDK.state('Equipment Skills') == true
    
    #==============================================================================
    # ** Equipment_Skills
    #==============================================================================
    
    module Equipment_Skills
     #--------------------------------------------------------------------------
     # * Learning Types
     #   (If Both are false, you cannot learn skills)
     #--------------------------------------------------------------------------
     Learn_By_Level = false
     Learn_By_AP = true
     #--------------------------------------------------------------------------
     # * Disable Until Learned
     #--------------------------------------------------------------------------
     Disable_Until_Learned = false
     #--------------------------------------------------------------------------
     # * Only Learn One Skill at a time
     #   (Must assign the current skill each time)
     #--------------------------------------------------------------------------
     Learn_One_Skill = false
     #--------------------------------------------------------------------------
     # * Show Victory Skills Window after Battle
     # * Show Only Newly Learned Skills
     #--------------------------------------------------------------------------
     Show_Victory_Skills = false
     Show_Only_Mastered = true
     #--------------------------------------------------------------------------
     # * Default AP Given By Enemy
     #--------------------------------------------------------------------------
     Default_Enemy_AP = 1
     #--------------------------------------------------------------------------
     # * Assigned AP for enemies
     #   ~ enemy_id => ap
     #--------------------------------------------------------------------------
     Enemy_AP_Values = {
       1 => 3
     }
     #--------------------------------------------------------------------------
     # * Weapon Skills
     #   ~ weapon_id => { skill_id, required_ap }
     #--------------------------------------------------------------------------
     Weapon_Skills = {
       1 => { 57 => 25, 58 => 50, 59 => 100, 60 => 200 },
       5 => { 61 => 25, 62 => 50, 63 => 100, 64 => 200 },
       25 => { 73 => 25, 74 => 50, 75 => 100, 76 => 200 },
       29 => { 77 => 25, 78 => 50, 79 => 100, 80 => 200 }
     }
     #--------------------------------------------------------------------------
     # * Armor Skills
     #   ~ armor_id => { skill_id, required_ap }
     #--------------------------------------------------------------------------
     Armor_Skills = {
       1 => { 1 => 30, 4 => 40 },
       5 => { 55 => 50 },
       9 => { 33 => 25, 35 => 60 },
       13 => { 56 => 60 },
       17 => { 56 => 50 },
       21 => { 37 => 25, 39 => 60 },
       25 => { 53 => 35 },
       26 => { 54 => 50 },
       29 => { 7 => 25, 8 => 50, 9 => 100 },
       30 => { 10 => 25, 11 => 50, 12 => 100 }
     }
    end
    
    #==============================================================================
    # ** Game_Actor
    #==============================================================================
    
    class Game_Actor < Game_Battler
     #--------------------------------------------------------------------------
     # * Public Instance Variables
     #--------------------------------------------------------------------------
     attr_accessor :skill_ap_totals
     attr_accessor :weapon_skill_target
     attr_accessor :armor1_skill_target
     attr_accessor :armor2_skill_target
     attr_accessor :armor3_skill_target
     attr_accessor :armor4_skill_target
     #--------------------------------------------------------------------------
     # * Alias Listings
     #--------------------------------------------------------------------------
     alias seph_weaponskills_gameactor_setup setup
     alias seph_weaponskills_gameactor_equip equip
     alias seph_weaponskills_gameactor_skills skills
     alias seph_weaponskills_gameactor_scu skill_can_use?
     #--------------------------------------------------------------------------
     # * Setup
     #	 actor_id : actor ID
     #--------------------------------------------------------------------------
     def setup(actor_id)
       # Creates Equipment AP 
       @skill_ap_totals = {}
       # Mastered Skills
       @mastered_skills = []
       # Sets Equipment Skill Targets to Nil
       @weapon_skill_target = nil
       @armor1_skill_target = nil
       @armor2_skill_target = nil
       @armor3_skill_target = nil
       @armor4_skill_target = nil
       # Adds In Weapon Skills and AP Amounts
       weapon_skills = Equipment_Skills::Weapon_Skills
       armor_skills = Equipment_Skills::Armor_Skills
       equipment = weapon_skills.values + armor_skills.values
       for skill_data in equipment
    	 for skill_id in skill_data.keys
    	   unless @skill_ap_totals.has_key?(skill_id)
    		 @skill_ap_totals[skill_id] = 0
    	   end
    	 end
       end
       # Original Initialization
       seph_weaponskills_gameactor_setup(actor_id)
     end
     #--------------------------------------------------------------------------
     # * Change Equipment
     #	 equip_type : type of equipment
     #	 id	: weapon or armor ID (If 0, remove equipment)
     #--------------------------------------------------------------------------
     def equip(equip_type, id)
       # Original Equip Method
       seph_weaponskills_gameactor_equip(equip_type, id)
       # Clears Skill Targets
       case equip_type
       when 0  # Weapon
    	 if id == 0 or $game_party.weapon_number(id) > 0
    	   @weapon_skill_target = nil
    	 end
       when 1  # Shield
    	 if id == 0 or $game_party.armor_number(id) > 0
    	   @armor1_skill_target = nil
    	 end
       when 2  # Head
    	 if id == 0 or $game_party.armor_number(id) > 0
    	   @armor2_skill_target = nil
    	 end
       when 3  # Body
    	 if id == 0 or $game_party.armor_number(id) > 0
    	   @armor3_skill_target = nil
    	 end
       when 4  # Accessory
    	 if id == 0 or $game_party.armor_number(id) > 0
    	   @armor4_skill_target = nil
    	 end
       end
     end
     #--------------------------------------------------------------------------
     # * Determine if Skill can be Used
     #	 skill_id : skill ID
     #--------------------------------------------------------------------------
     def skill_can_use?(skill_id)
       if self.skills.include?(skill_id)
    	 return super
       end
       # Original Skill Can use Method
       seph_weaponskills_gameactor_scu(skill_id)
     end
     #--------------------------------------------------------------------------
     # * Skills
     #--------------------------------------------------------------------------
     def skills
       # Gets Previous Skills
       s = seph_weaponskills_gameactor_skills.dup
       # Adds in Equipped Skills
       s << get_current_equipped_skills
       # Adds in Mastered Skills
       s << get_mastered_skills
       # Returns New Skills
       return s.flatten.sort.uniq.dup
     end
     #--------------------------------------------------------------------------
     # * Get Current Equipped Skills
     #--------------------------------------------------------------------------
     def get_current_equipped_skills
       # Returns Empty if Cannot Learn Until Mastered
       return [] if Equipment_Skills::Disable_Until_Learned
       # Creates Skills Array
       skills = []
       # Gets Weapon & Armor Skills Contants
       weapon_skills = Equipment_Skills::Weapon_Skills
       armor_skills = Equipment_Skills::Armor_Skills
       # Checks For Equipped Weapon
       unless @weapon_id == 0
    	 # If Weapon Has Skill
    	 if weapon_skills.has_key?(@weapon_id)
    	   # Adds Weapon Skills
    	   weapon_skills[@weapon_id].each do | skill_id, value |
    		 if Equipment_Skills::Learn_By_Level
    		   unless skills.include?(skill_id)
    			 skills << skill_id if @level >= value
    		   end
    		 else
    		   skills << skill_id unless skills.include?(skill_id)
    		 end
    	   end
    	 end
       end
       # Checks For Equipped Armor
       for i in 1..4
    	 unless (eval "@armor#{i}_id") == 0
    	   # If Armor Has Skill
    	   if armor_skills.has_key?(eval "@armor#{i}_id")
    		 armor_skills[(eval "@armor#{i}_id")].each do | skill_id, value |
    		   if Equipment_Skills::Learn_By_Level
    			 unless skills.include?(skill_id)
    			   skills << skill_id if @level >= value
    			 end
    		   else
    			 skills << skill_id unless skills.include?(skill_id)
    		   end
    		 end
    	   end
    	 end
       end
       # Sends Skills Array
       return skills
     end
     #--------------------------------------------------------------------------
     # * Get Mastered Skills
     #--------------------------------------------------------------------------
     def get_mastered_skills
       # Returns Empty if Cannot Learn Skills
       return [] unless Equipment_Skills::Learn_By_AP
       # Starts Skills Array
       skills = []
       # Gets Weapon & Armor Skills Contants
       weapon_skills = Equipment_Skills::Weapon_Skills
       armor_skills = Equipment_Skills::Armor_Skills
       # Checks for Mastered AP
       for skill_data in weapon_skills.values + armor_skills.values
    	 # Checks Skill Data
    	 skill_data.each do | skill_id, master |
    	   # Unless 0
    	   unless master == 0
    		 # If AP Total is Reached
    		 if @skill_ap_totals[skill_id] == master
    		   # Adds Skills
    		   skills << skill_id unless skills.include?(skill_id)
    		 end
    	   end
    	 end
       end
       # Sends Skills Array
       return skills
     end
     #--------------------------------------------------------------------------
     # * Earn AP
     #--------------------------------------------------------------------------
     def earn_ap(amount = 0)
       # Exits if Cannot Learn Skills or Learns By Level
       return unless Equipment_Skills::Learn_By_AP
       # Gets Weapon & Armor Skills Contants
       weapon_skills = Equipment_Skills::Weapon_Skills
       armor_skills = Equipment_Skills::Armor_Skills
       # Earns Weapon AP
       unless @weapon_id == 0
    	 # If Weapon Has Skills
    	 if weapon_skills.has_key?(@weapon_id)
    	   # If One at a time
    	   if Equipment_Skills::Learn_One_Skill
    		 # If Skill has been Set
    		 unless @weapon_skill_target.nil?
    		   # Gets Current And Max
    		   current = @skill_ap_totals[@weapon_skill_target]
    		   max = weapon_skills[@weapon_id][@weapon_skill_target]
    		   # Increases AP
    		   @skill_ap_totals[@weapon_skill_target] = [current + amount, max].min
    		 end
    	   # If Learn All 
    	   else
    		 weapon_skills[@weapon_id].each do | skill_id, max |
    		   # Gets Current AP
    		   current = @skill_ap_totals[skill_id]
    		   # Increases AP
    		   @skill_ap_totals[skill_id] = [current + amount, max].min
    		 end
    	   end
    	 end
       end
       # Earns Armor AP
       for i in 1..4
    	 # If Armor Equipped
    	 unless (eval "@armor#{i}_id") == 0
    	   # If Armor Has Skills
    	   if armor_skills.has_key?(eval "@armor#{i}_id")
    		 # If One at a time
    		 if Equipment_Skills::Learn_One_Skill
    		   # If Skill has been Set
    		   unless (eval "@armor#{i}_skill_target.nil?")
    			 # Gets Current And Max
    			 current = @skill_ap_totals[(eval "@armor#{i}_skill_target")]
    			 max = armor_skills[(eval "@armor#{i}_id")][(eval "@armor#{i}_skill_target")]
    			 # Increases AP
    			 @skill_ap_totals[(eval "@armor#{i}_skill_target")] = [current + amount, max].min
    		   end
    		 # If Learn All 
    		 else
    		   armor_skills[(eval "@armor#{i}_id")].each do | skill_id, max |
    			 # Gets Current AP
    			 current = @skill_ap_totals[skill_id]
    			 # Increases AP
    			 @skill_ap_totals[skill_id] = [current + amount, max].min
    		   end
    		 end
    	   end
    	 end
       end
     end
     #--------------------------------------------------------------------------
     # * Get Newly Mastered Skills
     #--------------------------------------------------------------------------
     def get_learning_skills
       # Unless Learn By AP
       return [] unless Equipment_Skills::Learn_By_AP
       skills = []
       # Gets Weapon & Armor Skills Contants
       weapon_skills = Equipment_Skills::Weapon_Skills
       armor_skills = Equipment_Skills::Armor_Skills
       unless @weapon_id == 0
    	 if weapon_skills.has_key?(@weapon_id)
    	   weapon_skills[@weapon_id].each do |skill_id, max|
    		 unless max == 0
    		   skills << skill_id unless skills.include?(skill_id)
    		 end
    	   end
    	 end
       end
       for i in 1..4
    	 unless (eval "@armor#{i}_id") == 0
    	   if armor_skills.has_key?(eval "@armor#{i}_id")
    		 armor_skills[(eval "@armor#{i}_id")].each do |skill_id, max|
    		   unless max == 0
    			 skills << skill_id unless skills.include?(skill_id)
    		   end
    		 end
    	   end
    	 end
       end
       return skills.uniq.sort
     end
     #--------------------------------------------------------------------------
     # * Get Newly Mastered Skills
     #--------------------------------------------------------------------------
     def get_newly_mastered_skills
       # Unless Learn By AP
       return [] unless Equipment_Skills::Learn_By_AP
       mastered = []
       for skill_id in get_mastered_skills.dup.uniq.sort
    	 unless @mastered_skills.include?(skill_id)
    	   mastered << skill_id
    	   @mastered_skills << skill_id
    	 end
       end
       return mastered.sort
     end
    end
    
    #==============================================================================
    # ** Window_Base
    #==============================================================================
    
    class Window_Base < Window
     #--------------------------------------------------------------------------
     # Draw Bar
     #--------------------------------------------------------------------------
     def draw_bar(x, y, min, max, width = 152, height = 6,
       bar_color = Color.new(150, 0, 0), end_color = Color.new(255, 255, 60))
       # Draw Background
       self.contents.fill_rect(x, y, width, height, Color.new(50, 50, 50, 255))
       # Draws Bar
       for i in 1..( (min.to_f / max.to_f) * width - 3)
    	 r = bar_color.red * (width - i) / width + end_color.red * i / width
    	 g = bar_color.green * (width - i) / width + end_color.green * i / width
    	 b = bar_color.blue * (width - i) / width + end_color.blue * i / width
    	 a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
    	 self.contents.fill_rect(x + 1 + i, y + 1, 1, height - 2, 
    	   Color.new(r, g, b, a))
       end
     end
    end
    
    #==============================================================================
    # ** Window_Skill
    #==============================================================================
    
    class Window_Skill < Window_Selectable
     #--------------------------------------------------------------------------
     # * Alias Listings
     #--------------------------------------------------------------------------
     alias seph_weaponskills_windskill_drawitem draw_item
     #--------------------------------------------------------------------------
     # * Draw Item
     #	 index : item number
     #--------------------------------------------------------------------------
     def draw_item(index)
       # If Learn By AP
       unless Equipment_Skills::Learn_By_AP
    	 # Original Draw Item Method
    	 seph_weaponskills_windskill_drawitem(index)
    	 return
       end
       # If Equipment Skill
       skill = @data[index]
       # Unless In Battle
       unless $game_temp.in_battle
    	 # If Skill is a Equipment Skill
    	 if @actor.skill_ap_totals.has_key?(skill.id)
    	   # Gets AP
    	   ap = @actor.skill_ap_totals[skill.id]
    	   # Alters Font Properties
    	   self.contents.font.size = 16
    	   self.contents.font.bold = true
    	   # Original Draw Item Method
    	   seph_weaponskills_windskill_drawitem(index)
    	   # Location Coordinate
    	   x, y = 4 + index % 2 * (288 + 32), index / 2 * 32
    	   # Default Max
    	   max = 0
    	   # Searches for Max
    	   for weapon in Equipment_Skills::Weapon_Skills.keys
    		 Equipment_Skills::Weapon_Skills[weapon].each do | skill_id, m |
    		   max = m if skill.id == skill_id
    		 end
    	   end
    	   for armor in Equipment_Skills::Armor_Skills.keys
    		 Equipment_Skills::Armor_Skills[armor].each do | skill_id, m |
    		   max = m if skill.id == skill_id
    		 end
    	   end
    	   # Draws Status Bar
    	   draw_bar(x + 132, y + 10, ap, max, 96, 14)
    	   # Draws Progress
    	   text = ap == max ? 'Mastered' : "#{ap} / #{max}"
    	   temp_font = contents.font.dup
    	   self.contents.font.color = Color.new(0, 0, 0)
    	   self.contents.draw_text(x + 133, y + 1, 92, 32, text, 2)
    	   self.contents.font = temp_font
    	   self.contents.draw_text(x + 132, y, 92, 32, text, 2)
    	 end
    	 return
       end
       # Alters Font Properties
       self.contents.font.size = 22
       self.contents.font.bold = false
       # Original Draw Item Method
       seph_weaponskills_windskill_drawitem(index)
     end
    end
    
    #==============================================================================
    # ** Window_BattleStatus
    #==============================================================================
    
    class Window_BattleStatus < Window_Base
     #--------------------------------------------------------------------------
     # * Refresh Skill Status
     #--------------------------------------------------------------------------
     def refresh_skills_status
       # Unless Can Learn By AP
       unless Equipment_Skills::Learn_By_AP
    	 refresh
    	 return
       end
       # Actors Skills
       @actors_skills = []
       # Alters Windows Contents
       if Equipment_Skills::Show_Only_Mastered
    	 for i in 0...$game_party.actors.size
    	   actor = $game_party.actors[i]
    	   @actors_skills << actor.get_newly_mastered_skills
    	 end
       else
    	 for i in 0...$game_party.actors.size
    	   actor = $game_party.actors[i]
    	   @actors_skills << actor.get_learning_skills
    	 end
       end
       max = 128
       for i in 0..3
    	 max = [max, @actors_skills[i].size * 32 + 32].max
       end
       self.contents = Bitmap.new(width - 32, max)
       # Draws Skill Stuff
       for i in 0...$game_party.actors.size
    	 # Gets Actor
    	 actor = $game_party.actors[i]
    	 actor_x = i * 160 + 4
    	 # Sets Font
    	 self.contents.font.size = 22
    	 self.contents.font.bold = false
    	 # If No Skills
    	 if @actors_skills[i].size == 0
    	   draw_actor_name(actor, actor_x, 0)
    	   draw_actor_hp(actor, actor_x, 32, 120)
    	   draw_actor_sp(actor, actor_x, 64, 120)
    	   if @level_up_flags[i]
    		 self.contents.font.color = normal_color
    		 self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
    	   else
    		 draw_actor_state(actor, actor_x, 96)
    	   end
    	   next
    	 end
    	 # Draws Heading
    	 self.contents.draw_text(actor_x, 0, 120, 32, 'Skill Progress', 1)
    	 # Fixes Font
    	 self.contents.font.size = 14
    	 self.contents.font.bold = true
    	 # Draws Skills
    	 for j in 0...@actors_skills[i].size
    	   y = j * 32 + 32
    	   # Gets AP Amouts
    	   ap = actor.skill_ap_totals[@actors_skills[i][j]]
    	   max = get_max_ap(@actors_skills[i][j])
    	   # Draws Progress
    	   draw_skill_progress(@actors_skills[i][j], ap, max, actor_x, y, 120)
    	 end
       end
     end
     #--------------------------------------------------------------------------
     # * Get Max AP Points
     #--------------------------------------------------------------------------
     def get_max_ap(skill_id)
       for weapon_id in Equipment_Skills::Weapon_Skills.keys
    	 Equipment_Skills::Weapon_Skills[weapon_id].each do |s_id, value|
    	   if s_id == skill_id
    		 return value
    	   end
    	 end
       end
       for armor_id in Equipment_Skills::Armor_Skills.keys
    	 Equipment_Skills::Armor_Skills[armor_id].each do |s_id, value|
    	   if s_id == skill_id
    		 return value
    	   end
    	 end
       end
       return 0
     end
     #--------------------------------------------------------------------------
     # * Draw Skill Progress
     #--------------------------------------------------------------------------
     def draw_skill_progress(skill_id, min, max, x, y, width)
       # Gets Skill
       skill = $data_skills[skill_id]
       # Gets Icon
       bitmap = RPG::Cache.icon(skill.icon_name)
       # Draws Icon
       self.contents.blt(x + 4, y + 4, bitmap, Rect.new(0, 0, 24, 24))
       # Draws Skill Name
       self.contents.draw_text(x + 32, y, width - 32, 16, skill.name)
       # Draws Status Bar
       draw_bar(x + width - 64, y + 16, min, max, 64, 14)
       # Draws Progress
       text = min == max ? 'Mastered' : "#{min} / #{max}"
       self.contents.font.color = Color.new(0, 0, 0)
       self.contents.draw_text(x + width - 63, y + 16, 60, 14, text, 2)
       self.contents.font.color = normal_color
       self.contents.draw_text(x + width - 64, y + 16, 60, 14, text, 2)
     end
    end
    
    #==============================================================================
    # ** Window_BattleResult_AP
    #==============================================================================
    
    class Window_BattleResult_AP < Window_Base
     #--------------------------------------------------------------------------
     # * Object Initialization
     #--------------------------------------------------------------------------
     def initialize(y)
       super(160, y, 320, $game_troop.enemies.size * 24 + 56)
       self.contents = Bitmap.new(width - 32, height - 32)
       self.back_opacity = 160
       self.visible = false
       self.z = 9999
       refresh
     end
     #--------------------------------------------------------------------------
     # * Refresh
     #--------------------------------------------------------------------------
     def refresh
       self.contents.clear
       # Gets Troop ID
       troop_id = $game_temp.battle_troop_id
       # Gets Enemy Ap Value
       enemy_ap_values = Equipment_Skills::Enemy_AP_Values
       # Gets AP Earned
       ap = 0
       for enemy in $data_troops[troop_id].members
    	 enemy = $data_enemies[enemy.enemy_id]
    	 ap += (enemy_ap_values.has_key?(enemy.id) ?
    	   enemy_ap_values[enemy.id] : Equipment_Skills::Default_Enemy_AP)
       end
       # Draws Heading
       self.contents.font.color = system_color
       self.contents.draw_text(16, 0, contents.width - 32, 24, 'AP Aquired:')
       self.contents.draw_text(16, 0, contents.width - 32, 24, ap.to_s, 2)
       # Draws Enemies Names, and AP Given
       self.contents.font.color = normal_color
       enemies = $data_troops[troop_id].members
       for i in 0...enemies.size
    	 enemy = $data_enemies[enemies[i].enemy_id]
    	 self.contents.draw_text(4, i * 24 + 24, 280, 24, enemy.name)
    	 ap = enemy_ap_values.has_key?(enemy.id) ? 
    	   enemy_ap_values[enemy.id] : Equipment_Skills::Default_Enemy_AP
    	 self.contents.draw_text(4, i * 24 + 24, contents.width - 8, 24, 
    	   ap.to_s, 2)
       end
     end
    end
    
    #==============================================================================
    # ** Window_EquipmentSkills
    #==============================================================================
    
    class Window_EquipmentSkills < Window_Base
     #--------------------------------------------------------------------------
     # * Public Instance Variables
     #--------------------------------------------------------------------------
     attr_reader :item_max
     attr_reader :skills
     attr_accessor :target_index
     #--------------------------------------------------------------------------
     # * Object Initialization
     #--------------------------------------------------------------------------
     def initialize
       super(0, 64, 272, 192)
       self.contents = Bitmap.new(width - 32, height - 32)
       self.visible = false
       self.z = 9999
     end
     #--------------------------------------------------------------------------
     # * Refresh
     #--------------------------------------------------------------------------
     def refresh(actor_id, equipment)
       # Gets Actor
       @actor = $game_party.actors[actor_id]
       # Sets Up Skills & Target index
       @skills = []
       @target_index = nil
    
       @item_max = 0
       # Clears & Sets Up Contents 
       self.contents.clear
       self.contents.font.color = system_color
       self.contents.font.size = 22
       self.contents.font.bold = false
       # If No Equipment
       if equipment.nil?
    	 self.contents.draw_text(0, 0, 240, 32, 'Nothing Equipped', 1)
    	 return
       end
       # If Equipment is a item
       if equipment.is_a?(RPG::Item)
    	 self.contents.draw_text(0, 0, 240, 32, 'No Skills for Items', 1)
    	 return
       end
       # Draws Equipment
       bitmap = RPG::Cache.icon(equipment.icon_name)
       self.contents.blt(4, 4, bitmap, Rect.new(0, 0, 24, 24))
       self.contents.draw_text(32, 0, 208, 32, equipment.name, 1)
       # Gets Equipment Skills
       if equipment.is_a?(RPG::Weapon)
    	 equipment_skills = Equipment_Skills::Weapon_Skills.has_key?(equipment.id) ?
    	   Equipment_Skills::Weapon_Skills[equipment.id] : []
       elsif equipment.is_a?(RPG::Armor)
    	 equipment_skills = Equipment_Skills::Armor_Skills.has_key?(equipment.id) ?
    	   Equipment_Skills::Armor_Skills[equipment.id] : []
       end
       # Draws Skills
       self.contents.font.color = normal_color
       self.contents.font.size = 14
       self.contents.font.bold = true
       if equipment_skills.size == 0
    	 self.contents.draw_text(0, 32, 240, 32, 'None', 1)
    	 return
       else
    	 equipment_skills.each {| skill_id, max | @skills << [skill_id, max]}
    	 @skills.sort! {|a, b| a[0] <=> b[0]}
    	 for i in 0...@skills.size
    	   # Gets AP Total
    	   actor = $game_party.actors[actor_id]
    	   skill_id = @skills[i][0]
    	   ap = actor_id == - 1 ? 0 :actor.skill_ap_totals[skill_id]
    	   max = @skills[i][1]
    	   draw_skill_progress(skill_id, ap, max, 0, 40 + i * 24, 236)
    	 end
       end
       @item_max = @skills.size
       # If One Target
       if Equipment_Skills::Learn_One_Skill
    	 case equipment
    	 when RPG::Weapon
    	   skill_target = @actor.weapon_skill_target
    	 when RPG::Armor
    	   case equipment.kind
    	   when 0
    		 skill_target = @actor.armor1_skill_target
    	   when 1
    		 skill_target = @actor.armor2_skill_target
    	   when 2
    		 skill_target = @actor.armor3_skill_target
    	   when 3
    		 skill_target = @actor.armor4_skill_target
    	   end
    	 end
    	 for i in 0...@skills.size
    	   if @skills[i][0] == skill_target
    		 @target_index = i + 1
    	   end
    	 end
       end
     end
     #--------------------------------------------------------------------------
     # * Frame Update
     #--------------------------------------------------------------------------
     def update
       super
       if Equipment_Skills::Learn_One_Skill
    	 update_cursor_rect
       end
     end
     #--------------------------------------------------------------------------
     # * Cursor Rectangle Update
     #--------------------------------------------------------------------------
     def update_cursor_rect
       if @target_index.nil?
    	 self.cursor_rect.empty
       else
    	 self.cursor_rect.set(0, 40 + (@target_index - 1) * 24, 240, 24)
       end
     end
     #--------------------------------------------------------------------------
     # * Draw Skill Progress
     #--------------------------------------------------------------------------
     def draw_skill_progress(skill_id, min, max, x, y, width)
       # Gets Skill
       skill = $data_skills[skill_id]
       # Gets Icon
       bitmap = RPG::Cache.icon(skill.icon_name)
       # Draws Icon
       self.contents.blt(x + 4, y, bitmap, Rect.new(0, 0, 24, 24))
       # Draws Skill Name
       self.contents.draw_text(x + 32, y, 240 - x - 32, 24, skill.name)
       # Draws Status Bar
       draw_bar(x + width - 96, y + 2, min, max, 96, 20)
       # Draws Progress
       text = min == max ? 'Mastered' : "#{min} / #{max}"
       self.contents.font.color = Color.new(0, 0, 0, 255)
       self.contents.draw_text(x + width - 99, y + 1, 96, 24, text, 2)
       self.contents.font.color = normal_color
       self.contents.draw_text(x + width - 100, y, 96, 24, text, 2)
     end
    end
    
    #==============================================================================
    # ** Scene_Equip
    #==============================================================================
    
    class Scene_Equip
     #--------------------------------------------------------------------------
     # * Alias Listings
     #--------------------------------------------------------------------------
     alias seph_weaponskills_sceneequip_main main
     alias seph_weaponskills_sceneequip_update update
     #--------------------------------------------------------------------------
     # * Main Processing
     #--------------------------------------------------------------------------
     def main
       # Equipment Skill Status Window
       @equipment_skill_status = Window_EquipmentSkills.new
       # Stores Indexes
       @r_index, @i_index = @equip_index, 0
       # Original Main Method
       seph_weaponskills_sceneequip_main
       # Disposes Skill Status Window
       @equipment_skill_status.dispose
     end
     #--------------------------------------------------------------------------
     # * Frame Update
     #--------------------------------------------------------------------------
     def update
       # Update Keyboard Input Module
       Keyboard.update
       # Updates Equipment Skills Window
       @equipment_skill_status.update
       # If A Button is Pressed
       if Input.trigger?(Input::A)
    	 # Play Cursor SE
    	 $game_system.se_play($data_system.cursor_se)
    	 # If Window is off
    	 unless @equipment_skill_status.visible
    	   # Turn On Window
    	   @equipment_skill_status.visible = true
    	   # Refresh Window
    	   refresh_equipment_skills
    	 else
    	   # Turns Off Window
    	   @equipment_skill_status.visible = false
    	 end
       end
       # If Window On
       if @equipment_skill_status.visible
    	 # If Right Window Active
    	 if @right_window.active
    	   # If Index is different
    	   unless @right_window.index == @r_index
    		 @r_index = @right_window.index
    		 # Refresh Weappn Skills
    		 refresh_equipment_skills
    	   end
    	 elsif @item_window.active
    	   # If Index is different
    	   unless @item_window.index == @i_index
    		 @i_index = @item_window.index
    		 # Refresh Equipment Skills
    		 refresh_equipment_skills
    	   end
    	 end
       end
       # Original Update Method
       seph_weaponskills_sceneequip_update
       # One Skill Assignment
       if Equipment_Skills::Learn_One_Skill
    	 if @equipment_skill_status.visible
    	   max = @equipment_skill_status.item_max
    	   return if max == 0
    	   @help_window.set_text("Press 1 - #{max} to Assign Skill Target")
    	   # If Key is Pressed
    	   for i in 1..max
    		 if Keyboard.trigger?(Keyboard::Numberkeys[i])
    		   @equipment_skill_status.target_index = i
    		   skill_id = @equipment_skill_status.skills[i - 1][0]
    		   case @right_window.item
    		   when RPG::Weapon
    			 @actor.weapon_skill_target = skill_id
    		   when RPG::Armor
    			 case @right_window.item.kind
    			 when 0
    			   @actor.armor1_skill_target = skill_id
    			 when 1
    			   @actor.armor2_skill_target = skill_id
    			 when 2
    			   @actor.armor3_skill_target = skill_id
    			 when 3
    			   @actor.armor4_skill_target = skill_id
    			 end
    		   end
    		 end
    	   end
    	 end
       end
     end
     #--------------------------------------------------------------------------
     # * Refresh : Weappn Skills Window
     #--------------------------------------------------------------------------
     def refresh_equipment_skills
       # Refresh Window
       if @right_window.active
    	 @equipment_skill_status.refresh(@actor_index, @right_window.item)
       elsif @item_window.active
    	 @equipment_skill_status.refresh(@actor_index, @item_window.item)
       end
     end
    end
    
    #==============================================================================
    # ** Scene_Battle
    #==============================================================================
    
    class Scene_Battle
     #--------------------------------------------------------------------------
     # * Alias Listings
     #--------------------------------------------------------------------------
     alias seph_weaponskills_scenebattle_main main
     alias seph_weaponskills_scenebattle_sp5 start_phase5
     alias seph_weaponskills_scenebattle_up5 update_phase5
     #--------------------------------------------------------------------------
     # * Main Processing
     #--------------------------------------------------------------------------
     def main
       # Original Main Method
       seph_weaponskills_scenebattle_main
       # Disposes AP Aquired Window
       @ap_result_window.dispose unless @ap_result_window.nil?
     end
     #--------------------------------------------------------------------------
     # * Start After Battle Phase
     #--------------------------------------------------------------------------
     def start_phase5
       # Orignal Start Phase 5 Method
       seph_weaponskills_scenebattle_sp5
       # If Learn By AP
       if Equipment_Skills::Learn_By_AP
    	 # Gets Enemy AP Values
    	 enemy_ap_values = Equipment_Skills::Enemy_AP_Values
    	 # Gets AP Total
    	 ap = 0
    	 for enemy in $data_troops[@troop_id].members
    	   enemy = $data_enemies[enemy.enemy_id]
    	   ap += (enemy_ap_values.has_key?(enemy.id) ?
    		 enemy_ap_values[enemy.id] : Equipment_Skills::Default_Enemy_AP)
    	 end
    	 # Earns AP
    	 for actor in $game_party.actors
    	   actor.earn_ap(ap)
    	 end
       end
       # If Show Results Window
       if Equipment_Skills::Show_Victory_Skills
    	 # Creates Aquired Ap Window
    	 @ap_result_window = Window_BattleResult_AP.new(160 + @result_window.height / 2)
       end
     end
     #--------------------------------------------------------------------------
     # * Frame Update (after battle phase)
     #--------------------------------------------------------------------------
     def update_phase5
       # Orignal Update Phase 5 Method
       seph_weaponskills_scenebattle_up5
       # Return
       return unless Equipment_Skills::Show_Victory_Skills
       # Show AP Result Window
       unless @ap_result_window.nil?
    	 @ap_result_window.visible = @result_window.visible
       end
       if @phase5_wait_count == 0
    	 @phase5_wait_count -= 1
    	 @status_window.refresh_skills_status
       end
       if @status_window.contents.height > 128
    	 if Input.press?(Input::UP)
    	   if @status_window.oy > 0
    		 @status_window.oy -= 8
    	   end
    	 elsif Input.press?(Input::DOWN)
    	   if @status_window.oy < @status_window.contents.height - 128
    		 @status_window.oy += 8
    	   end
    	 end
       end
     end
    end
    
    #==============================================================================
    # ** Scene_Shop
    #==============================================================================
    
    class Scene_Shop
     #--------------------------------------------------------------------------
     # * Alias Listings
     #--------------------------------------------------------------------------
     alias seph_weaponskills_sceneshop_main main
     alias seph_weaponskills_sceneshop_update update
     #--------------------------------------------------------------------------
     # * Main Processing
     #--------------------------------------------------------------------------
     def main
       # Weapon Skill Status Window
       @equipment_skill_status = Window_EquipmentSkills.new
       @equipment_skill_status.x = 368
       @equipment_skill_status.y = 288
       # Stores Index
       @b_index, @s_index = 0, 0
       # Original Main Method
       seph_weaponskills_sceneshop_main
       # Disposes Skill Status Window
       @equipment_skill_status.dispose
     end
     #--------------------------------------------------------------------------
     # * Frame Update
     #--------------------------------------------------------------------------
     def update
       # If buy window is active: call update_buy
       if @buy_window.active || @sell_window.active
    	 # Update Weapon Skills
    	 update_seph_equipment_skills
       else
    	 if @equipment_skill_status.visible
    	   @equipment_skill_status.visible = false
    	 end
       end
       # Orignal Update Method
       seph_weaponskills_sceneshop_update
     end
     #--------------------------------------------------------------------------
     # * Frame Update : Equipment Skills
     #--------------------------------------------------------------------------
     def update_seph_equipment_skills
       # If A Button is Pressed
       if Input.trigger?(Input::A)
    	 # Play Cursor SE
    	 $game_system.se_play($data_system.cursor_se)
    	 # If Window is off
    	 unless @equipment_skill_status.visible
    	   # Turn On Window
    	   @equipment_skill_status.visible = true
    	   # Refresh Equipment Skills
    	   refresh_equipment_skills
    	 else
    	   # Turns Off Window
    	   @equipment_skill_status.visible = false
    	 end
       end
       # If Equipment Skills On
       if @equipment_skill_status.visible
    	 # If Right Window Active
    	 if @buy_window.active
    	   # If Index is different
    	   unless @buy_window.index == @b_index
    		 @b_index = @buy_window.index
    		 # Refresh Equipment Skills
    		 refresh_equipment_skills
    	   end
    	 elsif @sell_window.active
    	   # If Index is different
    	   unless @sell_window.index == @s_index
    		 @s_index = @sell_window.index
    		 # Refresh Equipment Skills
    		 refresh_equipment_skills
    	   end
    	 end
       end
     end
     #--------------------------------------------------------------------------
     # * Refresh : Equipment Skills Window
     #--------------------------------------------------------------------------
     def refresh_equipment_skills
       # Refresh Window
       if @buy_window.active
    	 @equipment_skill_status.refresh(-1, @buy_window.item)
       elsif @sell_window.active
    	 @equipment_skill_status.refresh(-1, @sell_window.item)
       end
     end
    end
    
    #--------------------------------------------------------------------------
    # * End SDK Enable Test
    #--------------------------------------------------------------------------
    end
    

     

     


    Potete dirmi perchè non mi va?
    Vi dico subito che ho provato a cambiare versione di rpg, ma non succede niente..
    Mi da un errore nella riga 42, cioè:

     

    SDK.log('Equipment Skills', 'SephirothSpawn', 1, '2006-03-12')


    AIUTATEMI!!!!
  3. Cavolo, voi siete gia bravi...

    Ho finito di fare i capelli a questo:

    http://img280.imageshack.us/img280/3091/herofattodamecopiavk8.png

     

    e li sto facendo a questo:

    http://img280.imageshack.us/img280/8861/cless2fattodamecopiacr8.png

     

    Raga...é un inizio XD

  4. Questo è lo screen di un mio vecchio gioco di horror... :chirol_buha:

     

    http://img136.imageshack.us/img136/1409/reuniondg2.jpg

     

    Non è un gran che, ma spero vi piaccia :chirol_iei2:

×
×
  • Create New...