Sign in to follow this  
Followers 0
xXDarkDragonXx

DQ Church System

10 posts in this topic

[center]DQ Church System[/center]
[center]Versión 1.2[/center]
Por: Capt. Malboro

Descripción:

Si alguna vez han jugdo Dragon Quest (que me prece que casi nadie xD.png ) sabrán que desde siempre (bueno, en DQ3 no) se ha guardado la partida desde una Iglesia. Además del servicio de guardar la partida, te daban otros tales como Resurrección y Bendición. Para estos dos necesitabas pagar una cifra de dinero (como donación) a la Iglesia.

CODE

#============================================================
  # ** Creando los comandos
  # Confesión = Guardar la Partida
  # Resurreción = Revivir un aliado fallecido en combate
  # Bendición = Librar de una maldición a un personaje
  #============================================================


Posilemente, en 'futura' versión, se agregará el comando Divinación que te dice la experiencia para el próximo nivel de cada héroe.

Instrucciones:

1) Crear un 'apartado' nuevo en el Editor de Scripts (F11)
2) Llamarlo como deseen y peguen dentro el script
3) En cualquier evento, hacer un 'Llamar script...' que sea:

CODE
$scene = DQCS_Command.new(costo_revive, costo_bendicion)


costo_revive va a ser un numero, el que quieras, para lo que costara revivir un aliado. La formula para el costo de revivir es la siguiente:

Variable 1 (que, en el caso de la demo, tiene el numero de miembros en el equipo) * costo_revive + 15

costo_bendicion va a ser un numero, el que quieras, para lo que costara bendecir un aliado. La formula para el costo de bendecir es la siguiente:

Variable 1 (que, en el caso de la demo, tiene el numero de miembros en el equipo) * costo_bendicion + 10

O sea que si llamas al script asi:

CODE
$scene = DQCS_Command.new(11, 7)


Revivir un aliado seria: numero de aliados en el grupo * 11 + 15. O sea si tenemos 4 aliados en el grupo el costo seria 59. Bendecir un aliado seria: numero de aliados en el grupo * 7 + 10. O sea si tenemos 4 aliados en el grupo el costo seria 38.

4) Disfrutarlo (obligatorio >_< xD.png )

Script:

[spoiler]
CODE
#==============================================================================
# ** Dragon Quest Church System
#------------------------------------------------------------------------------
#  Por: Capt. Malboro
#  Ultima Actualización: 8/1/09 (M/D/Y)
#
#  Agradecimientos especiales a SephirothTDS por ayudarme con unos problemas con
#  los estados y unas cosas más y por tener paciencia. xD.png
#------------------------------------------------------------------------------
# ** Posibles Actualizaciones:
# > Agregar comando 'Divinación' que si le das a ese comando, te da la expe-
#   riencia que le falta a cada héroe para el próximo nivel.
#==============================================================================

class DQCS_Command

#==============================================================================
# ** Parte Editable
#==============================================================================

# Define el estado alterado (su ID) que debes tener para la bendición
BLESSING_STATE = 17

#==============================================================================
# ** Fin de Parte Editable
#==============================================================================

def initialize(revive_cost, blessing_cost, menu_index = 0)
  @revive_cost = $game_variables[1] * revive_cost + 15
  @blessing_cost = $game_variables[1] * blessing_cost + 10
  @menu_index = menu_index
end

