Invité Invité
| Sujet: 3 accessoires Mar 03 Juil 2007, 10:23 | |
| Ce script permet de faire porter au héros jusqu'à 3 accessoires au lieu d'un seul.
- Auteur : Inconnu
- Screen : - Installation :
Créez un nouveau script au dessus de Main que vous nommerez comme bon vous semble (AccessoiresX3 par exemple) et vous y collerez ce code : - Code:
-
#==============================================================================
# AccessoireX3
#==============================================================================
module XRXS_MP8_Fixed_Valuables
EQUIP_KINDS = [1, 2, 3, 4, 4, 4]
EQUIP_KIND_NAMES = []
WINDOWS_STRETCH = true
STATUS_WINDOW_ARRANGE = true
STATUS_WINDOW_EX_EQUIP_ROW_SIZE = 24
STATUS_WINDOW_EX_EQUIP_X = 336
STATUS_WINDOW_EX_EQUIP_Y = 256
end
#==============================================================================
# ¡ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# › ƒCƒ“ƒNƒ‹[ƒh
#--------------------------------------------------------------------------
include XRXS_MP8_Fixed_Valuables
#--------------------------------------------------------------------------
# › ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
#--------------------------------------------------------------------------
attr_reader :armor_ids
#--------------------------------------------------------------------------
# œ ƒZƒbƒgƒAƒbƒv
#--------------------------------------------------------------------------
alias xrxs_mp8_setup setup
def setup(actor_id)
xrxs_mp8_setup(actor_id)
@armor_ids = []
# Šg’£ˆ—
for i in 4...EQUIP_KINDS.size
@armor_ids[i+1] = 0
end
end
#--------------------------------------------------------------------------
# œ Šî–{˜r—͂̎擾
#--------------------------------------------------------------------------
alias xrxs_mp8_base_str base_str
def base_str
n = xrxs_mp8_base_str
for i in 4...EQUIP_KINDS.size
armor = $data_armors[@armor_ids[i+1]]
n += armor != nil ? armor.str_plus : 0
end
return n
end
#--------------------------------------------------------------------------
# œ Šî–{Ší—p‚³‚̎擾
#--------------------------------------------------------------------------
alias xrxs_mp8_base_dex base_dex
def base_dex
n = xrxs_mp8_base_dex
for i in 4...EQUIP_KINDS.size
armor = $data_armors[@armor_ids[i+1]]
n += armor != nil ? armor.dex_plus : 0
end
return n
end
#--------------------------------------------------------------------------
# œ Šî–{‘f‘‚³‚̎擾
#--------------------------------------------------------------------------
alias xrxs_mp8_base_agi base_agi
def base_agi
n = xrxs_mp8_base_agi
for i in 4...EQUIP_KINDS.size
armor = $data_armors[@armor_ids[i+1]]
n += armor != nil ? armor.agi_plus : 0
end
return n
end
#--------------------------------------------------------------------------
# œ Šî–{–‚—͂̎擾
#--------------------------------------------------------------------------
alias xrxs_mp8_base_int base_int
def base_int
n = xrxs_mp8_base_int
for i in 4...EQUIP_KINDS.size
armor = $data_armors[@armor_ids[i+1]]
n += armor != nil ? armor.int_plus : 0
end
return n
end
#--------------------------------------------------------------------------
# œ Šî–{•¨—–hŒä‚̎擾
#--------------------------------------------------------------------------
alias xrxs_mp8_base_pdef base_pdef
def base_pdef
n = xrxs_mp8_base_pdef
for i in 4...EQUIP_KINDS.size
armor = $data_armors[@armor_ids[i+1]]
n += armor != nil ? armor.pdef : 0
end
return n
end
#--------------------------------------------------------------------------
# œ Šî–{–‚–@–hŒä‚̎擾
#--------------------------------------------------------------------------
alias xrxs_mp8_base_mdef base_mdef
def base_mdef
n = xrxs_mp8_base_mdef
for i in 4...EQUIP_KINDS.size
armor = $data_armors[@armor_ids[i+1]]
n += armor != nil ? armor.mdef : 0
end
return n
end
#--------------------------------------------------------------------------
# œ Šî–{‰ñ”ðC³‚̎擾
#--------------------------------------------------------------------------
alias xrxs_mp8_base_eva base_eva
def base_eva
n = xrxs_mp8_base_eva
for i in 4...EQUIP_KINDS.size
armor = $data_armors[@armor_ids[i+1]]
n += armor != nil ? armor.eva : 0
end
return n
end
#--------------------------------------------------------------------------
# œ ‘•”õ‚Ì•ÏX
# equip_type : ‘•”õƒ^ƒCƒv
# id : •Ší or –h‹ï ID (0 ‚È‚ç‘•”õ‰ðœ)
#--------------------------------------------------------------------------
alias xrxs_mp8_equip equip
def equip(equip_type, id)
xrxs_mp8_equip(equip_type, id)
if equip_type >= 5
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor_ids[equip_type]], $data_armors[id])
$game_party.gain_armor(@armor_ids[equip_type], 1)
@armor_ids[equip_type] = id
$game_party.lose_armor(id, 1)
end
end
end
end
#==============================================================================
# ¡ Window_EquipRight
#==============================================================================
class Window_EquipRight < Window_Selectable
#--------------------------------------------------------------------------
# › ƒCƒ“ƒNƒ‹[ƒh
#--------------------------------------------------------------------------
include XRXS_MP8_Fixed_Valuables
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
# actor : ƒAƒNƒ^[
#--------------------------------------------------------------------------
if WINDOWS_STRETCH
def initialize(actor)
super(272, 64, 368, 192)
h = (EQUIP_KINDS.size + 1) * 32
self.contents = Bitmap.new(width - 32, h)
@actor = actor
refresh
self.index = 0
end
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ…
#--------------------------------------------------------------------------
alias xrxs_mp8_refresh refresh
def refresh
xrxs_mp8_refresh
@item_max = EQUIP_KINDS.size + 1
for i in 4...EQUIP_KINDS.size
@data.push($data_armors[@actor.armor_ids[i+1]])
self.contents.font.color = system_color
self.contents.draw_text(5, 32 * (i+1), 92, 32, EQUIP_KIND_NAMES[i-4].to_s)
draw_item_name(@data[i+1], 92, 32 * (i+1))
end
end
end
#==============================================================================
# ¡ Window_EquipItem
#==============================================================================
class Window_EquipItem < Window_Selectable
#--------------------------------------------------------------------------
# œ ‘•”õŽí•Ê‚ÌÝ’è
#--------------------------------------------------------------------------
def equip_type=(et)
@equip_type = et
refresh
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ…
#--------------------------------------------------------------------------
alias xrxs_mp8_refresh refresh
def refresh
xrxs_mp8_refresh
if @equip_type >= 5
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
armor_set = $data_classes[@actor.class_id].armor_set
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0 and armor_set.include?(i)
type = $data_armors[i].kind + 1
if !@equip_type.to_s.scan(/#{type}/).empty?
@data.push($data_armors[i])
end
end
end
@data.push(nil)
@item_max = @data.size
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max-1
draw_item(i)
end
end
end
end
#==============================================================================
# ¡ Window_Status
#==============================================================================
class Window_Status < Window_Base
#--------------------------------------------------------------------------
# › ƒCƒ“ƒNƒ‹[ƒh
#--------------------------------------------------------------------------
include XRXS_MP8_Fixed_Valuables
#--------------------------------------------------------------------------
# ƒJƒXƒ^ƒ}ƒCƒYƒ|ƒCƒ“ƒguƒXƒe[ƒ^ƒX‰æ–ʂ̃fƒUƒCƒ“‚ð•ÏX‚·‚év
#--------------------------------------------------------------------------
if STATUS_WINDOW_ARRANGE
def refresh
self.contents.clear
draw_actor_graphic(@actor, 40, 112)
draw_actor_name(@actor, 4, 0)
draw_actor_class(@actor, 4 + 144, 0)
draw_actor_level(@actor, 96, 32)
draw_actor_state(@actor, 96, 64)
draw_actor_hp(@actor, 96, 112, 172)
draw_actor_sp(@actor, 96, 144, 172)
draw_actor_parameter(@actor, 96, 192, 0)
draw_actor_parameter(@actor, 96, 224, 1)
draw_actor_parameter(@actor, 96, 256, 2)
draw_actor_parameter(@actor, 96, 304, 3)
draw_actor_parameter(@actor, 96, 336, 4)
draw_actor_parameter(@actor, 96, 368, 5)
draw_actor_parameter(@actor, 96, 400, 6)
self.contents.font.color = system_color
self.contents.draw_text(320, 48, 80, 32, "EXP")
self.contents.draw_text(320, 80, 80, 32, "NEXT")
self.contents.font.color = normal_color
self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2)
self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(320, 112, 96, 32, "Equipement")
draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 136)
draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 160)
draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 184)
draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 208)
draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 232)
end
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ…
#--------------------------------------------------------------------------
alias xrxs_mp8_refresh refresh
def refresh
xrxs_mp8_refresh
# Šg’£ˆ—
for i in 4...EQUIP_KINDS.size
armor = $data_armors[@actor.armor_ids[i+1]]
draw_item_name($data_armors[@actor.armor_ids[i+1]], STATUS_WINDOW_EX_EQUIP_X, STATUS_WINDOW_EX_EQUIP_Y + STATUS_WINDOW_EX_EQUIP_ROW_SIZE * (i-4))
end
end
end
#==============================================================================
# ¡ Scene_Equip
#==============================================================================
class Scene_Equip
#--------------------------------------------------------------------------
# › ƒCƒ“ƒNƒ‹[ƒh
#--------------------------------------------------------------------------
include XRXS_MP8_Fixed_Valuables
#--------------------------------------------------------------------------
# œ ƒƒCƒ“ˆ—
#--------------------------------------------------------------------------
alias xrxs_mp8_main main
def main
@addition_initialize_done = false
xrxs_mp8_main
for i in 4...EQUIP_KINDS.size
@item_windows[i+2].dispose
end
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ…
#--------------------------------------------------------------------------
alias xrxs_mp8_refresh refresh
def refresh
unless @addition_initialize_done
@item_windows = []
@item_window2.equip_type = EQUIP_KINDS[0]
@item_window3.equip_type = EQUIP_KINDS[1]
@item_window4.equip_type = EQUIP_KINDS[2]
@item_window5.equip_type = EQUIP_KINDS[3]
for i in 4...EQUIP_KINDS.size
@item_windows[i+2] = Window_EquipItem.new(@actor, EQUIP_KINDS[i])
@item_windows[i+2].help_window = @help_window
end
if WINDOWS_STRETCH
@right_window.height = (EQUIP_KINDS.size + 2) * 32
if @left_window.y + @left_window.height == 256
@left_window.height = @right_window.height
end
y_pos = (@right_window.y + @right_window.height)
y_space = 480 - y_pos
@item_window1.y = y_pos
@item_window2.y = y_pos
@item_window3.y = y_pos
@item_window4.y = y_pos
@item_window5.y = y_pos
@item_window1.height = y_space
@item_window2.height = y_space
@item_window3.height = y_space
@item_window4.height = y_space
@item_window5.height = y_space
for i in 4...EQUIP_KINDS.size
@item_windows[i+2].y = y_pos
@item_windows[i+2].height = y_space
end
end
@addition_initialize_done = true
end
for i in 4...EQUIP_KINDS.size
@item_windows[i+2].visible = (@right_window.index == i+1)
end
if @right_window.index >= 5
@item_window = @item_windows[@right_window.index + 1]
end
xrxs_mp8_refresh
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
#--------------------------------------------------------------------------
alias xrxs_mp8_update_item update_item
def update_item
xrxs_mp8_update_item
if Input.trigger?(Input::C)
@item_window1.refresh
@item_window2.refresh
@item_window3.refresh
@item_window4.refresh
@item_window5.refresh
for i in 4...EQUIP_KINDS.size
@item_windows[i+2].refresh
end
Graphics.frame_reset
return
end
end
end
|
|
Don Estebahn Maître du Savoir
Nombre de messages : 2145 Age : 33 Jeux Préférés : Soul Reaver, Morrowind, Way of the Samurai Date d'inscription : 18/02/2007
| Sujet: Re: 3 accessoires Dim 08 Juil 2007, 15:14 | |
| Un petit script qui peut être très sympa, puisqu'en autorisant le mariage de plusieurs effets d'accessoires, il permet d'insufler une petite touche de stratégie ou jeu. Par contre, tu as oublié beaucoup de choses, giga : l'auteur, un screen, une explication de l'effet du script, des consignes d'installation... poster le code n'est pas tout, il faut aussi faire en sorte que ceux qui liront ton sujet aient un aperçu des effets du script et sachent comment l'exploiter. Essaye de faire plus d'efforts la prochaine fois, en tout cas merci quand même . | |
|