Крапальните пожалуйсто :D

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Крапальните пожалуйсто :D

Post by Zorge »

Code: Select all

sub Lumber()
var i=0,j=0,k=0,r=0,q=0,ii,jj, a=0
var TopX=324,TopY=65 					
dim TreeX[300], TreeY[300],TreeT[300]
dim TreeTile[300]
var flag=0,treeCount=0,clicks=0,flag2=0
var f=file("C:\trees3.dat")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
var Area=4		 ## Ðàçìåð îáðàáàòûâàåìîé òåððèòîðèè, ìîæíî ìåíÿòü îò 1 äî 4.

var TryHiding=1	 ## 1 - ïåðåä òåì êàê ðóáèòü äåðåâî, áóäåò ïûòàòüñÿ óéòè â õàéä, 0 - íå áóäåò

var TryRecall=1  ## 1 - ïîñëå òîãî êàê ñîáåðåò LogsQty ëîãîâ, áóäåò ïûòàòüñÿ ðåêîëèòüñÿ äîìîé, 				 # ñêëàäûâàòü ëîãè íà ïîë è ðåêîëèòüñÿ îáðàòíî (íóæíî âûáðàòü äâå ðóíû), 0 - íå áóäåò.	

var LogsQty=555	 ## Êîëè÷åñòâî ëîãîâ, äîáûâ êîòîðîå íàäî ðåêîëèòüñÿ äîìîé.

var RecallFromScroll=0 ## 1 - ñ ðóí, 0 - èç ðóíáóêà

var GetFromFile=1 ## 1 - êîîðäèíàòû äåðåâüåâ áóäóò ñ÷èòûâàòñÿ èç ôàéëà, 0 - ñîáèðàòñÿ èç êëèåíòà

var Const=2 ## âî ñêîëüêî ðàç óâåëè÷èâàòü ðàçìåð òåñòîâîé òåððèòîðèè (êîýôôèöèåíò)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

										#Ãðàôèêà äåðåâüåâ
TreeTile[0]=3283										
TreeTile[1]=3277
TreeTile[2]=3293
TreeTile[3]=3296
TreeTile[4]=3302
TreeTile[5]=3299
TreeTile[6]=3290
TreeTile[7]=3288
TreeTile[8]=3286
TreeTile[9]=3280

uo.exec("filterspeech on")
uo.exec("filterspeech add 'Where do you want to use the pickaxe?'")

uo.print('aXE: ')
uo.exec('addobject axe')
wait(5000)

if TryRecall==1 then
	
	uo.print('rUNBOOK' )
	uo.exec('addobject Runebook')
	wait(5000)			
	
	if RecallFromScroll==1 then
		uo.print('Âûáåðè ðóíó äîìîé: ')
		uo.exec('addobject runeHome')
		wait(5000)
		uo.print('Âûáåðè ðóíó â ëåñ: ')
		uo.exec('addobject runeLumber')
		wait(5000)	
	end if
end if

										#Çàãðóæàåì êîîðäèíàòû èç ôàéëà
if GetFromFile==1 then
	uo.print('Çàãðóæàåì êîîðäèíàòû èç ôàéëà...')
	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()
else
										#Ñîáèðàåì êîîðäèíàòû èç êëèåíòà
uo.print('Ñîáèðàåì êîîðäèíàòû äåðåâüåâ â îêðóãå...')
for a=1 to Const
for q=1 to Area
if q==2 then
	gotoxy(uo.getx()+20,uo.gety()-10)
end if	
if q==3 then
	gotoxy(uo.getx(),uo.gety()+20)
end if
if q==4 then
	gotoxy(uo.getx()-20,uo.gety())
end if
for r=0 to 3
if r==1 then
	gotoxy(uo.getx()+10,uo.gety())
end if
if r==2 then
	gotoxy(uo.getx(),uo.gety()+10)
end if
if r==3 then
	gotoxy(uo.getx()-10,uo.gety())
