08.11.2011, 18:08
(
Последний раз редактировалось Miqueias Barros; 08.11.2011 в 20:00.
)
Olб manolos do fуrum, 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 da wiki 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 usam ZCMD, 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: https://sampwiki.blast.hk/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 Код:
#include a_samp
Depois vamos adicionar o:
pawn Код:
main()
{
}
pawn Код:
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 Код:
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 Код:
public OnGameModeInit()
{
return 1;
}
pawn Код:
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 Код:
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 da wiki com suas explicaзхes...
Voltando ao public anterior que fizermos e com suas funзхes ele ficaria deste modo:
pawn Код:
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;
}
pawn Код:
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 Код:
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 Код:
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}

Prуximo passo й o:
pawn Код:
public OnPlayerSpawn(playerid)
{
return 1;
}
pawn Код:
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid, interiorid);
SetPlayerPos(playerid, Float:x, Float:y, Float:z);
return 1;
}
Prуximo passo iremos mecher com:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
return 0;
}
pawn Код:
if(strcmp(cmdtext, "/seucomando", true) == 0)
{
//Funзгo
return 1;
}
pawn Код:
if(strcmp("/seucomando", cmdtext, true, 10) == 0)
{
//Funзгo
return 1;
}
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/seucomando", true) == 0)
{
//Funзгo
return 1;
}
return 0;
}
pawn Код:
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!