Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Equip Summon script
#1
This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.


first add this to the window base script. and remember to make a folder in the character folder and call that folder Faces and add the face sets of u characters, don't forget to name the character faces with the name of the character set

here is the script for the faceset

Code:
#--------------------------------------------------------------------------
#  Define Faces
#--------------------------------------------------------------------------
def draw_actor_face(actor, x, y)
  face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
  fw = face.width
  fh = face.height
  src_rect = Rect.new(3, -1, fw, fh)
  self.contents.blt(x - fw / 23, y - fh, face, src_rect)
end


This is part of the summon system, it is just the equipment section of the summon system. i will post the rest of it later.


make a new script after the window skill script. and add this one. this window skills script is for the summon equip. don't replace it with the window skill or it will mess up and done overwrite your window skill script

here is the window skills

Code:
#==============================================================================
# –�  Window_Skill
#------------------------------------------------------------------------------
#  スキル画é?¢ã€?ãƒ?トル画é?¢ã?§ã€?使用ã?§ã??るスキルã?®ä¸€è¦§ã‚’表示ã?™ã‚‹ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã?§ã?™ã€‚
#==============================================================================

class Window_Skills < Window_Selectable
  #--------------------------------------------------------------------------
  # —? オブジェクトåˆ?期化
  #     actor : アクター
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 75, 290, 405)
    @actor = actor
    @column_max = 1
    refresh
    self.index = 0
    # 戦闘中ã?®å� ´å?ˆã?¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’ç”»é?¢ä¸­å¤®ã?¸ç§»å‹•ã?—ã€?å?� é€?明ã?«ã?™ã‚‹
    if $game_temp.in_battle
      self.x = 200
      self.y = 225
      self.height = 256
      self.width = 440
      self.back_opacity = 160
    end
  end
  #--------------------------------------------------------------------------
  # —? スキルã?®å?–å¾—
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # —? リフレッシュ
  #--------------------------------------------------------------------------
  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
        @data.push(skill)
      end
    end
    # é� …目数ã?Œ 0 ã?§ã?ªã?‘ã‚Œã?°ãƒ“ットマップを作æˆ?ã?—ã€?å…¨é� …目をæ??ç”»
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      self.contents.font.name = $fontface
      self.contents.font.size = $fontsize
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  # —? é� …ç›®ã?®æ??ç”»
  #     index : é� …目番å?·
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 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))
    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)
    self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
  end


  #--------------------------------------------------------------------------
  # —? ヘルプãƒ� キスト更新
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  end
end

now make a new script below scene skill script and add this one

Code:
#---------------------------------------------------------------------
#Equipment for summon-------------------------------------------------
#by olamide bakre
#Scene_EquipSummon

#help window
class Window_Descri < Window_Base
  #--------------------------------------------------------------------------
  # —? initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 640, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
  end


  def set_text(text, align = 1)
    if text != @text or align != @align
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
      @text = text
      @align = align
      @actor = nil
    end
    self.visible = true
  end
end
#end of text box
#text box
class Window_TextSummon < Window_Selectable

  def initialize
    super(0, 0, 290, 76)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
  end
  #--------------------------------------------------------------------------
  # —? refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.draw_text(4, 0, 120,32, "Summons List")
    testing = Time.now.strftime("%a %b %e %H:%M:%S %Y\n")
  end
end
#Equipment list

class Window_ListSummon < Window_Skills

  def initialize(actor, element_id)
    @element_id = element_id
    super(actor)
  end

#define item max
#def summon
  # return @data[self.index]
# end

  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    #loop
    for i in 0...@actor.skills.size
      skill = $data_skills[@actor.skills[i]]
      if skill != nil and skill.element_set.include?(@element_id)
        @data.push(skill)
      end
    end
    #item max is set to a value and called as a function
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      self.contents.font.name = $fontface
      self.contents.font.size = $fontsize
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #end of function
  #beginning of object
  def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = normal_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))
    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)
    #self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # —? update help text
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  end
end


#end of draw object


