Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Pawn - Guia para Iniciantes


Shum493
 Compartilhar

Posts Recomendados

images?q=tbn:ANd9GcQ5twPS2VIK0VBvTmmwgL9uRIavLHpP58Tnw9wUCDEh9F9fGAke

→Introdução←

Bom, não sei se aqui é a área certa, mas como uma das suas inspirações é a linguagem C, então creio que seja mais viável colocar aqui. Destino esse guia para a criação de gamemodes de SA:MP.

Não sou nenhum expert em pawn, só sei o básico dos básicos, é usado principalmente em Gamemodes de SAMP, resolvi colocar aqui, de uma forma orgarnizada, dando parte dos créditos à Wikipédia e ao Fórum SAMP.

Pra inicio, é necessário saber que: toda chave que abre, fecha. E cada uma das funções devem ser colocadas nos seus devidos lugares. Pawn é case sensitive, diferencia maiusculas de minusculas, muitos GMs de SAMP deixam de ser compilados por isso.

 

► Função #include

A função #include deve ser declarado logo no início do gamemode, todos os GMs devem conter a include a.samp.

//Inicio do gamemode

#include <a.samp>

Algumas funções da include a.samp:

Print Escrever Texto ao Console

printf Escrever uam string ao console (tela preta)

SendClientMessage Envia Mensagem ao Player

SendClientMessageToAll Envia Mensagem a Todo players Spawneados

GameTextForAll Envia Mensagem ao centro da tela a Todos players Spawneados

GameTextForPlayer Envia Mensagem ao centro da tela apenas a 1 player

SetTimer Iniciar um Temporarizado que chama um public a numero de segundos...

KillTimer Parara o Temporazidaor

GetTickCount Retorna o número de milissegundos desde a OS foi iniciado.

SetGameModeText Mudará o Nome de GameMode

SetTeamCount Define o número de equipes permitido.

AddPlayerClass Adicionara um Class ao player Onde Spawnara por padrão Incluindo armas

AddStaticVehicle Adicionar um Veiculo estaticos Definindo as Cores

AddStaticPickup Adicionar um Pikcup estaticos Definindo os Medelos

ShowNameTags Define se será mostrado o nome do player encima

ShowPlayerMarkers Definir se os jogadores marcadores (no mapa/radar) deve ser mostrado ou não.

GameModeExit Sair do modo de jogo

SetWorldTime Acerte o relógio do jogo a um certo tempo e congelá-lo.

GetWeaponName Pegar Nomes

IsPlayerAdmin Define se admin ou nao

Kick Kickar Player

Ban Banir player

SetSpawnInfo

SpawnPlayer Define alguns parâmetros spawn (incluindo a equipe, a pele, gerando posição, armas e munições)

SetPlayerTeam Define a Equipe do Player

GetPlayerTeam Geta/Pega a equipe do Player

SetPlayerSkin Muda Skin do player

SetPlayerScore Muda Scoredo player

GetPlayerScore Geta Score do Player

GetPlayerPos Geta Posição do Playe

SetPlayerPos Muda Posição do Player do player

GetPlayerHealth Geta Vida do Player

SetPlayerHealth Muda Vida do player

PutPlayerInVehicle Coloque Player no Veiculo

RemovePlayerFromVehicle Remove Player do Veiculo

IsPlayerInVehicle Determina se um jogador está em um determinado veículo.

IsPlayerInAnyVehicle Determina se um jogador está em qualquer veículo.

GetPlayerName Obter o nome de um jogador do seu ID e armazená-lo em nome de [].

SetPlayerColor Muda Cor do Player

GetPlayerColor geta cor do player

SetPlayerCheckpoint Seta um Check Point a Player

DisablePlayerCheckpoint Disbilita o Check Point ao player

IsPlayerInCheckpoint Define se o player esta em um checkpoint

SetPlayerInterior Muda Player para um interior

SetPlayerCameraPos muda camera do player

SetPlayerCameraLookAt muda visão da camera ao player

TogglePlayerControllable Define se o player pode se mecher

PlayerPlaySound Toca um som ao player

SetPlayerWorldBounds Muda Player a um Virtual Word

