Partagez
Aller en bas
Naasmar
Membre

Nombre de messages : 185
Age : 22
Distinction : aucune
Date d'inscription : 15/03/2008

Compatibilitée ...

le Lun 18 Mai 2009 - 20:16
Bonjour ! Je voudrais savoir si quelqu'un pourrait me faire compatibiliser ces deux scripts : *
Car quand je fais une action cela beugue....


Spoiler:
Code:
#==============================================================================
# Menu Oval de Batalha
# Criado por ziifee
#==============================================================================
#==============================
#                         
#                www.rpgmakervx-fr.com                                         
#     
#==============================

module Zii
  # Número identificador do ícone (Vertical x 16 + Horizontal - 1)
  FIGHT = 132                              # Lutar
  ESCAPE = 143                              # Fugir
  ATTACK = 1                                # Atacar
  GUARD = 52                                # Defender
  SKILL = 128                              # Habilidades
  ITEM = 144                                # Itens
 
  # Direção da rotação (Esquerda ou Direita)
  TURN = "Direita"
 
  # Usar faces no menu? ("Faces" para usar e "" para nada)
  STATUS_FACE = "Faces"
 
  # Mostrar nome dos heróis no menu? ("Nomes" para usar e "" para nada)
  STATUS_LINE = "Nomes"
 
  # Tamanho das linhas (Padrão: 20)
  LINE_SIZE = 14
 
  #--------------------------------------------------------------------------
  # Configuração de direção da rotação
  #--------------------------------------------------------------------------
  def self.turn_normal?
    return false if TURN == "Esquerda"
    return true  if TURN == "Direita"
    return true
  end
  #--------------------------------------------------------------------------
  # Configuração de exibição
  #--------------------------------------------------------------------------
  def self.battle_face?
    return true if STATUS_FACE == "Faces"
    return false
  end
  #--------------------------------------------------------------------------
  # Configuração de exibição
  #--------------------------------------------------------------------------
  def self.line_name?
    return true if STATUS_LINE == "Nomes"
    return false
  end
end

#==============================================================================
# Window_Base
#==============================================================================

class Window_Base

  def draw_face(face_name, face_index, x, y, size = 96, opacity = 255)
    bitmap = Cache.face(face_name)
    rect = Rect.new(0, 0, 0, 0)
    rect.x = face_index % 4 * 96 + (96 - size) / 2
    rect.y = face_index / 4 * 96 + (96 - size) / 2
    rect.width = size
    rect.height = size
    self.contents.blt(x, y, bitmap, rect, opacity)
    bitmap.dispose
  end

  def draw_actor_face(actor, x, y, size = 96, opacity = 255)
    draw_face(actor.face_name, actor.face_index, x, y, size, opacity)
  end
end

#==============================================================================
# Window_SpinCommand
#------------------------------------------------------------------------------
# Esta classe comanda a rotação do menu
#==============================================================================

