Люди помогите скиньте скрип на ламбер!!!

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Kostya
Posts: 2
Joined: 2004-04-26 19:44:39

Люди помогите скиньте скрип на ламбер!!!

Post by Kostya »

народ помогите плз скиньте скриптик на ламбер токо тот который деревья сам ищет буду очень признателен!!!Зарание спасибо
ИгорьАлек
Posts: 25
Joined: 2004-04-16 09:18:08
Contact:

Post by ИгорьАлек »

Очень интересно посмотреть на такой скрипт.
У меня скрипт есть, но там надо деревья самому забивать.
Dzen
Posts: 29
Joined: 2004-04-08 16:06:21
Contact:

Post by Dzen »

такого скрипта нет и не может быть, насколько я помню, инжект пока не позволяет искать тайлы ..
Kostya
Posts: 2
Joined: 2004-04-26 19:44:39

Post by Kostya »

ИгорьАлек wrote:Очень интересно посмотреть на такой скрипт.
У меня скрипт есть, но там надо деревья самому забивать.
если не в падлу то скинь хоть этот а то дрова так лень самому рубить)
BOT
Posts: 5
Joined: 2004-04-05 18:46:19

Post by BOT »

Code: Select all

###############################################################
###                     Скрипт на ламбер                    ###
###############################################################
### (c) Elthar aka Duo. 
### Требуется YokoInjection со скрипт парсером версии 0.3
### http://yoko.netroof.net
###############################################################
###                  Инструкции по применению               ###
###############################################################
### Во время работы скрипта рекомендуется не говорить,
### это будет тормозить его выполнение, хотя и не смертельно.
### Вердату желательно иметь нормальную, не с пеньками вместо
### деревьев.
###
### 1. До запуска скрипта в бэкпаке должно быть: любой топор,
### кирка (a pickaxe); если надо, чтобы чар реколился домой и
### складывал логи, то еще две руны и спеллбук с реколом (или
### свитки.
### 2. Марчим одну руну куда-нить в безопасное место (например,
### в дом), вторую туда, где хотим рубить. Идем туда, врубаем
### скрипт.
### 3. Появится прицел и мессага "Выберите топор". Кликаем на
### топор. Если переменная TryRecall=1 то так же выбираем
### сначала руну домой, потом руну в лес. Если в спеллбуке нет
### заклинания Recall, то нужно выставить переменную
### RecallFromScroll=1, тогда еще выбираем стопку свитков рекола.
### Нужно обязательно проверить, хватает ли регов или свитков,
### иначе чар застрянет посреди леса.
### 4. Если переменная GetFromFile=1, то скрипт считает из файла
### координаты деревьев и сразу побежит к первому дереву. Если
### GetFromFile=0, то начнется анализ территории. ВО ВРЕМЯ АНАЛИЗА
### ОКНО КЛИЕНТА ДОЛЖНО БЫТЬ АКТИВНО, И КУРСОР ДОЛЖЕН НАХОДИТЬСЯ
### НА ИГРОВОМ ПОЛЕ!!! Можно менять переменную Area от 1 до 4, 
### чтобы увеличивать/уменьшать размер территории для анализа. 
### Сколько выбирать, зависит от густоты леса и скилла Ламбера,
### пробуй сам.
### 5. Когда база загрузится, появится соответствующая мессага,
### и начнется бесконечный цикл на обход деревьев. Он происходит
### так: идем к дереву; если переменная TryHiding=1 то пытаемся
### уйти в хайд; начинаем рубить логи, пока все не вырубим, или
### пока не кончится таймер (30 ударов); если переменная 
### TryRecall=1 и логов больше чем переменная LogsQty, то 
### реколимся домой, складываем логи на пол, реколимся обратно;
### идем к следующему дереву и все повторяется сначала.
###
### Вот собственно и все! Enjoy it!
###############################################################



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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
var Area=4		 ## Размер обрабатываемой территории, можно менять от 1 до 4.
var TryHiding=1	 ## 1 - перед тем как рубить дерево, будет пытаться уйти в хайд, 0 - не будет
var TryRecall=1  ## 1 - после того как соберет LogsQty логов, будет пытаться реколиться домой, 
				 # складывать логи на пол и реколиться обратно (нужно выбрать две руны), 0 - не будет.	

var LogsQty=500 ## Количество логов, добыв которое надо реколиться домой.
var RecallFromScroll=0 ## 1 - рекол со свитков, 0 - из спеллбука

var GetFromFile=0 ## 1 - координаты деревьев будут считыватся из файла, 0 - собиратся из клиента
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

										#Графика деревьев
TreeTile[0]=3283										
TreeTile[1]=3277
TreeTile[2]=3293
TreeTile[3]=3296
TreeTile[4]=3202
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.addobject("a key ring", 0x400866CE) # Обьект кейринга
 uo.addobject("spellbook", 0x4019FFB0) # Обьект спелбука
 uo.addobject("runebook", 0x400C617E) # Обьект runebook
 uo.addobject("runebook2", 0x40080646) # Обьект runebook
 uo.addobject("pestik", 0x4008610D) # пестик

uo.print('Выбери топор: ')
uo.exec('addobject axe')
wait(5000)

uo.print('сумку с регами: ')
uo.exec('addobject bag')
wait(5000)

if TryRecall==1 then
	uo.print('Выбери руну домой: ')
	uo.exec('addobject runeHome')
	wait(5000)
	uo.print('Выбери руну в лес: ')
	uo.exec('addobject runeLumber')
	wait(5000)	
	if RecallFromScroll==1 then
		uo.print('Выбери свитки Recall:' )
		uo.exec('addobject RecallScroll')
		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 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('0x0E86')
		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
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 15
		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(500)
	uo.press(36)
	wait(500)
	uo.press(36)
	wait(500)
	repeat
		wait(600)
		gotoxy(776,1920)
		uo.exec("emptycontainer 400 'backpack' 0x400634A4")
		wait(1000)
		uo.setreceivingcontainer('backpack')
		wait(500)
		uo.grab(0,'bag')
		wait(500)
		uo.grab(0,'runeHome')
		wait(500)
		uo.grab(0, "a key ring")
		uo.grab(0, "spellbook")
		wait (500)
		uo.grab(0, "runebook")
		wait (500)
		uo.grab(0, "runebook2")
		uo.grab (0,"runeLumber")
		wait (500)
		uo.grab (0,"pestik")
		wait(1000)	
		

	RecallToLumber(FromScroll)
end sub

sub RecallToHome(FromScroll)
var i
	uo.print('Реколимся домой...')
	for i=1 to 10
		uo.deletejournal()
		uo.waittargetobject('runeHome')
		if FromScroll==0 then
			uo.cast('Recall')
		else
			uo.useobject('RecallScroll')
		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()
		uo.waittargetobject('runeLumber')
		if FromScroll==0 then
			uo.cast('Recall')
		else
			uo.useobject('RecallScroll')
		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('Stealth')
		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 200
		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:\trees.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
Goliy
Posts: 1
Joined: 2004-05-04 10:37:21

