SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 01/12/2012, 07:21 AM   #1
zSuYaNw
Godfather
 
zSuYaNw's Avatar
 
Join Date: Apr 2010
Location: Santa Catarina
Posts: 5,714
Reputation: 429
Default Oque você precisa saber sobre PAWN

Oque você precisa saber sobre PAWN






Introdução:
Bom, eu desenvolvi este tutorial com os erros mais comuns entre os novatos,
não apenas erros e sim dicas para quem quer começar a programar ou está
aprendendo mais que está encontrando muitas dificuldades.

Pois bem, quem começa na programação, não tem a mínima ideia do que é
objetos, variáveis, arrays, tabulação, conexão e como funciona o PAWN.
Com o passar do tempo você irá aprender muitas coisas, além de saber muitas
coisas que podem ser aplicadas na vida real.

Este tutorial será aplicado para explicação básica sobre programação,
por isto dúvidas avulsas de outros sistemas/includes não serão
respondidos neste tópico. o tutorial também será dividido em duas partes,
a parte da explicação e a segunda parte é como manipular.

Primeiro de tudo você tem que saber que '//' ou '/* */' são comentários, por isto
eles são ignorados pelo compilador.

Os assuntos abordados neste tópico serão:
- Diretivas;
- Variáveis;
- Constantes;
- Enumeradores;

- Arrays
- Funções;
- Callbacks;
- Expressões;
- Loopings.









Diretivas:
Vamos começar o tutorial falando sobre diretivas, oque são, qual sua função e
como usá-las.

Bom as diretivas são funções específicas do compilador pawno.exe, elas são
para você criar configurações que não serão enviadas ao AMX, ou seja, são
apenas definições, segue o exemplo:

Diretiva: #Include
Esta diretiva é a mais importante de todas, ela que carrega scripts externos
e transforma-o em um, é muito boa para você ogranizar seu gamemode.

Ela é muito usada para carregar inclusões, como:
pawn Code:
#include <a_samp>

No caso iremos incluir a biblioteca a_samp no nosso script,
somente lembrando para nós incluir uma biblioteca ela deve estar
na pasta "Includes" e com extensão .inc, a pasta includes fica
na mesma pasta em que o PAWNO se encontra.


Diretiva: #define
No seu código PAWN:
pawn Code:
#define Vermelho 0xFF0000FF
SendClientMessageToAll(Vermelho, "Esta é uma frase em vermelho");

Após compilar, seria a mesma coisa que:
pawn Code:
SendClientMessageToAll(0xFF0000FF, "Esta é uma frase em vermelho");

Então, você pode notar que em questão de velocidade in-game tem
diferença nenhuma, pois os dois códigos acima são exatamente a
mesma coisa, somente que o compilador
troca "Vermelho" para "0xFF0000FF".

Para entender:
pawn Code:
#define APELIDO  SIGNIFICADO

Resumindo, Diretivas são funções do COMPILADOR e não refletem
no in-game, agora que você já sabe que definições são apenas "Apelidos"
que o pawno troca pelo significado.


Agora iremos aprender sobre as principais diretivas do pawno, também
mostrarei exemplos,

Diretiva #if,
Bom, esta diretiva é muito usada quando queremos comparar uma definição,
ou melhor dizendo um "Apelido", com ela podemos fazer facilmente um código
de configuração, veja o exemplo:

Primeiramente criamos uma definição:
pawn Code:
#define ATIVAR_MENSAGEM         true// podemos considerar que 'true' é sim 'false' é não.


Depois da definição, iremos fazer a condição, da qual verificaremos se
a mensagem está ativada:
pawn Code:
#if ATIVAR_MENSAGEM == true // Verificamos que "ATIVAR_MENSAGEM" Está exatamente igual há 'true'.
printf("Mensagem ativada");
#endif // note que esta diretiva é essencial para compilar, pois ela é que termina a condição acima, caso não tiver ela, aparecerá erros.

Você tem que saber que se trocarmos a definição por esta:
pawn Code:
#define ATIVAR_MENSAGEM         false// podemos considerar que 'true' é sim 'false' é não.

A condição será ignorada, e não irá imprimir mensagem no console.

Quando falamos em "Condição" logos pensamos em "Comparação", e
no pawno tem vários modos de comparar valores, vamos ver os
"Operadores de comparação", os operadores são símbolos que específica com
precisão o valor da definição.

