03-12-2005, 01:00 PM
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.
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