Вторник, 30.04.2024, 09:57
Приветствую Вас Гость | RSS
Обитель неприкаянных душ
Главная | Каталог файлов | Регистрация | Вход
Меню сайта
Категории каталога
Скрипты [43]
Мини-чат
Главная » Файлы » Скрипты

Рыбалка с ходилкой
[ ] 17.07.2008, 21:21
##########################################################
###      Фишинг / Марк Поинтс v1.0 (19/06/07           ###
##########################################################
###           Шард Dragon World / www.drw.ru           ###
##########################################################
##########################################################
### По вопросам и предложениям обращаться сюда:
### ICQ: 354743436 или 233461603 (ВЕТЕРАН)
### Авторы:
### -За основу марка взят скрипт:"©Elthar aka Duo",
### за что его автору большое спасибо.
### -Автор скрипта:"BETEPAH".
### -Редактировал и дополнял:"BETEPAH".
#########################################################
############################
### Описание и настройка ###
############################
### Обратите внимание на значки "]![" ими выделенны важные сообщения.
###
### Чар бегает от точки ловли к точке (координаты берет из файла).
### Выловит, бежит к следующей, при макс весе порталится домой скидывает все в сундук,
### после реколится обратно и бежит к последней точке и продолжает рыбачить.
### Пример: В файле 10 точек ловли, вы выловив на них всю рыбу дошли до придела веса, сработала система рекола
### и вы "порталитесь" домой и складываете улоа в сундук, после вы реколитесь обратно на берег и бежите к 1 точке.
### Перво наперво запустите 1 раз скрипт ОПЦИИ.
### ]![ Чтобы скрипт заработал внимательно прочтите настройки. ]![
###
###################################
###    Режимы работы скрипта    ###
###################################
### Работает в 2х режимах:      ###
### 1)Маркировка                ###
### 2)Ловля                     ###
###################################
### Режим Первый - "Маркировка" ###
###################################
### Этот режим отвечает за Маркирование(записывание координат)
### Включается переменной var GetFromFile=0 ## 1 - координаты будут считыватся из файла, 0 - собиратся из клиента.
### То есть если GetFromFile=0 координаты точек собиратся из клиента.
###
### Маркировка происходит так:
### Поставте переменную GetFromFile равную 0 (GetFromFile=0).
### Положите к себе в сумку Удочку, Рунбук(с рунами домой и на берег) и Кирку.
### Идите на берег.
### Запустите Скрипт Starter(), инжект попросит вас указать кирку.
### (появится прицел,прицелом на кирку которая у вас в паке или в руках)
### Инжект сообщит вам что ('Собираем координаты в округе...').
#### Теперь вы должны в любом порядке сами прицелом указать координаты(достаточно просто нажать прицелом на Землю).
### Ходите по берегу и марчите точки. Для того чтобы ОСТАНОВИТЬ МАРК нажмите прицелом на себя.
### Инжект напишет вам сообщение ('Анализ закончен, координаты записаны в файл C:\Fish.dat') и создаст файл на диске
### С:\ куда запишет координаты.
### После этого чар пойдет по координатам и будет  рыбачить.
###
##############################
### Режим Второй - "Ловля" ###
##############################
### Этот режим соответственно отвечает за Ловлю.
### Включается переменной var GetFromFile=1 ## 1 - координаты будут считыватся из файла, 0 - собиратся из клиента
### То есть если GetFromFile=1 координаты будут считыватся из файла.
### И вам не надо будет сново марчить точки.
###
### Ловля происходит так:
### Поставте переменную GetFromFile равную 1 (GetFromFile=1).
### Положите к себе в сумку Удочку и Рунбук(с рунами домой и на берег).
###
######################################
### Дополнительные функции скрипта ###
######################################
### В скрипте есть доп. функции:   ###
### 1)Кушанье                      ###
### 2)Побег при Атаке              ###
### 3)Реконнект                    ###
############################################
### Функция Первая - "Употребление Пищи" ###
############################################
### Этот режим соответственно отвечает за Употребление Пищи.
### Включается переменной var EatingFood=1 ## 1 - Будем есть, 0 - нет.
### То есть если EatingFood=1 чар будет кушать.
###
### Употребление Пищи происходит так:
### Поставте переменную EatingFood равную 1 (EatingFood=1).
### Положите в сундук куда будут выгружаться логи и где лежат реколы - еду,
### тип которой вы указали тут var TypeFood='0x097B' ## - Тип еды которую будем кушать.(сейчас фиштейки)
### ]![ Советую положить в сундук побольше еды т.к. ели она кончиться скрипт встанет! ]![
### После того как чар выложит логи и речаржнет рунбуку, будет кушать.
### Он берет 20 единиц еды и кушает, что осталось выгружает обратно в сундук.
###
##########################################
### Функция Вторая - "Побег при Атаке" ###
##########################################
### Этот режим соответственно отвечает за Побег при атаке ентов и не только.
### Включается переменной var AttackPK=1 ## 1 - Включить рекол при атаке, 0 - отключить рекол.
### То есть если AttackPK=1 чар будет реколиться при атаке.
###
### Побег происходит так:
### Поставте переменную AttackPK равную 1 (AttackEnts=1).
### Что нада сделать далее:
### 1) Телепортироваться самому на место рыбалки.
### 2) 3апустить скрипт заново!
###
#######################################
### Функция Третья  - "Реконнект"   ###
#######################################
### Этот режим соответственно отвечает за Реконнект при выкидывании с сервера.
### Включается переменной var Reconnect=0 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.
### То есть если Reconnect=1 чар будет реколиться при атаке.
###
### Реконнект происходит так:
### Поставте переменную Reconnect равную 1 (Reconnect=1).
### Если вдруг повиснет игровая сфера или вас выкинет по любой другой причине
### реконнектор законнектит вса на сервер автоматически.
### Пишется время дисконнекта и коннекта на сервер.
###
### Настройте скрипт под себя при помощи переменных.
###
##################
### Переменные ###
##################
###################################################################################################
var f=file("C:\Fish.dat") ## - Путь к файлу в котором будут хранится координаты
###
var TryHiding=1 ## 1 - Перед тем как рыбачить, будет пытаться уйти в хайд, 0 - не будет .
###
var TryRecall=1 ## 1 - После того как соберет полный вес будет пытаться реколиться домой,
### складывать Улов в сундук и реколиться обратно , 0 - не будет.
###
var RuneToHome=1 ## 1 -  Номер руны Домой,по счёту в рунбуке.(сейчас в 1ом слоте,можно менять от 1-9)
###
var RuneToPoint=2 ## 2- Номер руны в Лес,по счёту в рунбуке.(сейчас в 9ом слоте,можно менять от 1-9)
###
var GetFromFile=1 ## 1 - Координаты будут считыватся из файла, 0 - собиратся из клиента
### (сначала соберите а потом считывайте из файла).
###
var EatingFood=0 ## 1 - Будем есть, 0 - нет.
###
var TypeFood='0x097B' ## - Тип еды которую будем кушать.(сейчас фиштейки)
###
var Reconnect=1 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.
###
var oldX,oldY,time ## - Для рекола.
#########################################################################
var TryToHide=1 ## 1 - Включить уход(перед ловлей) в хайд, 0 - выключить.
###
var TakeFish=1 ## 1 - Включить сбор обычной рыбы, 0 - выключить.
###
var TakeMaps=1 ## 1 - Включить сбор карт, 0 - выключить.
###
var TakeRareFish=1 ## 1 - Включить сбор рарной рыбы, 0 - выключить.
###
var TakePrizeFish=1 ## 1 - Включить сбор приз рыбы, 0 - выключить.
###
###################################################################################################
###########
### Код ###
###########

sub Starter()
var i=0,j=0,k=0,r=0,q=0,ii,jj
var TopX=324,TopY=65
dim PointX[5000], PointY[5000],PointT[5000]

var flag=0,PointCount=0,clicks=0,flag2=0
#BETEP™#
uo.Exec("filterspeech on")
uo.Exec("filterspeech add 'Where do you want to use the pickaxe?'")

if GetFromFile==1 then
uo.Print('Загружаем координаты из файла...')
f.open()
PointCount=safe call f.ReadNumber()
for i=1 to PointCount
PointT[i]=safe call f.ReadNumber()
PointX[i]=safe call f.ReadNumber()
PointY[i]=safe call f.ReadNumber()
next
f.close()
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()
if uo.Lasttile(1)==uo.getX() and uo.Lasttile(2)==uo.gety() then
flag=3
end if
PointCount=PointCount+1
PointX[PointCount]=uo.LastTile(1)
PointY[PointCount]=uo.LastTile(2)
PointT[PointCount]=uo.LastTile(0)
uo.Print('Найдена точка ловли '+str(PointCount)+' : x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2))+' '+str(PointCount))
until (Flag==3) or (PointCount==5000)
uo.Exec("filterspeech off")
uo.Print('Анализ закончен, координаты точек записаны в файл C:\Fish.dat')
SaveToFile(PointCount,PointX,PointY,PointT)
end if
uo.Print('Точек найдено: '+str(PointCount))
wait(2000)
while 1==1
if PointCount>0 then
for i=1 to PointCount
uo.Print('Идем к координате '+str(i)+': x='+str(PointX[i])+' y='+str(PointY[i]))
flag=GotoXY(PointX[i],PointY[i])
if flag==1 then
if TryHiding==1 then
ToHide()
end if
Fishing()
end if
next
end if
wend
end sub

sub Options()########################################## Конфиг
UO.Say("Добрый день. Вас привествует скрипт настройщик!")
wait(3000)
UO.Say("Следуйте инструкциям!")
wait(3000)
UO.Say("Вы должны стоять лицом к сундуку для сброса!")
wait(4000)

UO.Say("Укажите Рунбук ")
      UO.AddObject('RuneB1')
      While UO.Targeting()==2
         wait(500)
      Wend
      UO.SaveConfig()

UO.Say("Укажите сундук прицелом")
      UO.AddObject('Sunduk')
      While UO.Targeting()==2
         wait(500)
      Wend
      UO.SaveConfig()
  UO.Say("Укажите Сумку в сундуке")
      UO.AddObject('SundukBag')
      While UO.Targeting()==2
         wait(500)
      Wend
      UO.SaveConfig()

UO.Say("Отлично")
UO.UseObject('Sunduk')
wait(3000)

UO.Say("Укажите сумку для рар рыбы")
      UO.AddObject('StoreFish')
      While UO.Targeting()==2
         wait(500)
      Wend
      UO.SaveConfig()

UO.Say("Укажите сумку для прайз рыбы")
      UO.AddObject('StorePRFish')
      While UO.Targeting()==2
         wait(500)
      Wend
      UO.SaveConfig()

UO.Say("Укажите сумку для Карт")
      UO.AddObject('StoreMAP')
      While UO.Targeting()==2
         wait(500)
      Wend
      UO.SaveConfig()

wait(2000)

UO.Say("Настройка закончена. Для изменения параметров запустите скрипт повторно.")
end sub


Sub Fishing()
var mX, mY, mZ, i, j
var f
var a=0
#########################################################################
###################
### Массив рыбы ###
###################
dim Fish[6]
Fish[0]=0x09CC
Fish[1]=0x09CD
Fish[2]=0x09CE
Fish[3]=0x09CF
Fish[4]=0x14EB
Fish[5]=0x0DD6
Fish[6]=0x0DD6

Beginning:
uo.Set('finddistance','6')
mX = uo.getX("self")
mY = uo.getY("self")
mZ = uo.getZ("self")
uo.DeleteJournal()
for i = mX-6 to mX+6
for j = mY-6 to mY+6

if uo.Dead() then
return
end if

if TryToHide==1 then
ToHide()
end if

uo.Print("Сейчас ловим: "+str(mx-i)+" "+str(my-j))

while not uo.InJournal("You pull") and not uo.InJournal("in water") and not uo.InJournal("no fish") and not uo.InJournal("far away")
uo.DeleteJournal()
uo.Waittargettile("1341", str(i), str(j), str(mZ))
uo.Usetype('0x0DBF')

while not uo.InJournal("You pull") and not uo.InJournal("location") and not uo.InJournal("no fish") and not uo.InJournal("but fail") and not uo.InJournal("far away") and not uo.InJournal("in water")
wait (100)
if uo.InJournal("You pull") then

if a>0 then
uo.print(STR(a))
end if

if UO.InJournal("You pull out a fish!") then
if TakeFish==1 then
uo.Print('Собираем рыбу.')
for f=0 to 3
uo.FindType(Fish[f],"-1","ground")
if uo.Count(Fish[2])> 0 then
a= a+1
end if
uo.MoveItem("finditem","1","Fishs")
wait(200)
next
end if
endif

if UO.InJournal("You pull out a Tattered treasure map!") then
if TakeMaps==1 then
uo.Print('Собираем карты.')
for f=4 to 4
uo.FindType(Fish[f],"-1","ground")
uo.MoveItem("finditem","-1","Maps")
wait(200)
next
end if
endif

if UO.InJournal("Truly Rare Fish") then
if TakeRareFish==1 then
uo.Print('Собираем рар рыбу.')
for f=5 to 5
uo.FindType(Fish[f],"-1","ground")
uo.MoveItem("finditem","-1","RareFish")
wait(200)
next
end if
endif

if UO.InJournal("Prize") then
if TakePrizeFish==1 then
uo.Print('Собираем приз рыбу.')
for f=6 to 6
uo.FindType(Fish[f],"-1","ground")
uo.MoveItem("finditem","-1","PrizeFish")
wait(200)
next
end if
endif

if TryRecall==1 and uo.Weight>=uo.STR*4+20 then
ToRecall()
end if

end if
wend
wend
uo.DeleteJournal()
next
next
end sub


Sub ToRecall()
RecallToHome()
Drop()
if EatingFood==1 then
EatingFood()
end if
wait(3000)
RecallToPoint()
end sub

sub RecallToHome()
uo.Print('Прыгаем Домой.')
RunebookRecall(RuneToHome)
end sub

sub RecallToPoint()
uo.Print('Прыгаем в Лес.')
RunebookRecall(RuneToPoint)
end sub

sub ToHide()
while not uo.Hidden()
uo.Print('Пытаемся уйти в хайд...')
uo.DeleteJournal()
uo.UseSkill('Stealth')
wait(4500)
wend
wait(100)
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 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 Numb(x-myX)<=1 and Numb(y-myY)<=1 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(PointCount,PointX,PointY,PointT)
var f=file("C:\Fish.dat")
var s=0,i=0
f.open()
f.create()
s=safe call f.writeln(PointCount)
for i=1 to PointCount
s=safe call f.writeln(str(PointT[i])+' '+str(PointX[i])+' '+str(PointY[i]))
next
f.close()
end sub

sub Drop()
if uo.Waiting() then
uo.CancelTarget()
end if
var Exit
var f
;var a=0
dim Fish[7]
Fish[0]=0x09CC
Fish[1]=0x09CD
Fish[2]=0x09CE
Fish[3]=0x09CF
Fish[4]=0x14EB
Fish[5]=0x0DD6
Fish[6]=0x0DD6

UO.UseObject('Sunduk')
wait(1000)
UO.UseObject('SundukBag')
wait(1000)
UO.UseObject('StoreFish')
wait(1300)
UO.UseObject('StoreMAP')
wait(1000)
UO.UseObject('StorePRFish')


wait(700)
exit=0

repeat
for f=0 to 3
uo.FindType(Fish[f],"-1","backpack")
uo.SetReceivingContainer('StoreFish')
if uo.GetQuantity('finditem')> 0 then
repeat
wait(130)

uo.FindType(Fish[f],"-1","backpack")
uo.Grab('0','finditem')
wait(1300)
until uo.FindCount()==0
else
exit=1
next
uo.UnSetReceivingContainer()
end if
until Exit==1

exit=0
repeat
for f=4 to 4
uo.FindType(Fish[f],"-1","backpack")
uo.SetReceivingContainer('StoreMAP')
if uo.GetQuantity('finditem')> 0 then
repeat
uo.FindType(Fish[f],"-1","backpack")
uo.Grab('0','finditem')
wait(1000)
until uo.FindCount()==0
else
exit=1
next
uo.UnSetReceivingContainer()
end if
until Exit==1

exit=0
repeat
for f=5 to 5
uo.FindType(Fish[f],"0x01BB","backpack")
uo.SetReceivingContainer('StorePRFish')
if uo.GetQuantity('finditem')>0 then
repeat
uo.FindType(Fish[f],"0x01BB","backpack")
uo.Grab('0','finditem')
wait(1000)
until uo.FindCount()==0
else
exit=1
next
uo.UnSetReceivingContainer()
end if
until Exit==1

repeat
for f=6 to 6
uo.FindType(Fish[f],"backpack")
uo.SetReceivingContainer('StoreFish') ;rar
if uo.GetQuantity('finditem')>0 then
repeat
uo.FindType(Fish[f],"-1","backpack")
uo.Grab('0','finditem')
wait(1000)
until uo.FindCount()==0
else
exit=1
next
uo.UnSetReceivingContainer()
end if
until Exit==1
uo.Print("Улов выложен")
end sub


Sub RunebookRecall(n)
oldX=uo.getX()
oldY=uo.getY()
repeat
uo.Exec('warmode 0')
uo.UseObject('Runebook')
wait(1000)
uo.LClick(135, n*15+55)
wait(500)
uo.LClick(135, n*15+55)
time=uo.Timer()
repeat
wait(500)
until oldX<>uo.getX() or oldY<>uo.getY() or uo.Life==0 or uo.InJournal('needs') or time+200<uo.Timer()
uo.DeleteJournal()
until oldX<>uo.getX() or oldY<>uo.getY()
end sub

Sub Open(Container)
uo.DeleteJournal()
uo.UseObject(Container)
repeat
wait(500)
until uo.InJournal('Contains')
end sub


Sub EatingFood()
ToEat()
DropFood()
end sub

Sub ToEat()
uo.SetReceivingContainer('backpack')
Open('Sunduk')
uo.FindType(TypeFood,'-1','Sunduk')
uo.Grab('50','finditem')
wait(500)
repeat
Checklag()
uo.UseType(TypeFood)
wait(1000)
until uo.InJournal('You are simply too full to eat any more!')
uo.UnsetReceivingContainer()
end sub

Sub DropFood()
if uo.Waiting() then
uo.CancelTarget()
end if
var f,Exit
dim Food[1]
Food[0]=TypeFood
uo.SetReceivingContainer('Sunduk')
wait(500)
for f=0 to 0
Exit=0
repeat
uo.FindType(Food[f])
if uo.GetQuantity('finditem')>0 then
uo.Grab('0','finditem')
wait(1500)
else
Exit=1
end if
until Exit==1
next
uo.UnSetReceivingContainer('Sunduk')
end sub

Sub RecallAtAttack()
var mX,mY
reccal:
uo.DeleteJournal()
if uo.Waiting() then
uo.CancelTarget()
end if
mX=uo.getX("self")
mY=uo.getY("self")
uo.DeleteJournal()
uo.FindType('0x1F14',-1,'mY')
uo.Cast('Recall','finditem')
uo.Print('Атака! Реколимся!')
wait(4000)
if not uo.getX("self")<>mX and not uo.getY("self")<>mY then
goto reccal
end if
RecallToHome()
Drop()
Terminate()
end sub

sub Reconnect()
var ReconnectTime,rFlag
ReconnectTime='0'
rFlag=1
repeat
while (uo.ObjAtLayer('Bpack')=='')
if rFlag then
ReconnectTime=MakeTime()
rFlag=0
end if
wait(20000)
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.TextOpen()
uo.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
rFlag=1
ReconnectTime='0'
end if
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
end if
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
end if
next
ret=t+" @ "+d
return ret
end sub

sub Terminate()
uo.Print('Все функции скрипта выключены!')
uo.DeleteJournal()
uo.Exec('terminate all')
wait(100)
uo.Exec('terminate all')
wait(100)
uo.Exec('terminate all')
wait(100)
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


Категория: Скрипты | Добавил: antaris | Автор: Гайра
Просмотров: 1425 | Загрузок: 26
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта

    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Copyright MyCorp © 2024

    Бесплатный хостинг uCoz