20.08.2018, 01:59
PHP код:
CMD:helloworld(playerid) //quando nгo tem parametros, usa assim
{
SendClientMessage(playerid, -1, "OIEE");
return 1;
}
CMD:setar(playerid, params[]) // quando tem parametros, usa assim
{
// comando de apenas um parametro (TEXTO):
if(isnull(params)) return SendClientMessage(playerid, -1, "Uso correto: /Setar [Cargo]");
//isnull => verifica se o params (parametros) й nulo. ou seja, se o jogador digitou nada como parametro
if(strcmp(params, "ajudante", true) == 0)
{
PlayerInfo[playerid][pAdmin] = 1;
}
else if(strcmp(params, "moderador", true) == 0)
{
PlayerInfo[playerid][pAdmin] = 2;
}
// por aн vai..
else return SendClientMessage(playerid, -1, "Cargo incorreto!");
SendClientMessage(playerid, -1, "Cargo setado com sucesso!");
return 1;
}
CMD:numero(playerid, params[])
{
//comando de apenas um parametro (NЪMERO)
if(isnull(params)) return SendClientMessage(playerid, -1, "Uso correto: /Numero [1-10]");
new n = strval(params); // converte de string para inteiro
if(n < 1 || n > 10) return SendClientMessage(playerid, -1, "De 1 a 10, parзa!"); // caso o jogador digite um nъmero menor que 1 ou maior que 10
new str[30];
format(str, sizeof(str), "Escolheu o nъmero %d", n); //formata a mensagem, obtendo o valor de n
SendClientMessage(playerid, -1, str); // exibe a mensagem
return 1;
}
/* Para mais que um parametro, й recomendado o uso do plugin/include sscanf, pois facilita muito
a versгo mais atualizada usa plugin, mas existe outra que nгo precisa ...
Em sscanf, vocк irб usar "s" para texto, "d"/"i" para inteiros, "f" para float, como jб se utiliza no "format"
O de diferente aqui vai ser o "u" para jogadores
OBS: eu ia pegar link de tуpicos de tutoriais e do download, mas tб difнcil esse fуrum hoje */
CMD:daradm(playerid, params[])
{
new jogador, nivel; // cria variбveis onde serгo armazenados o jogador e o nivel de adm
if(sscanf(params, "ud", jogador, nivel)) return SendClientMessage(playerid, -1, "Uso correto: /DarAdm [Jogador] [Nivel]"); // verifica se foram digitados os parametros exigidos
/* na linha acima vc, basicamente, divide a string "params" em 2 coisas..
u => й pra vc poder usar tanto ID quanto parte do nick / nick completo
d => usado para inteiros (neste caso, o nнvel de adm)..
repare que tem que estar na respectiva ordem..
se o comando fosse /daradm [nivel] [jogador]
seria: if(sscanf(params, "du", nivel, jogador)) ... */
PlayerInfo[jogador][pAdmin] = nivel; // atribui ao jogador escolhido o nнvel escolhido de admin
return 1;
}
CMD:kick(playerid, params[])
{
new jogador, motivo[30]; // cria variбveis onde serгo armazenados o jogador e o motivo do kick
if(sscanf(params, "us[30]", jogador, motivo)) return SendClientMessage(playerid, -1, "Uso correto: /Kick [Jogador] [Motivo]"); // verifica se foram digitados os parametros exigidos
/* aqui o "params" tbm й dividido em 2 coisas..
u => jб vimos acima
s => usado para textos
quando se usa "s", ou seja, string, no sscanf2, vc deve sempre colocar o "tamanho" em seguida
*/
new str[90];
format(str, sizeof(str), "%s foi kickado por %s. Motivo: %s", PlayerName(jogador), PlayerName(playerid), motivo); // formata a mensagem com o nome do jogador, do adm e o motivo do kick
SendClientMessageToAll(-1, str); // envia a mensagem para todos
Kick(jogador); // kicka o jogador escolhido
return 1;
}
/*
e por aн vai.... se vc quisesse um comando com mais parametros, й sу adicionar a variбvel e o seu especificador (s, d, u, i, f, etc)
exemplo: /banir [jogador] [dias] [motivo]
temos 3 parвmetros
1 u
1 inteiro (d, i)
1 string (s)
vamos criar a variбvel de cada parametro:
new jogador, dias, motivo[30];
if(sscanf(params, "uds[30]", jogador, dias, motivo)) return SendClientMessage...
*/
PlayerName(playerid)
{
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
return nome;
}