LM² - No PvP Zone/Region (2.1.4) 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.

LM² - No PvP Zone/Region (2.1.4)

Ir para baixo

Funcionou em seu servidor?

LM² - No PvP Zone/Region (2.1.4) I_vote_lcap50%LM² - No PvP Zone/Region (2.1.4) I_vote_rcap 50% 
[ 1 ]
LM² - No PvP Zone/Region (2.1.4) I_vote_lcap50%LM² - No PvP Zone/Region (2.1.4) I_vote_rcap 50% 
[ 1 ]
 
Total de votos : 2
 
 

LM² - No PvP Zone/Region (2.1.4) Empty LM² - No PvP Zone/Region (2.1.4)

Mensagem por FraN Sex Abr 09, 2021 7:25 pm



LM² - No PvP Zone/Region




Alteração simples para criar uma zona não pvp dentro de um mapa pvp.

Impede que jogadores ataquem ou sejam atacados dentro das zonas.


Como meu pc está com problemas não tenho como gifar ou gravar um vídeo.






Como instalar:


Para instalar é bem simples, insira no módulo [VS] Configs no cliente e no configs.ini do servidor(esse passo é opcional segundo Val, porém melhor garantir) o seguinte código.





Código:


# No PvP Zone (53 = ID da zona, marque o mapa com este ID de zona)
  NO_PVP_ZONE = 53


Sendo 53 a region/região no mapa. Recomendo não alterar a menos que saiba o que esta fazendo.



No cliente, vá no [VS] Game_Player e procure por: def can_attack_normal? abaixo do trecho: return false




    elsif !$game_map.pvp
      $error_msg = Vocab::NonPvP
      return false

Adicione esse código:



Código:


  # NO PvP Zone
    elsif $game_map.pvp && $game_map.region_id(@x, @y) == Configs::NO_PVP_ZONE
      $error_msg = Vocab::NonPvP
      return false
    elsif $game_map.pvp && $game_map.region_id(x, y) == Configs::NO_PVP_ZONE
      $error_msg = Vocab::NonPvP
      return false



No mesmo procure por: def valid_target?(range, aoe = 0) e add o código abaixo do trecho: return false

:

        elsif @target.admin?

            $error_msg = Vocab::AttackAdmin

      return false

Adicione esse código:


Código:


   # NO PvP Zone
    elsif @target.is_a?(Game_NetPlayer) && $game_map.pvp && $game_map.region_id(@x, @y) == Configs::NO_PVP_ZONE
      $error_msg = Vocab::NonPvP
      return false   
    elsif @target.is_a?(Game_NetPlayer) && $game_map.pvp && $game_map.region_id(@target.x, @target.y) == Configs::NO_PVP_ZONE
      $error_msg = Vocab::NonPvP
      return false


No cliente é apenas isso.

Agora no servidor abra o game_client.rb dentro da subpasta Combat, que fica dentro da pasta Scripts

Procure por def attack_normal, abaixo do trecho:


  next if !client&.in_game? || client.map_id != @map_id || !in_front?(client) || client.admin?

Adicione esse código:
        

Código:


      #No PvP Zone
      return if $network.maps[@map_id].region_id(client.x, client.y) == NO_PVP_ZONE
      return if $network.maps[@map_id].region_id(@x, @y) == NO_PVP_ZONE


No mesmo(após a alteração acima), abaixo do trecho:

        
            
return unless target && in_range?(target, Configs::RANGE_WEAPONS[weapon_id][:range])
        
Adicione esse código:
        
Código:

    #No PvP Zone
    return if @target.type == Constants::TARGET_PLAYER && $network.maps[@map_id].region_id(target.x, target.y) == NO_PVP_ZONE
    return if @target.type == Constants::TARGET_PLAYER && $network.maps[@map_id].region_id(@x, @y) == NO_PVP_ZONE


Isso é tudo.


Agradecimentos:

Valentine pelo VXA-OS.
FraN

LeonM² por fazer essa modificação.

Quem sugeriu esse sistema no server do discord do VXA-OS que eu não lembro.


Qualquer erro ou duvida, comentar no tópico ou deixar no server do VXA-OS.



Editado:
Atualizado para a versão 2.1.4.

FraN
FraN
Novato
Novato

Mensagens : 1
Créditos : 0

Valentine e FraN gostam desta mensagem

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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