def main
  @spriteset = Spriteset_Map.new
  @gold_window=Window_Gold.new # Ventana de Dinero
  @gold_window.back_opacity = 180
  @gold_window.update
  @gold_window.x=480
  @gold_window.y=0

  @gossip = Window_Base.new(0, 0, 180, 96)
  @gossip.back_opacity = 180
  @gossip.contents = Bitmap.new(@gossip.width - 32, @gossip.height - 32)
  @gossip.contents.font.size = 18
  @gossip.contents.draw_text(0, -10, 640, 64, "Revive Cost: " + @revive_cost.to_s, 0)
  @gossip.contents.draw_text(0, 14, 640, 64, "Blessing Cost: " + @blessing_cost.to_s, 0)

  @heroes_command = Revive_Command.new
  @heroes_command.back_opacity = 180
  @heroes_command.visible = false
  @heroes_command.active = false
  @heroes_command.index = 0

  @heroes_bendicion = Blessing_Command.new # 'Comandos' de Bendición
  @heroes_bendicion.back_opacity = 180
  @heroes_bendicion.visible = false
  @heroes_bendicion.active = false
  @heroes_bendicion.index = 0

  @dead_heroes = @heroes

  #============================================================
  # ** Creando los comandos
  # Confesión = Guardar la Partida
  # Resurreción = Revivir un aliado fallecido en combate
  # Bendición = Librar de una maldición a un personaje
  #============================================================
  s1 = "Confesión"
  s2 = "Resurreción"
  s3 = "Bendición"
  s4 = "Nada"
  @command_window = Window_Command.new(160, [s1, s2, s3, s4])
  @command_window.back_opacity = 180
  @command_window.y = 0
  @command_window.x = 320
  @command_window.index = @menu_index

if $game_party.gold < @revive_cost # Si no tienes 200 Oro...
  @command_window.disable_item(1) # Desabilitar comando Resurrección
  @revive_disable = true
 else
  @revive_disable = false
end

if $game_party.gold < @blessing_cost # Si no tienes 50 Oro...
  @command_window.disable_item(2) # Desabilitar comando Bendición
  @bendicion_disable = true
 else
  @bendicion_disable = false
end

if $game_system.save_disabled # Si los permisos de Save son desabilitados...
  @command_window.disable_item(0) # Desabilitar comando Confesión
end

  Graphics.transition
  loop do
Graphics.update
Input.update
update
if $scene != self
 break
end
 end

 Graphics.freeze
 @gold_window.dispose  # 'Borrar' ventana de Dinero
 @gossip.dispose
 @command_window.dispose  # 'Borrar' ventana de Comandos
 @heroes_command.dispose  # 'Borrar' ventana de Resurreción (comandos)
 @heroes_bendicion.dispose   # 'Borrar' ventana de Bendición (comandos)
 @spriteset.dispose
end


#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update

 @heroes_command.update
 @heroes_bendicion.update
 @command_window.update
 @gold_window.update

#============================================================
# ** Resurrección
#============================================================

 if $game_party.gold < @revive_cost
@command_window.disable_item(1)
@revive_disable = true
  else
@revive_disable = false
 end  

#============================================================
# ** Bendición
#============================================================

 if $game_party.gold < @blessing_cost
@command_window.disable_item(2)
@bendicion_disable = true
 else
@bendicion_disable = false
 end  

 if @heroes_command.active
 update_revive
 return
  end  

 if @heroes_bendicion.active
 update_bendicion
 return
  end  

 if @command_window.active
 update_command
 return
  end
end

#--------------------------------------------------------------------------
# * Update revive window Command
#--------------------------------------------------------------------------
def update_revive  

  if Input.trigger?(Input::B)
   @heroes_command.visible = false
   @heroes_command.active = false
   @command_window.active = true  
 return
  end

  if Input.trigger?(Input::C)
 if $game_party.actors[@heroes_command.index].hp == 0
 $game_party.lose_gold(@revive_cost)
 $game_system.se_play($data_system.shop_se)
 @gold_window.refresh
 $game_party.actors[@heroes_command.index].recover_all
   @heroes_command.verify_use
   @heroes_command.refresh
   return
 else
   $game_system.se_play($data_system.buzzer_se)
end
  end
end

