ВИП МИНИНГ ДРВ...

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
-=WOLVERINE=-
Posts: 66
Joined: 2004-05-27 18:19:17
Contact:

ВИП МИНИНГ ДРВ...

Post by -=WOLVERINE=- »

Code: Select all

; Скрипт на вип шахту с хождением 
;  by WOLVERINE!!!!

;   это первый мой крупный скрипт поэтому может он не слишком крутой
;  Но я старался...
;  by WOLVERINE!!!
; Скрипт делает следующее: чар копает всё вокруг себя, потом переходит к сле-
; дующему месту и т.д. Если набирёт указанный вес (по умолчанию 700) то пойдёт
; разгрузит руду в сундук, затем вернётся и продолжит с того места, на котором
; остановился. Копание происходит стоя в хайде.
;
; В случае выкапывания элементали, если включенно убийство элей
; (переменная KillElemental равна 1) чар будет пить инвизку, морфиться
; в демона, брать в руки щит, одевать горжетку,лечиться и килять элю,
; потом лутать руду и продолжать копать (чтобы всё это работало желательно,
; чтобы у чара были прокачены Wrestling, Parrying, Tactics, в бекпеке должны
; быть инвизки (чар будет пить перед тем как морфиться, чтобы эля не убила),
; тотал манки, щит, горжетка (это та часть армора, которая на шею одевается).
; Если убийство элей отключено (переменная KillElemental равна 0), то чар
; сначала, стоя в хайде, докапает всё вокруг себя, потом будет просто стоять.
;
; В скрипте предусмотренна одновременная прокачка спирит спика (это не отразиться
; на эффетивности скрипта).
;
; Настройка:
; Укажите нужно ли убивать элементалей (переменная KillElemental). По умолчанию включено.
; Укажите вес, набрав который чар пойдёт разгружаться (переменная maxweight)
; Укажите координаты х и у точки, находящейся рядом с сундуком (переменные x[0],y[o])
; Введите координаты тайлов, между которыми нужно ходить и стоя в которых копать (массивы x и y)
; Укажите количество тайлов, между которыми ходит чар (переменная n)
; Укажите ID ящика и подконтейнера внутри этого ящика, в который чар будет складывать руду
; (переменные Container и Container2 в функции Razgruzka()).
;
; Всё. Наслаждайтесь.

sub main()
VAR KillElemental=0 ;Убивать элей, или нет
VAR my, mx,i,j,p=1,time=UO.Time(),maxweight=700,n=2
DIM x[1],y[1]
x[0]=5519 ;Координаты тайла
y[0]=1594  ;рядом с ящиком

;Парами х,у укажите координаты тайлов, стоя в которых чар будет копать вокруг себя
x[1]=5522 
y[1]=1583


uo.deletejournal()
while (not uo.dead())   
  WalkN(x[p],y[p],'')
  if p==1 then ;Вместо цифры 2 укажите порядковый номер последнего тайла, стоя в котором вы копаете
    p=1
  else
    p=p+1
  endif
  mx = UO.GetX("self")
  my = UO.GetY("self")
  tohide()
  for i = mx-3 to mx+3
   for j = my-3 to my+3     
   dig(i,j,KillElemental)
if UO.Weight>=maxweight then
   WalkN(x[0],y[0],'')
   razgruzka()
   WalkN(x[p],y[p],'')
   endif
###### Spirit Speak ######
UO.FindType('0x0010',-1,'ground')
if uo.Time()-time>500 and UO.FindCount()>0 and UO.SkillVal('Spirit',1)<1000 then
uo.deletejournal()
uo.useskill('Spirit')
while not uo.injournal('netherworld')
   wait(200)
   wend
time=uo.Time()
tohide()
endif
##########################
   UO.Print("Now Mining In: "+str(mx-i)+" "+str(my-j))    
  next
   next
UO.FindType('0x0010',-1,'ground')
if UO.FindCount()>0 then
   i = UO.GetX("self")
   j = UO.GetY("self")
   if KillElemental==1 Then
      KillElem()
      WalkN(i,j,'')
   else
      repeat
      wait(1000)
      until UO.IsNPC('finditem')==0
   endif
endif
  WalkN(x[0],y[0],'')
  razgruzka()
  wend
end sub

sub dig(i,j,KillElemental)
var MMM,count,x,y

while (not uo.injournal("no ore")) and (not uo.injournal("in rock")) and (not uo.injournal ("That is too far")); and (not uo.injournal ("You put the Iron Ore"))
  tohide()
  UO.Waittargettile("1339", str(i), str(j),"0")
  UO.Usetype (0x0F39)  ;a shovel
  uo.deletejournal()
  count=0
  while (not uo.injournal("fail")) and (not uo.injournal("put")) and (not uo.injournal("elemental")) and (not uo.injournal("no ore")) and (not uo.injournal("in rock")) and (not uo.injournal ("That is too far")) and count<300
    wait(100)
   count=count+1
    wend
   if count<10 and uo.injournal("fail") then
      wait(9000)
      endif
  UO.FindType('0x0010',-1,'ground')
  if UO.InJournal('something with ore') OR UO.InJournal("attacking you") OR uo.findcount()>0 then
    x = UO.GetX("self")
    y = UO.GetY("self")
    if KillElemental==1 Then
      KillElem()
      WalkN(x,y,'')         
    endif
  endif 
wend
uo.deletejournal()
end sub

sub razgruzka()
VAR Container='0x4015C687'; Тут укажите ID своего ящика
VAR Container2='0x4038E9D7';ID сумки внутри ящика
UO.UseObject(Container)
wait(1000)
while uo.count('0x19B7')<>0
   UO.FindType('0x19B7')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x19B8')<>0
   UO.FindType('0x19B8')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x19B9')<>0
   UO.FindType('0x19B9')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x19BA')<>0
   UO.FindType('0x19BA')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x0EED')<>0
   UO.FindType('0x0EED')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x0F11')<>0
   UO.FindType('0x0F11')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x0F15')<>0
   UO.FindType('0x0F15')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x0F16')<>0
   UO.FindType('0x0F16')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x0F10')<>0
   UO.FindType('0x0F10')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x0F26')<>0
   UO.FindType('0x0F26')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x0F0F')<>0
   UO.FindType('0x0F0F')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x143E')<>0
   UO.FindType('0x143E')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
  while uo.count('0x0F18')<>0
   UO.FindType('0x0F18')
   UO.MoveItem('finditem','0',Container2)   
   wait(900)
   wend
end sub

sub tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
if UO.Life<50 then
  UO.UseType('0x0F0E','0x0631') ; inviz potion
  wait(2000)
    else
  UO.UseSkill('Hiding')
  repeat
    wait(50)
    until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied')
  endif
UO.WarMode('flip')
wait(100)
UO.Warmode(0)
wend
end sub


#=====================================thx to SavageV===========
# CheckLag() - click on backpack and awaiting "backpack"
#    message in journal.
#
# Journal has been deleted!!!
#--------------------------------------------------------------
sub CheckLag()
 UO.DeleteJournal()
 UO.Click('backpack')

 Repeat
  wait(500)
 Until UO.InJournal('backpack')
end sub


#======================================thx to SavageV==========
# WalkN(X,Y,Serial) - char is walking by dX and dY step
#    sub using Home, End, PgUp, PgDown keys
#    d'not rebind this key from default action!
#  serial - Serial of target or "" - string
#  walkwait - delay after keypress
#  Example:
#  WalkN(2080,2113,'') - go to coordinates
#  WalkN(0,0,'0x12345678') - go to target position
#--------------------------------------------------------------
sub WalkN(x,y,Target)
 VAR i,StepSucess
 VAR dx,dy,Exit=0
 
 While Exit<>1
  If Target<>"" Then
   dx=UO.GetX(Target)-UO.GetX()
   dy=UO.GetY(Target)-UO.GetY()
   If UO.GetDistance(Target)<2 Then
   Exit=1
   Endif
  Else
   dx=x-UO.GetX()
   dy=y-UO.GetY()
   If dx==0 AND dy==0 Then
   Exit=1
   Endif

  Endif
 
  If dx<>0 AND dy<>0 Then
   If dx>0 AND dy>0 Then
   StepSucess=Go(3,40,300) ;SE - DownArrow
   Endif

   If dx>0 AND dy<0 Then
   StepSucess=Go(1,39,300) ;NE - RightArrow
   Endif

   If dx<0 AND dy>0 Then
   StepSucess=Go(5,37,300) ;SW - LeftArrow
   Endif

   If dx<0 AND dy<0 Then
   StepSucess=Go(7,38,300) ;WN - UpArrow
   Endif

  Endif
 
  If dx<>0 AND dy==0 Then
   If dx>0 Then
   StepSucess=Go(2,34,300) ;E - PgDown
   If StepSucess==-1 Then
    StepSucess=Go(3,40,300) ;SE - DownArrow
    If StepSucess==-1 Then
     StepSucess=Go(1,39,300) ;NE - RightArrow
    Endif
   Endif
   Endif
   
   If dx<0 Then
   StepSucess=Go(6,36,300) ;W - Home
   If StepSucess==-1 Then
    StepSucess=Go(7,38,300) ;WN - UpArrow
    If StepSucess==-1 Then
     StepSucess=Go(5,37,300) ;SW - LeftArrow
    Endif
   Endif
   Endif
  Endif


  If dx==0 AND dy<>0 Then
   If dy>0 Then
   StepSucess=Go(4,35,300) ;S - End
   If StepSucess==-1 Then
    StepSucess=Go(3,40,300) ;SE - DownArrow
    If StepSucess==-1 Then
     StepSucess=Go(5,37,300) ;SW - LeftArrow
    Endif
   Endif
   Endif
   
   If dy<0 Then
   StepSucess=Go(0,33,300) ;N - PgUp
   If StepSucess==-1 Then
    StepSucess=Go(7,38,300) ;WN - UpArrow
    If StepSucess==-1 Then
     StepSucess=Go(1,39,300) ;NE - RightArrow
    Endif
   Endif
   Endif
  Endif
 Wend
end sub


sub Go(dir,key,walkwait)
 VAR x,y

 x=UO.GetX()
 y=UO.GetY()

 while UO.GetDir()<>dir
  UO.Press(key)
  wait(walkwait)
  If UO.GetDir()<>dir Then
   CheckLag()
  Endif
 wend

 UO.Press(key)
 wait(walkwait)

 If x==UO.GetX() AND y==UO.GetY() Then
  CheckLag()
 Endif
 
 If x==UO.GetX() AND y==UO.GetY() Then
  return -1
 Else
  return 1
 Endif
end sub

sub killelem()
  VAR LastTimer, Elem
  UO.UseType('0x0F0E','0x0631') ; inviz potion
  While UO.STR<201 ; U'r not morfed char max Strength + 1
    If UO.Mana>=50 then
      UO.WaitMenu('What','Daemon')
      UO.Cast('Polymorph')
      wait(8000)
    else
      UO.UseType('0x0F0E','0x09DF') ; total mana potion
      wait(3000)
    endif
  Wend 
  LastTimer=UO.Timer() 
  repeat
    UO.BandageSelf()
    wait(4000)
  until UO.Life==UO.STR
  UO.UseType(0x1B76) ; heater shield
  UO.UseType(0x1413) ; platemail gorget 
  UO.DeleteJournal()
  UO.Exec('warmode 1')
  UO.FindType('0x0010',-1,'ground')
  Elem=UO.GetSerial('finditem')
  UO.Attack(Elem) 
  repeat
    wait(1000)
    If UO.Life<50 Then
      UO.UseType('0x0F0E','0x09BB') ;GH
    Endif
    If UO.GetDistance(Elem)>1 Then
      WalkN(0,0,Elem)
    Endif
  until UO.IsNPC(Elem)==0
  wait(3000)
  UO.findtype('0x19B9',-1,'ground') ; 3 ore
  UO.moveitem('finditem')
  wait(1000)
  UO.findtype('0x19B8',-1,'ground') ; 3 ore
  UO.moveitem('finditem')
  wait(1000)
  UO.findtype('0x19BA',-1,'ground') ; 3 ore
  UO.moveitem('finditem')
  wait(1000)
  UO.findtype('0x19B7',-1,'ground') ; 3 ore
  UO.moveitem('finditem')
  wait(1000)
  UO.findtype('0x0EED',-1,'ground') ; 3 ore
  UO.moveitem('finditem')
  wait(1000)
  UO.FindType('0x0010',-1,'ground')
  If UO.GetQuantity('finditem')>0 Then
    KillElem()
  Endif
  UO.Exec('warmode 0')
  wait(1000)
  UO.Print("Sdoh skotina!")
  LastTimer=UO.Timer()
  if UO.Life<180 then ; U'r max HP
    repeat
      UO.BandageSelf()
      wait(4000)
    until UO.Life>180 OR LastTimer+300<UO.Timer()
  endif
  UO.DeleteJournal()
end sub

Собственно скрипт работает ..но хотелось бы чтобы он ходил по нескольким координатам:Данныи скрипт ходит только в одну точку окапывает до определенного веса и идет разгружаться....хотелось бы чтоб по проишествию разргузки он шел в другое место...Играю Я на ДРВ копаю в випке ...Хотелось бы чтоб скрипт ходил по 4 точкам...
Очень прошу помочь чем можете!
Буду очень признателен и благодарен
Dominator
Posts: 124
Joined: 2005-04-06 05:53:47

Post by Dominator »

Смело в Поиск там ищи примеры.
-=WOLVERINE=-
Posts: 66
Joined: 2004-05-27 18:19:17
Contact:

Post by -=WOLVERINE=- »

Dominator wrote:Смело в Поиск там ищи примеры.

Нахер так делать то???Зачем отправлять в поиск???Да не спорю поиск руллит..но когда ты облазил весь форум и ничего подходящего не нашел....
Имхо не следует выкрутасничать ...лучше бы помог советом а не *поиск* :x :!: :evil:
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Интересный вариант, аФтор сам написал вот это….

Code: Select all

  
if p==1 then ;Вместо цифры 2 укажите порядковый номер последнего тайла, стоя в котором вы копаете
    p=1
  else
    p=p+1
  endif


А потом спрашивает КАК этим пользоваться…. Видимо забыл пока писал, бывает :wink:

А поиск рулит. По слову VIP сразу найдешь скрипт Саважа и на малую и на большую шахту
Dominator
Posts: 124
Joined: 2005-04-06 05:53:47

Post by Dominator »

2-=WOLVERINE=- ---------omi4 тебе даж написал в каком скрипте моно такое найти , просто ес головкой думать умееш тоб нашел что искал ,и после етого НеговорИ что я был неправ с поиском ,просто надо уметь находить нужную информацию (скрипты в данном случае ,и уметь отсеивать те кторые для тебя бесполезные :!: :!: :!: ):!: .

Так что прими мои слова как учиние набудущее
SAMURAI
Posts: 203
Joined: 2004-07-10 00:38:43
Location: From DrW
Contact:

Post by SAMURAI »

И почему же в поиске ненашёл - незнаю :)
:arrow: Скрипт на копание по 4м точкам
:arrow: Скрипт на копание по 2м точкам
АФФтар - Savage.

з.ы. Лично копав в малой ВИПке настроил себе на 3и точки. :)
Нет ничего невозможного...
Кто ИЩЕТ, тот всегда найдёт...

Code: Select all

sub UO() 
UO.Chto-To("S Chem-To")
end sub

© I'm
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

SAMURAI wrote:И почему же в поиске ненашёл - незнаю :)
:arrow: Скрипт на копание по 4м точкам
:arrow: Скрипт на копание по 2м точкам
АФФтар - Savage.

з.ы. Лично копав в малой ВИПке настроил себе на 3и точки. :)


Да не поможет ему поиск, в его собственом скрипте все это есть.
Он даже это описал.... Хоть 100 точек делай

Code: Select all

;Парами х,у укажите координаты тайлов, стоя в которых чар будет копать вокруг себя 
x[1]=5522 
y[1]=1583
-=WOLVERINE=-
Posts: 66
Joined: 2004-05-27 18:19:17
Contact:

Post by -=WOLVERINE=- »

SAMURAI wrote:И почему же в поиске ненашёл - незнаю :)
:arrow: Скрипт на копание по 4м точкам
:arrow: Скрипт на копание по 2м точкам
АФФтар - Savage.

з.ы. Лично копав в малой ВИПке настроил себе на 3и точки. :)

У савы есть одна маленькая проблема....он копает только раз...тоесть выкопав в однои точке что либо он сразу переходит в другую(я имею ввиду то что он не всю руду выкапывает с одного источника...)
-=WOLVERINE=-
Posts: 66
Joined: 2004-05-27 18:19:17
Contact:

Post by -=WOLVERINE=- »

omi4 wrote:Интересный вариант, аФтор сам написал вот это….

Code: Select all

  
if p==1 then ;Вместо цифры 2 укажите порядковый номер последнего тайла, стоя в котором вы копаете
    p=1
  else
    p=p+1
  endif


А потом спрашивает КАК этим пользоваться…. Видимо забыл пока писал, бывает :wink:

А поиск рулит. По слову VIP сразу найдешь скрипт Саважа и на малую и на большую шахту

Скрипт писался ...на примерах....так что ..извените....я конечно уже настроил все как надо за то вам и спасибо!
З.Ы. Учиться, учиться и еще раз учиться, как и завещал дедушка Ленини...
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

-=WOLVERINE=- wrote:У савы есть одна маленькая проблема....он копает только раз...тоесть выкопав в однои точке что либо он сразу переходит в другую(я имею ввиду то что он не всю руду выкапывает с одного источника...)
как бы настроить можно ;)
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Самые лучшие скрипты - свои скрипты.
Сделал дело - флуди смело !!!
-=WOLVERINE=-
Posts: 66
Joined: 2004-05-27 18:19:17
Contact:

Post by -=WOLVERINE=- »

Sfagnum wrote:
-=WOLVERINE=- wrote:У савы есть одна маленькая проблема....он копает только раз...тоесть выкопав в однои точке что либо он сразу переходит в другую(я имею ввиду то что он не всю руду выкапывает с одного источника...)
как бы настроить можно ;)

Настраивал...безтолку все равно роет только раз в одном месте он даже до надписи нот мининг хере(или тип толго что то) не доходит...
-=WOLVERINE=-
Posts: 66
Joined: 2004-05-27 18:19:17
Contact:

Post by -=WOLVERINE=- »

Ребят может кто сможет мне помочь..суть проблемы таова...теперь когда этот скрипт (настроил всетаки)) копает в нескольких точках...он ну вообщем он копает у меня в 5 точках..потом по окапывании данных 5 точек он переходи на последнюю(или какую можно поставить )и копает только в даннои точке...как можно заставить скрипт чтоб он циклично копал ???ну чтоб он рыл кругом с 1 по 5 точку возвращался к первои и опять до 5...
З.Ы. скрипт выше...
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

copy & paste не метод писания, прочти свой скрипт
пойми зачем каждая строчка......

Вот тебе опять тотже кусок..........

Code: Select all

  if p==5 then ;Вместо цифры 2 укажите порядковый номер последнего тайла, стоя в котором вы копаете 
    p=1
  else
    p=p+1
  endif
Post Reply