O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Dúvida sobre skill comum 'Defender'

Iniciado por Dash, 03/04/2015 às 00:07

03/04/2015 às 00:07 Última edição: 03/04/2015 às 19:49 por King Gerar
 Olá pessoal, me chamo Dash e to fazendo meu primeiro projeto no RPG Maker VX Ace e então me surgiu uma necessidade, q eu não soube como satisfazer então por isso peço desculpas por vir chegando assim de repente mas me encontrei num beco sem saída: a skill Defender. Eu não quero que todos, senão um, dos meus personagens tenham esta skill e eu ja a realoquei e modifiquei coerentemente (colocando ela dentro do menu de skills especiais pra akele personagem, além de na verdade mesclar a skill defender com a tb clássica 'proteção') - e eu inutilizei o comando original, q aparece em todos os outros.
O que eu queria: Algo como no FF IX, onde cada personagem tem 1 comando único, onde n precisa gastar mana nem tp nem nada para executá-lo, esse comando seria 1 skill normal como qualquer outra soh que substituiria, no menu de ações principal da tela de combate padrão, o comando 'defender', e aí, como faço isso?

Grato desde já pela atenção!  :wow:

03/04/2015 às 01:10 #1 Última edição: 03/04/2015 às 01:17 por Lucas Leite
Este script deve servir:

Spoiler
=begin
#===============================================================================
 ** Replace Attack Command
 Author: Hime
 Date: Feb 2, 2013
--------------------------------------------------------------------------------
 ** Change log
 Feb 2
   - takes into consideration whether the skill can be used or not
 Feb 1, 2013
   - Initial release
--------------------------------------------------------------------------------   
 ** Terms of Use
 * Free to use in non-commercial projects
 * Contact me for commercial use
 * No real support. The script is provided as-is
 * Will do bug fixes, but no compatibility patches
 * Features may be requested but no guarantees, especially if it is non-trivial
 * Preserve this header
--------------------------------------------------------------------------------
 ** Description
 
 This script allows you to replace the attack command if you are able
 to use a particular skill.
 
 Each actor is given a list of possible attack commands, sorted by priority.
 When you are able to use one of the custom attack skills, your attack command
 will automatically change to that skill.
 
--------------------------------------------------------------------------------
 ** Usage
 
 Note-tag actors with a list of skill ID's.
 
   <attack_command: ID1 ID2 ID3 ... >
   
 This is priority-based, so the skill that appears first in the list will
 be used as the attack command.
 
 The default attack command is skill 1 and should be omitted.
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["TH_ReplaceAttackCommand"] = true
#===============================================================================
# ** Configuration
#===============================================================================
module TH
  module Replace_Attack_Command
    Regex = /<attack_command: (.*)>/i
  end
end
#===============================================================================
# ** Rest of the script
#===============================================================================
module RPG
  class Actor
    #---------------------------------------------------------------------------
    # Parse attack command list
    #---------------------------------------------------------------------------
    def attack_command_list
      return @attack_command_list unless @attack_command_list.nil?
      @attack_command_list = []
      res = self.note.match(TH::Replace_Attack_Command::Regex)
      @attack_command_list = res[1].scan(/\d+/).map!{|r| r.to_i} if res
      return @attack_command_list
    end
  end
end

class Game_Actor < Game_Battler
  
  #-----------------------------------------------------------------------------
  # Alias.
  #-----------------------------------------------------------------------------
  alias :th_replace_attack_cmd_atk_id :attack_skill_id
  def attack_skill_id
    skill_list = (@skills | added_skills)
    return actor.attack_command_list.detect{|id| skill_list.include?(id) && usable?($data_skills[id])} || th_replace_attack_cmd_atk_id
  end
end

class Window_ActorCommand < Window_Command
  
  #-----------------------------------------------------------------------------
  # Overwrite.
  #-----------------------------------------------------------------------------
  def add_guard_command
    attack_name = $data_skills[@actor.attack_skill_id].name
    add_command(attack_name, :attack, @actor.attack_usable?)
  end
end

class Scene_Battle < Scene_Base

  #-----------------------------------------------------------------------------
  # Overwrite.
  #-----------------------------------------------------------------------------
  def command_attack
    BattleManager.actor.input.set_skill(BattleManager.actor.attack_skill_id)
    select_enemy_selection
  end
end
[close]

A versão original (que pode ser encontrada aqui) substitui o comando Atacar por qualquer skill cujo ID estiver definido na configuração do personagem no Database. Eu modifiquei a linha "def add_attack_command" para "def add_guard_command", o que fará com que o script funcione do jeito que você quer.

PARA CONFIGURAR:

No Database, vá até a guia Actors e, no campo "Notes", digite a seguinte tag:

<attack_command: ID>


Onde está escrito ID, digite o número da skill que você quer usar. Se a skill estiver habilitada para o personagem (ou seja, ele precisa ter o level e a classe certas para usar a skill), ele a usará no lugar da ação padrão. Você também pode digitar mais de um ID (separado por um espaço), o que fará com que o personagem use a próxima skill da tag caso a primeira esteja desabilitada.

Só há um problema: a skill continuará aparecendo na lista do personagem. Não sei como corrigir isso.

====================================EDIT===================================

Achei o site da pessoa que criou o script acima. Se você consegue entender inglês, esta página tem uma série de scripts para configurar os comandos de batalha: http://himeworks.com/category/rgss3/commands/

Dentre as opções, acho que a melhor é esta, que permite que todos os comandos de todos os personagens sejam personalizados.

Muito obrigado, Lucas! Irei testar imediatamente tudo q vc me passou  :malvado:, vlw mesmo!  :clap: