Помогите преобразовать ID (hex) в строку и обратно!!!
пример:
имеем
uo.addobject(t)
a=uo.getserial('t')
потом пишем этот ID в файл (пишется), а вот при попытке его считать...
считывается либо string, который непонятно как переводить в hex, либо dex...причем кривой ('0' на выходе)..
Пока остановился на преобразовании hex->string через журнал - но это левой ногой правое ухо чесать...и обратно так непонятно как делать (через глобал?)...
ЗЫ.
попробовал писать в файл преобразованное из hex десятичное значение - пишет (1.0756493e+09), но readnumber() не читает почему-то (file read error), причем тоже самое пишет readstring().А readln() не возвращает вообще ничего...или перевод строки??...
Помогите преобразовать...
Moderators: Murderator+, Murderator
Лови:
Ну, переделаешь под себя сам.
Code: Select all
sub write1()
VAR f=file( "D:\uo\Copy\proba.dat"), a
f.open()
f.create()
uo.addobject('t')
while uo.targeting()
wait(500)
wend
a=uo.getserial('t')
f.writeln(UO.hex2int(a))
f.close()
end sub
sub read1()
VAR f=file( "D:\uo\Copy\proba.dat"), a
f.open()
a=f.readnumber()
a=UO.int2hex(a)
UO.Print(a)
end sub
Ну, переделаешь под себя сам.

Re: Помогите преобразовать...
up
>Помогите преобразовать ID (hex) в строку и обратно!!!
Серийные номера объектов - это ведь и так строковые переменные, разве нет?
По крайней мере uo.print (uo.getserial("finditem")) печатает правильный HEX.
Хотя в мануале написано
"Каждый обьект в игровом мире имеет уникальный номер, по которому вы можете сказать серверу, и сервер может сказать вам, что конкретно имеется в виду. Номер представляется обычно в виде длинного (8 знаков) шестнадцатеричноко числа вида 0x4010AF44. "
>Помогите преобразовать ID (hex) в строку и обратно!!!
Серийные номера объектов - это ведь и так строковые переменные, разве нет?
По крайней мере uo.print (uo.getserial("finditem")) печатает правильный HEX.
Хотя в мануале написано
"Каждый обьект в игровом мире имеет уникальный номер, по которому вы можете сказать серверу, и сервер может сказать вам, что конкретно имеется в виду. Номер представляется обычно в виде длинного (8 знаков) шестнадцатеричноко числа вида 0x4010AF44. "