#--------------------------------------------------------------------------
# * Update bendicion window Command
#--------------------------------------------------------------------------
def update_bendicion  

  if Input.trigger?(Input::B)
   @heroes_bendicion.visible = false
   @heroes_bendicion.active = false
   @command_window.active = true  
 return
  end

  if Input.trigger?(Input::C)
   $game_system.se_play($data_system.buzzer_se) if $game_party.gold < @blessing_cost
   $game_system.se_play($data_system.buzzer_se) if @heroes_bendicion.cursed_actors[@heroes_bendicion.index] == false
   return unless $game_party.gold >= @blessing_cost
 if @heroes_bendicion.cursed_actors[@heroes_bendicion.index] == true
   $game_party.lose_gold(@blessing_cost)
   $game_system.se_play($data_system.shop_se)
   @gold_window.refresh
   $game_party.actors[@heroes_bendicion.index].states.delete(BLESSING_STATE)
   @heroes_bendicion.verify_use
   @heroes_bendicion.refresh
  return
 end  
  end
  return
end

#--------------------------------------------------------------------------
# * Update Window Command
#--------------------------------------------------------------------------  
def update_command
  if Input.trigger?(Input::B)
 $game_system.se_play($data_system.cancel_se)
 $scene = Scene_Map.new
 return
  end

  if Input.trigger?(Input::C)
 if $game_party.actors.size == 0 and @command_window.index < 4
   $game_system.se_play($data_system.buzzer_se)
   return
 end

 case @command_window.index
 when 0  # Confesión
   if $game_system.save_disabled
  $game_system.se_play($data_system.buzzer_se)
  return
   end
   $game_system.se_play($data_system.decision_se)
   $scene = Scene_Save.new

 #when 1  # Divinación
   $game_system.se_play($data_system.cancel_se)

 when 1  # Resurreción
  if @revive_disable != true
   $game_system.se_play($data_system.decision_se)
   @heroes_command.visible = true
   @heroes_command.active = true
   @command_window.active = false
  return  
 else
 # Play buzzer SE
 $game_system.se_play($data_system.buzzer_se)  
 return
end

 when 2  # Bendición
  if @bendicion_disable != true
   $game_system.se_play($data_system.decision_se)
   @heroes_bendicion.visible = true
   @heroes_bendicion.active = true
   @command_window.active = false
  return  
 else
 # Play buzzer SE
 $game_system.se_play($data_system.buzzer_se)  
 return
end

 when 3  # Nada
   $game_system.se_play($data_system.decision_se)
   $scene = Scene_Map.new
 end
 return
  end
end


#==============================================================================
# ** Blessing Command Window
#------------------------------------------------------------------------------
#  Ventana que muestra los héroes para el comando Bendición.
#==============================================================================  
class Blessing_Command < Window_Selectable
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor   :cursed_actors    # Variable flag for cursed actors  
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------  
def initialize

  super(180, 0, 140, $game_party.actors.size * 32)
  @item_max = $game_party.actors.size
  @item_count = $game_party.actors.size + 1
  self.height = @item_count * 32
  @column_max = 1
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.size = 18
  self.back_opacity = 180
  self.index = 0
  # Cursed state
  @cursed_state = BLESSING_STATE
  # Cursed actors array
  @cursed_actors = []
  refresh
end

#--------------------------------------------------------------------------
# * Verify if character can be used
#--------------------------------------------------------------------------
def verify_use
  $game_party.actors.each {|x| @cursed_actors << x.state?(@cursed_state)}
  return  
end  
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh

  @cursed_actors.clear
  self.contents.clear
  verify_use

  for i in 0...$game_party.actors.size  
@actor = $game_party.actors[i]  
 x = 8
 y = i * 32  
 self.contents.font.color = (@cursed_actors[i] == true ? normal_color : disabled_color)
 self.contents.draw_text(x, y, 120, 32, @actor.name)
  end  
 end
end

#==============================================================================
# ** Revive Command Window
#------------------------------------------------------------------------------
#  Ventana que muestra los héroes para el comando Bendición.
#==============================================================================  
class Revive_Command < Window_Selectable
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor   :revived_actors    # Variable flag for cursed actors  
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------  
def initialize

  super(180, 0, 140, $game_party.actors.size * 32)
  @item_max = $game_party.actors.size
  @item_count = $game_party.actors.size + 1
  self.height = @item_count * 32
  @column_max = 1
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.size = 18
  self.back_opacity = 180
  self.index = 0
  # Cursed state
  @revived_state = 1
  # Cursed actors array
  @revived_actors = []
  refresh
