02.07.2011, 02:34
(
Последний раз редактировалось Dr_Pawno; 02.07.2011 в 04:12.
)
Bom, como o numero de Scripters Iniciantes estб aumentando muito, resolvi fazer este Tutorial para Ajuda-los a fazerem comandos.
Inicio
Onde Coloco os Comandos?
Resposta:
Como iniciar um Comando?
Resposta:
Vocк usa um if ( Em Portuguкs: Se ) e um strcmp.
Exemplo:
Oque й o strcmp?
O strcmp й um comparador de strings.
Exemplo:
Se o Nome do Jogador for Dr_Pawno e o dono de uma casa for Shickard e o Dr_Pawno tiver a chave da casa do shickard por bug ela checarб o nome do jogador com o nome do dono da casa para poder retirar o bug.
ExemploІ:
Como eu uso o strcmp?
Simples:
Como devo iniciar um comando?
Vocк deve iniciar um comando com um if se o jogador precisar de algum status ou profissao ou com um SendClientMessage se o comando for para mandar uma mensagem.
Exemplo:
ou
Como devo terminar um comando?
Vocк sempre deve terminar com um return true para evitar o erro: (...)
(...) que irб aparecer.
Como eu crio um comando que funcione para todos os jogadores online?
Isso jб sairб um pouco do Bбsico.
Vocк deve usar um for para criar um loop.
Como devo usar o for?
Vocк deve Criar ou ter uma variбvel jб criada e o tamanho maximo.
Se vocк nгo tiver uma variбvel jб criada vocк usa o for com um new.
O tamanho maximo vocк pode escolher quando quiser.
Exempo:
Sem Variбvel Criada:
Com Variбvel Criada:
Exemplo em um Comando:
Como eu fasso um comando que mostra o nome do jogador?
Vocк deve criar uma String com MAX_PLAYER_NAME ou com 24 celulas.
Logo apos vocк pega o nome do jogador com esta string usando o GetPlayerName.
Depois vocк formata um texto para colocar o Nome do jogador.
Exemplo:
Bom, й isso.
Espero que gostem
Se tiver algo errado me avisem para mim corrigir.
Inicio
Onde Coloco os Comandos?
Resposta:
Код:
public OnPlayerCommandText(playerid, cmdtext[])
Resposta:
Vocк usa um if ( Em Portuguкs: Se ) e um strcmp.
Exemplo:
Код:
if(strcmp("/Comando", cmdtext, true) == 0)
O strcmp й um comparador de strings.
Exemplo:
Se o Nome do Jogador for Dr_Pawno e o dono de uma casa for Shickard e o Dr_Pawno tiver a chave da casa do shickard por bug ela checarб o nome do jogador com o nome do dono da casa para poder retirar o bug.
ExemploІ:
pawn Код:
forward CheckStrings(playerid, string1[], string2[]);
public CheckStrings(playerid, string1[], string2[])
{
if(strcmp(string1, string2, true) == 0))
{
SendClientMessage(playerid, -1, "A String1 й igual a String2.");
}
else
{
SendClientMessage(playerid, -1, "A String1 Nгo й igual a String2.");
}
return 1;
}
Simples:
Код:
strcmp("Comando", Formato do Texto /* No cado do OnPlayerCommandText vocк usa cmdtext */, true, 7 /* Numero Maximo de Letras no Comando. Nгo й preciso usar. */)
Vocк deve iniciar um comando com um if se o jogador precisar de algum status ou profissao ou com um SendClientMessage se o comando for para mandar uma mensagem.
Exemplo:
pawn Код:
new pLevel[MAX_PLAYERS];
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/MeuComando", cmdtext, true) == 0)
{
if(pLevel[playerid] == 1)
{
SendClientMessage(playerid, -1, "Vocк й level 1!");
}
else
{
SendClientMessage(playerid, -1, "Vocк nгo й level 1 para usar este comando.");
}
return true;
}
return false;
}
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/MeuComando", cmdtext, true) == 0)
{
SendClientMessage(playerid, -1, "Vocк usou o comando: /MeuComando!");
return true;
}
return false;
}
Vocк sempre deve terminar com um return true para evitar o erro: (...)
Код:
SERVER: Unknown Command
Como eu crio um comando que funcione para todos os jogadores online?
Isso jб sairб um pouco do Bбsico.
Vocк deve usar um for para criar um loop.
Como devo usar o for?
Vocк deve Criar ou ter uma variбvel jб criada e o tamanho maximo.
Se vocк nгo tiver uma variбvel jб criada vocк usa o for com um new.
O tamanho maximo vocк pode escolher quando quiser.
Exempo:
Sem Variбvel Criada:
Код:
for(new Variavel = 0; Variavel < Tamanho; Variavel++)
Код:
new Variavel; for(Variavel = 0; Variavel < Tamanho; Variavel++)
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/MeuComando", cmdtext, true) == 0)
{
for(new Variavel = 0; Variavel < MAX_PLAYERS; Variavel++)
{
if(IsPlayerConnected(Variavel) && Variavel != playerid) // Checa se o jogador esta conectado e depois se a Variбvel nгo й o JogadorID para impedir o envio de 2 mensagens ao mesmo tempo.
{
SendClientMessage(Variavel, -1, "Algum jogador usou o comando /MeuComando e vocк agora й level 1!");
pLevel[Variavel] = 1;
}
}
SendClientMessage(playerid, -1, "Vocк usou o comando /MeuComando e agora todos os jogadores sгo level 1!");
return true;
}
return false;
}
Vocк deve criar uma String com MAX_PLAYER_NAME ou com 24 celulas.
Logo apos vocк pega o nome do jogador com esta string usando o GetPlayerName.
Depois vocк formata um texto para colocar o Nome do jogador.
Exemplo:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/MeuNome", cmdtext, true) == 0)
{
new MeuNome[MAX_PLAYER_NAME],
string[64];
GetPlayerName(playerid, MeuNome, sizeof(MeuNome));
format(string, sizeof(string), "Seu nome й %s. E seu id й %d.", MeuNome, playerid);
SendClientMessage(playerid, -1, string);
return true;
}
return false;
}
Espero que gostem
Se tiver algo errado me avisem para mim corrigir.