Packing Float a Char
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 }
|