¡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 EkuipSkills XP el Sáb Oct 13, 2018 8:54 am

kyonides

avatar
EkuipSkills XP
Versión Kiwi


por Kyonides-Arkanthes


Introducción

Este script surge por la curiosidad de implementar un sistema más conveniente (para mí) de agregar tanto técnicas o skills como ranuras de armaduras en el XP. Está compuesto por dos scripts, el principal y el parser o lector de TXT para que se creen los archivos RXDATA que el juego encriptado necesitará más adelante.

¡Que no! ¡No olviden seguir las instrucciones de mis scripts!

Los Mismísimos Scripts

Script Temporal
Código:
# * EkuipSkills XP - Parser
#   Scripter : Kyonides-Arkanthes
#   2018-10-13

# Este script TEMPORAL incluye armas y 8 partes de armadura que pueden ayudar
# al héroe a aprender técnicas o skills. Las partes extras son opcionales, pero
# pueden agregar más si lo desean. Solo sigan las instrucciones del script
# principal de EkuipSkills XP con cuidado y de fijo tendrán éxito.

# Creen o Abran el archivo Ekuip Skills.txt y digiten cosas como lo siguiente:

#Arma 1 enseña : 1,2
#Armadura 1 enseña : 3

# No necesitan el símbolo de numeral #.
# ¡El archivo debe terminar con una línea en blanco!

# Tengan en cuenta que los Escudos, Yelmos, Armaduras y Accesorios son todos la
# misma cosa para la base de datos del maker.

# ¡¡ESTE SCRIPT DEBEN COLOCARLO SOBRE EkuipSkills XP PRINCIPAL!!

# ¡Remuévanlo del editor antes de distribuir el juego o demo!

def parse_files
  weapons = {}
  armors = {}
  lines = File.readlines('Ekuip Skills.txt')
  lines.size.times do
    line = lines.shift
    ids = line.scan(/\d+/).map!{|d| d.to_i }
    if line[/armadura/i]
      weapons[ids.shift] = ids
    elsif line[/arma/i]
      armors[ids.shift] = ids
    end
  end
  save_data(weapons, 'Data/EkuipSkillsWeapons.rxdata')
  save_data(armors, 'Data/EkuipSkillsArmors.rxdata')
end
parse_files


Script PRINCIPAL
Código:
# * EkuipSkills XP - Versión Kiwi
#   Scripter : Kyonides-Arkanthes
#   2018-10-13

# Este script TEMPORAL incluye armas y 8 partes de armadura que pueden ayudar
# al héroe a aprender técnicas o skills. Las partes extras son opcionales, pero
# pueden agregar más si lo desean.
# Se reemplaza el método equip de Game_Actor, lo que haría incompatible con
# scripts que dependan de la versión original (como por medio de un alias).

# Agrega métodos como armor5_id o armor8_id. Si desean agregar más piezas de
# equipamiento, creen un nuevo método en Game_Actor como en este ejemplo:

# def armor9_id() @armors[8] end

# Justo como en los que yo ya creé. Colóquenlo debajo de mis métodos y todo
# debería funcionar de lo mejor.

# También cambien el valor de ARMOR_SLOT_MAX conforme a eso. Su valor constante
# no cambiará durante el juego. ¡¡Debe ser igual o mayor a 4, chicos!!

module EkuipSkills
  ARMOR_SLOT_MAX = 8 # Máximo Número de Partes de Armadura
  module_function
  def weapons() @weapons end
  def armors() @armors end
  @weapons = load_data('Data/EkuipSkillsWeapons.rxdata')
  @armors = load_data('Data/EkuipSkillsArmors.rxdata')
  @weapons.default = []
  @armors.default = []
end

class Game_Actor
  alias kyon_ekuipskills_gm_actor_setup setup
  def setup(actor_id)
    kyon_ekuipskills_gm_actor_setup(actor_id)
    @armor_slot_max = EkuipSkills::ARMOR_SLOT_MAX
    @armors = [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
    @armors += Array.new(@armor_slot_max - 4, 0)
    learn_equip_skill(:weapon, :all_armors)
  end

  def learn_equip_skill(*equipment)
    equipment.each do |piece|
      case piece
      when 0, :weapon then @skills += EkuipSkills.weapons[@weapon_id]
      when 1..@armor_slot_max
        @skills += EkuipSkills.armors[@armors[piece - 1]]
      when :all_armors
        @armors.each {|aid| @skills += EkuipSkills.armors[aid] }
      end
    end
    @skills = @skills.sort
  end

  def equip(equip_type, id)
    case equip_type
    when 0, :weapon
      if id == 0 or $game_party.weapon_number(id) > 0
        $game_party.gain_weapon(@weapon_id, 1)
        @skills -= EkuipSkills.weapons[@weapon_id]
        @weapon_id = id
        $game_party.lose_weapon(id, 1)
        @skills += EkuipSkills.weapons[@weapon_id]
        @skills = @skills.sort
      end
    when 1..@armor_slot_max
      if id == 0 or $game_party.armor_number(id) > 0
        armor_index = equip_type - 1
        armor_id = @armors[armor_index]
        update_auto_state($data_armors[armor_id], $data_armors[id])
        $game_party.gain_armor(armor_id, 1)
        @skills -= EkuipSkills.armors[armor_id]
        $game_party.lose_armor(id, 1)
        @armors[armor_index] = id
        @skills += EkuipSkills.armors[id]
        @skills = @skills.sort
      end
    end
  end
  def armors_list() @armors end
  def armor1_id() @armors[0] end
  def armor2_id() @armors[1] end
  def armor3_id() @armors[2] end
  def armor4_id() @armors[3] end
  def armor5_id() @armors[4] end
  def armor6_id() @armors[5] end
  def armor7_id() @armors[6] end
  def armor8_id() @armors[7] end
end



Términos & Condiciones de Uso

Son libres de utilizarlos en proyectos no comerciales, deben mencionarme en los créditos de sus juegos y demos.

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.