end if
for j=0 to 8
	for i=0 to 8
		clicks=0
		flag=0
		uo.DeleteJournal()
										#Êëèêàåì íà òàéë
		uo.usetype('0x09A8')
		waitForTarget()
		uo.DeleteJournal()
		uo.LClick(TopX+i*21-j*21,TopY+i*21+j*21)
		WaitForTryRock()
										#Ïðîâåðÿåì äåðåâî ëè ýòî
		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 9 
				if uo.LastTile(0)==TreeTile[k] then
					flag=1
				end if
			next
		end if	
										#Êëèêíóëè íà ñòâîë
		if flag==1 then 
			flag2=0
			if treeCount>0 then
				for ii=1 to treeCount
					if treeX[ii]==uo.lastTile(1) AND treeY[ii]==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)
				TreeT[treeCount]=uo.LastTile(0)
				uo.print('Íàéäåíî äåðåâî: x='+str(uo.lasttile(1))+' y='+str(uo.lastTile(2)))
			end if	
		end if			
										#Êëèêíóëè ïî ëèñòâå
		if flag==2 then
			flag2=0
			if treeCount>0 then
				for ii=1 to treeCount
					if treeX[ii]==uo.lastTile(1) AND treeY[ii]==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)
				TreeT[treeCount]=uo.LastTile(0)-1
				uo.print('Íàéäåíî äåðåâî: x='+str(uo.lasttile(1))+' y='+str(uo.lastTile(2)))				
			end if	
		end if			
next	
next
next
next
next
uo.exec("filterspeech off")
uo.print('Àíàëèç çàêîí÷åí, êîîðäèíàòû äåðåâüåâ çàïèñàíû â ôàéë C:\trees.dat')
SaveToFile(treeCount,TreeX,TreeY,TreeT)
end if
uo.print('Äåðåâüåâ íàéäåíî: '+str(treeCount))
wait(2000)
										#Õîäèì ïî ñîáðàííûì êîîðäèíàòàì
while 1==1
	if treeCount>0 then 
		for i=1 to treeCount
			if TryRecall==1 AND uo.Count('ZLK')>=LogsQty then
				ToRecall(RecallFromScroll)
			end if
			uo.print('Èäåì ê äåðåâó '+str(i)+': x='+str(treex[i])+' y='+str(treey[i]))			
			flag=gotoxy(treex[i],treey[i])
			if flag==1 then	
				if TryHiding==1 then
					ToHide()
				end if			
				GetTree(str(treeT[i]),str(treeX[i]),str(TreeY[i]),str(uo.getz()))
			end if			
		next
	end if
wend	
end sub

sub GetTree(type,x,y,z)
var i
	uo.print('Íà÷èíàåì ðóáêó äåðåâà...')
	for i=0 to 30
		if uo.warmode()==1 then
			return 0
		end if
		wait(200)
		uo.deletejournal()
		uo.waittargettile(type,x,y,z)
		uo.useobject('axe')
		if WaitForChange()==1 then
			return 1
		end if	
	next
	return 0
end sub

sub ToRecall(FromScroll)
    RecallToHome(FromScroll)
    wait(1000)
    Unload()
    wait(1000)
    RecallToLumber(FromScroll)
end sub


sub RecallToHome(FromScroll)
var i
	uo.print('Ðåêîëèìñÿ äîìîé...')
	for i=1 to 10
		uo.deletejournal()
		if FromScroll==0 then
			RecallRunebookhome()
		else
			uo.waittargetobject('runeHome')
			uo.cast('Recall')
		end if
		if WaitForRecall()==1 then
			return 1
		end if
	next
	return 0
end sub


sub RecallToLumber(FromScroll)
var i
	uo.print('Ðåêîëèìñÿ îáðàòíî...')
	for i=1 to 10
		uo.deletejournal()
		if FromScroll==0 then
			RecallRunebookles()
		else
			uo.waittargetobject('runeLumber')
			uo.cast('Recall')
		end if
		if waitForRecall()==1 then
			return 1
		end if
	next
	return 0
end sub

sub ToHide()
var i
	uo.print('Ïûòàåìñÿ óéòè â õàéä...')
	for i=1 to 15		
		uo.deletejournal()
		uo.useskill('Hiding')
		if WaitForHide()==1 then
			return 1
		end if
	next
	return 0		
end sub

sub WaitForRecall()
var Text1=uo.getname()+": The spell fizzles."
var mess='',lastX=uo.getX(),lastY=uo.getY()
	for var i=0 to 400
		mess=uo.journal(0)
		if uo.Journal(0)==Text1 then
			return 0
		end if
		if uo.getX()<>lastX OR uo.getY()<>LastY then
			return 1
		end if
		wait(50)
	next
	return 0
