Проблемка со спаррингом.

Anything and all.

Moderators: Murderator+, Murderator

TapakaH
Posts: 55
Joined: 2004-08-27 21:01:55

Проблемка со спаррингом.

Post by TapakaH »

написал вообщем такой скрип, ток проблема в том что он не отходит при определенном кол-ве хп. конечно скрипт кривой ток подскажите плз как осуществить это.

Code: Select all

sub spar()
While not uo.DEAD()
 UO.Attack(opp)
 UO.exec("warmode 1")
 while uo.life>60
  if uo.life<60 then
   heal()
    while not uo.life==uo.str
     UO.RDblClick(323,151)
     ;UO.RDblClick(497,333)
     wait(100)
      repeat
    wend
    UO.RDblClick(495,330)
    ;UO.RDblClick(319,155)
  endif
  repeat
  wend
wend

end sub

атачить начинает, при падении хп до определенного уровня просто на другого чара начинает кликать и все и не хилит, подскажите плз.

а ет так хилинг рабочий, помоему чейто переделал или сам нарисовал, уже не помню. может поданобится кому такой.

Code: Select all

sub heal()
VAR ban='0x0E21' #òèï áàíäàæåê
VAR bban='0x0E20' #òèï êðîâàâûõ áàíäàæåê
VAR tazik='0x1008'#òèï ìèñêè
VAR eda='0x097B'

while UO.Life<UO.Str
uo.usetype(eda)
UO.setarm("TR")
 UO.FindType( ban )
  If UO.GetQuantity('finditem') <= 30 Then
   UO.DeleteJournal()
    UO.FindType( bban )
    UO.WaitTargetType( tazik )
     UO.UseObject('finditem')
else
  UO.DeleteJournal()
   UO.BandageSelf()
    repeat
    wait(100)
    until UO.InJournal("put") OR UO.InJournal("help") or UO.InJournal("interrupted")       
   endif
UO.arm("TR")
wend
end sub
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

while uo.life>60
if uo.life<60 then

Интересно как это? Если у чара здоровье больше 60, то давайте как проверим, а вдруг оно на самом меньше 60, а while падлючий сработал только благодаря воздействию потусторонних сил? :)
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

repeat
wend

Тоже весьма интересный шедевр. Повторять wend до опупения. :)
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

Code: Select all

sub spar()
UO.Attack(opp)
UO.Exec("warmode 1") 
While Not UO.Dead()
  If UO.Life<60 then
    run()
    heal()
  Else
    Wait(100)
  EndIf
Wend
end sub


Вероятно имелось ввиду нечто подобное. Отбегание если нужно, реализуй в функции Run().
TapakaH
Posts: 55
Joined: 2004-08-27 21:01:55

Post by TapakaH »

