antiblock
diamwall
  • Chatbox

    You don't have permission to chat.
    Load More
  • 0
Sign in to follow this  
Mago_pt

Definir Mapas Gm Na Source

Question

Boas pessoal eu tentei definir os mapas sendo mapas gm ou seja apenas os Gms poderiam Entrar nos Mapas

 

Mas gostaria de saber se fiz bem ou não

 

char.cpp

 

coloquei

 

bool GM_ZONE(const LPCHARACTER& ch, int map_index);

bool GM_ZONE(const LPCHARACTER& ch, int map_index);
{
    
     switch (map_index)
     {
     case 45:
     case 75:
     case 150:
         if (ch->GetGMLevel() > GM_PLAYER)    
             return true;
     }
     return false;
}
 

 

Share this post


Link to post
Share on other sites

8 answers to this question

  • 0

Apenas tinhas de tirar a ; no segundo bool (2ª linha do teu código) e funcionará, ou seja:

bool GM_ZONE(const LPCHARACTER& ch, int map_index);

bool GM_ZONE(const LPCHARACTER& ch, int map_index)  //tinhas aqui ; a mais
{
resto teu codigo
}

No entanto, existiria um "bug", WarpToPID funcionaria na mesma, por exemplo anéis de casal.

 

 

Para tal, ou utilizas o CAN_ENTER_ZONE para colocares os teus cases, ou no mesmo ficheiro em bool CHARACTER::WarpToPID(DWORD dwPID), procuras pelo primeiro CAN_ENTER_ZONE e é só adicionares novo check para tambem incluir o novo bool que criaste.

 

Concordo com o OP, é muito melhor pela source pois assim não existirá maneira de bugar a quest, além de que adquiri mais conhecimento acerca da mesma.

Share this post


Link to post
Share on other sites
antiblock
diamwall
  • 0

Acho que não precisas de definir o index obrigatoriamente na source....

Se puseres uma quest tipo if pc.Gm n sei das quantas e depois usares os indexs dos mapas que queres bloquear e mais facil

 

Encontra ai uma quest que bloqueia os mapas tipo lvl 30 e é so modificares

Share this post


Link to post
Share on other sites
  • 0

Acho que não precisas de definir o index obrigatoriamente na source....

Se puseres uma quest tipo if pc.Gm n sei das quantas e depois usares os indexs dos mapas que queres bloquear e mais facil

 

Encontra ai uma quest que bloqueia os mapas tipo lvl 30 e é so modificares

quest não há problema

 

Pois mesmo eu faço a Quest

 

queria era mesmo fazer na source

Share this post


Link to post
Share on other sites
  • 0

Apenas tinhas de tirar a ; no segundo bool (2ª linha do teu código) e funcionará, ou seja:

bool GM_ZONE(const LPCHARACTER& ch, int map_index);bool GM_ZONE(const LPCHARACTER& ch, int map_index)  //tinhas aqui ; a mais{resto teu codigo}
No entanto, existiria um "bug", WarpToPID funcionaria na mesma, por exemplo anéis de casal.

Para tal, ou utilizas o CAN_ENTER_ZONE para colocares os teus cases, ou no mesmo ficheiro em bool CHARACTER::WarpToPID(DWORD dwPID), procuras pelo primeiro CAN_ENTER_ZONE e é só adicionares novo check para tambem incluir o novo bool que criaste.

Concordo com o OP, é muito melhor pela source pois assim não existirá maneira de bugar a quest, além de que adquiri mais conhecimento acerca da mesma.

 

Boas Mano só não entendi a Parte do bool CHARACTER::WarpToPID(DWORD dwPID

ca tenho assim if (CAN_ENTER_ZONE(this, mapIdx))

{

WarpSet(victim->GetX(), victim->GetY());

}

else

{

ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»ó´ë¹æÀÌ ÀÖ´Â °÷À¸·Î ¿öÇÁÇÒ ¼ö ¾ø½À´Ï´Ù."));

return false;

}

mas como add outro check?

 

mas eu tmb teria que criar outro

CAN_ENTER_ZONE

 

com o nome de GM_ZONE

 

 

Share this post


Link to post
Share on other sites
  • 0

Afinal esquece o que disse, não reparei que está a dar return false por default, nesse caso não tens de fazer nada

Share this post


Link to post
Share on other sites
  • 0

Afinal esquece o que disse, não reparei que está a dar return false por default, nesse caso não tens de fazer nada

ent é so

 

colocar

 

bool GM_ZONE(const LPCHARACTER& ch, int map_index);

bool GM_ZONE(const LPCHARACTER& ch, int map_index);

{

    

     switch (map_index)

     {

     case 45:

     case 75:

     case 150:

         if (ch->GetGMLevel() > GM_PLAYER)    

             return true;

     }

     return false;

}

Share this post


Link to post
Share on other sites
  • 0

ent é so

 

colocar

 

bool GM_ZONE(const LPCHARACTER& ch, int map_index);

bool GM_ZONE(const LPCHARACTER& ch, int map_index);

{

    

     switch (map_index)

     {

     case 45:

     case 75:

     case 150:

         if (ch->GetGMLevel() > GM_PLAYER)    

             return true;

     }

     return false;

}

Acho que sim porque tipo to fizeste o switch para cada caso do mapa que quiseste     if (ch->GetGMLevel() > GM_PLAYER)      for verdadeiro então vai dar return true se for falso da return false...

 

So uma cena nao deveria ser assim

{

    

     switch (map_index)

     {

     case 45:

     case 75:

     case 150:

         if (ch->GetGMLevel() > GM_PLAYER)    

             return true;

             else

             return false;

     }

}

Share this post


Link to post
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
Sign in to follow this