¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 KSummon XP el Vie Oct 12, 2018 6:13 am

Reputación del mensaje :100% (1 voto)

kyonides

avatar
KSummon XP


Versiones Kiwi y Mango y Maracuyá


por Kyonides-Arkanthes

Introducción

[gruñón] ¡Vete al diablo! [/gruñón] No, ¡es broma! Ópalo Sonrisa Grande

Este corto script les permitirá configurar una invocación de una arma o armadura mediante una técnica o skill. Le permitirá a un mago o clérigo invocarla para ayudar a un camarada (no commie) en batalla a mejorar sus estadísticas de ataque, etc. Aún así deben saber que puede fallar y dejar al camarada (nunca ruso) en una difícil situación al no equiparse una arma decente o lo que sea, si la había...

Según un fanático furry de Elder Scrolls, se le conoce como Bound Weapons o Bound Armors (¿Armas enlazadas? ¿Armaduras enlazadas?). Nunca lo he jugado así que me era imposible imaginarme que eso pudiera ser popular ahí.

Además es posible permitir que un sprite salte justo cuando tuvo éxito la invocación al darles el nombre de dicha arma. (Sin embargo, yo detesto esa opción para serles franco.)

Y desde la versión Maracuyá los monstruos pueden usar esa habilidad en contra de los héroes. Alguno de los aliados también pueden recibir daño por el culatazo o recoil...
Ópalo Carcajada ¡Ya veremos si ese patético de Alexis sobrevive a esto!


Compatibilidad



  • Sistema de Batallas del XP
  • Brenda's Visual Battlers
  • Action Cost System
  • Agility Based Battlesystem
  • MakirouAru's ATB
  • ParaDog's ATB
  • XRXS65
  • Cogwheel's RTAB (sin aviso de la nueva arma)
  • ???


Los Tan Esperados Scripts

Versión Kiwi

Código:
# * KSummon XP - Versión Kiwi alias Edición Armas y Armaduras
#   Scripter : Kyonides-Arkanthes
#   2018-10-12

# Este script corto les permitirá usar una habilidad o skill para invocar una
# arma o armadura, pasándole por encima a las limitaciones de la base de datos
# que por lo general les impedirían hacer tal cosa.

# Por favor noten que el valor de retorno por defecto para hashes de WEAPONS y
# otros es el ID de arma o pieza de equipo para el héroe aliado de fallar esto.

module KSummon
  # ¿Usa un sprite saltarín para contarle al jugador del éxito de la invocación?
  USE_POP_UP_LABEL = true # true - ¡Muéstralo!, nil - ¡Ni te atrevas!
  WEAPON_SKILL = 81 # No puede ser igual a BODY_ARMOR_SKILL
  WEAPONS = {} # ¡No debes tocar esto!
  WEAPONS.default = 0 # Debe ser 0 o superior si es de una arma existente
  WEAPONS[1] = (33..38).to_a # Agrega IDs de Espadas para Alexis
  WEAPONS[2] = (39..44).to_a # Agrega IDs de Lanzas para Basilio
  BODY_ARMOR_SKILL = 82 # No puede ser igual a WEAPON_SKILL
  BODY_ARMORS = {} # ¡No debes tocar esto!
  BODY_ARMORS.default = 0 # Debe ser 0 o superior si es de una arm. existente
  BODY_ARMORS[1] = (33..38).to_a # Agrega IDs de Armaduras para Alexis
  BODY_ARMORS[2] = (39..44).to_a # Agrega IDs de Armaduras para Basilio
  # Fin de la Sección de Configuración #
  module_function
  def clear_equipment
    @weapons.clear
    @body_armors.clear
  end
  def weapons() @weapons end
  def body_armors() @body_armors end
  @weapons = {}
  @body_armors = {}
end

class Game_Battler
  alias gm_b_skill_effect skill_effect
  def skill_effect(user, skill)
    result = gm_b_skill_effect(user, skill)
    case skill.id
    when KSummon::WEAPON_SKILL
      force_change_equip(:weapon, true)
      if KSummon::USE_POP_UP_LABEL and @weapon_id != 0
        self.damage = $data_weapons[@weapon_id].name
      end
    when KSummon::BODY_ARMOR_SKILL
      force_change_equip(:body, true)
      if KSummon::USE_POP_UP_LABEL and @armor3_id != 0
        self.damage = $data_armors[@armor3_id].name
      end
    end
    return result
  end
end

class Game_Actor
  def force_change_equip(kind, set_equipment)
    case kind
    when :weapon
      if set_equipment
        KSummon.weapons[@actor_id] = @weapon_id
        ary = KSummon::WEAPONS[@class_id]
        return @weapon_id = ary[rand(ary.size)]
      else
        weapons = KSummon.weapons
        return unless weapons.keys.include?(@actor_id)
        @weapon_id = weapons[@actor_id]
        return KSummon.weapons.delete(@actor_id)
      end
    when :body
      if set_equipment
        KSummon.body_armors[@actor_id] = @armor3_id
        ary = KSummon::BODY_ARMORS[@class_id]
        return @armor3_id = ary[rand(ary.size)]
      else
        armors = KSummon.body_armors
        return unless armors.keys.include?(@actor_id)
        @armor3_id = KSummon.body_armors[@actor_id]
        return KSummon.body_armors.delete(@actor_id)
      end
    end
  end
end

class Scene_Battle
  alias kyon_ksummon_scn_battle_end battle_end
  def battle_end(result)
    $game_party.actors.each do |actor|
      actor.force_change_equip(:weapon, nil)
      actor.force_change_equip(:body, nil)
    end
    KSummon.clear_equipment
    kyon_ksummon_scn_battle_end(result)
  end
end

Versión Mango
Código:
# * KSummon XP - Versión Mango
#   alias Edición Armas Armaduras y Accesorios
#   Scripter : Kyonides-Arkanthes
#   2018-10-12

# Este script corto les permitirá usar una habilidad o skill para invocar una
# arma o armadura, pasándole por encima a las limitaciones de la base de datos
# que por lo general les impedirían hacer tal cosa.

# Por favor noten que el valor de retorno por defecto para hashes de WEAPONS y
# otros es el ID de arma o pieza de equipo para el héroe aliado de fallar esto.

# * ¿Cómo funciona el DONT_LOSE_EQUIP_RATE exclusivo de Mango?

#   NA   : Número Aleatorio - entre 0 y 100
#   DLER : DONT_LOSE_EQUIP_RATE[clase_de_equipo]
#   ML   : Nivel del Mago * MAGE_LVL_MULTIPLIER (Multiplicador)

# El script hace el siguiente chequeo de fallar la invocación:
#   Si NA es mayor que DLER + ML
# Posibles Resultados:
#   Mayor que - ¡Sí, olvídate de lo concerniente a esa pieza de equipo, amigo!
#   Igual o Menor que - Te quedas con tu tonta pieza. Viva...

