Game_Battler (3) Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Game_Battler (3)

2 participantes

Ir para baixo

Game_Battler (3) Empty Game_Battler (3)

Mensagem por Jonny Ter Dez 21, 2010 12:41 pm

Bueno este scritp Aplicar el efecto de un ataque... funciona con el NP ^^)

Tradução e interpretação da administração da Aldeiarpg:
Esse script aplica um efeito de ataque

Código:
#==============================================================================
# Game_Battler (3)
#------------------------------------------------------------------------------
# Esta classe considera os jogadores da batalha.
# Esta classe identifica os Aliados ou Heróis como (Game_Actor) e
# os Inimigos como (Game_Enemy).
#==============================================================================

class Game_Battler

 
  #--------------------------------------------------------------------------
  # - Aplicar o Efeito de um Ataque
  #
  #    attacker : Atacante
  #--------------------------------------------------------------------------
 
  def attack_effect(attacker)
    # Esvaziar a flag de ataque crítico
    self.critical = false
    # Verificação do primeiro ataque
    hit_result = (rand(100) < attacker.hit)
    # Em caso de ataque á distância
    if hit_result == true
    # Cálculo ddos danos básicos
#    n = $APS.random(attacker.min_strike,attacker.max_strike)
#    atk = [n-(self.pdef/2),0].max
    self.damage = atk
      # Calcular atributo
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      # Se o dano for positivo
      if self.damage > 0
        # Calcular dano crítico
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
        end
        # calcular defesa
        if self.guarding?
          self.damage /= 2
        end
      end
      # Aplicar dano
      if self.damage.abs > 0
        amp = [self.damage.abs * 10 / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      # Se for dano duplicado
      eva = 8 * self.agi / attacker.dex + self.eva
      hit = self.damage < 0 ? 100 : 100 - eva
      hit = self.cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)
    end
    # Caso de ataque á distância
    if hit_result == true
      # Aplicar dano se for choque
      remove_states_shock
      # Subtrair dano do HP
      self.hp -= self.damage
      # Trocar status
      @state_changed = false
      states_plus(attacker.plus_state_set)
      states_minus(attacker.minus_state_set)
    # Se houver falha
    else
      # Ao tentar o ataque, exibir a palavra...
      self.damage = "Miss!"
      # Esvaziar a Flag de ataque crítico
      self.critical = false
    end
    # Fim
    return true
  end
 
  #--------------------------------------------------------------------------
  # - Aplicar o Efeito da Habilidade
  #
  #    user  : Jogador que utiliza a Habilidade
  #    skill : Habilidade
  #--------------------------------------------------------------------------
 
  def skill_effect(user, skill)
    # Esvaziar a Flag de ataque crítico
    self.critical = false
    # O alcance da Habilidade é um aliado com 1 de HP
    # Ou efeito da Habilidade em um aliado de HP 0.
    if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
      ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
      # Fim
      return false
    end
    # Esvaziar Flag de efeito
    effective = false
    # Flag de efeito quanto houver um evento comum
    effective |= skill.common_event_id > 0
    # Verificar o primeiro ataque
    hit = skill.hit
    if skill.atk_f > 0
      hit *= user.hit / 100
    end
    hit_result = (rand(100) < hit)
    # Se a Habilidade não for efetiva
    effective |= hit < 100
    # Se acertar
    if hit_result == true
      # Cálculo do Dano
      power = skill.power + user.atk * skill.atk_f / 100
      if power > 0
        power -= self.pdef * skill.pdef_f / 200
        power -= self.mdef * skill.mdef_f / 200
        power = [power, 0].max
      end
      # Calcular amplificação
      rate = 20
      rate += (user.str * skill.str_f / 100)
      rate += (user.dex * skill.dex_f / 100)
      rate += (user.agi * skill.agi_f / 100)
      rate += (user.int * skill.int_f / 100)
      # Cálculo do dano básico
      self.damage = power * rate / 20
      # Correccion de Atributo
      self.damage *= elements_correct(skill.element_set)
      self.damage /= 100
      # Quando o dano for positivo
      if self.damage > 0
        # Calcular defesa
        if self.guarding?
          self.damage /= 2
        end
      end
      # Aplicação do dano
      if skill.variance > 0 and self.damage.abs > 0
        amp = [self.damage.abs * skill.variance / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      # Verificar segundo ataque
      eva = 8 * self.agi / user.dex + self.eva
      hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
      hit = self.cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)
      # Se a Habilidade não for efetiva
      effective |= hit < 100
    end
    # Se acertar
    if hit_result == true
      # Força
      if skill.power != 0 and skill.atk_f > 0
        # Aplicação do status de choque
        remove_states_shock
        # Aplicar Flag de efeito
        effective = true
      end
      # Subtrair dano do HP
      last_hp = self.hp
      self.hp -= self.damage
      if user == $game_actor
        self.sta -= skill.sp_cost
      end
     
      effective |= self.hp != last_hp
      # Troca de status
      @state_changed = false
      effective |= states_plus(skill.plus_state_set)
      effective |= states_minus(skill.minus_state_set)
      # Se a Força for 0
      if skill.power == 0
        # Uma sequencia de caracteres vazios é exibida como dano
        self.damage = ""
        # Quando o status não é alterado
        unless @state_changed
          # Ao errar exibir...
          self.damage = "Miss!"
        end
      end
    # Em caso de Erro
    else
      # Ao errar exibir...
      self.damage = "Miss!"
    end
    # Quando não se está em batalha
    unless $game_temp.in_battle
      # Ao errar não colocar nada
      self.damage = nil
    end
    # Fim
    return effective
  end
end

Créditos:
??

_________________
Spoiler:


Game_Battler (3) KVIdx
Jonny
Jonny
Aldeia Friend
Aldeia Friend

Medalhas : Game_Battler (3) Trophy11Game_Battler (3) 9P5Gx
Mensagens : 1936
Créditos : 327

http://fanmakers.ultimaterpg.net/

Ir para o topo Ir para baixo

Game_Battler (3) Empty Re: Game_Battler (3)

Mensagem por Felix Blayder Ter Dez 21, 2010 1:10 pm

cara.... o topico ta orrivel.... arruma ele.... ñ tem o nome do autor nem nada...... arruma ele ae... poe alguma screen c for preciso é claro, da uma melhorada nele...

_________________

Se inscreva em meu Canal no YouTube:
https://www.youtube.com/localnerd

Faça uma doação para ajudar nos custos:

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3N8T2RJ977RCQ

Felix Blayder
Felix Blayder
Membro de Honra
Membro de Honra

Mensagens : 1406
Créditos : 220

Ficha do personagem
Nível: 1
Experiência:
Game_Battler (3) Left_bar_bleue0/0Game_Battler (3) Empty_bar_bleue  (0/0)
Vida:
Game_Battler (3) Left_bar_bleue30/30Game_Battler (3) Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos