Народ помогите скрипт на ламбер для оскома пожалусто

Anything and all.

Moderators: Murderator+, Murderator

twis1
Posts: 24
Joined: 2007-11-18 15:35:27

Народ помогите скрипт на ламбер для оскома пожалусто

Post by twis1 »

Народ выложите скрипт на ламбер для каторги на оском пожалусто вылажите если есть у кого в поиске не ненашол нужного скрипта
-=JoKeR=-
Posts: 173
Joined: 2007-05-26 00:00:56
Location: Украина, Ode$$a:[X-TEAM Group]
Contact:

Post by -=JoKeR=- »

Как это не нашол, здесь он есть полюбому и не один !
Image
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

на самом деле нужного скрипта нету под оском

Post by twis1 »


на самом деле нужного скрипта нету под оском
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

ы

Post by twis1 »

они все отрубают одно дерево и все дальше не идут
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

вот скрипт

Post by twis1 »

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

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

################################################################################
###################
var Treesfile = "trees2007.dat" ## - Путь и файл в котором будут хранится координаты деревьев.
###
var MaxTreesCount = 2000 ## Количество деревьев для марка...
###
var TryHiding=0 ## 1 - Перед тем как рубить дерево, будет пытаться уйти в хайд, 0 - не будет .
###
var GetFromFile=0 ## 0 - Координаты деревьев будут считыватся из файла, 0 - собиратся из клиента
### (сначала соберите а потом считывайте из файла).
###
var EatingFood=0 ## 1 - Будем есть, 0 - нет.
###
var TypeFood='0x097B' ## - Тип еды которую будем кушать. (сейчас фиштейки)
###
var Chest='0x4002C180' ## - ID сундука куда будут выгружаться логи.
###
var oldX,oldY,time ## - Для рекола.
###
###########
### Код ###
###########
var f=file(Treesfile)
sub Lumberjacking()
var i=0,j=0,k=0,r=0,q=0,ii,jj
var TopX=324,TopY=65
dim TreeX[5000], TreeY[5000],TreeT[5000]
dim TreeTile[29]
var flag=0,treeCount=0,clicks=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.Exec("filterspeech on")
uo.Exec("filterspeech add 'Where do you want to use the pickaxe?'")

uo.Print('Выбери Топор: ')
uo.Exec('addobject Axe')
while uo.Targeting()
wait(100)
wend

uo.Print('Выбери руну к дому: ')
uo.Exec('addobject RuneToHome')
while uo.Targeting()
wait(100)
wend

uo.Print('Выбери руну в лес: ')
uo.Exec('addobject RuneToTrees')
while uo.Targeting()
wait(100)
wend