end

#--------------------------------------------------------------------------
# * Verify if character can be used
#--------------------------------------------------------------------------
def verify_use
  $game_party.actors.each {|x| @revived_actors << x.state?(@revived_state)}
  return  
end  
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh

  @revived_actors.clear
  self.contents.clear
  verify_use

  for i in 0...$game_party.actors.size  
 @actor = $game_party.actors[i]  
 x = 8
 y = i * 32  
 self.contents.font.color = (@revived_actors[i] == true ? normal_color : disabled_color)
 self.contents.draw_text(x, y, 120, 32, @actor.name)
  end  
 end
end
end

[/spoiler]


Captura de Imagen:

[spoiler]
user posted image
[/spoiler]


Dudas:

P: ¿Se puede cambiar el estado necesitado?
R: Solo basta con buscar:

CODE

#==============================================================================
# ** Parte Editable
#==============================================================================
 
# Define el estado alterado (su ID) que debes tener para la bendición
BLESSING_STATE = 17

#==============================================================================
# ** Fin de Parte Editable
#==============================================================================


No creo que tenga que explicar. Los comentarios se explican solos. xD.png

Es ALTAMENTE sugerible que ese estdo alterado NO se cure luego de las batallas porque entonces no sirve de nada este script. xD.png

Notas del Autor:

Es mi primer script y *puede* (y contiene) errores. Con esto me refiero a código basura que no hace falta en el script en si y no altera su funcionamiento.

Y no creo que sea TAN necesario una demo.

Tomen nota que deben editar el ID del estado alterado que debe tener. Edited by xXDarkDragonXx
0

Share this post


Link to post
Share on other sites
Woo, para ser tu primer script te quedo genial. He de decir aun asi que esto se puede hacer perfectamente por engines xD.png Pero bueno, si se usa bien se puede añadir mediante eventos a las batallas y entonces ya es mas util xD.png.

Espero ver pronto tu propio CMS auxilio.gif


PD: el comando Divinación (fue a posta nop? Adivinadion) Edited by TN-69
0

Share this post


Link to post
Share on other sites
Si, se puede hacer mediante engines pero hay dos factores:

1) Soy un vago de *****
2) No soy amigable de las variables

xD.png Gracias por opinar.

Y el CMS... Hmm... Ya me diste ganas. xD.png

Gracias por opinar.

Espero criticas y opiniones. happy.gif
0

Share this post


Link to post
Share on other sites
Bueno Drako Felicidades con tu primer script y con esto empezaras a notar qu no vas a querer hacer mas nada con engines, poco a poco vendras al lado oscuro de los scripters. xD.png

Bueno ya lo probe aunque algunas cosas para editar se pueden mejorar con constantes si quieres en MSN te enseño como van y para que sirven.
0

Share this post


Link to post
Share on other sites
Yo me pasé el DQ: El periplo del Rey maldito de PS2 (publicidad: comprenlo, es un juegazo con un huevo de extras, buen historia, unas 60 horas de juego solo la trama principal y el encanto de los diseños de akira toriyama)
Y he vsto este sistema, la verdad es que esta muy bien, y si que se puede hacer sencillamente por engines pero bueno, quien no sepa o le de lala aqui tiene tu script, que por cierto mola wink.gif
0

Share this post


Link to post
Share on other sites
muy bueno tu script drako, se, ahora parece que es scripter xD.

Para dudas del o que sea con respecto scripting, sephirothtds, slipknot, hound o ami xD (si me salte alguno tambien va dentro xD).
0

Share this post


Link to post
Share on other sites
Es bastante fiel a los Dragon Quest (me parece que falta una opción, pero no caigo) y funciona bien. Un poco para vagos, como casi todo lo que hay, pero está guapo. icon13.gif

PD: @sLiVeR: Empiezo a estar de los diseños de Akira Toriyama un poco harto, podía innovar un poco más. xD.png
0

Share this post