module KSummon
  # ¿Usa un sprite saltarín para contarle al jugador del éxito de la invocación?
  USE_POP_UP_LABEL = true # true - ¡Muéstralo!, nil - ¡Ni te atrevas!
  # ¿Quédate con el equipo invocado por el mago hasta el final de la batalla?
  KEEP_EQUIPMENT_TILL_BATTLE_ENDS = nil # Values: true - keep it, nil - no way!
  MAGE_LVL_MULTIPLIER = 1 # Nivel del Mago * Multiplicador
  # Probabilidad de Prevenir Pérdida de Equipo: Armas, Petos y Accesorios
  # entre 1 y 100 (Porcentaje) sin incluir Nivel del Mago por su Multiplicador
  DONT_LOSE_EQUIP_RATE = { :weapon => 50, :body => 65, :accessory => 75 }
  # Turnos para Armas, Petos y Accesorios entre 1 y 1000
  TURNS = { :weapon => 5, :body => 7, :accessory => 10 }
  WEAPON_SKILL = 81 # No puede ser igual a BODY_ARMOR_SKILL ni al otro SKILL
  WEAPONS = {} # ¡No debes tocar esto!
  WEAPONS.default = 0 # Debe ser 0 o superior si es de una arma existente
  WEAPONS[1] = (33..38).to_a # Agrega IDs de Espadas para Alexis
  WEAPONS[2] = (39..44).to_a # Agrega IDs de Lanzas para Basilio
  BODY_ARMOR_SKILL = 82 # No puede ser igual a BODY_ARMOR_SKILL ni al otro SKILL
  BODY_ARMORS = {} # ¡No debes tocar esto!
  BODY_ARMORS.default = 0 # Debe ser 0 o superior si es de una arm. existente
  BODY_ARMORS[1] = (33..38).to_a # Agrega IDs de Armaduras para Alexis
  BODY_ARMORS[2] = (39..44).to_a # Agrega IDs de Armaduras para Basilio
  ACCESSORY_SKILL = 83 # No puede ser igual a BODY_ARMOR_SKILL ni al otro SKILL
  ACCESSORIES = {} # ¡No debes tocar esto!
  ACCESSORIES.default = 0 # Debe ser 0 o superior si es de un acces. existente
  ACCESSORIES[1] = (33..38).to_a # Agrega IDs de Accesorios para Alexis
  ACCESSORIES[2] = (39..44).to_a # Agrega IDs de Accesorios para Basilio
  # Fin de la Sección de Configuración #
  class Equip
    attr_reader :id, :kind
    def initialize(equip_id, kind)
      @id = equip_id
      @kind = kind
      @turns = TURNS[kind]
    end
    def no_turns() @turns == 0 end
    def decrease_turn() @turns -= 1 end
  end
  module_function
  def decrease_turn
    return if KEEP_EQUIPMENT_TILL_BATTLE_ENDS
    @weapons.each do |k, e|
      e.decrease_turn
      reset_equip(:weapon, k) if e.no_turns
    end
    @body_armors.each do |k, e|
      e.decrease_turn
      reset_equip(:body, k) if e.no_turns
    end
    @accessor.each do |k, e|
      e.decrease_turn
      reset_equip(:accessory, k) if e.no_turns
    end
  end

  def reset_equip(kind, key)
    $game_actors[key].force_reset_equip(kind) rescue nil
    case kind
    when :weapon then @weapons.delete(key)
    when :body then @body_armors.delete(key)
    when :accessory then @accessor.delete(key)
    end
  end

  def clear_equipment
    @weapons.clear
    @body_armors.clear
    @accessor.clear
  end
  def equip_lost?(kind)
    rand(100) > DONT_LOSE_EQUIP_RATE[kind] + @mage_lvl * MAGE_LVL_MULTIPLIER
  end
  def store_weapon(hid, wid) @weapons[hid] = Equip.new(wid, :weapon) end
  def store_body_armor(hid, bid) @body_armors[hid] = Equip.new(bid, :body) end
  def store_accessory(hid, aid) @accessor[hid] = Equip.new(aid, :accessory) end
  def weapons() @weapons end
  def body_armors() @body_armors end
  def accessories() @accessor end
  def mage_lvl=(level) @mage_lvl = level end
  @weapons = Hash.new{ Equip.new(0, :weapon) }
  @body_armors = Hash.new{ Equip.new(0, :body) }
  @accessor = Hash.new{ Equip.new(0, :accessory) }
end

class Game_Battler
  alias gm_b_skill_effect skill_effect
  def skill_effect(user, skill)
    result = gm_b_skill_effect(user, skill)
    case skill.id
    when KSummon::WEAPON_SKILL
      force_set_equip(:weapon, result, user.level)
      if KSummon::USE_POP_UP_LABEL and @weapon_id != 0
        self.damage = $data_weapons[@weapon_id].name
      end
    when KSummon::BODY_ARMOR_SKILL
      force_set_equip(:body, result, user.level)
      if KSummon::USE_POP_UP_LABEL and @armor3_id != 0
        self.damage = $data_armors[@armor3_id].name
      end
    when KSummon::ACCESSORY_SKILL
      force_set_equip(:accessory, result, user.level)
      if KSummon::USE_POP_UP_LABEL and @armor4_id != 0
        self.damage = $data_armors[@armor4_id].name
      end
    end
    return result
  end
end