Operador: < (Menor que), no exemplo abaixo você pode nota que ele está
verifciando
se 20 for menor que ATIVAR_MENSAGEM
pawn Code:
#if ATIVAR_MENSAGEM < 20


Operador: > (Maior que), este operador é usado para comparar valores sendo maior que ele,
como no exemplo abaixo, ele verifica se a definição ATIVAR_MENSAGEM é maior que 20:
pawn Code:
#if ATIVAR_MENSAGEM > 20

Operador: <= (Menor ou igual que), este é basicamente um dos mais fáceis de todos, ele
compara se a definição é menor OU igual há 20.
pawn Code:
#if ATIVAR_MENSAGEM <= 20

Operador: >= (Maior ou Igual que), este é parecido com o decima, a única diferença é que
ele verifica se a definição é maior ou igual há 20:
pawn Code:
#if ATIVAR_MENSAGEM >= 20

Operador: != (Diferente de), este operador é muito fácil de utilizar, ele verifica se a definição
é diferente de 20:
pawn Code:
#if ATIVAR_MENSAGEM != 20

Bom, a saga de operadores de definição são essas, lembrando que esses são as definições
básicas, agora irei explicar algumas funções extras das diretivas:

Diretiva: #if defined
Esta diretiva é muito utlizada para verificar se foi definido uma palavra, exemplo:
pawn Code:
#if defined ATIVAR_MENSAGEM
printf("Foi definido ATIVAR_MENSAGEM");
#endif

#if !defined ATIVAR_MENSAGEM
printf("Não foi definido ATIVAR_MENSAGEM");
#endif

Note que para nós comparar se definição não foi definida é só botar ! antes do "defined".


Diretiva: #else
A diretiva #else é utilizda como com a simples tradução "se não",
pawn Code:
#if defined ATIVAR_MENSAGEM // verificamos se ATIVAR_MENSAGEM está definido

printf("Foi definido ATIVAR_MENSAGEM"); // imprimimos a mensagem

#else // caso não for definida a ATIVAR_MENSAGEM

printf("Não foi definido ATIVAR_MENSAGEM"); // imprimimos outra imagem

#endif // fim
Somente lembrando que ela só pode ser utilizada uma vez dentro de uma condição.



Diretiva:#undef
Esta diretiva só tem uma função, ela remove uma definição, veja no exemplo:
pawn Code:
#define ATIVAR_MENSAGENS   50 // definimos o valor de ATIVAR_MENSAGENS para 50
#undef ATIVAR_MENSAGENS // removemos a definição
#define ATIVAR_MENSAGENS 60 // definimos novamente com o valor 60


Cuidado!
Você não pode definir duas vezes com mesmo nome:
pawn Code:
#define ATIVAR_MENSAGENS
#define ATIVAR_MENSAGENS

O aparecerá um erro dizendo que já está definido.

Você também definir ela mesmo:
pawn Code:
#define ATIVAR_MENSAGENS ATIVAR_MENSAGENS

O compilador simplismente irá travar.










Variáveis:
Variáveis nada mais são doque "midia de armazenamento" ou seja, elas podem armazenar
qualquer valor, des-de que os valores sejam maiores ou menores que 0, ao cria-las elas
terão o valor 0 automaticamente.

Para testar
pawn Code:
new MinhaVariavel;
printf("Valor de MinhaVariavel é :%d", MinhaVariavel);

Para podemos modificar o valor, precisamos saber como manipular variáveis:
Operador/ExpressãoSignificado
+=Adiciona uma valor há nossa variável
-=Remove um vaor há nossa variável
*=Multiplica um valor há nossa variável
/=Divide um valor da nossa variável
=Setamos um valor há nossa variável
%Resto da divisão, é usado quando a divisão não é exata.


Depois você ver como modificar os valores, vamos aplicar:
pawn Code:
new MinhaVariavel;
MinhaVariavel += 10; // botamos
printf("Valor de MinhaVariavel é :%d", MinhaVariavel); // Imprime 10 no console.
MinhaVariavel -= 5;// removemos 5 da variável "MinhaVariavel"
printf("Valor de MinhaVariavel é :%d", MinhaVariavel); // Imprime 5 no console.
MinhaVariavel *= 2;
printf("Valor de MinhaVariavel é :%d", MinhaVariavel); // Imprime 10 no console.
MinhaVariavel /= 2;
printf("Valor de MinhaVariavel é :%d", MinhaVariavel); // Imprime 5 no console.
MinhaVariavel = 59;
printf("Valor de MinhaVariavel dividida por 8 resto da divisão é %d",  MinhaVariavel % 59);// Imprime 8 no console.



