Script à modifier et demande d'explications

Poster un nouveau sujet   Répondre au sujet

Voir le sujet précédent Voir le sujet suivant Aller en bas

EnCours Script à modifier et demande d'explications

Message par Dimentio le Mer 1 Oct - 20:41

Bonsoir à tous !
Voilà, je me suis pas encore présenté, je le ferai juste après ce post dans la section appropriée.
J'ai décidé de rejoindre un forum de RPG maker XP car je commence à tomber sur des os avec mon projet :)
Voulant avoir un menu simple et clair, j'ai opté pour le ring Menu, dit aussi le menu en cercle, à la Seiken Densetsu, ou Secret of Mana pour les Européens.
J'ai donc pris la version de base (trouvé sur je sais plus quel site) que je posterai sur le post suivant, étant donné qu'il ne rentre pas sur une page seule. (désolé d'avance pour le doublon)

Malheureusement pour moi, il y a quelques truc que j'aimerai modifier,
mais je suis dans l'incapacité la plus complète de toucher à cette
chose sans la faire crasher à la limite de l'explosage du PC :s
Je demande donc votre aide pour faire ces quelques modification :
Enlever
le menu "statut" et "équipement" pour ne laisser que 4 menus de bases
(j'aimerai peut-être rajouter une option de mission, mais j'en suis pas
sur, je verrai plus tard si j'ai encore besoin de votre aide ^^).
De
deplus, j'aimerai que lorsqu'on sélectionne "équipement" on ai pas à
choisir quel personnage prendre, mais prendre automatiquement le
premier, qui sera le seul.
J'essaierai de changer un peu les fenêtres d'objet et de compétence seul, j'avais déjà réussi à le faire seul :)

Si j'ai d'autres questions sur d'autre scripts, je continuerai sur celui-ci, économisons les pixels.

Voilà, j'espère avoir de vos réponses, je vais me présenter !

A suivre, le script.

Dimentio

Messages : 6
Inscrit le : 01 Oct 2008
Succès RMK : 
0/3000/3000/300 (0/300)

Revenir en haut Aller en bas

Re: Script à modifier et demande d'explications

Message par Dimentio le Mer 1 Oct - 20:42

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[ƒ^ƒXvƒƒjƒ…[‚̃AƒCƒRƒ“
 ICON_SAVE  = RPG::Cache.icon("038-Item07") # uƒZ[ƒuvƒƒjƒ…[‚̃AƒCƒRƒ“
 ICON_EXIT  = RPG::Cache.icon("046-Skill03") # uI—¹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ƒŒ[ƒ€XV
 #--------------------------------------------------------------------------
 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[ƒ\\\\\\\\ƒ‹‚Ì‹éŒ`XV
 #--------------------------------------------------------------------------
 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ƒBl”‚ª 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[ƒ€‰æ–Ê‚ðXV
    Graphics.update
    # “ü—Íî•ñ‚ðXV
    Input.update
    # ƒtƒŒ[ƒ€XV
    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ƒŒ[ƒ€XV
 #--------------------------------------------------------------------------
 def update
  # ƒEƒBƒ“ƒhƒE‚ðXV
  @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ƒŒ[ƒ€XV (ƒ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ƒBl”‚ª 0 l‚ÅAƒZ[ƒuAƒ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ƒŒ[ƒ€XV (ƒ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

Dimentio

Messages : 6
Inscrit le : 01 Oct 2008
Succès RMK : 
0/3000/3000/300 (0/300)

Revenir en haut Aller en bas

Re: Script à modifier et demande d'explications

Message par mimiman le Jeu 2 Oct - 18:22

Je devrais pouvoir te le faire mais j'ai une question ^^:

Enlever le menu "statut" et "équipement"


j'aimerai que lorsqu'on sélectionne "équipement"


On le laisse ou pas enfaite? ^^ Même si je pense que tu parlais du menu compétence dans la deuxième citation j'aimerais que tu éclaircisses les choses.

mimiman

Sexe:MasculinTaureauChèvre
Messages : 12
Inscrit le : 08 Oct 2005
Age : 17
Succès RMK : 
0/3000/3000/300 (0/300)

Revenir en haut Aller en bas

Re: Script à modifier et demande d'explications

Message par Dimentio le Jeu 2 Oct - 18:35

Oui, pardons ^^
Je voulais dire Compétence, je ne veux absolument pas de système d'équipement ou de points de vie, force, agilité, tout le tralala.
Etant donné que mon jeux ne sera vraiment pas tourné RPG, j'utilise seulement RMXP comme interface pour le mapping, les bases qui sont assez bien foutu et l'accessibilité des scripts :)
J'ai commencé à changer un peu mon menu d'objet, j'ai déjà réussi à créer ma window pour séléctionner le mode objet utilisable ou objet clef :D
Je suis vraiment fier d'avoir compris le tuto du site :p
"Dimentio vous salue !"

Dimentio

Messages : 6
Inscrit le : 01 Oct 2008
Succès RMK : 
0/3000/3000/300 (0/300)

Revenir en haut Aller en bas

Re: Script à modifier et demande d'explications

Message par mimiman le Ven 3 Oct - 17:37

Bon, alors, je l'ai fait sans test (sauf test erreur de syntaxe) comme c'est que des petites modifs sa devrait passé mais j'en suis pas sûr donc pardonne moi si sa bug j'ai pas vraiment le temps là de le faire et ce week-end encore moins donc n'hésite pas à m'engueuler si sa ne fonctionne pas ^^.

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[ƒ^ƒXvƒƒjƒ…[‚̃AƒCƒRƒ“
 ICON_SAVE  = RPG::Cache.icon("038-Item07") # uƒZ[ƒuvƒƒjƒ…[‚̃AƒCƒRƒ“
 ICON_EXIT  = RPG::Cache.icon("046-Skill03") # uI—¹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, s5, s6 ]
  @item_max = 4
  @index = 0
  @items = [ ICON_ITEM, ICON_SKILL, ICON_SAVE, ICON_EXIT ]
  @disabled = [ false, false, false, false ]
  @cx = center_x - 16
  @cy = center_y - 16
  setup_move_start
  refresh
 end
 #--------------------------------------------------------------------------
 # œ ƒtƒŒ[ƒ€XV
 #--------------------------------------------------------------------------
 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[ƒ\\\\\\\\ƒ‹‚Ì‹éŒ`XV
 #--------------------------------------------------------------------------
 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)
  if menu_index < 3
    @menu_index = menu_index
  else
    @menu_index = menu_index-2
  end
 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ƒBl”‚ª 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[ƒ€‰æ–Ê‚ðXV
    Graphics.update
    # “ü—Íî•ñ‚ðXV
    Input.update
    # ƒtƒŒ[ƒ€XV
    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ƒŒ[ƒ€XV
 #--------------------------------------------------------------------------
 def update
  # ƒEƒBƒ“ƒhƒE‚ðXV
  @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ƒŒ[ƒ€XV (ƒ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ƒBl”‚ª 0 l‚ÅAƒZ[ƒuAƒ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‚É‚·‚é
      $scene = Scene_Skill.new(0)
=begin
      @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
=end
    when 2  # ƒ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 3  # ƒ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ƒŒ[ƒ€XV (ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
 #--------------------------------------------------------------------------
=begin
  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
end


Dernière édition par mimiman le Dim 5 Oct - 19:13, édité 1 fois

mimiman

Sexe:MasculinTaureauChèvre
Messages : 12
Inscrit le : 08 Oct 2005
Age : 17
Succès RMK : 
0/3000/3000/300 (0/300)

Revenir en haut Aller en bas

Re: Script à modifier et demande d'explications

Message par Dimentio le Dim 5 Oct - 10:35

Alors, j'ai testé !
Déjà, merci beaucoup ^^
Ensuite vient la phase ou j'essaie tout :p
J'ai juste vu un probleme, c'est lorsque l'on sélectionne Quitter ou Sauvegarder, si on annule, un message d'erreur s'affiche en disant "cannot convert nil into String", et visiblement c'est ligne 80.
Je comprend pas trop ce message (pourquoi veut-il une corde ? pour un arc ?)
Donc voilà :) Moi j'essaie de continuer mon script pour les objets, pour l'instant je m'en sors ^^
"Dimentio vous salue !"

Dimentio

Messages : 6
Inscrit le : 01 Oct 2008
Succès RMK : 
0/3000/3000/300 (0/300)

Revenir en haut Aller en bas

Re: Script à modifier et demande d'explications

Message par mimiman le Dim 5 Oct - 19:14

C'est corrigé et j'ai vérifié cette fois (sa m'apprendra à me prendre pour un génie...)

Bref, j'ai édité l'ancien post avec le nouveau script.

mimiman

Sexe:MasculinTaureauChèvre
Messages : 12
Inscrit le : 08 Oct 2005
Age : 17
Succès RMK : 
0/3000/3000/300 (0/300)

Revenir en haut Aller en bas

Re: Script à modifier et demande d'explications

Message par Dimentio le Dim 5 Oct - 22:01

Ok ok, je te remercie beaucoup ^^
Je verrai ça demain, il se fait tard.

Bonne nuit !
"Dimentio vous salue !"

Dimentio

Messages : 6
Inscrit le : 01 Oct 2008
Succès RMK : 
0/3000/3000/300 (0/300)

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum