Total rpg maker XP
 
Retour au forum
 

Ajouter une réponse

Pseudo :    S'inscrire ?
Mot de passe :    Mot de passe perdu ?
Icône :
                                
                                
Message :
 
 
 
Smilies personnalisés
 
Options :
Notification par email en cas de réponse
Désactiver les smilies
Activer votre signature
 
 
Dernières réponses
gregory

gregory
Ce menu permet de remplacer l'ancien menu par un menu en anneau tournant au dessu de la tete

Creer un nouveau script et nommé le Ring_Menu. Collez ce script a droite

Code :

#==============================================================================
# �¡ Window_RingMenu
#==============================================================================
#==============================================================================
# Edited by MakirouAru
#==============================================================================
class Window_RingMenu < Window_Base
#--------------------------------------------------------------------------
# Â�› ƒNƒ‰ƒX’èÂ�”
#--------------------------------------------------------------------------
STARTUP_FRAMES = 20 # Â�‰ŠúƒAƒjƒÂ�Â�[ƒVƒ‡ƒ“‚̃tƒŒÂ�[ƒ€Â�”
MOVING_FRAMES = 5 # ƒŠƒ“ƒO‚ð‰ñ‚µ‚½Žž‚̃tƒŒÂ�[ƒ€Â�”
RING_R = 64 # ƒŠƒ“ƒO‚Ì”¼Œa
ICON_ITEM = RPG::Cache.icon("034-Item03") # Â�uƒAƒCƒeƒ€Â�vƒÂ�ƒjƒ…Â�[‚̃AƒCƒRƒ“
ICON_SKILL = RPG::Cache.icon("044-Skill01") # Â�uƒXƒLƒ‹Â�vƒÂ�ƒjƒ…Â�[‚̃AƒCƒRƒ“
ICON_EQUIP = RPG::Cache.icon("001-Weapon01") # Â�u‘•”õÂ�vƒÂ�ƒjƒ…Â�[‚̃AƒCƒRƒ“
ICON_STATUS = RPG::Cache.icon("050-Skill07") # Â�uƒXƒeÂ�[ƒ^ƒXÂ�vƒÂ�ƒjƒ…Â�[‚̃AƒCƒRƒ“
ICON_SAVE = RPG::Cache.icon("038-Item07") # Â�uƒZÂ�[ƒuÂ�vƒÂ�ƒjƒ…Â�[‚̃AƒCƒRƒ“
ICON_EXIT = RPG::Cache.icon("046-Skill03") # Â�uÂ�I—¹Â�vƒÂ�ƒjƒ…Â�[‚̃AƒCƒRƒ“
ICON_DISABLE= RPG::Cache.icon("") # ÂŽg—p‹ÖŽ~Â�€–ڂÉ•t‚­ƒAƒCƒRƒ“
SE_STARTUP = "056-Right02" # ƒÂ�ƒjƒ…Â�[‚ðŠJ‚¢‚½‚Æ‚«‚É–‚炷SE
MODE_START = 1 # ƒXƒ^Â�[ƒgƒAƒbƒvƒAƒjƒÂ�Â�[ƒVƒ‡ƒ“
MODE_WAIT = 2 # ‘ҋ@
MODE_MOVER = 3 # ŽžŒv‰ñ‚è‰ñ“]ƒAƒjƒÂ�Â�[ƒVƒ‡ƒ“
MODE_MOVEL = 4 # ”½ŽžŒv‰ñ‚è‰ñ“]ƒAƒjƒÂ�Â�[ƒVƒ‡ƒ“
#--------------------------------------------------------------------------
# �› ƒAƒNƒZƒT
#--------------------------------------------------------------------------
attr_accessor :index
#--------------------------------------------------------------------------
# Â�œ ƒIƒuƒWƒFƒNƒgÂ�‰Šú‰»
#--------------------------------------------------------------------------
def initialize( center_x, center_y )
super(0, 0, 640, 480)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = "Arial"
self.opacity = 0
self.back_opacity = 0
s1 = "Items"
s2 = "Skills"
s3 = "Equip"
s4 = "Stats"
s5 = "Save"
s6 = "Quit"
@commands = [ s1, s2, s3, s4, s5, s6 ]
@item_max = 6
@index = 0
@items = [ ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_SAVE, ICON_EXIT ]
@disabled = [ false, false, false, false, false, false ]
@cx = center_x - 16
@cy = center_y - 16
setup_move_start
refresh
end
#--------------------------------------------------------------------------
# Â�œ ƒtƒŒÂ�[ƒ€Â�XÂ�V
#--------------------------------------------------------------------------
def update
super
refresh
end
#--------------------------------------------------------------------------
# Â�œ ‰æ–ÊÂ�Ä•`‰æ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
# ƒAƒCƒRƒ“‚ð•`‰æ
case @mode
when MODE_START
refresh_start
when MODE_WAIT
refresh_wait
when MODE_MOVER
refresh_move(1)
when MODE_MOVEL
refresh_move(0)
end
# ƒAƒNƒeƒBƒu‚ȃRƒ}ƒ“ƒh–¼•ަ
rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32)
self.contents.draw_text(rect, @commands[@index],1)
end
#--------------------------------------------------------------------------
# Â�› ‰æ–ÊÂ�Ä•`‰æ(Â�‰Šú‰»Žž)
#--------------------------------------------------------------------------
def refresh_start
d1 = 2.0 * Math::PI / @item_max
d2 = 1.0 * Math::PI / STARTUP_FRAMES
r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES
for i in 0...@item_max
j = i - @index
d = d1 * j + d2 * @steps
x = @cx + ( r * Math.sin( d ) ).to_i
y = @cy - ( r * Math.cos( d ) ).to_i
draw_item(x, y, i)
end
@steps -= 1
if @steps < 1
@mode = MODE_WAIT
end
end
#--------------------------------------------------------------------------
# Â�› ‰æ–ÊÂ�Ä•`‰æ(‘ҋ@Žž)
#--------------------------------------------------------------------------
def refresh_wait
d = 2.0 * Math::PI / @item_max
for i in 0...@item_max
j = i - @index
x = @cx + ( RING_R * Math.sin( d * j ) ).to_i
y = @cy - ( RING_R * Math.cos( d * j ) ).to_i
draw_item(x, y, i)
end
end
#--------------------------------------------------------------------------
# Â�› ‰æ–ÊÂ�Ä•`‰æ(‰ñ“]Žž)
# mode : 0=”½ŽžŒv‰ñ‚è 1=ŽžŒv‰ñ‚è
#--------------------------------------------------------------------------
def refresh_move( mode )
d1 = 2.0 * Math::PI / @item_max
d2 = d1 / MOVING_FRAMES
d2 *= -1 if mode != 0
for i in 0...@item_max
j = i - @index
d = d1 * j + d2 * @steps
x = @cx + ( RING_R * Math.sin( d ) ).to_i
y = @cy - ( RING_R * Math.cos( d ) ).to_i
draw_item(x, y, i)
end
@steps -= 1
if @steps < 1
@mode = MODE_WAIT
end
end
#--------------------------------------------------------------------------
# Â�œ Â�€–ڂÌ•`‰æ
# x :
# y :
# i : Â�€–Ú”ÔÂ�†
#--------------------------------------------------------------------------
def draw_item(x, y, i)
#p "x=" + x.to_s + " y=" + y.to_s + " i=" + @items[i].to_s
rect = Rect.new(0, 0, @items[i].width, @items[i].height)
if @index == i
self.contents.blt( x, y, @items[i], rect )
if @disabled[@index]
self.contents.blt( x, y, ICON_DISABLE, rect )
end
else
self.contents.blt( x, y, @items[i], rect, 128 )
if @disabled[@index]
self.contents.blt( x, y, ICON_DISABLE, rect, 128 )
end
end
end
#--------------------------------------------------------------------------
# Â�œ Â�€–ڂ𖳌ø‚ɂ·‚é
# index : Â�€–Ú”ÔÂ�†
#--------------------------------------------------------------------------
def disable_item(index)
@disabled[index] = true
end
#--------------------------------------------------------------------------
# Â�› Â�‰Šú‰»ƒAƒjƒÂ�Â�[ƒVƒ‡ƒ“‚ÌÂ�€”õ
#--------------------------------------------------------------------------
def setup_move_start
@mode = MODE_START
@steps = STARTUP_FRAMES
if SE_STARTUP != nil and SE_STARTUP != ""
Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100)
end
end
#--------------------------------------------------------------------------
# Â�› ‰ñ“]ƒAƒjƒÂ�Â�[ƒVƒ‡ƒ“‚ÌÂ�€”õ
#--------------------------------------------------------------------------
def setup_move_move(mode)
if mode == MODE_MOVER
@index -= 1
@index = @items.size - 1 if @index < 0
elsif mode == MODE_MOVEL
@index += 1
@index = 0 if @index >= @items.size
else
return
end
@mode = mode
@steps = MOVING_FRAMES
end
#--------------------------------------------------------------------------
# Â�› ƒAƒjƒÂ�Â�[ƒVƒ‡ƒ“’†‚©‚Ç‚¤‚©
#--------------------------------------------------------------------------
def animation?
return @mode != MODE_WAIT
end
end
#==============================================================================
# �¡ Window_MenuStatus
#------------------------------------------------------------------------------
# Â�@ƒÂ�ƒjƒ…Â�[‰æ–ʂŃpÂ�[ƒeƒBƒÂ�ƒ“ƒoÂ�[‚̃XƒeÂ�[ƒ^ƒX‚ð•ަ‚·‚éƒEƒBƒ“ƒhƒE‚Å‚·Â�B
#==============================================================================

class Window_RingMenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# Â�œ ƒIƒuƒWƒFƒNƒgÂ�‰Šú‰»
#--------------------------------------------------------------------------
def initialize
super(204, 64, 232, 352)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# Â�œ ƒŠƒtƒŒÂƒbƒVƒ…
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.name = "Arial"
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 80
y = 80 * i
actor = $game_party.actors[i]
draw_actor_graphic(actor, x - 40, y + 80)
draw_actor_name(actor, x, y + 24)
end
end
#--------------------------------------------------------------------------
# Â�œ ƒJÂ�[ƒƒ‹‚Ì‹éŒ`Â�XÂ�V
#--------------------------------------------------------------------------
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 80, self.width - 32, 80)
end
end
end
#==============================================================================
# #�¡ Scene_RingMenu
# �¡ Scene_Menu
#------------------------------------------------------------------------------
# Â�@ƒÂ�ƒjƒ…Â�[‰æ–ʂÌÂ�ˆ—Â�‚ðÂ�s‚¤ƒNƒ‰ƒX‚Å‚·Â�B
#==============================================================================

#class Scene_RingMenu
class Scene_Menu
#--------------------------------------------------------------------------
# Â�œ ƒIƒuƒWƒFƒNƒgÂ�‰Šú‰»
# menu_index : ƒRƒ}ƒ“ƒh‚̃JÂ�[ƒƒ‹Â�‰ŠúˆÊ’u
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# Â�œ ƒÂ�ƒCƒ“Â�ˆ—Â�
#--------------------------------------------------------------------------
def main
# ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ð�ì�¬
@spriteset = Spriteset_Map.new
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðÂ�ìÂ�¬
px = $game_player.screen_x - 15
py = $game_player.screen_y - 24
@command_window = Window_RingMenu.new(px,py)
@command_window.index = @menu_index
# ƒpÂ�[ƒeƒBÂ�lÂ�”‚ª 0 Â�l‚ÌÂ�êÂ�‡
if $game_party.actors.size == 0
# ƒAƒCƒeƒ€Â�AƒXƒLƒ‹Â�A‘•”õÂ�AƒXƒeÂ�[ƒ^ƒX‚𖳌ø‰»
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
@command_window.z = 100
# ƒZ�[ƒu‹ÖŽ~‚Ì�ê�‡
if $game_system.save_disabled
# ƒZÂ�[ƒu‚𖳌ø‚ɂ·‚é
@command_window.disable_item(4)
end
# ƒXƒeÂ�[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðÂ�ìÂ�¬
@status_window = Window_RingMenuStatus.new
@status_window.x = 160
@status_window.y = 0
@status_window.z = 200
@status_window.visible = false
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀÂ�s
Graphics.transition
# ƒÂ�ƒCƒ“ƒ‹Â�[ƒv
loop do
# ƒQÂ�[ƒ€‰æ–ʂðÂ�XÂ�V
Graphics.update
# “ü—Ã�Â�î•ñ‚ðÂ�XÂ�V
Input.update
# ƒtƒŒÂ�[ƒ€Â�XÂ�V
update
# ‰æ–ʂªÂ�؂è‘ւí‚Ã�‚½‚烋Â�[ƒv‚ð’†’f
if $scene != self
break
end
end
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“Â�€”õ
Graphics.freeze
# ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ð‰ð•ú
@spriteset.dispose
# ƒEƒBƒ“ƒhƒE‚ð‰ð•ú
@command_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
# Â�œ ƒtƒŒÂ�[ƒ€Â�XÂ�V
#--------------------------------------------------------------------------
def update
# ƒEƒBƒ“ƒhƒE‚ðÂ�XÂ�V
@command_window.update
@status_window.update
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚ÌÂ�êÂ�‡: update_command ‚ðŒÃ„‚Ô
if @command_window.active
update_command
return
end
# ƒXƒeÂ�[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚ÌÂ�êÂ�‡: update_status ‚ðŒÃ„‚Ô
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# Â�œ ƒtƒŒÂ�[ƒ€Â�XÂ�V (ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚ÌÂ�êÂ�‡)
#--------------------------------------------------------------------------
def update_command
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽÂ�êÂ�‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒ}ƒbƒv‰æ–ʂÉÂ�؂è‘ւ¦
$scene = Scene_Map.new
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽÂ�êÂ�‡
if Input.trigger?(Input::C)
# ƒpÂ�[ƒeƒBÂ�lÂ�”‚ª 0 Â�l‚ÅÂ�AƒZÂ�[ƒuÂ�AƒQÂ�[ƒ€Â�I—¹ˆÈŠO‚̃Rƒ}ƒ“ƒh‚ÌÂ�êÂ�‡
if $game_party.actors.size == 0 and @command_window.index < 4
# ƒuƒUÂ�[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃JÂ�[ƒƒ‹ˆÊ’u‚Å•ªŠò
case @command_window.index
when 0 # ƒAƒCƒeƒ€
# ŒÂˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒAƒCƒeƒ€‰æ–ʂÉÂ�؂è‘ւ¦
$scene = Scene_Item.new
when 1 # ƒXƒLƒ‹
# ŒÂˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒXƒeÂ�[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é
@command_window.active = false
@status_window.active = true
@status_window.visible = true
@status_window.index = 0
when 2 # ‘•”õ
# ŒÂˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒXƒeÂ�[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é
@command_window.active = false
@status_window.active = true
@status_window.visible = true
@status_window.index = 0
when 3 # ƒXƒe�[ƒ^ƒX
# ŒÂˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒXƒeÂ�[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é
@command_window.active = false
@status_window.active = true
@status_window.visible = true
@status_window.index = 0
when 4 # ƒZ�[ƒu
# ƒZ�[ƒu‹ÖŽ~‚Ì�ê�‡
if $game_system.save_disabled
# ƒuƒUÂ�[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# ŒÂˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒZÂ�[ƒu‰æ–ʂÉÂ�؂è‘ւ¦
$scene = Scene_Save.new
when 5 # ƒQÂ�[ƒ€Â�I—¹
# ŒÂˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒQÂ�[ƒ€Â�I—¹‰æ–ʂÉÂ�؂è‘ւ¦
$scene = Scene_End.new
end
return
end
# ƒAƒjƒÂ�Â�[ƒVƒ‡ƒ“’†‚È‚çƒJÂ�[ƒƒ‹‚ÌÂ�ˆ—Â�‚ðÂ�s‚í‚È‚¢
return if @command_window.animation?
# Â�ªorÂ�© ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽÂ�êÂ�‡
if Input.press?(Input::UP) or Input.press?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@command_window.setup_move_move(Window_RingMenu::MODE_MOVEL)
return
end
# Â�«orÂ�¨ ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽÂ�êÂ�‡
if Input.press?(Input::DOWN) or Input.press?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
@command_window.setup_move_move(Window_RingMenu::MODE_MOVER)
return
end
end
#--------------------------------------------------------------------------
# Â�œ ƒtƒŒÂ�[ƒ€Â�XÂ�V (ƒXƒeÂ�[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚ÌÂ�êÂ�‡)
#--------------------------------------------------------------------------
def update_status
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽÂ�êÂ�‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é
@command_window.active = true
@status_window.active = false
@status_window.visible = false
@status_window.index = -1
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽÂ�êÂ�‡
if Input.trigger?(Input::C)
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃JÂ�[ƒƒ‹ˆÊ’u‚Å•ªŠò
case @command_window.index
when 1 # ƒXƒLƒ‹
# ‚±‚̃AƒNƒ^Â�[‚ÌÂ�s“®Â�§ŒÃ€Â‚ª 2 ˆÈÂ�ã‚ÌÂ�êÂ�‡
if $game_party.actors[@status_window.index].restriction >= 2
# ƒuƒUÂ�[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# ŒÂˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒXƒLƒ‹‰æ–ʂÉÂ�؂è‘ւ¦
$scene = Scene_Skill.new(@status_window.index)
when 2 # ‘•”õ
# ŒÂˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ‘•”õ‰æ–ʂÉÂ�؂è‘ւ¦
$scene = Scene_Equip.new(@status_window.index)
when 3 # ƒXƒe�[ƒ^ƒX
# ŒÂˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒXƒeÂ�[ƒ^ƒX‰æ–ʂÉÂ�؂è‘ւ¦
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
 
Retour au forum
 
créer forum