Page 1 of 1

Под RUNUO(Nova) и не только,скрипт на БС и в продажу в минок

Posted: 2006-12-25 18:44:39
by Chico
А вот есть еще старый вариант типа с продажей, все сделано на кликах, но работал нормал, на гампы не стал делать не из за того что не знаю из за чего, а просто глючил че то

Code: Select all

var Izdelie = '0x1413' ; горжетки
var Box1  =     '0x40074D1C'     ; бокс где металл
var Box2  =    '0x40242D30'     ; Бакпак персонажа
var INSTR = '0x1EB8'       ; инструмент тинкера
var Metal = '0x1BF2' 
var kol_met = '2000'       ;  по сколько хапаем металла
VAR MaxWeight= ((uo.STR*3.5)+39)



sub main()                      ; Так как сначала изготавливаем инструмент, то эта процедура делает инструмент
uo.setreceivingcontainer(Box2)    ; Бакпак по умолчанию приемный контейнер
while not uo.dead() ; нет то берем
	uo.say('bank')
	wait(2000)
	uo.useobject(Box1)              ; открываем бокс с металлом
	wait(1000)
	uo.findtype('0x0eed') ; Ищем золото и сбрасываем в сундук
	uo.moveitem('finditem','0',Box1)      
	wait(1000)
	if uo.count(INSTR) < 2  then 
    	uo.findtype(INSTR,'-1',Box1)
    	wait(500)
    	UO.grab('1','finditem') 
    	Wait(2000) 
	end if 
	if uo.count(Metal) < 11   then             ; ----   Если металла мало берем
    	uo.findtype(Metal,'-1',Box1)
    	wait(500)
	    UO.grab(Kol_met,'finditem') 
		Wait(1000) 
	end if 
	while uo.count('0x13E3') < 10      ;   если молотков мало то делаем
		UO.usetype(INSTR)  ;  ---------- Делаем молотки
		wait(3000)
		UO.LClick(422,311)   ; перелистываем на страницу
		wait(2000)
		UO.LClick(273,170)   ;  делаем молоток
		wait(6000)
	wend

	while uo.count('0x0FBB') < 10      ;   если тонгов мало то делаем
		UO.usetype(INSTR)  ;  ---------- Делаем тонги
		wait(3000)
		UO.LClick(422,311)   ; перелистываем на страницу
		wait(2000)
		UO.LClick(275,148)   ;  делаем тонг
		wait(6000)
	wend
	go_bs()
	proizv()
wend
end sub

sub proizv()
	while uo.count(Metal) > 20 and  UO.Weight < MaxWeight
	UO.usetype('0x13E3')  ;  ---------- Используем молоток
	wait(1500)
	UO.LClick(323,454)
	wait(5000)             ; Изготовим последнюю вещь	
	wend
	sell()
end sub

sub go_bs()
gotoxy(2520,579,1)
gotoxy(2527,578,1)
uo.opendoor()
gotoxy(2527,572,1)
gotoxy(2535,572,1)
end sub

sub go_bank()
gotoxy(2531,572,1)
gotoxy(2526,577,1)
uo.opendoor()
gotoxy(2527,579,1)
gotoxy(2519,579,1)
gotoxy(2509,561,1)
end sub


sub sell()
	var z,x, kol_ves 
	kol_ves = uo.count(Izdelie)
	wait(500)
	gotoxy(2533,574,1)
    while  kol_ves > 1
			uo.say('Dag sell')
			wait(1000)
		    for z=0 to 10
			UO.LClick(213,77)    ;  Два раза на предмете
			wait(50)
			UO.LClick(213,77)   ;
			wait(200)
			UO.LClick(343,199)      ;    на стрелке вниз
			wait(200)
		    uo.print('prodano ' + str(z))
			next
		UO.LClick(315,420)  ; Кнопка Ацепт
		wait(500)
		kol_ves  = uo.count(Izdelie)
		uo.print(str(kol_ves))
		WAIT(1000)
	wend
	wait(500)
	go_bank()              ; Бежим к банку
end sub


;;;;   Ходилка не знаю чья

Sub gotoxy(x,y,prec)
VAR ld=0,ldc=0
VAR dx,dy
VAR mx,my
VAR ox,oy,mk,k

start:
mx=Uo.GetX()
my=Uo.GetY()
dx=mx-x
IF dx<0 then
dx=0-dx
endIF
dy=my-y
IF dy<0 then
dy=0-dy
endIF
IF dy>dx then
dx=dy
End IF
IF dx<=prec then
return
End IF
IF dx<3 then
mk=70
else
mk=15
End IF
ox=mx
oy=my
for k=1 to mk
mx=Uo.GetX()
my=Uo.GetY()
IF mx<>ox or my<>oy then
goto sdidapl
End IF
wait(10)
next
sdidapl:
mx=Uo.GetX()
my=Uo.GetY()
dx=mx-x
IF dx<0 then
dx=0-dx
endIF
dy=my-y
IF dy<0 then
dy=0-dy
endIF
IF dy>dx then
dx=dy
End IF
IF dx<=prec then
return
End IF
IF ld==dx then
ldc=ldc+1
;IF ldc>50 then
;  Uo.print("Zastrial!"+"***"+" "+Time())
;  Stoplocation = 1   
;  return
; End IF
else
ld=dx
End IF
IF mx==x then
IF my==y then
return
endIF
IF my>y then
Uo.Press(33)
goto start
endIF
Uo.Press(35)
goto start
End IF
IF mx<x then
IF my>y then
Uo.Press(39)
goto start
endIF
IF my==y then
Uo.Press(34)
goto start
endIF
Uo.Press(40)
goto start
End IF
IF my<y then
Uo.Press(37)
goto start
endIF
IF my==y then
Uo.Press(36)
goto start
endIF
Uo.Press(38)
goto start

end sub

#++++++++++++++++++++++++++++++++
Sub Time()
VAR Date,nTime,uTime,i
uTime=str(Uo.Time())
nTime=""
for i=0 to Len(uTime)
nTime=uTime[Len(uTime)-i]+nTime
IF (i==2) or (i==4) then
nTime=":"+nTime
End IF
next
uTime=str(Uo.Date())
Date=""
for i=0 to Len(uTime)
Date=uTime[Len(uTime)-i]+Date
IF (i==2) or (i==4) then
Date="."+Date
End IF
next
uTime=nTime+" @ "+Date
return uTime
end sub
#++++++++++++++++++++++++++++++++
Sub GetNumb(C,I)
VAR J,T,K
J=0
K=1
While K>0
  J=J+1
  IF (Mid(C,J,1)==" ") Or (J>=Len(C)-1) Then
   IF I==0 Then
    T=Val(Left(C,J))
   Else
    T=GetNumb(Right(C,Len(C)-J-1),I-1)
   EndIF
   K=0
  EndIF
wend
return T
end sub

sub Metka_Tile()            
repeat
uo.infotile()
wait(1000)
until false
end sub