GivePlayerMoney dá dinheiro ao player

SetPlayerFacingAngle Set o Angula da Face do player

GetPlayerMoney getar Dinheiro do player

ResetPlayerMoney Reseta Dinheiro do playera 0

IsPlayerConnected Define se o player esta conectado

GetPlayerState Geta Estado do Player

ResetPlayerWeapons Reseta Armas do player

GivePlayerWeapon dar arma ao player

CreateVehicle criar um veiculo nao estatico

GetVehiclePos geta pos do veiculo

SetVehiclePos seta pos do veiculos

SetVehicleZAngle seta angulo do veiculos

SetVehicleParamsForPlayer seta parametros ao player do veiculos

SetVehicleToRespawn respawn o veiculos

AddVehicleComponent adiciona componentes ao veiculos

ChangeVehicleColor mudar cor do veiculo

ChangeVehiclePaintjob Alterar o paintjob sobre um determinado veículo.

Forwards Declarar CallBacks (publics) Adicionais

OnGameModeInit ao gamemode iniciar

OnGameModeExit ao gamemode desligar

OnFilterScriptInit ao fs iniciar

OnPlayerConnect ao player conectar

OnPlayerDisconnect ao player desconectar

OnPlayerSpawn ao player spawnar

OnPlayerDeath ao player morrer

OnVehicleSpawn ao player spawnar

OnPlayerText ao player digitar

OnPlayerCommandText ao player digitar comando

OnPlayerEnterVehicle ao player entrar no veiculo

OnPlayerExitVehicle ao player sair do veiculo

OnPlayerStateChange ao player mudar de estado

OnPlayerEnterCheckpoint ao player entrar ao check point

OnPlayerLeaveCheckpoint

- Créditos ao Drakins, do forum SAMP.

 

► #define

Deve ser declarada após o #include, como diz o nome, declara certas coisas, como cores.

#define COR_VERMELHO 0x0000CDFF

//Não sei se essa é exatamente a cor vermelha, foi a única cor que lembrei.

Pode ser usada posteriormente para criar mensagens que serão enviados para o servidor ou determinado player.

SendClientMessageToAll (playerid, COR_VERMELHO, "Mensagem aqui, essa mensagem irá ser a cor que você definiu, no caso, o vermelho." //Isso é para enviar uma mensagem para todo o servidor, todos poderão lê-la

SendClientMessageToPlayer (playerid, COR_VERMELHO, "Mensagem aqui, será enviada apenas para o player que realizar uma certa ação, que fará com que uma mensagem, que é a que está sendo escrita aqui para ele."

Lembrando que SendMessageClientToAll se difere de SendClientMessage. Uma delas manda para o servidor, onde todos a lerão, e a outra vai para o console. Respectivamente. Achei legal dizer que, o SendClientMessage é o printf da linguagem C. <- para quem conhece a linguagem C e tá aprendendo pawn aqui no meu belo guia e.e

 

► Callbacks

 

As callbacks são usadas para separar as funções, digamos assim. Por exemplo, uma mensagem que aparecerá no console do servidor quando o mesmo for ligado deverá ser programado dentro da função main().

main()

{

//Aqui as funções, como o print. Exemplo

print ("----------------------");

print ("Servidor Fulano carregado com sucesso");

print ("----------------------");

} //Toda chave que abre, fecha.

Ah sim, e ao final de cada linha, deve ser encerrada com ponto e vírgula ( ; )

 

- public OnGameModeInit()

Aqui é onde serão definidos as classes, armas e suas munições, e o local de spawn dos carros.

public OnGameModeInit()

//Aqui deverá ser dado um parágrafo, usando o TAB, aqui não consigo dar parágrafo, mas na hora de codar, dêem tab.

AddPlayerClass (weapon1, weapon1_ammo, weapon2, weapon2_ammo); //weapon1 e weapon1_ammo devem ser substituídas pelas IDs das armas, se a primeira arma for a Deagle, ficará assim: 24, 24_100. Ou seja, a deagle será a arma primária e terá 100 balas. Se quiser adicionar mais classes, é só ir adicionando mais vezes a função AddPlayerClass.

AddStaticVehicle (vehicleid, floatx, floaty, floatz, color1, color2); //Vehicleid deve ser substituído pela id do carro, e floatx, y e z devem ser substituidos pelas coordenadas. Para pegá-las, vá no jogo, e dê /save. color1 e 2 pelas IDs das cores. Mesma coisa do AddPlayerClass, pra adicionar mais carros, só adicionar mais vezes.

return 1;

}

Uma coisa que eu andei usando no tutorial e esqueci de comentar, é o // que uso pra descrever as funções. O compilador vê o //Comentário como uma linha em branco. Nesta public definimos o local de spawn dos carros e as classes, o local de spawn das classes serão definidas posteriormente.

 

► public OnPlayerRequestClass()

 

SetPlayerPos (playerid, floatx, floaty, floatz);

SetPlayerInterior (playerid, interiorid); //interiorid deve ser substituído pelo id da interior, que pode ser usado com a função /save.

SetPlayerCameraPos (playerid, floatx, floaty, floatz); //Aqui é posição da câmera

SetPlayerCameraLookAt (playerid, floatx, floaty, floatz);

return 1;

}

 

