prefácio
Eu amo o plugin MapAndreas , mas eu acho tão infeliz que ele usa ~ 70 MB de de memória RAM , então eu comecei a visitar o assunto e descobri que você pode realmente obter os mesmos resultados usando fseek , definindo o indicador de posição do arquivo usando um pequeno cálculo em vez de alocar todo o mapa para a memória.
características
Este incluem tem exatamente as mesmas características que o plugin MapAndreas e é tão preciso - simplesmente não há diferença em termos de funcionamento entre eles :
[ TTable ]
MapAndreas Plugin
MapAndreas Incluir
O uso da memória
~ 70 MB RAM
nada *
exatidão
EXATAMENTE a mesma precisão que o plugin
atuação
O plugin é muito rápido ( porque os dados são alocados na memória do primeiro e tem o C ++ vantagem de desempenho )
Este incluir é mais lento do que o plugin ( obviamente, porque nós estamos usando fseek e ler tudo outra vez , mais não temos o C ++ vantagem de desempenho , neste caso)
[tr ] Inicializar tempo
Leva algum tempo para alocar a memória (~ 5 segundos)
Sem tempo de espera necessário - imediatamente pronto para uso
[/ TTable ]
* Apesar de cada script precisa de alguma memória ( dependendo do que você está usando e quanto) para executar. Suponho que isso vai usar um par de centenas de kilobytes.
Função (s)
Temos apenas uma função :
[ peão ]
estoque Float : GetPointZPos (Float const : fX , Float const : fY , e float: fZ = 0,0 );
[/ peão ]
Ele retorna o resultado e as armazena em fZ (se variável definida ) .
Exemplo ( s )
Aqui estão alguns exemplos básicos:
[ peão ]
printf ("The Z- coordenada X = 2.033,55 | Y = 1007,73 é Z = % .02f " , GetPointZPos ( 2.033,55 , 1.007,73 )) ;
[/ peão ]
Ou você pode simplesmente fazê-lo desta maneira :
[ peão ]
novo
Float : fZ
;
GetPointZPos ( 1.254,65 , -554,55 , fZ );
printf ("The Z- coordenada X = 1.254,65 | Y = -554,55 é Z = % .02f " , fZ );
[/ peão ]
resultados:
O Z- coordenada X = 2.033,55 | Y = 1007,73 é Z = 9,81
O Z- coordenada X = 1.254,65 | Y = -554,55 é Z = 67,48
notas
- Os créditos Kalcor para seu plugin do MapAndreas .
- Créditos para De [M ] no que postou um exemplo C ++ fseek lá.
baixar
MapAndreas.inc
Foreword
I love the MapAndreas plugin, but I find so unfortunate that it uses ~70 MB's of RAM memory, so I started browsing the topic and found out that you can actually get the same results using fseek by setting the position indicator of the file using a small calculation instead of allocating the whole map into the memory.
Features
This include has exactly the same features as the MapAndreas plugin and is as accurate - there's simply no difference in terms of functioning between them:
[ttable]
MapAndreas Plugin
MapAndreas Include
Memory usage
~70 MB RAM
Nothing*
Accuracy
EXACTLY the same accuracy as the plugin
Performance
The plugin is really fast (because the data is allocated in the memory first and has the C++ performance advantage)
This include is slower than the plugin (obviously because we're using fseek and read all time again plus we don't have the C++ performance advantage in this case)
[tr]Initialize time
Takes some time to allocate the memory (~5 seconds)
No waiting needed - immediately ready for use
[/ttable]
* Although every script needs some memory (depending what you're using and how much) to execute. I assume this will use a couple of hundred kilobytes.
Function(s)
We have only one function:
[pawn]
stock Float: GetPointZPos(const Float: fX, const Float: fY, &Float: fZ = 0.0);
[/pawn]
It returns the result and stores it in fZ (if variable defined).
Example(s)
Here are some basic examples:
[pawn]
printf("The Z-coordinate of X = 2033.55 | Y = 1007.73 is Z = %.02f", GetPointZPos(2033.55, 1007.73));
[/pawn]
Or you can just do it this way:
[pawn]
new
Float: fZ
;
GetPointZPos(1254.65, -554.55, fZ);
printf("The Z-coordinate of X = 1254.65 | Y = -554.55 is Z = %.02f", fZ);
[/pawn]
Results:
Notes
- Os créditos Kalcor para seu plugin do MapAndreas .
- Créditos para De [M ] no que postou um exemplo C ++ fseek lá.
Download
MapAndreas.inc
SAfull.hmap
Eu amo o plugin MapAndreas , mas eu acho tão infeliz que ele usa ~ 70 MB de de memória RAM , então eu comecei a visitar o assunto e descobri que você pode realmente obter os mesmos resultados usando fseek , definindo o indicador de posição do arquivo usando um pequeno cálculo em vez de alocar todo o mapa para a memória.
características
Este incluem tem exatamente as mesmas características que o plugin MapAndreas e é tão preciso - simplesmente não há diferença em termos de funcionamento entre eles :
[ TTable ]
MapAndreas Plugin
MapAndreas Incluir
O uso da memória
~ 70 MB RAM
nada *
exatidão
EXATAMENTE a mesma precisão que o plugin
atuação
O plugin é muito rápido ( porque os dados são alocados na memória do primeiro e tem o C ++ vantagem de desempenho )
Este incluir é mais lento do que o plugin ( obviamente, porque nós estamos usando fseek e ler tudo outra vez , mais não temos o C ++ vantagem de desempenho , neste caso)
[tr ] Inicializar tempo
Leva algum tempo para alocar a memória (~ 5 segundos)
Sem tempo de espera necessário - imediatamente pronto para uso
[/ TTable ]
* Apesar de cada script precisa de alguma memória ( dependendo do que você está usando e quanto) para executar. Suponho que isso vai usar um par de centenas de kilobytes.
Função (s)
Temos apenas uma função :
[ peão ]
estoque Float : GetPointZPos (Float const : fX , Float const : fY , e float: fZ = 0,0 );
[/ peão ]
Ele retorna o resultado e as armazena em fZ (se variável definida ) .
Exemplo ( s )
Aqui estão alguns exemplos básicos:
[ peão ]
printf ("The Z- coordenada X = 2.033,55 | Y = 1007,73 é Z = % .02f " , GetPointZPos ( 2.033,55 , 1.007,73 )) ;
[/ peão ]
Ou você pode simplesmente fazê-lo desta maneira :
[ peão ]
novo
Float : fZ
;
GetPointZPos ( 1.254,65 , -554,55 , fZ );
printf ("The Z- coordenada X = 1.254,65 | Y = -554,55 é Z = % .02f " , fZ );
[/ peão ]
resultados:
O Z- coordenada X = 2.033,55 | Y = 1007,73 é Z = 9,81
O Z- coordenada X = 1.254,65 | Y = -554,55 é Z = 67,48
notas
- Os créditos Kalcor para seu plugin do MapAndreas .
- Créditos para De [M ] no que postou um exemplo C ++ fseek lá.
baixar
MapAndreas.inc
Foreword
I love the MapAndreas plugin, but I find so unfortunate that it uses ~70 MB's of RAM memory, so I started browsing the topic and found out that you can actually get the same results using fseek by setting the position indicator of the file using a small calculation instead of allocating the whole map into the memory.
Features
This include has exactly the same features as the MapAndreas plugin and is as accurate - there's simply no difference in terms of functioning between them:
[ttable]
MapAndreas Plugin
MapAndreas Include
Memory usage
~70 MB RAM
Nothing*
Accuracy
EXACTLY the same accuracy as the plugin
Performance
The plugin is really fast (because the data is allocated in the memory first and has the C++ performance advantage)
This include is slower than the plugin (obviously because we're using fseek and read all time again plus we don't have the C++ performance advantage in this case)
[tr]Initialize time
Takes some time to allocate the memory (~5 seconds)
No waiting needed - immediately ready for use
[/ttable]
* Although every script needs some memory (depending what you're using and how much) to execute. I assume this will use a couple of hundred kilobytes.
Function(s)
We have only one function:
[pawn]
stock Float: GetPointZPos(const Float: fX, const Float: fY, &Float: fZ = 0.0);
[/pawn]
It returns the result and stores it in fZ (if variable defined).
Example(s)
Here are some basic examples:
[pawn]
printf("The Z-coordinate of X = 2033.55 | Y = 1007.73 is Z = %.02f", GetPointZPos(2033.55, 1007.73));
[/pawn]
Or you can just do it this way:
[pawn]
new
Float: fZ
;
GetPointZPos(1254.65, -554.55, fZ);
printf("The Z-coordinate of X = 1254.65 | Y = -554.55 is Z = %.02f", fZ);
[/pawn]
Results:
- Código:
The Z-coordinate of X = 2033.55 | Y = 1007.73 is Z = 9.81
The Z-coordinate of X = 1254.65 | Y = -554.55 is Z = 67.48
Notes
- Os créditos Kalcor para seu plugin do MapAndreas .
- Créditos para De [M ] no que postou um exemplo C ++ fseek lá.
Download
MapAndreas.inc
SAfull.hmap