#summon mixtured with weapon
class Window_WeaponSummon < Window_Selectable

   def initialize(actor)
   super(290, 0, 350, 210)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $fontface
   self.contents.font.size = $fontsize
   @actor = actor
   refresh
   self.index = 0
end
#--------------------------------------------------------------------------
# —? return item index
#--------------------------------------------------------------------------
def item
   return @data[self.index]
end
#--------------------------------------------------------------------------
# —? refresh
#--------------------------------------------------------------------------
def refresh
   self.contents.clear
   @data = []
   @data.push($data_weapons[@actor.weapon_id])
   @data.push($data_armors[@actor.armor1_id])
   @data.push($data_armors[@actor.armor2_id])
   @data.push($data_armors[@actor.armor3_id])
   @data.push($data_armors[@actor.armor4_id])
   @item_max = @data.size
   self.contents.font.color = system_color
   self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon)
   self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor1)
   self.contents.draw_text(4, 32 * 2, 92, 32, $data_system.words.armor2)
   self.contents.draw_text(4, 32 * 3, 92, 32, $data_system.words.armor3)
   self.contents.draw_text(5, 32 * 4, 92, 32, $data_system.words.armor4)
   draw_item_name(@data[0], 92, 32 * 0)
   draw_item_name(@data[1], 92, 32 * 1)
   draw_item_name(@data[2], 92, 32 * 2)
   draw_item_name(@data[3], 92, 32 * 3)
   draw_item_name(@data[4], 92, 32 * 4)
  
  
  
   #self.contents.draw_text(260, 5, 160, 32, "Atk up".to_s)
  
  
  
end
#--------------------------------------------------------------------------
# —? update help
#--------------------------------------------------------------------------
def update_help
   @help_window.set_text(self.item == nil ? "" : self.item.description)
end
end

#character equip with summon
class Window_CharSummon < Window_Selectable
  def initialize
   super(290, 210, 350, 270)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $fontface
   self.contents.font.size = $fontsize
   refresh
end
#--------------------------------------------------------------------------
# —? refresh
#--------------------------------------------------------------------------
def refresh
   self.contents.clear
    @item_max = $game_party.actors.size
     actor = $game_party.actors[0]
   draw_actor_face(actor, 189, 250 )
   draw_actor_name(actor, 4, 120)
    draw_actor_level(actor, 4, 140)
    self.contents.draw_text(4, 170, 150, 32, "Class:")
     draw_actor_class(actor, 65, 170)
     self.contents.draw_text(4, 200, 150, 32, "Element:")
       if $ELEMENT_VAR == 0
     $ELEMENT_VAR = "none"
   end
   self.contents.draw_text(85, 200, 150, 32, $ELEMENT_VAR.to_s)
      #define Empty
      #$EQUIP_SLOT1 = 0
      if $EQUIP_SLOT1 == 0
     $EQUIP_SLOT1 = "-----------------------------Empty-------------------------"
     $EQUIP_SLOT2 = "-----------------------------Empty-------------------------"
     $EQUIP_SLOT3 = "-----------------------------Empty-------------------------"
     $EQUIP_SLOT4 = "-----------------------------Empty-------------------------"
     end
     self.contents.font.color = system_color
     self.contents.draw_text(4, 2,  600, 32, $EQUIP_SLOT1.to_s )
     self.contents.draw_text(4, 35, 600, 32, $EQUIP_SLOT2.to_s)
     self.contents.draw_text(4, 65, 600, 32, $EQUIP_SLOT3.to_s)
     self.contents.draw_text(4, 95, 600, 32, $EQUIP_SLOT4.to_s)
     #end
   end
   end
#end
class Scene_EquipSummon < Scene_Skill
  $EQUIP_SLOT1 = 0
#initialize object
def initialize(menu_index = 0, char_index = 0)
   @menu_index = menu_index
   @char_index = char_index
