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

22 de fev. de 2014.
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.

0 comentários:

Postar um comentário