#####################################
### Загружаем координаты из файла ###
#####################################
if GetFromFile==1 then
uo.Print('Загружаем координаты из файла...')
f.open()
treeCount=safe call f.ReadNumber()
for i=1 to treeCount
TreeT=safe call f.ReadNumber()
TreeX=safe call f.ReadNumber()
TreeY=safe call f.ReadNumber()
next
f.close()
repeat
UO.DeleteJournal()
UO.waittargetobject("RuneToTrees")
UO.Cast("Recall")
oldX=UO.GetX()
oldY=UO.GetY()
while not UO.InJournal("The spell fizzle") and oldX == UO.GetX() and oldY == UO.GetY()
Wait(100)
wend
Until not UO.InJournal("The spell fizzle")
else
######################################
### Собираем координаты из клиента ###
######################################
uo.Print('Выбери Кирку: ')
uo.Exec('addobject Pickaxe')
while uo.Targeting()
wait(100)
wend
uo.Print('Собираем координаты деревьев в округе...')
repeat
clicks=0
flag=0
uo.DeleteJournal()
#######################
### Кликаем на тайл ###
#######################
uo.UseObject('Pickaxe')
waitForTarget()
uo.DeleteJournal()
WaitForTryRock()
###############################
### Проверяем дерево ли это ###
###############################
flag=0
for k=0 to 28
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 uo.Lasttile(1)==uo.getX() and uo.Lasttile(2)==uo.gety() then
flag=3
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('Найдено дерево '+str(treeCount)+' : x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2))+' '+str(treeCount))
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('Найдено дерево '+str(treeCount)+' : x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2)))
end if
end if
until (Flag==3) or (treeCount==MaxTreesCount)
uo.Print('Анализ закончен.')
uo.Exec("filterspeech off")
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
end if
if UO.Weight > (UO.Str*4) then
repeat
UO.DeleteJournal()
UO.waittargetobject("RuneToHome")
UO.Cast("Recall")
oldX=UO.GetX()
oldY=UO.GetY()
while not UO.InJournal("The spell fizzle") and oldX == UO.GetX() and oldY == UO.GetY()
Wait(100)
wend
Until not UO.InJournal("The spell fizzle")
DropLogs()
repeat
UO.DeleteJournal()
UO.waittargetobject("RuneToTrees")
UO.Cast("Recall")
oldX=UO.GetX()
oldY=UO.GetY()
while not UO.InJournal("The spell fizzle") and oldX == UO.GetX() and oldY == UO.GetY()
Wait(100)
wend
Until not UO.InJournal("The spell fizzle")
end if
uo.Print('Go to Tree '+str(i)+': x='+str(TreeX)+' y='+str(TreeY))
InfoLogs()
flag=GotoXY(TreeX,TreeY)
if flag==1 then
if TryHiding==1 then
ToHide()
endif
GetTree(str(TreeT),str(TreeX),str(TreeY),str(uo.GetZ()))
endif
next
endif
wend
end sub

Sub GetTree(Type,X,Y,Z)
var i
UO.Print('Ha4iHaem Py6Ky DePeBa...')
wait (100)
CheckLag()
UO.Warmode()
repeat
UO.DeleteJournal()
UO.WaitTargetTile(Type,X,Y,Z)
UO.UseObject('Axe')

while not UO.InJournal("You put the ") and not UO.InJournal('There is nothing here to chop.') and not UO.InJournal('It appears immune to your blow') and not UO.InJournal('You hack at the tree for a while,') and not UO.InJournal("You can't reach this") and not UO.InJournal("That is too far away")
Wait(100)
wend
Until UO.InJournal('There is nothing here to chop.') or UO.InJournal('It appears immune to your blow') or UO.InJournal("You can't reach this") or UO.InJournal("That is too far away")
return 0
end sub

Sub ToHide()
while not UO.Hidden()
UO.Print('Пытаемся уйти в хайд...')
UO.DeleteJournal()
UO.WarMode(0)
UO.UseSkill('Stealth')
while not UO.InJournal("You have hidden yourself well") and not UO.InJournal("You can't seem to hide here.")
Wait(100)
wend
wend
wait(100)
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 10
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 Numb(x-myX)<=1 and Numb(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 Numb(num)
if num>=0 then
return num
else
return num*(-1)
end if
end sub

Sub SaveToFile(treeCount,TreeX,TreeY,TreeT)
var f=file(Treesfile)
var s=0,i=0
f.open()
f.create()
uo.Print('Сохранение в файл: '+TreesFile)
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()
uo.Print('Координаты деревьев записаны в файл: '+Treesfile)
end sub

sub DropLogs()
if uo.Waiting() then
uo.CancelTarget()
endif
uo.Print('Выкладываем Логи.')
uo.SetReceivingContainer(Chest)
wait(200)
repeat
UO.FindType('0x1BDD','-1','my')
Wait(100)
if UO.GetQuantity('finditem') > 0 then
UO.Grab('0','finditem')
endif
Wait(100)
until not UO.Count('0x1BDD')
uo.Print('Логи Выложены.')

if EatingFood==1 then
EatFood()
endif

uo.UnSetReceivingContainer(Chest)
end sub


Sub InfoLogs()
uo.Print('У вас всего '+str(uo.Count('0x1BDD'))+' логов в сумке')
uo.Print('Из них '+str(uo.Count('0x1BDD','0x0000'))+' простых и ' +str(uo.Count('0x1BDD')-uo.Count('0x1BDD','0x0000'))+' цветных')
end sub

sub Open(Container)
UO.DeleteJournal()
UO.UseObject(Container)
repeat
wait(100)
Until UO.InJournal('Contains')
endsub

Sub EatFood()
if UO.Waiting() then
UO.CancelTarget()
endif
uo.SetReceivingContainer('backpack')
Open(Chest)
UO.FindType(TypeFood,'-1',Chest)
UO.Grab('100','finditem')
wait(500)
repeat
UO.UseType(TypeFood)
wait(500)
until uo.InJournal('You are simply too full to eat any more!')
UO.SetReceivingContainer(Chest)
wait(500)
UO.FindType(TypeFood)
if UO.GetQuantity('finditem') > 0 then
UO.Grab('0','finditem')
endif
UO.UnSetReceivingContainer(Chest)
end sub
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

подправте етот скрипт плиззз

Post by twis1 »

подправте етот скрипт плиззз чтобы он при физле дальше рубил и после того как одно дерево отрубит дальше другое шол рубить
-=JoKeR=-
Posts: 173
Joined: 2007-05-26 00:00:56
Location: Украина, Ode$$a:[X-TEAM Group]
Contact:

Post by -=JoKeR=- »

Во-первых вставь скрипт в тэги Сode !
Во вторых, поставь свои сообщения при физле сюда:

Code: Select all

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"
Тут вообще указаны сообщения, которые выдаються при копании руды :) , это уже второй скрипт такой :) .
И будет тебе счастье.
А вообще нужно самому сначала просмотреть скрипт и попытаться его поправить под себя, так и научишься сам всё делать, а просить постоянно о помощи это не дело =)
Image
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

