[RESOLU] besoin d'aide pour modifier un script
Mer 5 Mar 2008 - 15:34
Bonjours
Je suis en train de me customisé un menu de jeu à partir du script de localisation sur se forum et je voudrais savoir comment je peut changer la disposition de mes héros. De base, les héros sont placé comme suis:
Héro 1
héro 2
héro 3
héro 4
voici un exemple du problème que je souhaite me faire résoudre
Je voudrais que mes héros soit disposé ainsi:
héro1 héro2
héro3 héro4
Voici mon script de menu customisé:
Je suis en train de me customisé un menu de jeu à partir du script de localisation sur se forum et je voudrais savoir comment je peut changer la disposition de mes héros. De base, les héros sont placé comme suis:
Héro 1
héro 2
héro 3
héro 4
voici un exemple du problème que je souhaite me faire résoudre
Je voudrais que mes héros soit disposé ainsi:
héro1 héro2
héro3 héro4
Voici mon script de menu customisé:
- Spoiler:
- Code:
###################################
#Créer par Mog.
#modifier par emixam2
##############
# Game_Actor #
##############
class Game_Actor < Game_Battler
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
###############
# Window_Base #
###############
class Window_Base < Window
def draw_actor_level_menu(actor, x, y)
self.contents.font.color = system_color
self.contents.draw_text(x-199, y+50, 32, WLH, Vocab::level_a)
self.contents.font.color = normal_color
self.contents.draw_text(x-160, y+50, 24, WLH, actor.level, 2)
end
def draw_actor_class_menu(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 85, WLH, actor.class.name)
end
def exp_gauge_color1
return text_color(10)
end
def exp_gauge_color2
return text_color(11)
end
def draw_actor_exp_meter(actor, x, y, width = 100)
if actor.next_exp != 0
exp = actor.now_exp
else
exp = 1
end
gw = width * exp / [actor.next_exp, 1].max
gc1 = exp_gauge_color1
gc2 = exp_gauge_color2
self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 30, WLH, "Exp")
self.contents.font.color = normal_color
xr = x + width
self.contents.draw_text(xr - 60, y, 60, WLH, actor.next_rest_exp_s, 2)
end
end
#####################
# Window_MenuStatus #
#####################
class Window_MenuStatus < Window_Selectable
def initialize(x, y)
super(x, y, 544, 270)
refresh
self.active = false
self.index = -1
end
def refresh
self.contents.clear
@item_max = $game_party.members.size
for actor in $game_party.members
draw_actor_face(actor,0 , actor.index * 96, 92)
x = 104
y = actor.index * 96 + WLH / 2
draw_actor_name(actor, x-10, y-15)
draw_actor_class_menu(actor, x + 85, y-15)
draw_actor_level_menu(actor, x + 300, y+2)
draw_actor_state(actor, x, y + WLH * 2)
draw_actor_hp(actor, x-10, y-20 + WLH * 1)
draw_actor_mp(actor, x-10, y-20 + WLH * 2)
draw_actor_exp_meter(actor, x-10 , y+25 + WLH * 1)
end
end
def update_cursor
if @index < 0
self.cursor_rect.empty
elsif @index < @item_max
self.cursor_rect.set(0, @index * 96, contents.width, 96)
elsif @index >= 100
self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
else
self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
end
end
end
############
# Game_Map #
############
class Game_Map
attr_reader :map_id
def mpname
$mpname = load_data("Data/MapInfos.rvdata")
$mpname[@map_id].name
end
end
###############
# Window_map_name #
###############
class Window_Mapname < Window_Base
def initialize(x, y)
super(x, y+32, 190, WLH + 50)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, -8, 120, 32, "Localisation")
self.contents.font.color = normal_color
self.contents.draw_text(4, 15, 120, 32, $game_map.mpname.to_s, 2)
end
end
###############
# Window_Time #
###############
class Window_Time < Window_Base
def initialize(x, y)
super(x, y+7, 190, WLH + 50)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, -8, 120, 32, "Temps de jeu")
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, 15, 120, 32, text, 2)
end
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
##############
# Scene_Menu #
##############
class Scene_Menu
def main
start
perform_transition
Input.update
loop do
Graphics.update
Input.update
update
break if $scene != self
end
Graphics.update
pre_terminate
Graphics.freeze
terminate
end
def initialize(menu_index = 0)
@menu_index = menu_index
end
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(16, 16, 16, 128)
update_menu_background
end
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(16, 16, 16, 128)
update_menu_background
end
def dispose_menu_background
@menuback_sprite.dispose
end
def update_menu_background
end
def perform_transition
Graphics.transition(10)
end
def start
create_menu_background
create_command_window
@gold_window = Window_Gold.new(0, 360)
@status_window = Window_MenuStatus.new(0, 75)
@playtime_window = Window_Time .new(160, 336)
@mapname_window = Window_Mapname.new(350, 311)
@status_window.openness = 0
@playtime_window.openness = 0
@mapname_window.openness = 0
@gold_window.openness = 0
@status_window.open
@playtime_window.open
@mapname_window.open
@gold_window.open
end
def pre_terminate
@status_window.close
@playtime_window.close
@mapname_window.close
@gold_window.close
@command_window.close
begin
@status_window.update
@playtime_window.update
@mapname_window.update
@gold_window.update
@command_window.update
Graphics.update
end until @status_window.openness == 0
end
def terminate
dispose_menu_background
@command_window.dispose
@gold_window.dispose
@status_window.dispose
@playtime_window.dispose
@mapname_window.dispose
end
def update
update_menu_background
@command_window.update
@gold_window.update
@status_window.update
@mapname_window.update
@playtime_window.update
if @command_window.active
update_command_selection
elsif @status_window.active
update_actor_selection
end
end
def create_command_window
s1 = Vocab::item
s5 = Vocab::skill
s2 = Vocab::equip
s3 = Vocab::status
s6 = "Menu bestiaire"
s4 = Vocab::save
s7 = Vocab::game_end
@command_window = Window_Command.new(544, [s1, s2, s3, s4, s5, s6, s7],4 ,2)
@command_window.index = @menu_index
@command_window.openness = 0
@command_window.open
if $game_party.members.size == 0
@command_window.draw_item(0, false)
@command_window.draw_item(1, false)
@command_window.draw_item(2, false)
@command_window.draw_item(3, false)
end
if $game_system.save_disabled
@command_window.draw_item(4, false)
end
end
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 4
Sound.play_buzzer
return
elsif $game_system.save_disabled and @command_window.index == 4
Sound.play_buzzer
return
end
Sound.play_decision
case @command_window.index
when 0
$scene = Scene_Item.new
when 4,1,2
start_actor_selection
when 5
$scene = Scene_Liste_Monstres.new
when 3
$scene = Scene_File.new(true, false, false)
when 6
$scene = Scene_End.new
end
end
end
def start_actor_selection
@command_window.active = false
@status_window.active = true
if $game_party.last_actor_index < @status_window.item_max
@status_window.index = $game_party.last_actor_index
else
@status_window.index = 0
end
end
def end_actor_selection
@command_window.active = true
@status_window.active = false
@status_window.index = -1
end
def update_actor_selection
if Input.trigger?(Input::B)
Sound.play_cancel
end_actor_selection
elsif Input.trigger?(Input::C)
$game_party.last_actor_index = @status_window.index
Sound.play_decision
case @command_window.index
when 4
$scene = Scene_Skill.new(@status_window.index)
when 1
$scene = Scene_Equip.new(@status_window.index)
when 2
$scene = Scene_Status.new(@status_window.index)
end
end
end
end
$mogscript = {} if $mogscript == nil
$mogscript["basic_menu_plus"] = true
- Mister GeekStaffeux retraité
- Nombre de messages : 719
Age : 30
Localisation : Vosges
Distinction : aucune
Date d'inscription : 20/12/2007
Re: [RESOLU] besoin d'aide pour modifier un script
Mer 5 Mar 2008 - 16:10
Une fois j'ai essayé de modifier le menu, et j'ai réussi à mettre les héros comme ceci :
C'est le mieux que je puisse faire.
Si ça t'intéresse, fait le moi savoir, je m'arrangerai pour modifier ton script afin que ça rende comme ceci
C'est le mieux que je puisse faire.
Si ça t'intéresse, fait le moi savoir, je m'arrangerai pour modifier ton script afin que ça rende comme ceci
Re: [RESOLU] besoin d'aide pour modifier un script
Mer 5 Mar 2008 - 16:22
Sa m'intéresse
Je le prendrais bien si tu le veux
Merci
P.S. : d'après toi, quand vas tu avoir fini cette modification?
Je le prendrais bien si tu le veux
Merci
P.S. : d'après toi, quand vas tu avoir fini cette modification?
- Mister GeekStaffeux retraité
- Nombre de messages : 719
Age : 30
Localisation : Vosges
Distinction : aucune
Date d'inscription : 20/12/2007
Re: [RESOLU] besoin d'aide pour modifier un script
Mer 5 Mar 2008 - 16:51
C'est fait
Le rendu :
En espérant avoir pu t'aider
- Spoiler:
- Code:
###################################
#Créer par Mog.
#modifier par emixam2 et TheLSSJ
##############
# Game_Actor #
##############
class Game_Actor < Game_Battler
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
###############
# Window_Base #
###############
class Window_Base < Window
def draw_actor_level_menu(actor, x, y)
self.contents.font.color = system_color
self.contents.draw_text(x-199, y+50, 32, WLH, Vocab::level_a)
self.contents.font.color = normal_color
self.contents.draw_text(x-160, y+50, 24, WLH, actor.level, 2)
end
def draw_actor_class_menu(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 85, WLH, actor.class.name)
end
def exp_gauge_color1
return text_color(10)
end
def exp_gauge_color2
return text_color(11)
end
def draw_actor_exp_meter(actor, x, y, width = 100)
if actor.next_exp != 0
exp = actor.now_exp
else
exp = 1
end
gw = width * exp / [actor.next_exp, 1].max
gc1 = exp_gauge_color1
gc2 = exp_gauge_color2
self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 30, WLH, "Exp")
self.contents.font.color = normal_color
xr = x + width
self.contents.draw_text(xr - 60, y, 60, WLH, actor.next_rest_exp_s, 2)
end
end
#####################
# Window_MenuStatus #
#####################
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# x : ウィンドウの X 座標
# y : ウィンドウの Y 座標
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, 545, 260)
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.members.size
for actor in $game_party.members
draw_actor_face(actor, actor.index * 130, 0, 96)
x = actor.index * 130
y = 105
draw_actor_name(actor, x, y)
draw_actor_class(actor, x, y + 20)
draw_actor_level(actor, x, y + 40)
draw_actor_state(actor, x, y + 60)
draw_actor_hp(actor, x, y + 80)
draw_actor_mp(actor, x, y + 100)
end
end
#--------------------------------------------------------------------------
# ● カーソルの更新
#--------------------------------------------------------------------------
def update_cursor
if @index < 0 # カーソルなし
self.cursor_rect.empty
elsif @index < @item_max # 通常
if Input.repeat?(Input::RIGHT)
cursor_down(Input.trigger?(Input::RIGHT))
end
if Input.repeat?(Input::LEFT)
cursor_up(Input.trigger?(Input::LEFT))
end
self.cursor_rect.set(@index * 130 - 2, 0, 125, 230)
elsif @index >= 100 # 自分
self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
else # 全体
self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
end
end
end
############
# Game_Map #
############
class Game_Map
attr_reader :map_id
def mpname
$mpname = load_data("Data/MapInfos.rvdata")
$mpname[@map_id].name
end
end
###############
# Window_map_name #
###############
class Window_Mapname < Window_Base
def initialize(x, y)
super(x, y+32, 190, WLH + 50)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, -8, 120, 32, "Localisation")
self.contents.font.color = normal_color
self.contents.draw_text(4, 15, 120, 32, $game_map.mpname.to_s, 2)
end
end
###############
# Window_Time #
###############
class Window_Time < Window_Base
def initialize(x, y)
super(x, y+7, 190, WLH + 50)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, -8, 120, 32, "Temps de jeu")
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, 15, 120, 32, text, 2)
end
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
##############
# Scene_Menu #
##############
class Scene_Menu
def main
start
perform_transition
Input.update
loop do
Graphics.update
Input.update
update
break if $scene != self
end
Graphics.update
pre_terminate
Graphics.freeze
terminate
end
def initialize(menu_index = 0)
@menu_index = menu_index
end
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(16, 16, 16, 128)
update_menu_background
end
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(16, 16, 16, 128)
update_menu_background
end
def dispose_menu_background
@menuback_sprite.dispose
end
def update_menu_background
end
def perform_transition
Graphics.transition(10)
end
def start
create_menu_background
create_command_window
@gold_window = Window_Gold.new(0, 360)
@status_window = Window_MenuStatus.new(0, 75)
@playtime_window = Window_Time .new(160, 336)
@mapname_window = Window_Mapname.new(350, 311)
@status_window.openness = 0
@playtime_window.openness = 0
@mapname_window.openness = 0
@gold_window.openness = 0
@status_window.open
@playtime_window.open
@mapname_window.open
@gold_window.open
end
def pre_terminate
@status_window.close
@playtime_window.close
@mapname_window.close
@gold_window.close
@command_window.close
begin
@status_window.update
@playtime_window.update
@mapname_window.update
@gold_window.update
@command_window.update
Graphics.update
end until @status_window.openness == 0
end
def terminate
dispose_menu_background
@command_window.dispose
@gold_window.dispose
@status_window.dispose
@playtime_window.dispose
@mapname_window.dispose
end
def update
update_menu_background
@command_window.update
@gold_window.update
@status_window.update
@mapname_window.update
@playtime_window.update
if @command_window.active
update_command_selection
elsif @status_window.active
update_actor_selection
end
end
def create_command_window
s1 = Vocab::item
s5 = Vocab::skill
s2 = Vocab::equip
s3 = Vocab::status
s6 = "Menu bestiaire"
s4 = Vocab::save
s7 = Vocab::game_end
@command_window = Window_Command.new(544, [s1, s2, s3, s4, s5, s6, s7],4 ,2)
@command_window.index = @menu_index
@command_window.openness = 0
@command_window.open
if $game_party.members.size == 0
@command_window.draw_item(0, false)
@command_window.draw_item(1, false)
@command_window.draw_item(2, false)
@command_window.draw_item(3, false)
end
if $game_system.save_disabled
@command_window.draw_item(4, false)
end
end
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 4
Sound.play_buzzer
return
elsif $game_system.save_disabled and @command_window.index == 4
Sound.play_buzzer
return
end
Sound.play_decision
case @command_window.index
when 0
$scene = Scene_Item.new
when 4,1,2
start_actor_selection
when 5
$scene = Scene_Liste_Monstres.new
when 3
$scene = Scene_File.new(true, false, false)
when 6
$scene = Scene_End.new
end
end
end
def start_actor_selection
@command_window.active = false
@status_window.active = true
if $game_party.last_actor_index < @status_window.item_max
@status_window.index = $game_party.last_actor_index
else
@status_window.index = 0
end
end
def end_actor_selection
@command_window.active = true
@status_window.active = false
@status_window.index = -1
end
def update_actor_selection
if Input.trigger?(Input::B)
Sound.play_cancel
end_actor_selection
elsif Input.trigger?(Input::C)
$game_party.last_actor_index = @status_window.index
Sound.play_decision
case @command_window.index
when 4
$scene = Scene_Skill.new(@status_window.index)
when 1
$scene = Scene_Equip.new(@status_window.index)
when 2
$scene = Scene_Status.new(@status_window.index)
end
end
end
end
$mogscript = {} if $mogscript == nil
$mogscript["basic_menu_plus"] = true
Le rendu :
En espérant avoir pu t'aider
- Mister GeekStaffeux retraité
- Nombre de messages : 719
Age : 30
Localisation : Vosges
Distinction : aucune
Date d'inscription : 20/12/2007
Re: [RESOLU] besoin d'aide pour modifier un script
Mer 5 Mar 2008 - 20:21
Oh bah derien, le plaisir y était
- [résolu]Besoin d'un script pour coffre et réaction pnj
- Besoin d'aide pour un script de combat [Résolu]
- [Pas résolu mais pour RPGmxp]J'ai réellement besoin d'un script dont je suis sûr n'éxiste pas.
- Besoin d'aide pour modifier quelques Facesets
- [résolu]Modifier un script en appelant un script dans un evenement
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|