Bom, sou Antonio Rodrigues mais conhecido como Toni Santolia..
Eu espero dar dicas básicas e ensinar a base de alguns sistemas para começar seu gamemode..
• Sinopse:
-- Dicas iniciais.
-- Enumeradores e Variáveis.
-- Macros.
-- Cálculos.
-- Rotações.
-- Comandos (ZCMD - SSCANF2).
• Dicas Iniciais:
Bom, o interessante para se montar um projeto é planejar bem o que vai ter no servidor.. Como por exemplo, sistema de registro, sistema de administrador dinâmico, sistema para defecar (vai que..) e etc..
Então o legal era fazer uma lista como esta:
De que será o servidor:
Sistemas iniciais:
Sistemas complexos:
Novidades:
Organização Administrativa:
e oque vier na sua cabeça
• Variáveis:
Bom, vamos começar falando sobre as variáveis..
Variáveis como o próprio nome já diz.. São símbolos simples que são criados para receber valores variados.
Exemplo:
Temos uma questão de matemática onde X = Y + 10 logo que Y = 10.. Como fazer para imprimir esses valores?
peão Код:Eu espero dar dicas básicas e ensinar a base de alguns sistemas para começar seu gamemode..
• Sinopse:
-- Dicas iniciais.
-- Enumeradores e Variáveis.
-- Macros.
-- Cálculos.
-- Rotações.
-- Comandos (ZCMD - SSCANF2).
• Dicas Iniciais:
Bom, o interessante para se montar um projeto é planejar bem o que vai ter no servidor.. Como por exemplo, sistema de registro, sistema de administrador dinâmico, sistema para defecar (vai que..) e etc..
Então o legal era fazer uma lista como esta:
De que será o servidor:
Sistemas iniciais:
Sistemas complexos:
Novidades:
Organização Administrativa:
e oque vier na sua cabeça
• Variáveis:
Bom, vamos começar falando sobre as variáveis..
Variáveis como o próprio nome já diz.. São símbolos simples que são criados para receber valores variados.
Exemplo:
Temos uma questão de matemática onde X = Y + 10 logo que Y = 10.. Como fazer para imprimir esses valores?
- Código:
X = Y + 10
Y = 10 ;
X = 10 + 10
X = 20
Simples.. nгo?
Já na linguagem peão as variáveis são concomitantes de uma new (função que cria a variável) e no final recebe ponto e virgula ( ; ) que faz o compilador entender que a linha terminou ali.
Exemplo:
peão Код:Já na linguagem peão as variáveis são concomitantes de uma new (função que cria a variável) e no final recebe ponto e virgula ( ; ) que faz o compilador entender que a linha terminou ali.
Exemplo:
- Código:
novo Toni_Gostoso;
Já para definir um valor nessa variável eu poderia ir em qualquer comando ou callback e fazer da seguinte forma:
peão Код:- Código:
public OnPlayerConnect ( playerid )
{
Toni_Gostoso = 1 ; // Logo a variável Toni_Gostoso irá receber o valor 1.
return true;
}
Ai você pergunta.. Mais iai tiu? Como fazer para definir esse valor para um jogador específico?
Para definir um valor para um jogador específico, você antes deve saber que cada jogador que entra em seu servidor recebe um ID ъnico para em quanto ele está conectado. Exemplo: 3 Jogadores entram no servidor na seguinte ordem.. João_Pedro , Clebinho_PauPreto e Ze_Bruno.
No servidor a ordem de ID seria:
João_Pedro ( 0 )
Clebinho_PauPreto ( 1 )
Ze_Bruno ( 2 )
Lembrando que a contagem se inicia de 0.. Exemplo: 0 1 2 3 4 5 6 7 8 9 [ ... ]
No SA: MP existe o MAX_PLAYERS não qual pode ser usado da seguinte forma:
peão Код:Para definir um valor para um jogador específico, você antes deve saber que cada jogador que entra em seu servidor recebe um ID ъnico para em quanto ele está conectado. Exemplo: 3 Jogadores entram no servidor na seguinte ordem.. João_Pedro , Clebinho_PauPreto e Ze_Bruno.
No servidor a ordem de ID seria:
João_Pedro ( 0 )
Clebinho_PauPreto ( 1 )
Ze_Bruno ( 2 )
Lembrando que a contagem se inicia de 0.. Exemplo: 0 1 2 3 4 5 6 7 8 9 [ ... ]
No SA: MP existe o MAX_PLAYERS não qual pode ser usado da seguinte forma:
- Código:
novo Toni_Gostoso [ MAX_PLAYERS ] ;
ai quando o jogador conecta-se ele irá receber no seu ID prуprio o valor 1.. Para isso teria que fazer da seguinte maneira:
peão Код:- Código:
public OnPlayerConnect ( playerid )
{
Toni_Gostoso [ playerid ] = 1 ;
retornar 1 ;
}
playerid é a função que irá getar o ID do player para que o valor da variável fique 1 para ele..
Bom, as variáveis são classificadas da seguinte forma:
Comum - Booleana - Float - String - Estética
Variavel Comum: A Variavel comum é como a que nуs vimos acima..
peão Код:Bom, as variáveis são classificadas da seguinte forma:
Comum - Booleana - Float - String - Estética
Variavel Comum: A Variavel comum é como a que nуs vimos acima..
- Código:
novo Toni_Gostoso [ MAX_PLAYERS ] ;
Não tem muito o que explicar..
Variável Booleana: Para entender mais sobre ela pode ler o tutorial não sou muito bom para explicar
Variavel Float: A Variavel do tipo Float é ideal para receber dados como coordenados.. Exemplo usando GetPlayerPos:
peão Код:Variável Booleana: Para entender mais sobre ela pode ler o tutorial não sou muito bom para explicar
Variavel Float: A Variavel do tipo Float é ideal para receber dados como coordenados.. Exemplo usando GetPlayerPos:
- Código:
new Float : PosicaoPlayerid [ 3 ] ;
GetPlayerPos ( playerid, PosicaoPlayerid [ 0 ] ,PosicaoPlayerid [ 1 ] , PosicaoPlayerid [ 2 ] ) ;
Variável String: Uma Variável do tipo string é ideal para armazenar qualquer tipo de texto.. Um Exemplo para formatar uma mensagem usando string, float e a função GetPlayerPos:
peão Код:- Código:
new
Float : PosicaoPlayerid [ 3 ] ,
String [ 128 ] ; // 128 é a quantidade de caracteres que pode ser usada no máximo na sua mensagem . format ( string, sizeof string, "Posição atual: %f.%f.%f" , PosiçãoPlayerid [ 0 ] , PosiçãoPlayerid [
1 ] , PosicaoPlayerid [ 2 ] ) ;
SendClientMessage ( playerid, 0xFFFFFF, string ) ;
Variável Estética: Não me aprofundei no assunto.. Então se alguém quiser colocar uma explicação deixe nos comentários
As Variáveis podem ser tanto Globais como Locais:
Variáveis Locais: Uma variável local sу pode ser usada em um único lugar, por exemplo:
peão Код:As Variáveis podem ser tanto Globais como Locais:
Variáveis Locais: Uma variável local sу pode ser usada em um único lugar, por exemplo:
- Código:
CMD : teste ( playerid ) {
novo teste;
if ( teste == 1 ) return SendClientMessage ( playerid, 0xFFFFFF00, "Está variável só pode ser usada dentro deste comando." ) ;
retornar verdadeiro;
}
Variaveis Globais: Elas podem ser usadas em qualquer parte do gamemode.. Exemplo:
peão Код:- Código:
// Topo do Script:
new VariavelGlobal;
CMD : teste ( playerid ) {
if ( VariavelGlobal == 1 ) return SendClientMessage ( playerid, 0xFFFFFF00, "Posso usar ela nesse comando" ) ;
retornar verdadeiro;
}
CMD : teste1 ( playerid ) {
if ( VariavelGlobal == 2 ) return SendClientMessage ( playerid, 0xFFFFFF00,"Posso usar ela nesse comando também." ) ;
retornar verdadeiro;
}
• Enumeradores:
Oque sгo?
Enumeradores em peão são uma forma de agrupar várias variáveis que vão ser utilizadas para a mesma função ou com o mesmo intuito.
Ai você me pergunta: Mas como assim?
Exemplo:
peão Код:Oque sгo?
Enumeradores em peão são uma forma de agrupar várias variáveis que vão ser utilizadas para a mesma função ou com o mesmo intuito.
Ai você me pergunta: Mas como assim?
Exemplo:
- Código:
nova variavel1 [ MAX_PLAYERS ] ;
nova variavel2 [ MAX_PLAYERS ] ;
você poderia usar:
peão Код:- Código:
enum GrupoVariaveis {
var1,
var2
} ;
novo VariavelGlobal [ MAX_PLAYERS ] [ GrupoVariaveis ] ;
Como chamar a var1 e a var2 que estão dentro do grupo?
Simples!
peão Код:Simples!
- Código:
VariavelGlobal [ id do jogador ] [ var1 ]
Variavel Global [ id do jogador ] [ var2 ]
Simples assim..
Enfim, os enumeradores são muito simples de se usar então não precisa de muita explicação..
Mas é sempre bom lembrar que os enumeradores tem que ser chamados através de enum nomedoenumerador
• Macros:
Macros são uma forma mais otimizada e mais rápida para certas funções..
Alem de ajudar a economizar linhas!
Uma mensagem usando o formato como esta:
peão Код:Enfim, os enumeradores são muito simples de se usar então não precisa de muita explicação..
Mas é sempre bom lembrar que os enumeradores tem que ser chamados através de enum nomedoenumerador
• Macros:
Macros são uma forma mais otimizada e mais rápida para certas funções..
Alem de ajudar a economizar linhas!
Uma mensagem usando o formato como esta:
- Código:
novo str [ 128 ] , snd [ MAX_PLAYER_NAME ] ;
GetPlayerName ( playerid, snd, sizeof snd ) ;
format ( str, sizeof str, "Meu nome é %s." ,snd ) ;
SendClientMessage ( playerid, 0xFFFFFF00, str ) ;
poderia ser:
peão Код:- Código:
//Topo do Gamemode:
#define MsgFormat(%0,%1,%2,%3) format(str, sizeof(str),%2,%3) && SendClientMessage(%0, %1, str)
new str [ 128 ] ;
//sem script:
new snd [ MAX_PLAYER_NAME ] ;
GetPlayerName ( playerid, snd, sizeof snd ) ;
MsgFormat ( playerid, 0xFFFFFF00, "Meu nome é %s" , snd ) ;
Você não compreendeu o macro?
Explicação:
peão Код:Explicação:
- Código:
[size=14][size=13]#define SendFormattedMsg(%0,%1,%2,%3) format(strt, sizeof(strt),%2,%3) && SendClientMessage(%0, %1, strt)[/size][/size]
[center][size=14]%0 equivale a playerid[/size]
[size=14]%1 equivale a cor[/size]
[size=14]%2 equivale ao texto[/size]
[size=14]%3 equivale a string.[/size][/center]
Sendo que, os itens %0,%1,%2 ... são os representantes dos parâmetros da função dentro da macro.
Logo entгo da para criar varias funзхes utilizando macros.
Por exemplo, crie uma função para redefinir o dinheiro do jogador e dar uma certa quantia?
- Código:
#define GivePlayerCash(%0,%1) ResetPlayerMoney(%0), GivePlayerMoney(%0,%1) // %0 playerid | %1 valor.
Exemplo de uso:
peão Код:- Código:
public OnPlayerSpawn ( playerid ) {
GivePlayerCash ( playerid, 350 ) ;
retornar verdadeiro;
}
Pronto!
Bom, por hoje é isso!
Ainda não completei o tutorial mais aos poucos esta se desenvolvendo
Então deixe suas dicas
Bom, por hoje é isso!
Ainda não completei o tutorial mais aos poucos esta se desenvolvendo
Então deixe suas dicas
Creditos: tonisantolia