class Game_Actor
  def force_set_equip(kind, success, mage_level)
    KSummon.mage_lvl = mage_level
    case kind
    when :weapon
      if success
        KSummon.store_weapon(@actor_id, @weapon_id)
        ary = KSummon::WEAPONS[@class_id]
        return @weapon_id = ary[rand(ary.size)]
      else
        @weapon_id = 0 if KSummon.equip_lost?(kind)
        return 0
      end
    when :body
      if success
        KSummon.store_body_armor(@actor_id, @armor3_id)
        ary = KSummon::BODY_ARMORS[@class_id]
        return @armor3_id = ary[rand(ary.size)]
      else
        @armor3_id = 0 if KSummon.equip_lost?(kind)
        return 0
      end
    when :accessory
      if success
        KSummon.store_accessory(@actor_id, @armor4_id)
        ary = KSummon::ACCESSORIES[@class_id]
        return @armor4_id = ary[rand(ary.size)]
      else
        @armor4_id = 0 if KSummon.equip_lost?(kind)
        return 0
      end
    end
  end

  def force_reset_equip(*kinds)
    kinds.each do |kind|
      case kind
      when :weapon
        weapons = KSummon.weapons
        next unless weapons.keys.include?(@actor_id)
        @weapon_id = weapons[@actor_id].id
        next
      when :body
        armors = KSummon.body_armors
        next unless armors.keys.include?(@actor_id)
        @armor3_id = armors[@actor_id].id
        next
      when :accessory
        accessories = KSummon.accessories
        next unless accessories.keys.include?(@actor_id)
        @armor4_id = accessories[@actor_id].id
      end
    end
  end
end

class Scene_Battle
  alias kyon_ksummon_scn_battle_sp4 start_phase4
  alias kyon_ksummon_scn_battle_end battle_end
  def start_phase4
    KSummon.decrease_turn
    kyon_ksummon_scn_battle_sp4
  end

  def battle_end(result)
    if KSummon::KEEP_EQUIPMENT_TILL_BATTLE_ENDS
      team = $game_party.actors
      team.each {|actor| actor.force_reset_equip(:weapon, :body, :accessory) }
      KSummon.clear_equipment
    end
    kyon_ksummon_scn_battle_end(result)
  end
end


Versión Maracuyá
Código:
# * KSummon XP - Versión Maracuyá
#  alias Edición Armas Armaduras y Accesorios
#  Scripter : Kyonides-Arkanthes
#  2018-12-06

# Este script corto les permitirá usar una habilidad o skill para invocar una
# arma o armadura, pasándole por encima a las limitaciones de la base de datos
# que por lo general les impedirían hacer tal cosa.

# Por favor noten que el valor de retorno por defecto para hashes de WEAPONS y
# otros es el ID de arma o pieza de equipo para el héroe aliado de fallar esto.

# Ahora los monstruos pueden cambiar el equipo de los héroes de usar alguna de
# las skills de este script. ¡Las constantes DEMOTE_ son para monstruos!

# También pueden configurar Culatazo (Recoil) si lo desean... *Insertar Risa*

# * ¿Cómo funciona el DONT_LOSE_EQUIP_RATE exclusivo de Mango?

#  NA  : Número Aleatorio - entre 0 y 100
#  DLER : DONT_LOSE_EQUIP_RATE[clase_de_equipo]
#  ML  : Nivel del Mago * MAGE_LVL_MULTIPLIER (Multiplicador)

# El script hace el siguiente chequeo de fallar la invocación:
#  Si NA es mayor que DLER + ML
# Posibles Resultados:
#  Mayor que - ¡Sí, olvídate de lo concerniente a esa pieza de equipo, amigo!
#  Igual o Menor que - Te quedas con tu tonta pieza. Viva...

module KSummon
  # ¿Usa un sprite saltarín para contarle al jugador del éxito de la invocación?
  USE_POP_UP_LABEL = true # true - ¡Muéstralo!, nil - ¡Ni te atrevas!
  ALLOW_HAUNTED_ACTOR_RECOIL = true # true - ¡Aliados son heridos!
  # ¿Quédate con el equipo invocado por el mago hasta el final de la batalla?
  KEEP_EQUIPMENT_TILL_BATTLE_ENDS = nil # Values: true - keep it, nil - no way!
  MAGE_LVL_MULTIPLIER = 1 # Nivel del Mago * Multiplicador
  MONSTER_LVL_MULTIPLIER = 1 # Nivel del Monstruo * Multiplicador
  HAUNTED_ACTOR_RECOIL_PERCENT = 25 # Between 0 and 1000%!?
  # Probabilidad de Prevenir Pérdida de Equipo: Armas, Petos y Accesorios
  # entre 1 y 100 (Porcentaje) sin incluir Nivel del Mago por su Multiplicador
  DONT_LOSE_EQUIP_RATE = { :weapon => 50, :body => 65, :accessory => 75 }
  # Turnos para Armas, Petos y Accesorios entre 1 y 1000
  TURNS = { :weapon => 5, :body => 7, :accessory => 10 }
  WEAPON_SKILL = 81 # No puede ser igual a BODY_ARMOR_SKILL ni al otro SKILL
  BODY_ARMOR_SKILL = 82 # No puede ser igual a BODY_ARMOR_SKILL ni al otro SKILL
  ACCESSORY_SKILL = 83 # No puede ser igual a BODY_ARMOR_SKILL ni al otro SKILL
  DEMOTE_WEAPON_SKILL = 84 # ¡Usado por Monstruos!
  DEMOTE_ARMOR_SKILL = 85 # ¡Usado por Monstruos!
  DEMOTE_ACCESS_SKILL = 86 # ¡Usado por Monstruos!
  HAUNTED_ACTOR_STATE = 17 # Estado de Actor Hechizado por Monstruo
  WEAPONS = {} # ¡No debes tocar esto!
  WEAPONS.default = 0 # Debe ser 0 o superior si es de una arma existente
  DEMOTE_WEAPONS = {} # ¡No debes tocar esto!
  DEMOTE_WEAPONS.default = 0 # 0 o superior si es de una arma existente
  WEAPONS[1] = (33..38).to_a # Agrega IDs de Espadas para Alexis
  WEAPONS[2] = (39..44).to_a # Agrega IDs de Lanzas para Basilio
  BODY_ARMORS = {} # ¡No debes tocar esto!
  BODY_ARMORS.default = 0 # Debe ser 0 o superior si es de una arm. existente
  DEMOTE_BODY_ARMORS = {} # ¡No debes tocar esto!
  DEMOTE_BODY_ARMORS.default = 0 # 0 o superior si es de una arm. existente
  BODY_ARMORS[1] = (33..38).to_a # Agrega IDs de Armaduras para Alexis
  BODY_ARMORS[2] = (39..44).to_a # Agrega IDs de Armaduras para Basilio
  DEMOTE_BODY_ARMORS[1] = (33..38).to_a # Add Body Armor ID's for Aluxes
  DEMOTE_BODY_ARMORS[2] = (39..44).to_a # Add Body Armor ID's for Basil
  ACCESSORIES = {} # ¡No debes tocar esto!
  ACCESSORIES.default = 0 # Debe ser 0 o superior si es de un acces. existente
  DEMOTE_ACCESSORIES = {} # ¡No debes tocar esto!
  DEMOTE_ACCESSORIES.default = 0 # 0 o superior si es de un acces. existente
  ACCESSORIES[1] = (33..38).to_a # Agrega IDs de Accesorios para Alexis
  ACCESSORIES[2] = (39..44).to_a # Agrega IDs de Accesorios para Basilio
  DEMOTE_ACCESSORIES[1] = (33..38).to_a # Add Body Armor ID's for Aluxes
  DEMOTE_ACCESSORIES[2] = (39..44).to_a # Add Body Armor ID's for Basil
  MONSTER_LEVELS = { 1 => 5, 2 => 10 } # Niveles de Monstruos
  MONSTER_LEVELS.default = 1 # Valor para monstruos no incluidos ahí
  # ¡No Edite Este Array o Arreglo o Lista!
  POSITIVE_SKILLS = [WEAPON_SKILL, BODY_ARMOR_SKILL, ACCESSORY_SKILL]
  # Fin de la Sección de Configuración #
  class Equip
    attr_reader :id, :kind
    def initialize(equip_id, kind)
      @id = equip_id
      @kind = kind
      @turns = TURNS[kind]
    end
    def no_turns() @turns == 0 end
    def decrease_turn() @turns -= 1 end
  end
  module_function
  def decrease_turn
    return if KEEP_EQUIPMENT_TILL_BATTLE_ENDS
    @weapons.each do |k, e|
      e.decrease_turn
      reset_equip(:weapon, k) if e.no_turns
    end
    @body_armors.each do |k, e|
      e.decrease_turn
      reset_equip(:body, k) if e.no_turns
    end
    @accessor.each do |k, e|
      e.decrease_turn
      reset_equip(:accessory, k) if e.no_turns
    end
    @monster_weapons.each do |k, e|
      e.decrease_turn
      monster_reset_equip(:weapon, k) if e.no_turns
    end
    @monster_body_armors.each do |k, e|
      e.decrease_turn
      monster_reset_equip(:body, k) if e.no_turns
    end
    @monster_accessor.each do |k, e|
      e.decrease_turn
      monster_reset_equip(:accessory, k) if e.no_turns
    end
  end

  def clear_equipment
    @weapons.clear
    @body_armors.clear
    @accessor.clear
    @monster_weapons.clear
    @monster_body_armors.clear
    @monster_accessor.clear
  end

  def equip_lost?(kind)
    rand(100) > DONT_LOSE_EQUIP_RATE[kind] + @mage_lvl * MAGE_LVL_MULTIPLIER
  end

  def monster_equip_lost?(kind)
    lvl = @monster_lvl * MONSTER_LVL_MULTIPLIER
    rand(100) > DONT_LOSE_EQUIP_RATE[kind] + lvl
  end

  def store_monster_weapon(hid, wid)
    @monster_weapons[hid] = Equip.new(wid, :weapon)
  end

  def store_monster_body_armor(hid, bid)
    @monster_body_armors[hid] = Equip.new(bid, :body)
  end

  def store_monster_accessory(hid, aid)
    @monster_accessor[hid] = Equip.new(aid, :accessory)
  end
  def store_weapon(hid, wid) @weapons[hid] = Equip.new(wid, :weapon) end
  def store_body_armor(hid, bid) @body_armors[hid] = Equip.new(bid, :body) end
  def store_accessory(hid, aid) @accessor[hid] = Equip.new(aid, :accessory) end
  def weapons() @weapons end
  def body_armors() @body_armors end
  def accessories() @accessor end
  def monster_weapons() @monster_weapons end
  def monster_body_armors() @monster_body_armors end
  def monster_accessories() @monster_accessor end
  def mage_lvl=(level) @mage_lvl = level end
  def monster_lvl=(level) @monster_lvl = level end
  @weapons = Hash.new{ Equip.new(0, :weapon) }
  @body_armors = Hash.new{ Equip.new(0, :body) }
  @accessor = Hash.new{ Equip.new(0, :accessory) }
  @monster_weapons = Hash.new{ Equip.new(0, :weapon) }
  @monster_body_armors = Hash.new{ Equip.new(0, :body) }
  @monster_accessor = Hash.new{ Equip.new(0, :accessory) }
  @mage_lvl = 0
  @monster_lvl = 0
end

class Game_Battler
  alias gm_b_attack_effect attack_effect
  alias gm_b_skill_effect skill_effect
  def attack_effect(atker)
    result = gm_b_attack_effect(atker)
    if atker.is_a?(Game_Actor) and @damage > 0
      if @states.include?(KSummon::HAUNTED_ACTOR_RECOIL_STATE)
        return result unless KSummon::ALLOW_HAUNTED_ACTOR_RECOIL
        pos = rand($game_party.actors.size)
        hero = $game_party.smooth_target_actor(pos)
        hero.damage = @damage * KSummon::HAUNTED_ACTOR_RECOIL_PERCENT / 100
      end
    end
    result
  end

  def skill_effect(user, skill)
    result = gm_b_skill_effect(user, skill)
    case skill.id
    when KSummon::WEAPON_SKILL
      force_set_equip(:weapon, result, user.level)
      keeps_equipment = @weapon_id > 0
    when KSummon::BODY_ARMOR_SKILL
      force_set_equip(:body, result, user.level)
      keeps_equipment = @armor3_id > 0
    when KSummon::ACCESSORY_SKILL
      force_set_equip(:accessory, result, user.level)
      keeps_equipment = @armor4_id > 0
    when KSummon::DEMOTE_WEAPON_SKILL
      lvl = KSummon::MONSTER_LEVELS[user.id]
      monster_set_equip(:weapon, result, lvl)
      keeps_equipment = @weapon_id > 0
    when KSummon::DEMOTE_ARMOR_SKILL
      lvl = KSummon::MONSTER_LEVELS[user.id]
      monster_set_equip(:body, result, lvl)
      keeps_equipment = @armor3_id > 0
    when KSummon::DEMOTE_ACCESS_SKILL
      lvl = KSummon::MONSTER_LEVELS[user.id]
      monster_set_equip(:accessory, result, lvl)
      keeps_equipment = @armor4_id > 0
    end
    if KSummon::USE_POP_UP_LABEL and keeps_equipment
      self.damage = $data_weapons[@weapon_id].name
    end
    return result
  end
end

class Game_Actor
  def force_set_equip(kind, success, mage_level)
    KSummon.mage_lvl = mage_level
    case kind
    when :weapon
      if success
        KSummon.store_weapon(@actor_id, @weapon_id)
        ary = KSummon::WEAPONS[@class_id]
        return @weapon_id = ary[rand(ary.size)]
      else
        @weapon_id = 0 if KSummon.equip_lost?(kind)
        return 0
      end
    when :body
      if success
        KSummon.store_body_armor(@actor_id, @armor3_id)
        ary = KSummon::BODY_ARMORS[@class_id]
        return @armor3_id = ary[rand(ary.size)]
      else
        @armor3_id = 0 if KSummon.equip_lost?(kind)
        return 0
      end
    when :accessory
      if success
        KSummon.store_accessory(@actor_id, @armor4_id)
        ary = KSummon::ACCESSORIES[@class_id]
        return @armor4_id = ary[rand(ary.size)]
      else
        @armor4_id = 0 if KSummon.equip_lost?(kind)
        return 0
      end
    end
  end

  def force_reset_equip(*kinds)
    kinds.each do |kind|
      case kind
      when :weapon
        weapons = KSummon.weapons
        next unless weapons.keys.include?(@actor_id)
        @weapon_id = weapons[@actor_id].id
        next
      when :body
        armors = KSummon.body_armors
        next unless armors.keys.include?(@actor_id)
        @armor3_id = armors[@actor_id].id
        next
      when :accessory
        accessories = KSummon.accessories
        next unless accessories.keys.include?(@actor_id)
        @armor4_id = accessories[@actor_id].id
      end
    end
  end

  def monster_set_equip(kind, success, mage_level)
    KSummon.monster_lvl = mage_level
    case kind
    when :weapon
      if success
        KSummon.monster_store_weapon(@actor_id, @weapon_id)
        ary = KSummon::DEMOTE_WEAPONS[@class_id]
        return @weapon_id = ary[rand(ary.size)]
      else
        @weapon_id = 0 if KSummon.monster_equip_lost?(kind)
        return 0
      end
    when :body
      if success
        KSummon.monster_store_body_armor(@actor_id, @armor3_id)
        ary = KSummon::DEMOTE_BODY_ARMORS[@class_id]
        return @armor3_id = ary[rand(ary.size)]
      else
        @armor3_id = 0 if KSummon.monster_equip_lost?(kind)
        return 0
      end
    when :accessory
      if success
        KSummon.monster_store_accessory(@actor_id, @armor4_id)
        ary = KSummon::DEMOTE_ACCESSORIES[@class_id]
        return @armor4_id = ary[rand(ary.size)]
      else
        @armor4_id = 0 if KSummon.monster_equip_lost?(kind)
        return 0
      end
    end
  end

  def monster_reset_equip(*kinds)
    kinds.each do |kind|
      case kind
      when :weapon
        weapons = KSummon.monster_weapons
        next unless weapons.keys.include?(@actor_id)
        @weapon_id = weapons[@actor_id].id
        next
      when :body
        armors = KSummon.monster_body_armors
        next unless armors.keys.include?(@actor_id)
        @armor3_id = armors[@actor_id].id
        next
      when :accessory
        accessories = KSummon.monster_accessories
        next unless accessories.keys.include?(@actor_id)
        @armor4_id = accessories[@actor_id].id
      end
    end
  end

  alias kyon_ksummon_gm_actor_scu? skill_can_use?
  def skill_can_use?(sid)
    skill = (KSummon::POSITIVE_SKILLS.include?(sid) and @skills.include?(skid))
    has_state = @states.include?(KSummon::HAUNTED_ACTOR_RECOIL_STATE)
    return false if skill and has_state
    kyon_ksummon_gm_actor_scu?(sid)
  end
end

class Scene_Battle
  alias kyon_ksummon_scn_battle_sp4 start_phase4
  alias kyon_ksummon_scn_battle_end battle_end
  def start_phase4
    KSummon.decrease_turn
    kyon_ksummon_scn_battle_sp4
  end

  def battle_end(result)
    if KSummon::KEEP_EQUIPMENT_TILL_BATTLE_ENDS
      team = $game_party.actors
      team.each do |actor|
        actor.force_reset_equip(:weapon, :body, :accessory)
        actor.monster_set_equip(:weapon, :body, :accessory)
      end
      KSummon.clear_equipment
    end
    kyon_ksummon_scn_battle_end(result)
  end
end



Preguntas Frecuentes o FAQ

P: ¿Por qué lo hiciste si... (seguido de alguna queja)?
R: Pues, no me interesa si les gusta o no les gusta, lo hice porque sí. Ópalo Tuerto

P: ¿Es compatible con mi sistema de batallas personalizado?
R: ¿Cómo rayos lo voy a saber?  Ópalo Tuerto Solo vayan y comprueben eso por sí mismos y luego envíenme un mp para contarme al respecto y así pueda yo agregarlo a la lista de compatibilidad de sistemas.

Duda Extra
P: ¿Por qué uno es Kiwi y otro es Mango y el más reciente es Maracuyá?
R: Eso es porque el primero representa el sencillo y el segundo una versión más compleja. No pierdan el tiempo preguntando por qué los elegí en primer lugar.  Ópalo Tuerto  



Términos y Condiciones de Uso

Siempre deben darme el crédito por hacer el script.

Versión Kiwi - Libre de usarlo en proyectos comerciales y no comerciales.
Versiones Mango y Maracuyá - Libres de usarlos en proyectos no comerciales.



Última edición por kyonides el Jue Dic 06, 2018 7:49 am, editado 1 vez

#2 Re: KSummon XP el Sáb Oct 13, 2018 5:11 am

kyonides

avatar
Les escribo para avisarles que ya se ha probado mi script con unos 7 sistemas de batallas o modificaciones del estándar. Para los que estén interesados en utilizarlo, pueden perderle el miedo si su sistema predilecto se encuentra en esa lista.

#3 Re: KSummon XP el Jue Dic 06, 2018 7:52 am

kyonides

avatar
No he pasado por aquí por mera casualidad, he aquí que se han dado cambios en este tema. Resulta, amigos de Ópalo, que desde ahora cuentan con la versión Maracuyá que trae un par de novedades curiosas que podrán encontrar si leen el post principal. ¡Disfruten el testeo de sus proyectos! Ópalo Sonrisa Grande

#4 Re: KSummon XP el Mar Dic 11, 2018 12:14 am

Vala

avatar
Qué alegría ver que sigas scripteando y compartiendo con la comunidad el fruto de ese arduo trabajo. Y lo mejor de todo, es que lo hagas con tanta amabilidad, entusiasmo y alegría.

Ópalo Reputación para vos, y espero ver pronto más de tus creaciones.

Saludos,
Vala.



Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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