Participe da nossa comunidade do orkut do blog:
http://www.orkut.com.br/Main#Community.aspx?cmm=50008538
Obrigado.
Anteriormente eu fiz um tutorial de doenças e agora vou criar um tutorial de farmacia.
Para poder acompanhar esse tutorial direitinho leia o de criação de doenças antes. Clique aqui para ve-lo.
Primeiro você precisa do include para criar Checkpoints muito mais facilmente.*Tio Cr0Nos porque vamos usar um Cheackpoint?
Resposta: Para ficar mais real, vamos fazer um local onde você possa executar o comando de comprar o remédio. Na vida real não é só você imaginar o remédio em qualquer lugar e ele vai aparecer, não é mesmo?
Vamos criar uma array no topo do gamemode para representar o Checkpoint:
new CP_FARMACIA;
Agora no OnGameModeInit vamos fazer com que a variavel represente o Checkpoint:
CP_FARMACIA = CPS_AddCheckpoint(X,Y,Z,TAMANHO,DISTANCIA);
X: Coordenada X
Y: Coordenada Y
Z: Coordenada Z
TAMANHO: Tamanho do Checkpoint (Aconselhavel 2.0)
DISTANCIA Distancia para o Checkpoint aparecer
Agora vamos fazer com que quando alguem entre no Checkpoint apareça uma mensagem na tela. No OnPlayerEnterCheckpoint use o comparador If para ver se o player está no checkpoint da farmacia para aparecer a mensagem:
if(CPS_IsPlayerInCheckpoint(playerid,CP_FARMACIA))
{
GameTextForPlayer(playerid,"~n~~n~~r~FARMACIA~n~~w~/comprarremedio",TEMPO,ESTILO);
}
TEMPO: Tempo que a mensagem vai ficar na tela(Aconselhavel 10000 milesimos de segundos(10 segundos)).
ESTILO: Estilo do GameText (estilos de 1 à 6).
Agora vamos criar o comando de comprar remédio. No OnPlayerCommandText:
if(strcmp(cmd, "/comprarremedio", true) == 0)
{
if(IsPlayerInCheckpoint(playerid) == CP_FARMACIA) //se você estiver no checkpoint certo o comando será executado
{
if(GetPlayerMoney(playerid) >= 50) // se o dinheiro do player for maior ou igual a 50 ele poderá comprar o remédio
if(Gripe[playerid] > 0) // se a gripe for maior que zero ele poderá comprar o remédio
{
GivePlayerMoney(playerid, -50); //diminue $50 do player
Gripe[playerid] = 0; //seta a array da gripe para 0
SetPlayerHealth(playerid, 100.0); //seta a vida do player para 100%
}
else if(GetPlayerMoney(playerid) < 50) //mais se o dinheiro do player for menor que $50 o comando não é executado e um aviso aparecerá no chat
{
SendClientMessage(playerid, COR, "Você não tem $50 para comprar o remédio!"); //mensagem que aparecerá no chat
}
else if(Gripe[playerid] <= 0) //mais se a array Gripe for menor ou igual a 0 o comando não será executado e um aviso aparecerá no chat
{
SendClientMessage(playerid, COR, "Você não está gripado!"); //mensagem que aparecerá no chat
}
}
else if(CPS_GetPlayerCheckpoint(playerid) != CP_FARMACIA) //mais se o player estiver ou não em um Checkpoint que não seja da farmacia o comando não é executado e um aviso aparecerá no chat
{
SendClientMessage(playerid, COR, "Você não está no Checkpoint da farmacia!"); //mensagem que aparecerá no chat
}
return 1;
}
E está pronto nossa farmacia. Até logo pessoal.
Feito por: Cr0Nos
Você já precisou comentar algo em seu script para se lembrar de alguma coisa ou deixar explicações para as pessoas que irão mexer em seu script? Para isso servem os comentários nas linguagens de programação, todos os comentários são ingnorados pelo compilador, assim, não dando erro em seu script.
Para criar comentários é bem simples e existem dois jeitos para cria-los:
Comentários de uma linha só: Use duas barras ( // ) e tudo que estiver depois das duas barras,na mesma linha, ficaram da cor verde e serão transformados em comentários.
Comentários de várias linhas: Use uma barra e um asteristico ( /* ) e no final do comentário use um asteristico e uma barra ( */ ).
DICA: Você quer que o compilador ingnore um script/linha de código de seu gamemode/filterscript mas quer deixá-lo no lugar que está? Use o mesmo esquema para fazer comentários que o script/linha de código serão ingnorados pelo compilador sem precisar apagá-lo!
Feito por: Cr0Nos
No comparador If você usa os operadores relacionais(igual,diferente,maior,menor etc). Ai vai a lista de alguns operadores relacionais(os mais usados):
Igual: ==
Menor: <
Maior: >
Menor ou igual: <=
Maior ou igual: >=
Diferente de: !=
Operadores lógicos:
Ou = ||
And = &&
O operador lógico "ou" serve para que se uma ou mais condições (no nosso caso, essas condições estão no comparador if) forem verdadeiras, sejam executadas, caso alguma seja falsa mas a outra é verdadeira, é executado do mesmo jeito, caso todas sejam falsas nada é executado. Exemplo de uso do Ou ( || ):
if(Profissao[playerid] ==/*igual*/ POLICIAL ||/*ou*/ Profissao[playerid] ==/*igual*/SWAT)
{
...
}
E o operador lógico And ( && ) serve para que quando você impõe duas condições execute o código se duas ou mais condições forem verdadeiras, caso sejam falsas, nada é executado.
Espero que vocês tenham aprendido mais sobre pawn com esse tutorial. Até mais!
Feito por: Cr0Nos
Nesse tutorial vou ensinar a vocês sobre o comparador If, bastante util para seus scripts que use comparações.
If em português significa "Se" e serve para comparar dados.
Sintaxe:
if(PRIMEIRO_DADO + OPERADOR_RELACIONAL + SEGUNDO_DADO)
{ //chave para abrir código
// funções que você queira que sejam executadas ao processar a comparação concedida serão colocadas aqui
} //fecha código
Por exemplo:
new Mercadorias[MAX_PLAYERS] = 0; //criamos a array na qual vamos comparar com outro dado e setamos o valor dela para 0
if(Mercadorias[playerid] == 1) //se a array Mercadorias for igual a 1, que e falso, aparecera uma mensagem no console do servidor
{ //abre o codigo
Print("\nA array Mercadorias nao e igual a 1!\n"); //mensagem que aparece no console do servidor
} //fecha o codigo
Agora veremos o else if(significa "mais se"), ele impõe uma segunda comparação caso a primeira comparação dada seja falsa.
new Mercadorias[MAX_PLAYERS] = 0; //criamos a array na qual vamos comparar com outro dado e setamos o valor dela para 0
if(Mercadorias[playerid] == 1) //se a array Mercadorias for igual a 1, que e falso, aparecera uma mensagem no console do servidor
{ //abre o codigo
Print("\nA array Mercadorias nao e igual a 1!\n"); //mensagem que aparece no console do servidor
} //fecha o codigo
else if(Mercadorias[playerid] == 0) //mais se a array Mercadorias for igual a 0,que e verdadeiro, aparecera uma mensagem no console do servidor
{ //abre o cddigo
Print("\nA array Mercadorias e igual a 0!\n"); //mensagem que aparece no console do servidor
} //fecha o código
Só você ter imaginação e esperteza para saber quando você precisará usar If e Else If em seus scripts.
OBS: "\n" serve para pular linha no console do servidor, só funciona com a função "Print".
Feito por: Cr0Nos