end sub

sub WaitForHide()
var Text1=uo.getname()+": You have hidden yourself well"
var Text2=uo.getname()+": You can't seem to hide here."
var mess
	for var i=0 to 200
		mess=uo.journal(0)
		if uo.Journal(0)==Text1 then
			return 1
		end if	
		if uo.Journal(0)==Text2 then
			return 0
		end if	
		wait(50)
	next
	return 0
end sub

sub WaitForChange()
var Text1=uo.getname()+': You hack at the tree for a while, but fail to produce any useable wood.'
var Text2='There are no logs here to chop.'
var Text3="You can't reach this."
var mess
	for var i=0 to 200
		mess=uo.journal(0)
		if uo.Journal(0)==Text2 OR uo.Journal(0)==Text3 then
			return 1
		end if	
		if uo.Journal(0)==Text1 then
			return 0
		end if			
		if mess[0]=='Y' AND mess[1]=='o' AND mess[2]=='u' AND mess[4]=='p' AND mess[5]=='u' AND mess[6]=='t' then
			return 0
		end if
		wait(50)
	next
	return 0
end sub

sub WaitForTryRock()
var Text1="That is too far away."
var Text2="Try mining in rock."
var Text3="There is no ore here to mine."
var Text4="You have no line of sight to that location"
var Text5="You can't see the target"
	for var i=0 to 50
		if uo.Journal(0)==Text1 OR uo.Journal(0)==Text2 OR uo.Journal(0)==Text3 OR uo.Journal(0)==Text4 OR uo.Journal(0)==Text5 then
			return 1
		end if	
		wait(200)
	next
	return 0
end sub

sub WaitForTarget()
	for var i=0 to 50
		if uo.Targeting()==1 then
			return 1
		end if
		wait(200)
	next
	return 0
end sub

sub WaitForChangeXY(myX,myY,lastX,lastY)
	for var i=1 to 50
		if lastX<>myX OR lastY<>myY then
			return 1
		end if
		wait(200)
	next
	return 0
end sub

sub gotoXY(x,y)
var myX,myY,lastX=0,lastY=0,i,halt=0,z,r=0
	for i=1 to 60
		MyX=uo.getX();
		MyY=uo.getY();
		if LastX==MyX AND LastY==MyY then
			halt=halt+1
		else
			halt=0
		end if
		if halt>=10 then
			if uo.GetDir()==1 then
				for z=0 to 8
					uo.press(40)
				next
			end if
			if uo.GetDir()==3 then
				for z=0 to 8
					uo.press(37)
				next
			end if		
			if uo.GetDir()==5 then
				for z=0 to 8
					uo.press(38)
				next
			end if					
			if uo.GetDir()==7 then
				for z=0 to 8
					uo.press(39)
				next
			end if	
			halt=15
		end if
		if abs(x-myX)<=1 AND abs(y-myY)<=2 then
			return 1
		end if		
		if x<=MyX then
			if y<=MyY then
				for z=0 to 3
					uo.press(38)
				next
			else	
				for z=0 to 3
					uo.press(37)
				next
			end if
		else
			if y<=MyY then
				for z=0 to 3
					uo.press(39)
				next
			else
				for z=0 to 3
					uo.press(40)
				next
			end if			
		end if
		lastX=myX
		lastY=myY
		wait(200)
	next
	return 0
end sub

sub abs(num)
	if num>=0 then
		return num
	else 
		return num*(-1)
	end if
end sub	

sub SaveToFile(TreeCount,TreeX,TreeY,TreeT)
	var f=file("C:\trees3.dat")
	var s=0,i=0
	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 main()
Lumber()
end sub

sub Unload()
var UnloadCont='0x40125B73' #àéäè ñåéôà
ToHide() 
VAR Exit, i
DIM Ore[5] 
Ore[0]=0x1bdd 
Ore[1]=0x1bdd 
Ore[2]=0x1bdd 
Ore[3]=0x1bdd 

UO.SetReceivingContainer(UnloadCont) ; storecontainer 
wait(500) 


For i=0 to 3 
Exit=0 
repeat 
UO.FindType(Ore[i]) 
if UO.GetQuantity('finditem')>0 then 
UO.Grab('0','finditem') 
CheckLag() 
wait(1500) 
Else 
Exit=1 
endif 
until Exit==1 
Next 

