Show posts

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

Messages - PrinceEndymion88

81
Script Requests / Re: [RMXP] Puzzle Script!
September 08, 2013, 03:40:14 pm
Really thanks!
82
Script Requests / [RMXP] Puzzle Script!
September 08, 2013, 10:37:23 am
I want to add an extra feature to my game. During the game, the player can found some pieces of a puzzle and complete it! Maybe I can explain it with images...
The puzzle can be called by Scene_Puzzle.new into the game menu.
When no pieces were found, the player see an empy puzzle:


When the player found a piece of puzzle, a switch will be activated and he can see a new piece!


Anothe piece found? Another switch and a new image =)


and so on


I hope I was clear. =) Sorry for my english...
Actually I use these scripts: ccoa's weather script, KH SAVE, ums by ccoa, mode7, CCOA 3.04 RTA, Mog Damage System, DRG - Scene Menu Animated Cursor, Scene into flash, mana title, MOG Scene Shop, mog scene story, Party Changer, Stop the victory ME, Skill Chrono Trigger, shadow text, ,dash, region system, mog battler effects, Light Effects XP 2.1
83
REALLY THANKS! Your help was really precious :D
84
In Mog Scene Skill if I select an Heal Skill, I can see only 4 hero to heal! It's not important if the beauty of the script will destroyed 'cause, as you can see in my Equip Item, i want to change the layout! =)
85
Yes \n :D I've made a typo, sorry! =) But if I use \n into the description of a weapon, it split the text? 'cause for me doesn't works!
86
Ok but I've to add your script above Main, right? And, Can I use /n into weapon description, for example?
87
thanks :D it's perfect!!! I want to tell you if you can do the same with Mog Scene Item, Mog Scene Skill and Mog Scene Shop!
Mog Scene Item:
Spoiler: ShowHide
http://www.atelier-rgss.com/RGSS/Menu/XP_Menu02.html
#_______________________________________________________________________________
# MOG_Scene_Item V1.5            
#_______________________________________________________________________________
# By Moghunter  
# http://www.atelier-rgss.com
#_______________________________________________________________________________
module MOG
 #Transition Time.
 MNIT = 10
 #Transition Type(Name).
 MNITT = "004-Blind04"  
end

#===============================================================================
# Window_Base
#===============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# Nada
#--------------------------------------------------------------------------
def nada
 face = RPG::Cache.picture("")
end  
#--------------------------------------------------------------------------
# Drw Face
#--------------------------------------------------------------------------
def drw_face(actor,x,y)
 face = RPG::Cache.picture(actor.name + "_fc") rescue nada
 cw = face.width
 ch = face.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x , y - ch, face, src_rect)    
end  
#--------------------------------------------------------------------------
# Draw_Maphp3
#--------------------------------------------------------------------------
def draw_maphp3(actor, x, y)
 back = RPG::Cache.picture("BAR0")    
 cw = back.width  
 ch = back.height
 src_rect = Rect.new(0, 0, cw, ch)    
 self.contents.blt(x + 65, y - ch + 30, back, src_rect)
 meter = RPG::Cache.picture("HP_Bar")    
 cw = meter.width  * actor.hp / actor.maxhp
 ch = meter.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
 text = RPG::Cache.picture("HP_Tx")    
 cw = text.width  
 ch = text.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x + 35, y - ch + 30, text, src_rect)
 self.contents.font.color = Color.new(0,0,0,255)
 self.contents.draw_text(x + 81, y - 1, 48, 32, actor.hp.to_s, 2)
 self.contents.font.color = Color.new(255,255,255,255)
 self.contents.draw_text(x + 80, y - 2, 48, 32, actor.hp.to_s, 2)    
end  
#--------------------------------------------------------------------------
# Draw_Mapsp3
#--------------------------------------------------------------------------
def draw_mapsp3(actor, x, y)
 back = RPG::Cache.picture("BAR0")    
 cw = back.width  
 ch = back.height
 src_rect = Rect.new(0, 0, cw, ch)    
 self.contents.blt(x + 65, y - ch + 30, back, src_rect)
 meter = RPG::Cache.picture("SP_Bar")    
 cw = meter.width  * actor.sp / actor.maxsp
 ch = meter.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
 text = RPG::Cache.picture("SP_Tx")    
 cw = text.width  
 ch = text.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x + 35, y - ch + 30, text, src_rect)
 self.contents.font.color = Color.new(0,0,0,255)
 self.contents.draw_text(x + 81, y - 1, 48, 32, actor.sp.to_s, 2)
 self.contents.font.color = Color.new(255,255,255,255)
 self.contents.draw_text(x + 80, y - 2, 48, 32, actor.sp.to_s, 2)    
end  
#--------------------------------------------------------------------------
# Draw_Mexp_it
#--------------------------------------------------------------------------
def draw_mexp_it(actor, x, y)
 lv_tx = RPG::Cache.picture("LV_tx")
 cw = lv_tx.width
 ch = lv_tx.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x + 60 , y - ch + 32, lv_tx, src_rect)
 self.contents.font.color = Color.new(0,0,0,255)
 self.contents.draw_text(x + 101, y + 5, 24, 32, actor.level.to_s, 1)
 self.contents.font.color = Color.new(255,255,255,255)
 self.contents.draw_text(x + 100, y + 4, 24, 32, actor.level.to_s, 1)
end
#--------------------------------------------------------------------------
# Draw_Actor_State_it
#--------------------------------------------------------------------------
def draw_actor_state_it(actor, x, y, width = 80)
 text = make_battler_state_text(actor, width, true)
 self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
 self.contents.draw_text(x, y, width, 32, text,1)
end
end

#===============================================================================
# Window_Target_Item
#===============================================================================
class Window_Target_Item < Window_Selectable
#--------------------------------------------------------------------------
# Initialize
#--------------------------------------------------------------------------  
 def initialize
   super(0, 130, 280, 300)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = "Georgia"
   self.z += 10
   @item_max = $game_party.actors.size
   refresh
 end
#--------------------------------------------------------------------------
# Refresh
#--------------------------------------------------------------------------  
 def refresh
   self.contents.clear
   for i in 0...$game_party.actors.size
     x = 4
     y = i * 65
     actor = $game_party.actors[i]
     drw_face(actor,x,y + 55)
     if $mog_rgss_TP_System != nil
       draw_actor_tp(actor, x + 168, y + 27 ,4)
     else  
       draw_mexp_it(actor, x + 110, y + 25 )
     end
     draw_actor_state_it(actor, x + 165, y )
     draw_maphp3(actor, x + 20, y + 0)
     draw_mapsp3(actor, x + 20, y + 32)
   end
 end
#--------------------------------------------------------------------------
# Update_Currsor_Rect
#--------------------------------------------------------------------------  
 def update_cursor_rect
   if @index <= -2
     self.cursor_rect.set(0, (@index + 10) * 65, self.width - 32, 60)
   elsif @index == -1
     self.cursor_rect.set(0, 0, self.width - 32, @item_max * 64 )
   else
     self.cursor_rect.set(0, @index * 65, self.width - 32, 60)
   end
 end
end

#===============================================================================
# Type_Sel
#===============================================================================
class Type_Sel < Window_Base
 attr_reader   :index                    
 attr_reader   :help_window      
#--------------------------------------------------------------------------
# Initialize
#--------------------------------------------------------------------------  
 def initialize(x, y, width, height)
   super(x, y, width, height)
   @item_max = 1
   @column_max = 1
   @index = -1
 end
#--------------------------------------------------------------------------
# Index
#--------------------------------------------------------------------------    
 def index=(index)
   @index = index
 end
#--------------------------------------------------------------------------
# Row_Max
#--------------------------------------------------------------------------  
 def row_max
   return (@item_max + @column_max - 1) / @column_max
 end
#--------------------------------------------------------------------------
# Top Row
#--------------------------------------------------------------------------  
 def top_row
   return self.oy / 32
 end
#--------------------------------------------------------------------------
# Top_row=(row)
#--------------------------------------------------------------------------  
 def top_row=(row)
   if row < 0
     row = 0
   end
   if row > row_max - 1
     row = row_max - 1
   end
   self.oy = row * 32
 end
#--------------------------------------------------------------------------
# Page_Row
#--------------------------------------------------------------------------  
 def page_row_max
   return (self.height - 32) / 32
 end
#--------------------------------------------------------------------------
# Page_Item_Max
#--------------------------------------------------------------------------  
 def page_item_max
   return page_row_max * @column_max
 end
#--------------------------------------------------------------------------
# Update
#--------------------------------------------------------------------------  
 def update
   super
   if self.active and @item_max > 0 and @index >= 0
     if Input.repeat?(Input::RIGHT)
       if (@column_max == 1 and Input.trigger?(Input::RIGHT)) or
          @index < @item_max - @column_max
         $game_system.se_play($data_system.cursor_se)
         @index = (@index + @column_max) % @item_max
       end
     end
     if Input.repeat?(Input::LEFT)
       if (@column_max == 1 and Input.trigger?(Input::LEFT)) or
          @index >= @column_max
         $game_system.se_play($data_system.cursor_se)
         @index = (@index - @column_max + @item_max) % @item_max
       end
     end
   end
 end
end
#===============================================================================
# Type_Sel
#===============================================================================
class Window_Type < Type_Sel
 def initialize
   super(0, 0, 0, 0)
   @item_max = 3
   self.index = 0
 end
end
#===============================================================================
# Window_Item_Ex
#===============================================================================
class Window_Item_Ex < Window_Selectable
#--------------------------------------------------------------------------
# Initialzie
#--------------------------------------------------------------------------    
 def initialize
   super(250, 50, 295, 350)
   @column_max = 1
   refresh
   self.index = 0
   if $game_temp.in_battle
     self.y = 64
     self.height = 256
     self.back_opacity = 160
   end
 end