плз

Post by twis1 »

СЛУШай дай пожалусто аську свою плз
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

ыы

Post by twis1 »

Я просто реал ваше хз чо как делать каторги капать 15к 30 мининга 30 ламбера ето жоско просто рукамми кер выкапаеш вот если бы помогли под оском настроить етот ламбер скрипт было бы ваше прикрасно
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Post by grundick »

так как сам только что был посажен на 50к, выкладываю скрипт на рубку деревьев на оскомоской(О2) каторге.

Code: Select all

## GRUNDICK EDITION
##Использована ходилка Beyonder'a, за основу взяты скрипты Edred'a.
var f=file("C:\KatorgaTrees.dat") 
VAR PrisonLog='0x1BDD'

##############################################################################################
#########################                LUMBERJACKING               #########################
##############################################################################################

sub Lumberjacking() 
var i=0,j=0,k=0,r=0,q=0,ii,jj 
var TopX=324,TopY=65 
dim TreeX[5000], TreeY[5000],TreeT[5000] 
dim TreeTile[29] 
var treeCount=0,clicks=0
var x
######################## 
### Графика деревьев ### 
######################## 
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.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() 


while 1
  if treeCount>0 then 
    for i=1 to treeCount                              
 
      if uo.weight > (uo.str*4)  then
         uo.waittargettype(PrisonLog)
         uo.useobject('runeHome')
         wait(200)
       endif 
      
    uo.Print('Идём к дереву '+str(i)+': x='+str(TreeX[i])+' y='+str(TreeY[i])) 
 
    GotoXY(TreeX[i],TreeY[i],2) 
    GetTree(str(TreeT[i]),str(TreeX[i]),str(TreeY[i]),str(uo.GetZ())) 
    next 
  else 
    uo.Print('Вы херово создали файл! Попробуйте ещё разок!')
  end if
wend
end sub

###############################################################################################
#########################                 GET THE TREE               ##########################
###############################################################################################

Sub GetTree(Type,X,Y,Z) 
VAR jor, ser, noto, n ,t 
var maxtime=1000
t=uo.timer()
  uo.deleteJournal()
  while not (UO.InJournal("You can't reach this|Это слишком далеко отсюда|Тут не осталось") or ((t + maxtime) < UO.Timer()))
   
    UO.DeleteJournal()
    UO.Waittargettile(Type,X,Y,Z)
    uo.UseObject('Axe')
    while not UO.InJournal("You can't reach this|Это слишком далеко отсюда|Тут не осталось |You put|Подолбив дерево|is attacking you|You have found") and not uo.Dead()
      wait(250)
    wend
   wend
return 0
end sub




######################################################################



###########################################################################
sub options()
uo.Print('Выбери топор: ') 
uo.Exec('addobject Axe') 
while uo.Targeting() 
wait(100) 
wend 

uo.print(' Покажи свою шнягу? ... ')
uo.exec('addobject runeHome')
while uo.targeting()
wait(250)
wend
uo.SaveConfig()

end sub

Sub op_door()
uo.opendoor()
end sub

###########################################    ХОДИЛКА 3 ##################################################
###########################################################################################################
var MaxTraceDistance=10 
var TraceLoopIncrease=5 #Увеличение MaxTraceDistance при исчерпании количества ходов
var LimitTrace=20 #Сколько шагов в ОБЕ стороны от начальной точки обхода прекращают ходилку (выхода нет).
var Speed=1 
var StepTimeOut=500 #Таймаут шага. Устанавливать не в размер пинга, а в размер шага + размер пинга.
# Для ходьбы - 500+Ping
# Для бега/ходьбы на лошади - 300+Ping
# Бег на лошади - 150 + Ping

var CheckCnt=2 #Количество слепых проверок. УВЕЛИЧИВАЕТ В СТОЛЬКО РАЗ ТАЙМАУТ. Использовать только на БЫСТРОМ но НЕСТАБИЛЬНОМ коннекте. При большом пинге будет УЖАС.
var DynamicPause=30 #Минимальные паузы в циклах. Чем меньше число - тем меньше рывков и тем больше нагрузка процессора.
 
