CMD:pm(playerid, params[])
{
new nome[MAX_PLAYER_NAME];
new nome2[MAX_PLAYER_NAME];
new texto[128];
new id;
new str[128];
if(sscanf(params, "us[128]", id, texto)) return SendClientMessage(playerid, -1, "[ERRO] Use: /pm [id] [texto]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Este jogador nao esta conectado");
if(playerid == id) return SendClientMessage(playerid, -1, "[ERRO] Voce nao pode usar este comando com si mesmo");
GetPlayerName(playerid, nome, 16);
GetPlayerName(id, nome2, 16);
format(str, sizeof(str), "Mensagem Privada de %s(%d): %s", nome, playerid, texto);
SendClientMessage(id, -1, str);
format(str, sizeof(str), "Mensagem Enviada para %s(%d): %s", nome2, id, texto);
SendClientMessage(playerid, -1, str);
return 1;
}
CMD:pm(playerid, params[])
{
new nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME], texto[128], id, str[128];
if(sscanf(params, "us[128]", id, texto)) return SendClientMessage(playerid, -1, "[ERRO] Use: /pm [id] [texto]");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "Este jogador nao esta conectado");
if(playerid == id) return SendClientMessage(playerid, -1, "[ERRO] Voce nao pode usar este comando com si mesmo");
GetPlayerName(playerid, nome, 16);
GetPlayerName(id, nome2, 16);
format(str, sizeof(str), "Mensagem Privada de %s(%d): %s", nome, playerid, texto);
SendClientMessage(id, -1, str);
format(str, sizeof(str), "Mensagem Enviada para %s(%d): %s", nome2, id, texto);
SendClientMessage(playerid, -1, str);
return 1;
}
|
A funзгo IsPlayerConnected nгo funciona corretamente quando usando o especificador "u" no sscanf, portanto vocк deve fazer um teste lуgico comparando a variбvel responsбvel pelo id do jogador com a macro INVALID_PLAYER_ID.
Код:
CMD:pm(playerid, params[])
{
new nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME], texto[128], id, str[128];
if(sscanf(params, "us[128]", id, texto)) return SendClientMessage(playerid, -1, "[ERRO] Use: /pm [id] [texto]");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "Este jogador nao esta conectado");
if(playerid == id) return SendClientMessage(playerid, -1, "[ERRO] Voce nao pode usar este comando com si mesmo");
GetPlayerName(playerid, nome, 16);
GetPlayerName(id, nome2, 16);
format(str, sizeof(str), "Mensagem Privada de %s(%d): %s", nome, playerid, texto);
SendClientMessage(id, -1, str);
format(str, sizeof(str), "Mensagem Enviada para %s(%d): %s", nome2, id, texto);
SendClientMessage(playerid, -1, str);
return 1;
}
|
CMD:test(playerid, params[])
{
new id = -1, texto[128];
sscanf(params, "us[128]", id, texto);
if(id != -1)
{
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Este jogador nao esta conectado");
if(playerid == id) return SendClientMessage(playerid, -1, "[ERRO] Voce nao pode usar este comando com si mesmo");
if(isnull(texto)) return SendClientMessage(playerid, -1, "[ERRO] Digite a mensagem");
new nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME], str[128];
GetPlayerName(playerid, nome, 16);
GetPlayerName(id, nome2, 16);
format(str, sizeof(str), "Mensagem Privada de %s(%d): %s", nome, playerid, texto);
SendClientMessage(id, -1, str);
format(str, sizeof(str), "Mensagem Enviada para %s(%d): %s", nome2, id, texto);
SendClientMessage(playerid, -1, str);
}
else SendClientMessage(playerid, -1, "[ERRO] Use: /pm [id] [texto]");
return 1;
}
|
Pela visualizaзгo de parвmetros do sscanf, acredito que seja a primeira.
|
|
Amigo, eu acho que nгo seria a primeira. Pois ele criou variбvel para armazenar o id, e nгo uma string; ele utilizou a string para o segundo parвmetro.
|
|
PHP код:
|