Obtener mins y maxs de un modelo
#1
Como bien lo dice el título, voy a traerles un simple stock para poder obtenerlos.
Obviamente la base es de éste plugin.

Stock:
Código PHP:
stock get_model_size(const filename[], Float:mins[3], Float:maxs[3])
{
    new 
file fopen(filename"rb")
    
fseek(file160SEEK_SET)
    
    new 
bboff
    fread
(filebboffBLOCK_INT)
    
fseek(filebboff 8SEEK_SET)
    
    new 
Float:size[6]
    
fread_blocks(file_:size 6BLOCK_INT)
    
fclose(file)
    
    
mins[0] = size[0]
    
mins[1] = size[2]
    
mins[2] = size[1]
    
maxs[0] = size[3]
    
maxs[1] = size[5]
    
maxs[2] = size[4]


Ejemplo de uso:
Código PHP:
#include <amxmodx>

public plugin_init()
{
    new 
Float:vMins[3], Float:vMaxs[3]
    new const 
szModel[] = "models/b_tree.mdl"
    
get_model_size(szModelvMinsvMaxs)
    
    
// Imprimimos los valores retornados por el stock
    
new i
    
for(0;3;i++)
        
server_print("vMins[%d] = %f"ivMins[i])
    
    for(
0;3;i++)
        
server_print("vMaxs[%d] = %f"ivMaxs[i])
}

stock get_model_size(const filename[], Float:mins[3], Float:maxs[3])
{
    new 
file fopen(filename"rb")
    
fseek(file160SEEK_SET)
    
    new 
bboff
    fread
(filebboffBLOCK_INT)
    
fseek(filebboff 8SEEK_SET)
    
    new 
Float:size[6]
    
fread_blocks(file_:size 6BLOCK_INT)
    
fclose(file)
    
    
mins[0] = size[0]
    
mins[1] = size[2]
    
mins[2] = size[1]
    
maxs[0] = size[3]
    
maxs[1] = size[5]
    
maxs[2] = size[4]


Notas:
-Creo que solo funciona para los modelos "simples", es decir, para aquellos que solo tenga un hitbox. Es decir que para los modelos de jugadores, como por ejemplo 'arctic', 'gign', 'guerrilla', etc. no funcionará.
-No sé porqué pero los valores 'Y' y 'Z' están "intercambiados".
-No es obligatorio que el modelo esté precacheado.

Saludos mis pequeñas marmotas.

Ni te molestes en enviarme un mensaje privado para pedirme ayuda porque NO lo voy a contestar.
Gracias por su atención.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)