[Tutorial] [TUT] Utilizando PVars
#1

Bom, vejo que jб estгo a comeзar a trocar o uso de variбveis por PVars, mas como venho mostrar neste "tutorial" um modo eficiente para utilizб-las!

Bom, porque nгo trocar variбveis por PVars? Bom, jб foi provado que as PVars demoram mais tempo para serem obtidas do que as variбveis.

Bom elas "guardam" as informaзхes dentro do sistema local do servidor, o que deve congestionar mais do que variбveis.
Mas depois de tanta "falaзгo", tenho um bom jeito de utilizб-las, que quase ninguйm conhece, pelo que sei.


Tentarei ser direto em uma frase: Ligaзгo de GameMode com FilterScripts.
Vocк poderб pensar, nossa ele estб louco! Como posso obter a informaзгo do GameMode para um Filterscript sem ter que salvar em um arquivo?
Simplesmente usando as PVars! Pois como sгo armazenadas no sistema local, sem ser apenas dentro do Gamemode/Fs.
Ou seja, vocк poderб realizar uma conexгo entre GameModes e FilterScripts!




Primeiro, irei mostrar como utilizб-las.

Tipos de PVars:
- Integer (SetPVarInt/GetPVarInt)
- Float (SetPVarFloat/GetPVarFloat)
- String (SetPVarString/GetPVarString)

Deletando-a: DeletePVar.
Descobrindo tipo de PVar (Int,string,float): GetPVarType.
Outras que nгo descobri para que servem: GetPVarsUpperIndex,GetPVarNameAtIndex.





Criado uma PVar de Integer's: [Em seu GameMode]
pawn Код:
SetPVarInt(playerid,"Grana",GetPlayerMoney(playerid));
Criei uma PVar de tipo Integer, que poderei acessa-lб em um Fs.
Obs: Ao player desconectar, todas as PVars dele sгo deletadas automaticamente!

Em seu FilterScript:
pawn Код:
printf("Este player possui %d de grana!",GetPVarInt(playerid,"Grana"));
Assim, irei pegar o valor da PVar nomeada 'Grana'.



Como utilizar o: GetPVarType
Exemplo:

pawn Код:
public OnPlayerConnect(playerid)
{
switch(GetPVarType(playerid,"Grana"))
{
case 0: {print("A PVar 'Grana' nao existe!");}
case 1: {print("A PVar 'Grana' e uma Integerer!");}
case 2: {print("A PVar 'Grana' e uma String!");}
case 3: {print("A PVar 'Grana' e uma Float!");}
}
return 1;
}
Assim, caso nгo saiba o que й, poderб descobrir!
Para saber mais: (Inglкs) https://sampwiki.blast.hk/wiki/Per-player_variable_system
Reply
#2

bom tutorial conseguir intender melhor agora.
Reply
#3

Muito bom Sub !
Reply
#4

isso seria tipo um
... new Grana[MAX_PLAYER_NAME]; ...
Grana[playerid] = GetPlayerMoney(playerid)?
Reply
#5

@kevin
Yes kevin

й muito mais simples trabalhar com pvars
mas devido ao conhecimento que ja tenho em variaveis simples prefiro usar as normais mesmo

@sub
Parabens....
>Nгo gostei dakilo que oces fizero -.-
Tipuw sobre as variaveis simples... й necessario setar a 0 as variaveis que o player usou conectado ?na hora de desconectar?
Ou as variaveis se auto-excluem apуs ele sair?
Reply
#6

ResetPlayerVars(playerid); no onplayerdisconnect Kasura...
Reply
#7

Vlws dark
nem sabia disso
realmente fiquei analizando se a variavel n й fechada como fechar o.o
=D

@EDIT- Dark
Aqui deu que n foi definido dai pelo que entendi devo criar 1 stock com as variaveis setadas a 0?
Reply
#8

So mais usar minha variaveis mesmo " GetPVar" sгo lentas.
Reply
#9

Alйm disto existe CallRemoteRunction e CallLocalFuntion ¬¬
Reply
#10

Quote:
Originally Posted by Kasura
Посмотреть сообщение
Vlws dark
nem sabia disso
realmente fiquei analizando se a variavel n й fechada como fechar o.o
=D

@EDIT- Dark
Aqui deu que n foi definido dai pelo que entendi devo criar 1 stock com as variaveis setadas a 0?
Sim, deve criar um 'reset' para variбveis. (Para prevenir bugs com proximos players que conectarem com mesmo ID)

Exemplo:
pawn Код:
stock ResetVars(playerid)
{
        Estatos[playerid][Grana]=0;
        Estatos[playerid][Zeroo]=0;
        Estatos[playerid][Admin]=0;
        Estatos[playerid][Carro]=-1;
}
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)