Só lembrando que uma variável só pode armazenar UM valor, e também armazenar
um id, como por exemplo, veiculo:

pawn Code:
new MinhaVariavel;
MinhaVariavel = CreateVehicle(522, 5457.47, 567.788, 0.0, -1,-1, 9);
printf("ID Do carro é %d", MinhaVariavel);


Tudo se resume que variável armazena um valor, podendo de ser objeto ou não.












Constantes:
Constantes são um tipo de variável que ficam constantemente no mesmo valor, ou seja,
é como se fosse uma definição.

pawn Code:
const MinhaConstante = 500; // vemos que a constante tem o valor 500
printf("Valor: %d", MinhaConstante);

Aparecerá:
Code:
Valor: 500

Atenção:
Com constantes não é possível modificar o valor dela:
pawn Code:
const MinhaConstante = 500; // vemos que a constante tem o valor 500
printf("Valor: %d", MinhaConstante);
MinhaConstante = 500; // ERRO

Pois são pre-definidas.

Constantes só podem armazenar valores inteiros, não podendo
Armazenar números flutuantes(floats).














Enumeradores:
Enumeradores são um tipo de organização de array, nela são
armazenados valores que podem ser chamados a qualquer instante, veja:

pawn Code:
enum MeuEnumerador / * Iniciamos nosso enumerador com o nome "Meu enumerador"
{
    Nivel
    // Aqui dentro inserimos as "Tags" que serão armazenados os valores
}; // Concluimos nosso enumerador, agora vamos utilizá-lo em nossa array.

new PlayerInfo[ MAX_PLAYERS ] [ MeuEnumerador ]; // Agora criamos a array com o nome "PlayerInfo",  coma a dimensão "MAX_PLAYERS" e utilizamos as TAGs do enumerador "MeuEnumerador".

Pronto!, estrutura de enumerador formada, agora é só utilizar:
pawn Code:
PlayerInfo[playerid][Nivel] = 50;

Indicamos a array "PlayerInfo" da dimensão "playerid" que o valor do "Nivel" dele é 50.

Ao usar uma tag inexistente no enumerador o PAWNO resultará a erro, então aconselho
botar nome de tags fáceis de lembrar para não se esquecer rapidamente =)













Arrays:
Bom, este assunto é muito importante, pos você irá utilizar na maioria dos seus códigos,
uma dica que dou é sempre contar células precisamente ou criar uma Variável Gobal,
com uma pré-definição de string, normalemnte usando 128, pois este é o máximo de texto,

Mais vamos há explicação:

As arrays são multi variáveis, com ela podem ser armazenados vários valores diferentes,
similar a uma variável normal que só pode armazenar um valor simultaniamente.

Criamos uma array normal contendo 5 células:
pawn Code:
new MinhaArray[ 5 ];


Seria a mesma coisa que:
pawn Code:
new MinhaArray0;
new MinhaArray1;
new MinhaArray2;
new MinhaArray3;
new MinhaArray4;
Nota-se que são utilizados até o 4, pois o mesmo é contado do 0,


Voltando para o assunto Array, cada valor pode ser armazenado em uma célula,
só lembrando que célula é oque está entre colchetes "[" & " ]".

Como nosso exemplo, criamos uma array com 5 células:

pawn Code:
new MinhaArray[5];


Para modificar os valores dos mesmos:
pawn Code:
MinhaArray[0] +=  50; // Incrementa a "MinhaArray" célula "0" o valor "50".

Para exibimos:
pawn Code:
printf("MinhaArray[0]  Valor: %d Célula: 0", MinhaArray[0]);

Só lembrando que temos mais 4 células livres,
pawn Code:
new MinhaArray[5]  = {
    50,     // Célula 0
    0,  // Célula 1
    0,      // Célula 2
    0,      // Célula 3
    0       // Célula 4
};

Como pode ver, a apresentação da estrutura, os valores que estão "0" são representado
por valores não utilizados.


