[Tutorial] Arrays Players (Tutorial Explicativo de como usa-las)
#1

[TUT] Arrays Players

Introduзгo:
Bom vou explicar um pouquinho sobre as arrays quando aplicadas em players,sгo as estruturas de dados mais simples e pricipais de uma programaзгo.
A array tem uam parte importante na qual se usa se chama 'index' ou portuguesamente falando 'indice' que funcionam como inteiraзхes das arrays.


Iniciando o Tutorial:
Em geral as arrays sгo definidas das seguintes forma:

Simples:
Код:
new NomeArray;
Com Indice:
Код:
new NomeArray[5];
Esses serгo os dois tipos de arrays que explicarei hoje.

Para que Usar?
As arrays sгo usadas normalmente para definir valores,no caso de arrays com indice podemos definir valores a players no qual o seu 'id' й o indice da mesma,ou setar valores gerais para o servidor.


Array com Index:

Код:
new PlayerWins[500];
if(PlayerWins[playerid] == 10) printf("O Player %d й Wins",playerid);
Explicando:
Bom alн no caso criei uma array com 'index' de 500.
Ao criar uma index ela faz:

0,1,2,3,4,5,6,7,8,9,10...

Cada um desses nъmeros sгo os playerids (atй 500) , essas index por ser parte da array elas podem definir um valor independente de qual valor da array inteira

Код:
PlayerWins[indexid] = valor;
No Caso acima devemos colocar o 'valor' e 'indexid',normalmente quando se trata de players colocamos '[playerid] = valor', assim fazendo com que 'index' seja igual ao id do player


Array Simples:
Bom agora vamos explicar a funзгo da array simples,praticamente e teoricamente tem a mesma funзгo que a array anterior,porйm neste caso й sem intereзхes,sendo apenas 1 parte e nгo 500 partes.

Код:
new PlayerWins;
if(PlayerWins == 10) printf("O Player %d й Wins",playerid);
Observem que agora nгo usei [ e ] pelo simples fato de nгo ter 'index' portanto nгo necessitarб disto.
Neste caso de Arrays simples й impossнvel que crie ela apenas para um player,pois ela й simples e й composta por apenas 1 parte.
Basicamente й isto.


O que podemos Fazer com Arrays?
Com arrays como dito anteriormente pode se definir valores,assim definindo muitas coisas que deseja,como exemplo:

Код:
new Digitou[500];
if(!strcmp(cmdtext, "/drakins", true))
{	
	if(Digitou[playerid] == 10)
		return SendClientMessage(playerid, 0xFFFFFFFF, "Vocк jб digitou '/drakins'");

	if(Digitou[playerid] != 10)
	{
		SendClientMessage(playerid, 0xFFFFFFFF, "Vocк nгo digitou '/drakins'");
		Digitou[playerid] = 10;
	}
	return true;
}
Observem que com simples array defini se o player digitou 'drakins' ou 'nгo digitou' apenas usando valores simples

Sendo:
Код:
Caso valor for igual a 10 ele digitou
Caso nгo for igual a 10 ele nгo digitou
PVars

Bom muita gente discute este assunto vou simplificar de uma vez por todas.

PVars nada mais nada menos sгo arrays para players.

Player Variбvel

Porque?
Bom isto й simples
a Equipe da SA:MP com intuito de melhorar a otimizaзгo resolveu criar este sistema que cria arrays 'particulares' para apenas um player,seria o mesmo que

new Players[500];

Porйm sem o 500 assim fazendo apenas 1 parte sendo muito mais otimizado

Usando:
Para usar existem 2 Funзхes mais Importantes que Explicarei Hoje:

Код:
GetPVarInt
SetPVarInt
Usando o Exemplo dito na primeira parte do tuto:

Код:
if(GetPVarInt(playerid,"NomeArray") == 10) printf("O Player %d й Wins",playerid);
Viram? Alйm de Otimizar ele encurtou as linhas poir nгo й nessesario criar a array

Setando:

Код:
SetPVarInt(playerid,"NomeArray",10);
Seria o mesmo que:

Код:
new NomeArray[500];
NomeArray[playerid] = 10;
Porйm sem as '500 partes' e sem precisar de 2 linhas

Nota:
• Variavel = Array
• Variavel deve-se ao nome pois variбvel vem 'variar' que significa 'mudar',isto й as arrays sгo variaveis pois mudam definindo valores
• Caso a PVar nгo existe ele retorna '0'
• Existe outros tipos de Arrays como Floats,String e Tйcnicas Booleanas que hoje nгo vem ao caso

PS1: Desculpa falar algumas palavras erradas no contexto,tentei deixar de forma mais acessнvel possнvel

Criado por DraKiNs | Tutorial FeKSquad
Reply
#2

xD bom ^^
bem explicado e pa
<3'
rs
Reply
#3

Valeu Gunner

Obs: Desculpa aos Bons programadores,eu tentei escrever de melhor forma e mais acessнvel para iniciantes portanto pode haver erros de 'expressгo' ou outros do tipo
Reply
#4

boa emo ^^ agora й sу eu entender isso ^^
Reply
#5

muito bom dracu, bom mesmo,
Reply
#6

Ficou bom bastante explicativo ^^
vai ajudar bastante gente iniciante ou que nгo sabe muito sobre isso ^^ >como eu
Reply
#7

Drakon as PVars como foi dito foi para optimizar Porem NAO Contretizaram o seu desejo...

Mas tambem foi com o intuito de facilitar aos Programadores (Nos) fazer os nossos scripts...

Porem como ja disse elas queriam-se que fossem mais optimizadas que as normais arrays mas ja foi visto em varios testes muito mesmo que as PVars sao mais lentas, ja era de prever visto que a Array й um sistema mesmo do Pawn simples enquanto as Pvars para ter as facilidades que em foi preciso fazer outras coisas...

Mas de resto Bom TuT
Reply
#8

Quote:
Originally Posted by DarK TeaM PT
Посмотреть сообщение
Drakon as PVars como foi dito foi para optimizar Porem NAO Contretizaram o seu desejo...
As PVars apenas podem ser ultilizadas por um player,pois ela nгo usam interatores de 500,portanto se estб usando com mais de um player й provбvel que ocorra algum bug.

Dependendo do modo de uso elas sгo mais otimizadas.

pawn Код:
new Pvar[500];
Pvar[id] = 10;
pawn Код:
SetPVarInt(id,"Pvar",10);
Observem que as Pvars nгo tem nenhum valor de indice e apenas '0',portanto sгo mais otimizadas,o que deixa elas lentas й o mau uso delas e tambйm porque elas sгo chamadas pelo c++
Reply
#9

sim й verdade isso que dizes mas sao mais lentas bom ou mau uso mesmo a SAMP team o admitiu..
Reply
#10

Quote:
Originally Posted by DarK TeaM PT
Посмотреть сообщение
sim й verdade isso que dizes mas sao mais lentas bom ou mau uso mesmo a SAMP team o admitiu..
Isto й Normal DarK TeaM PT,ele editam Game Mode God Father todo mal Otimizado,dizem que й bom e ficam famosos por este 'grande feito',enquanto aos criadores? jб ouviu falar deles?

Crйditos eles Esquecem
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)