end
def main
#selection window
s1 = "Equip"
s2 = "Class Change"
s3 = "Return"
  @option = Window_Command.new(150, [s1, s2, s3])
  @option.index = @menu_index
  $icon
  #class selection window
  @select = Window_Command.new(150, ["Equip", "Remove"])
  @select.index = @menu_index
  @select.z = 0
  @select.x = 150
  @select.y = 190
  @select.visible = false
  @select.active = false
  #class selection window ends
#confirm
@confirm_window = Window_Base.new(135, 188, 400, 64)
  @confirm_window.contents = Bitmap.new(368, 32)
  @confirm_window.contents.font.name = $fontface
  @confirm_window.contents.font.size = $fontsize
@confirm_window.contents.draw_text(4, 0, 500, 32,"What do you want to do?")
#confirm
@item_max = $game_party.actors.size
  @actor = $game_party.actors[0]
@info = Window_TextSummon.new
@list = Window_ListSummon.new(@actor, @element_id = 18)

@help_window = Window_Descri.new
  @help_window.visible = false
  
@wepon = Window_WeaponSummon.new(@actor)
@wepon.active = false
@char = Window_CharSummon.new
  @confirm_window.visible = false
  @confirm_window.z = 1500
  @option.visible = false
  @option.active = false
  @option.x = 270
  @option.y = 252
  @option.z = 1500
#end of window

Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   Graphics.freeze
   @option.dispose
    @confirm_window.dispose
@info.dispose
@list.dispose
@wepon.dispose
@char.dispose
@select.dispose
@help_window.dispose
end
#begin
def update
@select.update
@option.update
@info.update
  @list.update
@wepon.update
@char.update
@help_window.update
  if @option.active
    option_update
    return
  end
  if @list.active
    list_update
    return
  end
  if @wepon.active
    wepon_update
    return
  end
  if @char.active
    char_update
    return
  end
  
  if @select.active
    select_update
    return
  end
end
#end of update
def draw_icon(x, y)
   skills = @data[@list.index]
   $icon = Sprite.new
  $icon.bitmap = RPG::Cache.icon(skills)
  $icon.z = 255
  $icon.y = y
  $icon.x = x
end
#define end selection
def select_update
  @select.active
    if Input.trigger?(Input::B)
     @select.z = 0
  @select.x = 145
  @select.y = 150
  @select.visible = false
  @select.active = false
  @char.active =  true
end
actor = $game_party.actors[0]
      if Input.trigger?(Input::C)
   case @select.index
  when 0
      $game_system.se_play($data_system.decision_se)
    if @char.index == 0
      if $data_classes[1].name == "Slayer"
  testing = actor.class_id = 2
end

id = $data_skills[@list.index + 1].element_set[0]
$ELEMENT_VAR =  $data_system.elements[id]
   @char.refresh
    $EQUIP_SLOT1 = @data[@list.index] + " \t  \t         Equipped"
    $skill_equip.push(@data[@list.index])
    @data[@list.index].replace("    EQUIPPED    ")
     @list.refresh
    @list.active = true
    @char.active = false
    @char.index = -1
  elsif @char.index == 1
      if $data_classes[1].name == "Slayer"
  testing = actor.class_id = 2
end
id = $data_skills[@list.index  + 1].element_set[0]
$ELEMENT_VAR =  $data_system.elements[id]
    $EQUIP_SLOT2 = @data[@list.index] + " \t  \t         Equipped"
    $skill_equip.push(@data[@list.index])
    @data[@list.index].replace("    EQUIPPED    ")
     @list.refresh
    @list.active = true
    @char.active = false
    @char.index = -1
  elsif @char.index == 2
      if $data_classes[1].name == "Slayer"
  testing = actor.class_id = 2
end
    @element_id = @list.index
    id = $data_skills[@list.index + 1].element_set[0]
$ELEMENT_VAR =  $data_system.elements[id]
    $EQUIP_SLOT3 = @data[@list.index] + " \t  \t         Equipped"
    $skill_equip.push(@data[@list.index])
    @data[@list.index].replace("    EQUIPPED    ")
     @list.refresh
    @list.active = true
    @char.active = false
    @char.index = -1
  elsif @char.index == 3
      if $data_classes[1].name == "Slayer"
  testing = actor.class_id = 2