► public OnPlayerConnect

{

new str[78], pnome[MAX_PLAYERS_NAME];

GetPlayerName (playerid, pnome, sizeof));

format (str, sizeof(str), "%s [iD: %d] se conectou.", pnome, playerid);

SendClientMessageToAll (-1, str);

return 0;

}

 

► public OnPlayerDisconnect

 

Deve ser feito a mesma coisa que foi feita na public OnPlayerConnect, porém a mensagem deve ser mudada. Ao invés de "conectou", seria "desconectou", óbviamente.

 

► public OnPlayerCommandText

public OnPlayerCommandText(playerid, cmdtext[])

{

if(!strcmp(cmdtext, "/créditos", true))

{

SendClientMessage(playerid, COR_VERMELHO, "Para fazer isso e aquilo digite /algo\nPara encher linguiça no topico digite /linguiça\nPara peidar digite /peidar");

return 1;

}

return 0;

 

// Se for colocado return 1, o servidor vai mostrar "Unknown Command"

 

Esse é o exemplo do comando /ajuda, e logo em baixo foi colocado o SendClientMessage, que manda uma mensagem para o player, dizendo o que foi citado entre aspas, em negrito. O "\n" é usado para pular linhas. Na hora de digitar o comando, vai sair tudo escrito normalmente, não se preocupe. Para criar um determinado comando, use o mesmo formato usado logo acima e adicione uma função, por exemplo:

public OnPlayerCommandText(playerid, cmdtext[])

{

if(!strcmp(cmdtext, "/gotoclub", true))

{

SetPlayerPos (playerid, interiorid, x, y, z);

SendClientMessage(playerid, COR_VERMELHO, "Você foi teleportado para o club.");

return 1;

}

return 0;

 

► Créditos

[FeK]DrakinS - Funções da Include a.samp

Shum493 - Tópico

Fórum SAMP - Me ensinou tudo que sei e.e

edugremista/Gunner.x3 - Apoio moral. q

Link para o comentário
Compartilhar em outros sites

:sim: Pow um de vcs me ajudem a fazer Hacks Por Favo se for me ajuda me adc no msn >>[email protected] amigos me ajudem Por Favorestou contando com vcs BLZ amigos do WC Por Favor não esquesão de mim não vlw me adc >[email protected]< :sim:

 

Beijinhos

Link para o comentário
Compartilhar em outros sites

Obrigado pelos comentários (:

Espero que tenha os ajudado de alguma forma. Para aprender o pawn, é necessário só o básico de Inequações, que são os sinais de menor, menor ou igual, maior, maior ou igual e igual. E uma noçãozinha básica de variáveis. E... Não desistam de aprender. É uma frase meio "bordão" mas ainda assim serve de ajuda, creio eu.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

Caro ,

 

Evite comentar em tópicos cujo último post tem mais de 15 dias.

 

Isso traz tópicos velhos de volta a primeira página,desorganizando a área.

 

Qualquer dúvida sobre as regras gerais do fórum, leia:

 

 

 

Tópico Trancado

nQ3rEGL.png

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.