[Tutorial] Início para começar a codar!
+2
Halex #[CFC]
Jonnie_Duarte
6 participantes
Página 1 de 1
[Tutorial] Início para começar a codar!
new a //variável Declare "a" vazio
new b=5 //Declare variável "b" e configurá-lo para 5.
new c=5.0 //Este é inválido, tecnicamente não é um número inteiro!
new d="hello" //"hello" não é um número qualquer, este é inválido.
//Você pode também declarar múltiplas variáveis em uma linha:
new e,f,g,h
new x=7, y=3
new z = 1_000_000 // Pawn suporta números como este. Assim, valores grandes são mais fáceis de ler.
Floats
Você também pode declarar uma variável como "Float", o que significa que podem armazenar números com casas decimais. Estes são chamados de "floating point" números:
new Float:a //Declara "a" uma variável floating point vazia.
new Float:b=5.3 //Isso irá declarar uma nova variável "b" e atribuir 5,3 para ele.
new Float:c=5 //Isto é válido, mas o compilador vai lhe dar um aviso.
new Float:d="hello" //Este é inválido, "Olá" não é um número decimal.
Você também pode fazer o seguinte:
//Float (n) é uma função que recebe um número n e faz dele um
//número de floating point.
new Float:var = float(5)
new Float:var2 = 5.0
new Float:var3 = 1.0*5
new var4 = floatround(5.0)
//Nota: floatround(n) é uma função que recebe um número e ele n rodadas de um número total.
//isso faz com que a atribuição a uma variável inteira regular válido.
Matrizes
Pawn tem como características básicas "matrizes". Uma matriz é um tipo simples de dados agregados. Isto significa que você pode armazenar múltiplos valores em uma variável! Uma matriz segue as mesmas regras como uma variável normal, e tem os mesmos tipos de valores. A matriz simplesmente pode conter vários valores. Você define uma matriz com parênteses, e quantos valores ela pode conter. Por exemplo:
//Isso irá declarar uma variável chamada "Players" que tem 32 números.
new Players[32]
//Agora você pode armazenar valores em qualquer uma das 32 "slots" que esta matriz tem.
//Os slots são numerados de 0 a (n-1), ou neste caso, 0-31.
//Cada slot começa por 0.
//Set slot 0 to 5(Ou seja, coloca o slot 0 para 5).
Players[0] = 5
//Define um numero para o que está no slot 0, neste caso, o número 5
Players[1] = Players[0]
//Este é inválido!
//Apesar de existirem 32 slots, são numeradas de 0 a 31.
//Isso resulta em AMX Native Error 4 - AMX_ERR_BOUNDS
//ou, ele simplesmente não irá compilar!
Players[32] = 15
//Este é também totalmente inválido
Players[-1] = 6
new a = 3
//Este também é totalmente inválido.
//deve ser um número constante.
new BadArray[a]
//Então, isto é valido:
const b = 3
new GoodArray
#define ARRAY_SIZE 3
new Array[ARRAY_SIZE]
As matrizes também podem ser declaradas com grupos de padrão de dados, tais como:
new Numbers[4] = {0,1,2,3}
//Nota: é importante que você tenha certeza da quantidade de números
//Para você não passar o tamanho do jogo de matriz
Você também pode usar qualquer tipo de dados com matrizes:
//Matriz de pontos flutuantes(floating points):
new Float:Numbers[4] = {0.0, 1.2, 2.4, 3.8}
//matriz de booleanos. Note que esta define para cada slot de verdade.
new bool:playerHasGun[33] = {true, ...}
Strings
Você já deve ter notado que um tipo de dado importante está faltando - caracteres (letras e símbolos). Estas são chamadas de "Strings", e em Pawn, eles são tecnicamente números! Uma string é uma matriz de números que traduzem a ASCII (caractere) símbolos. Por exemplo:
//Isso irá declarar um número de série "myString" que contém os dados "Hello".
//Ela terá seis faixas, porque há 5 caracteres.
//O último espaço é reservado para o número 0, que informa ao mecanismo Pawn que é uma string.
new myString[] = "Hello"
Nota: qualquer coisa entre / * e * / é também um comentário. Você não pode usar / * * / dentro de um * /. O seguinte conjunto de comandos alcança a mesma finalidade, porém, é longo e não é recomendado. Isto funciona porque cada caractere da string "Olá" é armazenado em um slot na matriz.
new myString[6]
myString[0] = 'H'
myString[1] = 'e'
myString[2] = 'l'
myString[3] = 'l'
myString[4] = 'o'
myString[5] = 0
Nota: Arrays que se destinam a ser seqüências devem terminar em 0, ou em caractere nulo. Esta é para você saber onde a string termina.
Você não pode fazer isto! Embora possa compilar, é altamente perigoso, pois pode causar erros de estouro:
new myString[6]
myString = "Hello" //inválido!
myString[0] = "Hello" //inválido!
//Para adicionar dados a uma corda, você pode fazer isso:
new goodString[7]
copy(goodString, 6, "Hello")
Note que copiamos 6 células da matriz em uma matriz que pode conter 7. Se fôssemos para copiar 7 bytes para esta matriz, copy () poderia copiar um byte extra para o personagem nulo, transbordando a matriz. Isso é chamado de "buffer overflow" e deve ser cuidadosamente evitada.
Mais exemplos:
//Copy é uma função que recebe três parâmetros:
copy(destination[], length, source[])
//Copia a string dentro da matriz de origem e os locais
//que na matriz de destino, mas apenas cópias até caracteres comprimento.
//Por fim, para provar que é realmente uma seqüência de uma série de números, isto é totalmente válido:
new weird[6]
weird[0] = 68
weird[1] = 65
weird[2] = 73
weird[3] = 86
weird[4] = 68
weird[5] = 0
//Isto irá definir a variável de "weird" para a seqüência de "David".
//Para ver como letras e símbolos traduzem em números, visite www.asctiitable.com.
A quem quer que eu continue com a postagem do Tutorial, responda o tópico.
Obs: Isso é a base de pawn, se quiserem codar para samp, estudem GMs.
new b=5 //Declare variável "b" e configurá-lo para 5.
new c=5.0 //Este é inválido, tecnicamente não é um número inteiro!
new d="hello" //"hello" não é um número qualquer, este é inválido.
//Você pode também declarar múltiplas variáveis em uma linha:
new e,f,g,h
new x=7, y=3
new z = 1_000_000 // Pawn suporta números como este. Assim, valores grandes são mais fáceis de ler.
Floats
Você também pode declarar uma variável como "Float", o que significa que podem armazenar números com casas decimais. Estes são chamados de "floating point" números:
new Float:a //Declara "a" uma variável floating point vazia.
new Float:b=5.3 //Isso irá declarar uma nova variável "b" e atribuir 5,3 para ele.
new Float:c=5 //Isto é válido, mas o compilador vai lhe dar um aviso.
new Float:d="hello" //Este é inválido, "Olá" não é um número decimal.
Você também pode fazer o seguinte:
//Float (n) é uma função que recebe um número n e faz dele um
//número de floating point.
new Float:var = float(5)
new Float:var2 = 5.0
new Float:var3 = 1.0*5
new var4 = floatround(5.0)
//Nota: floatround(n) é uma função que recebe um número e ele n rodadas de um número total.
//isso faz com que a atribuição a uma variável inteira regular válido.
Matrizes
Pawn tem como características básicas "matrizes". Uma matriz é um tipo simples de dados agregados. Isto significa que você pode armazenar múltiplos valores em uma variável! Uma matriz segue as mesmas regras como uma variável normal, e tem os mesmos tipos de valores. A matriz simplesmente pode conter vários valores. Você define uma matriz com parênteses, e quantos valores ela pode conter. Por exemplo:
//Isso irá declarar uma variável chamada "Players" que tem 32 números.
new Players[32]
//Agora você pode armazenar valores em qualquer uma das 32 "slots" que esta matriz tem.
//Os slots são numerados de 0 a (n-1), ou neste caso, 0-31.
//Cada slot começa por 0.
//Set slot 0 to 5(Ou seja, coloca o slot 0 para 5).
Players[0] = 5
//Define um numero para o que está no slot 0, neste caso, o número 5
Players[1] = Players[0]
//Este é inválido!
//Apesar de existirem 32 slots, são numeradas de 0 a 31.
//Isso resulta em AMX Native Error 4 - AMX_ERR_BOUNDS
//ou, ele simplesmente não irá compilar!
Players[32] = 15
//Este é também totalmente inválido
Players[-1] = 6
new a = 3
//Este também é totalmente inválido.
//deve ser um número constante.
new BadArray[a]
//Então, isto é valido:
const b = 3
new GoodArray
#define ARRAY_SIZE 3
new Array[ARRAY_SIZE]
As matrizes também podem ser declaradas com grupos de padrão de dados, tais como:
new Numbers[4] = {0,1,2,3}
//Nota: é importante que você tenha certeza da quantidade de números
//Para você não passar o tamanho do jogo de matriz
Você também pode usar qualquer tipo de dados com matrizes:
//Matriz de pontos flutuantes(floating points):
new Float:Numbers[4] = {0.0, 1.2, 2.4, 3.8}
//matriz de booleanos. Note que esta define para cada slot de verdade.
new bool:playerHasGun[33] = {true, ...}
Strings
Você já deve ter notado que um tipo de dado importante está faltando - caracteres (letras e símbolos). Estas são chamadas de "Strings", e em Pawn, eles são tecnicamente números! Uma string é uma matriz de números que traduzem a ASCII (caractere) símbolos. Por exemplo:
//Isso irá declarar um número de série "myString" que contém os dados "Hello".
//Ela terá seis faixas, porque há 5 caracteres.
//O último espaço é reservado para o número 0, que informa ao mecanismo Pawn que é uma string.
new myString[] = "Hello"
Nota: qualquer coisa entre / * e * / é também um comentário. Você não pode usar / * * / dentro de um * /. O seguinte conjunto de comandos alcança a mesma finalidade, porém, é longo e não é recomendado. Isto funciona porque cada caractere da string "Olá" é armazenado em um slot na matriz.
new myString[6]
myString[0] = 'H'
myString[1] = 'e'
myString[2] = 'l'
myString[3] = 'l'
myString[4] = 'o'
myString[5] = 0
Nota: Arrays que se destinam a ser seqüências devem terminar em 0, ou em caractere nulo. Esta é para você saber onde a string termina.
Você não pode fazer isto! Embora possa compilar, é altamente perigoso, pois pode causar erros de estouro:
new myString[6]
myString = "Hello" //inválido!
myString[0] = "Hello" //inválido!
//Para adicionar dados a uma corda, você pode fazer isso:
new goodString[7]
copy(goodString, 6, "Hello")
Note que copiamos 6 células da matriz em uma matriz que pode conter 7. Se fôssemos para copiar 7 bytes para esta matriz, copy () poderia copiar um byte extra para o personagem nulo, transbordando a matriz. Isso é chamado de "buffer overflow" e deve ser cuidadosamente evitada.
Mais exemplos:
//Copy é uma função que recebe três parâmetros:
copy(destination[], length, source[])
//Copia a string dentro da matriz de origem e os locais
//que na matriz de destino, mas apenas cópias até caracteres comprimento.
//Por fim, para provar que é realmente uma seqüência de uma série de números, isto é totalmente válido:
new weird[6]
weird[0] = 68
weird[1] = 65
weird[2] = 73
weird[3] = 86
weird[4] = 68
weird[5] = 0
//Isto irá definir a variável de "weird" para a seqüência de "David".
//Para ver como letras e símbolos traduzem em números, visite www.asctiitable.com.
A quem quer que eu continue com a postagem do Tutorial, responda o tópico.
Obs: Isso é a base de pawn, se quiserem codar para samp, estudem GMs.
Última edição por Davy em Sáb maio 07, 2011 8:37 pm, editado 3 vez(es)
Jonnie_Duarte- Tommy Vercetti
- Premiação : : 0 : 0 : 0
Nick no BNL : Jonnie_Duarte
Telefone no BNL : 3033
Nível : 28
Profissão :
Mensagens : 505
Reputação : 16
Idade : 27
Tolerância :
Permanente :
Status :
Re: [Tutorial] Início para começar a codar!
'Sky Pausini # escreveu:Num entendi nada q ta escrito ai :s
Leia o tutorial e a explicação que está do lado de cada código que você irá entender.
Jonnie_Duarte- Tommy Vercetti
- Premiação : : 0 : 0 : 0
Nick no BNL : Jonnie_Duarte
Telefone no BNL : 3033
Nível : 28
Profissão :
Mensagens : 505
Reputação : 16
Idade : 27
Tolerância :
Permanente :
Status :
Re: [Tutorial] Início para começar a codar!
Eu tinha um GM de gangs, GZ's e tudo mais, mais resolvi fazer coisa que são sabia, deu um monster bug quando compilei que nunca mais consegue corrigir, ai joguei fora
Halex #[CFC]- Carl Johnson
- Premiação : : 0 : 1 : 0
Nick no BNL : Halex_Rohdden
Telefone no BNL : 1818
Nível : 24
Mensagens : 3556
Reputação : 52
Idade : 29
Tolerância :
Permanente :
Status :
Re: [Tutorial] Início para começar a codar!
um novato não consegu ler esse script muito menos tentar editar axo meio dificil. ._.
Dener Marx- Sonny Forelli
- Premiação : : 2 : 0 : 0
Nick no BNL : Dener Marxalandro
Telefone no BNL : 2424
Nível : 25
Profissão :
Mensagens : 281
Reputação : 3
Idade : 29
Tolerância :
Permanente :
Status :
Re: [Tutorial] Início para começar a codar!
Esse tutorial é uma explicação de códigos.. ele explica para que serve cada um dos comandos utilizado na codificação Pawn.
Ex: New a //Define que a variavel "a" não contém nada!.
Explicando variavel: Variáveis
Variáveis são as funções que vão definir o que vai acontecer se esta variável tiver um certo valor. Ex: Se o jogador fulano tiver a profissão número 12, ele vai explodir, etc... E strings são funções que geralmente são criadas para mandar mensagens que tenham variáveis, Ex.: Você está jogando e vai no banco para ver seu saldo. Então aparece a mensagem: "Seu saldo bancário: 504031904913". Sendo que 504031904913 é uma variável que define a quantia que você tem no banco.
Ex: New a //Define que a variavel "a" não contém nada!.
Explicando variavel: Variáveis
Variáveis são as funções que vão definir o que vai acontecer se esta variável tiver um certo valor. Ex: Se o jogador fulano tiver a profissão número 12, ele vai explodir, etc... E strings são funções que geralmente são criadas para mandar mensagens que tenham variáveis, Ex.: Você está jogando e vai no banco para ver seu saldo. Então aparece a mensagem: "Seu saldo bancário: 504031904913". Sendo que 504031904913 é uma variável que define a quantia que você tem no banco.
Jonnie_Duarte- Tommy Vercetti
- Premiação : : 0 : 0 : 0
Nick no BNL : Jonnie_Duarte
Telefone no BNL : 3033
Nível : 28
Profissão :
Mensagens : 505
Reputação : 16
Idade : 27
Tolerância :
Permanente :
Status :
Re: [Tutorial] Início para começar a codar!
Pensei que era o Basico do Basico.
Tipo vou tentar explicar.
Tipo Antes de Fazer qualquer comando. Tenque fazer a Variavel.
Nas minhas palavras variavel é como se Fosse o Nome da Função que terá no GM.
Será o Nome dos Peixes que teria que Mudar Faz tempo no BNL por que ninguem pesca Bota ou carteira.
ex:
É so Seguir no Wink SA:MP.
Se quizer aprender LEGAL baixe um GM na Internet é vai vendo como funciona e tal.
Tipo vou tentar explicar.
Tipo Antes de Fazer qualquer comando. Tenque fazer a Variavel.
Nas minhas palavras variavel é como se Fosse o Nome da Função que terá no GM.
Será o Nome dos Peixes que teria que Mudar Faz tempo no BNL por que ninguem pesca Bota ou carteira.
ex:
- Código:
new FishNamesNumber = 2;
new FishNames[2][20] = {
{"Peixe espada"},
{"Snapper vermelho"},
};
É so Seguir no Wink SA:MP.
Se quizer aprender LEGAL baixe um GM na Internet é vai vendo como funciona e tal.
Convidad- Convidado
Re: [Tutorial] Início para começar a codar!
mano o caio falou tudo pow parada maluka arairairai
Convidad- Convidado
Re: [Tutorial] Início para começar a codar!
Que loco, eu estava até tentando aprender, mas é muito dificil D:
Eu queria aprender só algumas coisas básicas tipo botar mapas do MTA no GM e entrar para interior e pá. xP
Eu queria aprender só algumas coisas básicas tipo botar mapas do MTA no GM e entrar para interior e pá. xP
-- Elvis Aballus --- Eddie Pulaski
- Premiação : : 0 : 2 : 0
Nick no BNL : Elvis Aballus
Telefone no BNL : 6705
Nível : 20
Profissão :
Mensagens : 2148
Reputação : 24
Idade : 26
Tolerância :
Permanente :
Status :
Re: [Tutorial] Início para começar a codar!
Como eu disse no tópico, isso é a base de pawn, para aprender a codar para samp, tem que estudar GMs...
Sobre nosso amigo Elvis, isso que você falou é facil, pra você entender melhor busquei um tutorial na net de conversão .map para pawn.
E sobre criar interiores, também é fácil. Vou criar um tutorial em vídeo aqui em casa e depois eu posto aqui.
Sobre nosso amigo Elvis, isso que você falou é facil, pra você entender melhor busquei um tutorial na net de conversão .map para pawn.
E sobre criar interiores, também é fácil. Vou criar um tutorial em vídeo aqui em casa e depois eu posto aqui.
Jonnie_Duarte- Tommy Vercetti
- Premiação : : 0 : 0 : 0
Nick no BNL : Jonnie_Duarte
Telefone no BNL : 3033
Nível : 28
Profissão :
Mensagens : 505
Reputação : 16
Idade : 27
Tolerância :
Permanente :
Status :
Re: [Tutorial] Início para começar a codar!
Muito Bom Parabéns Espero que seja o mas novo coder do bnl.
Convidad- Convidado
Re: [Tutorial] Início para começar a codar!
Ta lokos Muitos Codigos Pra Minha Kbeça
Tenso
Tenso
Convidad- Convidado
Re: [Tutorial] Início para começar a codar!
Elvis, usa esse site para converter os objetos de .map para .pwn.
http://gtamap.delux-host.com/converter/
http://gtamap.delux-host.com/converter/
Halex #[CFC]- Carl Johnson
- Premiação : : 0 : 1 : 0
Nick no BNL : Halex_Rohdden
Telefone no BNL : 1818
Nível : 24
Mensagens : 3556
Reputação : 52
Idade : 29
Tolerância :
Permanente :
Status :
Re: [Tutorial] Início para começar a codar!
Eu tenho um GM LAC aqui eu fico treinando nele , so colocando comando nada mais , edito pelo bloco de notas man .
Convidad- Convidado
Re: [Tutorial] Início para começar a codar!
AOEHAIEOHAEIOAEHO , N levo jeito pra coda , a unica coisa que eu sei e fazer um cmd de teleporte e um moveobject
Convidad- Convidado
Re: [Tutorial] Início para começar a codar!
Fabio voce só sabe fazer espetinho D:
@Topic Po,sei até codar um poco, o Jimmy Mercer ele ta codando de mais,ele até tinha me ensinado qndo ele tava fazendo um GM pra ele.Me ensino um cado de coisas,só que e´mto facil pra bugar o GM e mto **PALAVRA PROIBIDA** pra Desbugar,um coder temq ter mta atenção se tu nao abrir nem feichar "{" isso ae na direção certa,buga o gm :X ai fica TENSO
@Topic Po,sei até codar um poco, o Jimmy Mercer ele ta codando de mais,ele até tinha me ensinado qndo ele tava fazendo um GM pra ele.Me ensino um cado de coisas,só que e´mto facil pra bugar o GM e mto **PALAVRA PROIBIDA** pra Desbugar,um coder temq ter mta atenção se tu nao abrir nem feichar "{" isso ae na direção certa,buga o gm :X ai fica TENSO
Pedro Aballus- Mike Toreno
- Premiação : : 2 : 3 : 0
Nick no BNL : DSTV -
Telefone no BNL : 0
Nível : 0
Profissão :
Mensagens : 1918
Reputação : 59
Tolerância :
Permanente :
Status :
Re: [Tutorial] Início para começar a codar!
Otimo tópico, e é bem basico do basico, é de empressionar que tem gente que não entenda, é muito facil, até eu (o maior noob do bnl) entendi, muito bem explicado.
quem ainda não entendeu vai fazer uma aula de programçao, ai sim entende.
Parabéns.
quem ainda não entendeu vai fazer uma aula de programçao, ai sim entende.
Parabéns.
Re: [Tutorial] Início para começar a codar!
Muito obrigado por reviver este topico!caiokill_lickcutter escreveu:Otimo tópico, e é bem basico do basico, é de empressionar que tem gente que não entenda, é muito facil, até eu (o maior noob do bnl) entendi, muito bem explicado.
quem ainda não entendeu vai fazer uma aula de programçao, ai sim entende.
Parabéns.
Convidad- Convidado
Re: [Tutorial] Início para começar a codar!
caiokill_lickcutter escreveu:Otimo tópico, e é bem basico do basico, é de empressionar que tem gente que não entenda, é muito facil, até eu (o maior noob do bnl) entendi, muito bem explicado.
quem ainda não entendeu vai fazer uma aula de programçao, ai sim entende.
Parabéns.
7- TÓPICOS ANTIGOS
¬ 'Reviver' um tópico que já esteja 'morto' a mais de 30 dias, para zuação ou avacalhar mesmo.
PUNIÇÃO: -30 WARNING.
https://brasil-nl.forumeiros.com/t2576-regra-novidades-forum?sid=170262466b6bbd4ef9df1acc8d863aa5
Halex #[CFC]- Carl Johnson
- Premiação : : 0 : 1 : 0
Nick no BNL : Halex_Rohdden
Telefone no BNL : 1818
Nível : 24
Mensagens : 3556
Reputação : 52
Idade : 29
Tolerância :
Permanente :
Status :
Tópicos semelhantes
» [Video] Como começar o ano na TV
» [Video] Umas das razões pra eu começar a jogar BNL
» Memes O inicio
» [Tutorial] Pequeno big Tutorial a respeito de Temas do TS
» Gta san andreas: O inicio trailer (filme)
» [Video] Umas das razões pra eu começar a jogar BNL
» Memes O inicio
» [Tutorial] Pequeno big Tutorial a respeito de Temas do TS
» Gta san andreas: O inicio trailer (filme)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos