Counting in hex

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Umuri
Posts: 37
Joined: 2004-05-16 16:23:27
Contact:

Counting in hex

Post by Umuri »

Is there a way to count or convert decimal numbers to hex? i'm using a script that i need to have values from 1-ffff and i don't want to manually write conversion code if it already exists.
Leo
Expert!
Posts: 791
Joined: 2005-01-15 19:15:05
Location: Dragon World
Contact:

Post by Leo »

Image
Umuri
Posts: 37
Joined: 2004-05-16 16:23:27
Contact:

Post by Umuri »

EDIT: Ok, that worked, sort of.

Is there any way to do it without it being preceeded by 0x?

The command would accept an input of 000c, or 0c, or preferably just c, but it won't take 0x00000c.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Code: Select all

i='0f00'
hex='0x'+i
Umuri
Posts: 37
Joined: 2004-05-16 16:23:27
Contact:

Post by Umuri »

I need to convert a decimal number to hex, without the 0x prelude. I think you misunderstood me. I did not need to prefix 0x, just need a way to count from 1 to ffff in hex, without doing it in decimal + 1 then converting manually through long hard math.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Code: Select all

uo.Int2Hex(number)

uo.Hex2Int(text)
Umuri
Posts: 37
Joined: 2004-05-16 16:23:27
Contact:

Post by Umuri »

*sigh*

let's try this one more time. Again, i apologize for being unable to write this in russian, as i'm pretty sure that's the language barrier.

UO.hex2int gives an output of the form 0x0000.
I need an output just in the form of 0000.

Is there a way to format uo.hext2int so that it does not have 0x in front?
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Umuri wrote:*sigh*

let's try this one more time. Again, i apologize for being unable to write this in russian, as i'm pretty sure that's the language barrier.

UO.hex2int gives an output of the form 0x0000.
I need an output just in the form of 0000.

Is there a way to format uo.hext2int so that it does not have 0x in front?


I guess you need som' mega expert help and btw why do you need such thing ? Yea' and I'm not pretty shure that its imposible :roll:
Umuri
Posts: 37
Joined: 2004-05-16 16:23:27
Contact:

Post by Umuri »

I'm writing a program to catalogue all items in the shard.

UO.say(".add " + var)
where var is every number between 1 - 9999.
It then finds the item on the ground, pulls info from it which is sent to a text window, which another program i have pulls from and puts into a database.

Essentially just another way to make sure no items have slipped into the worldfile through bugs, except this oen can run during the night while i'm sleeping and then i can jsut compare the two databases the next day to see any changes.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Umuri wrote:I'm writing a program to catalogue all items in the shard.

UO.say(".add " + var)
where var is every number between 1 - 9999.
It then finds the item on the ground, pulls info from it which is sent to a text window, which another program i have pulls from and puts into a database.

Essentially just another way to make sure no items have slipped into the worldfile through bugs, except this oen can run during the night while i'm sleeping and then i can jsut compare the two databases the next day to see any changes.


very nice... I hope that the experts will help you or find another way to do it :roll:
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

0000 --> FFFF

Code: Select all

for i=0 to 65535
UO.Say(".add " + UO.Int2Hex(i))
next


только таких админов нужно убивать рарной киркой на ББ :cry:
Umuri
Posts: 37
Joined: 2004-05-16 16:23:27
Contact:

Post by Umuri »

UO.Int2Hex(0) -> 0x000000
I need 0, or 000000.
UO.Int2Hex(1) -> 0x000001
I need 1, or 000001.

I need a way to do it, or a way to remove the 0x prefix.
Maybe if i write it in code it will help, since apparently the translation

000001 != 0x000001

I need 000001.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Code: Select all

VAR hexnum
VAR num
num=Int2Hex(i)
hexnum=num[2]+num[3]+num[4]+num[5]
Umuri
Posts: 37
Joined: 2004-05-16 16:23:27
Contact:

Post by Umuri »

...... I feel stupid. I didn't even think to try standard char selection via array....


Thank you. Sorry for wasting your time on such a simple matter. *facepalm*
Umuri
Posts: 37
Joined: 2004-05-16 16:23:27
Contact:

Post by Umuri »

Thank you all for your help. I figure the least i can do is post the finished code for you all. I've scripted a few other staff/GM tools to help running a shard, and for catching cheaters. If there's any want i'll clean up/document those scripts and post them as well.

Also this is the first time i've written documented/clean code so any feedback would be lovely.

Code: Select all

sub itemfinder()
VAR hexnum
VAR num
var i
var BackP = 0x4000D00E  # ID of your backpack, to cancel targetting
var itemName
var itemTemp
uo.textopen()
uo.textclear()
UO.DeleteJournal()
for i=1 to 65535
num = uo.Int2Hex(i)
hexnum=num[2]+num[3]+num[4]+num[5]
uo.waittargetobject(BackP)
UO.Say(".add " + hexnum)
UO.DeleteJournal()
while not UO.Injournal("would you like to place")
wait(100)
wend
wait(300) # included to cut down on spam filter
itemTemp = uo.journal(uo.injournal("would you like to place")-1)
itemName = mid(itemTemp,34,len(itemTemp)-35)
uo.textprint("Item Number " + hexnum + " is: " + itemName)
next


end sub
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Code: Select all

uo.canceltarget()
:?:
Umuri
Posts: 37
Joined: 2004-05-16 16:23:27
Contact:

Post by Umuri »

Tried using that, but it kept saying there was no targetting to cancel.

Btw, updated script. Also includes error handling for items that do not exist.

Code: Select all

sub itemfinder()
VAR hexnum
VAR num
var i
var BackP = 0x4000D00E  # ID of your backpack, to cancel targetting
var itemName
var itemTemp
uo.textopen()
uo.textclear()
UO.DeleteJournal()
for i=1 to 65535
num = uo.Int2Hex(i)
hexnum=num[2]+num[3]+num[4]+num[5]
uo.waittargetobject(BackP)
UO.Say(".add " + hexnum)
UO.DeleteJournal()
while not UO.Injournal("would you like to place") and not UO.Injournal("a valid command")
wait(100)
wend
wait(300) # included to cut down on spam filter
if UO.Injournal("would you like to place") then
itemTemp = uo.journal(uo.injournal("would you like to place")-1)
itemName = mid(itemTemp,34,len(itemTemp)-35)
uo.textprint("Item Number " + hexnum + " is: " + itemName)
end if
if UO.Injournal("a valid command") then
uo.textprint("Item Number " + hexnum + " does not exist. ***********")
end if
next


end sub
Post Reply