Aldeia RPG

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

Suporte ao desenvolvimento de jogos


2 participantes

    Game_Battler (3)

    Jonny
    Jonny
    Aldeia Friend
    Aldeia Friend


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

    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
    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)

    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


      Data/hora atual: Sáb Nov 23, 2024 10:01 am