[Menu]Ring menu + add on

La section pour les scripts de RPG Maker XP !

[Menu]Ring menu + add on

Message par Amathlog » 17 Mai 2007, 10:24

Bonjour a tous !
Ce topic vient de The factory
http://rpgmakerxp-factory.net

Je vais vous présenter un menu "tournant"

Il existe plusieurs version du Ring Menu mais souvent, on est obligé de prendre soit une version de base, soit une version qui comporte beaucoup d'ajoutqu'on a pas forcément envie.

Donc, pour que vous soyez seul juge de ce qui est bon d'avoir comme Ring Menu, je vais placer dans ce post la version de base et ensuite, un add on par post avec les modification nécéssaire pour que le tout fonctionne.


Pour installer le Ring Menu de base, allez dans l'éditeur de scrîpt et insérez un nouveau nommé Ring_Menu' au dessus du scrîpt 'Main' et collez le code suivant :

PS : Je le met quote car la balise code ne marche pas
#==============================================================================
# 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 = "Objet"
s2 = "Compétence"
s3 = "Equiper"
s4 = "Etat"
s5 = "Sauvegarder"
s6 = "Quitter"
@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
Pièces jointes
Ring_menu.png
Aperçu du script Ring menu !
Ring_menu.png (41.33 Kio) Consulté 4547 fois
Ring_menu_2.png
2ème aperçu du script Ring menu !
Ring_menu_2.png (61.84 Kio) Consulté 4545 fois
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Message par Amathlog » 17 Mai 2007, 10:29

Add on : Afficher le temps de jeu



Dans le script 'Ring_Menu', vers la ligne 283, vous avez ceci comme ligne de code :


@status_window.visible = false



Juste en dessous de cette ligne, insérez la partie de code suivant :


# プレイ時間ウィンドウを作成

@playtime_window = Window_PlayTime.new

@playtime_window.x = 0

@playtime_window.y = 384


- Pour choisir l'endroit d'affichage, changer les valeurs de X et Y.

- Vous pouvez insérez le code suivant sous la dernière ligne :
@playtime_window.back_opacity = 0

Pour que le background soit transparent (vous pouvez choisir une valeur entre 0 et 255. 0 = transparent / 255 = non transparent)



Ensuite, vers la ligne 309, vous avez ceci :


@status_window.dispose



Collez juste en dessous la ligne suivante :


@playtime_window.dispose




Ensuite, vers la ligne 318, il y a ceci :


@status_window.update



Collez juste dessous cette ligne :


@playtime_window.update
Dernière édition par Amathlog le 17 Mai 2007, 10:34, édité 1 fois.
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Message par Amathlog » 17 Mai 2007, 10:31

Add on : Afficher l'argent



Dans le script 'Ring_Menu', vers la ligne 283, vous avez ceci comme ligne :


@status_window.visible = false



Juste en dessous de cette ligne, insérez la partie de code suivant :


# プレイ時間ウィンドウを作成

@gold_window = Window_Gold.new

@gold_window.x = 160

@gold_window.y = 384




- Pour choisir l'endroit d'affichage, changer les valeurs de X et Y.

- Vous pouvez insérez le code suivant sous la dernière ligne :
@gold_window.back_opacity = 0

Pour que le background soit transparent (vous pouvez choisir une valeur entre 0 et 255. 0 = transparent / 255 = non transparent)



Ensuite, vers la ligne 309, vous avez ceci :


@status_window.dispose



Collez juste en dessous la ligne suivante :


@gold_window.dispose




Ensuite, vers la ligne 318, il y a ceci :


@status_window.update



Collez juste dessous cette ligne :


@gold_window.update
Dernière édition par Amathlog le 17 Mai 2007, 10:33, édité 1 fois.
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Message par Amathlog » 17 Mai 2007, 10:32

Add on : Afficher le nombre de pas



Dans le script 'Ring_Menu', vers la ligne 283, vous avez ceci comme ligne :


@status_window.visible = false



Juste en dessous de cette ligne, insérez la partie de code suivant :


# 歩数ウィンドウを作成

@steps_window = Window_Steps.new

@steps_window.x = 320

@steps_window.y = 384


- Pour choisir l'endroit d'affichage, changer les valeurs de X et Y.

