Yoko

All sides of Injection
It is currently 2025-12-25 15:26:39

All times are UTC+02:00




Post new topic  Reply to topic  [ 14 posts ] 
Author Message
PostPosted: 2005-07-14 20:38:11 
Offline

Joined: 2004-05-27 18:19:17
Posts: 66
Code:
; Скрипт на вип шахту с хождением 
;  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 точкам...
Очень прошу помочь чем можете!
Буду очень признателен и благодарен


Top
   
 Post subject:
PostPosted: 2005-07-15 05:50:11 
Offline
User avatar

Joined: 2005-04-06 05:53:47
Posts: 124
Смело в Поиск там ищи примеры.


Top
   
 Post subject:
PostPosted: 2005-07-15 12:41:55 
Offline

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

Нахер так делать то???Зачем отправлять в поиск???Да не спорю поиск руллит..но когда ты облазил весь форум и ничего подходящего не нашел....
Имхо не следует выкрутасничать ...лучше бы помог советом а не *поиск* :x :!: :evil:


Top
   
 Post subject:
PostPosted: 2005-07-15 15:28:16 
Offline
User avatar

Joined: 2005-07-10 21:53:05
Posts: 457
Интересный вариант, аФтор сам написал вот это….
Code:
  
if p==1 then ;Вместо цифры 2 укажите порядковый номер последнего тайла, стоя в котором вы копаете
    p=1
  else
    p=p+1
  endif


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

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


Top
   
 Post subject:
PostPosted: 2005-07-19 00:17:19 
Offline
User avatar

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

Так что прими мои слова как учиние набудущее


Top
   
 Post subject:
PostPosted: 2005-07-19 16:42:11 
Offline
User avatar

Joined: 2004-07-10 00:38:43
Posts: 203
Location: From DrW
И почему же в поиске ненашёл - незнаю :)
:arrow: Скрипт на копание по 4м точкам
:arrow: Скрипт на копание по 2м точкам
АФФтар - Savage.

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

_________________
Нет ничего невозможного...
Кто ИЩЕТ, тот всегда найдёт...
Code:
sub UO() 
UO.Chto-To("S Chem-To")
end sub

© I'm


Top
   
 Post subject:
PostPosted: 2005-07-19 23:43:59 
Offline
User avatar

Joined: 2005-07-10 21:53:05
Posts: 457
SAMURAI wrote:
И почему же в поиске ненашёл - незнаю :)
:arrow: Скрипт на копание по 4м точкам
:arrow: Скрипт на копание по 2м точкам
АФФтар - Savage.

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


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

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


Top
   
 Post subject:
PostPosted: 2005-07-26 21:47:05 
Offline

Joined: 2004-05-27 18:19:17
Posts: 66
SAMURAI wrote:
И почему же в поиске ненашёл - незнаю :)
:arrow: Скрипт на копание по 4м точкам
:arrow: Скрипт на копание по 2м точкам
АФФтар - Savage.

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

У савы есть одна маленькая проблема....он копает только раз...тоесть выкопав в однои точке что либо он сразу переходит в другую(я имею ввиду то что он не всю руду выкапывает с одного источника...)


Top
   
 Post subject:
PostPosted: 2005-07-26 21:48:38 
Offline

Joined: 2004-05-27 18:19:17
Posts: 66
omi4 wrote:
Интересный вариант, аФтор сам написал вот это….
Code:
  
if p==1 then ;Вместо цифры 2 укажите порядковый номер последнего тайла, стоя в котором вы копаете
    p=1
  else
    p=p+1
  endif


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

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

Скрипт писался ...на примерах....так что ..извените....я конечно уже настроил все как надо за то вам и спасибо!
З.Ы. Учиться, учиться и еще раз учиться, как и завещал дедушка Ленини...


Top
   
 Post subject:
PostPosted: 2005-07-27 09:34:49 
Offline
Expert!
User avatar

Joined: 2004-07-04 00:14:58
Posts: 1284
-=WOLVERINE=- wrote:
У савы есть одна маленькая проблема....он копает только раз...тоесть выкопав в однои точке что либо он сразу переходит в другую(я имею ввиду то что он не всю руду выкапывает с одного источника...)
как бы настроить можно ;)


Top
   
 Post subject:
PostPosted: 2005-07-27 09:42:07 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
Самые лучшие скрипты - свои скрипты.

_________________
Сделал дело - флуди смело !!!


Top
   
 Post subject:
PostPosted: 2005-07-27 21:10:53 
Offline

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

Настраивал...безтолку все равно роет только раз в одном месте он даже до надписи нот мининг хере(или тип толго что то) не доходит...


Top
   
 Post subject:
PostPosted: 2005-07-27 21:13:53 
Offline

Joined: 2004-05-27 18:19:17
Posts: 66
Ребят может кто сможет мне помочь..суть проблемы таова...теперь когда этот скрипт (настроил всетаки)) копает в нескольких точках...он ну вообщем он копает у меня в 5 точках..потом по окапывании данных 5 точек он переходи на последнюю(или какую можно поставить )и копает только в даннои точке...как можно заставить скрипт чтоб он циклично копал ???ну чтоб он рыл кругом с 1 по 5 точку возвращался к первои и опять до 5...
З.Ы. скрипт выше...


Top
   
 Post subject:
PostPosted: 2005-07-27 22:22:25 
Offline
User avatar

Joined: 2005-07-10 21:53:05
Posts: 457
copy & paste не метод писания, прочти свой скрипт
пойми зачем каждая строчка......

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 14 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited