- Editado
por Kyonides Arkanthes
Introducción
Este script les permite configurar tanto incrementos como decrementos para sus monstruos dependiendo de una habilidad alias skill y de el ID del monstruo como del “supuesto” terreno en el que luchan. Con terreno me refiero a suponer que el mapa de tipo desierto es tipo 1 - Desierto y que un monstruo tipo mono tiene más ventajas en el tipo 2 - Bosque. Entonces si nuestro monstruo es arbóreo, le convendría lanzar un hechizo para modificar el terreno por uno más favorable… si tiene suerte. La habilidad puede fallar o puede caer en uno desfavorable como el mar.
Parser - Script Temporal
# * KMonstersTerrain Parser Script for Version 1.1.0
# Scripter : Kyonides Arkanthes
module KMonsTerrain
PARSE_FILE = true
TERRAINS = {}# Do not edit this line!
GOOD_TERRAINS = {}# Do not edit this line!
BAD_TERRAINS = {}# Do not edit this line!
MONSTER_BOOSTS = {}# Do not edit this line!
MONSTER_DEBUFF = {}# Do not edit this line!
MONSTER_SKILLS = {}# Do not edit this line!
# [TerrainID] = Backdrop Name
TERRAINS[1] = '043-Cave01'
TERRAINS[2] = '011-PortTown01'
# [MonsterID] = [All, Terrain, IDs]
GOOD_TERRAINS[1] = [1]
# [MonsterID] = [All, Terrain, IDs]
BAD_TERRAINS[1] = [2]
# [MonsterID] = [HP, SP, STR, DEX, AGI, INT, ATK, PD, MD, EVA]
MONSTER_BOOSTS[1] = [50, 25, 15, 5, 5, 15, 15, 5, 5, 5]
# [MonsterID] = [[SkillID, Rating], etc.]
MONSTER_SKILLS[1] = [[11, 5]]
# [MonsterID] = [HP, SP, STR, DEX, AGI, INT, ATK, PD, MD, EVA]
MONSTER_DEBUFF[1] = [50, 25, 15, 5, 5, 15, 15, 5, 5, 5]
class Boost# Do not alter this class!
def initialize
@hp = 0
@sp = 0
@str = 0
@dex = 0
@agi = 0
@int = 0
@atk = 0
@pdef = 0
@mdef = 0
@eva = 0
@actions = []
end
attr_accessor :hp, :sp, :str, :dex, :agi, :int, :atk, :pdef, :mdef, :eva
attr_accessor :actions
end
def self.make_file
boosts = {}
mbs = MONSTER_BOOSTS.dup
ids = MONSTER_BOOSTS.keys.sort
ids.each do |mid|
mb = mbs[mid]
boost = Boost.new
boost.hp = mb.pop
boost.sp = mb.pop
boost.str = mb.pop
boost.dex = mb.pop
boost.agi = mb.pop
boost.int = mb.pop
boost.atk = mb.pop
boost.pdef = mb.pop
boost.mdef = mb.pop
boost.eva = mb.pop
boosts[mid] = boost
end
skills = {}
ids = MONSTER_SKILLS.keys.sort
ids.each do |sid|
boosts[sid].actions = MONSTER_SKILLS[sid].map do |s,r|
gba = RPG::Enemy::Action.new
gba.kind = 1
gba.skill_id = s
gba.rating = r
gba
end
end
debuffs = {}
mbs = MONSTER_DEBUFF.dup
ids = MONSTER_DEBUFF.keys.sort
ids.each do |mid|
mb = mbs[mid]
debuff = Boost.new
debuff.hp = -mb.pop
debuff.sp = -mb.pop
debuff.str = -mb.pop
debuff.dex = -mb.pop
debuff.agi = -mb.pop
debuff.int = -mb.pop
debuff.atk = -mb.pop
debuff.pdef = -mb.pop
debuff.mdef = -mb.pop
debuff.eva = -mb.pop
debuffs[mid] = debuff
end
puts "Opening KMonsTerrain file..."
File.open('Data/KMonsTerrain.rxdata','wb') do |f|
Marshal.dump(TERRAINS, f)
Marshal.dump(GOOD_TERRAINS, f)
Marshal.dump(BAD_TERRAINS, f)
Marshal.dump(boosts, f)
Marshal.dump(debuffs, f)
end
puts :Finished
end
make_file if PARSE_FILE
end
El script anterior es temporal porque solo está ahí para guardar sus configuraciones en archivos separados para así no facilitarle a terceros el cambiar sus valores sin permiso. También facilita bastante el brindarle soporte al script principal ya que todas las líneas de código se mantendrán intactas y lo que suceda en un proyecto también debería pasarle a otros. Así es como solucionar bugs se vuelve mucho más sencillo y fáciles de replicar de ser necesario.
Script
# * KMonstersTerrain Parser Script
# Scripter : Kyonides Arkanthes
module KMonstersTerrainParser
PARSE_FILE = true
TERRAINS = {}# Do not edit this line!
# [TerrainID] = Backdrop Name
TERRAINS[1] = '043-Cave01'
TERRAINS[2] = '011-PortTown01'
MONSTER_GOOD_TERRAINS = {}# Do not edit this line!
# [MonsterID] = [All, Terrain, IDs]
MONSTER_GOOD_TERRAINS[1] = [1]
MONSTER_BAD_TERRAINS = {}# Do not edit this line!
# [MonsterID] = [All, Terrain, IDs]
MONSTER_BAD_TERRAINS[1] = [2]
MONSTER_BOOSTS = {}# Do not edit this line!
# [MonsterID] = [HP, SP, STR, DEX, AGI, INT, ATK, PD, MD, EVA]
MONSTER_BOOSTS[1] = [50, 25, 15, 5, 5, 15, 15, 5, 5, 5]
MONSTER_DEBUFF = {}# Do not edit this line!
# [MonsterID] = [HP, SP, STR, DEX, AGI, INT, ATK, PD, MD, EVA]
MONSTER_DEBUFF[1] = [50, 25, 15, 5, 5, 15, 15, 5, 5, 5]
class Boost# Do not alter this class!
def initialize
@hp = 0
@sp = 0
@str = 0
@dex = 0
@agi = 0
@int = 0
@atk = 0
@pdef = 0
@mdef = 0
@eva = 0
end
attr_accessor :hp, :sp, :str, :dex, :agi, :int, :atk, :pdef, :mdef, :eva
end
def self.make_file
boosts = {}
mbs = MONSTER_BOOSTS.dup
ids = MONSTER_BOOSTS.keys
ids.each do |mid|
mb = mbs[mid]
boost = Boost.new
boost.hp = mb.pop
boost.sp = mb.pop
boost.str = mb.pop
boost.dex = mb.pop
boost.agi = mb.pop
boost.int = mb.pop
boost.atk = mb.pop
boost.pdef = mb.pop
boost.mdef = mb.pop
boost.eva = mb.pop
boosts[mid] = boost
end
debuffs = {}
mbs = MONSTER_DEBUFF.dup
ids = MONSTER_DEBUFF.keys
ids.each do |mid|
mb = mbs[mid]
debuff = Boost.new
debuff.hp = -mb.pop
debuff.sp = -mb.pop
debuff.str = -mb.pop
debuff.dex = -mb.pop
debuff.agi = -mb.pop
debuff.int = -mb.pop
debuff.atk = -mb.pop
debuff.pdef = -mb.pop
debuff.mdef = -mb.pop
debuff.eva = -mb.pop
debuffs[mid] = debuff
end
save_data(TERRAINS, 'Data/KMonstersTerrainT.rxdata')
save_data(MONSTER_GOOD_TERRAINS, 'Data/KMonstersTerrainGT.rxdata')
save_data(MONSTER_BAD_TERRAINS, 'Data/KMonstersTerrainBT.rxdata')
save_data(boosts, 'Data/KMonstersTerrainB.rxdata')
save_data(debuffs, 'Data/KMonstersTerrainD.rxdata')
end
make_file if PARSE_FILE
end
Términos y Condiciones
Deben incluir mi sobrenombre en los créditos de sus juegos.
Para juegos de código abierto y gratuitos o demos: Libre de Cargos.
Para juegos comerciales: Aplica un módico rubro.