class Window_SpinCommand < Window_Base
  attr_reader  :index
  attr_reader  :help_window

  def initialize(cx, cy, commands, setting = {})
    @radius    = setting.has_key?("R") ? setting["R"] : 40 
    @speed    = setting.has_key?("S") ? setting["S"] : 36 
    @spin_back = setting.has_key?("G") ? setting["G"] : ""
    @spin_line = setting.has_key?("L") ? setting["L"] : nil
    x, y = cx - @radius - 28, cy - @radius - 28
    width = height = @radius * 2 + 56
    super(x, y, width, height)
    self.opacity = 0
    @index = 0
    @commands = commands
    @spin_right = true
    @spin_count = 0
    update_cursor
  end

  def draw_spin_graphic(i, cx, cy)
    case command_kind(i)
    when "icon"
      draw_icon(command_pull(i), cx - 12, cy - 12, command_enabled?(i))

    end
  end

  def refresh
    set_spin
  end

  def draw_item(index, enabled = true)
    @commands[index][3] = enabled
    set_spin
  end
 
  def command_name(index = @index)
    return "" if index < 0
    name = @commands[index][0]
    return name != nil ? name : ""
  end
 
  def command_kind(index)
    result = @commands[index][1]
    return result != nil ? result : ""
  end
 
  def command_pull(index)
    result = @commands[index][2]
    return result != nil ? result : ""
  end
 
  def command_enabled?(index)
    result = @commands[index][3]
    return result != nil ? result : true
  end
 
  def set_index(name)
    n = -1
    for i in 0...@commands.size
      n = i if @commands[i][0] == name
    end
    @index = n if n >= 0
    update_cursor
    call_update_help
    set_spin
  end
 
  def index=(index)
    @index = index
    update_cursor
    call_update_help
    set_spin
  end
 
  def center_x
    return contents.width / 2
  end

  def center_y
    return contents.height / 2
  end

  def item_max
    return @commands.size
  end

  def set_background
    return if @spin_back == ""
    bitmap = Cache.system(@spin_back)
    rect = Rect.new(0, 0, bitmap.width, bitmap.height)
    self.contents.blt(12, 12, bitmap, rect)
  end

  def set_text
    return if @spin_line == nil
    y = center_y - WLH / 2 + @spin_line
    self.contents.draw_text(center_x - 48, y, 96, WLH, command_name, 1)
  end

  def angle_size
    return (Math::PI * 2 / item_max)
  end

  def set_spin_count
    @spin_count = angle_size * 360 / @speed
    set_spin(true)
  end

  def set_spin(spin = false)
    self.contents.clear
    set_background
    angle = spin ? @speed * @spin_count / 360 : 0
    angle = @spin_right ? angle : -angle
    for i in 0...item_max
      n = (i - @index) * angle_size + angle
      cx = @radius * Math.sin(n) + center_x
      cy = - @radius * Math.cos(n) + center_y
      draw_spin_graphic(i, cx, cy)
    end
    set_text
  end

  def update
    super
    update_cursor
    if @spin_count > 0
      @spin_count -= 1
      set_spin(@spin_count >= 1)
      return
    end
    update_command
  end

  def command_movable?
    return false if @spin_count > 0
    return false if (not visible or not active)
    return false if (index < 0 or index > item_max or item_max == 0)
    return false if (@opening or @closing)
    return true
  end

  def command_right
    @index = (@index + 1) % item_max
    @spin_right = true
    set_spin_count
  end

  def command_left
    @index = (@index - 1 + item_max) % item_max
    @spin_right = false
    set_spin_count
  end

  def update_command
    if command_movable?
      if Input.press?(Input::RIGHT)
        Sound.play_cursor
        Zii.turn_normal? ? command_right : command_left
      end
      if Input.press?(Input::LEFT)
        Sound.play_cursor
        Zii.turn_normal? ? command_left : command_right
      end
    end
    call_update_help
  end

  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    else
      rect = Rect.new(0, 0, 24, 24)
      rect.x = center_x - rect.width / 2
      rect.y = center_y - rect.height / 2 - @radius
      self.cursor_rect = rect
    end
  end

  def help_window=(help_window)
    @help_window = help_window
    call_update_help
  end

  def call_update_help
    if self.active and @help_window != nil
      update_help
    end
  end

  def update_help
  end
end

#==============================================================================
# Window_LineHelp
#==============================================================================

class Window_LineHelp < Window_Base

  def initialize
    super(-16, 0, 576, WLH + 32)
    self.opacity = 0
  end

  def set_text(text, align = 0)
    if text != @text or align != @align
      self.contents.clear
      back_color = Color.new(0, 0, 0, 80)
      self.contents.fill_rect(0, y = 12, contents.width, WLH - y, back_color)
      self.contents.font.color = normal_color
      self.contents.draw_text(20, 0, self.width - 72, WLH, text, align)
      @text = text
      @align = align
    end
  end
end

#==============================================================================
# Window_PartyCommand
#==============================================================================

class Window_PartyCommand < Window_SpinCommand
  def initialize
    s1 = [Vocab::fight,  "icon", Zii::FIGHT,  true]
    s2 = [Vocab::escape, "icon", Zii::ESCAPE, $game_troop.can_escape]
    setting = {"R"=>40, "S"=>52, "G"=>"Spin40", "L"=>-12}
    super(72, 356, [s1, s2], setting)
    self.active = false
    set_spin
  end
