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

RGSS3 - ManaShield [Traduzindo a Gringa]

Iniciado por Lotmaker, 14/03/2014 às 22:47

14/03/2014 às 22:47 Última edição: 14/03/2014 às 22:56 por Vash



[box class=titlebg]
Traduzindo a Gringa
[/box]


Olá menininhos e menininhas da CRM, boa noite, hoje trago à vocês a segunda edição do Traduzindo a Gringa, contando com a participação especial do nosso querido ADM [user]Raizen[/user], que possivelmente se tornará uma peça ativa neste projeto.


[box class=titlebg]
Utilidade
[/box]


Este script de fato conseguiu um espaço em meu coração, e em meu projeto, que nem existe. A ideia dele é bem simples, fazer com que uma habilidade, ao seu gosto, se transforme num tipo de aura que redireciona o dano que você tomou para sua mana. Extremamente útil para magos que possuem um life low e mana de sobra! Atenção para a faca de dois gumes, dizem que magos são iguais carros, sem combustíveis são inúteis.

[box class=titlebg]
Instruções
[/box]

Na nota da habilidade transcreva <manashield: X, Y%>, cujo X absorve o tanto de dano e Y a %.

[box class=titlebg]
Créditos
[/box]

Créditos a autora(?) Archeia Nessiah pela criação, a mesma que contribui para a criação dos resources do RPGMAKER WEB, e uma das donas do Division Heaven

Spoiler
# Manashield
# This will make a manashield state which allow actor takes damage to mana
# instead of health points.
# Usage: use this notetag inside a state <manashield: X, Y%>
# X is damage absorb per mana point.
# Y is damage percentage which can be absorbed.
# Free for all using purposes.
# Credit: Archeia Nessiah for the allowance.

module REGEXP
  module MANASHIELD
    MANASHIELD = /<manashield:[ ]*(\d+),[ ]*(\d+)[%"]?>/i
  end # MANASHIELD
end # REGEXP

#==============================================================================
# ¡ DataManager
#==============================================================================

module DataManager
    
  #--------------------------------------------------------------------------
  # alias method: load_database
  #--------------------------------------------------------------------------
  class <<self; alias load_database_manashield load_database; end
  def self.load_database
    load_database_manashield
    initialize_manashield
  end
  
  #--------------------------------------------------------------------------
  # new method: initialize_manashield
  #--------------------------------------------------------------------------
  def self.initialize_manashield
    groups = [$data_states]
    groups.each { |group|
      group.each { |obj|
        next if obj.nil?
        obj.initialize_manashield
      }
    }
  end
  
end # DataManager

#==============================================================================
# ¡ RPG::BaseItem
#==============================================================================

class RPG::BaseItem
  
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :manashield

  #--------------------------------------------------------------------------
  # new method: initialize_manashield
  #--------------------------------------------------------------------------
  def initialize_manashield
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when REGEXP::MANASHIELD::MANASHIELD
        @manashield = [$1.to_i, [$2.to_i, 100].min]
      end
    }
  end
  
end # RPG::BaseItem

#==============================================================================
# ¡ Game_ActionResult
#==============================================================================

class Game_ActionResult
  
  #--------------------------------------------------------------------------
  # alias method: make_damage
  #--------------------------------------------------------------------------
  alias manashield_make_damage make_damage
  def make_damage(value, item)
    manashield_make_damage(value, item)
    #---
    if @battler.manashield && @battler.mp > 0
      dpm = @battler.manashield[0]
      percent = @battler.manashield[1]
      shield = (@hp_damage * percent.to_f) / 100.0
      shield = shield / dpm.to_f
      shield = [shield, @battler.mp.to_f].min
      @hp_damage -= (shield * dpm.to_f).to_i
      @mp_damage += shield.to_i
    end
  end
  
end # Game_ActionResult

#==============================================================================
# ¡ Game_Battler
#==============================================================================

class Game_Battler < Game_BattlerBase
  
  #--------------------------------------------------------------------------
  # new method: manashield
  #--------------------------------------------------------------------------
  def manashield
    mns = nil
    states.each { |state|
      next unless state.manashield
      mns = state.manashield
      break
    }
    return mns ? mns : false
  end
  
end # Game_Battler
[close]
Conteúdos novos sempre, o trem nunca para.


Zombie  Misty!

By:Zombie

Tem meu nome no tópico  :derp:

Bom manolo, é um script bem interessante, e cara realmente trazer os scripts e explicar como usa-los será bem legal, sendo que tem tanto script e tantos recursos ai fora. Bom belo trabalho e excelente iniciativa  :XD:

Raizen: Tava pensando na próxima edição traduzir o script em si e não a funcionalidade pra caso ele passe pra frente e a pessoa não tenha conhecimento do tópico, ela saiba se virar.
Conteúdos novos sempre, o trem nunca para.


Zombie  Misty!

By:Zombie