:(

Post by Goliy »

У меня этот скрипт ни как не хочет работать :(
Ajax
Posts: 10
Joined: 2004-05-06 14:30:23
Contact:

Post by Ajax »

У меня он начинает работать.. но как доходит дело до чтения месности...
я ставль параметр=1 за 10 мин он так и не закончил....
хотелось бы узнать скока он анализирует местность???
при =1, =2,=3, =4???
Jonni
Posts: 13
Joined: 2005-01-26 08:18:27
Contact:

Post by Jonni »

Как етот скрипт включаеться какими словами?
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Post by KrafteR »

2BOT Аяяй, не хорошо чужие скрипты выкладывать.
Ajax wrote:У меня он начинает работать.. но как доходит дело до чтения месности...
я ставль параметр=1 за 10 мин он так и не закончил....
хотелось бы узнать скока он анализирует местность???
при =1, =2,=3, =4???
Он проверяет очень долго, ты его включи и сходи попей чай.
Jonni wrote:Как етот скрипт включаеться какими словами?
,simsim otkrojsja. А если серьёзно ,exec lumber
JIupus
Posts: 112
Joined: 2004-12-29 15:16:45
Contact:

Post by JIupus »

запускает он ,exec main (смотри самую послженюю функцию)
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Post by KrafteR »

JIupus wrote:запускает он ,exec main (смотри самую послженюю функцию)
Он и ламбером запустится, и маином, это не принципиально.
Sasquach
Posts: 1
Joined: 2005-02-22 12:44:02
Contact:

Post by Sasquach »

внимательно прочел инструкцию, вставил в инжект, настроил чтобы считывалось с клиента и не реколился вообще, начанаеться скрипт, просит указать топор и бек пек и все, потом мышка иногда подергиваеться и вылетает сообщение No item found и все.. помогите пожалуйсто, че надо сделать? :(

пс. играю на шарде Oskom free

кстате зачем надо иметь кирку в бек пеке?
BETEPAH
Expert!
Posts: 838
Joined: 2004-05-31 09:31:51
Contact:

Post by BETEPAH »

Sasquach wrote:внимательно прочел инструкцию, вставил в инжект, настроил чтобы считывалось с клиента и не реколился вообще, начанаеться скрипт, просит указать топор и бек пек и все, потом мышка иногда подергиваеться и вылетает сообщение No item found и все.. помогите пожалуйсто, че надо сделать? :(

пс. играю на шарде Oskom free

кстате зачем надо иметь кирку в бек пеке?
Это старая версия лумбера с автомпрком ...... жуткое и страшное )))
Но итем фоунд ...это он видать у тебя не видет кирку. А кирка нужна для автомарка деревьев.
Все просто.
BETEPAH ™
Krueger
Posts: 2
Joined: 2005-03-13 23:00:50

Post by Krueger »

У меня вопрос по поводу скрипта
как писать файл с координатами деревьев?
пример вынесете плиз
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Krueger wrote:У меня вопрос по поводу скрипта
как писать файл с координатами деревьев?
пример вынесете плиз

Code: Select all

100
3289 2052 1947 
3277 2052 1950 
3299 2052 1953 
3291 2052 1956 
3289 2052 1959 
3291 2052 1962 
3286 2056 1959 
3286 2056 1962 
3302 2056 1965 
3296 2056 1971 
3289 2056 1974 
3280 2056 1980 
3294 2056 1983 
3280 2056 1986 
3299 2056 1989 
3277 2056 1992 
3283 2060 1989 
3294 2060 1992 
3280 2060 1995 
3299 2056 1998 
3299 2060 2001 
3302 2060 2004 
3277 2064 2004 
3283 2064 1998 
3280 2068 1992 
3296 2068 1989 
3277 2064 1989 
3299 2064 1986 
3289 2064 1980 
3302 2064 1977 
3286 2068 1977 
3283 2064 1971 
3299 2068 1971 
3291 2064 1968 
3280 2068 1965 
3280 2068 1962 
3283 2068 1959 
3299 2072 1962 
3280 2076 1959 
3296 2080 1956 
3291 2080 1959 
3296 2084 1959 
3299 2092 1956 
3302 2096 1959 
3302 2096 1962 
3283 2100 1962 
3302 2096 1965 
3302 2100 1965 
3289 2096 1971 
3280 2092 1971 
3289 2092 1974 
3302 2092 1977 
3299 2096 1977 
3283 2096 1980 
3277 2100 1986 
3302 2096 1989 
3294 2092 1989 
3277 2092 1986 
3286 2088 1986 
3299 2088 1989 
3277 2088 1992 
3289 2088 1995 
3291 2084 1992 
3299 2084 1995 
3299 2084 1998 
3302 2088 1998 
3296 2088 2001 
3286 2084 2001 
3280 2084 2007 
3296 2080 2010 
3291 2080 2007 
3280 2080 2004 
3283 2076 2007 
3280 2076 2004 
3294 2076 1998 
3286 2076 1992 
3299 2076 1989 
3291 2076 1986 
3286 2072 1986 
3296 2068 1989 
3280 2068 1992 
3277 2064 1989 
3299 2064 1986 
3289 2064 1980 
3302 2064 1977 
3286 2068 1977 
3289 2072 1980 
3296 2072 1977 
3296 2072 1974 
3299 2076 1971 
3294 2076 1974 
3291 2076 1980 
3302 2080 1971 
3302 2084 1974 
3289 2084 1977 
3294 2084 1980 
3277 2088 1977 
3296 2088 1974 
3283 2088 1971 
3302 2092 1977 
Krueger
Posts: 2
Joined: 2005-03-13 23:00:50

Post by Krueger »

а чего за 3 координата её обязательно писать?
Post Reply