Learn Skills From Items
Publicado em 8 de maio de 2013.Learn Skills From Items é um script para o RPG Maker XP desenvolvido SephirothSpawn para permitir que seus personagens aprendam skills (habilidades) através do uso de items.
Você pode definir skills diferentes, de itens diferentes, e em diferentes vezes que forem usados.
O script é facilmente instalado e pode ser personalizado.
Instalação
Para instalar, coloque o script abaixo do SDK e acima do Main.
Você pode ver detalhes de como customizar o script nos comentários do código abaixo:
#==============================================================================
# ** Learn Skills from Items (Usage)
#------------------------------------------------------------------------------
# SephirothSpawn
# Version 1
# 2006-08-23
#------------------------------------------------------------------------------
# * Description :
#
# This script was designed to allow your characters to learn skills from
# using items. You are allowed to set different skills, from different items
# for different times being used.
#------------------------------------------------------------------------------
# * Instructions :
#
# Place The Script Below the SDK and Above Main.
# To Customize your skill settings, refer to the customization instructions.
#------------------------------------------------------------------------------
# * Customization :
#
# Setting Up Items For Skills (0 as an actor id will default for all actors)
# - Item_Use_To_Skills = { actor_id => {item_id, times_to_use, ...}, ... }
#------------------------------------------------------------------------------
# * Syntax :
#
# Retrieving Item Use Counter
# - <game_actor>.skill_item_use_count(item_id)
#==============================================================================
#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log('Learn Skills from Items (Usage)', 'SephirothSpawn', 1, '2006-08-23')
#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.state('Learn Skills from Items (Usage)')
#==============================================================================
# ** Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Item Use For Skills
#
# ~ actor_id => {skill_id => {item_id => times, ...}, ...}
# Use 0 as actor for all actors
#--------------------------------------------------------------------------
Item_Use_To_Skills = {}
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_useitems4skills_gmactr_setup setup
alias seph_useitems4skills_gmactr_ie item_effect
#--------------------------------------------------------------------------
# * Setup
#--------------------------------------------------------------------------
def setup(actor_id)
# Original Setup
seph_useitems4skills_gmactr_setup(actor_id)
# Sets Up Item Use Counter
@skill_item_use = {}
end
#--------------------------------------------------------------------------
# * Skill Item Use Count
#--------------------------------------------------------------------------
def skill_item_use_count(item_id)
return @skill_item_use.has_key?(item_id) ?
@skill_item_use[item_id] : 0
end
#--------------------------------------------------------------------------
# * Item Effect
#--------------------------------------------------------------------------
def item_effect(item)
# Original Item Effects
seph_useitems4skills_gmactr_ie(item)
# Add to Item Use Counter
@skill_item_use[item.id] = 0 unless @skill_item_use.has_key?(item.id)
@skill_item_use[item.id] += 1
# Checks Items 4 Skill Constant
Item_Use_To_Skills.each do |actor_id, skill_data|
# Skip if Actor ID Not Self ID
next unless [0, self.id].include?(actor_id)
# Checks All Skill Data
skill_data.each do |skill_id, usage_req|
# Skip if skill already known
next if @skills.include?(skill_id)
# Sets Learn Flag On
learn_skill = true
# Checks All Item Use Requirements
usage_req.each do |item_id, n|
# Turn Learn Flag off if Requirement Not Met
learn_skill = false if n > skill_item_use_count(item_id)
end
# If Learn Flag On
if learn_skill
# Learn Skill
self.learn_skill(skill_id)
end
end
end
end
end
#------------------------------------------------------------------------------
# * End SDK Enable Test
#------------------------------------------------------------------------------
endInformações adicionais
- Categoria: Programação XP
- Tag: RPG Maker XP
- Adicionado por: LichKing
- Acessos: 34
Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Acesse aqui e saiba como. Obrigado!
