Nesse artigo venho dar dicas para vocês de como começar na linguagem pawn para desenvolvimento de gamemodes(modos de jogo) e filterscripts(arquivos feitos em PAWN para adicionar certos comandos, coisas etc. ao servidor).
OBS: Pawn NÃO É uma linguagem SÓ para SA:MP.
Primeiramente, programar para sa-mp não se aprende da noite pro dia, não é batendo palmas e dando três pulinho que você vai aprender!
PESQUISE! Você está com uma dúvida e não consegue resolver sua dúvida com pesquisa? PERGUNTE! Mas não peça coisas absurdas, idiotas e impossiveis, alias, somos programadores e não mágicos e nem empregados de vocês! Não se esqueça que os programadores não ganham nada para te ajudar, por isso não reclame se ele não quiser te ajudar, pois enche o saco resolver a dúvida dos outros, por causa que é sempre gente te perguntando coisas idiotas e absurdas que torra o saco, assim fazendo o programador te xingar depois que você falar: "Ajuda eu tio?".
Perguntar coisas como: "Como faz sistema de casa?". PÔ! Quer um cafézinho também?!
Claro, nao é pesquisando no google "Como faz um sistema de casa em pawn para SA:MP - San Andreas Multiplayer ou GTA Online, por favor google ache algum maldito resultado!!!" que você vai achar o que você quer. Por isso estude a linguagem pawn e use um negócio que existe pelo menos em maior parte dos seres humanos chamado C-É-R-E-B-R-O em vez de pedir coisas idiotas!
Matemática ajuda muito, não gosta de matemática? Diga tchau pawn e as linguagens de programação existentes!
Você tem imaginação? Oi pawn!
Você não gosta de ler tutoriais, ler apostilas e pesquisar por que tem preguiça? Diga tchau pawn e as linguagens de programação existentes de novo!
Estude gamemodes, filterscripts, o que for, mas leia, releia, releia de novo até entender tudo o que você quer entender.
O segredo é ter força de vontade e querer aprender e não ficar querendo tudo na mão beijada.
Ser iniciante não é desculpa para pedir coisas idiotas!
Alguns sites bons para aprender pawn:
Fórum oficial do SA-MP: http://forum.sa-mp.com
Caso não consiga entrar no forum, entre no site www.youhide.com e cole o link do forum lá para poder acessa-lo.
Leia os tutoriais básicos do blog: http://cronosbr.blogspot.com/2008/10/tutoriais-bsicos-de-pawn.html
Leia os tutoriais do blog: http://cronosbr.blogspot.com/search/label/Tutoriais%20de%20PAWN
Tire suas duvidas na comunidade: http://www.orkut.com.br/Main#Community.aspx?cmm=38308205 (mas sem pedir coisas idiotas e absurdas)
Ótimo site para aprender as coisas: www.google.com.br
Só isso pessoal, até mais!
Feito por: Cr0Nos
Reuni todos os tutoriais básicos do blog para poder começar na linguagem pawn para SA:MP.
OBS: Pawn NÃO É uma linguagem SÓ para SA:MP.
Leia na ordem:
Criando servidor básico:
http://cronosbr.blogspot.com/2008/01/tutorial-criando-servidor-bsico.html
Guia para começar em pawn:
http://cronosbr.blogspot.com/2008/10/artigo-guia-para-comear-em-pawn-para-sa.html
Tutorial explicando o que é comentario e quando usa-lo:
http://cronosbr.blogspot.com/2008/09/tu
Tutorial que explica o que é o comparador if e como usa-lo:
http://cronosbr.blogspot.com/2008/09/tu
Tutorial que explica o que são operadores relacionais e quando usa-los:
http://cronosbr.blogspot.com/2008/09/tu
Artigo sobre o poder das arrays:
http://cronosbr.blogspot.com/2008/09/ar
Tutorial ensinando técnicas booleanas:
http://cronosbr.blogspot.com/2008/10/tu
Super tutorial explicando muitas coisas uteis de pawn:
http://cronosbr.blogspot.com/2008/05/tu
Tutorial que ensina a pegar coordenadas no jogo:
http://cronosbr.blogspot.com/2008/07/tu
Primeiramente leia sobre "Booleano" na página da Wikipédia para poder acompanhar esse tutorial:
http://pt.wikipedia.org/wiki/Booleano
Nesse tutorial ensinarei a usar uma técnica booleana, que é usado arrays.
Como viram na página da Wikipédia: "booleano é um tipo de dado primitivo que possui dois valores, que podem ser considerados como 1 ou 0, verdadeiro ou falso."
Vou dar um exemplo de como usar isso:
new UsouComando[MAX_PLAYERS]; //array para utilizar a técnica booleana
Agora vamos usar essa array utilizando o comparador If para verificar se o valor é verdadeiro ou falso:
if(UsouComando[playerid] ==/*igual*/ 1/*verdadeiro*/) // se a array UsouComando for igual a 1(verdadeiro/true)...
{
...
}
else if(UsouComando[playerid] ==/*igual*/ 0/*falso*/) // mais se a array UsouComando for igual a 0(falso/false)...
{
...
}
É isso pessoal, se o valor da array UsouComando for igual a 1(verdadeiro/true) vai executar tal função(função de sua escolha), mais se a array UsouComando for a 0(falso/false) vai executar tal comando e assim por diante.
Essa técnica é muito boa por que, no meu tempo de programador, eu tive que usar muito essa técnica e me ajudou MUITO! É só você ser esperto e saber quando usar e ter imaginação para poder fazer disso um processo divertido e produtivo.
Só isso pessoal, até o próximo tutorial.
Feito por: Cr0Nos
Bom este GameMode(GM) foi utilizado por um bom tempo no Server: Servidor BRASIL, então como fecharam o Servidor, Resolveram liberar o Gm para download.
Oque Ele tem de Bom?
R: Bom ele tem sistema de GangZonas(GZ's) Compraveis, Varios comandos para Stunts, comandos para race, 4FUn, Hora Real etc...
Ele Se passa em Las Venturas, e posso dizer que é um dos Melhores GM's Brasileiros apesar de Muitos não gostarem de Las Venturas Por achar Muito Repetitivo e tal...
Mais esse eu garanto que vale a pena BAixar, tudo que você pensa encontrar em um Server bom você encontrara nele.
Ele foi Desenvolvido Originalmente por:
Kaike
Devil
BnO
[Rockstar]Rell
[AP]BcO
IluSion
Link Para Download do Las Venturas BRASIL:
Nosso novo parceiro. Visite GTA BR Team e saiba tudo sobre GTA e suas curiosidades!
http://gtabrteam.blogspot.com/
Acesse!
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