[Problema] Y_INI - INI_WriteInt
#1

Bien, tengo un problema al guardar un numero entero en Y_INI, el problema es que el valor de la variable NegociosDatos[BizzID][nBeenRobbed] es 1422644434 (1.422.644.434) debido a que uso gettime, creo yo que al ser demaciados nъmeros no se puede guardar. Al intentar guardarlo con un comando salta automбticamente SERVER: Unknown command. (yo creo que es porque el nъmero es muy grande), їalguna soluciуn? lo ъnico que se me ocurriу es guardarlo en dos variables separadas (en una "14226" y en otra "44434") y despuйs juntarlas haciendo el valor real.

Код:
INI_WriteInt(BizzDataAll, 		"BeenRobbed", 		NegociosDatos[BizzID][nBeenRobbed]);
PD: Estб demбs decir que eliminando el guardado de esta variable el guardado funciona correctamente.

EDIT: Creo que tambiйn puedo hacerlo en string y luego convertirlo en valor con strval, pero si alguien tiene una mejor soluciуn por favor...!
Reply
#2

Tienes que sanitizar esa variable antes de usarla, debe de aceptar un numero de -2147483648 al 2147483647, se debe guardar correctamente porque apenas tienes 1422644434, prueba haciendo lo siguiente.
Condicional ternaria.
pawn Код:
INI_WriteInt(BizzDataAll, "BeenRobbed", NegociosDatos[BizzID][nBeenRobbed] = (0 >= NegociosDatos[BizzID][nBeenRobbed] < 2147483600) ? (NegociosDatos[BizzID][nBeenRobbed]) : (print("NUMERO INCORRECTO PARA ALMACENAR")) );
Reply
#3

Quote:
Originally Posted by jotajeda
Посмотреть сообщение
Tienes que sanitizar esa variable antes de usarla, debe de aceptar un numero de -2147483648 al 2147483647, se debe guardar correctamente porque apenas tienes 1422644434, prueba haciendo lo siguiente.
Condicional ternaria.
pawn Код:
INI_WriteInt(BizzDataAll, "BeenRobbed", NegociosDatos[BizzID][nBeenRobbed] = (0 >= NegociosDatos[BizzID][nBeenRobbed] < 2147483600) ? (NegociosDatos[BizzID][nBeenRobbed]) : (print("NUMERO INCORRECTO PARA ALMACENAR")) );
Gracias por responder, no sale el unknown cmd pero de todas formas sale el warning del NUMERO INCORRECTO PARA ALMACENAR en la consola, por ende no guarda el tiempo dentro del archivo.
Reply
#4

Quote:
Originally Posted by LiMPiTo
Посмотреть сообщение
Gracias por responder, no sale el unknown cmd pero de todas formas sale el warning del NUMERO INCORRECTO PARA ALMACENAR en la consola, por ende no guarda el tiempo dentro del archivo.
A entonces te imprime de que el numero es imvalido, entonces simplemente estбs almacenando un numero mayor del permitido en sistema de 32bit, tienes que ver que no supere ese numero, o talvez tengas alguna funcion mal hecha que lo que hace es darle esa tremenda cantidad de numeros en esa variable
Reply
#5

Ya estб lo solucione guardandolo con texto y usando strval. Gracias de todas formas
Reply
#6

Pudiste convertirlo a string con strval? podrнas mostrarme el cуdigo?
Reply
#7

Quote:
Originally Posted by _Zume
Посмотреть сообщение
Pudiste convertirlo a string con strval? podrнas mostrarme el cуdigo?
Ejemplo:

pawn Код:
if(strval(NegociosDatos[BizzID][nBeenRobbedSave]) > 0) // uso de if
pawn Код:
format(NegociosDatos[MyNearBizz][nBeenRobbedSave], MAX_TEXTOS_CORTOS, "%i", gettime() + MAX_TIME_ROB); // cambiarle el valor / texto
pawn Код:
INI_WriteString(BizzDataAll, "BeenRobbed", NegociosDatos[BizzID][nBeenRobbedSave]); // guardado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)