Jump to content

Bloquear PVP em mapa


kaiquegames069
 Share

Recommended Posts

Eu fiz assim e me da erros.

 

bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim)
{
    // Bloqueio de PvP em Mapa
    switch(ch->GetMapIndex()){
        case ID: 64
            { if (victim->IsPC() && ch->IsPC())
                    return false;
            }
    }
    // Bloqueio de PvP em Mapa

    // »ó´ë¹æÀÌ Á×¾úÀ¸¸é Áß´ÜÇÑ´Ù.
    if (victim->IsDead())
        return false;

Link to comment
Share on other sites

  • 1 month later...
1 hora atrás, kaiquegames069 disse:

Tem alguma forma dessa função só funcionar quando eu ativar o evento pvm?

No caso:

game.set_event_flag("evento_pvm", 1)  - Os players não conseguem atacar outros players.

game.set_event_flag("evento_pvm", 0) - Os players já podem atacar normalmente.

Hidden Content

    Give reaction to this post to see the hidden content.

Isso deve funcionar.

Edited by Sinval
Link to comment
Share on other sites

55 minutos atrás, kaiquegames069 disse:

Tem alguma forma dessa função só funcionar quando eu ativar o evento pvm?

No caso:

game.set_event_flag("evento_pvm", 1)  - Os players não conseguem atacar outros players.

game.set_event_flag("evento_pvm", 0) - Os players já podem atacar normalmente.

 

Hidden Content

    Give reaction to this post to see the hidden content.

Link to comment
Share on other sites

ch->GetMapIndex() é a função que diz em que mapa o jogador está

O que o switch faz é avaliar o valor dessa mesma função

Hidden Content

    Give reaction to this post to see the hidden content.

 

case X:   Permite realizar uma ação quando o valor da função for X

 

Também poderia ser feito com if, mas com case fica mais rápido adicionar novos valores, pois podes ter vários case a realizar a mesma função. Em termos de escrita fica mais curto do que if e visualmente mais apelativo no tema do tópico

Hidden Content

    Give reaction to this post to see the hidden content.

 

Também podes realizar uma ação caso o valor da função seja diferente dos colocados nos case. Isto será realizado caso a função não seja nenhum dos valores anteriores.

default equivale ao else do if

Através do seguinte:

Hidden Content

    Give reaction to this post to see the hidden content.

____________

Exemplo do uso de if e for (função do Vegas):

Hidden Content

    Give reaction to this post to see the hidden content.

Exemplo de como neste caso, um switch seria bem mais simples e rápido, sendo por isso mais eficiente no tempo gasto a codificar:

Hidden Content

    Give reaction to this post to see the hidden content.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...