Buscador avanzado
Navegación
 Portal
 Índice
 Miembros
 Perfil
 FAQ
 Buscar
¿Quién está en línea?
En total hay 3 usuarios en línea: 0 Registrados, 0 Ocultos y 3 Invitados

Ninguno

[ Ver toda la lista ]


La mayor cantidad de usuarios en línea fue 30 el Lun Dic 21, 2015 12:37 am.
Últimos temas
» MundoDeluxe cierra - Muchas Gracias a todos
por ZAnimeMaker Miér Mar 02, 2016 3:45 pm

» Recomendaciones para subir aportes
por Xpe Mar Ene 05, 2016 5:00 pm

» dUDA Sobre mi Rpg maker XP en ES
por SketchDeluxe Sáb Ene 02, 2016 7:26 pm

» Arruina el anterior y pide un deseo
por asdseba123 Mar Dic 29, 2015 11:07 pm

» ¿Qué haremos en nuestros días libres?
por bathory123 Sáb Dic 26, 2015 4:02 pm

» Monster Strike (Anime)
por kyonides Sáb Dic 26, 2015 3:33 am

» Galeria de avatares
por bathory123 Vie Dic 25, 2015 6:57 pm

» Feliz Navidad 2015
por kyonides Vie Dic 25, 2015 2:18 am

» Battlers laterales(Ragnarok)
por Maghno Miér Dic 23, 2015 6:57 pm

» Buenas a todos!
por SketchDeluxe Mar Dic 22, 2015 4:36 pm

Publicidad
Afiliados


KItemRefill VX y ACE

Ver el tema anterior Ver el tema siguiente Ir abajo

KItemRefill VX y ACE

Mensaje por kyonides el Miér Nov 11, 2015 10:36 pm

KItemRefill VX y ACE

por Kyonides-Arkanthos


Este script les permite rellenar un frasco de PV o de PM o de ambas cosas luego de haberlo utilizado el máximo número de veces. Hace falta hacer una ligera configuración en el script para que funcione como indicar cuáles son los IDs de los objetos a utilizar como dichos frascos. Por defecto dejé uno para PV y otro para PM, solo actualicen los IDs. Si solo quieren uno de los 3 tipos disponibles, tan solo remuevan del script los que no utilizarán.

El frasco funcionaría incluso en una batalla frontal o lateral que no haya modificado la parte de curación de los héroes.

Para VX
Código:
# * KItemRefill VX
#   Scripter : Kyonides-Arkanthos
#   v 1.1.1 - 2015-11-11 (En XP 2015-07-15)

#   Llamados a Script
#      KItemRefill.refill(ID)
#   Esto les permite rellenar el objeto, sea una poción, aceite, perfume, etc.
#      KItemRefill.improve(ID)
#   Esto les permite mejorar el objeto en cantidad de usos antes de recargarlo.
#      KItemRefill.new_mode(ID, MODO)
#   Esto curará según el modo: nil : Lo que diga Base de Datos, :hp PV, :mp PM
#   El segundo y el tercer llamado son opcionales, si no quieren mejorarlo o no
#   quieren cambiar lo que cura o reestablece, no los usen.

#   En la descripción del objeto seleccionado :   Usos Restantes:\u
#   Esa leyenda se correrá al lado opuesto de la ventana de selección de héroes.

#   CONFIGURACIÓN

#   Elijan uno o más objetos No consumibles, agréguenlos al array IDS.
#   En ITEM_KIND definen qué uso tendrá el objeto (1 de 3 opciones)
#   Sin ID ni valor o ID => nil : lo que diga la Base de Datos (PV o PM o ambos)
#   :hp sería para PV,  :sp sería para PM
#   En USAGE_LIMITS colocan el ID => Máximo de Usos para cada ID.
#   En USAGE_INCREASE colocan el ID => Incremento de Usos para cada ID.
#   En MAX_LEVEL colocan el ID => Nivel Máximo (empieza en cero) para cada ID.
#   Al final de cada valor excepto en el último deben colocar una coma como el
#   separador de los pares de ID y sus valores.: 36 => 8, 37 => 5
#   En REFILL_AFTER_IMPROVEMENT definen si quieren o no quieren rellenar el
#   Objeto (¿la poción?) al Mejorarlo.
#   En FILL_EMPTY_ITEM definen si el objeto debe ser entregado lleno o vacío.

