Re: (Dica) (Funзхes) Chamar variбvel por strings -
zSuYaNw - 16.06.2012
Quote:
Originally Posted by Bruno Pereira
Fiz alguns testes aqui e resultaram:
(DRAKINS) Time:152
(SII) Time: 468
Nгo sei se estб correto. Olha ae o cуdigo que usei:
Olha que nem usei variбveis no SII '-'
PHP код:
#define maxtest (1000)
public OnGameModeInit()
{
//Drakins
new bTick = GetTickCount();
varSet("Time", 666999777);
varSet("Time2", 100000);
new string[32];
for(new i; i<maxtest;i++)
{
new File:open = fopen("Tiste.ini", io_write);
format(string, 11, "%d\n",varGet("Time"));
format(string, 15, "%d%d",string, varGet("Time2"));
fwrite(open, string);
fclose(open);
}
printf("(DRAKINS) Time: %d", GetTickCount()-bTick);
// SII
bTick = GetTickCount();
for(new i;i<maxtest;i++) {
if(INI_Open("Teste.ini")) {
INI_WriteInt("Time", 666999777);
INI_WriteInt("Time2", 100000);
INI_Save();
INI_Close();
}
}
printf("(SII) Time: %d", GetTickCount()-bTick);
return true;
}
|
Seu teste estб incorreto amigo..
o SII em sн й isto:
pawn Код:
new File:open = fopen("Tiste.ini", io_write);
format(string, 11, "%d\n",varGet("Time"));
format(string, 15, "%d%d",string, varGet("Time2"));
fwrite(open, string);
fclose(open);
o cуdigo acima й uma variбvel que pode ser usada em Gamemodes e filterscript.
POR EXEMPLO:
Suponhamos que queremos colocar a data de nascimento de algum player,
mais teremos que acessa-las pelo filterscript simultaneamente, como faremos?
pawn Код:
// Colocas no gamemode:
new valor;
valor = 1996; // Garfield nasceu em 1996
varSet("Garfield", valor);
// O Valor da variбvel remota (Garfield) tem o valor de 1996.
// Para carregar no Filterscript usamos:
printf("Garfield tem %d anos.", 2012 - varGet("Garfield"));
- "Garfield tem 16 anos".
Re: (Dica) (Funзхes) Chamar variбvel por strings -
ipsBruno - 16.06.2012
Quote:
Originally Posted by [Full]Garfield[XDB]
Seu teste estб incorreto amigo..
o SII em sн й isto:
pawn Код:
new File:open = fopen("Tiste.ini", io_write); format(string, 11, "%d\n",varGet("Time")); format(string, 15, "%d%d",string, varGet("Time2")); fwrite(open, string); fclose(open);
o cуdigo acima й uma variбvel que pode ser usada em Gamemodes e filterscript.
POR EXEMPLO:
Suponhamos que queremos colocar a data de nascimento de algum player,
mais teremos que acessa-las pelo filterscript simultaneamente, como faremos?
pawn Код:
// Colocas no gamemode: new valor;
valor = 1996; // Garfield nasceu em 1996
varSet("Garfield", valor); // O Valor da variбvel remota (Garfield) tem o valor de 1996.
// Para carregar no Filterscript usamos: printf("Garfield tem %d anos.", 2012 - varGet("Garfield"));
- "Garfield tem 16 anos".
|
Na verdade tб certo. Ele calculo a abertura dos dois sistemas.
Re: (Dica) (Funзхes) Chamar variбvel por strings -
zSuYaNw - 16.06.2012
Quote:
Originally Posted by [FeK]DraKiNs
Na verdade tб certo. Ele calculo a abertura dos dois sistemas.
|
Acho que nгo Bruno,
porque no exemplo que ele utilizou fez o Abrimento efechamento de um arquivo que continha um
valor setado pela sua funзгo "GetVar", ou seja, para ele fazer o teste ele deverб criar um exemplo
com pVars e tambйm de um Gamemode de teste e um filterscript..
Caso a include ter a intenзгo de "Compartilhar valores pelos Gamemodes e filterscript",
meu comentбrio estб corretissimo!
Re: (Dica) (Funзхes) Chamar variбvel por strings -
Bruno Pereira - 16.06.2012
Mas Garfield, pelo o que entendi a principal funзгo da include nгo й esta de trazer do FS pro GM e vice e versa, por isso fiz o teste assim xD
Quote:
Originally Posted by [FeK]DraKiNs
Colocar valor em variбveis usando string. Assim vocк pode digamos alterar uma variбvel atravйs de um comando. Quando usando variбveis normais vocк nгo poderia, pois teria que especificar cada uma
stringSet(cmdtext[5], "1");
Note que cmdtext serб uma variбvel, caso o usuario digite
/teste OI
Irб mudar o valor de "oi" para 1
Caso digite
/teste SAMP
Irб mudar o valor de "SAMP" para um
Sem precisar de condicionais, pois й tudo feito em string.
_
Por isto variбveis dinвmicas. Porque vocк pode definir qual usar a qualquer momento, atй mesmo dentro do jogo em um comando
|
Re: (Dica) (Funзхes) Chamar variбvel por strings -
ipsBruno - 16.06.2012
Quote:
Originally Posted by [Full]Garfield[XDB]
Acho que nгo Bruno,
porque no exemplo que ele utilizou fez o Abrimento efechamento de um arquivo que continha um
valor setado pela sua funзгo "GetVar", ou seja, para ele fazer o teste ele deverб criar um exemplo
com pVars e tambйm de um Gamemode de teste e um filterscript..
Caso a include ter a intenзгo de "Compartilhar valores pelos Gamemodes e filterscript",
meu comentбrio estб corretissimo!
|
Me mostra esta parte, por favor
pawn Код:
new File:open = fopen("Tiste.ini", io_write);
format(string, 11, "%d\n",varGet("Time"));
format(string, 15, "%d%d",string, varGet("Time2"));
fwrite(open, string);
fclose(open);
Abrimento, Formataзгo, Escrita, Close
pawn Код:
if(INI_Open("Teste.ini")) {
INI_WriteInt("Time", 666999777);
INI_WriteInt("Time2", 100000);
INI_Save();
INI_Close();
Abrimento, formataзгo, escrita, close. De qualquer forma, um ele praticou a leitura e outro a escrita. Mesmo assim o sistema que fiz fica mais rбpido, motivo? Obvio ..
Mas enfim, й realmente um erro for comparar as duas, cada um tem funзхes especificas.
Em breve criarei um INI_ParseFile para demonstrar o uso da funзгo
Re: (Dica) (Funзхes) Chamar variбvel por strings -
ipsBruno - 16.06.2012
Aqui um exemplo:
pawn Code:
stock INI_ParseFile(file[], callback[] = "") {
static
File:open,
stringValue[128],
stringBuffer[128], i;
open = fopen(file, io_read);
while(fread(open, stringBuffer)) {
stringBuffer[strlen(stringBuffer) - 2] = EOS;
if((i = strfind(stringBuffer, "=", false)) != -1) {
strmid(stringValue, stringBuffer, 0, i);
format(stringBuffer, 128, stringBuffer[i +1]);
stringSet(stringValue, stringBuffer);
}
}
return CallLocalFunction(callback, "");
}
public OnFilterScriptInit() {
INI_ParseFile("rs.bs", "rsBs");
return true;
}
forward rsBs();
public rsBs() {
print(stringGet("Deaths"));
return printf("leitura do arquivo executada com sucesso");
}
Foi atualizado a include. Vejam !!
Respuesta: (Dica) (Funзхes) Chamar variбvel por strings -
CidadeNovaRP - 16.06.2012
SetPVarFloat, SetPVarString, SetPVarInt e com um simples #define SetPVarBool, e seus Get's, estб й a funзгo desta include, mas sem o playerid -q
Re: Respuesta: (Dica) (Funзхes) Chamar variбvel por strings -
ipsBruno - 16.06.2012
Quote:
Originally Posted by CidadeNovaRP
SetPVarFloat, SetPVarString, SetPVarInt e com um simples #define SetPVarBool, e seus Get's, estб й a funзгo desta include, mas sem o playerid -q
|
Usar variбveis globais em PVars farб vocк literalmente se ferrar. Primeiro que caso o jogador desconecte a variбvel serб resetada. Segundo que caso o jogador esteja offline o valor da variбvel nem serб colocado. E terceiro, que PVars sгo muitas vezes lentas, apesar de dinвmicas. Neste caso, aconselho minha include.
Sim, mas й verdade. Sгo PVars Globais rбpidas. "GVars"!
Respuesta: Re: Respuesta: (Dica) (Funзхes) Chamar variбvel por strings -
CidadeNovaRP - 16.06.2012
Quote:
Originally Posted by [FeK]DraKiNs
Usar variбveis globais em PVars farб vocк literalmente se ferrar. Primeiro que caso o jogador desconecte a variбvel serб resetada. Segundo que caso o jogador esteja offline o valor da variбvel nem serб colocado. E terceiro, que PVars sгo muitas vezes lentas, apesar de dinвmicas. Neste caso, aconselho minha include.
Sim, mas й verdade. Sгo PVars Globais rбpidas. "GVars"!
|
Quote:
Originally Posted by [FeK]DraKiNs
Sim, mas й verdade. Sгo PVars Globais rбpidas. "GVars"!
|
Apenas isso que eu quis dizer

Para simplificar aos novatos
Re: Respuesta: Re: Respuesta: (Dica) (Funзхes) Chamar variбvel por strings -
ipsBruno - 16.06.2012
Quote:
Originally Posted by CidadeNovaRP
Apenas isso que eu quis dizer  Para simplificar aos novatos 
|
Sim, sim. Eu entendi. Atй coloquei na parte inicial do tуpico pra deixar explicito a funзгo disto.
Re: (Dica) (Funзхes) Chamar variбvel por strings -
ipsBruno - 17.06.2012
Quote:
Originally Posted by [FeK]DraKiNs
Surgiu um pequeno erro na biblioteca de gVars. Especificadamente nas funзхes stringSet e stringGet. Atualizaзгo:
pawn Code:
#define max_lines_cache (999) // maximo de variaveis str #define max_dep_memory (256) // maximo de caracteres em cada var
stock bufferStrings[max_lines_file][max_dep_memory]; stock sizeMemory = 0;
#define stringSet(%0,%1) format(bufferStrings[(setproperty(0, .name=%0, .value=( existproperty(0, %0) ) ? getproperty(0,%0) : ++sizeMemory),sizeMemory)], max_dep_memory, %1) #define stringGet(%0) bufferStrings[getproperty(0,%0)]
#define varGet(%0) getproperty(0,%0) #define varSet(%0,%1) setproperty(0, %0, %1)
Obs Este projeto nгo usa as funзхes bugadas, entгo nгo й necessбrio atualizar. Mas caso for usar a_gvars para outras coisas atualize
|
Passaram 24 horas do meu ъltimo post acima.
Atualizado 17 06 2012. VEJAM TУPICO
Re: (Dica) (Funзхes) Chamar variбvel por strings -
DartakousLien - 18.06.2012
Poxa DraKiNs, sempre com coisas otimas

por acaso "property", nao sei se й o nome que devo usar, й uma coisa que uso bastante, mas nunca tinha pensado em testar a velocidade, nem tao pouco em usar para este efeito. Muito bom, Parabens

Jб agora, uma coisa DraKiNs, "property" й mais seguro que "PVar" ?
lembro de uma vez que eu fiz uma coisa qualquer aqui no forum e voce disse que podia usar PVar mas eu nem sabia :/ (sou uma tristeza tbm ahahah, ou era, agora eu sei

)
Re: (Dica) (Funзхes) Chamar variбvel por strings -
ipsBruno - 19.06.2012
PVars й dedicado a players. Property й para propriedades do servidor e variбveis globais afins.
Re: (Dica) (Funзхes) Chamar variбvel por strings -
DartakousLien - 19.06.2012
sim eu sei. Bem esquece, eu troquei uma coisa. A funcao й para strings globais. Ta certo. Desculpa ai
vlw, obrigado na mesma
Re: (Dica) (Funзхes) Chamar variбvel por strings -
BRUNO2BTL - 19.11.2012
poxa queria tanto essa include sou novato por isso nгo seei fazer alguйm pode postar sу o download por favor !!
Re: (Dica) (Funзхes) Chamar variбvel por strings -
smiiir - 19.11.2012
Cara se tem problema fica revivendo tуpico
Antes de Postar olha a ъltima Mensagem que postaram.
Re: (Dica) (Funзхes) Chamar variбvel por strings -
HumildadeForevis - 27.06.2013
A include ta com problemas:
D:\Users\-----\Desktop\------\pawno\include\a_gvars.inc(5) : error 017: undefined symbol "max_lines_file"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
1 Error.