[Ajuda] Strcmp - Versão de Impressão +- Portal SAMP (https://portalsamp.com) +-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5) +--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6) +--- Tópico: [Ajuda] Strcmp (/showthread.php?tid=1199) |
Strcmp - virtuS_ - 18/05/2021 Alguém sabe por quê não funciona? Código: public OnPlayerCommandReceived(playerid, cmd[], params[], flags) RE: Strcmp - xbruno1000x - 18/05/2021 Primeiramente, pare de usar strcmp. O uso de qualquer outro processador de comandos é muito mais otimizado! Segundo: Você não pode utilizar uma IF dessa forma fora do comando, não faz sentido. Código: if(strcmp(cmd, "/sairafk")) // Caso o player digite o comando sairafk irá ler o código abaixo. Você também pode usar um return para impedir o jogador em AFK de usar comandos. Código: if(APlayerData[playerid][PlayerAfk] == true) return SendClientMessage(playerid, -1, "ERRO: você não pode utilizar um comando de AFK."); Mas da forma como você fez não faz sentido, pois em nenhum momento você coloca a bool: PlayerAfk em negativo novamente. RE: Strcmp - virtuS_ - 18/05/2021 Utilizo o Pawn.CMD mesmo, coloquei como condição o "strcmp" no "OnPlayerCommandReceived" para verificar se o jogador usou qualquer outro comando que não seja o /sairafk, enviando aquela mensagem de saída. Mas não funciona. O comando no Pawn.CMD já está feito corretamente, só me resta aquilo. Código: CMD:sairafk(playerid, params[]) Ou seja, apenas o '/sairafk' poderia ser utilizado por um jogador ausente. Código: public OnPlayerCommandReceived(playerid, cmd[], params[], flags) RE: Strcmp - xbruno1000x - 18/05/2021 Estava ocupado e acabei postando a última mensagem na pressa e fui editando. Vou ser mais sucinto nessa mensagem. Por que não funciona? Acredito que a variavel APlayerData[playerid][PlayerAfk] = true; signifique que o jogador está de AFK. Se o jogador estiver de afk e digitar o comando /sairafk, irá retornar que ele não pode usar comando, e ele nunca sairá do AFK. Por isso eu disse que dessa forma não funcionaria. Você até pode fazer dessa forma, mas terá que alterar o código. Código: public OnPlayerCommandReceived(playerid, cmd[], params[], flags) Para impedir o jogador de digitar um comando diferente de /sairafk e permitir que ele saia do afk quando for uma situação oposta, pode tentar substituir pela if abaixo Código: if(APlayerData[playerid][PlayerAfk] == true && !strcmp(cmd, "/sairafk")) return 0; //Dessa forma, quando o player estiver afk e digitar um comando diferente de /sairafk, não ocorrerá nada. |