O que e o switch?Switch e um comparador de resultados semelhante as estruturas if e else if porem, ele trabalha com uma mecanica um pouco diferente dessas citadas; funciona como um loop que verifica todos os possiveis resultados do primeiro ao ultimo case ou default.Qual a diferenca entre o else if e o switch?Switch alem de mais organizado e mais pratico economizando e muito o uso de operadores relacionais alem de ser de facil compreensao, porem, em alguns codigos e mais aconselhavel o uso do if para empregar estruturas nao indicadas no switch.Este e um exemplo de uma das formas de se fazer um /admins em if, elseif e em switch.if (strcmp(cmdtext, "/admins", true) == 0){for(new i = 0; i <= MAX_PLAYERS; i++){ if(IsPlayerConnected(i) == 1 && PlayerInfo[i][pAdmin] > 0) { if(PlayerInfo[i][pTrampo] == 1) { GetPlayerName(i, sendername, sizeof(sendername)); if(PlayerInfo[i][pAdmin] == 1) { format(string, sizeof(string), "Nome: %s [Moderador] (Trabalhando)", sendername); SendClientMessage(playerid, COR_ADMINS, string); } if(PlayerInfo[i][pAdmin] == 2) { format(string, sizeof(string), "Nome: %s [Administracao Nivel 2] (Trabalhando)", sendername); SendClientMessage(playerid, COR_ADMINS, string); } if(PlayerInfo[i][pAdmin] == 3) { format(string, sizeof(string), "Nome: %s [ Administracao Nivel 3] (Trabalhando)", sendername); SendClientMessage(playerid, COR_ADMINS, string); } } }}return 1;}O exemplo acima mostra como seria um /admins usando else if, veja como ficaria este comando usando switch abaixoif(strcmp(cmdtext, "/admins", true) == 0){ for(new i, PP = GetMaxPlayers(); i < PP; i++) { switch(PlayerInfo[i][pAdmin])//Funcao a ser verificada { case 1: format(string, 256, "Nome: %s [Moderador] (Trabalhando)", sendername), SendClientMessage(playerid, COR_ADMINS, string); //Se a funcao verificada for igual a 1 case 2: format(string, 256, "Nome: %s [Administrador nivel 2] (Trabalhando)", sendername), SendClientMessage(playerid, COR_ADMINS, string); //Se a funcao verificada for igual a 2 case 3: format(string, 256, "Nome: %s [Administrador nivel 3] (Trabalhando)", sendername), SendClientMessage(playerid, COR_ADMINS, string); //Se a funcao verificada for igual a 3 default: /*Aqui a funcao a ser execultada caso nada se iguale aos resultados acima.*/ } } return 1;}Criando o seu switch:Crie seu switch com a funcao a ser verificada que quiser, mas siga este formato abaixo:switch (Funcao) //Coloque por exemplo um PlayerInfo[player][info] ou qualquer outra coisa{ case 1: O que deve ser executado caso seja igual a 1 case 2: O que deve ser executado caso seja igual a 2 case 3: O que deve ser executado caso seja igual a 3 default: O que deve ser executado caso nao seja igual aos exemplos acima //Nao obrigatorio}Voce pode tambem modificar a sequencia de case's para que ele possa procurar resultados diferentes pra executar a mesma acao.case 1, 2, 3: //O que deve ser executado caso seja igual a 1, 2 ou 3Veja um exemplo do mesmo codigo abaixo usado com ifif(Funcao == 1 || Funcao == 2 || Funcao == 3){ //O que deve ser executado caso a funcao seja igual a 1, 2 ou 3 return 1;}Voce pode tambem verificar resultados de um numero a outro, como no exemplo abaixo.case 1 .. 10: //O que deve ser executado caso o resultado se enquadre entre 1 e 10Em if ficaria assimif(Funcao >= 1 && Funcao <= 3){ //O que deve ser executado caso a Funcao se enquadre entre ou igual