15.01.2012, 01:58
Boa Noite galera, estou editando aqui uma GM muito boa, mas estava adaptando um sistema de atendimento nela (SISTEMA DE /senha), e entao me lembrei que na minha outra GM que eu tbm estava editando eu ja havia colocado um, mas bem basico, onde nao mostrava a senha que o jogador havia pegado, e com isso as vezes vc atendia um que pegou a senha depois do outro e rola a maior confusгo. Ai eu tive a ideia de "FUNDIR" o sistema do Shadoww5 com o meu, pois nao queria usar o dele pois ODEIOOOOOO sscanf. Mas ai vem o problema, estava dando TUDOOOO certo, mas quando eu fui adaptar o comando de /irsenha eu nao consegui e como nao entendo nada de SSCANF e tambem nao consigo aprender de maneira nenhuma, vim aqui pedir a ajuda de vocкs para retirar do comando o sistema de SSCANF!
Bom, estes sao os comandos que eu adaptei e que funcionam perfeitamente:
Entretanto, este e o sistema que esta em SSCANF e nao faзo a menor ideia de como tirar ele de SSCANF:
Se alguem me ajudar eu agradeceria muito!!
Bom, estes sao os comandos que eu adaptei e que funcionam perfeitamente:
pawn Код:
if(strcmp(cmd, "/senha", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pAdmin] >= 1)
return SendClientMessage(playerid, VERMELHO, "Administradores nгo podem pegar senha.");
else if(Senha[playerid] != 0)
return SendClientMessage(playerid, VERMELHO, "Vocк jб estб na fila de atendimento.");
Senha[playerid] = Fila;
Fila++;
SendClientMessage(playerid, 0x408080AA, "[SENHA] Vocк entrou na fila de atendimento. Aguarde um Admin atender.");
SendClientMessage(playerid, 0x408080AA, "[SENHA] Caso deseje sair da fila digite /devolversenha.");
SendClientMessage(playerid, 0x408080AA, "[SENHA] E caso queira ver a fila de atendimento digite /fila!");
format(string, sizeof(string), "[SENHA] %s(%d) entrou na fila de atendimento!", sendername, playerid);
ABroadCast(0xFFFFFFAA,string,1);
}
}
if(strcmp(cmd, "/devolversenha", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(Senha[playerid] == 0)
return SendClientMessage(playerid, VERMELHO, "Vocк nгo estб na fila de atendimento.");
Senha[playerid] = 0;
SendClientMessage(playerid, LARANJA, "Vocк saiu da fila de atendimento.");
}
}
if (strcmp(cmd, "/fila", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new found, name[24];
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(Senha[i] != 0) { found++; }
if(found > 1) { break; }
}
if(!found)
return SendClientMessage(playerid, VERMELHO, "Nгo hб nenhum jogador na fila de atendimento.");
SendClientMessage(playerid, AMARELO, "======= {FFFFFF}[ Fila de Atendimento ] {F7E200}=======");
for(new s = 1; s < (Fila+1); s++)
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(!IsPlayerConnected(i)) continue;
if(Senha[i] != s) continue;
GetPlayerName(i, name, 24);
format(string, sizeof(string), " » [ID %d] %s - Senha: %d", i, name, Senha[i]);
SendClientMessage(playerid, AMARELO, string);
}
}
}
return 1;
}
pawn Код:
if (strcmp(cmd, "/irsenha", true) == 0)
{
new senha;
if (!PlayerInfo[playerid][pAdmin] >= 1)
return SendClientMessage(playerid, VERMELHO, "Vocк nгo estб autorizado a usar este comando.");
else if(sscanf(params, "d", senha))
return SendClientMessage(playerid, CINZA, "USO: /irsenha [numero da senha]");
else if(senha < 1)
return SendClientMessage(playerid, VERMELHO, "Nгo hб ninguйm no servidor com esta senha.");
new bool:found;
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(Senha[i] == senha)
{
new Float:Pos[3];
GetPlayerPos(i, Pos[0], Pos[1], Pos[2]);
SetPlayerPos(playerid, Pos[0]+1, Pos[1], Pos[2]+0.5);
SetPlayerInterior(playerid, GetPlayerInterior(i));
Senha[i] = 0;
GetPlayerName(playerid, string, 24);
format(string, sizeof(string), "O administrador %s [ID %d] veio te ajudar.", string, playerid);
SendClientMessage(i, AMARELO, string);
GetPlayerName(i, string, 24);
format(string, sizeof(string), "Vocк veio atender o jogador %s [ID %d].", string, i);
SendClientMessage(playerid, AMARELO, string);
found = true;
break;
}
}
if(!found) { SendClientMessage(playerid, VERMELHO, "Nгo hб ninguйm no servidor com esta senha."); }
return 1;
}