little help with objects

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Taya
Posts: 29
Joined: 2006-11-02 14:07:13
Location: near Cologne, GERMANY

little help with objects

Post 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
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post 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
Taya
Posts: 29
Joined: 2006-11-02 14:07:13
Location: near Cologne, GERMANY

Post 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"
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post 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
Taya
Posts: 29
Joined: 2006-11-02 14:07:13
Location: near Cologne, GERMANY

Post by Taya »

super!

thanks!

aber i chanced the line

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

to ">= 0" it works perfekt!

greats
taya
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

:) no problem:)
kobol
Posts: 119
Joined: 2012-12-15 12:03:25
Location: C-Петербург

Re: little help with objects

Post 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
Post Reply