Nota(s):
As arrays só são no máximo tridimensional, que são 3 dimensões em uma array só.

Exemplo de array tridimencional:
pawn Code:
new MinhaArray[1][20][40];

Manipulando:
pawn Code:
MinhaArray[1][0][0] = 10;
MinhaArray[1][0][1] = 50;
MinhaArray[1][1][25] = 30;

Mostrando:
pawn Code:
printf(" %d |%d | %d | ",  MinhaArray[1][0][0], MinhaArray[1][0][1],   MinhaArray[1][1][25]);

Exibe: "10|50 |30".


Exemplo de array Bidimencional:
pawn Code:
new MinhaArray[20][15];

Manipulando:
pawn Code:
MinhaArray[0][1] = 20;
MinhaArray[5][9] = 5;


Mostrando:
pawn Code:
printf("%d | %d", MinhaArray[0][1], MinhaArray[5][9]);


Exibe: "20| 5".



Arrays de uma dimensão:


Exemplo de uma array normal(uma dimensão):
pawn Code:
new MinhaArray[100];


Manipulando:
pawn Code:
MinhaArray[0] = 50;
MinhaArray[97] = 87;


Mostrando:
pawn Code:
printf("%d, %d", MinhArray[0], MinhaArray[97]);

Exibte: "50, 87".


Cuidado ao acessar uma dimensão que não existe!
pois dará erro ou possíveis crashs!













Funções:
Bom, existe 2 tipos de funções, as funções nativas e as funções não-nativas,
irei explica-las:


As funções nativas são as que vem juntamente com a packpage do SA-MP,
nelas você pode encontrar funções que podem manipular o servidor totalmente,
sendo a maioria com parâmetros.

Nessas funções podemos formar um exemplo de usagem:
pawn Code:
Kick(playerid); // Expulsa o player do servidor

Como você pode notar esta função "Kick" tem o parâmetro "playerid",
mais note-se que ao adicionar mais um parâmetro o pawno returnará
há um erro, este erro é comum, então preste bem a atenção ao usar
uma função da qual não saiba os parâmetros, caso tiver dúvidas, procure
o comando na Wiki.sa-mp que fala só sobre funções nativas.



As funções não-nativas são as que não vem com a packpage do sa-mp,
então você tem que cria-las, pois elas são funções próprias, cálculos,
etc...

Então as funções que não existe na biblioteca do sa-mp são denomiadas
de não-nativas, mais lembrando que se já estiver criado uma função com
mesmo nome da outra com certeza returnará há erro, então vamos há obra:




Mais eai, como criar funções ?
Para criar funções extras, basta seguir a seguinte fórmula:
pawn Code:
stock MinhaFuncao(numero, texto[], Float:NumerosFlutuantes){
    printf("[%d]%s ele é  %.1f", numero, texto, Float:NumerosFlutuantes);
}

A função acima pode ser testada utilizando da seguinte maneira:
pawn Code:
MinhaFuncao(20,  "Oi, Este é um tutorial do SuYaNw Dácio", 10.0);

Esta função exibe:"[20]Oi, Este é um tutorial do SuYaNw Dácio ele é 10.0"

Más Garfield, como podemos fazer funções com este pequeno exemplo ?
Simples, irei mostrar um exemplo umpouco mais extenso,


pawn Code:
stock ContarCaracteresNaFrase(frase[]){ // Note que usei "[]" para indicar texto/string, olhe a tabela abaixo.

    new Caracteres; // Cria uma variável para armazenar a quantidade de letras.
   
    Caracteres = strlen(frase); // Seta a variável "Caracteres" para quanditade de letras da "frase[]" utilziando a função strlen.
   
    return Caracteres; // Returna a quantidade de letras.
}

Como você pode notar na função ela conta quantos caracteres foram achados na frase,
na função explicadas todas as funções de cada linha.

Para testa-la, use:
pawn Code:
printf("Esta frase tem %d letra(s)", ContarCaracteresNaFrase("SuYaNw Lindo"));



Tabela de tags para usar em funções:
Tag UsoFunção
Float[/d] stock MinhaFuncao(Float: vida)Serve para números flutuantes
Text[/d] stock MinhaFuncao(Float: Text)Serve para manipular textdraws
Menu[/d] stock MinhaFuncao(Float: Menu)Serve para manipular menus
Text3D[/d] stock MinhaFuncao(Float: Text3D)Serve para manipular textos 3d

