Olá manolos do Malucos Por SAMP, neste tutorial irei ensinar
passo-a-passo a como criar um gamemode do zero, aqui irei ensinar a
fazer um GM com algumas funções mais usadas e irei explica-las
totalmente, então vamos lá...
Algumas pessoas tem dúvida se Pawno é a mesma coisa que Pawn, então eu digo, nada a vêr...
O Pawno é um programa editor de C++ que é usado para criar gamemodes, filterscript e includes..
O Pawn é uma linguagem de script de código aberto dentro do Pawno, que tem por abreviação o formato do arquivo chamado.pwn, o mesmo só é reconhecido ao ser compilado apertando F5.
Então vamos ao restante..
No topo:
Esta include ela é a principal função que faz com que seu GM funcione, motivo: dentro da include a_samp.inc bem dizer tem tooodas as funções, exemplo: SetTimer, SetPlayerHealth, SetPlayerArmour, etc...
Depois vamos adicionar o:
Esta função deve ser adicionada no GM ou seu GM não compila, então dentro desta main() você pode adicionar uma
Pra que serve essa print?
Então ela serve para mandar uma mensagem no log do seu servidor, que você pode adicionar em qualquer função do gamemode, exemplo:
Ele enviará as seguintes mensagens para seu server-log.txt,
Servidor execultado com sucesso
-------------------------
Forum.SA-MP.com - Acesse!
Logo após você adiciona uma das principais funções de um gm
Nesta função você adiciona as funções que vai fazer funcionar no seu gm, exemplo: quero adicionar skins e veículos, você usará
Que para aumentar o número de skins e veículos basta apenas você ir duplicando...
Logo após viemos fazer o:
Aqui será a visualização dos skins que terá no servidor, que para exibir as skins você usará
SetPlayerPos
SetPlayerInterior
SetPlayerCameraPos
SetPlayerCameraLookAt
Essa são apenas algumas das funções mais usadas na public OnPlayerRequestClass(playerid, classid) com seus links dawiki com suas explicações...
Voltando ao public anterior que fizermos e com suas funções ele ficaria deste modo:
Agora passando para o próximo passo é o:
Nesta calbak é usada para quando o player se conecta ao servidor ou para
carregar alguns sistemas ou funções, exemplo: sistema de login, entre
outros que não me vem na cabeça '-'
Aqui vai um exemplo de um código na public OnPlayerConnect(playerid) que vai identificar quando o player se conecta ao servidor:
Então aqui vai o nome das funções com seus links de explicações na SA-MP Wiki
GetPlayerName
format
SendClientMessageToAll - OBS: Na wiki eles tão dando a SendClientMessageToAll em uma só linha como se fosse SendClientMessage, mais aqui neste tutorial avançei um pouco fazendo com format '-', não é difícil de entender
Próximo passo será o:
Na public OnPlayerDisconnect é quase a mesma coisa que o public OnPlayerConnect só que na public OnPlayerDisconnect já fala né, quando o player desconecta do servidor.. é usado a mesma função da que está na public OnPlayerConnect(playerid) não tem nada de difícil
Próximo passo é o:
Esta calbak é a função que o player nasce, que para fazer o player nascer é usado SetPlayerPos e SetPlayerInterior exemplo:
Lembrando que para pegar os interiores você deve entrar dentro do
interior que deseja depois digitar /interior, você pode fazer com que o
player dê spawn dentro de interior ou não...
Próximo passo iremos mecher com:
Hoje em dia, muitos scripters profissional ou até mesmo iniciantes ou intermediários usam o strcmp enquantos alguns usamZCMD, para dar inicio a criação de um comando simples usaremos o seguinte:
Este é um comando para você ter uma noção de como se faz o comando, que o mesmo também pode ser desta forma:
Vai dar na mesma coisa, só que pelo que vimos fica maior né? Dai você se pergunta o que aquele 10 faz ali? Então ela é uma string para o comando que não pode ser definida em nome, somente em número.. O comando junto com a public OnPlayerCommandText ficará:
Simples né? Para finalizar o:
Este é para você por dialogs com id direcionado em comandos, sistema de
logins e etc... Para saber mais informações sobre a OnDialogReponse
acesse: http://wiki.sa-mp.com/wiki/OnDialogResponse
Lá tem tudo sobre o OnDialogResponse..
Então é isso aê pessoal, espero que tenham gostado, lembrando que fiz este tutorial para quem é "INICIANTE" depois não fale besteira =}
Qualquer dúvida, pode postar ai!
Há... Se eu esqueci de alguma coisa só falar ok?
Obrigado a todos, grande abraço!
Algumas pessoas tem dúvida se Pawno é a mesma coisa que Pawn, então eu digo, nada a vêr...
O Pawno é um programa editor de C++ que é usado para criar gamemodes, filterscript e includes..
O Pawn é uma linguagem de script de código aberto dentro do Pawno, que tem por abreviação o formato do arquivo chamado.pwn, o mesmo só é reconhecido ao ser compilado apertando F5.
Então vamos ao restante..
No topo:
pawn Code:
#include a_samp
Depois vamos adicionar o:
pawn Code:
main() { }
pawn Code:
print("Mensagem");
Então ela serve para mandar uma mensagem no log do seu servidor, que você pode adicionar em qualquer função do gamemode, exemplo:
pawn Code:
main() { print("Servidor execultado com sucesso"); print("-------------------------"); print("Forum.SA-MP.com - Acesse!"); }
Servidor execultado com sucesso
-------------------------
Forum.SA-MP.com - Acesse!
Logo após você adiciona uma das principais funções de um gm
pawn Code:
public OnGameModeInit() { return 1; }
pawn Code:
public OnGameModeInit() { AddPlayerClass(skinid, Float:X, Float:Y, Float:Z, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo); AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2); return 1; }
Logo após viemos fazer o:
pawn Code:
public OnPlayerRequestClass(playerid, classid) { return 1; }
SetPlayerPos
SetPlayerInterior
SetPlayerCameraPos
SetPlayerCameraLookAt
Essa são apenas algumas das funções mais usadas na public OnPlayerRequestClass(playerid, classid) com seus links dawiki com suas explicações...
Voltando ao public anterior que fizermos e com suas funções ele ficaria deste modo:
pawn Code:
public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, Float:x, Float:y, Float:z); SetPlayerInterior(playerid, interiorid); SetPlayerCameraPos(playerid, Float:x, Float:y, Float:z); SetPlayerCameraLookAt(playerid, Float:x, Float:y, Float:z); return 1; }
Agora passando para o próximo passo é o:
pawn Code:
public OnPlayerConnect(playerid) { return 1; }
Aqui vai um exemplo de um código na public OnPlayerConnect(playerid) que vai identificar quando o player se conecta ao servidor:
pawn Code:
public OnPlayerConnect(playerid) { new str[78], pnome[MAX_PLAYER_NAME]; GetPlayerName(playerid, pnome, sizeof(pnome)); format(str, sizeof(str), "%s (ID:%d) conectou-se ao servidor.", pnome, playerid); SendClientMessageToAll(-1, str); return 1; }
GetPlayerName
format
SendClientMessageToAll - OBS: Na wiki eles tão dando a SendClientMessageToAll em uma só linha como se fosse SendClientMessage, mais aqui neste tutorial avançei um pouco fazendo com format '-', não é difícil de entender
Próximo passo será o:
pawn Code:
public OnPlayerDisconnect(playerid, reason) { return 1; }
Próximo passo é o:
pawn Code:
public OnPlayerSpawn(playerid) { return 1; }
pawn Code:
public OnPlayerSpawn(playerid) { SetPlayerInterior(playerid, interiorid); SetPlayerPos(playerid, Float:x, Float:y, Float:z); return 1; }
Próximo passo iremos mecher com:
pawn Code:
public OnPlayerCommandText(playerid, cmdtext[]) { return 0; }
pawn Code:
if(strcmp(cmdtext, "/seucomando", true) == 0) { //Função return 1; }
pawn Code:
if(strcmp("/seucomando", cmdtext, true, 10) == 0) { //Função return 1; }
pawn Code:
public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp(cmdtext, "/seucomando", true) == 0) { //Função return 1; } return 0; }
pawn Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { return 1; }
Lá tem tudo sobre o OnDialogResponse..
Então é isso aê pessoal, espero que tenham gostado, lembrando que fiz este tutorial para quem é "INICIANTE" depois não fale besteira =}
Qualquer dúvida, pode postar ai!
Há... Se eu esqueci de alguma coisa só falar ok?
Obrigado a todos, grande abraço!