#--------------------------------------------------------------------------
# Item
#--------------------------------------------------------------------------    
 def item
   return @data[self.index]
 end
#--------------------------------------------------------------------------
# Refresh
#--------------------------------------------------------------------------      
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
   for i in 1...$data_items.size
     if $game_party.item_number(i) > 0
       @data.push($data_items[i])
     end
   end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
#--------------------------------------------------------------------------
# Draw_Item
#--------------------------------------------------------------------------      
 def draw_item(index)
   item = @data[index]
   case item
   when RPG::Item
     number = $game_party.item_number(item.id)
   end
   if item.is_a?(RPG::Item) and
      $game_party.item_can_use?(item.id)
     self.contents.font.color = normal_color
   else
     self.contents.font.color = disabled_color
   end
   x = 4 + index % 1 * (288 + 32)
   y = index / 1 * 32
   rect = Rect.new(x, y, self.width / @column_max - 32, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   self.contents.font.name = "Georgia"    
   bitmap = RPG::Cache.icon(item.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128    
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
   self.contents.draw_text(x + 215, y, 16, 32, ":", 1)
   self.contents.draw_text(x + 230, y, 24, 32, number.to_s, 2)
 end
#--------------------------------------------------------------------------
# Update Help
#--------------------------------------------------------------------------      
 def update_help
   @help_window.set_text(self.item == nil ? "" : self.item.description)
 end
end

#===============================================================================
# Window_Weapon
#===============================================================================
class Window_Weapon < Window_Selectable
#--------------------------------------------------------------------------
# Initialize
#--------------------------------------------------------------------------        
 def initialize
   super(250, 50, 295, 350)
   @column_max = 1
   refresh
   self.index = 0
    if $game_temp.in_battle
     self.y = 64
     self.height = 256
     self.back_opacity = 160
   end
 end
#--------------------------------------------------------------------------
# Item
#--------------------------------------------------------------------------        
 def item
   return @data[self.index]
 end
#--------------------------------------------------------------------------
# Refresh
#--------------------------------------------------------------------------        
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
     for i in 1...$data_weapons.size
       if $game_party.weapon_number(i) > 0
         @data.push($data_weapons[i])
       end
     end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
#--------------------------------------------------------------------------
# Draw_Item
#--------------------------------------------------------------------------        
 def draw_item(index)
   item = @data[index]
   case item
   when RPG::Weapon
     number = $game_party.weapon_number(item.id)
   end
   if item.is_a?(RPG::Item) and
      $game_party.item_can_use?(item.id)
     self.contents.font.color = normal_color
   else
     self.contents.font.color = disabled_color
   end
   x = 4 + index % 1 * (288 + 32)
   y = index / 1 * 32
   rect = Rect.new(x, y, self.width / @column_max - 32, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   self.contents.font.name = "Georgia"    
   bitmap = RPG::Cache.icon(item.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128    
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
   self.contents.draw_text(x + 215, y, 16, 32, ":", 1)
   self.contents.draw_text(x + 230, y, 24, 32, number.to_s, 2)
 end
#--------------------------------------------------------------------------
# Update Help
#--------------------------------------------------------------------------        
 def update_help
   @help_window.set_text(self.item == nil ? "" : self.item.description)
 end
end

#===============================================================================
# Window_Armor
#===============================================================================
class Window_Armor < Window_Selectable
#--------------------------------------------------------------------------
# Initialize
#--------------------------------------------------------------------------        
 def initialize
   super(250, 50, 295, 350)
   @column_max = 1
   refresh
   self.index = 0
   if $game_temp.in_battle
     self.y = 64
     self.height = 256
     self.back_opacity = 160
   end
 end
#--------------------------------------------------------------------------
# Item
#--------------------------------------------------------------------------          
 def item
   return @data[self.index]
 end
#--------------------------------------------------------------------------
# Refresh
#--------------------------------------------------------------------------          
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
     for i in 1...$data_armors.size
       if $game_party.armor_number(i) > 0
         @data.push($data_armors[i])
       end
     end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
#--------------------------------------------------------------------------
# Draw_Item
#--------------------------------------------------------------------------          
 def draw_item(index)
   item = @data[index]
   case item
   when RPG::Armor
     number = $game_party.armor_number(item.id)
   end
   if item.is_a?(RPG::Item) and
      $game_party.item_can_use?(item.id)
     self.contents.font.color = normal_color
   else
     self.contents.font.color = disabled_color
   end
   x = 4 + index % 1 * (288 + 32)
   y = index / 1 * 32
   rect = Rect.new(x, y, self.width / @column_max - 32, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   self.contents.font.name = "Georgia"    
   bitmap = RPG::Cache.icon(item.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128    
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
   self.contents.draw_text(x + 215, y, 16, 32, ":", 1)
   self.contents.draw_text(x + 230, y, 24, 32, number.to_s, 2)
 end
#--------------------------------------------------------------------------
# Update Help
#--------------------------------------------------------------------------          
 def update_help
   @help_window.set_text(self.item == nil ? "" : self.item.description)
 end
end

#===============================================================================
# Scene_Item
#===============================================================================
class Scene_Item
#--------------------------------------------------------------------------
# Main
#--------------------------------------------------------------------------            
 def main
   @back = Plane.new
   @back.bitmap = RPG::Cache.picture("MN_BK")
   @back.z = 100
   @item_lay = Sprite.new
   @item_lay.bitmap = RPG::Cache.picture("Item_lay")
   @item_lay.z = 100
   @item_com = Sprite.new
   @item_com.bitmap = RPG::Cache.picture("Item_com01")
   @item_com.z = 100
   @type = Window_Type.new
   @type.opacity = 0
   @type.visible = false    
   @help_window = Window_Help.new
   @help_window.y = 405
   @item_window = Window_Item_Ex.new
   @item_window.help_window = @help_window
   @item_window.visible = true
   @item_window.active = true
   @weapon_window = Window_Weapon.new
   @weapon_window.help_window = @help_window
   @weapon_window.visible = false
   @weapon_window.active = true
   @armor_window = Window_Armor.new
   @armor_window.help_window = @help_window
   @armor_window.visible = false
   @armor_window.active = true    
   @target_window = Window_Target_Item.new
   @target_window.x = -300
   @target_window.active = false
   @help_window.opacity = 0
   @help_window.x = -200
   @help_window.contents_opacity = 0    
   @item_window.opacity = 0
   @weapon_window.opacity = 0
   @armor_window.opacity = 0
   @target_window.opacity = 0    
   @weapon_window.x = 640
   @armor_window.x = 640
   @item_window.x = 640  
   @weapon_window.contents_opacity = 0
   @armor_window.contents_opacity = 0
   @item_window.contents_opacity = 0      
   Graphics.transition(MOG::MNIT, "Graphics/Transitions/" + MOG::MNITT)
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   for i in 0..10
     @weapon_window.x += 25
     @armor_window.x += 25
     @item_window.x += 25  
     @weapon_window.contents_opacity -= 25
     @armor_window.contents_opacity -= 25
     @item_window.contents_opacity -= 25    
     @item_lay.zoom_x += 0.2
     @item_lay.opacity -= 25
     @item_com.zoom_y += 0.2
     @item_com.opacity -= 25
     @target_window.x -= 25
     @help_window.contents_opacity -= 25
     @back.ox += 2
     Graphics.update  
   end  
   Graphics.freeze
   @help_window.dispose
   @item_window.dispose
   @weapon_window.dispose
   @armor_window.dispose
   @target_window.dispose
   @item_lay.dispose
   @back.dispose
   @item_com.dispose
   @type.dispose
 end
#--------------------------------------------------------------------------
# Update
#--------------------------------------------------------------------------            
 def update
   if @target_window.active == true
      @target_window.visible = true
     if @target_window.x < 0
        @target_window.x += 30
     elsif @target_window.x >= 0
        @target_window.x = 0      
     end  
     else
     if @target_window.x > -300
        @target_window.x -= 30
     elsif @target_window.x >= -300
        @target_window.x = -300
        @target_window.visible = false
     end
   end    
   if @help_window.x < 0
     @help_window.x += 15
     @help_window.contents_opacity += 20    
   elsif @help_window.x >= 0
     @help_window.x = 0
     @help_window.contents_opacity = 255    
   end
   if @item_window.x > 250
     @weapon_window.x -= 30
     @armor_window.x -= 30
     @item_window.x -= 30  
     @weapon_window.contents_opacity += 20
     @armor_window.contents_opacity += 20
     @item_window.contents_opacity += 20    
   elsif  @item_window.x <= 250
     @weapon_window.x = 250
     @armor_window.x = 250
     @item_window.x = 250  
     @weapon_window.contents_opacity = 250
     @armor_window.contents_opacity = 250
     @item_window.contents_opacity = 250      
   end
   if @target_window.active == false
     if Input.trigger?(Input::RIGHT) or Input.trigger?(Input::LEFT) or
        Input.press?(Input::RIGHT) or  Input.press?(Input::LEFT)
       @weapon_window.x = 640
       @armor_window.x = 640
       @item_window.x = 640      
       @weapon_window.contents_opacity = 0
       @armor_window.contents_opacity = 0
       @item_window.contents_opacity = 0      
     end
     if Input.trigger?(Input.dir4) or Input.trigger?(Input.dir4) or
        Input.trigger?(Input::L) or Input.trigger?(Input::R)      
        @help_window.x = -200
        @help_window.contents_opacity = 0
     end  
   end
   @back.ox += 1
   @help_window.update
   @item_window.update
   @weapon_window.update
   @armor_window.update
   @target_window.update
   @type.update
   case @type.index
   when 0
   @item_com.bitmap = RPG::Cache.picture("Item_com01")
   if @target_window.active == true
     update_target
     @item_window.active = false  
     @type.active = false
     return
   else  
     @item_window.active = true
     @type.active = true
   end    
     @weapon_window.active = false
     @armor_window.active = false
     @item_window.visible = true
     @weapon_window.visible = false
     @armor_window.visible = false    
   when 1
     @item_com.bitmap = RPG::Cache.picture("Item_com02")
     @item_window.active = false
     @weapon_window.active = true
     @armor_window.active = false
     @item_window.visible = false
     @weapon_window.visible = true
     @armor_window.visible = false    
   when 2
     @item_com.bitmap = RPG::Cache.picture("Item_com03")  
     @item_window.active = false
     @weapon_window.active = false
     @armor_window.active = true
     @item_window.visible = false
     @weapon_window.visible = false
     @armor_window.visible = true
   end
   if @item_window.active
     update_item
     return
   end
   if @weapon_window.active
     update_weapon
     return
   end
   if @armor_window.active
     update_armor
     return
   end
 end
#--------------------------------------------------------------------------
# Update Weapon
#--------------------------------------------------------------------------          
 def update_weapon
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Menu.new(0)
     return
   end
 end
#--------------------------------------------------------------------------
# Update Armor
#--------------------------------------------------------------------------            
 def update_armor
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Menu.new(0)
     return
   end
 end
#--------------------------------------------------------------------------
# Update Item
#--------------------------------------------------------------------------            
 def update_item
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Menu.new(0)
     return
   end
   if Input.trigger?(Input::C)
     @item = @item_window.item
     unless @item.is_a?(RPG::Item)
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     unless $game_party.item_can_use?(@item.id)
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     $game_system.se_play($data_system.decision_se)
     if @item.scope >= 3
       @item_window.active = false
       @target_window.x = (@item_window.index + 1) % 1 * 304
       @target_window.active = true
       @target_window.x = -350              
       if @item.scope == 4 || @item.scope == 6
         @target_window.index = -1
       else
         @target_window.index = 0
       end
     else
       if @item.common_event_id > 0
         $game_temp.common_event_id = @item.common_event_id
         $game_system.se_play(@item.menu_se)
         if @item.consumable
           $game_party.lose_item(@item.id, 1)
           @item_window.draw_item(@item_window.index)
         end
         $scene = Scene_Map.new
         return
       end
     end
     return
   end
 end
#--------------------------------------------------------------------------
# Update Target
#--------------------------------------------------------------------------            
 def update_target
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     unless $game_party.item_can_use?(@item.id)
       @item_window.refresh
     end
     @item_window.active = true
     @target_window.active = false
     return
   end
   if Input.trigger?(Input::C)
     if $game_party.item_number(@item.id) == 0
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     if @target_window.index == -1
       used = false
       for i in $game_party.actors
         used |= i.item_effect(@item)
       end
     end
     if @target_window.index >= 0
       target = $game_party.actors[@target_window.index]
       used = target.item_effect(@item)
     end
     if used
       $game_system.se_play(@item.menu_se)
       if @item.consumable
         $game_party.lose_item(@item.id, 1)
         @item_window.draw_item(@item_window.index)
       end
       @target_window.refresh
       if $game_party.all_dead?
         $scene = Scene_Gameover.new
         return
       end
       if @item.common_event_id > 0
         $game_temp.common_event_id = @item.common_event_id
         $scene = Scene_Map.new
         return
       end
     end
     unless used
       $game_system.se_play($data_system.buzzer_se)
     end
     return
   end
 end
end

$mog_rgss_Scene_Item = true


Character limit reached. Could not fully display rest of code.
88
Hi, I've found this script:
#=================================================================
# ? Battle Result by A3D Ver. 1.02
# Useful                       : show battle result in a different way
# Effect to default script : this code will replace methode "start_phase5" & "update_phase5"  in Scene_Battle
# How to install             : in script editor, insert all the code above main
# Note                          : this script is for non-commercial use only, give credit if use
# Contact                      : A3D (hyper_s@hotmail.com)
#=================================================================

module A3D
 WAIT_WINDOW_APPEAR = 60
 WAIT_RUNNING_NUMBER = 20
 STEP_EXP = 1
 STEP_GOLD = 1
 SE_LEVELUP = ["007-System07", 100, 100]
 SE_NEWSKILL = ["007-System07", 100, 100]
 FONT_NAME = "Tahoma"
 FONT_SIZE = 22
end

#==============================================================================
# ? Scene_Battle
#==============================================================================

class Scene_Battle

 #--------------------------------------------------------------------------
 # ? After battle phase start
 #--------------------------------------------------------------------------
 def start_phase5
   # It moves to phase 5
   @phase = 5
   # Performing battle end ME
   $game_system.me_play($game_system.battle_end_me)
   # You reset to BGM before the battle starting
   $game_system.bgm_play($game_temp.map_bgm)
   # Initializing EXP, the gold and the treasure
   exp = 0
   gold = 0
   treasures = []
   # Loop
   for enemy in $game_troop.enemies
     # When the enemy hides and it is not state
     unless enemy.hidden
       # Adding acquisition EXP and the gold
       exp += enemy.exp
       gold += enemy.gold
       # Treasure appearance decision
       if rand(100) < enemy.treasure_prob
         if enemy.item_id > 0
           treasures.push($data_items[enemy.item_id])
         end
         if enemy.weapon_id > 0
           treasures.push($data_weapons[enemy.weapon_id])
         end
         if enemy.armor_id > 0
           treasures.push($data_armors[enemy.armor_id])
         end
       end
     end
   end
   # Treasure acquisition
   for item in treasures
     case item
     when RPG::Item
       $game_party.gain_item(item.id, 1)
     when RPG::Weapon
       $game_party.gain_weapon(item.id, 1)
     when RPG::Armor
       $game_party.gain_armor(item.id, 1)
     end
   end
   # Create Variable & Window
   @phase5_step = 1
   @wait_window_appear = A3D::WAIT_WINDOW_APPEAR
   @wait_running_number = A3D::WAIT_RUNNING_NUMBER
   @resultreceive_window = Window_ResultReceive.new(exp, gold, treasures)
   @resultgold_window = Window_ResultGold.new
   @resultparty_window = Window_ResultParty.new
   @actor_level_before = []
   @resultlevel_window = []
   @resultskill_window = []
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     @actor_level_before[i] = actor.level
     @resultlevel_window[i] = Window_ResultLevel.new(i)
     @resultskill_window[i] = Window_ResultSkill.new(i)
   end
 end
 #--------------------------------------------------------------------------
 # ? Update Phase 5
 #--------------------------------------------------------------------------
 def update_phase5
   case @phase5_step
   when 1  # EXP & Gold Phase
     update_phase5_step1
   when 2  # Skill Phase
     update_phase5_step2
   when 3  # Delete Window Phase
     update_phase5_step3
   end
 end
 #--------------------------------------------------------------------------
 # ? Update Phase 5 Step 1
 #--------------------------------------------------------------------------
 def update_phase5_step1
   # Wait Count Before Window Appear
   if @wait_window_appear > 0
     @wait_window_appear -= 1
     if @wait_window_appear == 0
       @resultreceive_window.visible = true
       @resultgold_window.visible = true
       @resultparty_window.visible = true
       $game_temp.battle_main_phase = false
     end
     return
   end
   # Wait Count Before Running Number
   if @wait_running_number > 0
     @wait_running_number -= 1
     return
   end
   # Change Item Page
   if Input.trigger?(Input::RIGHT)
     if @resultreceive_window.max_page != 1
       $game_system.se_play($data_system.cursor_se)
       @resultreceive_window.page = @resultreceive_window.page == 1 ? 2 : 1
       @resultreceive_window.refresh
     end
   end
   # EXP & Gold Rolling
   if (@resultreceive_window.exp != 0 || @resultreceive_window.gold != 0)
     # Input C to Shortcut Calculation
     if Input.trigger?(Input::C)
       for i in 0...$game_party.actors.size
         actor = $game_party.actors[i]
         level_before = actor.level
         actor.exp += @resultreceive_window.exp
         if actor.level > level_before
           @resultlevel_window[i].visible = true
           Audio.se_play("Audio/SE/" + A3D::SE_LEVELUP[0], A3D::SE_LEVELUP[1], A3D::SE_LEVELUP[2])
         end
       end
       $game_party.gain_gold(@resultreceive_window.gold)
       @resultreceive_window.exp = 0
       @resultreceive_window.gold = 0
       @resultreceive_window.refresh
       @resultgold_window.refresh
       @resultparty_window.refresh
     end
     # EXP
     if @resultreceive_window.exp != 0
       step_exp = @resultreceive_window.exp >= A3D::STEP_EXP.abs ? A3D::STEP_EXP.abs : @resultreceive_window.exp
       for i in 0...$game_party.actors.size
         actor = $game_party.actors[i]
         if actor.next_rest_exp <= step_exp && actor.next_rest_exp != 0
           @resultlevel_window[i].visible = true
           Audio.se_play("Audio/SE/" + A3D::SE_LEVELUP[0], A3D::SE_LEVELUP[1], A3D::SE_LEVELUP[2])
         end
         actor.exp += step_exp
       end
       @resultreceive_window.exp -= step_exp
       @resultreceive_window.refresh
       @resultparty_window.refresh
     end
     # Gold
     if @resultreceive_window.gold != 0
       step_gold = @resultreceive_window.gold >= A3D::STEP_GOLD.abs ? A3D::STEP_GOLD.abs : @resultreceive_window.gold
       $game_party.gain_gold(step_gold)
       @resultreceive_window.gold -= step_gold
       @resultreceive_window.refresh
       @resultgold_window.refresh
     end
     return
   end
   # Input C to Bypass Step
   if Input.trigger?(Input::C)
     @phase5_step = 2
     return
   end
 end
 #--------------------------------------------------------------------------
 # ? Update Phase 5 Step 2
 #--------------------------------------------------------------------------
 def update_phase5_step2
   # Change Item Page
   if Input.trigger?(Input::RIGHT)
     if @resultreceive_window.max_page != 1
       $game_system.se_play($data_system.cursor_se)
       @resultreceive_window.page = @resultreceive_window.page == 1 ? 2 : 1
       @resultreceive_window.refresh
     end
   end
   # Initialize Skill Phase
   if @initialized_skill_phase == nil
     for i in 0...$game_party.actors.size
       actor = $game_party.actors[i]
       for skill in $data_classes[actor.class_id].learnings
         if skill.level > @actor_level_before[i] && skill.level <= actor.level
           Audio.se_play("Audio/SE/" + A3D::SE_NEWSKILL[0], A3D::SE_NEWSKILL[1], A3D::SE_NEWSKILL[2])
           @resultskill_window[i].skill_id = skill.skill_id
           @resultskill_window[i].visible = true
           @resultskill_window[i].refresh
           @skill_phase_active = true
         end
       end
     end
     @initialized_skill_phase = true
   end
   # If Skill Phase Active, Show Window
   if @skill_phase_active != nil
     if @resultskill_window[0].x != 456
       for i in 0...$game_party.actors.size
         @resultskill_window[i].x -= 23
       end
       return
     end
   else
     @phase5_step = 3
     return
   end
   # Input C to Bypass Step
   if Input.trigger?(Input::C)
     @phase5_step = 3
     return
   end
 end
 #--------------------------------------------------------------------------
 # ? Update Phase 5 Step 3
 #--------------------------------------------------------------------------
 def update_phase5_step3
   # Delete All Result-Window
   @resultreceive_window.dispose
   @resultgold_window.dispose
   @resultparty_window.dispose
   for i in 0...$game_party.actors.size
     @resultlevel_window[i].dispose
     @resultskill_window[i].dispose
   end
   battle_end(0)
 end

end

#==============================================================================
# ? Game_Actor
#==============================================================================

class Game_Actor

 def next_rest_exp
   return @exp_list[@level+1] > 0 ? (@exp_list[@level+1] - @exp) : 0
 end

end

#==============================================================================
# ? Window_ResultReceive
#==============================================================================

class Window_ResultReceive < Window_Base
 #--------------------------------------------------------------------------
 # ? Attr
 #--------------------------------------------------------------------------
 attr_accessor         :exp
 attr_accessor         :gold
 attr_accessor         :page
 attr_reader            :max_page
 #--------------------------------------------------------------------------
 # ? Initialize
 #--------------------------------------------------------------------------
 def initialize(exp, gold, treasures)
   super(40, 28, 224, 212)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = A3D::FONT_NAME
   self.contents.font.size = A3D::FONT_SIZE
   self.back_opacity = 160
   self.visible = false
   @exp = exp
   @gold = gold
   @treasures = treasures
   @page = 1
   @max_page = treasures.size > 4 ? 2 : 1
   refresh
 end
 #--------------------------------------------------------------------------
 # ? Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   self.contents.font.color = system_color
   self.contents.draw_text(0, -8, self.width - 32, 32, "Exp")
   self.contents.draw_text(0, 16, self.width - 32, 32, $data_system.words.gold)
   self.contents.draw_text(0, 40, self.width - 32, 32, $data_system.words.item + " [" + @page.to_s + "/" + @max_page.to_s + "]" )
   self.contents.font.color = normal_color
   self.contents.draw_text(0, -8, self.width - 32, 32, @exp.to_s, 2)
   self.contents.draw_text(0, 16, self.width - 32, 32, @gold.to_s, 2)
   if @treasures.size == 0
     self.contents.draw_text(0, 68, self.width - 32, 32, "< Nothing. >")
   elsif @treasures.size > 4
     bitmap = RPG::Cache.windowskin($game_system.windowskin_name)
     self.contents.blt(184, 116, bitmap, Rect.new(168, 24, 16, 16), 255)
   end
   y = 68
   item_start_index = @page == 1 ? 0 : 4
   for i in item_start_index...@treasures.size
     item = @treasures[i]
     draw_item_name(item, 0, y)
     y += 28
   end
 end

end

#==============================================================================
# ? Window_ResultGold
#==============================================================================

class Window_ResultGold < Window_Base
 #--------------------------------------------------------------------------
 # ? Initialize
 #--------------------------------------------------------------------------
 def initialize
   super(40, 240, 224, 52)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = A3D::FONT_NAME
   self.contents.font.size = A3D::FONT_SIZE
   self.back_opacity = 160
   self.visible = false
   refresh
 end
 #--------------------------------------------------------------------------
 # ? Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   self.contents.font.color = system_color
   self.contents.draw_text(0, -8, self.width - 32, 32, "Total " + $data_system.words.gold)
   self.contents.font.color = normal_color
   self.contents.draw_text(0, -8, self.width - 32, 32, $game_party.gold.to_s, 2)
 end

end

#==============================================================================
# ? Window_ResultParty
#==============================================================================

class Window_ResultParty < Window_Base
 #--------------------------------------------------------------------------
 # ? Initialize
 #--------------------------------------------------------------------------
 def initialize
   super(264, 28, 336, 264)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = A3D::FONT_NAME
   self.contents.font.size = A3D::FONT_SIZE
   self.back_opacity = 160
   self.visible = false
   refresh
 end
 #--------------------------------------------------------------------------
 # ? Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   for i in 0...5$game_party.actors.size
     actor = $game_party.actors[i]
     y = 60 * i + 22
     draw_actor_graphic(actor, 24, y + 28 )
     draw_actor_name(actor, 64, y - 28)
     self.contents.font.color = system_color
     self.contents.draw_text(116, y, (self.width - 32), 32, "Lv.")
     self.contents.draw_text(188, y, (self.width - 32), 32, "Next")
     self.contents.font.color = normal_color
     self.contents.draw_text(-140, y, (self.width - 32), 32, actor.level.to_s ,2)
     self.contents.draw_text(0     , y, (self.width - 32), 32, actor.next_rest_exp_s ,2)
   end
 end

end

#==============================================================================
# ? Window_ResultLevel
#==============================================================================

class Window_ResultLevel < Window_Base
 #--------------------------------------------------------------------------
 # ? Initialize
 #--------------------------------------------------------------------------
 def initialize(id)
   super(332, 60 * id + 40, 124, 60)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = A3D::FONT_NAME
   self.contents.font.size = A3D::FONT_SIZE
   self.back_opacity = 160
   self.visible = false
   self.z = 200
   refresh
 end
 #--------------------------------------------------------------------------
 # ? Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   self.contents.draw_text(0, -2, self.width - 32, 32, "Level-Up !", 1)
 end

end

#==============================================================================
# ? Window_ResultSkill
#==============================================================================

class Window_ResultSkill < Window_Base
 #--------------------------------------------------------------------------
 # ? Attr
 #--------------------------------------------------------------------------
 attr_accessor         :skill_id
 #--------------------------------------------------------------------------
 # ? Initialize
 #--------------------------------------------------------------------------
 def initialize(id)
   super(640, 60 * id + 40, 200, 60)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = A3D::FONT_NAME
   self.contents.font.size = A3D::FONT_SIZE
   self.back_opacity = 160
   self.visible = false
   self.z = 200
   @skill_id = nil
 end
 #--------------------------------------------------------------------------
 # ? Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   if @skill_id == nil
     return
   end
   skill = $data_skills[@skill_id]
   bitmap = RPG::Cache.icon(skill.icon_name)
   self.contents.blt(0, 2, bitmap, Rect.new(0, 0, 24, 24), 255)
   self.contents.font.color = normal_color
   self.contents.draw_text(32, -2, self.width - 64, 32, skill.name)
 end

end

and i want to use it in my game, but it only returns the result of the first 4 heroes in battle and I use 5 heroes in battle... can someone adapt this script for me?
89
Ok i've found it :D I've edited Windows_Help and I've resized the font ^_^ but, How can I split the text on multiple lines? How can I integrate this method of Blizzard: slice_text? Thanks ^^
90
Yes, I've used  MOG_Scene_Equip V1.7! I've only changed the disposition of elements... but I don't know how to make change to the description of the item =(
91
I've created my own Scene Equip but I'm not able to change the font of the description of the weapon / armor ... how can I? Or how can I put text on multiple lines? Can anyone help me?
This is my result:
92
Oh thanks :)
93
Hi guys. I'm searching for some very simple script for my new Item, Equip, Status and Skill Menu. Actually I'm using Drago Scene Menu as my Scene Menu and other script like: ccoa's weather script, KH SAVE, ums by ccoa, mode7, CCOA 3.04 RTA, Mog Damage System, DRG - Scene Menu Animated Cursor, Scene into flash, mana title, MOG Scene Shop, mog scene story, Party Changer, Stop the victory ME, Skill Chrono Trigger, shadow text, ,dash, region system, mog battler effects, Light Effects XP 2.1...
These are some pictures with description of what I would.
Spoiler: ShowHide

Scene Item:




Scene Equip:


Scene Status:


Scene Skill (single tech):


I also use a Link Tech system. For example, an hero can use a "special" skill in battle only if there is other (one or more) heroes in battle...
An example: HERO1 can use in battle the tech MAGIC WIND only if HERO2 and HERO3 are in battle.
This is the script used for link tech:
Spoiler: ShowHide
#==============================================================================
# • Tecniche combinate stile Chrono Trigger
# di mikb89
# demo: 2 agosto 2009
# versione 1.2 - CCOA (3.04) compatible
#------------------------------------------------------------------------------
# Per creare una skill combo basta fare una skill normale e poi
# configurare qui ciò che viene richiesto.
# Da notare che nelle skill combo è utilizzato il sistema che c'era
# nell'rm2k, cioè che per usare una tecnica con un attributo, devi
# avere l'equipaggiamento con quell'attributo. Ad esempio lo skill
# "Colpo di spada" con l'attributo "Spada", richiede che devi avere
# equipaggiata un arma con l'attributo "Spada" (una spada, quindi);
# se non usate gli attributi non ci fate caso, ma nell'rm2k era così. Se
# invece li usate e volete lo stesso anche per gli skill normali, copiate
# alla fine di questo script lo script Skill Add-on che segue.
# NEW: Se non volete usare questo sistema degli attributi adesso potete
#      configurarlo tramite il USA_ATTRIBUTI_SKILL sotto impostato a 0
#==============================================================================
# • Configurazioni:
#------------------------------------------------------------------------------
module Impostazioni
class CTCombo

TASTO_CAMBIO_SKILL_E_COMBO = Input::A
# I combo vengono utilizzati scegliendo Skill dal menu (o come l'avete
# tradotto) e premendo un tasto.
# Premendolo nuovamente si torna alle skill normali. Con questa costante
# si specifica il tasto da premere.
# Input::A equivale a SHIFT
# Input::CTRL equivale a CONTROL
# Input::L e Input::R equivalgono a PageUp e PageDown
# e ce ne sono altri, l'importante è che c'è Input:: prima

ARCHIVIAZIONE_VIA_SWITCH = 0
# Occorre spendere due parole...
# In Chrono Trigger ci sono tre membri che vanno in battaglia ma i personaggi
# che sono nel party (oltre quei tre) dal menu possono usare i combo. Questa
# situazione può essere emulata tramite switch mettendo 1. Con 0 per il combo
# saranno considerati validi soltanto i personaggi che vanno in battaglia.

SWITCH_INIZIALE_MEMBRI = 11
# Se la constante sopra è settata a 1 questo valore specifica lo switch che
# viene attivato quando il PRIMO eroe è nel party. Gli altri eroi avranno gli switch
# seguenti a seconda del loro ordine nel database.
# Da notare che se questo metodo è attivo gli switch vanno impostati anche per
# i tre eroi che vanno in battaglia.

USA_ATTRIBUTI_SKILL = 0
# Attiva (1) o disattiva (0) il sistema di abilitazione skill per attributi.
# Dato che non tutti conoscono questa opzione (che era standard nei vecchi
# rpg maker) ho pensato di dare la possibilità di rimuoverla.
# Qualunque sia l'impostazione, varrà solo per le SKILL COMBO!
# Quindi per le skill normali basterà mettere sopra (attivo) o sotto (disattivo)
# il Main lo Skill AddOn incluso in questa demo.
end
end

$combo_skill = [53, 54, 55, 56, 57, 58, 59, 60, 61, 81, 82, 83, 84, 85, 86, 87, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 147, 148, 149, 150, 151, 152, 153, 154]
# Contiene gli id delle skill che sono combo.
# In questo caso le skill dal n° 82 al n° 84 sono combo.
# Quindi vi chiederete: "Sono combo sì, ma chi le usa?"
# Questo viene specificato sotto.

$combo_hero = [[1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 9], [1, 8], [1, 7], [1, 10], [2, 3], [2, 4], [2, 5], [2, 6], [2, 8], [2, 7], [3, 4], [3, 5], [3, 7], [4, 5], [4, 6], [4, 9], [5, 10], [9, 8], [9, 7], [7, 8], [7, 9, 8], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [11, 12, 13, 14], [6, 11, 12, 13, 14], [15, 16, 17, 18]]
# Contiene gli id degli eroi che usano le combo (per ogni combo sono tra parentesi quadra).
# In questo caso la prima skill combo (la n° 82 come impostato sopra) sarà eseguita dagli eroi
# n°1 e 8; la seconda skill dagli eroi 5 e 8; la terza da 7 e 8.
# E a questo punto vi chiederete: "E come faccio a specificare gli MP necessari per ogni eroe?"
# E anche questo viene specificato sotto.

$combo_point = [[4, 4], [4, 4], [4, 4], [4, 4], [6, 6], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [8, 8, 8], [10, 10, 10, 10, 10], [12, 12, 12, 12, 12], [16, 16, 16, 16, 16], [20, 20, 20, 20, 20], [22, 22, 22, 22, 22], [16, 16, 16, 16], [16, 16, 16, 16, 16], [20, 20, 20, 20]]
# Contiene i punti necessari per eseguire la combo per ogni eroe.
# Identico a quello sopra, solo che dovete sostituire il numero dell'eroe con gli MP necessari per
# utilizzare la combo. In questo caso nella skill 82 l'eroe 1 necessiterà di 100 MP, l'eroe 8 di 75.
# Nota: gli MP specificati nella scheda della skill, se la skill è combo, non serviranno
#       ad un emerito niente.

# Fine configurazioni

#-----------------VALENTINO------------
SKILL_COMBO = {
147=>SHOOT, #shoot
148=>ARROW,  #arrow
149=>VICTORY, #victory
150=>CLUSTER, #cluster
152=>ARROW  #arrow
}
#----------------VALENTINO-------------


class Window_Combo < Window_Selectable
 #--------------------------------------------------------------------------
 # ● Inizializzazione
 #--------------------------------------------------------------------------
 def initialize(actor)
   super(0, 320, 640, 160)
   @actor = actor
   @column_max = 1
   refresh
   self.index = 0
   if $game_temp.in_battle
     self.y = 64
     self.height = 256
     self.back_opacity = 160
   end
 end
 #--------------------------------------------------------------------------
 # ● Riporta la combo selezionata
 #--------------------------------------------------------------------------
 def skill
   return @data[self.index]
 end
 #--------------------------------------------------------------------------
 # ● Conteggia i combo da disegnare
 #--------------------------------------------------------------------------
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
   for i in 0...@actor.skills.size
     skill = $data_skills[@actor.skills[i]]
     if skill != nil and $combo_skill.include?(skill.id)
       @data.push(skill)
     end
   end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
 #--------------------------------------------------------------------------
 # ● Disegna la combo
 #--------------------------------------------------------------------------
 def draw_item(index)
   skill = @data[index]
   for i in 0...$combo_skill.size
     if $combo_skill[i] != nil
     if $combo_skill[i] == skill.id
       n = i
     end
     end
   end
   v = 0
   for h in 0...$combo_hero[n].size
     if $game_actors[$combo_hero[n][h]] != nil
     if $game_actors[$combo_hero[n][h]].combo_can_use?(skill.id)
       v += 1
     end
   end
   end
   
   #VALENTINO
    formation = SKILL_COMBO[skill.id]
    @colore = false
   if formation != nil
     if $battle_formation == formation
       self.contents.font.color = normal_color
     else
       @colore = true
       self.contents.font.color = disabled_color
     end
   end
   #VALENTINO
   
   if v == $combo_hero[n].size
     self.contents.font.color = normal_color
   else
     self.contents.font.color = disabled_color
   end
   
  self.contents.font.color = disabled_color if @colore
   
   
   x = 4
   y = index * 32
   rect = Rect.new(x, y, self.width - 32, 64)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   bitmap = RPG::Cache.icon(skill.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
   if not $game_temp.in_battle
     self.contents.draw_text(x + 232, y, 48, 32, $combo_point[n][0].to_s, 2)
     self.contents.draw_text(x + 288, y, 48, 32, $combo_point[n][1].to_s, 2) rescue nil
     self.contents.draw_text(x + 344, y, 48, 32, $combo_point[n][2].to_s, 2) rescue nil
     self.contents.draw_text(x + 400, y, 48, 32, $combo_point[n][3].to_s, 2) rescue nil
   else
     po = []
     for i in 0...$game_party.actors.size
       if $combo_hero[n].include?($game_party.actors[i].id)
         po.push $game_party.actors[i].id
       end
     end
     ex = po.size
     for r in 0...$combo_hero[n].size
       if $combo_hero[n][r] != nil
       if not po.include?($combo_hero[n][r])
         po.push $combo_hero[n][r]
       end
       end
     end
     for ach in 0...po.size
       if ach == ex
         self.contents.font.color = self.contents.font.color == normal_color ? knockout_color : Color.new(255, 64, 0, 128)
       end
       for h in 0...$combo_hero[n].size
         if $combo_point[n][h] != nil
         if $combo_hero[n][h] == po[ach]
           punti = $combo_point[n][h]
         end
         end
       end
       self.contents.draw_text(x + 232 + (ach * 56), y, 48, 32, punti.to_s, 2)
     end
   end
 end
 #--------------------------------------------------------------------------
 # ● Finestra con descrizione combo
 #--------------------------------------------------------------------------
 def update_help
   @help_window.set_text(self.skill == nil ? "" : self.skill.description)
 end
end

class Window_ComboStatus < Window_Base
 #--------------------------------------------------------------------------
 # ● Inizializzazione
 #--------------------------------------------------------------------------
 def initialize(actor, n)
   super(0, 64*n, 640, 64)
   self.contents = Bitmap.new(width - 32, height - 32)
   @actor = actor
   refresh
 end
 #--------------------------------------------------------------------------
 # ● Disegna i valori
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   if @actor != nil
     draw_actor_name(@actor, 4, 0)
     draw_actor_state(@actor, 140, 0)
     draw_actor_hp(@actor, 284, 0)
     draw_actor_sp(@actor, 460, 0)
   end
 end
 #--------------------------------------------------------------------------
 # ● Imposta il personaggio
 #--------------------------------------------------------------------------
 def actor=(actor)
   @actor = actor
   refresh
 end
end

class Scene_Combo
 #--------------------------------------------------------------------------
 # ● Inizializzazione
 #--------------------------------------------------------------------------
 def initialize(actor_index = 0, equip_index = 0)
   @actor_index = actor_index
 end
 #--------------------------------------------------------------------------
 # ● Ciclo principale
 #--------------------------------------------------------------------------
 def main
   @actor = $game_party.actors[@actor_index]
   @help_window = Window_Help.new
   @status_window = Window_ComboStatus.new(@actor, 1)
   @status_window2 = Window_ComboStatus.new(nil, 2)
   @status_window3 = Window_ComboStatus.new(nil, 3)
   @status_window4 = Window_ComboStatus.new(nil, 4)
   @skill_window = Window_Combo.new(@actor)
   @skill_window.help_window = @help_window
   @target_window = Window_Target.new
   @target_window.visible = false
   @target_window.active = false
   Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   Graphics.freeze
   @help_window.dispose
   @status_window.dispose
   @status_window2.dispose
   @status_window3.dispose
   @status_window4.dispose
   @skill_window.dispose
   @target_window.dispose
 end
 #--------------------------------------------------------------------------
 # ● Aggiornamento
 #--------------------------------------------------------------------------
 def update
   @help_window.update
   @status_window.update
   @status_window2.update
   @status_window3.update
   @status_window4.update
   @skill_window.update
   @target_window.update
   if @skill_window.active
     update_skill
     return
   end
   if @target_window.active
     update_target
     return
   end
 end
 #--------------------------------------------------------------------------
 # ● Gestione combo
 #--------------------------------------------------------------------------
 def update_skill
   for i in 0...$combo_skill.size
     if $combo_skill[i] == @skill_window.skill.id
       n = i
     end
   end
   if n != nil
     v = 0
     for h in 0...$combo_hero[n].size
       if $game_actors[$combo_hero[n][h]] != nil
       if $game_actors[$combo_hero[n][h]].combo_can_use?(@skill_window.skill.id)
         v += 1
       end
       end
     end
   end
   @status_window.actor = $game_actors[$combo_hero[n][0]] rescue @status_window.actor = @actor
   @status_window2.actor = $game_actors[$combo_hero[n][1]] rescue @status_window2.actor = nil
   @status_window3.actor = $game_actors[$combo_hero[n][2]] rescue @status_window3.actor = nil
   @status_window4.actor = $game_actors[$combo_hero[n][3]] rescue @status_window4.actor = nil
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Menu.new(1)
     return
   end
   if Input.trigger?(Input::C)
     @skill = @skill_window.skill
     if @skill == nil or not v == $combo_hero[n].size
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     $game_system.se_play($data_system.decision_se)
     if @skill.scope >= 3
       @skill_window.active = false
       @target_window.x = (@skill_window.index + 1) % 2 * 304
       @target_window.visible = true
       @target_window.active = true
       if @skill.scope == 4 || @skill.scope == 6
         @target_window.index = -1
       elsif @skill.scope == 7
         @target_window.index = @actor_index - 10
       else
         @target_window.index = 0
       end
     else
       if @skill.common_event_id > 0
         $game_temp.common_event_id = @skill.common_event_id
         $game_system.se_play(@skill.menu_se)
         for s in 0...$combo_hero[n].size
           if $game_actors[$combo_hero[n][s]] != nil
           $game_actors[$combo_hero[n][s]].sp -= $combo_point[n][s]
         end
         
         end
         @status_window.refresh
         @status_window2.refresh
         @status_window3.refresh
         @status_window4.refresh
         @skill_window.refresh
         @target_window.refresh
         $scene = Scene_Map.new
         return
       end
     end
     return
   end
   if Input.trigger?(Input::R)
     $game_system.se_play($data_system.cursor_se)
     @actor_index += 1
     @actor_index %= $game_party.actors.size
     $scene = Scene_Combo.new(@actor_index)
     return
   end
   if Input.trigger?(Input::L)
     $game_system.se_play($data_system.cursor_se)
     @actor_index += $game_party.actors.size - 1
     @actor_index %= $game_party.actors.size
     $scene = Scene_Combo.new(@actor_index)
     return
   end
   if Input.trigger?(Impostazioni::CTCombo::TASTO_CAMBIO_SKILL_E_COMBO)
     $game_system.se_play($data_system.decision_se)
     $scene = Scene_Skill.new(@actor_index)
     return
   end
 end
 #--------------------------------------------------------------------------
 # ● Scelta personaggio per utilizzare combo di cura
 #--------------------------------------------------------------------------
 def update_target
   for i in 0...$combo_skill.size
     if $combo_skill[i] == @skill_window.skill.id
       n = i
     end
   end
   @status_window.actor = $game_actors[$combo_hero[n][0]] rescue @status_window.actor = @actor
   @status_window2.actor = $game_actors[$combo_hero[n][1]] rescue @status_window2.actor = nil
   @status_window3.actor = $game_actors[$combo_hero[n][2]] rescue @status_window3.actor = nil
   @status_window4.actor = $game_actors[$combo_hero[n][3]] rescue @status_window4.actor = nil
   v = 0
   for h in 0...$combo_hero[n].size
     if $game_actors[$combo_hero[n][h]] != nil
     if $game_actors[$combo_hero[n][h]].combo_can_use?(@skill_window.skill.id)
       v += 1
     end
     end
   end
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     @skill_window.active = true
     @target_window.visible = false
     @target_window.active = false
     return
   end
   if Input.trigger?(Input::C)
     unless v == $combo_hero[n].size
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     if @target_window.index == -1
       used = false
       for i in $game_party.actors
         used |= i.skill_effect(@actor, @skill)
       end
     end
     if @target_window.index <= -2
       target = $game_party.actors[@target_window.index + 10]
       used = target.skill_effect(@actor, @skill)
     end
     if @target_window.index >= 0
       target = $game_party.actors[@target_window.index]
       used = target.skill_effect(@actor, @skill)
     end
     if used
       $game_system.se_play(@skill.menu_se)
       for s in 0...$combo_hero[n].size
         if $game_actors[$combo_hero[n][s]] != nil
         $game_actors[$combo_hero[n][s]].sp -= $combo_point[n][s]
         end
       end
       @status_window.refresh
       @status_window2.refresh
       @status_window3.refresh
       @status_window4.refresh
       @skill_window.refresh
       @target_window.refresh
       if $game_party.all_dead?
         $scene = Scene_Gameover.new
         return
       end
       if @skill.common_event_id > 0
         $game_temp.common_event_id = @skill.common_event_id
         $scene = Scene_Map.new
         return
       end
     end
     unless used
       $game_system.se_play($data_system.buzzer_se)
     end
     return
   end
 end
end

class Game_Actor < Game_Battler
   def combo_can_use?(skill_id)
   for i in 0...$combo_skill.size
     if $combo_skill[i] == skill_id
       n = i
     end
   end
   for i in 0...$combo_hero[n].size
     if $game_actors[$combo_hero[n][i]] != nil
     if not $game_actors[$combo_hero[n][i]].skills.include?(skill_id)
       return false
     end
   end
   end
 
   if Impostazioni::CTCombo::USA_ATTRIBUTI_SKILL == 0
     return super
   else
     @acc = 0
     @times = 0
     for a in $data_skills[skill_id].element_set
       @times +=1
       if ($combo_hero[n][0] != nil and $data_weapons[$game_actors[$combo_hero[n][0]].weapon_id] != nil and $data_weapons[$game_actors[$combo_hero[n][0]].weapon_id].element_set.include?(a)) or
         ($combo_hero[n][1] != nil and $data_weapons[$game_actors[$combo_hero[n][1]].weapon_id] != nil and $data_weapons[$game_actors[$combo_hero[n][1]].weapon_id].element_set.include?(a)) or
         ($combo_hero[n][2] != nil and $data_weapons[$game_actors[$combo_hero[n][2]].weapon_id] != nil and $data_weapons[$game_actors[$combo_hero[n][2]].weapon_id].element_set.include?(a))
         @acc += 1
       else
         if ($combo_hero[n][0] != nil and $data_armors[$game_actors[$combo_hero[n][0]].armor1_id] != nil and $data_armors[$game_actors[$combo_hero[n][0]].armor1_id].guard_element_set.include?(a)) or
           ($combo_hero[n][1] != nil and $data_armors[$game_actors[$combo_hero[n][1]].armor1_id] != nil and $data_armors[$game_actors[$combo_hero[n][1]].armor1_id].guard_element_set.include?(a)) or
           ($combo_hero[n][2] != nil and $data_armors[$game_actors[$combo_hero[n][2]].armor1_id] != nil and $data_armors[$game_actors[$combo_hero[n][2]].armor1_id].guard_element_set.include?(a))
           @acc += 1
         else
           if ($combo_hero[n][0] != nil and $data_armors[$game_actors[$combo_hero[n][0]].armor2_id] != nil and $data_armors[$game_actors[$combo_hero[n][0]].armor2_id].guard_element_set.include?(a)) or
             ($combo_hero[n][1] != nil and $data_armors[$game_actors[$combo_hero[n][1]].armor2_id] != nil and $data_armors[$game_actors[$combo_hero[n][1]].armor2_id].guard_element_set.include?(a)) or
             ($combo_hero[n][2] != nil and $data_armors[$game_actors[$combo_hero[n][2]].armor2_id] != nil and $data_armors[$game_actors[$combo_hero[n][2]].armor2_id].guard_element_set.include?(a))
             @acc += 1
           else
             if ($combo_hero[n][0] != nil and $data_armors[$game_actors[$combo_hero[n][0]].armor3_id] != nil and $data_armors[$game_actors[$combo_hero[n][0]].armor3_id].guard_element_set.include?(a)) or
               ($combo_hero[n][1] != nil and $data_armors[$game_actors[$combo_hero[n][1]].armor3_id] != nil and $data_armors[$game_actors[$combo_hero[n][1]].armor3_id].guard_element_set.include?(a)) or
               ($combo_hero[n][2] != nil and $data_armors[$game_actors[$combo_hero[n][2]].armor3_id] != nil and $data_armors[$game_actors[$combo_hero[n][2]].armor3_id].guard_element_set.include?(a))
               @acc += 1
             else
               if ($combo_hero[n][0] != nil and $data_armors[$game_actors[$combo_hero[n][0]].armor4_id] != nil and $data_armors[$game_actors[$combo_hero[n][0]].armor4_id].guard_element_set.include?(a)) or
                 ($combo_hero[n][1] != nil and $data_armors[$game_actors[$combo_hero[n][1]].armor4_id] != nil and $data_armors[$game_actors[$combo_hero[n][1]].armor4_id].guard_element_set.include?(a)) or
                 ($combo_hero[n][2] != nil and $data_armors[$game_actors[$combo_hero[n][2]].armor4_id] != nil and $data_armors[$game_actors[$combo_hero[n][2]].armor4_id].guard_element_set.include?(a))
                 @acc += 1
               else
                 return false
               end
             end
           end
         end
       end
     end
     if @times == @acc
       return super
     else
       return false
     end
   end
 end
end

class Game_Battler
 def combo_can_use?(skill_id)
   for i in 0...$combo_skill.size
     if $combo_skill[i] == skill_id
       n = i
     end
   end
   for i in 0...$combo_hero[n].size
     if $game_actors[$combo_hero[n][i]] != nil
     if $combo_point[n][i] > $game_actors[$combo_hero[n][i]].sp
       return false
     end
     end
   end
   for i in 0...$combo_hero[n].size
     if $game_actors[$combo_hero[n][i]] != nil
     if $game_actors[$combo_hero[n][i]].hp == 0 and not $game_actors[$combo_hero[n][i]].immortal
       return false
     end
     end
   end
   for i in 0...$combo_hero[n].size
     if $game_actors[$combo_hero[n][i]] != nil
     if $data_skills[skill_id].atk_f == 0 and $game_actors[$combo_hero[n][i]].restriction == 1
       return false
     end
     end
   end
   occasion = $data_skills[skill_id].occasion
   pl = 0
   if $game_temp.in_battle
     for i in 0...$combo_hero[n].size
       if $game_actors[$combo_hero[n][i]] != nil
       if $game_party.actors.include?($game_actors[$combo_hero[n][i]])
         pl += 1
       end
       end
     end
     if pl == $combo_hero[n].size
       return (occasion == 0 or occasion == 1)
     else
       return false
     end
   else
     for i in 0...$combo_hero[n].size
       if $combo_hero[n][i] != nil
       if Impostazioni::CTCombo::ARCHIVIAZIONE_VIA_SWITCH
         if $game_switches[$combo_hero[n][i] + Impostazioni::CTCombo::SWITCH_INIZIALE_MEMBRI - 1] == true
           pl += 1
         end
         end
       else
         if $game_party.actors.include?($combo_hero[n][i])
           pl += 1
         end
       end
     end
     if pl == $combo_hero[n].size
       return (occasion == 0 or occasion == 2)
     else
       return false
     end
   end
 end
end

class Scene_Skill
 alias ctbs_update_skill update_skill
 def update_skill
   ctbs_update_skill
   if Input.trigger?(Impostazioni::CTCombo::TASTO_CAMBIO_SKILL_E_COMBO)
     $game_system.se_play($data_system.decision_se)
     $scene = Scene_Combo.new(@actor_index)
     return
   end
 end
end

class Scene_Battle
 def main
   $game_temp.in_battle = true
   $game_temp.battle_turn = 0
   $game_temp.battle_event_flags.clear
   $game_temp.battle_abort = false
   $game_temp.battle_main_phase = false
   $game_temp.battleback_name = $game_map.battleback_name
   $game_temp.forcing_battler = nil
   $game_system.battle_interpreter.setup(nil, 0)
   @troop_id = $game_temp.battle_troop_id
   $game_troop.setup(@troop_id)
   @party_command_window = Window_PartyCommand.new
   @help_window = Window_Help.new
   @help_window.back_opacity = 160
   @help_window.visible = false
   @status_window = Window_BattleStatus.new
   @message_window = Window_Message.new
   #ccoa
   #s1 = $data_system.words.attack
   #s2 = $data_system.words.skill
   #s3 = $data_system.words.guard
   #s4 = $data_system.words.item
   #@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
   #@actor_command_window.y = 160
   #@actor_command_window.back_opacity = 160
   #@actor_command_window.active = false
   #@actor_command_window.visible = false
   @help_window2 = Win_Help.new
   @help_window2.visible = false
   @help_window2.contents_opacity = 0
   @help_time = 0
   @actor_command_windows = []
   setup_actor_command_windows
   @cursor_bitmap = Sprite.new
   @cursor_bitmap.bitmap = RPG::Cache.windowskin($game_system.windowskin_name)
   @cursor_bitmap.src_rect.set(128, 96, 32, 32)
   @cursor_bitmap.visible = false
   @blink_count = 0
   #fine ccoa
   @spriteset = Spriteset_Battle.new
   @wait_count = 0
   # compatibilità CCOA
   @extra_sprites = [] if @extra_sprites == nil
  # cp_preset_party
  # @cp_meters = CP_Meters.new
  # @extra_sprites.push(@cp_meters)
   # fine compatibilità
   if $data_system.battle_transition == ""
     Graphics.transition(0)
   else
     Graphics.transition(40, "Graphics/Transitions/" +
       $data_system.battle_transition) #era 40 ora è 100 x ccoa
   end
   start_phase1
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   $game_map.refresh
   Graphics.freeze
   #ccoa
   for window in @actor_command_windows
     window.dispose
   end
   #@actor_command_window.dispose
   #fine ccoa
   @party_command_window.dispose
   @help_window.dispose
   @help_window2.dispose #ccoa
   @status_window.dispose
   @message_window.dispose
   if @skill_window != nil
     @skill_window.dispose
   end
   #ccoa
   if @skill_window2 != nil
     @skill_window2.dispose
   end
   #fine ccoa
   if @combo_window != nil
     @combo_window.dispose
   end
   if @item_window != nil
     @item_window.dispose
   end
   if @result_window != nil
     @result_window.dispose
   end
   @spriteset.dispose
   # compatibilità CCOA
   @cursor_bitmap.dispose
   #@cp_meters.dispose
   # fine compatibilità
   if $scene.is_a?(Scene_Title)
     Graphics.transition
     Graphics.freeze
   end
   if $BTEST and not $scene.is_a?(Scene_Gameover)
     $scene = nil
   end
 end

 def update_phase3
   if @enemy_arrow != nil
     update_phase3_enemy_select
     return #ccoa
   elsif @actor_arrow != nil
     update_phase3_actor_select
     return #ccoa
   elsif @skill_window != nil
     update_phase3_skill_select
     return #ccoa
   elsif @combo_window != nil
     update_phase3_combo_select
     return #ccoa
   elsif @item_window != nil
     update_phase3_item_select
     return #ccoa
   end #ccoa
   
   #ccoa
   #elsif @actor_command_window.active
   #  update_phase3_basic_command
   #end
   # If actor command window is enabled
   for i in 0..$game_party.actors.size - 1
     if @actor_command_windows[i].active
         update_phase3_basic_command
       return
     end
   end
   #fine ccoa
 end
 
 alias update_phase3_skill_select_combo update_phase3_skill_select
 def update_phase3_skill_select
   update_phase3_skill_select_combo
   if Input.trigger?(Impostazioni::CTCombo::TASTO_CAMBIO_SKILL_E_COMBO)
       $game_system.se_play($data_system.decision_se)
       @active_battler.current_action.kind = 1
       end_skill_select
       start_combo_select
     return
   end
 end

 def update_phase3_combo_select
   @combo_window.visible = true
   @combo_window.update
   for i in 0...$combo_skill.size
     if $combo_skill[i] == @combo_window.skill.id
       n = i
     end
   end
   for b in 0...$game_party.actors.size
     $game_party.actors[b].blink = false
   end
   if n != nil
     for h in 0...$combo_hero[n].size
       if $game_actors[$combo_hero[n][h]] != nil
       if $game_party.actors.include?($game_actors[$combo_hero[n][h]])
         $game_actors[$combo_hero[n][h]].blink = true
         end
       end
     end
   end
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     end_combo_select
     return
   end
   if Input.trigger?(Input::C)
     @skill = @combo_window.skill
     #VALENTINO
   formation = SKILL_COMBO[@skill.id]
   if formation != nil
     unless $battle_formation == formation
       $game_system.se_play($data_system.buzzer_se)
       return
     end
   end
     #VALENTINO
     
     if n == nil
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     v = 0
     for h in 0...$combo_hero[n].size
       if $game_actors[$combo_hero[n][h]] != nil
       if $game_actors[$combo_hero[n][h]].combo_can_use?(@skill.id)
         v += 1
       end
       end
     end
     if @skill == nil or not v == $combo_hero[n].size
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     $game_system.se_play($data_system.decision_se)
     @active_battler.current_action.skill_id = @skill.id
     @combo_window.visible = false
     if @skill.scope == 1
       start_enemy_select
     elsif @skill.scope == 3 or @skill.scope == 5
       start_actor_select
     else
       end_combo_select
       phase3_next_actor
     end
     return
   end
   if Input.trigger?(Impostazioni::CTCombo::TASTO_CAMBIO_SKILL_E_COMBO)
       $game_system.se_play($data_system.decision_se)
       @active_battler.current_action.kind = 1
       end_combo_select
       start_skill_select
     return
   end    
 end

 def update_phase3_enemy_select
   @enemy_arrow.update
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     end_enemy_select
     return
   end
   if Input.trigger?(Input::C)
     $game_system.se_play($data_system.decision_se)
     @active_battler.current_action.target_index = @enemy_arrow.index
     end_enemy_select
     if @skill_window != nil
       end_skill_select
     end
     if @combo_window != nil
       end_combo_select
     end
     if @item_window != nil
       end_item_select
     end
     phase3_next_actor
   end
 end

 def update_phase3_actor_select
   @actor_arrow.update
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     end_actor_select
     return
   end
   if Input.trigger?(Input::C)
     $game_system.se_play($data_system.decision_se)
     @active_battler.current_action.target_index = @actor_arrow.index
     end_actor_select
     if @skill_window != nil
       end_skill_select
     end
     if @combo_window != nil
       end_combo_select
     end
     if @item_window != nil
       end_item_select
     end
     phase3_next_actor
   end
 end

 def start_combo_select
   @combo_window = Window_Combo.new(@active_battler)
   @combo_window.help_window = @help_window
   #ccoa
   for i in 0..$game_party.actors.size - 1
     @actor_command_windows[i].active = false
     @actor_command_windows[i].visible = false
   end
   #@actor_command_window.active = false
   #@actor_command_window.visible = false
   #fine ccoa
 end
 
 def end_combo_select
   for b in 0...$game_party.actors.size
     $game_party.actors[b].blink = false
   end
   @active_battler.blink = true
   @combo_window.dispose
   @combo_window = nil
   @help_window.visible = false
   #ccoa
   @actor_command_windows[@actor_index].active = true
   @actor_command_windows[@actor_index].visible = true
   #@actor_command_window.active = true
   #@actor_command_window.visible = true
   #fine ccoa
 end

 def make_skill_action_result
   @animate = nil
   @skill = $data_skills[@active_battler.current_action.skill_id]
   for i in 0...$combo_skill.size
     if $combo_skill[i] == @skill.id
       n = i
     end
   end
   if not $combo_skill.include?(@skill.id)
     #ccoa
     if @active_battler.is_a?(Game_Actor)
       if $USING_INDIV_SKILL_ANIM
         @active_battler.set_pose(@active_battler.skill_hash[$data_skills[@active_battler.current_action.skill_id].name], false)
       else # get animation by skill type
         @active_battler.set_pose(@active_battler.skill_type_hash[@active_battler.skill_kind], false)
       end
     else
       @active_battler.set_pose($SKILL, false)
     end
     #fine ccoa
     unless @active_battler.current_action.forcing
       unless @active_battler.skill_can_use?(@skill.id)
         $game_temp.forcing_battler = nil
         @phase4_step = 1
         return
       end
     end
     @active_battler.sp -= @skill.sp_cost
     @status_window.refresh
     #ccoa
     @help_window2.contents_opacity = 0
     @help_window2.y = -200
     $name_help = CCOA_CBS::NAME_SKILL
     @help_window2.set_text(@skill.name, 1)
     #@help_window.set_text(@skill.name, 1)
     #fine ccoa
     @animation1_id = @skill.animation1_id
     @animation2_id = @skill.animation2_id
     @common_event_id = @skill.common_event_id
     set_target_battlers(@skill.scope)
     for target in @target_battlers
       target.skill_effect(@active_battler, @skill)
       #ccoa
       unless target == @active_battler
         reset_pose(target)
       end
       #fine ccoa
     end
   else
     #ccoa
     if n != nil
       for h in 0...$combo_hero[n].size
         if $game_actors[$combo_hero[n][h]] != nil
         if $game_actors[$combo_hero[n][h]].is_a?(Game_Actor)
           if $USING_INDIV_SKILL_ANIM
             $game_actors[$combo_hero[n][h]].set_pose($game_actors[$combo_hero[n][h]].skill_hash[$data_skills[@active_battler.current_action.skill_id].name], false)
           else # get animation by skill type
             $game_actors[$combo_hero[n][h]].set_pose($game_actors[$combo_hero[n][h]].skill_type_hash[$game_actors[$combo_hero[n][h]].skill_kind], false)
           end
           end
         else
           $game_actors[$combo_hero[n][h]].set_pose($SKILL, false) if $game_actors[$combo_hero[n][h]] != nil
         end
       end
     else
       if @active_battler.is_a?(Game_Actor)
         if $USING_INDIV_SKILL_ANIM
           @active_battler.set_pose(@active_battler.skill_hash[$data_skills[@active_battler.current_action.skill_id].name], false)
         else # get animation by skill type
           @active_battler.set_pose(@active_battler.skill_type_hash[@active_battler.skill_kind], false)
         end
       else
         @active_battler.set_pose($SKILL, false)
       end
     end
     #fine ccoa
     unless @active_battler.current_action.forcing
       if n != nil
         v = 0
         for h in 0...$combo_hero[n].size
           if $game_actors[$combo_hero[n][h]] != nil
           if $game_actors[$combo_hero[n][h]].combo_can_use?(@skill.id)
             v +=1
           end
           end
         end
       end
       unless v == $combo_hero[n].size
         $game_temp.forcing_battler = nil
         @phase4_step = 1
         return
       end
     end
     if n != nil
       for h in 0...$combo_hero[n].size
         if $game_actors[$combo_hero[n][h]] != nil
         $game_actors[$combo_hero[n][h]].sp -= $combo_point[n][h]
         @animate = $combo_hero[n]
       end
       end
     end
     @status_window.refresh
     #ccoa
     @help_window2.contents_opacity = 0
     @help_window2.y = -200
     $name_help = CCOA_CBS::NAME_SKILL
     @help_window2.set_text(@skill.name, 1)
     #@help_window.set_text(@skill.name, 1)
     #fine ccoa
     @animation1_id = @skill.animation1_id
     @animation2_id = @skill.animation2_id
     @common_event_id = @skill.common_event_id
     set_target_battlers(@skill.scope)
     for target in @target_battlers
       target.skill_effect(@active_battler, @skill)
       #ccoa
       if n != nil
         for h in 0...$combo_hero[n].size
           if $game_actors[$combo_hero[n][h]] != nil
           unless target == $game_actors[$combo_hero[n][h]]
             reset_pose(target)
           end
           end
         end
       else
         unless target == @active_battler
           reset_pose(target)
         end
       end
       #fine ccoa
     end
   end
 end

 def update_phase4_step3
   if @animate == nil
     if @animation1_id == 0
       @active_battler.white_flash = true
       #ccoa
       if @active_battler.animated
         @wait_count = [@active_battler.attack_frames * 10 - 10, 8].max
       else
         @wait_count = 8
       end
       #fine ccoa
     else
       @active_battler.animation_id = @animation1_id
       @active_battler.animation_hit = true
     end
     #ccoa
     if @active_battler.current_action.kind == 0 and @active_battler.current_action.basic == 0
       @active_battler.set_pose($ATTACK, false)
     end
     #fine ccoa
     @phase4_step = 4
   else
     if @animation1_id == 0
       for b in 0...@animate.size
         $game_actors[@animate[b]].white_flash = true
         #ccoa
         if $game_actors[@animate[b]].animated
           @wait_count = [$game_actors[@animate[b]].attack_frames * 10 - 10, 8].max
         else
           @wait_count = 8
         end
         #fine ccoa
       end
     else
       for b in 0...@animate.size
         $game_actors[@animate[b]].animation_id = @animation1_id
         $game_actors[@animate[b]].animation_hit = true
       end
     end
     #ccoa
     for b in 0...@animate.size
       if $game_actors[@animate[b]].current_action.kind == 0 and $game_actors[@animate[b]].current_action.basic == 0
         $game_actors[@animate[b]].set_pose($ATTACK, false)
       end
     end
     #fine ccoa
     @animate = nil
     @phase4_step = 4
   end
 end
end

class Window_Skill < Window_Selectable
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
   for i in 0...@actor.skills.size
     skill = $data_skills[@actor.skills[i]]
     #ccoa
     if (@skill_kind == -1)
       if skill != nil and not $combo_skill.include?(skill.id)
         @data.push(skill)
       end
     else
       if (skill != nil and skill.element_set.include?(@skill_kind)) and not $combo_skill.include?(skill.id)
         @data.push(skill)
       end
     end
     #if skill != nil and not $combo_skill.include?(skill.id)
     #  @data.push(skill)
     #end
     #fine ccoa
   end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
end

#ccoa
class Win_Skill < Window_Selectable
   def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end

   @data = []
   for i in 0...@actor.skills.size
     skill = $data_skills[@actor.skills[i]]
     if (@skill_kind == -1)
       if skill != nil and not $combo_skill.include?(skill.id)
         @data.push(skill)
       end
     else
       if (skill != nil and skill.element_set.include?(@skill_kind)) and not $combo_skill.include?(skill.id)
         @data.push(skill)
       end
     end
   end
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
end
#fine ccoa

and I would to group these skills in a separate menu if possible, otherwise it will not make them appear in the skill menu.
Spoiler: ShowHide

Scene Skill (Link Tech):