end
id = $data_skills[@list.index + 1].element_set[0]
$ELEMENT_VAR =  $data_system.elements[id]
    $EQUIP_SLOT4 = @data[@list.index] + " \t  \t         Equipped"
    $skill_equip.push(@data[@list.index])
    @data[@list.index].replace("    EQUIPPED    ")
    @list.refresh
    @list.active = true
    @char.active = false
    @char.index = -1
  end
@char.refresh
  @select.z = 0
  @select.x = 145
  @select.y = 150
  @select.visible = false
  @select.active = false
  @char.active =  true
    when 1
        $game_system.se_play($data_system.buzzer_se)
    if @char.index == 0
      $ELEMENT_VAR = 0
      if $EQUIP_SLOT1 == "-----------------------------Empty-------------------------"
        $game_system.se_play($data_system.buzzer_se)
      else
          if $data_classes[2].name == "SwordMan"
  testing = actor.class_id = 1
  @char.refresh
end
    $EQUIP_SLOT1 = "-----------------------------Empty-------------------------"
    @actor.learn_skill(0)
    @list.refresh
    end
  elsif @char.index == 1
     $ELEMENT_VAR = 0
    $EQUIP_SLOT2 = "-----------------------------Empty-------------------------"
  @char.refresh
  elsif @char.index == 2
    $ELEMENT_VAR = 0
    $EQUIP_SLOT3 = "-----------------------------Empty-------------------------"
  @char.refresh
  elsif @char.index == 3
    $ELEMENT_VAR = 0
    $EQUIP_SLOT4 = "-----------------------------Empty-------------------------"
  @char.refresh
    end
    @char.refresh
     @select.z = 200
  @select.x = 145
  @select.y = 150
  @select.visible = true
  @select.active = true
  @char.active =  false
    return
  end
  end
end


#end of selection
#update class change
def char_update
if Input.trigger?(Input::C)
    $game_system.se_play($data_system.decision_se)
  #Graphics.update
  @select.z = 200
  @select.x = 145
  @select.y = 150
  @select.visible = true
  @select.active = true
  @char.active = false
end

  if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
   @char.index = -1
  @char.active =  false
  @list.active = true
end
end


#update weapon equip
def wepon_update
if Input.trigger?(Input::B)
  $game_system.se_play($data_system.cancel_se)
  @wepon.active = false
  @wepon.index = -1
  @list.active = true
end
if Input.trigger?(Input::C)
   $game_system.se_play($data_system.decision_se)
   case @wepon.index
   when 0
     $data_weapons[$data_actors[1].weapon_id].atk += 20
   @wepon.active = false
  @wepon.index = -1
  @list.active = true
  $skill_equip.push(@data[@list.index])
    @data[@list.index].replace("    EQUIPPED    ")
   @wepon.refresh
   @list.refresh
  when 1
     $data_armors[$data_actors[1].armor1_id].mdef  += 20
   @wepon.refresh
   @wepon.active = false
  @wepon.index = -1
  @list.active = true
  $skill_equip.push(@data[@list.index])
    @data[@list.index].replace("    EQUIPPED    ")
  when 2
     $data_armors[$data_actors[1].armor2_id].pdef  += 20
   @wepon.refresh
   @wepon.active = false
  @wepon.index = -1
  @list.active = true
  $skill_equip.push(@data[@list.index])
    @data[@list.index].replace("    EQUIPPED    ")
    when 3
     $data_armors[$data_actors[1].armor3_id].pdef  += 20
   @wepon.refresh
   @wepon.active = false
  @wepon.index = -1
  @list.active = true
  $skill_equip.push(@data[@list.index])
    @data[@list.index].replace("    EQUIPPED    ")