Sub GotoXY(GoX,GoY,Prec) 
  UO.SetGlobal("Logging","0") 
  UO.SetGlobal("BlindWalk","0") 
  var LastDir 
  var MoveRes
  var TracerCnt
  UO.SetGlobal("GlobalGoX",str(GoX)) 
  UO.SetGlobal("GlobalGoY",str(GoY)) 
  while not IsEnd(GoX,GoY,Prec) 
    TracerCnt = MaxTraceDistance
    repeat
      LogInfo('Just walking') 
      LastDir=GoUntilHit(GoX,GoY,Prec) 

      if IsEnd(GoX,GoY,Prec) then                            
        return 1
      end if

      LogInfo('Tracing') 
      MoveRes = FullAroundTrace(LastDir,GoX,GoY,Prec,TracerCnt) 
      if TracerCnt > LimitTrace then
        return 0
      endif
      TracerCnt = TracerCnt + TraceLoopIncrease
    until MoveRes == 1
  wend 
  return 1
end sub 
 
Sub FullAroundTrace(StartDir,GoX,GoY,Prec,MaxTrace) 
  var LineX=UO.GetX() 
  var LineY=UO.GetY() 
  var CurDir=StartDir 
  var Direction=CountDirection(GoX,GoY,CurDir,Prec) 
  var StartX,StartY 
  var MovesDone=0 
  repeat 
    StartX=UO.GetX() 
    StartY=UO.GetY() 
    CurDir=Tracer(CurDir,Direction,Prec) 
    if (CurDir==GetDir(GoX,GoY,Prec)) then 
      return 1
    endif 
    if MovesDone>0 and PrevMoveCross(GetDirToDir(UO.GetDir(),Prec),LineX,LineY,GoX,GoY,StartX,StartY,Prec) then 
      return 1
    end if 
    MovesDone=MovesDone+1 
    CurDir=AddToDir(CurDir,-Direction,Prec) 
  until MovesDone>MaxTrace 
  return 0
end sub 
 
Sub CountDirection(GoX,GoY,StartDir,Prec) 
  var GoDir=GetDir(GoX,GoY,Prec) 
  var MyX=UO.GetX() 
  var MyY=UO.GetY() 
  if GoDir<StartDir then 
    return -1 
  end if 
  if GoDir>StartDir then 
    return 1 
  end if 
  if Abs(MyX-GoX)>Abs(MyY-GoY) then 
    if (GoDir==3 and GoY>MyY) OR (GoDir==7 and GoY<MyY) then 
      return -1 
    else 
      return 1 
    end if 
  else 
    if (GoDir==1 and GoX<MyX) or (GoDir==5 and GoX>MyX) then 
      return -1 
    else 
      return 1 
    end if 
  end if 
end sub 
 
Sub PrevMoveCross(Dir,x1,y1,x2,y2,StartX,StartY,Prec) 
  var x3,y3,x4,y4 
  x3=StartX 
  y3=StartY 
  x4=StartX+(XFromDir(Dir)-StartX)*Speed 
  y4=StartY+(YFromDir(Dir)-StartY)*Speed 
  return LinesCrossing(x1,y1,x2,y2,x3,y3,x4,y4,Prec) 
end sub 
 
Sub LinesCrossing(x1,y1,x2,y2,x3,y3,x4,y4,Prec) 
  if x1==x3 and y1==y3 then 
    return false 
  end if 
  var z1=(x3-x1)*(y2-y1)-(y3-y1)*(x2-x1) 
  var z2=(x4-x1)*(y2-y1)-(y4-y1)*(x2-x1) 
  if z1*z2>0 then 
    return false 
  else 
    LogInfo('Vector info:') 
    LogInfo('x1= '+str(x1)) 
    LogInfo('y1= '+str(y1)) 
    LogInfo('x2= '+str(x2)) 
    LogInfo('y2= '+str(y2)) 
    LogInfo('x3= '+str(x3)) 
    LogInfo('y3= '+str(y3)) 
    LogInfo('x4= '+str(x4)) 
    LogInfo('y4= '+str(y4)) 
    return true 
  end if 
end sub 
 
Sub IsDiap(X,X0,X1,Prec) 
  if X<=X0+Prec and X>=X1-Prec OR X>=X0-Prec and X<=X1+Prec then 
    return true 
  end if 
  return false 
end sub 
 
