PvP Alpha :: Credit Gainer ^_^

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
god.5
Posts: 9
Joined: 2006-02-03 16:29:53

PvP Alpha :: Credit Gainer ^_^

Post by god.5 »

Ахаё!
Кредито набиватель для pvp-alpha. Запускаем 2 клиента с 2мя инжектами соотв. (патча клиент ya-mu, затем используя yoko launcher), затем одним клиентом становимся у столбов , что наверх от банка, другим становимся около таблетки телепорта на дуэль. Одеваем первого, зупускаем credit_sender , на втором, что около таблетки, одев его прежду тоже, взяв мноооооого регов, запускаем credit_gainer и смотрим как эти дурики бегают дерутся... тестил ... работает стабильно вот уже час ....

Единственное, что нужно будет подогнать координаты клика на диалог дуэли кнопки V. (строчка 399) ( uo.LClick(222,216) )

+необходимо создать у того, кто gainer объект opponent, который будет являтся senderom

UPDATED

CREDIT_GAINER

Code: Select all

;PVP-ALHA CREDIT GAINER

sub credit_gainer()
Var r=0
dim says[3]
start:
lag_test()
   GoToXY(3766,1297,1)
   wait(1000)
   
   repeat
      if uo.GetY('self') < 1297 then
         UO.Press(35)
         wait(1500)
      endif
      if uo.GetY('self') > 1297 then
         UO.Press(33)
         wait(1500)
      endif
      if uo.GetX('self') < 3766 then
         UO.Press(39)
         wait(1500)
      endif
      if uo.GetX('self') > 3766 then
         UO.Press(36)
         wait(1500)
      endif
   until uo.GetY('self')<1256
   
   lag_test()
   GoToXY(3732,1221,0)
   lag_test()
   
   if uo.ObjAtLayer('Horse') then
   uo.useobject('self')
   wait(1000)
   endif
   
   uo.print('Searching opponent...')
   uo.deletejournal()
   uo.ignorereset()
      uo.ignore('self')
      repeat
      lag_test()
         wait(1000)
         uo.findtype('0x0190','-1','ground')
         if uo.findcount()>0 then
         if uo.getserial('finditem')<>uo.getserial('opponent') then
            uo.ignore('finditem')
         endif
         endif
      until uo.getserial('finditem')==uo.getserial('opponent')
      
      lag_test()
      uo.waittargetobject('opponent')
   uo.ignorereset()
   find:
   uo.findtype('0x0ED5','0x0876','ground')
      uo.deletejournal()
      uo.useobject('finditem')
      repeat
      lag_test()
         wait(500)
      until uo.InJournal('Choose you') or uo.inJournal('Try again')
      if uo.inJournal('Try again') then
         uo.ignore('finditem')
         goto find:
      endif
      uo.deletejournal()
      
      uo.say('^_^')
      
      lag_test()
      wait(1000)
      uo.deletejournal()
      
      repeat
      lag_test()
         wait(2000)
         uo.print('teleport waiting')
      until not uo.GetX('self')==3732
      wait(1000)
      uo.print('preFrght relocation')
   autostart()
   if uo.SS>0 and uo.SA>0 then
   GoToXY(uo.GetX('self')-4,uo.GetY('self')+4,1)
   endif
   wait(500)
   repeat
   lag_test()
   if uo.SS>0 and uo.SA>0 then
   uo.print('Casting ...')
   uo.usetype('0x0F06')
   else
   uo.attack('opponent')
   endif
   wait(1000)
   if uo.SS>0 and uo.SA>0 then
      uo.waittargetobject('opponent')
      uo.cast('Flame Strike')
   endif
      wait(5000)
      uo.attack('lasttarget')
   until uo.GetHP('opponent')==0
   wait(1000)
   uo.exec('resend')
   lag_test()
   r=uo.Random(3)
      says[0]='хаахаа пиздец кул!'
      says[1]='лол я выиграл!'
      says[2]='дура. тупая. я круче.'
      says[3]='я король дуэлей'
   uo.say(says[r])
   wait(1100)
   ;uo.set('finddistance','100')
      uo.findtype('0x1822','-1','ground')
      if uo.findcount()>0 then
         GoToXY(uo.GetX('finditem'),uo.GetY('finditem'),1)
         wait(1000)
         repeat
         lag_test()
         uo.print(STR(uo.GetY('finditem'))+' '+STR(uo.GetY('self')))
            if uo.GetY('self') < uo.GetY('finditem') then
               UO.Press(35)
               wait(1500)
            endif
            if uo.GetY('self') > uo.GetY('finditem') then
               UO.Press(33)
               wait(1500)
            endif
            if uo.GetX('self') < uo.GetX('finditem') then
               UO.Press(39)
               wait(1500)
            endif
            if uo.GetX('self') > uo.GetX('finditem') then
               UO.Press(36)
               wait(1500)
            endif
         until uo.GetX('self')>3500
      endif
      goto start:
end sub


CREDIT_SENDER

Code: Select all

sub credit_sender()
start:
lag_test()
   GoToXY(3776,1262,0)
   lag_test()
   GoToXY(3776,1281,0)
   lag_test()
   GoToXY(3766,1297,1)
   
   lag_test()
   uo.print(STR(uo.GetY('self'))+' '+STR(uo.GetX('self')))
   repeat
   lag_test()
      if uo.GetY('self') < 1297 then
         UO.Press(35)
         wait(1500)
      endif
      if uo.GetY('self') > 1297 then
         UO.Press(33)
         wait(1500)
      endif
      if uo.GetX('self') < 3766 then
         UO.Press(39)
         wait(1500)
      endif
      if uo.GetX('self') > 3766 then
         UO.Press(36)
         wait(1500)
      endif
   until uo.GetY('self')<1256
   
   lag_test()
   
   GoToXY(3738,1220,0)
   
   lag_test()
   uo.deletejournal()
   
   uo.print('Teleporting...')
   
   repeat
   lag_test()
   uo.LClick(222,216)
   wait(1500)
   until uo.GetX('self')<>3738
   
   wait(700)
   uo.Undress()
   repeat
      wait(4000)
   until uo.dead()

   GoToXY(4470,1160,1)
   repeat
      if uo.GetY('self') > 1159 then
         UO.Press(33)
         wait(1500)
      endif
      if uo.GetX('self') < 4470 then
         UO.Press(39)
         wait(1500)
      endif
      if uo.GetX('self') > 4470 then
         UO.Press(36)
         wait(1500)
      endif
   until uo.GetX('self')==3777

   wait(2000)
   repeat
      lag_test()
      wait(1500)
   until not uo.dead()
   
   GoToXY(3781,1272,0)
   lag_test()
   GoToXY(3776,1272,0)
   lag_test()
   GoToXY(3776,1262,0)
   lag_test()
   GoToXY(3767,1262,0)
   lag_test()
   wait(700)
   
   Equipment()
   lag_test()
   goto start
end sub


Плюс доп. скрипты (ходилка, стек, эквип) используюца тут. копирайты в постах ниже.

Code: Select all

sub InitStack()   
UO.SetGlobal('STACK', '0')
endsub

sub Push( param )
Var chk = Val(UO.GetGlobal('STACK'))
UO.SetGlobal('STACK',str(chk + 1))
UO.SetGlobal('STACK_'+str(chk), param)
endsub

sub Pop()
Var chk = Val(UO.GetGlobal('STACK'))
if chk then     
 UO.SetGlobal('STACK',STR(chk - 1))     
 return UO.GetGlobal('STACK_'+STR(chk - 1)) 
end if
endsub
################################################################################
sub GoToXY(x,y,prec)
dim turn[8] ; индекс - ГетДир, значение поворот направо под 45 градусов   
turn[0] = 39   
turn[1] = 34   
turn[2] = 40   
turn[3] = 35   
turn[4] = 37   
turn[5] = 36   
turn[6] = 38   
turn[7] = 33   
dim deltax[8]; индекс - аналогично, значение - изменение координаты при проходе стенки   
dim deltay[8]   
deltax[0] =  1   
deltax[1] =  1   
deltax[2] =  1   
deltax[3] =  0   
deltax[4] = -1   
deltax[5] = -1   
deltax[6] = -1   
deltax[7] =  0
  deltay[0] = -1   
  deltay[1] =  0   
  deltay[2] =  1   
  deltay[3] =  1   
  deltay[4] =  1
  deltay[5] =  0   
  deltay[6] = -1   
  deltay[7] = -1
  var dx,dy
  var mx,my ; current coords   
  var lx = 0, ly = 0, ld = -1 ; last move coords   
  var pathFind = 0 ; as logical 0 - norm, 1 - block
  var ind
  var recursInd = 0
  var fout = 0
var stepdelay = 300
InitStack()
repeat   
mx=UO.GetX()
my=UO.GetY()
  ; calculating for precision coming   
  dx = mx - x   
  If dx < 0 Then     
  dx = 0 - dx   
  EndIf ;get ABS diff
  dy = my - y   
  If dy < 0 Then     
  dy = 0 - dy   
  EndIf   
  If dy > dx Then     
  dx = dy   
  EndIf   
  If dx <= prec Then     
  Return   
  EndIf       
  if mx == x and my == y then       
  return   
  endif     
  lx = mx   
  ly = my   
  ld = UO.GetDir() ; cause once pressing can only change the direcction
  if mx == x and my >  y then     
  UO.Press(33)   
  endif   
  if mx == x and my  < y then     
  UO.Press(35)   
  endif   
  if mx  < x and my == y then     
  UO.Press(34)   
  endif   
  if mx  < x and my >  y then     
  UO.Press(39)   
  endif   
  if mx  < x and my  < y then     
  UO.Press(40)   
  endif   
  if mx >  x and my == y then     
  UO.Press(36)   
  endif   
  if mx >  x and my >  y then     
  UO.Press(38)   
  endif   
  if mx >  x and my  < y then     
  UO.Press(37)   
  endif
  ;UO.Print('KeyPressed')   
  wait( stepdelay )
  if lx == UO.GetX() and ly == UO.GetY() and ld == UO.GetDir() then     ; now there is a stop situation
  UO.Print('PathFind')     
  recursInd = 0     
  repeat #################################################       
  ind = ld       
  UO.Print(str(ind))       
  fout = 0       
  repeat ; идем в обход пока не упремся снова или не кончится стена
  UO.Print('Iteration')         
  mx = UO.GetX()       
  my = UO.GetY()         
  ld = UO.GetDir()         
  UO.Press( turn[ ind ] )     
  wait( stepdelay )       
  if (UO.GetX() == mx and UO.GetY() == my and ld == UO.GetDir()) then 
  fout = 1 ; уперлись       
  else       
  dx = UO.GetX() - mx         
  dy = UO.GetY() - my
  UO.Print('deltas  '+str(dx)+'  '+str(dy)) 
  if deltax[ ind ] == dx and deltay[ ind ] == dy then   
  fout = 2 ; препятствие пройдено       
  endif       
  endif     
  until fout
  UO.Print('fout   '+ str(fout))     
  if fout == 1 then ; уходим на следующий поворот       
  recursInd = recursInd + 1       
  Push( str( ind ) )         ;ld = ind     
  else ; fout == 2         ; надо попытаться восстановить контекст из стека, или выйти из обхода       
  UO.Print('Iter  '+ str(recursInd))     
  pathFind = 0       
  if recursInd then ; восстановление     
  pathFind = 1     
  recursInd = recursInd - 1     
  ld = val(Pop()) - 1     
  if ld == -1 then         
  ld = 7       
  endif         
  UO.Press( turn[ld] )       
  wait ( stepdelay )         ; в сиду того, что ондо нажатие меняет напрваление
  endif     
  endif #################################################     
  until not recursInd and not pathFind     
  UO.Print('PathFind END')   
  endif
until 0
endsub
################################################################################
sub Equipment()
uo.useobject('backpack')
wait(700)
uo.Undress()
wait(100)
uo.disarm()

uo.findtype('0x0EFA','-1','backpack')
if uo.findcount()>0 then
   uo.ignore('finditem')
endif

repeat
   uo.findtype('-1','-1','backpack')
      uo.moveitem('finditem','0','0x40008964')
      wait(100)
until uo.findcount()<1

If UO.GetGlobal('NorbcalcCheck')<>'yes' Then 
  UO.Set('norbcalc','1') 
  UO.SetGlobal('NorbcalcCheck','yes')
End If

If UO.GetGlobal('DressCheck')<>'on' Then 
  UO.SetGlobal('DressCheck','on')     
End If     

  UO.Recall('0x4000B44E','1')
  Wait(300)
  put_test()
  UO.Recall('0x4000B2E3','1')
  Wait(1000)
  lag_test()
    UO.LClick(176,207)
  put_test()
  UO.Recall('0x4000B553','1')
  Wait(300)
  put_test()
  lag_test()
  UO.Recall('0x4000B553','12')
  Wait(300)
  put_test()
  lag_test()
  UO.Recall('0x4000B553','3')
  put_test()
  lag_test()
  if not uo.ObjAtLayer('Horse') Then
  #UO.Recall('0x4000B553','8')
  endif
 
  wait(500)
  autostart()
 
  UO.SetGlobal('DressCheck','off')
  Uo.Msg('.arm')
end sub

sub put_test()
   repeat
      wait(500)
   until uo.InJournal('You put')
   uo.deletejournal()
end sub

sub lag_test()
;uo.print('CheckLag')
uo.deletejournal()
   uo.click('backpack')
   repeat
      wait(50)
   until uo.InJournal("backpack")
;uo.print('Ok!')
end sub
[/b]
Dominator
Posts: 124
Joined: 2005-04-06 05:53:47

Post by Dominator »

Мда если сам скрипт действительно написал (обидеть невкоем случае нехочу) то похвально , скрипт нужный.
НО чтобы люди ,а в частность те кто в скриптах нешарит, могли етим скриптом пользоваться тебе нужно больше поясняловок в частности для скрипта [b]credit_sender , т.к. для credit_gainer пояснение будет лишним (точно сказано что куда и как делать :wink: )
Так что ето предложение к действию
ArcherKiller
Posts: 4
Joined: 2005-04-07 16:52:46

Post by ArcherKiller »

Пишет ошибку не может найти функчию афтостарт... как исправит??? или скрипт не целиком выложили?

да и пожалуста можите написать как сделать обьект "опонент"
Dominator
Posts: 124
Joined: 2005-04-06 05:53:47

Post by Dominator »

ArcherKiller wrote:Пишет ошибку не может найти функчию афтостарт... как исправит??? или скрипт не целиком выложили?

да и пожалуста можите написать как сделать обьект "опонент"



Ну вообщем у него там в скрипте ваще нет ничего про оппонента. тебе можно сделать так- пропиши после начала Скрипта (тем кем набиваеш)
такую строчку

[/code]
var opponent='ID чара которого будеш килять'

Если в скрипте всё додумано и доведено до ума должно тогда всё работать
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Dominator wrote:Если в скрипте всё додумано и доведено до ума должно тогда всё работать


Гениально.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

скрипт некаму ненужный !!! это бред и гауно!
Я сам на альфе играл, там либо так нечего непрокачаеш, либо банан быстро кинут.
единственное это mass magic arrow каторый я сам написал

Code: Select all

sub MassMA()
If uo.getglobal('sc1')=='On' then
return
else
uo.setglobal('sc1','On')
While not uo.dead()
uo.press(81)
wait(1300)
end if
wend
uo.setglobal('sc1', 0)
end sub

у меня щас на Q стоит таргет некст / каст спел МА
ставим сами то что вам надо при работе, да и кстате в архиве гдето лежыт скрипт для джейла на альфе
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Code: Select all

Sub Scan()
  uo.set('finddistance', '15')
  uo.ignore('self')
  uo.findtype('0x0190', '-1', 'ground')
    while uo.findcount() and not uo.dead()
      uo.cast('Magic Arrow', 'finditem')
      wait(1500)
      uo.ignore('finditem')
      uo.findtype('0x0190', '-1', 'ground')
    wend
  uo.findtype('0x0191', '-1', 'ground')
    while uo.findcount() and not uo.dead()
      uo.cast('Magic Arrow', 'finditem')
      wait(1500)
      uo.ignore('finditem')
      uo.findtype('0x0191', '-1', 'ground')
    wend
  uo.ignorereset()
endsub
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

flake wrote:

Code: Select all

Sub Scan()
  uo.set('finddistance', '15')
  uo.ignore('self')
  uo.findtype('0x0190', '-1', 'ground')
    while uo.findcount() and not uo.dead()
      uo.cast('Magic Arrow', 'finditem')
      wait(1500)
      uo.ignore('finditem')
      uo.findtype('0x0190', '-1', 'ground')
    wend
  uo.findtype('0x0191', '-1', 'ground')
    while uo.findcount() and not uo.dead()
      uo.cast('Magic Arrow', 'finditem')
      wait(1500)
      uo.ignore('finditem')
      uo.findtype('0x0191', '-1', 'ground')
    wend
  uo.ignorereset()
endsub


:lol: :P
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

flake wrote:

Code: Select all

Sub Scan()
.............
endsub


Классный скрипт! Особенно полезен при выходах куда-нибудь в ГЗ, к бритбанку например, да так, чтобы вокруг было хотя бы десятка полтора чаров... :shock:
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Edred wrote:
flake wrote:

Code: Select all

Sub Scan()
.............
endsub


Классный скрипт! Особенно полезен при выходах куда-нибудь в ГЗ, к бритбанку например, да так, чтобы вокруг было хотя бы десятка полтора чаров... :shock:


Вообще то тема о ПВП-альфе, на которой таких понятий как брит банк нету :)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Хе-хе. Мне было лень читать всю тему и я решил что вы уже переключились на флуд... :oops:
Post Reply