Bom essas tags são as mais usadas, claro que existem mais mais as mais
usadas estão citadas acima.

Utilizando Referência em funções, bom, este é um pouco mais elevado, precisa de uma grande
atenção para aprender esta parte, então vamos lá:

Oque são referências ?
Referências são referencia de uma variável ou array que não mudam de valor, ou seja, elas só
mudam dentro da função executada, e após isto elas voltam ao valor original por exemplo:

pawn Code:
stock Multi(&Soma){
    return Soma * 2;
}

Pode-se notar que esta função apenas multiplica a Soma vezes 2.

Quando usamos uma variável para utilizar a função criada, ela não será modificada globalmente,
somente localmente, veja os exemplos:


pawn Code:
new MinhaVariavel = 2; // criei uma variável simples com o valor 2.
printf("Multiplicado: %d", Multi(MinhaVariavel)); // Exibe a soma de 2 x 2 = 4.


Todos nós sabemos se fosse uma função normal o valor de MinhaVariavel teria
modificado, mais como é por referência, isto não ocorre.

E ao imprimir o valor da nossa variável returnará o valor 2 novamente.
pawn Code:
printf("Valor: %d", MinhaVariavel);

Imprimirá valor 2.













Callbacks:
Bom, essa é a parte que meche na estrutura do script, ela é responsável por
manipulamento da grande parte da maioria do servidor, são nelas que são
chamados todos os eventos do servidor, e agora você saberá manipula-las.

As callbacks são chamadas quando ocorre algum evento no servidor(como
dito antes), para explicar melhor vamos pegar a callback "OnPlayerConnect",
Essa callback é chamada quando o player conecta, ao player conectar tudo
que estiver nesta callback é executada.

Mais eai, como crio uma callback ?
É muito fácil, basta seguir a seguinte fórmula:
pawn Code:
forward nome_callback(parametros);

public nome_callback(parametros)
{
    return true;
}

Somente lembrando que as callbacks não suportam retornar strings, então
qualquer tentativa resultará em erro. E também que se tentar criar uma callback
sem declarar resultará em erro também.

E sobre Funcionalidade, ela é basicamente a mesma coisa que uma "Função",
somente a diferença que não returna strings.













Expressões:
Eu acho esta parte mais essencial para programação em geral, por iso você
tem que entender bem e se esforçar, pois nela que você aprenderá a manipular
números.

Bom, vamos aprender primeiramente as expressões matemáticas, das quais
nós usamos para calcular números, elas são:

ExpressãoExplicação
++Usado para incrementar que será sempre +1
--Usado para decrementar que será sempre -1
*Usado para multiplicar
/Usado para dividir
+=Adiciona um valor há sua variável
-=Retira um valor de sua variável
*=Multiplica um valor para sua variavel
/=Divide um valor para sua variável


Uso:
pawn Code:
Variavel ++; // Adiciona +1 há nossa variável;
Variavel --; // Remove -1 da nossa variável;
Variavel = (2 * 2); // Seta o valor da variavel para 4 (2*2);
Variavel = (2 / 1); // Seta o valor da variavel para 2 ( 2 / 1 = 1);
Variavel += 2 ;// Adiciona +2 em nossa variável;
Variavel -= 2; // Remove -2 de nossa variável;
Variavel *= 2; // Multiplica por 2 a nossa variável;
Variavel /= 2; // Divide por 2 a nossa variável;


Essas são as expressões matemáticas, e agora vamos as expressões
de condições:

ExpressãoExplicação
>Maior que
<Menor que
>=Maior ou igual que
<=Menor ou igual que
!=Diferente de
==Igual que

Uso:
pawn Code:
if(Variavel > 10)// Verifica se a Variavel é maiorque 10;
if(Variavel < 10)// Verifica se a Variavel é menor que 10;
if(Variavel >= 10)// Verifica se a Variável é maior ou igual há 10;
if(Variavel <= 10)// Verifica se a Variável é menor ou igual há 10;
if(Variável != 10)// Verifica se a Variável é diferente de 10;
if(Variável == 10)// Verifica se a variável é igual há 10.



Agora vamos falar um pouco sobre os operadores lógicos:
que são eles:
OperadorSignificado
||Ou
&&E


Os operadores lógicos || e && só tem uma explicação, e são
sempre utilizados em condições, vamos há explicação primeiro:

Operador ||:
Este operador verifica mais de uma condição, se uma delas for
verdadeira a condição returna true, veja o exemplo:
pawn Code:
if(Variavel == 10 || Variavel == 20) / /Verifica se a Variavel é igual á 10 OU igual á 20




Operador &&:
Este operador é diferente do decima, ele verifica se todos as condições
contidas são verdadeiras:
pawn Code:
if(Variavel == 10 && Variavel < 20) //Verifica se a Variavel é igual há 10 e menor que 20, caso esta condição estiver verdadeira ele executa oque está abaixo.



Acho que não precisa mais explicar sobre o assunto, porque o mesmo está claro.













Looping:
O Looping é uma repetição com condições diferentes(as vezes) mais na grande maioria
ele serve para fazer repetições das quais não precisamos ficar chamando a mesma função
várias vezes.

Por exemplo, queremos exibir o nome SuYaNw no console 10 vezes, como fizemos ?

Jeito errado:
pawn Code:
printf("SuYaNw");
printf("SuYaNw");
printf("SuYaNw");
printf("SuYaNw");
printf("SuYaNw");
printf("SuYaNw");
printf("SuYaNw");
printf("SuYaNw");
printf("SuYaNw");
printf("SuYaNw");

Assim imprimirá, mais seria um desperdício de linhas, usando Loop seria assim:
pawn Code:
for(new i; i != 10; ++i){
    printf("SuYaNw");
}

Viu ?

Explicação:
O Looping for tem uma formula muito fácil de manipular, irei explicar:


Looping FOR:
Como no exemplo abaixo, ele cria a variável i e depois verifica se i != de 10,
caso for diferente de 10 ele vai adicionando +1( usando incrementação ++),
e se a variável i chegar ao valor 10 o loop para automaticamente

Lembrando que o 10 é o número de vezes que o loop será executado
pawn Code:
for(new i; i != 10; ++i){

}



O mesmo efeito usando outro tipos de loopings:

Looping: While

Bom, o loop while é parecido com o FOR, só que tem que criar separadamente as funções,
veja:
pawn Code:
new i; // criamos a variável i

while(i != 10){ // verificamos se i é diferente de 10


   printf("SuYaNw");

    i ++; // incremente a variável i  + 1.
}


Looping: Do..While

Este sistema de loop é parecido com o de cima,

pawn Code:
new i; // criando a variável i.

do{
    printf("SuYaNw");
     
     i ++;
};
while(i != 10);

*Note que as funções vão acima e abaixo vai a condição do looping.




Bom por enquanto é isto, então por favor, aguardem a segunta parte para vocês "Manipular"
oque vocês aprenderam neste tutorial.
__________________
SuYaNw
Suyann12
G. SuYaNw Dácio
História
Garfield
Grupo do Fórum SA-MP no WhatsApp PM*

Last edited by zSuYaNw; 17/09/2013 at 01:18 AM.
zSuYaNw is offline   Reply With Quote
Old 01/12/2012, 07:23 AM   #2
zSuYaNw
Godfather
 
zSuYaNw's Avatar
 
Join Date: Apr 2010
Location: Santa Catarina
Posts: 5,714
Reputation: 429
Default Re: Oque você precisa saber sobre PAWN

Reservado.
__________________
SuYaNw
Suyann12
G. SuYaNw Dácio
História
Garfield
Grupo do Fórum SA-MP no WhatsApp PM*
zSuYaNw is offline   Reply With Quote
Old 01/12/2012, 07:32 AM   #3
ipsBruno
Banned
 
Join Date: Apr 2010
Location: Brazil, Caxias RS
Posts: 6,159
Reputation: 483
Default Re : Oque você precisa saber sobre PAWN

Reservado pro Suyan
ipsBruno is offline   Reply With Quote
Old 01/12/2012, 07:49 AM   #4
leonardo1434
High-roller
 
leonardo1434's Avatar
 
Join Date: Mar 2012
Posts: 1,688
Reputation: 179
Default Re: Oque você precisa saber sobre PAWN

Constantes podem armazenar floats e negativos.

PHP Code:
const Float:fuck = -1.00
Boa iniciativa gatu, vai ajudar uns cara. -q
__________________
c++
leonardo1434 is offline   Reply With Quote
Old 01/12/2012, 07:55 AM   #5
ipsBruno
Banned
 