end

#==============================================================================
# Window_ActorCommand
#==============================================================================

class Window_ActorCommand < Window_SpinCommand

  def initialize
    s1 = [Vocab::attack, "icon", Zii::ATTACK, true]
    s2 = [Vocab::skill,  "icon", Zii::SKILL,  true]
    s3 = [Vocab::guard,  "icon", Zii::GUARD,  true]
    s4 = [Vocab::item,  "icon", Zii::ITEM,  true]
    setting = {"R"=>40, "S"=>52, "G"=>"Spin40", "L"=>-12}
    super(72, 356, [s1, s2, s3, s4], setting)
    self.active = false
    set_spin
  end

  def setup(actor)
    @commands[0][2] = Zii::ATTACK
    @commands[1][0] = Vocab::skill
    if actor.weapons[0] != nil
      n = actor.weapons[0].icon_index
      @commands[0][2] = n if n > 0
    end
    @commands[1][0] = actor.class.skill_name if actor.class.skill_name_valid
    self.index = 0
    set_spin
  end
end

#==============================================================================
# Window_BattleStatus
#==============================================================================

class Window_BattleStatus < Window_Selectable

  def initialize
    super(128, 288, 416, 128)
    @column_max = 4
    refresh
    self.active = false
    self.opacity = 0
  end

  def draw_neomemo7_back
    @neomemo7_clear = false
    for index in 0...@item_max
      x = index * 96
      self.contents.clear_rect(x + 72, WLH * 3, 24, 24)
      next unless Zii.battle_face?
      actor = $game_party.members[index]
      next if actor.hp <= 0
      bitmap = Cache.face(actor.face_name)
      rect = Rect.new(0, 0, 22, 22)
      rect.x = actor.face_index % 4 * 96 + 72
      rect.y = actor.face_index / 4 * 96 + 72
      self.contents.blt(x + 72, WLH * 3, bitmap, rect, 192)
    end
  end

  def draw_item(index)
    x = index * 96
    rect = Rect.new(x, 0, 96, 96)
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    actor = $game_party.members[index]
    draw_actor_face(actor, x + 2, 2, 92, 192) if actor.hp > 0 and Zii.battle_face?
    draw_actor_state(actor, x + 72, WLH * 3)
    if Zii.line_name?
      self.contents.font.color = hp_color(actor)
      size = Zii::LINE_SIZE
      self.contents.font.size = size
      self.contents.draw_text(x, WLH * 1 + 20 - size, 80, WLH, actor.name)
      self.contents.font.size = 20
    end
    draw_actor_hp(actor, x, WLH * 2, 80)
    draw_actor_mp(actor, x, WLH * 3, 70)
  end
  def update_cursor
    if @index < 0                 
      self.cursor_rect.empty
    else                         
      rect = Rect.new(index * 96, 0, 96, 96)
      self.cursor_rect = rect
    end
  end
end