чет я в хелпе не нашел такой функции :( , как и с чем ее едят
TapakaH
Posts: 55
Joined: 2004-08-27 21:01:55

Post by TapakaH »

или нада писать типа нового скрипта на подобии heal?
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

TapakaH wrote:или нада писать типа нового скрипта на подобии heal?


Именно так.
TapakaH
Posts: 55
Joined: 2004-08-27 21:01:55

Post by TapakaH »

спасибо конечно за подсказку, но я не очень то силен в написании, и ходилка у меня не получается :(
если у кого есть скрипт на спарринг скинте плз, пробовал саваджевский, вообще 0 толку, хотя и в регистре прописал, и сама изя есть, всеравно чары стоят и тупо пялятся друг на друга :(
TapakaH
Posts: 55
Joined: 2004-08-27 21:01:55

Post by TapakaH »

что, ни у кого нету скрипта на спаринг :(
Leks
Posts: 58
Joined: 2004-11-06 12:56:58
Location: Украина, Днепропетровск.
Contact:

Post by Leks »

TapakaH wrote:что, ни у кого нету скрипта на спаринг :(


Держи:

Code: Select all

 ## В пак чарам суем вепон одинакого типа и в руки даем образец ну и щит если паринг еще не прокачен.
## Бандажки и тазик для стирки кровяшек.
## Чаров ставим рядом, с одного 1 раз запускаем sreset и после того как развел их по разнвм углам, на обоих sparring или сразу спарринг а потом второго чара подводим к первому.
sub sreset()
   UO.SetEasyUO(80,"1")
   UO.SetEasyUO(90,"1")
end sub


sub sparring()
   VAR Char1='0x0011D854'
   VAR Char2='0x00131F95'
   VAR Enemy, ESelf, EEnemy
   VAR Weapon, Shield, WpnType, ShldType
   VAR TazikType='0x1008',BloodBndg='0x0E20'
   VAR MinLife=100
   

   if UO.GetSerial('self')==Char1 then
      Enemy=Char2
      EEnemy=90
      ESelf=80
   else
      Enemy=Char1
      EEnemy=80
      ESelf=90
   endif

   Weapon=UO.ObjAtLayer('Rhand')
   If Weapon<>"" Then
      WpnType=UO.GetGraphic(Weapon)
   Endif

   Shield=UO.ObjAtLayer('Lhand')
   If Shield<>"" Then
      ShldType=UO.GetGraphic(Shield)
   Endif
   
   UO.SetEasyUO(ESelf,"0")

   while NOT UO.Dead()
   
      repeat
         wait(500)
      until UO.GetEasyUO(ESelf)=="0" AND UO.GetEasyUO(EEnemy)=="0"
       
      UO.Exec("warmode 1")
      UO.Attack(Enemy)
       
      while UO.Life>=MinLife AND UO.GetEasyUO(EEnemy)=="0"
         wait(100)
      wend

      UO.SetEasyUO(ESelf,"1")
      UO.Exec("warmode 0")
      wait(1000)
      UO.Exec("warmode 0")

      UO.FindType('0x0E21','0x0000','backpack')
      If UO.GetQuantity('finditem')<20 Then
         UO.FindType('0x0E20','0x0000','backpack')
         UO.WaitTargetType(TazikType)
         UO.UseObject('finditem')
         wait(1000)
      Endif

      while UO.Life<UO.Str
         UO.DeleteJournal()
         UO.BandageSelf()
         Repeat
            wait(500)
         Until UO.InJournal('put') OR UO.InJournal('help') OR UO.InJournal('cure')
      wend

      If Shield<>"" Then
         UO.Equipt('Lhand',ShldType)
         wait(2000)
      Endif

      If Weapon<>"" Then
         UO.Equipt('Rhand',WpnType)
         wait(2000)
      Endif
       
      UO.UseSkill('Spirit Speak')
      wait(3000)
      UO.SetEasyUO(ESelf,"0")
   wend
end sub 


Только перед ентим создаеш файл easyuo.reg (просто текстовый док переиминуй, енто для EasyUO приблуда ) и вставляеш в него :

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\EasyUO]
"WndData.Top"=dword:00000148
"WndData.Left"=dword:000000d1
"WndData.Height"=dword:0000015d
"WndData.Width"=dword:00000300
"WndData.Split"=dword:0000006d
"WndData.InitDir"=""
"WndData.StayOnTop"=dword:00000000
"WndData.PauseKey"=dword:0000000c
"WndData.PauseContinue"=dword:00000000
"Toolbar.Standard"=dword:00000001
"Variables.Show"=dword:00000000
"Variables.Standard"=dword:00000001
"Variables.User"=dword:00000000
"Variables.Defined"=""
"*99"="0"
"*1"="0"
"*0"="0"
"*2"="0"


После ентого его закрываеш, сохраняеш и запускаеш...подтверждаеш и готово :))))
Just Be! Все ФИГНЯ, кроме пчёл!!! А пчёлы ваще фигня!
Leks
Posts: 58
Joined: 2004-11-06 12:56:58
Location: Украина, Днепропетровск.
Contact:

Post by Leks »

ААааааа Забыл сказать... на ДРВ пофиксили прокачку боевых с одного АйПи. Лажа бл...н. Удачи :)
Just Be! Все ФИГНЯ, кроме пчёл!!! А пчёлы ваще фигня!
TapakaH
Posts: 55
Joined: 2004-08-27 21:01:55

Post by TapakaH »

Спасиб :) все работать начало.
з.ы. я об этом фиксе знаю, у мну 2 айпи дома.
Leks
Posts: 58
Joined: 2004-11-06 12:56:58
Location: Украина, Днепропетровск.
Contact:

Post by Leks »

TapakaH wrote:Спасиб :) все работать начало.
з.ы. я об этом фиксе знаю, у мну 2 айпи дома.



2-а компи всмысле ????
Мне нана тоже 2-а АйПи но на одном компе !! :))) ПОмогитеее!
Just Be! Все ФИГНЯ, кроме пчёл!!! А пчёлы ваще фигня!
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

а я так понял кроме инжы еще и Easyuo поставить нужно?
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Можно и поставить а можно токо рег файл поюзать.
SAMURAI
Posts: 203
Joined: 2004-07-10 00:38:43
Location: From DrW
Contact:

Re: Проблемка со спаррингом.

Post by SAMURAI »

TapakaH wrote:написал вообщем такой скрип, ток проблема в том что он не отходит при определенном кол-ве хп. конечно скрипт кривой ток подскажите плз как осуществить это.

Code: Select all

sub fight()


while 1
   gotoxy(1816,804,0) # координаты куда подходить к противнику
   UO.usetype("0x1B76") # тип щита
   uo.usetype("0x0EC2") # тип оружия
   UO.Exec("attack 0x000AECD9") #айди 2-го чара
   Repeat
      wait (500)
   if uo.injournal("destroyed")then
   UO.usetype("0x0EC2") # тип оружия
   uo.deletejournal()
   endif
   Until ((UO.GetHP("0x0022097B") <75)or (UO.GetHP("0x000AECD9")  <100)) #
#жизни 1-го и 2-го чара
   repeat
   UO.Exec("warmode 0") # выключаем вар мод
   UO.Press(35) # код клавиши End
   UO.Press(35) # код клавиши End
   until (uo.GetY() < 805)# координаты по Y куда отходить чтобы лечить(ся)
      UO.DeleteJournal()
   Repeat
      UO.Usetype("0x0E21") #Bandages
      UO.Exec("waittargetobject 0x000AECD9") # айди 2-го чара
      wait(3500)
   Until (UO.InJournal("need you"))
      UO.DeleteJournal()
   Repeat
      UO.Usetype("0x0E21") #Bandages
      UO.Exec("waittargetobject 0x0022097B")  # айди 1-го чара
      wait(3500)
   Until (UO.InJournal("need healing"))
wend
end sub

sub gotoxy(x,y,prec)
var ld=0,ldc=0
var dx,dy
var mx,my
var ox,oy,mk,k
#uo.print(">")
#uo.track("1",str(x),str(y))
start:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if not ldc then
uo.print(STR(dx))
end if
if dx<3 then
mk=70
else
mk=15
end if
ox=mx
oy=my
for k=1 to mk
mx=UO.GetX()
my=UO.GetY()
if mx<>ox or my<>oy then
goto sdidapl
end if
wait(10)
next
sdidapl:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if ld==dx then
ldc=ldc+1
if ldc>100 then
uo.print("Can not reach location!")
return
end if
else
ld=dx
end if
if mx==x then
if my==y then
return
endif
if my>y then
#UO.Print("UR")
UO.Press(33)
goto start
endif
#UO.Print("DL")
UO.Press(35)
goto start
end if
if mx<x then
if my>y then
#UO.Print("R")
UO.Press(39)
goto start
endif
if my==y then
#UO.Print("DR")
UO.Press(34)
goto start
endif
#UO.Print("D")
UO.Press(40)
goto start
end if
if my<y then
#UO.Print("L")
UO.Press(37)
goto start
endif
if my==y then
#UO.Print("LU")
UO.Press(35)
goto start
endif
#UO.Print("U")
UO.Press(38)
goto start
end sub

sub Healing()
   UO.SetArm('CWeapon')
   UO.Exec("bandageself")
   wait(500)
   
   UO.Arm('CWeapon')

Попробуй этот, хорошая вешь :mrgreen:
ar
Posts: 6
Joined: 2005-01-10 10:54:46

Post by ar »

скрипт действительно дельный но еще бы нему добавить мытье бинтов было бы ваще супер ))
GrandMaster
Posts: 16
Joined: 2004-10-04 06:56:35

Post by GrandMaster »

мытье бинтов - бесполезный расход ревардов ИМХО
ar
Posts: 6
Joined: 2005-01-10 10:54:46

Post by ar »

ну кому что.. а мне лишь бы прокачать...
и кстати не плохо качается замарачиваться теперь самому мыть не нада
с 70 до 95 за 1.5 суток сворд прокачал так что я думаю что очень даже хорошо.. скрипт правда кривой и действительно после второго раз уходит хрен знает куда... но поправить нада всего одну строчку.. чесно сказать в написании скриптов ничерта не шарю но под себя подстроить могу... не так уж это и сложно... почитал форум очень многие просто ленивые и не пользуются поиском тут мона найти все..Удачи всем
SAMURAI
Posts: 203
Joined: 2004-07-10 00:38:43
Location: From DrW
Contact:

Post by SAMURAI »

ar wrote:скрипт действительно дельный но еще бы нему добавить мытье бинтов было бы ваще супер ))

Всё и сразу небывает :D
Post Reply