end
end
end
#update skill list
  def list_update
     if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
    $scene = Scene_Map.new
    return
  end
  skill_id = @actor.skills.size
  if Input.trigger?(Input::C)
      if  $skill_equip.include?(@data[@list.index])
      $game_system.se_play($data_system.buzzer_se)
    else
      if @actor.skill_learn?(skill_id)
    $game_system.se_play($data_system.decision_se)
  @confirm_window.visible = true
  @confirm_window.z = 1500
  @option.visible = true
  @option.active = true
  @option.x = 270
  @option.y = 252
  @option.z = 1500
  @list.active = false
else
  $game_system.se_play($data_system.buzzer_se)
end
end
end
end


def option_update
#input
   if Input.trigger?(Input::B)
      then
    $game_system.se_play($data_system.cancel_se)
      @confirm_window.visible = false
  @confirm_window.z = 1500
  @option.visible = false
  @option.active = false
  @option.x = 270
  @option.y = 252
  @option.z = 1500
  @list.active = true
      return
    end
  if Input.trigger?(Input::C)
      #begin
   $game_system.se_play($data_system.decision_se)
  case @option.index
  when 0#Equip
  $game_system.se_play($data_system.decision_se)
  @wepon.active = true
  @wepon.index = 0
  @confirm_window.visible = false
  @confirm_window.z = 0
  @option.visible = false
  @option.active = false
  @option.z = 0
  @option.update
  when 1#class change
    @confirm_window.visible = false
  @confirm_window.z = 0
  @option.visible = false
  @option.active = false
  @option.z = 0
  @option.update
  @char.active = true
  @char.index = @char_index
  when 2#return
  $game_system.se_play($data_system.decision_se)
  @confirm_window.visible = false
  @confirm_window.z = 0
  @option.visible = false
  @option.active = false
  @option.z = 0
  @option.update
  @list.active = true
  return
end
#end
end
end
end
#end of code

#update function, alias
class Scene_EquipSummon  

def skill
  return @data[@list.index]
end
#equipped skills
$skill_equip = []
#aliasing begin reference to class method ^-^
alias new_list_update list_update
#skill list
def list_update
new_list_update
@list.refresh
   @data = []
   for i in 0...@actor.skills.size
     skill = $data_skills[@actor.skills[i]].name
     if skill != nil
       @data.push(skill)
     end
   end
end


alias new_wepon_update wepon_update
#weapon list
def wepon_update
   new_wepon_update
@list.refresh
   @data = []
   for i in 0...@actor.skills.size
     skill = $data_skills[@actor.skills[i]].name
     if skill != nil
       @data.push(skill)
     end
   end
end

alias new_select_update select_update
#select command
def select_update
new_select_update
@list.refresh
   @data = []
   for i in 0...@actor.skills.size
     skill = $data_skills[@actor.skills[i]].name
     if skill != nil
       @data.push(skill)
     end
   end
end

end
update function, alias
}


Possibly Related Threads…
Thread Author Replies Views Last Post
  Change character script jaigai 0 2,796 11-19-2006, 01:00 PM
Last Post: jaigai
  Just a modification of Abyssos' facs script lumina... 0 2,633 11-01-2006, 01:00 PM
Last Post: lumina...
  Credit Script 1.1 acoole 0 2,473 10-24-2006, 01:00 PM
Last Post: acoole
  Script Dev Kit Nick 0 2,844 10-15-2006, 01:00 PM
Last Post: Nick
  Opening Image script sasuke89 0 2,059 07-24-2006, 01:00 PM
Last Post: sasuke89
  Change Color of The diferent Status Script MASTERLOKI 0 2,311 07-18-2006, 01:00 PM
Last Post: MASTERLOKI
  Event Name and ID Search Script Hadriel 0 2,077 06-21-2006, 01:00 PM
Last Post: Hadriel
  Currency Script Split 0 2,312 05-18-2006, 01:00 PM
Last Post: Split
  Book Script and Utility Bruth 0 2,262 05-07-2006, 01:00 PM
Last Post: Bruth
  Individuality Script DrakoShade 0 2,222 03-12-2006, 01:00 PM
Last Post: DrakoShade



Users browsing this thread: