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