Scripted by Sfagnum aka [moss] for DRW (upd. 05.07.05)

Anything and all.

Moderators: Murderator+, Murderator

Talez
Posts: 30
Joined: 2005-02-25 20:42:05

Post by Talez »

в скрипт вместо backpack
:roll:
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Talez wrote:в скрипт вместо backpack :roll:
кхм... кхм...
возьми скрипт с первой страницы... и дальше объявления переменных не лазей.
Talez
Posts: 30
Joined: 2005-02-25 20:42:05

Post by Talez »

И всё-еаки из дочерних сумок не продаётся ничего(((
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Talez wrote:И всё-еаки из дочерних сумок не продаётся ничего(((
покажи строчку в которой ты 'backpack' менял на сериал сумки.
Talez
Posts: 30
Joined: 2005-02-25 20:42:05

Post by Talez »

UO.UseObject('0x4020091E')
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Talez wrote:UO.UseObject('0x4020091E')
мдя........ я тебе говорил что перед продажей надо открыть каждый мешочек??? не кликнуть на него, а именно открыть(!!!), твоё "изменение" именно это и делает вместо тебя.
Talez
Posts: 30
Joined: 2005-02-25 20:42:05

Post by Talez »

Что открывай, что не открывай, одно и тоже...Не продаёт и всё тут...
У моего знакомого тоже самое...месяц назад продавал, а теперь тоже не продаёт...Может сферу переделали?
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Talez wrote:Что открывай, что не открывай, одно и тоже...Не продаёт и всё тут...
У моего знакомого тоже самое...месяц назад продавал, а теперь тоже не продаёт...Может сферу переделали?
:lol: :lol: :lol:
эт вряд ли... я сам давно не продовал... попробую
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Camping - "Лесной брат"

Post by Sfagnum »

Больная вариация на мотивы ламбера доветеранововского и скрипта на camping от Askaneli.

Описание: Скрипт написан для прокачки Camping'а, т.с. не отходя от кассы, тобишь в лесу.
1. всё что надо для работы скрипта это нож, лес и свежий воздух ;).
2. kindling - запускает непосредственно прокачку.
3. MarckingLumbers - марчит деревья, как в скрипте на ламбер, нужно - лопата/кирка, выключается кликом на себя.
4. если в пак положите еду - будет питаться в процесе прокачки.
5. при достижении 100% реального значения скила - окно УО закроется.
Особенности:
1. Можно использовать файл координат сгенерированный Ветерановским скриптом на Ламбер.
2. Здесь вставлена слегка кострированная ходилка от Savage'a

ЗЫ ещё подрехтовал ходилку под нужды скрипта... теперь дОлжно работать как положено.

Code: Select all

var fName= "C:\uo\inject\trees3.dat" ## - Путь к файлу в котором будут хранится координаты деревьев.
var TypeFood='0x097B' ## - Тип еды которую будем кушать.(сейчас фиштейки
var tKnife = '0x0F51' ; тип ножа, если он в руках - не придётся тыкать на него прицелом.

sub kindling()
var i, f
dim TreeX[500],TreeY[500],TreeT[500]
var flag,treeCount=0
	UO.Exec('terminate Reconnector')
	UO.Exec('exec Reconnector')
	if UO.GetGraphic(UO.ObjAtLayer('Rhand')) == '0x0F51' then
		uo.waittargetobject(UO.ObjAtLayer('Rhand'))
		uo.AddObject('knife')
	else
		UO.Print('Мтякс... покажЪ нож...')
		uo.AddObject('knife')
		while uo.Targeting()
			wait(100)
		wend
	end if
	ToHide()
	uo.Print('Посмотримс, что там у нас в файлике завалялось...')
	f = file(fName)
	f.open()
	treeCount=safe call f.ReadNumber()
	for i=1 to treeCount
		TreeT[i]=safe call f.ReadNumber()
		TreeX[i]=safe call f.ReadNumber()
		TreeY[i]=safe call f.ReadNumber()
	next
	f.close()
	Orfo(str(treeCount),'Значится пошукал я и нашел '+str(treeCount)+' дерев','',0)
	wait(2000)
	ToHide()
	if treeCount<1 then
		return
	end if
	uo.set('finddistance','3')
	uo.FilterSpeech('on')
	uo.FilterSpeech('add', 'What do you want to use this on?')
	while not UO.Dead()
		for i=1 to treeCount
			if uo.skillval('Camping',1)==1000 then
				uo.set('finddistance','14')
				uo.FilterSpeech('off')
				UO.CloseUO()
			end if
			uo.Print('Потопал к дереву №'+str(i)+': x='+str(TreeX[i])+' y='+str(TreeY[i]))
			if GotoXY(TreeX[i],TreeY[i]) == 1 then
				GetTree(str(TreeT[i]),str(TreeX[i]),str(TreeY[i]),str(uo.GetZ()))
				Camping()
			end if
		next
		ToEat()
	wend
	uo.set('finddistance','14')
	uo.FilterSpeech('off')
	UO.CloseUO()
end Sub

Sub GetTree(Type,X,Y,Z)
var lt
var Text2='There is no wood left to harvest'
var Text3="You can't"
var Text4='That is too far away.'
var Text5='Chopping the tree '
var Text6='You put'
	UO.DeleteJournal()
	while not UO.InJournal(Text2) and not UO.InJournal(Text3) and not UO.InJournal(Text4) and not UO.InJournal(Text5) and not UO.Dead()
		ToHide()
		CheckLag()
		uo.WaitTargetTile(Type,X,Y,Z)
		uo.UseObject('knife')
		lt = UO.Timer()
		while not UO.InJournal(Text2) and not UO.InJournal(Text3) and not UO.InJournal(Text4) and not UO.InJournal(Text5) and not UO.InJournal(Text6) and not UO.Dead() and lt+100 > UO.Timer()
			wait(100)
		wend
		if lt+100 < UO.Timer() then
			if uo.targeting() then
				uo.canceltarget()
			end if
			UO.Print('Больное какое то дерево')
			return
		end if
	wend
end Sub

sub MarckingLumbers()
var k, i
dim TreeX[500], TreeY[500],TreeT[500]
dim TreeTile[29]
var flag=0, treeCount=0, flag2=0
TreeTile[0]=3277
TreeTile[1]=3280
TreeTile[2]=3283
TreeTile[3]=3286
TreeTile[4]=3289
TreeTile[5]=3291
TreeTile[6]=3294
TreeTile[7]=3296
TreeTile[8]=3299
TreeTile[9]=3302
TreeTile[10]=3393
TreeTile[11]=3394
TreeTile[12]=3395
TreeTile[13]=3396
TreeTile[14]=3415
TreeTile[15]=3416
TreeTile[16]=3417
TreeTile[17]=3418
TreeTile[18]=3419
TreeTile[19]=3438
TreeTile[20]=3439
TreeTile[21]=3440
TreeTile[22]=3441
TreeTile[23]=3442
TreeTile[24]=3460
TreeTile[25]=3461
TreeTile[26]=3462
TreeTile[27]=3290
TreeTile[28]=3288
	uo.FilterSpeech('on')
	uo.FilterSpeech('add', 'Where do you want to use the')
	uo.Print('Ты будешь смеятся, но мне нужна либо кирка, либо лопата...')
	uo.AddObject('Pickaxe')
	While uo.Targeting()
		Wait (100)
	Wend
	uo.Print('Попёрли искать дерева... ты тыкаешь на них, а я тя проверяю...')
	UO.DeleteJournal()
	while uo.Lasttile(1)<>uo.getX() and uo.Lasttile(2)<>uo.gety()
		CheckLag()
		uo.UseObject('Pickaxe')
		if WaitForTryRock()==0 then
			flag = 0
			for k = 0 To 9
				if uo.LastTile(0)==TreeTile[k]+1 then
					flag = 2
				end if
			next
			if flag == 0 then
				for k = 0 To 28
					if uo.LastTile(0)==TreeTile[k] then
						flag = 1
					end if
				next
			end if
			if flag > 0 then
				flag2 = 0
				if treeCount > 0 Then
					for i = 1 To treeCount
						if TreeX[i]==uo.LastTile(1) and TreeY[i]==uo.LastTile(2) then
							flag2 = 1
						end if
					next
				end if
				if flag2 == 0 then
					treeCount = treeCount + 1
					TreeX [treeCount] = uo.LastTile(1)
					TreeY [treeCount] = uo.LastTile(2)
					if flag == 1 then
						TreeT [treeCount] = uo.LastTile(0)
					else
						TreeT [treeCount] = uo.LastTile(0) - 1
					end if
					uo.print('Надо же! В дерево попал!!! В это: x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2)))
					Orfo(str(treeCount),'Всего '+str(treeCount)+' дерев',' наковырял',0)
				else
					uo.Print('Вот чукча!!! Ты мне енто дерево уже показывал!!!, давай что нибудь новенькое покажи...')
				end if
			else
				UO.Print('похоже... но не дерево...')
			end if
		end if
	wend
	uo.Filterspeech('off')
	if treeCount < 1 then
		UO.Print('И чо ты мне мозги тут пудрил? Ни одного дерева же не нашёл!')
		UO.Print('Ну ни чо в другой раз тебе больше повезёт :)')
		return
	end if
	if treeCount < 100 then
		uo.Print('И чо ты думаешь этого тебе хватит?!?!?')
	else
		uo.Print('Ну ты и хапуга... и глянь терпения то хватило...')
	end if
	wait(200)
	uo.Print('Да не расстраивайся ты... я так шутю :)')
	wait(200)
	uo.Print('посмотрел я тут на досуге, что ты навыбирал...')
	uo.Print('буду попробывать скинуть в файл...')
	SaveToFile(treeCount,TreeX,TreeY,TreeT)
	wait(500)
	uo.Print('Всё! Типа скинул в файл: ' + fName)
	wait(200)
	uo.Print('Эё!!! Ты куда собрался? погодь я тебя ещё не отпустил, ща рубать пойдём...')
	wait(700)
	kindling()
end Sub

Sub WaitForTryRock()
var Text1="Try mining in rock."
var Text2="That is too far away."
var Text3="You can't see the target"
var Text4="You have no line of sight to that location"
var Text5="There is no ore here to mine."
var Text6='You loosen'
var Text7='You put'
var Text8='OOPS!!!'
var Text9='STOPPP'
	while not UO.InJournal(Text1) and not UO.InJournal(Text2) and not UO.InJournal(Text3) and not UO.InJournal(Text4) and not UO.InJournal(Text5) and not UO.InJournal(Text6) and not UO.InJournal(Text7) and not UO.InJournal(Text8) and not UO.InJournal(Text9)
		wait(50)
	wend
	if UO.InJournal(Text1) then
		UO.Print('ща посмотрю куда ты там тыкнул...')
		return 0
	end if
	if UO.InJournal(Text2) or UO.InJournal(Text3) or UO.InJournal(Text4) then
		UO.Print('а чо поближе дерева не водятся?')
	end if
	if UO.InJournal(Text5) or UO.InJournal(Text6) or UO.InJournal(Text7) or UO.InJournal(Text8) then
		UO.Print('Ты вроде подрова собирался??? Ну так и иди... лесом иди...')
	end if
	return 1
end Sub

Sub SaveToFile(treeCount,TreeX,TreeY,TreeT)
var s=0,i=0, f
	f = file(fName)
	f.open()
	f.create()
	s=safe call f.writeln(treeCount)
	for i=1 to treeCount
		s=safe call f.writeln(str(TreeT[i])+' '+str(TreeX[i])+' '+str(TreeY[i]))
	next
	f.close()
end Sub

Sub Orfo(sNum, fStr, lStr, Rod) ## Rod - 0/1; 0 - дерево, 1 - лог
var n=VAL(Right(sNum,1))
	if n==0 then
		if Rod == 0 then
			UO.Print(fStr+'а'+lStr)
		else
			UO.Print(fStr+lStr)
		end if
		return
	end if
	if n<5 then
		UO.Print(fStr+'а'+lStr)
		return
	end if
	if Rod == 0 then
		UO.Print(fStr+'ев'+lStr)
	else
		UO.Print(fStr+'ов'+lStr)
	end if
end Sub

Sub Camping()
var mx=uo.getx(),my=uo.gety(),x,y
	uo.DeleteJournal()
	while uo.count('0x0DE1','0x0000') > 0
		for x=mx-2 to mx+2
			for y=my-2 to my+2
				CheckLag()
				if uo.count('0x0DE1','0x0000')==0 or uo.Dead() then
					return
				end if
				uo.findtype('0x0DE1','0x0000','ground')
				if UO.FindCount() == 0 then
					uo.findtype('0x0DE1','0x0000','backpack')
					uo.drop('1',str(x),str(y),str(uo.getz()),'finditem')
					CheckLag()
				end if
				uo.findtype('0x0DE1','0x0000','ground')
				if UO.FindCount() > 0 then
					uo.deletejournal()
					uo.useobject('finditem')
					wait(1500)
					if uo.injournal("You can't") then
						uo.ignore('finditem')
					end if
				end if
			next
		next
	wend
end Sub

Sub ToHide()
	while not UO.Hidden()
		CheckLag()
		UO.WarMode(0)
		UO.UseSkill('Hiding')
		repeat
			wait(200)
		until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preocopured') or UO.Dead()
	wend
end Sub

Sub ToEat()
	UO.DeleteJournal()
	UO.FindType(TypeFood,'0x0000','backpack')
	while UO.FindCount() > 0 and not uo.InJournal('too full') and not UO.Dead()
		CheckLag()
		uo.UseType(TypeFood,'0x0000')
		while not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead()
			wait(100)
		wend
		UO.FindType(TypeFood,'0x0000','backpack')
	wend
end Sub

Sub CheckLag()
	if uo.Waiting()>0 then
		uo.Exec('canceltarget')
	end if
	uo.DeleteJournal()
	uo.Click('backpack')
	repeat
		wait(50)
	until uo.InJournal('backpack') or UO.Dead()
end Sub

Sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
UO.Exec('terminate kindling')
wait(1000)
UO.Exec('exec kindling')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub

Sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub

###################################################################################################
################################# тут ходилка #####################################################
###################################################################################################

Sub GotoXY(x,y)
	VAR i
	VAR dir,ldir,rdir,key,olddir
	VAR dx,dy,Exit=0
	VAR CacheLimit=9,CacheIndex="Text"
	DIM CacheX[10], CacheY[10]
	
	CacheX[0]="Test"
	While Exit<>1		
		dx=x-UO.GetX()
		dy=y-UO.GetY()
		If dx<=2 AND dy<=2 Then
			Exit=1
		Endif
		If dx<>0 AND dy<>0 Then
			If dx>0 AND dy>0 Then ; GoSE
				dir=3
				ldir=2
				rdir=4
				key=40 ; DownArrow
				olddir=UO.GetDir()
				If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
					If olddir==2 Then ; GoNE
						dir=1
						ldir=0
						rdir=1
						key=39 ; RightArrow
						While UO.GetDir()<>1
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSW
						dir=5
						ldir=5
						rdir=6
						key=37 ; LeftArrow
						While UO.GetDir()<>5
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif

			If dx>0 AND dy<0 Then ; GoNE
				dir=1
				ldir=0
				rdir=2
				key=39 ; RightArrow
				olddir=UO.GetDir()
				If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
					If olddir==0 Then ; GoWN
						dir=7
						ldir=6
						rdir=7
						key=38 ; UpArrow
						While UO.GetDir()<>7
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSE
						dir=3
						ldir=3
						rdir=4
						key=40 ; DownArrow
						While UO.GetDir()<>3
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif

			If dx<0 AND dy>0 Then ; GoSW
				dir=5
				ldir=4
				rdir=6
				key=37 ; LeftArrow
				olddir=UO.GetDir()
				If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
					If olddir==6 Then ; GoWN
						dir=7
						ldir=7
						rdir=0
						key=38 ; UpArrow
						While UO.GetDir()<>7
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSE
						dir=3
						ldir=2
						rdir=3
						key=40 ; DownArrow
						While UO.GetDir()<>3
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif

			If dx<0 AND dy<0 Then ; GoWN
				dir=7
				ldir=6
				rdir=0
				key=38 ; UpArrow
				olddir=UO.GetDir()
				If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
					If olddir==0 Then ; GoNE
						dir=1
						ldir=1
						rdir=2
						key=39 ; RightArrow
						While UO.GetDir()<>1
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSW
						dir=5
						ldir=4
						rdir=5
						key=37 ; LeftArrow
						While UO.GetDir()<>5
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
		Endif
	
		If dx<>0 AND dy==0 Then
			If dx>0 Then ; GoE
				dir=2
				key=34 ; PgDown
				olddir=UO.GetDir()
				If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
					If olddir==2 Then ; GoSE
						dir=3
						ldir=3
						rdir=4
						key=40 ; DownArrow
						While UO.GetDir()<>3
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoNE
						dir=1
						ldir=1
						rdir=0
						key=39 ; RightArrow
						While UO.GetDir()<>1
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
			
			If dx<0 Then ; GoW
				dir=6
				key=36 ; Home key
				olddir=UO.GetDir()
				If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
					If olddir==0 Then ; GoWN
						dir=7
						ldir=7
						rdir=0
						key=38 ; UpArrow
						While UO.GetDir()<>7
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSW
						dir=5
						ldir=4
						rdir=5
						key=37 ; LeftArrow
						While UO.GetDir()<>5
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
		Endif

		If dx==0 AND dy<>0 Then
			If dy>0 Then ; GoS
				dir=4
				key=35 ; End
				If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
					If olddir==2 Then ; GoSE
						dir=3
						ldir=2
						rdir=3
						key=40 ; DownArrow
						While UO.GetDir()<>3
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSW
						dir=5
						ldir=6
						rdir=5
						key=37 ; LeftArrow
						While UO.GetDir()<>5
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
			
			If dy<0 Then ;GoN
				dir=0
				key=33 ; PgUp
				olddir=UO.GetDir()
				If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
					If olddir==2 Then ; GoNE
						dir=1
						ldir=1
						rdir=2
						key=39 ; RightArrow
						While UO.GetDir()<>1
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoWN
						dir=7
						ldir=7
						rdir=6
						key=38 ; UpArrow
						While UO.GetDir()<>7
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
		Endif
	Wend
	return 1
end sub


Sub StepEdit(x,y,dir,key)
	VAR walkwait=300
	VAR ErrLevel=0
	If UO.GetDir()<>dir Then
		UO.Press(key)
		wait(walkwait)
		If UO.GetDir()<>dir Then
			CheckLag()
		Endif
	Endif
	UO.Press(key)
	wait(walkwait)
	If x==UO.GetX() AND y==UO.GetY() Then
		CheckLag()
		If x==UO.GetX() AND y==UO.GetY() Then
;zatik
			ErrLevel=1
		Endif
	Endif
	Return ErrLevel
end sub


Sub StepArrow(x,y,dir,ldir,rdir,key)
	VAR walkwait=300
	VAR ErrLevel=0
	If UO.GetDir()<>dir Then
		UO.Press(key)
		wait(walkwait)
		If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then
			CheckLag()
		Endif
	Endif

	If UO.GetX()==x AND UO.GetY()==y Then
		UO.Press(key)
		wait(walkwait)
		If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
			CheckLag()
			If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
; zatik			
				ErrLevel=1
			Endif
		Endif
	Endif
	Return ErrLevel
end sub
Last edited by Sfagnum on 2005-06-06 11:21:21, edited 2 times in total.
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Code: Select all

UO.Print('ща посмотрю куда ты там тыкнул...') 
UO.Print('Ты вроде подрова собирался??? Ну так и иди... лесом иди...') 
UO.Print('а чо поближе дерева не водятся?') 
...
без сих словец работать небудет :lol:
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

I'm wrote:

Code: Select all

UO.Print('ща посмотрю куда ты там тыкнул...') 
UO.Print('Ты вроде подрова собирался??? Ну так и иди... лесом иди...') 
UO.Print('а чо поближе дерева не водятся?') 
...
без сих словец работать небудет :lol:
ни в коем разе :lol:
сам понимаешь без шаманских заклинаний скрипт хреново работает ;)

ЗЫ нашлись проблемы с марком деревОв... протесчу - поправлю... старинный кусок кода... и не уверен что финальный ;)
zarg
Posts: 116
Joined: 2004-08-29 08:33:44

Re: Производство торчей.

Post by zarg »

Sfagnum wrote:Описание: Производит торчи из всех доступных цветных логов от Oak logs до Titan Tree logs, в процессе крафта питается.
Особенности:Наличие 2х контейнеров не обязательно. Можно обойтись как одним контейнером, так и без оного. Для первого случая прописываете в idSourceCont и в idResiveCont одинаковые значения, во втором для тех же переменных в качестве значения устанавливаете id backpack'а. Для крафта необходимо наличие ножа в backpack'е.

Code: Select all

var idSourceCont = '0x40228D09'	;контейнер в котором лежат логи и еда
var idResiveCont = '0x40228D09'	;контейнер в который будут складываться торчи (можно складывать туда же откуда беруться логи)
var tTools = '0x0F51'				;тип ножа
var сTools = '-1'					;цвет ножа
var tEat = '0x097B'					;тип еды
var cEat = '0x0000'					;цвет еды
var qTree = 250						;кол-во логов которое берётся за раз

Sub main()
var i
Dim cTree[17]
  cTree[0]='0x047C'
  cTree[1]='0x0279'
  cTree[2]='0x096B'
  cTree[3]='0x0237'
  cTree[4]='0x0482'
  cTree[5]='0x010F'
  cTree[6]='0x0014'
  cTree[7]='0x03C1'
  cTree[8]='0x0085'
  cTree[9]='0x04C2'
  cTree[10]='0x0033'
  cTree[11]='0x002B'
  cTree[12]='0x0071'
  cTree[13]='0x09A4'
  cTree[14]='0x0B82'
  cTree[15]='0x00BE'
  cTree[16]='0x1BDD'

Dim mTree[17]
  mTree[0]='Oak'
  mTree[1]='Red Tree'
  mTree[2]='Dark Tree'
  mTree[3]='Swamp'
  mTree[4]='Silver Leaf'
  mTree[5]='Keranit'
  mTree[6]='Perit'
  mTree[7]='Petrified'
  mTree[8]='Dragon Tree'
  mTree[9]='Vampire Tree'
  mTree[10]='Eridan'
  mTree[11]='Hellios'
  mTree[12]='Illusions Tree'
  mTree[13]='Crystal'
  mTree[14]='Dead Tree'
  mTree[15]='Paradise Tree'
  mTree[16]='Titan Tree'

	UO.UseObject(idSourceCont)
	UO.DisArm()
	CheckLag()
	Open('backpack')
	if UO.Count(tTools) > 0 then
		UO.FindType(tTools,сTools,'backpack')
		UO.AddObject('objTools','finditem')
	else
		return
	end if
	Open(idSourceCont)
	Open(idResiveCont)
	for i = 0 to 16	
	 	CraftTorch(mTree[i],cTree[i])
	next
end sub

sub CraftTorch(mTree,cTree)
	UO.FindType('0x1BDD',cTree,idSourceCont)
	if UO.FindCount() < 1 then
		return
	end if
	UO.CancelMenu() 
	UO.AutoMenu('What do you',mTree)
	UO.AutoMenu(mTree,'torch')
	while GrabContainer('0x1BDD',cTree,qTree)==0
		UO.DeleteJournal()
		UO.WaitTargetType('0x1BDD')
		UO.UseObject('objTools')	
		repeat 
			wait(100) 
		until UO.InJournal('You put the torch') or UO.InJournal('fail') or UO.InJournal('failed')	
	wend
end sub

sub GrabContainer(tType, cType, Quanty)
	if UO.Count(tType,cType)<1 then 
		UO.FindType('0x0F64','-1','backpack')
		if UO.FindCount() > 0 then
			UO.MoveItem('finditem','-1',idResiveCont)
			CheckLag()
		end if
		ToEat()
		UO.FindType(tType,cType,idSourceCont)
		If UO.FindCount() > 0 then
			UO.MoveItem('finditem',str(Quanty),'backpack')
			Wait(1000)
			CheckLag()
		else 
			return 1
		End if				
	End If
	return 0
end sub

sub ToEat()	
	UO.FindType(tEat, cEat, idSourceCont)
	if UO.GetQuantity('finditem') > 0 then
		UO.MoveItem('finditem','20','backpack') 
	else
		return
	end if
	repeat 	
		CheckLag()
		uo.UseType(tEat,cEat) 
		while not uo.InJournal("can't") and not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead()
			wait(100)
		wend
	until uo.InJournal('too full') or UO.Dead() or uo.InJournal("can't")
	CheckLag()
	UO.FindType(tEat, cEat,'backpack')
	if UO.GetQuantity('finditem') > 0 then
		UO.MoveItem('finditem','-1',idSourceCont) 	
	end if 	
	CheckLag()
	wait(1000)
end sub

sub Open(Container) 
	UO.UseObject(Container) 
	CheckLag()
	wait(500) 
end sub 

sub CheckLag() 
	UO.DeleteJournal() 
	UO.Click('backpack') 
	repeat 
		wait(50) 
	until UO.InJournal('backpack') 
end sub
Че то запускаю пишет байду invalid namber of arguments line 139 че делать?
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

invalid namber of arguments
Ошибка когда ты вызываешь функцию не указав все обезательные параметры или наоборот указал их слишком много...
Смотри чт оутебя на 139 строчке... возможно гдето скобку не там поставил... или еще чего...
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Grin wrote:invalid namber of arguments
Ошибка когда ты вызываешь функцию не указав все обезательные параметры или наоборот указал их слишком много...
Смотри чт оутебя на 139 строчке... возможно гдето скобку не там поставил... или еще чего...
139ая строка - последняя строчка в скрипте... ИМХО артефакт копирования сктрипта...

Скрипты рекомендую копировать через Quote, т.е. нажимаете Quote сообщения в котором содержится скрипт и уже оттуда копирете его... у меня в таком случае при вставке скрипта сохраняется оригинальное форматирование.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

139 не обезательно может быть последней строчкой... может унего перед этим куча скриптов... В общем на любителя;)
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Grin wrote:139 не обезательно может быть последней строчкой... может унего перед этим куча скриптов... В общем на любителя;)
ну кружку из под кофе я помыл... так что основываюсь только на коде выложенном тут ;)
Tavarien
Posts: 1
Joined: 2004-12-08 21:32:24
Contact:

Post by Tavarien »

На продажу скрипт нехочет видеть Неклы я невкуриваю почему пишет типа 0 предметов в рюкзаке я тип правильно прописал..... :? А что за лист продаж Я тоже невкурил розясните как запустить :P
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Tavarien wrote:На продажу скрипт нехочет видеть Неклы я невкуриваю почему пишет типа 0 предметов в рюкзаке я тип правильно прописал..... :? А что за лист продаж Я тоже невкурил розясните как запустить :P
1. читай внимательнее описалово к скрипту.
2. кнопка buy/sell на закладке main и приправить кнопочкой Поиск на Форуме ;)
Neznaika
Posts: 30
Joined: 2005-03-11 23:00:30

Post by Neznaika »

Почему то в скрипте на кемпинг , чар идя от дерева 1 к дереву 2 делае только 1 шаг , не достаёт до дерева и идёт к дереву 3 и опять один шаг и т.д.
Скажите пожалуйста , в чём проблема?
Neznaika
Posts: 30
Joined: 2005-03-11 23:00:30

Post by Neznaika »

И ещё если всё таки удаётся добыть хвороста , то он бросает его и пытается зажеч , если с 2-3 раз не удалось , он бросает следующи , а это оставляет =(
Post Reply