Link to post
Share on other sites
Eh, gracias por las opiniones y demases.

Y Fer, la opción que le falt es Divination (Divinación) que te dice cuanta Exp. le falta a cada uno.

Por cierto, una versión mejorada. Ahora no hay que joderse buscando los 'if's para cambiar la cantidad de dinero necesitado. Gracias Seph por recordarme las constantes.

Ahora al principio del script hay una parte editable, ahí se asigna el valor para cada cosa.

[spoiler]
CODE
#==============================================================================
# ** Dragon Quest Church System
#------------------------------------------------------------------------------
#  Por: xXDarkDragonxx
#  Ultima Actualización: 9/10/07 (M/D/Y)
#
#  Agradecimientos especiales a SephirothTDS por ayudarme con unos problemas con
#  los estados y unas cosas más y por tener paciencia. xD.png
#------------------------------------------------------------------------------
# ** Posibles Actualizaciones:
#    > Agregar comando 'Divinación' que si le das a ese comando, te da la expe-
#      riencia que le falta a cada héroe para el próximo nivel.
#==============================================================================


class DQCS_Command

#==============================================================================
# ** Parte Editable
#==============================================================================
 
# Define el dinero necesitado para revivir el aliado fallecido en combate
REVIVE_COST = 200

# Define el dinero necesitado para bendecir el aliado maldecido
BLESSING_COST = 50

# Define el estado alterado (su ID) que debes tener para la bendición
BLESSING_STATE = 17

#==============================================================================
# ** Fin de Parte Editable
#==============================================================================

def initialize(menu_index = 0)
  @menu_index = menu_index
end

def main
 
  @spriteset = Spriteset_Map.new
  @gold_window=Window_Gold.new # Ventana de Dinero
  @gold_window.back_opacity = 180
  @gold_window.update
  @gold_window.x=480
  @gold_window.y=0    
 
  @heroes = []
  for i in 0...$game_party.actors.size
    @heroes << $game_party.actors[i].name
  end
   
  @heroes_command = Window_Command.new(140, @heroes) # Comandos principales
  @heroes_command.back_opacity = 180
  @heroes_command.x = 180
  @heroes_command.y = 33  
  @heroes_command.visible = false
  @heroes_command.active = false    
  @heroes_command.index = 0
 
  @heroes_bendicion = Blessing_Command.new # 'Comandos' de Bendición
  @heroes_bendicion.back_opacity = 180
  @heroes_bendicion.x = 180
  @heroes_bendicion.y = 64  
  @heroes_bendicion.visible = false
  @heroes_bendicion.active = false    
  @heroes_bendicion.index = 0

  @dead_heroes = @heroes
 
  #============================================================
  # ** Creando los comandos
  # Confesión = Guardar la Partida
  # Resurreción = Revivir un aliado fallecido en combate
  # Bendición = Librar de una maldición a un personaje
  #============================================================
  s1 = "Confesión"
  s2 = "Resurreción"
  s3 = "Bendición"
  s4 = "Nada"
  @command_window = Window_Command.new(160, [s1, s2, s3, s4])
  @command_window.back_opacity = 180
  @command_window.y = 0
  @command_window.x = 320
  @command_window.index = @menu_index
 
   if $game_party.gold < REVIVE_COST # Si no tienes 200 Oro...
     @command_window.disable_item(1) # Desabilitar comando Resurrección
     @revive_disable = true
    else
     @revive_disable = false
   end
 
   if $game_party.gold < BLESSING_COST # Si no tienes 50 Oro...
     @command_window.disable_item(2) # Desabilitar comando Bendición
     @bendicion_disable = true
    else
     @bendicion_disable = false
   end    
 
   if $game_system.save_disabled # Si los permisos de Save son desabilitados...
     @command_window.disable_item(0) # Desabilitar comando Confesión
   end
   
  Graphics.transition
  loop do
   Graphics.update
   Input.update
   update
   if $scene != self
    break
   end
 end

 Graphics.freeze
 @gold_window.dispose        # 'Borrar' ventana de Dinero
 @command_window.dispose     # 'Borrar' ventana de Comandos
 @heroes_command.dispose     # 'Borrar' ventana de Resurreción (comandos)
 @heroes_bendicion.dispose   # 'Borrar' ventana de Bendición (comandos)
 @spriteset.dispose
