Page 1 of 1

little help with objects

Posted: 2008-01-05 21:13:55
by Taya
hi to all,

i try to get the "name" of an object. Not the name of an character. this is easy with getname.

but how can i get something like: "1000 Eichenstämme"

i tried:

Code: Select all

sub testen()
    UO.FindType("0x0190", "-1", 'ground')
    if uo.FindCount() then
       uo.print(uo.getname('finditem'))
    else
       uo.print("no item around")
    endif
end sub


but this won't work.

please is there anybody who can help me?

thanks
taya

Posted: 2008-01-05 21:19:19
by Grin

Code: Select all

sub testen() 
    UO.FindType("0x0190", "-1", 'ground')
    if uo.FindCount() then
       uo.print(str(uo.getQuantity('finditem'))+' '+uo.getname('finditem'))
    else
       uo.print("no item around")
    endif
end sub

Posted: 2008-01-06 14:33:25
by Taya
thanks.

but unfortunately is says only

"60000"

instead of

"60000 Eichenhoelzer".

if i use this with a char then is says something like

"0 Hontar Hugmool".

thus, again my question:

how can i get the "name" of an object? or should i say description or property?

the reason is that i want to chance my lootscript. some object on our shard are named like "[magic] garment". and i will loot all this "[magic]" items too.

so i will insert something like

Code: Select all

if "[magic]" in getproperty(finditem) then
   gosub loot()
endif


thanks
taya

PS: sorry i'm more familiar with easyUO but for lootscripts i think injection is the much better solution. in easyUO it's the command "event property #findid"

Posted: 2008-01-06 15:45:18
by Grin

Code: Select all

sub testen() 
    UO.FindType("-1", "-1", 'ground')
    if uo.FindCount() then
       if not uo.getname('finditem') then
         uo.click('finditem')
          wait(100)
       end if
      if InStr(uo.getname('finditem'), "[mag]") > 0 then
         uo.print("Get it")
      end if
    else
       uo.print("no item around")
    endif
end sub
sub InStr(Source, subStr)
   var n = len(subStr)
   var j
   for var i = 0 to len(Source)-n
      j = 0
      while (j < n) and (Source[i+j] == subStr[j])
         j = j+1;
      wend
      if j == n then
         return i
      end if
   next
   return -1
end sub

Posted: 2008-01-06 17:08:11
by Taya
super!

thanks!

aber i chanced the line

if InStr(uo.getname('finditem'), "[mag]") > 0 then

to ">= 0" it works perfekt!

greats
taya

Posted: 2008-01-06 18:03:29
by Grin
:) no problem:)

Re: little help with objects

Posted: 2014-03-17 21:07:57
by kobol
Нужна проверка на длину подстроки, иначе может не работать.

Code: Select all

sub InStr(Source, subStr)
   var n = len(subStr)
   var j

if len(Source)>=len(subStr) then
   
   for var i = 0 to len(Source)-n
      j = 0
      while (j < n) and (Source[i+j] == subStr[j])
         j = j+1;
      wend
      if j == n then
         return i
      end if
   next
else
end if
   return -1
   
end sub