Lo que estoy buscando es
convertir/encodear/empaquetar un float a 2,3, o 4 caracteres char.
Si no se entiende les dejo un ejemplo de lo que busco pero para int.
PHP Code:
MMO_Writelong(svid, x)
{
g_netdata[svid][g_netdata_len[svid]++] = (x & 0xff000000) >> 24
g_netdata[svid][g_netdata_len[svid]++] = (x & 0x00ff0000) >> 16
g_netdata[svid][g_netdata_len[svid]++] = (x & 0x0000ff00) >> 8
g_netdata[svid][g_netdata_len[svid]++] = (x & 0x000000ff)
}
MMO_Readlong(svid)
{
static x;x=0
x = g_netdata[svid][g_netdata_read[svid]++] << 24
x |= g_netdata[svid][g_netdata_read[svid]++] << 16
x |= g_netdata[svid][g_netdata_read[svid]++] << 8
x |= g_netdata[svid][g_netdata_read[svid]++]
return x
}
@EDIT
Que boludo,era mucho mas simple de lo que pensaba...
PHP Code:
MMO_WriteFloat(svid, Float:x2)
{
new x=_:x2
g_netdata[svid][g_netdata_len[svid]++] = (x & 0xff000000) >> 24
g_netdata[svid][g_netdata_len[svid]++] = (x & 0x00ff0000) >> 16
g_netdata[svid][g_netdata_len[svid]++] = (x & 0x0000ff00) >> 8
g_netdata[svid][g_netdata_len[svid]++] = (x & 0x000000ff)
}
Float:MMO_ReadFloat(svid)
{
static x;x=0
x = g_netdata[svid][g_netdata_read[svid]++] << 24
x |= g_netdata[svid][g_netdata_read[svid]++] << 16
x |= g_netdata[svid][g_netdata_read[svid]++] << 8
x |= g_netdata[svid][g_netdata_read[svid]++]
return Float:x
}
__________________