end


#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update

 @heroes_command.update
 @heroes_bendicion.update
 @command_window.update
 @gold_window.update

#============================================================
# ** Resurrección
#============================================================

 if $game_party.gold < REVIVE_COST
   @command_window.disable_item(1)
   @revive_disable = true
  else
   @revive_disable = false
 end  

   for i in 0...$game_party.actors.size
    if $game_party.actors[i].hp != 0    
        @dead_heroes[i] = nil
      end        
    end

$game_party.actors.each do |actor|
  if actor.hp == 0    
     @heroes_command.disable_item(actor.index)
  end
end      

#============================================================
# ** Bendición
#============================================================

 if $game_party.gold < BLESSING_COST
   @command_window.disable_item(2)
   @bendicion_disable = true
 else
   @bendicion_disable = false
 end  

 if @heroes_command.active
    update_revive
    return
  end  

 if @heroes_bendicion.active
    update_bendicion
    return
  end  
 
 if @command_window.active
    update_command
    return
  end
end

#--------------------------------------------------------------------------
# * Update revive window Command
#--------------------------------------------------------------------------    
def update_revive  
 
  if Input.trigger?(Input::B)
      @heroes_command.visible = false
      @heroes_command.active = false    
      @command_window.active = true        
    return
  end
     
  if Input.trigger?(Input::C)
    if $game_party.actors[@heroes_command.index].hp == 0
       $game_party.lose_gold(REVIVE_COST)
       $game_system.se_play($data_system.shop_se)
       @gold_window.refresh
       $game_party.actors[@heroes_command.index].recover_all
       @heroes_command.draw_item(@heroes_command.index, Color.new(255, 255, 255, 255))
      return
    else
      $game_system.se_play($data_system.buzzer_se)
   end
  end
end

#--------------------------------------------------------------------------
# * Update bendicion window Command
#--------------------------------------------------------------------------    
def update_bendicion  
 
  if Input.trigger?(Input::B)
      @heroes_bendicion.visible = false
      @heroes_bendicion.active = false    
      @command_window.active = true        
    return
  end
     
  if Input.trigger?(Input::C)
      $game_system.se_play($data_system.buzzer_se) if $game_party.gold < BLESSING_COST
      $game_system.se_play($data_system.buzzer_se) if @heroes_bendicion.cursed_actors[@heroes_bendicion.index] == false
      return unless $game_party.gold >= BLESSING_COST
       if @heroes_bendicion.cursed_actors[@heroes_bendicion.index] == true
         $game_party.lose_gold(BLESSING_COST)
         $game_system.se_play($data_system.shop_se)
         @gold_window.refresh
         $game_party.actors[@heroes_bendicion.index].states.delete(BLESSING_STATE)
         @heroes_bendicion.verify_use
         @heroes_bendicion.refresh
        return
       end      
     end    
     return
   end

#--------------------------------------------------------------------------
# * Update Window Command
#--------------------------------------------------------------------------  
def update_command    
  if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
    $scene = Scene_Map.new
    return
  end
 
  if Input.trigger?(Input::C)
    if $game_party.actors.size == 0 and @command_window.index < 4
      $game_system.se_play($data_system.buzzer_se)
      return
    end

    case @command_window.index
    when 0  # Confesión
      if $game_system.save_disabled
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      $scene = Scene_Save.new
     
    #when 1  # Divinación
      $game_system.se_play($data_system.cancel_se)
     
    when 1  # Resurreción
     if @revive_disable != true
      $game_system.se_play($data_system.decision_se)
      @heroes_command.visible = true
      @heroes_command.active = true    
      @command_window.active = false
     return        
    else
    # Play buzzer SE
    $game_system.se_play($data_system.buzzer_se)        
    return
   end
 
    when 2  # Bendición
     if @bendicion_disable != true
      $game_system.se_play($data_system.decision_se)
      @heroes_bendicion.visible = true
      @heroes_bendicion.active = true    
      @command_window.active = false
     return        
    else
    # Play buzzer SE
    $game_system.se_play($data_system.buzzer_se)        
    return
   end
 
    when 3  # Nada
      $game_system.se_play($data_system.decision_se)
      $scene = Scene_Map.new
    end
    return
  end
