Page 1 of 1

Помогите преобразовать...

Posted: 2005-08-31 02:30:16
by DvorKin
Помогите преобразовать 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() не возвращает вообще ничего...или перевод строки??...

Posted: 2005-08-31 09:36:55
by 666Man666
А что ты в фаил пишеш и зачем?
ты читал FAQ по скриптовому модулю?

Posted: 2005-08-31 23:34:43
by DvorKin
666Man666 wrote:А что ты в фаил пишеш и зачем?
ты читал FAQ по скриптовому модулю?

В файле хочу сохранить АйДи рун и вендоров
Факи читал - не помогло)))

Posted: 2005-09-12 07:18:05
by Solaire
Лови:

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: Помогите преобразовать...

Posted: 2016-01-05 00:31:37
by kobol
up

>Помогите преобразовать ID (hex) в строку и обратно!!!

Серийные номера объектов - это ведь и так строковые переменные, разве нет?
По крайней мере uo.print (uo.getserial("finditem")) печатает правильный HEX.

Хотя в мануале написано
"Каждый обьект в игровом мире имеет уникальный номер, по которому вы можете сказать серверу, и сервер может сказать вам, что конкретно имеется в виду. Номер представляется обычно в виде длинного (8 знаков) шестнадцатеричноко числа вида 0x4010AF44. "