RPG maker VX
Últimos temas
» Script de menu
por maxi Jue 04 Dic 2014, 1:44 pm

» Ayuda intro animado!!!
por maxi Miér 03 Dic 2014, 9:41 pm

» ayuda con este engin
por maxi Miér 03 Dic 2014, 8:42 am

» Hud de Vida 100% Personalizable - Engine Sencillo! Sin Scripts :)
por davidaikago Jue 20 Nov 2014, 10:58 am

» Ultimate parallax control by:GDS [ace]
por arellano Miér 08 Oct 2014, 8:28 pm

» Script Touhou (animated) Map name (v1.4)
por davidaikago Miér 08 Oct 2014, 2:09 pm

» tutorial puerta nueva
por davidaikago Miér 08 Oct 2014, 9:08 am

» cámara de fotos
por davidaikago Miér 08 Oct 2014, 9:05 am

» Imperial Action System II Demo
por davidaikago Miér 08 Oct 2014, 8:47 am

» VE Batalla animada [ACE]
por FhierusIV Jue 18 Sep 2014, 10:57 am

» Nuevo Reglamento del Foro [Vigente desde Septiembre 2014]
por maxi Miér 17 Sep 2014, 8:37 am

» MOG|Animated Title
por Souta21 Mar 09 Sep 2014, 7:24 pm

» Tutorial Engine - Cambiar Character al Equipar Objeto
por maxi Lun 21 Jul 2014, 10:19 am

» Script de climas
por gambasoxd Sáb 19 Jul 2014, 8:58 am

» Script de contraseña(codigo) para abrir un cofre
por rpgame Jue 03 Jul 2014, 6:03 pm

¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno

[ Ver toda la lista ]


La mayor cantidad de usuarios en línea fue 117 el Mar 09 Ago 2011, 3:39 pm.

Scrip de menú circular en batalla

Ver el tema anterior Ver el tema siguiente Ir abajo

Scrip de menú circular en batalla

Mensaje por pepelipsis el Mar 09 Oct 2012, 10:26 pm

Bueno aquí les traigo un scrip que encontré por hay navegando por la web el cual me pareció llamativo y menos
monótono que el que viene por default:

Aquí esta el código (copiarlo completo)

Código:
#==============================================================================
# Menú Circular de Batalla
# Creado por Ziifee
#==============================================================================

module Zii
 # Número identificador del ícon0 (Vertical x 16 + Horizontal - 1)
 FIGHT = 132                              # Luchar
 ESCAPE = 143                              # Huir
 ATTACK = 1                                # Atacar
 GUARD = 52                                # Defender
 SKILL = 128                              # Habilidades
 ITEM = 144                                # Objetos
 
 # Dirección de rotación (Izquierda o Derecha)
 TURN = "Derecha"
 
 # ¿Usar faces en el menú? ("Faces" para usar, y "" para no usarlas)
 STATUS_FACE = "Faces"
 
 # ¿Mostrar nombre de los héroes en el menu? ("Nombres" para usar o "")
 STATUS_LINE = "Nombres"
 
 # Tamaño de las líneas (Defecto: 20)
 LINE_SIZE = 14
 
 #--------------------------------------------------------------------------
 # Configuración de dirección de rotación
 #--------------------------------------------------------------------------
 def self.turn_normal?
  return false if TURN == "Izquierda"
  return true  if TURN == "Derecha"
  return true
 end
 #--------------------------------------------------------------------------
 # Configuración de exibición
 #--------------------------------------------------------------------------
 def self.battle_face?
  return true if STATUS_FACE == "Faces"
  return false
 end
 #--------------------------------------------------------------------------
 # Configuración de exibición
 #--------------------------------------------------------------------------
 def self.line_name?
  return true if STATUS_LINE == "Nombres"
  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 [Tienes que estar registrado y conectado para ver este vínculo]
    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