end


#==============================================================================
# ** Blessing Command Window
#------------------------------------------------------------------------------
#  Ventana que muestra los héroes para el comando Bendición.
#==============================================================================  
class Blessing_Command < Window_Selectable
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor   :cursed_actors             # Variable flag for cursed actors      
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------  
def initialize
 
  super(180, 64, 140, $game_party.actors.size * 32)
  @item_max = $game_party.actors.size
  @item_count = $game_party.actors.size + 1
  self.height = @item_count * 32
  @column_max = 1
  self.contents = Bitmap.new(width - 32, height - 32)
  self.back_opacity = 180
  self.index = 0
  # Cursed state
  @cursed_state = BLESSING_STATE
  # Cursed actors array
  @cursed_actors = []
  refresh
end

#--------------------------------------------------------------------------
# * Verify if character can be used
#--------------------------------------------------------------------------
def verify_use
  $game_party.actors.each {|x| @cursed_actors << x.state?(@cursed_state)}    
  return  
end  
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
 
  @cursed_actors.clear
  self.contents.clear
  verify_use

  for i in 0...$game_party.actors.size      
   @actor = $game_party.actors[i]  
    x = 8
    y = i * 32        
    self.contents.font.color = (@cursed_actors[i] == true ? disabled_color : normal_color)
    self.contents.draw_text(x, y, 120, 32, @actor.name)    
  end        
 end
end
end
[/spoiler]

Editando primer post con esta nueva versión (bueno, mejora xD.png ).

Lo que me faltaria ahora es que ese valor para ambos servicios sea editable FUERA del script in-game pero para eso me pondre a estudiar mas de RGSS.
0

Share this post


Link to post
Share on other sites
- U P D A T E ! -

El script tenia unos errores algo feo, como por ejemplo:

- El personaje muerto/maldecido se mostraba en 'gris' (como deshabilitado) y los vivos como blanco (habilitado el comando) cuando se supone que fuera al reves *arreglado*
- Agregado formula para el coste de revivir y bendecir, que el creador del juego puede cambiar acorde a su gusto. No es 100% infalible, pero funciona. *nuevo* Igual la misma se puede alterar a gusto del jugador en el metodo 'intialize'

Captura de Imagen:

[spoiler]
user posted image
[/spoiler]


Ya esta perfecto el script. Solo falta una funcion que por vagueza no agrego. xD!

DQ Church System XP (SaveFile)
DQ Church System XP (MediaFire)

Instrucciones:

En cualquier evento, hacer un 'Llamar script...' que sea:

CODE
$scene = DQCS_Command.new(costo_revive, costo_bendicion)


costo_revive va a ser un numero, el que quieras, para lo que costara revivir un aliado. La formula para el costo de revivir es la siguiente:

Variable 1 (que, en el caso de la demo, tiene el numero de miembros en el equipo) * costo_revive + 15

costo_bendicion va a ser un numero, el que quieras, para lo que costara bendecir un aliado. La formula para el costo de bendecir es la siguiente:

Variable 1 (que, en el caso de la demo, tiene el numero de miembros en el equipo) * costo_bendicion + 10

O sea que si llamas al script asi:

CODE
$scene = DQCS_Command.new(11, 7)


Revivir un aliado seria: numero de aliados en el grupo * 11 + 15. O sea si tenemos 4 aliados en el grupo el costo seria 59. Bendecir un aliado seria: numero de aliados en el grupo * 7 + 10. O sea si tenemos 4 aliados en el grupo el costo seria 38. Edited by xXDarkDragonXx
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0