Page 1 of 1

LastCorpse > 3

Posted: 2006-05-11 15:32:35
by tcl70
kak sdelat' script na proverku skolko v trupe veshej ? :) , pomogite kto mozet atu ja dazhe neznaju s 4ego na4at'

Posted: 2006-05-11 16:01:28
by Grin

Code: Select all

uo.findtype(-1, -1, "lastcorpse")
uo.print(str(uo.findcount()))

Posted: 2006-05-11 20:14:42
by tcl70
sposiba bolshoe :D

PS: kak mne skript po4enit' ? tak 4tob on zdal poka trup otkroetca i ne4ego 4tob bolshe ne delal ? :) i topom po o4eredi po scriptam prohodil ? :)

Code: Select all

sub cheaker()
   while true
      uo.findtype("-1","-1","lastcorpse")
      uo.Waiting("lastcorpse")
      if uo.FindCount() > 3 then
         loot()
         else
         wait(1000)
      endif
      if uo.FindCount() <= 3 then
         sac()
         else
         wait(1000)
      endif   
   wend
endsub

sub loot()
    UO.waittargetobject("lastcorpse");
    UO.emptycontainer("550", "lastcorpse");
    wait(3000)
    sac()
endsub

sub sac()
   uo.waittargetobject("lastcorpse")
   uo.sayu(".sac")
   wait(1000)
   cheaker()
endsub

Posted: 2006-05-11 23:29:58
by Grin
труп считается открытым когда lastcontainer == lastcorpse

Posted: 2006-05-11 23:59:40
by Edred
Grin wrote:труп считается открытым когда lastcontainer == lastcorpse


Ну, наверное, не всегда? Вполне вероятно, что пока ты открываешь труп, рядом появится еще один и тогда ласткотейнер не будет равен ласткорпс.

Posted: 2006-05-12 03:15:08
by tcl70
ja zaputalsja :? s skriptom mne nado 4tob mne ktota v asku postu4al i pomog :-/

Posted: 2006-05-12 05:02:19
by Grin
Edred wrote:
Grin wrote:труп считается открытым когда lastcontainer == lastcorpse


Ну, наверное, не всегда? Вполне вероятно, что пока ты открываешь труп, рядом появится еще один и тогда ласткотейнер не будет равен ласткорпс.

Естественно... А есле быть внимательным то я гдет ос пару месяцев назад выкладывал версию инжекта с маленьким фиксом...
Я выкинуд возможность устанавливать lasttarget за менил его на lastcontainer и народ меня не понял%))

tcl70 кидай сюда скрипт...
Если ты открываешь труп который только что упал или ыты его нашел через файнд тайп, то ничего страшного нет. Если труп только что упал то его ИД лутше сохранить, что бы избежать случия описаного эдредом.
тоесть

Code: Select all

corpse=uo.GetSerial("lastcorpse")
if uo.GetDistanse(corpse) < 3 then
    uo.useobject(corpse)
    while corpse <> uo.GetSerial("lastcontainer")
        wait(100)
    wend
end if

через файнд дтайп без всяких сохранений...
А вообще выкладывай свой скрипт.

Posted: 2006-05-12 20:34:08
by tcl70
Sposiba vam oboim , no serial trupika mne nenuzhen potomu kak sak delaju trup is'shezaet i 4erez 3secundi spawnitca novim mob , i ego jaa tak bistro ne ubevaju :)

Posted: 2006-05-13 07:24:58
by Grin
зато может убить ктонибудь другой... + поблизости могут когото убить...

Posted: 2006-05-13 12:35:11
by tcl70
Grin wrote:зато может убить ктонибудь другой... + поблизости могут когото убить...


somnevajus' 4to ktonit' hot' mima projdet :)) , tam krome menja nekogo bolshe i netu uzhe nedelu :)

Image

Posted: 2006-05-14 06:16:22
by tcl70
u menja script ne lutaet i govorit wrong grafic type :-/ iza 4ego eto mozet bit' ? pomogite esli vam ne zalko

Code: Select all

sub test()
   var WaitTime=800
   dim iTake[2]
   iTake[0]=0x0EED ; gold
   iTake[1]=0x1422 ; tix
   var l
   var corpse = uo.getserial("lastcorpse")
   if UO.GetDistance(corpse) < 3 then
      uo.useobject(corpse)
      while corpse <> uo.GetSerial("lastcontainer")
         wait(100)
      wend
   end if
   wait(550)
   For l = 0 To 1
      repeat
      if UO.FindCount("finditem") >= 1 then
         UO.FindType(iTake[l], "-1", "lastcontainer" )
         UO.MoveItem( "finditem" )
         wait( 1000 )
         UO.FindType(iTake[l], "-1", "lastcontainer" )
      endif   
      until UO.FindCount("finditem") <= 1
   next
   UO.Print(UO.Count(corpse))
endsub

Posted: 2006-05-14 12:04:49
by Grin

Code: Select all

sub test()
   var WaitTime=800
   var l
   var corpse = uo.getserial("lastcorpse")
   dim iTake[2]
   iTake[0]=0x0EED ; gold
   iTake[1]=0x1422 ; tix
   if UO.GetDistance(corpse) < 3 then
      uo.useobject(corpse)
      while corpse <> uo.GetSerial("lastcontainer")
         wait(100)
      wend
      For l = 0 To 1
         repeat
            UO.FindType(iTake[l], "-1", corpse)
            if uo.FindCount() then
               UO.grab("finditem")
               wait(1000)
            end if
         until UO.FindCount() <= 1
      next
   end if
   UO.Print(UO.GetGraphic(corpse))
end sub

Posted: 2006-05-14 17:08:02
by tcl70
Grin sposiba tebe snova za pomosh no uo.grab 4et na tom servake nepashet kak nado , tolko precel vilezaet i vse :-/

PS: script zarabotal kogda grab na moveitem smenil :D

Posted: 2006-05-14 18:57:07
by Grin
UO.grab(0, "finditem")

Posted: 2006-05-14 20:19:58
by tcl70
sposiba bolshoe rabotaet super teper' :)

Posted: 2006-05-15 01:04:46
by tcl70
kak sdelat' tak 4tob script dozhidalsja trupa i ne4ego ne delal poka on ne otkroetca ?

Code: Select all

##Cheaker##
sub iLook()
   while true
      uo.findtype("-1","-1","lastcorpse")
      if uo.FindCount() >= 3 then
         iLoot()
         else
         iTake()
         wait(1000)
      endif
   wend
end sub

##Looter##
sub iLoot()
   var WaitTime=800
   var l
   var corpse = uo.getserial("lastcorpse")
   dim iTake[2]
   iTake[0]=0x0EED ; gold
   iTake[1]=0x1422 ; tix
   if UO.GetDistance(corpse) < 3 then
      uo.useobject(corpse)
      while corpse <> uo.GetSerial("lastcontainer")
         wait(100)
      wend
     UO.SetReceivingContainer(0x40004DD6)
      For l = 0 To 1
         repeat
            UO.FindType(iTake[l], "-1", corpse)
            if uo.FindCount() then
               UO.grab(0, "finditem")
               wait(1000)
            end if
         until UO.FindCount() <= 1
      next
   end if
   UO.UnSetReceivingContainer()
   UO.Print(UO.GetGraphic(corpse))
   wait(3000)
   iSac()
end sub

##Loot all items##
sub iTake()
   UO.waittargetobject("lastcorpse");
   UO.emptycontainer("550", "lastcorpse");
   wait(3000)
   iSac()
end sub

##Corpse .sac script##
sub iSac()
   uo.waittargetobject("lastcorpse");
   uo.sayu(".sac");
   wait(2000)
   iLook()   
end sub

Posted: 2006-05-15 09:46:09
by Grin

Code: Select all

##Cheaker## 
sub iLook()
   var corpse
   while true
      uo.findtype("0x2006","-1","ground")
      wait(500)
      if uo.FindCount() then
         corpse=uo.GetSerial("finditem")
         uo.findtype("-1","-1",corpse)
         if uo.findcount()>=3 then
            iLoot(corpse)
         else
            iTake(corpse)
            wait(1000)
         end if
         uo.ignore(corpse)
      endif
   wend
end sub

##Looter##
sub iLoot(corpse)
var WaitTime=800
var l
dim iTake[2]
iTake[0]=0x0EED ; gold
iTake[1]=0x1422 ; tix
if UO.GetDistance(corpse) < 3 then
uo.useobject(corpse)
while corpse <> uo.GetSerial("lastcontainer")
wait(100)
wend
UO.SetReceivingContainer(0x40004DD6)
For l = 0 To 1
repeat
UO.FindType(iTake[l], "-1", corpse)
if uo.FindCount() then
UO.grab(0, "finditem")
wait(1000)
end if
until UO.FindCount() <= 1
next
end if
UO.UnSetReceivingContainer()
UO.Print(UO.GetGraphic(corpse))
wait(3000)
iSac(corpse)
end sub

##Loot all items##
sub iTake(corpse)
UO.waittargetobject(corpse);
UO.emptycontainer("550", corpse);
wait(3000)
iSac(corpse)
end sub

##Corpse .sac script##
sub iSac(corpse)
uo.waittargetobject(corpse);
uo.sayu(".sac");
wait(2000)
end sub

Posted: 2006-05-15 10:23:34
by tcl70
Sposiba tebe OGROMNOE Image

PS: ja ne Gay