Join Date: Apr 2010
Location: Brazil, Caxias RS
Posts: 6,159
Reputation: 483
Default Re : Re: Oque você precisa saber sobre PAWN

Quote:
Originally Posted by leonardo1434 View Post
Constantes podem armazenar floats e negativos.

PHP Code:
const Float:fuck = -1.00
Exatamente o que eu disse via-messenger. Mas ele já editou.

Dei uma lida por cima, já te informei o que tinha de errado. Se eu encontrar algo aviso.


Tirando isto, ÓTIMO tutorial, vai ajudar os novatos-chatos que ficam me enxendo saco por messenger e skype (sim essa mensagem é pra você)
ipsBruno is offline   Reply With Quote
Old 01/12/2012, 10:12 AM   #6
lucas_mdr1235
Gangsta
 
lucas_mdr1235's Avatar
 
Join Date: Jan 2010
Location: Ipatinga - MG
Posts: 629
Reputation: 24
Default Re: Oque você precisa saber sobre PAWN

Boa iniciativa, ira ajudar bastante gente. E como me ajudo tambem
__________________
Quer parceria para abrir um servidor RPG? Eu sou o cara certo!!! Tenho GM pronto feito do zero. Entre em contato.

PlAy ViRtUaL ReAlItY 99%



Minha mãe me disse certa vez que ninguém me amava mais do que DEUS. Eu perguntei a ela se ela enviaria alguém atrás de mim para me ferir, torturar e causar dor eterna se algum dia eu a renegasse. Ela olhou para mim chocada e respondeu:
-Claro que não! Eu disse a ela, bom, já temos uma pessoas que me ama mais do que DEUS.
By: Neal Jordan

Se, numa discussão, um dos muitos que gostariam de saber de tudo, mas se recusam a aprender qualquer coisa, nos pergunta a respeito da continuação da vida após a morte, a resposta mais adequada e mais correta e:"Após a morte você será o que era antes de nascer."
By: Arthur Schopenhauer
lucas_mdr1235 is offline   Reply With Quote
Old 01/12/2012, 11:04 AM   #7
death1
Huge Clucker
 
death1's Avatar
 
Join Date: Oct 2012
Posts: 331
Reputation: 3
Default Re: Oque você precisa saber sobre PAWN

Parece que ficou ótimo, pagabens gatu
__________________

death1 is offline   Reply With Quote
Old 01/12/2012, 11:31 AM   #8
iSmirnoff
High-roller
 
iSmirnoff's Avatar
 
Join Date: Oct 2012
Posts: 1,973
Reputation: 170
Default Re: Oque você precisa saber sobre PAWN

Parabéns, Muito Bom
Irá ajudar muitos
__________________
Account has been deactivated
iSmirnoff is offline   Reply With Quote
Old 01/12/2012, 12:08 PM   #9
mau.tito
High-roller
 
mau.tito's Avatar
 
Join Date: Jan 2012
Location: Curitiba/PR
Posts: 1,949
Reputation: 195
Default Re: Oque você precisa saber sobre PAWN

Não deu pra ler tudo mas so o que eu vi , vai ajudar muitos novatos.
__________________
mau.tito is offline   Reply With Quote
Old 01/12/2012, 12:43 PM   #10
BlueX
High-roller
 
BlueX's Avatar
 
Join Date: Jul 2011
Location: Portugal
Posts: 2,050
Reputation: 285
Default Re: Oque você precisa saber sobre PAWN

Gostei muito do tutorial, agora espero que alguém de valor ao seu trabalho
__________________
Quote:
Originally Posted by Y_Less View Post
What do you enjoy? Make one you want to play or there's no point as you won't be interested in your own server.
A.K.A rebelox
BlueX is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Tutorial] O básico sobre pawn MatheusAlcapone Lançamentos/Releases 20 19/12/2013 04:44 AM
[Pedido] PRECISA-SE SCRIPTER ouioui Português/Portuguese 8 22/11/2012 05:53 PM
[Off] Oque você gosta em um servidor? OakleyBrasil Português/Portuguese 17 20/07/2012 09:10 PM
[DUVIDA]Uma dúvida sobre PAWN Victor Cesaroni Português/Portuguese 6 28/08/2011 07:52 AM


All times are GMT. The time now is 06:45 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.