#==============================================================================
# Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base

  alias :neomemo13_create_info_viewport :create_info_viewport
  def create_info_viewport
    neomemo13_create_info_viewport
    @info_viewport.rect.set(0, 0, 544, 416)
    @status_window.x = 128
    @actor_command_window.x = 4
  end

  alias :neomemo13_update_info_viewport :update_info_viewport
  def update_info_viewport
    ox = @info_viewport.ox
    neomemo13_update_info_viewport
    @info_viewport.ox = ox
  end

  alias :neomemo13_start_party_command_selection :start_party_command_selection
  def start_party_command_selection
    if $game_temp.in_battle
      @party_command_window.visible = true
      @actor_command_window.visible = false
    end
    neomemo13_start_party_command_selection
  end

  alias :neomemo13_update_party_command_selection :update_party_command_selection
  def update_party_command_selection
    return unless @party_command_window.command_movable?
    neomemo13_update_party_command_selection
  end

  alias :neomemo13_start_actor_command_selection :start_actor_command_selection
  def start_actor_command_selection
    neomemo13_start_actor_command_selection
    @party_command_window.visible = false
    @actor_command_window.visible = true
  end

  alias :neomemo13_update_actor_command_selection :update_actor_command_selection
  def update_actor_command_selection
    return unless @actor_command_window.command_movable?
    neomemo13_update_actor_command_selection
  end

  alias :neomemo13_start_target_enemy_selection :start_target_enemy_selection
  def start_target_enemy_selection
    x = @info_viewport.rect.x
    ox = @info_viewport.ox
    neomemo13_start_target_enemy_selection
    @info_viewport.rect.x = x
    @info_viewport.ox = ox
    @target_enemy_window.x = 544 - @target_enemy_window.width
    @target_enemy_window.y = 288
    @info_viewport.rect.width -= @target_enemy_window.width
  end

  alias :neomemo13_end_target_enemy_selection :end_target_enemy_selection
  def end_target_enemy_selection
    x = @info_viewport.rect.x
    ox = @info_viewport.ox
    @info_viewport.rect.width += @target_enemy_window.width
    neomemo13_end_target_enemy_selection
    @info_viewport.rect.x = x
    @info_viewport.ox = ox
  end

  alias :neomemo13_start_target_actor_selection :start_target_actor_selection
  def start_target_actor_selection
    x = @info_viewport.rect.x
    ox = @info_viewport.ox
    neomemo13_start_target_actor_selection
    @target_actor_window.y = 288
    @info_viewport.rect.x = x
    @info_viewport.ox = ox
    @info_viewport.rect.width -= @target_actor_window.width
  end

  alias :neomemo13_end_target_actor_selection :end_target_actor_selection
  def end_target_actor_selection
    x = @info_viewport.rect.x
    ox = @info_viewport.ox
    @info_viewport.rect.width += @target_actor_window.width
    neomemo13_end_target_actor_selection
    @info_viewport.rect.x = x
    @info_viewport.ox = ox
  end

  alias :neomemo13_start_skill_selection :start_skill_selection
  def start_skill_selection
    neomemo13_start_skill_selection
    @skill_window.dispose if @skill_window != nil
    @help_window.dispose if @help_window != nil
    @help_window = Window_LineHelp.new
    @skill_window = Window_Skill.new(8, 64, 528, 216, @active_battler)
    @skill_window.help_window = @help_window
  end

  alias :neomemo13_start_item_selection :start_item_selection
  def start_item_selection
    neomemo13_start_item_selection
    @item_window.dispose if @item_window != nil
    @help_window.dispose if @help_window != nil
    @help_window = Window_LineHelp.new
    @item_window = Window_Item.new(8, 64, 528, 216)
    @item_window.help_window = @help_window
  end
end
Voici la ressource du script :


Avec celui là :

Sideview 2.7

Je le remercie d'avance !


Dernière édition par Azeroth le Jeu 21 Mai 2009 - 14:08, édité 1 fois
avatar
Berka
Administrateur

Nombre de messages : 1831
Age : 28
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Re: Compatibilitée ...

le Lun 18 Mai 2009 - 20:43
ca bug ?
Et tu ne nous poste pas ton message d'erreur ? on a pas encore inventé le support par télépatie, tu sais !

berka
Naasmar
Membre

Nombre de messages : 185
Age : 22
Distinction : aucune
Date d'inscription : 15/03/2008

Re: Compatibilitée ...

le Lun 18 Mai 2009 - 20:50
Voilà le bug :
avatar
Berka
Administrateur

Nombre de messages : 1831
Age : 28
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Re: Compatibilitée ...

le Lun 18 Mai 2009 - 21:11
Surement un probleme d'alias... Avec toutes ces réécritures...

Ce que je te conseille c'est de mettre
Code:
    return if @target_enemy_window.nil?
à la ligne 461, juste avant la ligne
Code:
    @target_enemy_window.x = 544 - @target_enemy_window.width

bonne soirée,
berka
Naasmar
Membre

Nombre de messages : 185
Age : 22
Distinction : aucune
Date d'inscription : 15/03/2008

Re: Compatibilitée ...

le Lun 18 Mai 2009 - 21:24
Merci beaucoup Berka !! J'édit si ça marche !

Edit : Superbe !! Je te remercie vivement !
Contenu sponsorisé

Re: Compatibilitée ...

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