Sub GoUntilHit(GoX,GoY,Prec) 
  var LastDir 
  LastDir=GetDir(GoX,GoY,Prec) 
  var CouldMove 
  repeat 
    LastDir=GetDir(GoX,GoY,Prec) 
    if LastDir<>0 and not IsEnd(GoX,GoY,Prec) then 
      CouldMove=TryDir(LastDir,Prec) 
    end if 
  until LastDir==0 or IsEnd(GoX,GoY,Prec) or not CouldMove 
  return LastDir 
end sub 
 
Sub IsEnd(GoX,GoY,Prec) 
  if Abs(UO.GetX()-GoX)<=Prec and Abs(UO.GetY()-GoY)<=Prec then 
    LogInfo('END FOUND') 
    return true 
  else 
    return false 
  end if 
end sub 
 
Sub GetDir(GoX,GoY,Prec) 
  var MyX=UO.GetX() 
  var MyY=UO.GetY() 
  var DiffX=Abs(UO.GetX()-GoX) 
  var DiffY=Abs(UO.GetY()-GoY) 
  var GoDir=0 
  if (DiffX/(DiffY+0.1))>=2 then 
    if (MyX>GoX) then 
      GoDir=7 
    else 
      GoDir=3 
    end if 
  else 
 
  if (DiffY/(DiffX+0.1))>=2 then 
    if (MyY>GoY) then 
      GoDir=5 
    else 
      GoDir=1 
    end if 
  else 
  
  if (MyX>GoX) and (MyY>GoY) then 
    GoDir=6 
  else 
  if (MyX>GoX) and (MyY<GoY) then 
    GoDir=8 
  else 
  if (MyX<GoX) and (MyY>GoY) then 
    GoDir=4 
  else 
  if (MyX<GoX) and (MyY<GoY) then 
    GoDir=2 
  end if 
  end if 
  end if 
  end if 
  end if 
  end if 
  return GoDir 
end sub 
 
Sub Tracer(StartDir,Direction,Prec) 
  var CurDir=StartDir 
  var Result 
  repeat 
    Result=TryDir(CurDir,Prec) 
    if not Result then 
      CurDir=AddToDir(CurDir,Direction,Prec) 
    end if 
  until Result 
  return Result 
end sub 
 
Sub AddToDir(Dir,Cnt,Prec) 
  var NewDir=Dir 
  NewDir=NewDir+Cnt 
  while NewDir>8 
    NewDir=NewDir-8 
  wend 
  while NewDir<1 
    NewDir=NewDir+8 
  wend 
  return NewDir 
end sub 
 
Sub TryDir(Dir,Prec) 
  var BegX=UO.GetX() # Ia?aeuiia O 
  var BegY=UO.GetY() # Ia?aeuiia Y 
  var Counter=0 
  var GoX=BegX 
  var GoY=BegY 
  GoX=XFromDir(Dir) 
  GoY=YFromDir(Dir) 
  if not IsPass(GoX,GoY) then 
    LogInfo(str(GoX)+':'+str(GoY)+' is not passable') 
    return false 
  end if 
  return TurnAndGoDir(Dir,Prec) 
end sub 
 
Sub XFromDir(Dir) 
  if Dir==2 OR Dir==3 Or Dir==4 then 
    return (UO.GetX()+1) 
  end if 
  if Dir==6 OR Dir==7 Or Dir==8 then 
    return (UO.GetX()-1) 
  end if 
  return (UO.GetX()) 
end sub 
 
Sub YFromDir(Dir) 
  if Dir==8 OR Dir==1 Or Dir==2 then 
    return (UO.GetY()+1) 
  end if 
  if Dir==4 OR Dir==5 Or Dir==6 then 
    return (UO.GetY()-1) 
  end if 
  return (UO.GetY()) 
end sub 
 
Sub TurnAndGoDir(Dir,Prec) 
  var StartDir=GetDirToDir(UO.GetDir(),Prec) 
  var StartX=UO.GetX() 
  var StartY=UO.GetY() 
  var EndDir 
  var Counter=0
  var TestCounter=CheckCnt

 #Direction Test
  repeat
    Counter = 0
    LogInfo('Dir: '+str(StartDir)+' Counter: '+str(Counter))  
    PressDir(Dir) 
    repeat 
      EndDir=GetDirToDir(UO.GetDir(),Prec) 
      wait(DynamicPause) 
      Counter=Counter+1 
    until StartDir<>EndDir or StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=StepTimeOut/DynamicPause 
    TestCounter = TestCounter - 1
    LogInfo('Dir: '+str(EndDir)+' Counter: '+str(Counter))  
  until TestCounter <= 0 or Counter < StepTimeOut/DynamicPause 

  if Counter>=StepTimeOut/DynamicPause  then 
     LogInfo('Direction timeout reached') 
     return 0 
  end if 
  #End direction Test

  if StartY<>UO.GetY() or StartX<>UO.GetX() then 
    return Dir 
  end if
 
  #Start Primary test
  TestCounter=CheckCnt
  repeat
    GoDir(Dir,Prec)
    Counter=0
    repeat 
      wait(DynamicPause) 
      Counter=Counter+1 
    until StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=StepTimeOut/DynamicPause 
    TestCounter = TestCounter - 1
  until TestCounter <= 0 or Counter < StepTimeOut/DynamicPause 
  #End primary test

  if Counter>=StepTimeOut/DynamicPause then 
    LogInfo('Step timeout reached') 
    return 0 
  else 
    return Dir 
  end if 
end sub 
 
Sub GetDirToDir(GotDir,Prec) 
   var ChangedDir=-GotDir 
   ChangedDir=AddToDir(ChangedDir,5,Prec) 
   return ChangedDir 
end sub 
 
Sub DirToInj(Dir) 
   dim Dirs[9] 
   Dirs[1]=1 
   Dirs[2]=2 
   Dirs[3]=3 
   Dirs[4]=6 
   Dirs[5]=9 
   Dirs[6]=8 
   Dirs[7]=7 
   Dirs[8]=4 
 
   return (Dirs[Dir]) 
end sub 

Sub PressDir(Dir)
   dim Dirs[9] 
   Dirs[1]=35 
   Dirs[2]=40 
   Dirs[3]=34 
   Dirs[4]=39 
   Dirs[5]=33 
   Dirs[6]=38 
   Dirs[7]=36 
   Dirs[8]=37 
 
   UO.Press(Dirs[Dir],1) 
end sub 

Sub GoDir(Dir,Prec) 
   dim Dirs[9] 
   Dirs[1]=35 
   Dirs[2]=40 
   Dirs[3]=34 
   Dirs[4]=39 
   Dirs[5]=33 
   Dirs[6]=38 
   Dirs[7]=36 
   Dirs[8]=37 
 
   var DistanceX=Abs(UO.GetX()-val(UO.GetGlobal("GlobalGoX"))) 
   var DistanceY=Abs(UO.GetY()-val(UO.GetGlobal("GlobalGoY"))) 
   var GoDistance 
   if (DistanceX-Prec)<Speed then 
      GoDistance=DistanceX-Prec 
   else 
      if (DistanceY-Prec)<Speed then 
         GoDistance=DistanceY-Prec 
      else 
         GoDistance=Speed 
      endif 
   endif 
 
   UO.Press(Dirs[Dir],GoDistance) 
end sub 
 
Sub IsPass(X,Y) 
  if UO.GetGlobal("BlindWalk") then 
    return true 
  endif 
 
   dim Types[60] 
   Types[1]=3 
   Types[2]=25 
   Types[3]=51 
   Types[4]=63 
   Types[5]=113 
   Types[6]=140 
   Types[7]=172 
   Types[8]=219 
   Types[9]=232 
   Types[10]=235 
   Types[11]=239 
   Types[12]=243 
   Types[13]=248 
   Types[14]=251 
   Types[15]=264 
   Types[16]=267 
   Types[17]=282 
   Types[18]=289 
   Types[19]=321 
   Types[20]=379 
   Types[21]=420 
   Types[22]=440 
   Types[23]=476 
   Types[24]=499 
   Types[25]=513 
   Types[26]=542 
   Types[27]=578 
   Types[28]=586 
   Types[29]=622 
   Types[30]=700 
   Types[31]=804 
   Types[32]=1740 
   Types[33]=1758 
   Types[34]=1770 
   Types[35]=1779 
   Types[36]=1779 
   Types[37]=1881 
   Types[38]=1886 
   Types[39]=1801 
   Types[40]=1805 
   Types[41]=1813 
   Types[42]=1820 
   Types[43]=1831 
   Types[44]=1833 
   Types[45]=1843 
   Types[46]=1850 
   Types[47]=1873 
   Types[48]=1876 
   Types[49]=1885 
   Types[50]=1888 
   Types[51]=1946 
   Types[52]=1969 
   Types[53]=2500 
   Types[54]=2539 
  
  for var i=1 TO 53 STEP 2 
    if UO.PrivateGetTile(X,Y,-1,Types[i],Types[i+1]) then 
      return true 
    end if 
  next 
  return false 
end sub 
 