UO.UnSetReceivingContainer() 
end sub 

sub CheckLag()
	UO.DeleteJournal()
	UO.Click('backpack')

		repeat
		wait(500)
	until UO.InJournal('backpack')
end sub

sub RecallRunebookhome()
ToHide()
UO.UseObject('Runebook')
wait(500)
UO.LClick(136,70)
wait(1000)
end sub

sub RecallRunebookles()
ToHide()
Uo.UseObject('Runebook')
wait(500)
UO.LClick(136,160)
wait(1000)
end sub
Привет всем, вот играю на DRW и пользуюсь таким скриптом на ламбер. Скрипт старый, но хороший. И вобщем то нет проблем, но хотелось бы, что бы в случае появления элема, чар просто останавливался и продолжал рубить дальше после определённой задержке :roll: И так внимание на экран, вопрос знатокам :D Куда поставить эту саму задержку, подскажи если не сложно. Последний раз просил тут помощи года 2-3 тому-назад, мне помогли и я исчез и ненадоедал, помогите пожалуйсто и я опять исчезну года на 2-3 :P :P :P
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: Крапальните пожалуйсто :D

Post by kostjan »

Да сделай просто, поставь в сам скрипт Ламбера! Я себе делал что-то типо этого токо у меня он после убийства опять начинал рубить!

Code: Select all

if uo.injournal("is attacking you") or uo.injournal("Elemental") then
Pauza()
А Это в самый низ скрипта чтобы немешало!

Code: Select all

sub Pauza()
UO.DeleteJournal() 
REPEAT 
UO.Print("Скрипт на паузе, ждём пока уйдёт элеменаль!")
WAIT(30000) ; Время скоко ждать
UO.Print("Идём дальше рубить!") 
endif 
end sub
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

Code: Select all

 if uo.injournal("is attacking you") or uo.injournal("Elemental") then
Pauza()
Дружо подскажи еще куда это дело вставить :oops: А то столько вариантов перепробывал и не один не подошел, чар совершенно не реагирует, не при атаке, не при появлении элема, и даже заменил "Elemental" на "Ent" Совсем туго!
И куда бы вставить, что бы работал родной :roll:
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: Крапальните пожалуйсто :D

Post by kostjan »

Поставь там где он юзает Hatchet перед тем как рубить... Просто лень искать у тебя это в скрипте... После того как он юзает Hatchet вставь мою строчку! 8) А у меня скрипт был такой ешё что он в ГЗ рубил т.е в Миноке - так он просто при появлении Элементаля кричал "Guards"
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

kostjan wrote:Поставь там где он юзает Hatchet перед тем как рубить... Просто лень искать у тебя это в скрипте... После того как он юзает Hatchet вставь мою строчку! 8) А у меня скрипт был такой ешё что он в ГЗ рубил т.е в Миноке - так он просто при появлении Элементаля кричал "Guards"
Ну да, только нынче в ГЗ не порубишь, убрали такую халявную халяву. А что такое Hatchet :mrgreen: я снова весь в поиске.
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

ААА люди помогите!!! Есть что вставить, но нет во что вставить, помогите срочно вставить :mrgreen: :mrgreen:
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Крапальните пожалуйсто :D

Post by Mirage »

смазка в помощь - вставится максимально быстро ;)
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

Mirage wrote:смазка в помощь - вставится максимально быстро ;)
Это я повелитель этого топа, только я могу тут шутить :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Ну подскажите, я же ночью не усну, помогите, кто чем может :P :P
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: Крапальните пожалуйсто :D

Post by kostjan »

Что за привычка дурная, чтобы всё сделали за вас... Тебе уже всё расписали прочитай хоть свой скрипт также мануалы почитай! :arrow:
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

kostjan wrote:Что за привычка дурная, чтобы всё сделали за вас... Тебе уже всё расписали прочитай хоть свой скрипт также мануалы почитай! :arrow:

Люди, ну вот, что за дурная привычка, так реагировать на дурные привычки. Не пью не курю, а ты про дурные привычки :cry: :cry:
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: Крапальните пожалуйсто :D

Post by kostjan »

Обьясняю подробно вставляеш эту строку туда, где в твоём скрипте он перед рубкой юзает ТОПОР! :!:
Post Reply