Autor: Kostrón Sabrosón
Versión de GM: Studio 1.4.9999.
Descripción: Metes un valor o variable y te devuelve una constante de esta lista
https://i.gyazo.com/814f6cb922f0d1484f1991349c6ae8db.pngevadiendo "buffer_f16" y "buffer_text" que según he leido, GM no los soporta.
script:
var val = argument[0];
if is_string(val) {
return buffer_string;
exit;
}
else if is_bool(val) {
return buffer_bool;
exit;
}
else {
var str = string(val);
if string_count(".",str) > 0 {
if val >= 16777216
&& val < 16777216 {
return buffer_f32;
exit;
}
else {
return buffer_f64;
exit;
}
}
else {
if val < 0 {
if val >= -128 {
return buffer_s8;
exit;
}
else if val >= -32768 {
return buffer_s16;
exit;
}
else if val >= -2147483648 {
return buffer_s32;
exit;
}
else {
return buffer_u64;
exit;
}
}
else {
if val <= 127 {
return buffer_s8;
exit;
}
else if val <= 255 {
return buffer_u8;
exit;
}
else if val <= 32767 {
return buffer_s16;
exit;
}
else if val <= 2147483647 {
return buffer_s32;
exit;
}
else if val <= 4294967295 {
return buffer_u32;
exit;
}
else {
return buffer_u64;
}
}
}
}
ejemplos:buffer_type(24) te debolverá la constante "buffer_s8"
buffer_type(false) te devolverá la constante "buffer_bool"
var ejemplo = -2345303.23;
buffer_type(ejemplo) te devolverá la constante "buffer_f32"
var global.ejemplo2 = "ola k ase";
buffer_type(global.ejemplo2) te devolverá la constante "buffer_string"
Eso es todo, si alguien que sea más pro que yo se le ocurre una manera mejor sin tener que poner 500 ifs embedidos unos a los otros, es libre de comentarlo y aportar mejoras
