Mago_pt 27 Posted June 12, 2016 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
0 MiguelSousa 55 Posted June 12, 2016 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. 1 Mago_pt reacted to this Share this post Link to post Share on other sites
0 Wolvarinhas 107 Posted June 12, 2016 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 1 Mago_pt reacted to this Share this post Link to post Share on other sites
0 Mago_pt 27 Posted June 12, 2016 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 Mago_pt 27 Posted June 12, 2016 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 MiguelSousa 55 Posted June 12, 2016 Afinal esquece o que disse, não reparei que está a dar return false por default, nesse caso não tens de fazer nada 1 Mago_pt reacted to this Share this post Link to post Share on other sites
0 Mago_pt 27 Posted June 12, 2016 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 Wolvarinhas 107 Posted June 12, 2016 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; } } 1 Mago_pt reacted to this Share this post Link to post Share on other sites
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