Mostrando postagens com marcador [zNx] Tutoriais. Mostrar todas as postagens
Mostrando postagens com marcador [zNx] Tutoriais. Mostrar todas as postagens

i7Core | Mini Tutorial Simples e Util v0.1

22 de fev. de 2014.

pawn Code:

Atualizaçoes: 
v0.1 = o Basico
v0.2 = Sistema De Login Explicado Em "Dof" e "Dini"
v0.3 = Comandos Basicos e Uitls
v0.4 = Salvamentos De Dados, e Sistema De Adiministraçao
v0.5 = Outras Coisas Maneiras 

Tudo Explicada: Versao Atual e v0.1.

Agradecimentos:
Samp Forum.

Creditos:
i7Core.
Leia Mais

[TUT] Usando y_commands e sscanf

Digo desde ja que este e o meu primeiro tutorial aqui no forum, e irei vos mostrar juntamente com o SmiT como criar comandos comy_commands e sscanf.
Eu ja tinha ca visto sobre ZCMD, Bcmd, etc... mas não ainda sobre y_command por isso decidi tenta fazer 1 tutorial, e aqui está o resultado.

O que é?

Bem y_commands e o processador de comandos mais rapido e flexivel existente ate ao momento e sscanf é a melhor alternativa para uso substituindo a velha Strtok, ambos foram criados por Y_Less.

Requesitos e onde colocar

Bom primeiramente terá de fazer download da biblioteca YSI e da sscanf e sua plugin, aqui tem:


Após o download copie/corte a pasta "YSI" e coloque na pasta "..pawno/include" e a "sscanf2.inc" também copie/corte e coloque na pasta "..pawno/include".

Quanto ao plugin

No Windows

  • Tera de copiar ou cortar a "sscanf.dll" e colocar na pasta "plugins". Se nao existir esta pasta, tera de criar-la.
  • Depois abra o "server.cfg" e adicione "sscanf.dll" na linha "plugins", se nao tiver tera de criar-la assim:
Code:
plugins sscanf.dll
No Linux
  • Tera de copiar ou cortar a "sscanf.so" e colocar na pasta "plugins". Se nao existir esta pasta, tera de criar-la.
  • Depois abra o "server.cfg" e adicione "sscanf.so" na linha "plugins", se nao tiver tera de criar-la assim:
Code:
plugins sscanf.so
Adicionando ao GameMode

Bem agora temos de carregar o y_commands e a sscanf. Para isso no topo do seu script tera de os incluir (include).

Assim:

pawn Code:
#include <YSI\y_commands> #include <sscanf2>

Isto ira carregar os Codes da pasta "..pawno/include/YSI/y_commands.inc" e "..pawno/include/sscanf2.inc" para o seu script.

Nota

  • Os comandos que criarem nao poderao estar dentro de qualquer Callback, tem de ser criados fora.


E ja agora uma Callback é uma função código que já existe no seu script ou seja e uma função nativa, exemplo;

pawn Code:
public OnGameModeInit() {     return 1; }
  • Se colocar os seus comandos dentro destas Callback's irão ocorrer erros, e com isso poderemos ficar aborrecidos e desistir de criar comandos.


Adicionando um comando

  • Para adicionar um comando basta estar fora de qualquer Callback e seguir as funções

pawn Code:
YCMD:teste(playerid, params[], help) {     return 1; }
  • params e o parametro string, playerid e o ID do player que executa o comando.
  • y_commands tem um sistema help imbutido.

Nota

Em vez de usar "params" podemos usar "o".
Ficara assim:

pawn Code:
YCMD:teste(playerid, o, help) {     return 1; }
Sistema help do y_commands
  • Se recorrer ao uso deste sistema, para verificar o parametro help de um comando ficara por exemplo assim:

Os comandos com o parametro help:

pawn Code:
YCMD:testando(playerid, params[], help) {     if (help) return SendClientMessage(playerid, -1, "comando lindo.");     SendClientMessage(playerid, -1, "funciona");     return 1; } YCMD:testando2(playerid, params[], help) {     if (help) return SendClientMessage(playerid, -1, "comando feio.");     SendClientMessage(playerid, -1, "funciona2");     return 1; }


agora a forma para verificar é fazer 1 comando que leia os parametros help, assim:

pawn Code:
YCMD:ajudacomando(playerid, params[], help) {     if (isnull(params)) return SendClientMessage(playerid, -1, "uso: /ajudacomando [comando]");     Command_ReProcess(playerid, params, true);     // isto ira ler o parametro 'help' do comando que colocarmos     return 1; }

Criando comandos sem sscanf

  • Vamos comecar por um simples comando "/ola" sem recurrendo ao uso de sscanf.

pawn Code:
YCMD:ola(playerid, params[], help) {     SendClientMessage(playerid, -1, "PT o comando funciona!");     return 1; }
  • O player recebera a simples menssagem , PT o comando funciona!
  • Mas se por acaso receberem estes warning's na compilação:

Code:
warning 203: symbol is never used "params"
warning 203: symbol is never used "help"
  • Esta e a forma de reparar e nao usar os parametros "params" e "help" no seu comando:

Podemos dizer ao script que nao queremos usar os paramentros "params" e "help" usando a diretiva "#pragma unused symbol"no comando, assim:

pawn Code:
YCMD:ola(playerid, params[], help) {     #pragma unused params, help     SendClientMessage(playerid, -1, "PT o comando funciona!");     return 1; }


Outro Exemplo

  • Vamos criar um comando para admin RCON usar.

pawn Code:
YCMD:adm(playerid, params[], help) {     new string[ 128 ];     new pname[ MAX_PLAYER_NAME ];         if( !IsPlayerAdmin(playerid) ) return SendClientMessage(playerid, -1, "Este comando nao podes usar");     if( help ) return SendClientMessage(playerid, -1, "Este e um comando de admin RCON");     if( isnull( params ) ) return SendClientMessage(playerid, -1, "Erro: /adm [texto]");     GetPlayerName( playerid, pname, sizeof( pname ) );     format( string, sizeof( string ),"(RCON) %s: %s", pname, params);     SendClientMessageToAll(-1, string);     return 1; }


String

  • new string[ 128 ]; Declaramos que a variavel "string" tem espaço para 127 caracteres.
pname
  • new pname[ MAX_PLAYER_NAME ]; Declaramos que a variavel "pname" ira ter todo o nome do player ewich will hold the name of a player. A variavel armazena no maximo 24 carateres ("MAX_PLAYER_NAME") que e o tamanho maximo do nome que um player podera ter no SA-MP.
Nota

Em vez de:

pawn Code:
new string[ 128 ]; new pname[ MAX_PLAYER_NAME ];
Pode fazer assim:
pawn Code:
new string[ 128 ], pname[ MAX_PLAYER_NAME ];
so fiz daquela forma para ser mais facil explicar.

Sistema Help

  • pawn Code:
    if( help ) return SendClientMessage(playerid, -1, "Este e um comando de admin RCON");
    Se o player quiser saber mais sobre o comando ( /ajudacomando adm).
Isnull
  • pawn Code:
    if( isnull( params ) ) return SendClientMessage(playerid, -1, "Erro: /adm [texto]");
    Se o parametro estiver vazio (null) ou seja o player so escreveu "/adm" ira receber (return) a mensagem sobre como usar o comando.
Arrays
  • Uma array e uma variavel em que tu podes armazenar informaçao e aceder-lhe dinamicamente, exemplo:
    MAX_PLAYER_NAME
Obtendo o nome do player
  • GetPlayerName( playerid, pname, sizeof( pname ) ); 
    O script ira obter o nome do player que executou o comando ( "sizeof( pname )" ) e colocar-lo em uma array na variavel chamada"pname" com o tamanho maximo de MAX_PLAYER_NAME (24) caracteres.
Format
  • pawn Code:
    format( string, sizeof( string ),"(RCON) %s: %s", pname, params);
    Nos formatamos a nossa mensagem, e ira armazemar-la na variavel "string", e "sizeof( string )" ira obter o tamanho maximo dastring, neste caso declaramos 128.
Placeholders
  • "%s" insere a string. O primeiro "%s" e um placeholder para o nome do player e o segundo para o texto que ele escrever. (/adm [Texto])
SendClientMessageToAll
  • SendClientMessageToAll(-1, string); Isto ira mandar o texto que ele escreveu para todos os players online.

Examplo de uso

  • O adm rcon PT escreve "/adm testando"

resultado:

Code:
(RCON) PT: testando
Placeholders 

Code:
% b Insere um número nesta posição em base binária
% c Insere um único caracter.
% d Insere um (inteiro) número inteiro
% f Insere um número de ponto flutuante (float).
% i Insere um número inteiro.
% s Insere uma string. (usamos este a pouco)
% x Insere um número em notação hexadecimal.
%% Insere o caracter '%'

Criando comandos com sscanf

  • Vamos comecar com o simples "/vida" command.

pawn Code:
YCMD:vida(playerid, params[], help) {     new ID;     if( help ) return SendClientMessage(playerid, -1, "Este comando dara vida a 1 player!");     if( sscanf( params, "u", ID ) ) return SendClientMessage(playerid, -1, "Uso: /vida [PlayerName / ID]");     if( PlayerID == INVALID_PLAYER_ID ) return SendClientMessage(playerid, -1, "[ERRO] Este playes esta OFFLINE");     SetPlayerHealth(ID, 100);     return 1; }

Declarando

  • new ID; e a variavel que declara o id do player que vamos dar vida.

Sistema help

  • pawn Code:
    if( help ) return SendClientMessage(playerid, -1, "Este comando dara vida a 1 player!");
    Como sempre se o paramentro "help" for usado, ira mostrar a mensagem que escrevemos ou seja a descricao do comando.

Sscanf

  • pawn Code:
    if( sscanf( params, "d", ID ) ) return SendClientMessage(playerid, -1, "Erro: /vida [ID]");
    Usamos o parametro, "d" para especificar que e um numero ou seja o id do player, a sscanf ira verificar se colocarmos de formaincorreta os parametros do comando, que neste caso deveriam ser por exemplo: /vida 0 se nao colocar assim obtera a mensagem de erro

INVALID_PLAYER_ID

  • pawn Code:
    if( ID == INVALID_PLAYER_ID ) return SendClientMessage(playerid, -1, "[ERRO] Este playes esta OFFLINE");
    Isto ira verificar se o ID que colocamos e um ID online no servidor, se nao for obtem a mensagem de erro.

SetPlayerHealth

  • SetPlayerHealth(ID, 100);
    Isto e para setar a vida do id a 100.

A formula da Sscanf no comando

  • A formula da sscanf e esta:
pawn Code:
if(sscanf( params, "Especificacoes", Nossas variaveis ) )  // Se o player introduziu os parametros incorretos {  // mensagem para avisar o player }

Especificacoes

Usamos-las conforme o fim que queremos obter

Code:
a - se for um caracter.
f - se for um número de ponto flutuante (float).
i ou d - se for um número inteiro.
s - se for uma string. 
x ou h - Insere um número em notação hexadecimal.
z - se for um texto opcional
px - se for um delimitador adicional, onde X em outro player.
'' - para localizar uma string ( texto ).
u - parte de um nome ou um id
Comandos

  • y_commands tem um sistema especial que deteta todos os comandos que tu tens no teu script assim não precisas andar sempre atualizar a tua lista de "/comandos".
    pawn Code:
    YCMD:comandos(playerid, params[], help) {     if ( help ) return SendClientMessage(playerid, -1, "Lista de todos os comandos.");     new count = Command_GetPlayerCommandCount( playerid );         for ( new i = 0; i != count; ++i) SendClientMessage( playerid, -1, Command_GetNext ( i, playerid ) );     return 1; }

Mensagem: UNKNOWN COMMAND

  • Quando um player escreve um comando que nao existe recebe a mensagem: "SERVER: Unknown Command." entao como alterar essa mensagem?
    Basta colocar a CallBack OnPlayerCommandPerformed e usar por exemplo assim:
    pawn Code:
    public OnPlayerCommandPerformed(playerid, cmdtext[], success) {     if( !success ) return false;     return true; }

Mas podemos colocar uma mensagem para ficar mais agradavel de ser ver, para isso usamos assim:


  • pawn Code:
    public OnPlayerCommandPerformed(playerid, cmdtext[], success) {     if( !success )     {         format( cmdtext, 128, " ERRO: O comando %s não existe veja em /comandos todos  ", cmdtext );         SendClientMessage( playerid, -1, cmdtext );             }     return true; }

Resultado final

  • Source:
    pawn Code:
    // This is a comment // uncomment the line below if you want to write a filterscript //#define FILTERSCRIPT #include <a_samp> #include <YSI\y_commands> #include <sscanf2> #if defined FILTERSCRIPT public OnFilterScriptInit() {     print("\n--------------------------------------");     print(" Blank Filterscript by your name here");     print("--------------------------------------\n");     return 1; } public OnFilterScriptExit() {     return 1; } #else main() {     print("\n----------------------------------");     print(" Blank Gamemode by your name here");     print("----------------------------------\n"); } #endif public OnGameModeInit() {     // Don't use these lines if it's a filterscript     SetGameModeText("Blank Script");     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);     Command_AddAltNamed("information", "info");     return 1; } public OnGameModeExit() {     return 1; } public OnPlayerRequestClass(playerid, classid) {     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);     return 1; } public OnPlayerConnect(playerid) {     return 1; } public OnPlayerDisconnect(playerid, reason) {     return 1; } public OnPlayerSpawn(playerid) {     return 1; } public OnPlayerDeath(playerid, killerid, reason) {     return 1; } public OnVehicleSpawn(vehicleid) {     return 1; } public OnVehicleDeath(vehicleid, killerid) {     return 1; } public OnPlayerText(playerid, text[]) {     return 1; } public OnPlayerCommandText(playerid, cmdtext[]) {     if (strcmp("/mycommand", cmdtext, true, 10) == 0)     {         // Do something here         return 1;     }     return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {     return 1; } public OnPlayerExitVehicle(playerid, vehicleid) {     return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) {     return 1; } public OnPlayerEnterCheckpoint(playerid) {     return 1; } public OnPlayerLeaveCheckpoint(playerid) {     return 1; } public OnPlayerEnterRaceCheckpoint(playerid) {     return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) {     return 1; } public OnRconCommand(cmd[]) {     return 1; } public OnPlayerRequestSpawn(playerid) {     return 1; } public OnObjectMoved(objectid) {     return 1; } public OnPlayerObjectMoved(playerid, objectid) {     return 1; } public OnPlayerPickUpPickup(playerid, pickupid) {     return 1; } public OnVehicleMod(playerid, vehicleid, componentid) {     return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) {     return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) {     return 1; } public OnPlayerSelectedMenuRow(playerid, row) {     return 1; } public OnPlayerExitedMenu(playerid) {     return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) {     return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {     return 1; } public OnRconLoginAttempt(ip[], password[], success) {     return 1; } public OnPlayerUpdate(playerid) {     return 1; } public OnPlayerStreamIn(playerid, forplayerid) {     return 1; } public OnPlayerStreamOut(playerid, forplayerid) {     return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) {     return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) {     return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {     return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) {     return 1; } public OnPlayerCommandPerformed(playerid, cmdtext[], success) {     if( !success )     {         format( cmdtext, 128, " ERRO: O comando %s não existe veja em /comandos todos os comandos disponiveis ", cmdtext );         SendClientMessage( playerid, -1, cmdtext );             }     return true; } /*                                          COMANDOS                                            */ YCMD:ajudacomando(playerid, params[], help) {     if (isnull(params)) return SendClientMessage(playerid, -1, "uso: /ajudacomando [comando]");     Command_ReProcess(playerid, params, true);     // isto ira ler o parametro 'help' do comando que colocarmos     return 1; } YCMD:comandos(playerid, params[], help) {     if ( help ) return SendClientMessage(playerid, -1, "Lista de todos os comandos.");     new count = Command_GetPlayerCommandCount( playerid );         for ( new i = 0; i != count; ++i) SendClientMessage( playerid, -1, Command_GetNext ( i, playerid ) );     return 1; } YCMD:ola(playerid, params[], help) {     #pragma unused params, help     SendClientMessage(playerid, -1, "PT o comando funciona!");     return 1; } YCMD:testando(playerid, params[], help) {     if (help) return SendClientMessage(playerid, -1, "comando lindo.");     SendClientMessage(playerid, -1, "funciona");     return 1; } YCMD:testando2(playerid, params[], help) {     if (help) return SendClientMessage(playerid, -1, "comando feio.");     SendClientMessage(playerid, -1, "funciona2");     return 1; } YCMD:vida(playerid, params[], help) {     new ID;     if( help ) return SendClientMessage(playerid, -1, "Este comando dara vida a 1 player!");     if( sscanf( params, "u", ID ) ) return SendClientMessage(playerid, -1, "Uso: /vida [PlayerName / ID]");     if( PlayerID == INVALID_PLAYER_ID ) return SendClientMessage(playerid, -1, "[ERRO] Este playes esta OFFLINE");     SetPlayerHealth(ID, 100);     return 1; } YCMD:adm(playerid, params[], help) {     new string[ 128 ];     new pname[ MAX_PLAYER_NAME ];         if( !IsPlayerAdmin(playerid) ) return SendClientMessage(playerid, -1, "Este comando nao podes usar");     if( help ) return SendClientMessage(playerid, -1, "Este e um comando de admin RCON");     if( isnull( params ) ) return SendClientMessage(playerid, -1, "Erro: /adm [texto]");     GetPlayerName( playerid, pname, sizeof( pname ) );     format( string, sizeof( string ),"(RCON) %s: %s", pname, params);     SendClientMessageToAll(-1, string);     return 1; }

  • Se eu me esqueçi de algo ou me expliquei mal em algo, por favor digam. Tentei o meu melhor para explicar direito para vos.

Creditos

  • Y_Less - pelo processador de comandos e pela sscanf
    SA:MP Wiki - pelas referencias
    PT e SmiT - Pelo tutorial
Leia Mais

Criando mensagem de aviso ao entra no servidor

TUTORIAL MENSAGEM AO CONECTAR

PRIMEIRO TUTORIAL QUE FAÇO


[FICARA ASSIM


Primeiro vamos crair uma
PHP Code:
#define LARANJA 0xFF8204FF//TOPO DO GAME MODE  
Crie uma uma public caso nao tenha

Dentro da
PHP Code:
public OnPlayerConnect(playerid)  
bote o codigo que esta em baixo

PHP Code:
new string[150], pName[MAX_PLAYER_NAME];
    
GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
    
format(string,sizeof string,"[INFO] - o jogador %s  Entrou no servidor para tocar o terror ",pName);
    
SendClientMessageToAll(LARANJA,string);  
Caso não entenda faça isso

PHP Code:
public OnPlayerConnect(playerid)
{

new 
string[150], pName[MAX_PLAYER_NAME];
    
GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
    
format(string,sizeof string,"[INFO] - o jogador %s  Entrou no servidor para tocar o terror ",pName);
    
SendClientMessageToAll(LARANJA,string);
    return 
1;
}  
Leia Mais

Aprendendo o Básico Do SA-MP e Do Pawn [Nivel: Iniciante]

Tutorial: Aprendendo o Básico Do SA-MP e Do Pawn [Nivel: Iniciante]

Olá Galera Do Samp Forum,

Primeiramente venho informar a vocês que esse e meu primeiro post aqui no Samp Forum,
mais eu não sou novo na linguagem pawn, e nem no SA-MP, bom então vamos lá :

Aprendendo o Basico Do SA-MP,

O que é SA-MP :

San Andreas Multi Player, É um aplicativo que permite você jogar online o seu GTA San Andreas.

Quais são os controles adicionais no SA-MP?

Bom, tem os do GTA offline e esses :

pawn Code:
Tab // Ver os players online no momento, seus IDs e seus pings. H // Te permite atirar como passageiro(Somente com armas tipo SMG). F4 // Permite que o jogador troque de personagem(após morrer). F7 // Mostra e esconde a janela de chat(Remove também o HUD). F6 // Uma outra alternativa para enviar texto e comandos. G // Te permite entrar em um veiculo como passageiro. T // Permite ao jogador que envie comandos ou texto. Shift // Seleciona um personagem na tela de seleção. F5 // Mostra o estado da conexão (ex: uso de banda). F9 // Mostra e esconde a janela de mortes. F1 // Mostra o menu de ajuda no jogo. Esc // Exibe ou esconde o jogo. F8 // Tira uma screenshot. F10 // Esconde o HUD.

Qual é a diferença das versões do SA-MP :

procura trazer mais funcionalidades para os players, Ex: Atualizar, remover bugs, e outras mudanças

O que acontece se eu for banido de um servidor :

Você não poderá mais logar com sua conta e o IP de sua internet também é banido.

Comandos do SA-MP :

pawn Code:
/rcon Remote // Controle do seu Servidor (Administrador). /headmove // move a cabeça ou faz ela parar de se mover. /rs // Salva a sua posição em formato de cordenada. /quit // Fecha o jogo, você pode digitar também /q. /pagesize // Aumenta ou diminui o tamanho do chat. /save // Salvar a coordenada em AddPlayerClass. /interior // Mostra o número do seu interior. /dll // Monstra as informações dos carros. /timestamp // mostra a hora No Chat. /fpslimit // Limite do seu FPS. /mem // Mostra sua memoria. /inacc // edit sync. /ofc // edit sync.

Comandos da rcon :

pawn Code:
/rcon login [Senha] // Loga na rcon, para poder acessar os comandos dela. /rcon players // Mostra todos os usuarios do servidor, nick, ip e ping. /rcon reloadbans // Recarrega todos os banimentos do arquivo samp.ban. /rcon say // Manda uma mensagem com nota destacada de administrador. /rcon gravity [Gravidade] // Muda o sistema de gravidade. /rcon reloadlog // Recarrega o arquivo server_log.txt. /rcon echo [texto] // Aparece uma mensagem destacada. /rcon weather [ID] // Muda a configuração da agua. /rcon kick [ID] // Kicka o usuário pela ID. /rcon changemode [mode] // Muda o gamemode. /rcon unbanip [IP] // Desbane direto um ip. /rcon varlist // Lista todas as variaveis. /rcon cmdlist // Lista todos comandos. /rcon ban [ID] // Bane o usuario pela ID. /rcon banip [IP] // Bane direto um ip. /rcon gmx // Reinicia o servidor. /rcon exit // Fecha o servidor.

Obs: Rcon é os comandos de controle de seu servidor.

Extras :

pawn Code:
ID // e o ID do Jogador, Cada jogador tem um id diferente para mais facilidade de achar. PING // Ping é o número que simboliza como está sua conexão da internet.

Aprendendo o Basico Da Linguagem Pawn,

algumas funções básicas :

pawn Code:
SetPlayerDrunkLevel // Seta o nivel de "Dorgas" do jogador, fazendo ele andar mais desrreguladamente, ou a tela começar a rodar. SendClientMessageToAll // A Mesma Função do SendClientMessage, só que manda para todos os usuarios ON. ForceClassSelection // Força o jogador a voltar pra tela de seleção de Skins. GetObjectPos // Seta a Posição do Objeto(Ela precisa ja estar criado). GameTextForPlayer // Uma função parecida com o SendClientMessage. SetPlayerInterior // Seta o Interior do Player ( 0 para Exterior). SetPlayerWantedLevel // Seta Estrelas de Procurado do Player. GameTextForAll // Como o Game Text, só que para todos Online. SetPlayerCheckpoint // Pôe um checkpoint no Jogador definido. SendClientMessage // Manda uma Mensagem do Server ao Player. SetPlayerSpecialAction // Seta uma ação pra Skin do Player. RemovePlayerFromVehicle // Remove o jogador do Veiculo. ResetPlayerWeapons // Tira todas as armas do jogador. PlayerPlaySound // Faz a Skin do Jogador falar algo. SetPlayerColor // Seta a cor do Nick do jogador. GivePlayerWeapon // Adiciona Armas ao Jogador. GivePlayerMoney // Muda o DInheiro do Jogador. ApplyAnimation // Aplica Animação ao jogador. SetPlayerArmour // Seta o colete do Jogador. SetVehiclePos // Seta a posição do Veiculo. Ban(playerid) // BAN o Player Selecionado. SetTimer // Seta uma quantidade de tempo. SetPlayerPos // Seta a posição do player. SetPlayerSkin // Seta a Skin do Jogador. GetPlayerName // Pega o nome do jogador. SetPlayerName // Muda o nome do jogador. GetPlayerHealth // Pega a HP do Usuario. SetPlayerHealth // Seta a HP do Player. SetVehicleHealth // Seta HP do Veiculo. Kick(playerid) // Kicka o jogador. CreateObject // Cria um Objeto.

Algumas publics básicas :

pawn Code:
public OnGameModeInit() {     // Função.     return true; }

Explicando : chamado quando um modo de jogo começa.

pawn Code:
public OnGameModeExit() {     // Função.     return true; }

Explicando : chamado quando um modo de jogo termina.


pawn Code:
public OnPlayerRequestClass(playerid, classid) {     // Função.     return true; }

Explicando : chamado quando um jogador muda de classe na seleção de classe.

pawn Code:
public OnPlayerConnect(playerid) {     // Função.     return true; }

Explicando : chamado quando um jogador entra no servidor.


pawn Code:
public OnPlayerSpawn(playerid) {     // Função.     return true; }

Explicando : chamado quando um jogador spawna no servidor.


pawn Code:
public OnPlayerDisconnect(playerid) {     // Função.     return true; }

Explicando : chamado quando um jogador sai do servidor.


pawn Code:
public OnPlayerCommandText(playerid, cmdtext[]) {     return false; }

Ex de uso :

pawn Code:
public OnPlayerCommandText(playerid, cmdtext[]) {     if(strcmp(cmdtext, "/seucomando", true) == 0)     {         //Função         return true;     }     return false; }

Explicando : chamado quando um jogador digita um comando no servidor.

pawn Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {     // Função.     return true; }

Explicando : chamado quando um jogador responde a um diálogo.

Tipos de diálogos :

DIALOG_STYLE_MSGBOX,

pawn Code:
// Define o ID do dialog #define DIALOG_RULES 1 // Em algum comando ShowPlayerDialog(playerid, DIALOG_RULES, DIALOG_STYLE_MSGBOX, "Regras", "- Sem cheater\n- Sem spam\n- Respeite os administradores\n\nVocê concorda com esta regras?", "Sim", "Não"); public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {     if(dialogid == DIALOG_RULES)     {         if(response) // Se clicou no botão 'Sim' ou apertou enter         {             SendClientMessage(playerid, COLOR_GREEN, "Obrigado por concordar com as regras do servidor!");         }         else // Caso pressione ESC ou click no botão 'Não'         {             KickWithMessage(playerid, COLOR_RED, "Você precisa concordar com as regras para jogar aqui!");         }         return 1; /     }     return 0; // Você precisa retornar 0 aqui! Assim como OnPlayerCommandText. } [FONT="Impact"][COLOR="Blue"]D[/COLOR]IALOG_STYLE_INPUT/DIALOG_STYLE_PASSWORD,[/FONT] #define DIALOG_LOGIN 2 // Em algum comando ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Por favor, insira sua senha:", "Login", "Cancelar"); public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {     if(dialogid == DIALOG_LOGIN)     {         if(!response) // Se pressionou ESC ou click no botão 'Cancelar'         {             KickWithMessage(playerid, COLOR_RED, "Você precisa se logar para jogar!");         }         else // Se clicou no botão 'Login' ou apertou enter         {             if(CheckPassword(playerid, inputtext)) // Função imaginaria para comparar a senha, se esta correta ou não.             {                 SendClientMessage(playerid, COLOR_RED, "Você esta logado!");             }             else             {                 SendClientMessage(playerid, COLOR_RED, "Falha no Login!");                 // Re-mostra o dialog de Login                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Por favor, insira sua senha:", "Login", "Cancelar");             }         }         return 1; // Lidamos com um dialog, então retornamos 1. Assim como OnPlayerCommandText.     }     return 0; // Você precisa retornar 0 aqui! Assim como OnPlayerCommandText. }

DIALOG_STYLE_LIST,

pawn Code:
#define DIALOG_WEAPONS 3 // Em algum comando ShowPlayerDialog(playerid, DIALOG_WEAPONS, DIALOG_STYLE_LIST, "Armas", "Desert Eagle\nAK-47\nCombat Shotgun", "Selecionar", "Fechar"); public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {     if(dialogid == DIALOG_WEAPONS)     {         if(response) // Se clicou no botão 'Selecionar' ou apertou enter         {             // Dê a arma             if(listitem == 0) // Caso selecione o primeiro item - Desert Eagle             {                 GivePlayerWeapon(playerid, WEAPON_DEAGLE, 14);             }             if(listitem == 1) // Caso selecione o segundo item - AK-47             {                 GivePlayerWeapon(playerid, WEAPON_AK47, 120);             }             if(listitem == 2) // Caso selecione o terceiro item - Combat Shotgun             {                 GivePlayerWeapon(playerid, WEAPON_SHOTGSPA, 28);             }         }         return 1; // Lidamos com um dialog, então retornamos 1. Assim como OnPlayerCommandText.     }     return 0; // Você precisa retornar 0 aqui! Assim como OnPlayerCommandText. }

Função KickWithMessage,

pawn Code:
forward KickPublic(playerid); public KickPublic(playerid) {     Kick(playerid);     return true; } stock KickWithMessage(playerid, color, message[]) {     SendClientMessage(playerid, color, message);     SetTimerEx("KickPublic", 1000, 0, "d", playerid); }

Agradecimentos :

Crazy Games.

Samp Forum.

Creditos :

Wiki SA-MP - Algumas Base.

iTroll - Geral.

Obrigado a Todos Voces, Ate Mais.
Leia Mais