Sub LogInfo(Line) 
  if not UO.GetGlobal("Logging")=="0" then 
    UO.TextOpen() 
    UO.TextPrint(str(UO.GetX())+":"+str(UO.GetY())+" - "+Line); 
  end if 
end sub 
 
Sub Abs(X) 
  if X>0 then 
    return X 
  else 
    return (-X) 
  end if 
end sub 
########################################## КОНЕЦ ХОДИЛКИ 3 ##########################




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 CheckLag() 
if uo.Waiting()>0 then 
uo.Exec('canceltarget') 
end if 
uo.DeleteJournal() 
uo.Click('backpack') 
repeat 
wait(50) 
until uo.InJournal('backpack') 
end sub


##############################################################################################
#########################               МАРКАЕМ ДЕРЕВЬЯ              #########################
##############################################################################################

sub normmark()
 var f=file("C:\KatorgaTrees.dat") #ФАЙЛ ДЕРЕВЬЕВ
 UO.DeleteJournal()
 DIM TOFILE[200]
 var i=0,j=0,T,X,Y,S,TMP='',TXT,Marked=0;
 repeat
    uo.Print('Покажите дерево?')
    UO.CancelTarget()
    UO.AddObject('tree')
    while UO.Targeting() and not UO.InJournal('stopmark')
       wait(100)     
    wend
    if UO.InJournal('stopmark') then
      goto end
    endif
    UO.AddObject('tree','lasttarget')
    if UO.LastTile(0)<>3283 and UO.LastTile(0)<>3289 and UO.LastTile(0)<>3277 and UO.LastTile(0)<>3291 and UO.LastTile(0)<>3293 and UO.LastTile(0)<>3294 and UO.LastTile(0)<>3296 and UO.LastTile(0)<>3302 and UO.LastTile(0)<>3299  and UO.LastTile(0)<>3290  and UO.LastTile(0)<>3288  and UO.LastTile(0)<>3286  and UO.LastTile(0)<>3280 then
       uo.Print('ЭТО НЕ ДЕРЕВО...')
    else   
       T=str(UO.LastTile(0))
       X=str(UO.LastTile(1))
       Y=str(UO.LastTile(2))
       for j=0 to i
          if T+' '+X+' '+Y==TOFILE[j] then
             uo.Print('ЭТО ДЕРЕВО УЖЕ МАРКНУТО')
             j=i
             Marked=1;
          endif
       next
       uo.Print('MARKED='+str(marked))
       if not Marked then        
          TOFILE[i]=T+' '+X+' '+Y
          uo.Print('Найдено дерево #'+str(i+1)+', '+TOFILE[i])
          i=i+1
       endif
       Marked=0
    endif 
    end:
 until i==199 or UO.InJournal('stopmark')
 UO.CancelTarget()
 uo.Print('МАРК ОКОНЧЕН. НАЙДЕНО ДЕРЕВЬЕВ - '+str(i+1))
 if i then
    f.open()
    f.create()
    txt=safe call f.writeln(i)
    for j=0 to i-1
       tmp=TOFILE[j]
       txt=safe call f.writeln(tmp)
    next
    f.close()
 endif
 UO.Set('quiet',0)
endsub
 ##### чтоб кончить, сказать stopmark
Ниже файл деревьев для О2.Его нужно будет сохранить в файл с названием KatorgaTrees.dat и положить в корневой каталог диска C.

Code: Select all