- Vous pouvez insérez le code suivant sous la dernière ligne :
@steps_window.back_opacity = 0

Pour que le background soit transparent (vous pouvez choisir une valeur entre 0 et 255. 0 = transparent / 255 = non transparent)



Ensuite, vers la ligne 309, vous avez ceci :


@status_window.dispose



Collez juste en dessous la ligne suivante :


@steps_window.dispose




Ensuite, vers la ligne 318, il y a ceci :


@status_window.update



Collez juste dessous cette ligne :


@steps_window.update
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Message par Amathlog » 17 Mai 2007, 10:36

Add on : Afficher le nom de la carte



Cet add on permet d'afficher le nom que vous avez donné à vos maps à l'écran. Donc, si une map se nomme "Village X", alors ça sera afficher avec le menu.



Vous devez d'abord créer un nouveau script au dessus de 'Main' et le nommé Window_Location et insérez le code suivant :



#===================================================

#Window_Location

#===================================================



class Window_Location < Window_Base

#--------------------------------------------------------------------------

def initialize

super(0, 0, 160, 96)

self.contents = Bitmap.new(width - 32, height - 32)

self.contents.font.name = $fontface

self.contents.font.size = $fontsize

refresh

end

#--------------------------------------------------------------------------

def refresh

self.contents.clear

self.contents.font.color = system_color

self.contents.draw_text(4, 0, 120, 32, "Lieux")

self.contents.font.color = normal_color

self.contents.draw_text(4, 32, 120, 32, $game_map.name, 2)

end

end




Ensuite, dans le script 'Game_Map', tout à la fin, collez ceci :



#===================================================

#Game_Map ID

#===================================================

def name

$map_infos[@map_id]

end




Et dans le script 'Scene_Title', collez tout à la fin ceci :



#===================================================

# ? CLASS Scene Name

#===================================================

$map_infos = load_data("Data/MapInfos.rxdata")

for key in $map_infos.keys

$map_infos[key] = $map_infos[key].name

end




Dans le script 'Ring_Menu', vers la ligne 283, vous avez ceci comme ligne :


@status_window.visible = false



Juste en dessous de cette ligne, insérez la partie de code suivant :


# 歩数ウィンドウを作成

@location_window = Window_Location.new

@location_window.x = 0

@location_window.y = 0


- Pour choisir l'endroit d'affichage, changer les valeurs de X et Y.

- Vous pouvez insérez le code suivant sous la dernière ligne :
@location_window.back_opacity = 0

Pour que le background soit transparent (vous pouvez choisir une valeur entre 0 et 255. 0 = transparent / 255 = non transparent)



Ensuite, vers la ligne 309, vous avez ceci :


@status_window.dispose



Collez juste en dessous la ligne suivante :


@location_window.dispose




Ensuite, vers la ligne 318, il y a ceci :


@status_window.update



Collez juste dessous cette ligne :

@location_window.update
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Message par Martial » 17 Mai 2007, 11:06

Merci, ce scripts est très bien, et les add-on sont une très bonne idée !

Par contre, il ne fonctionne pas, car aux lignes 397-403, dans le bout de code:

Script Ring Menu a écrit :(Window_RingMenu::MODE_MOVEL)


[align=left]Le "M" de MODE est détaché du reste (ODE en l'occurrence), ce qui fait planter le script au moment de tourner le menu.

J'ai édité ton post, maintenant ça devrait fonctionner.

EDIT: Ha ben non en fait, ça doit être la balise "citation" qui pose problème... En tout cas, vous pouvez modifier directement le script dans RPG Maker XP[/align]
Dernière édition par Martial le 17 Mai 2007, 12:15, édité 1 fois.
L'important n'est pas de connaître mais de savoir trouver !
La gentillesse ou la franchise ? Que choisir ?
Vive les otakus !!
Retourner sur le site
Avatar de l’utilisateur
Martial
Administrateur
Administrateur
 
Message(s) : 2520
Inscription : 10 Nov 2006, 23:41
Localisation : Rambouillet
Meilleurs scores: 12

Message par Amathlog » 17 Mai 2007, 11:16

A pardon je n'ai pas vérifier le code...
Merci d'avoir modifier !
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2


Retour vers Scripts (RGSS)

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 5 invité(s)

cron