module KItemRefill
  IDS = [21, 22]
  # Tipo de Uso : ID => Uso (nil, :hp, :mp) o sin la información para PV Y PM
  ITEM_KIND = { 21 => :hp, 22 => :mp }
  # Máximo Inicial del Objeto : ID => Máximo Inicial
  USAGE_LIMITS = { 21 => 8, 22 => 8 }
  # Máximo Número de Mejoras para el Objeto : ID => Máximo de Mejoras
  USAGE_INCREASE = { 21 => 3, 22 => 3 }
  # Nivel Máximo del Objeto Contando desde Cero : ID => Máximo
  MAX_LEVEL = { 21 => 4, 22 => 4 }
  # ¿Debe rellenarse el Objeto al Mejorarlo? (Dejarlo al nuevo Máximo Nivel)
  REFILL_AFTER_IMPROVEMENT = true
  # ¿Se llenará el Objeto al obtenerlo de un NPC? Si : true, No : false
  FILL_EMPTY_ITEM = true
  # ¿Utilizará el Sistem de Batallas Típico de RPG Maker VX?
  DEFAULT_BATTLE_SYSTEM = true
  def self.refill(id) $game_system.refill_items[id].refill end
  def self.improve(id) $game_system.refill_items[id].improve end
  def self.new_mode(id,mode) $game_system.refill_items[id].change_mode(mode) end
end

module ItemAddOns
  attr_accessor :sips
  attr_reader :sip_max, :level, :mode
  def level_max() KItemRefill::MAX_LEVEL[@id] end
  def change_mode(new_mode) @mode = new_mode end
  def fill
    @level = 0
    @mode = KItemRefill::ITEM_KIND[@id]
    refill_item
    @sips = KItemRefill::FILL_EMPTY_ITEM ? @sip_max : 0
  end

  def refill
    refill_item
    @sips = @sip_max
  end

  def improve
    @level += 1 if @level < KItemRefill::MAX_LEVEL[@id]
    limit = KItemRefill::USAGE_LIMITS[@id]
    @sip_max = (limit + (@level * KItemRefill::USAGE_INCREASE[@id]))
    @sips = @sip_max if KItemRefill::REFILL_AFTER_IMPROVEMENT
  end
  private
  def refill_item
    limit = KItemRefill::USAGE_LIMITS[@id]
    @sip_max = (limit + (@level * KItemRefill::USAGE_INCREASE[@id]))
  end
end

class Game_System
  attr_reader :refill_items
  alias kyon_item_refill_gm_sys_init initialize
  def initialize
    @refill_items = {}
    KItemRefill::IDS.each {|id| @refill_items[id] = $data_items[id].dup
      @refill_items[id].extend(ItemAddOns)
      @refill_items[id].fill  }
    kyon_item_refill_gm_sys_init
  end
end

class Game_Actor
  alias kitemrefill_gm_actor_item_effect item_effect
  def item_effect(target, item)
    refill_item = $game_system.refill_items[item.id]
    return false if refill_item and refill_item.sips == 0
    effective = kitemrefill_gm_actor_item_effect(target, item)
    refill_item.sips -= 1 if !@skipped and refill_item# and refill_item.sips > 0
  end
end

class Window_Help
  def set_text(item_id, text=nil, align=0)
    if text.is_a?(String)
      text = text.gsub(/\\[Uu]/){$game_system.refill_items[item_id].sips.to_s}
    elsif text.is_a?(Integer)
      align = text
      text = item_id
    else
      text = item_id
    end
    if text != @text or align != @align
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
      @text = text
      @align = align
      @actor = nil
    end
    self.visible = true
  end
end

class Window_Item
  def update_help
    a = @index % 2 == 0 ? 0 : 2
    id, desc = self.item ? [self.item.id, self.item.description] : ["", nil]
    @help_window.set_text(id, desc, a)
  end
end

class Scene_Item
  def use_item_nontarget
    Sound.play_use_item
    refill_item = $game_system.refill_items[@item.id]
    $game_party.consume_item(@item) unless refill_item != nil
    @item_window.draw_item(@item_window.index)
    @target_window.refresh
    if $game_party.all_dead?
      $scene = Scene_Gameover.new
    elsif @item.common_event_id > 0
      $game_temp.common_event_id = @item.common_event_id
      $scene = Scene_Map.new
    end
  end
end

class Scene_Battle
  alias kyon_kitemrefill_scn_battle_exe_action_item execute_action_item
  def execute_action_item
    unless KItemRefill::DEFAULT_BATTLE_SYSTEM
      kyon_kitemrefill_scn_battle_exe_action_item
      return
    end
    item = @active_battler.action.item
    text = sprintf(Vocab::UseItem, @active_battler.name, item.name)
    @message_window.add_instant_text(text)
    targets = @active_battler.action.make_targets
    display_animation(targets, item.animation_id)
    refill_item = $game_system.refill_items[@item.id]
    $game_party.consume_item(@item) unless refill_item != nil
    $game_temp.common_event_id = item.common_event_id
    for target in targets
      target.item_effect(@active_battler, item)
      display_action_effects(target, item)
    end
  end
end

Para ACE
Código:
# * KItemRefill ACE
#  Scripter : Kyonides-Arkanthos
#  v 1.0.0 - 2015-11-13 (En XP 2015-07-15)

#  Llamados a Script  #
#  Esto les permite rellenar el objeto, sea una poción, aceite, perfume, etc.
#      KItemRefill.refill(ID del Objeto)  Ej.:  KItemRefill.refill(25)
#  Esto les permite mejorar el objeto en cantidad de usos antes de recargarlo.
#      KItemRefill.improve(ID del Objeto)  Ej.:  KItemRefill.improve(25)
#  El último llamado es opcional, si no quieren mejorarlo, no lo usen.

#  En la descripción del objeto seleccionado pueden colocar algo así:
#  Usos Restantes: \u  o si no  (Explicación del Objeto) \u usos

#  CONFIGURACIÓN

#  Todos los objetos deben ser No Consumibles, agréguenlos al array IDS.
#  En USAGE_LIMITS colocan ID => Máximo de Usos o Sorbos para cada ID.
#  En USAGE_INCREASE colocan ID => Incremento de Usos o Sorbos para cada ID.
#  En MAX_LEVEL colocan el ID => Nivel Máximo (empieza en cero) para cada ID.
#  Entre cada par de valores ID => valor deben colocar una coma como separador
#  Ejemplo: { 36 => 8, 37 => 5, 38 => 3 }

module KItemRefill
  IDS = [17,18,19,20]
  # Máximo Inicial del Objeto : ID => Máximo Inicial
  USAGE_LIMITS = { 17 => 8, 18 => 8, 19 => 8, 20 => 8 }
  # Número de Sorbos Extras para el Objeto : ID => Número de Sorbos Extras
  USAGE_INCREASE = { 17 => 3, 18 => 3, 19 => 3, 20 => 3 }
  # Nivel Máximo del Objeto Contando desde Cero : ID => Máximo
  MAX_LEVEL = { 17 => 4, 18 => 4, 19 => 4, 20 => 4 }
  # ¿Debe rellenarse el Objeto al Mejorarlo? (Dejarlo al nuevo Máximo Nivel)
  REFILL_AFTER_IMPROVEMENT = true
  # ¿Se llenará el Objeto al obtenerlo de un NPC? Si : true, No : false
  FILL_EMPTY_ITEM = true
  def self.refill(id) $game_party.refill_items[id].refill end
  def self.improve(id) $game_party.refill_items[id].improve end
end

class RefillItem
  attr_accessor :sips
  attr_reader :sip_max, :level, :mode
  def initialize(new_id)
    @id = new_id
    @level = 0
    refill_max
    @sips = (KItemRefill::FILL_EMPTY_ITEM ? @sip_max : 0)
  end

  def refill
    refill_max
    @sips = @sip_max
  end

  def level_max() KItemRefill::MAX_LEVEL[@id] end
  private
  def refill_max
    limit = KItemRefill::USAGE_LIMITS[@id]
    @sip_max = (limit + (@level * KItemRefill::USAGE_INCREASE[@id]))
  end
end

class Game_Party
  attr_reader :refill_items
  alias kyon_kitemrefill_init_all_items init_all_items
  def init_all_items
    kyon_kitemrefill_init_all_items
    ids = KItemRefill::IDS.sort
    @refill_items = {}
    ids.each {|new_id| @refill_items[new_id] = RefillItem.new(new_id) }
  end
end

class Game_Battler
  alias kyon_kitemrefill_gm_battler_item_effect_r_hp item_effect_recover_hp
  alias kyon_kitemrefill_gm_battler_item_effect_r_mp item_effect_recover_mp
  def item_effect_recover_hp(user, item, effect)
    refill = KItemRefill::IDS.include?(item.id)
    if refill and $game_party.refill_items[item.id].sips == 0
      @result.success = false
      return
    end
    kyon_kitemrefill_gm_battler_item_effect_r_hp(user, item, effect)
    $game_party.refill_items[item.id].sips -= 1 if refill and @result.success
  end

  def item_effect_recover_mp(user, item, effect)
    refill = KItemRefill::IDS.include?(item.id)
    if refill and $game_party.refill_items[item.id].sips == 0
      @result.success = false
      return
    end
    kyon_kitemrefill_gm_battler_item_effect_r_hp(user, item, effect)
    $game_party.refill_items[item.id].sips -= 1 if refill and @result.success
  end
end

class Window_Help
  def set_item(item)
    desc = ''
    if item
      desc = item.description
      refill_item = $game_party.refill_items[item.id]
      desc = desc.gsub(/\\[Uu]/){ refill_item.sips.to_s } if refill_item
    end
    set_text(desc)
  end
end

class Scene_ItemBase
  alias kyon_kitemrefill_scn_itembase_use_item use_item
  def use_item
    kyon_kitemrefill_scn_itembase_use_item
    @item_window.update_help if KItemRefill::IDS.include?(item.id)
  end
end
avatar
kyonides
Usuario VIP
Usuario VIP

Mensajes : 66
Fecha de inscripción : 09/03/2009

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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