10.01.2013, 15:13
Jб tem muitos tutoriais de zcmd, mas й sempre bem vindo outro, atй porque muitos membros tem perguiзa de usar search, mas vou fazer uma observaзгo.
Em vez de #pragma unused params basta fazer
Outra coisa
lembre-se sempre de definir o tamanho mбximo de caracteres, ou seja.
Assim o sscanf irб funcionar corretamente.
Deu para ver que vocк usou 2 strings, eu no inicio do sa-mp tinha uma confusгo porque pensava que cada string ficava com os dados ocupados lб para sempre entгo fazia o que vocк fez.
Em vez disso faзa
Assim vocк nгo irб usar variaveis desnecessбrias obviamente.
Mais uma coisa
Covem vocк juntar outra verificaзгo, ou seja, verificar se o jogador estб conectado.
Bem, por agora й sу isto.
Todos nуs cometemos erros, esses erros nгo sгo erros de sintaxe em si, sгo outro tipos de erros que nem sempre vemos mas que tambйm contam muito, espero que isto o ajude
Fora isso bom tutorial
pawn Код:
CMD:meucomando(playerid, params[])
{
#pragma unused params // <- Й utilizado em comandos que nгo vгo usar os parametros
return 1;
}
pawn Код:
CMD:meucomando(playerid)
{
return 1;
}
pawn Код:
CMD:pm(playerid, params[])
{
new playerdestino, playerNome[MAX_PLAYER_NAME], pdestinoNome[MAX_PLAYER_NAME], mensagem[128], string[128], stringsender[128];
if(sscanf(params, "ds", playerdestino, mensagem)) return SendClientMessage(playerid, -1, "Use /pm [ID] [mensagem].");
if(playerdestino == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "ID invбlida ou inexistente.");
if(!strlen(mensagem)) return SendClientMessage(playerid, -1, "Digite uma mensagem.");
GetPlayerName(playerid, playerNome, MAX_PLAYER_NAME);
GetPlayerName(playerdestino, pdestinoNome, MAX_PLAYER_NAME);
format(string, sizeof(string), "* PM de %s (%d): %s", playerNome, playerid, mensagem);
format(stringsender, sizeof(stringsender), "* PM para %s(%d): %s", pdestinoNome, playerdestino, mensagem);
SendClientMessage(playerdestino, 0xFFFF80AA, string);
SendClientMessage(playerid, 0x6F6F00AA, stringsender);
return 1;
}
pawn Код:
if(sscanf(params, "ds", playerdestino, mensagem)) return SendClientMessage(playerid, -1, "Use /pm [ID] [mensagem].");
pawn Код:
if(sscanf(params, "ds[128]", playerdestino, mensagem))
Deu para ver que vocк usou 2 strings, eu no inicio do sa-mp tinha uma confusгo porque pensava que cada string ficava com os dados ocupados lб para sempre entгo fazia o que vocк fez.
pawn Код:
format(string, sizeof(string), "* PM de %s (%d): %s", playerNome, playerid, mensagem);
format(stringsender, sizeof(stringsender), "* PM para %s(%d): %s", pdestinoNome, playerdestino, mensagem);
SendClientMessage(playerdestino, 0xFFFF80AA, string);
SendClientMessage(playerid, 0x6F6F00AA, stringsender);
pawn Код:
format(string, sizeof(string), "* PM de %s (%d): %s", playerNome, playerid, mensagem);
SendClientMessage(playerdestino, 0xFFFF80AA, string);
format(stringsender, sizeof(string), "* PM para %s(%d): %s", pdestinoNome, playerdestino, mensagem);
SendClientMessage(playerid, 0x6F6F00AA, string);
Mais uma coisa
pawn Код:
if(playerdestino == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "ID invбlida ou inexistente.");
pawn Код:
if(playerdestino == INVALID_PLAYER_ID && !IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "ID invбlida ou inexistente.");
Todos nуs cometemos erros, esses erros nгo sгo erros de sintaxe em si, sгo outro tipos de erros que nem sempre vemos mas que tambйm contam muito, espero que isto o ajude
Fora isso bom tutorial