154
3296 348 840
3296 348 843
3283 344 846
3289 340 843
3296 332 834
3280 328 837
3296 324 840
3289 320 843
3280 312 849
3277 316 840
3289 316 837
3286 320 831
3280 320 828
3280 332 825
3302 324 822
3280 324 813
3299 320 819
3289 316 828
3289 312 837
3280 308 840
3283 308 831
3302 312 825
3280 304 828
3283 308 825
3277 312 819
3302 304 816
3291 308 816
3296 308 813
3294 308 810
3296 312 807
3291 316 810
3299 316 807
3283 320 804
3294 320 807
3277 296 813
3289 308 801
3283 296 807
3302 280 819
3296 280 813
3289 284 807
3286 292 798
3296 296 795
3277 306 793
3283 284 792
3289 276 798
3286 276 789
3291 268 804
3302 264 807
3280 264 804
3291 256 813
3277 256 816
3296 252 816
3289 244 813
3302 248 810
3291 244 810
3296 252 804
3296 248 801
3296 248 798
3277 244 801
3280 236 804
3283 236 801
3302 236 798
3296 240 798
3277 228 798
3277 228 795
3280 236 792
3283 240 792
3280 244 789
3286 248 786
3291 252 792
3277 252 786
3291 232 783
3302 236 783
3286 240 780
3289 240 777
3299 236 774
3299 232 771
3286 236 768
3286 220 768
3299 232 762
3286 216 756
3277 220 759
3280 224 759
3296 228 759
3296 215 752
3296 220 753
3277 224 750
3291 224 747
3289 232 750
3296 248 753
3283 252 747
3302 248 744
3286 240 735
3294 240 729
3289 244 729
3283 228 729
3283 229 726
3299 252 723
3289 252 729
3291 260 717
3296 263 714
3294 272 723
3302 272 726
3299 260 732
3302 256 750
3286 260 750
3277 268 750
3286 276 735
3291 276 732
3299 288 738
3280 284 744
3283 280 753
3296 284 750
3296 296 750
3286 296 747
3286 296 744
3283 296 741
3294 304 738
3296 312 744
3294 316 753
3296 320 747
3296 324 747
3286 303 766
3291 304 771
3299 308 771
3294 328 750
3283 336 750
3294 328 756
3302 336 759
3291 344 756
3286 328 762
3277 328 765
3294 340 765
3294 340 768
3283 340 771
3286 360 759
3294 368 765
3302 364 771
3289 368 777
3296 372 777
3277 360 777
3289 356 771
3277 360 789
3283 360 792
3280 356 780
3289 352 774
3289 352 783
3302 348 795
3294 364 804
3280 364 810
3299 364 816
3280 364 825
3283 348 825
3280 344 828
Если же этот файл не катит, создайте свой.Для этого запустите функцию NormMark, прицелом помечайте деревья в порядке рубки, в конце напишите StopMark. Затем запустите функцию Optins и укажите на топор и на ваш счастливый билет.И теперь главная функция - Lumberjacking.Удачного времяпрепровождения!
PS:НЕ забывайте, что для нормального хождения у Вас должны быть настроены кнопки нумпада на хождение.
Last edited by grundick on 2007-11-19 10:25:15, edited 2 times in total.
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

вот блин такая же фигня

Post by twis1 »

вот блин такая же фигня я на первом оскоме одно дерево отрубил и дальше не идет(((((((((((((((((( :cry:
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

у меня не ходит из за того что стерлки не работают?

Post by twis1 »

у меня не ходит из за того что стерлки не работают?
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

Нум

Post by twis1 »

нум лок я настроил он к первому дереву идет а дальше не хочет
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Post by grundick »

что пишет? что говорит? рубит он их вообще или нет? если рубит-то сколько раз?
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

вот скрипт

Post by twis1 »

каторый последний скрипт мне вылажили он рубанет один раз вырубит и стоит а скрипт запушен
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

вот что пишет

Post by twis1 »

вот что пишет после того как вырубаеться один раз "You pu the Prison logs in your pack." вот что пишет когда физлит "You hack the tree for a while. but fail to produce any useable wood." вот что пишет когда кончаеються логи в дереве "Тут не осталось пригодной древесины.Нечего рубить."


вот мне парниша сказал что ети слова кудато вскрипт вставить нада я пытался чот не получаеться
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Post by grundick »

Попробуй поменять этот кусок.

Code: Select all

###############################################################################################
#########################                 GET THE TREE               ##########################
###############################################################################################

Sub GetTree(Type,X,Y,Z) 
VAR jor, ser, noto, n ,t 
var maxtime=1000
t=uo.timer()
  uo.deleteJournal()
  while not (UO.InJournal("You can't reach this|Это слишком далеко отсюда|Тут не осталось") or ((t + maxtime) < UO.Timer()))
   
    UO.DeleteJournal()
    UO.Waittargettile(Type,X,Y,Z)
    uo.UseObject('Axe')
    while not UO.InJournal("You can't reach this|Это слишком далеко отсюда|Тут не осталось|fail to produce any useable|You put|Подолбив дерево|is attacking you|You have found") and not uo.Dead()
      wait(250)
    wend
   wend
return 0
end sub
Так же возможно инжект не читает русскиз мессаг.В любом случае попробуй установить русские шрифты(предварительно сохрнив свои).cСкачать мона отсюда http://uo-desktop.uoo.ru/files/rus_fonts_pack.zip, распаковываешь zip и один из fonts.mul кидаешь в свою папку с Ультимой.[/code]
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

дай аську

Post by twis1 »

дай аську пожалусто)
twis1
Posts: 24
Joined: 2007-11-18 15:35:27

плз

Post by twis1 »

не лучше стукни пожалусто 335759955
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Post by grundick »

не дам и не стукну. приложи хоть каплю старания.
Post Reply