Perdón por no ponerlo en scrip pero es que aun no se hacer de esas cosas :(
INSTRUCCIONES


Solo tienes que colocar este script sobre MAIN con el nombre que quieras y pegar esta imagen en la carpeta system del juego:


[Tienes que estar registrado y conectado para ver esa imagen]
La imagen la guardan dentro de la carpeta system con el nombre de: "spin40" (sin comillas"

Las primeras lineas del script son editables para personalizarlo mas a tu gusto.



Por pedido de la comunidad he investigado mas imágenes para el script circular y encontré esta pagina con varios círculos diferentes que pueden ser usados en el script: [Tienes que estar registrado y conectado para ver este vínculo]
Las instrucciones son totalmente identicas OOK Suerte con sus proyectos
Posdata: Actualizare de vez en cuando para agregar mas imágenes para script circular solo es cuestión de su paciencia, gracias ;DD


Última edición por pepelipsis el Miér 24 Oct 2012, 9:38 pm, editado 2 veces
avatar
pepelipsis
30
30

Masculino

Edad 22

Cantidad de envíos 32

Maker Cash 57

Reputación 1


Extras
Sobre mí::

Volver arriba Ir abajo

Re: Scrip de menú circular en batalla

Mensaje por EternalDark el Mar 09 Oct 2012, 10:32 pm

Creo aver visto ese script en el foro pero igual se agradece yo lo utilize en un proyecto que tenia en RPGVX pero murio T_T

PD. Te recomiendo que cuando quieras subir un script utilices el comando code o como se diga:

Código:
Aqui dentro estaria el script

Ya que cuando no pones el script dentro de code se hace demaciado el post como te abras dado cuenta no te lo digo de mala manera solo es un consejo OOK

Edito: Pusistes el script antes de que te respondiera xDD

Edita Mike:
Fui yo, siempre edito los scripts mal puestos XD
avatar
EternalDark
30
30

Masculino

Edad 23

Cantidad de envíos 38

Maker Cash 45

Reputación 3


Volver arriba Ir abajo

Re: Scrip de menú circular en batalla

Mensaje por Linksen el Lun 22 Oct 2012, 5:11 am

¡Éxito asegurado con ése script en mano!


Ahora mi proyecto será la bomba.

Un +1 [Tienes que estar registrado y conectado para ver esa imagen]que cae en tus manos. ¡Disfrútalo!
avatar
Linksen
300
300

Masculino

Edad 23

Cantidad de envíos 306

Maker Cash 1769

Reputación 23


Extras
Sobre mí::

Volver arriba Ir abajo

Re: Scrip de menú circular en batalla

Mensaje por luistop12 el Lun 22 Oct 2012, 10:52 am

gracias por el aporte menciona en tu post que el menu circular es compatible con takentai battle system
avatar
luistop12
500
500

Masculino

Edad 27

Cantidad de envíos 759

Maker Cash 946

Reputación 42


Volver arriba Ir abajo

Re: Scrip de menú circular en batalla

Mensaje por pepelipsis el Lun 22 Oct 2012, 9:43 pm

luistop12 escribió:gracias por el aporte menciona en tu post que el menu circular es compatible con takentai battle system


Listo gracias por la recomendación OOK
avatar
pepelipsis
30
30

Masculino

Edad 22

Cantidad de envíos 32

Maker Cash 57

Reputación 1


Extras
Sobre mí::

Volver arriba Ir abajo

Re: Scrip de menú circular en batalla

Mensaje por Linksen el Miér 24 Oct 2012, 10:46 am

Por cierto pepelipsis.


Tengo entendido que se le puede modificar el círculo a éste sistema.

Es decir:

Que se puede modificar la imagen del círculo azul sobre el que se apoya
el script por otras imágenes de círculos adaptados.


¿Crees que podrías incluir alguna de ellas [Tienes que estar registrado y conectado para ver esa imagen]?

Así quedaría un superpost, y sería recompensado con muchos +1 [Tienes que estar registrado y conectado para ver esa imagen]

P.D: Por lo menos de mi parte...
avatar
Linksen
300
300

Masculino

Edad 23

Cantidad de envíos 306

Maker Cash 1769

Reputación 23


Extras
Sobre mí::

Volver arriba Ir abajo

Re: Scrip de menú circular en batalla

Mensaje por luistop12 el Miér 24 Oct 2012, 11:40 am

un detallito mas pepsilitete(lo que sea xD) cuando pongas una imagen (como concejo) ponla entre [ img ][ / img ] para que salga de forma directa :3
avatar
luistop12
500
500

Masculino

Edad 27

Cantidad de envíos 759

Maker Cash 946

Reputación 42


Volver arriba Ir abajo

Re: Scrip de menú circular en batalla

Mensaje por Linksen el Miér 24 Oct 2012, 12:26 pm

Ya las he encontrado.


Tienes que buscar en Google "Spin 40".

El tamaño debe ser exactamente 80x80 píxeles.

A partir de ahí salen un montón de variaciones distintas.

Aquí va un ejemplo para que lo actualices:

Spoiler:

[Tienes que estar registrado y conectado para ver esa imagen]
avatar
Linksen
300
300

Masculino

Edad 23

Cantidad de envíos 306

Maker Cash 1769

Reputación 23


Extras
Sobre mí::

Volver arriba Ir abajo

Re: Scrip de menú circular en batalla

Mensaje por pepelipsis el Miér 24 Oct 2012, 8:03 pm

Linksen escribió:Ya las he encontrado.


Tienes que buscar en Google "Spin 40".

El tamaño debe ser exactamente 80x80 píxeles.

A partir de ahí salen un montón de variaciones distintas.

Aquí va un ejemplo para que lo actualices:

Spoiler:

[Tienes que estar registrado y conectado para ver esa imagen]




Muchisimas gracias por el consejo, actualizare el post lo mas pronto que pueda :)
avatar
pepelipsis
30
30

Masculino

Edad 22

Cantidad de envíos 32

Maker Cash 57

Reputación 1


Extras
Sobre mí::

Volver arriba Ir abajo

Re: Scrip de menú circular en batalla

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.