Спарринг

Anything and all.

Moderators: Murderator+, Murderator

DIK3D
Posts: 1
Joined: 2005-05-17 11:00:52

Post by DIK3D »

Большая просьба к мастерам, вставить в скрипт стирку бинтов. И куда вставлять.
SaaB
Posts: 1
Joined: 2008-03-21 10:40:25
Contact:

Re: Спарринг

Post by SaaB »

Скрипт класный Но вот такой прикол он вчера работал! Сегодня уже неработает!
Проблема в ходилке пишет вот такой бред
Инвайл намберс оф аргумен -Валк
Nightmare
Posts: 10
Joined: 2009-01-09 23:44:28
Contact:

Re: Спарринг

Post by Nightmare »

Destruction wrote:Собсно скрипт подходит, отходит, хилит.

Инструкция:
0. Включите режим Always Run, иначе будут проблемы!

Можно вопрос а где этот режим нужно выбирать ?
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Re: Спарринг

Post by Kynep »

Nightmare wrote:
Destruction wrote:Собсно скрипт подходит, отходит, хилит.

Инструкция:
0. Включите режим Always Run, иначе будут проблемы!

Можно вопрос а где этот режим нужно выбирать ?

Options в клиенте.
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Я тоже своё творение выложу, без ходилки правда... Ходилку можете из предыдущего скрипта выдернуть, или поискать подХодящую. :)

Code: Select all

###############################################################
### Переменные ###############################################
###############################################################
var enemy, minlife, x, x1, y, y1, n
enemy='0xID-ENEMY' ; ID оппонента
minlife=90 ; Минимальное количество жизни при котором отступаем
x=1838   ; WayPoint-a X - точка отхода координата X
y=795   ; WayPoint-a y - точка отхода координата Y
x1=1836   ; WayPoint-b X - точка встречи координата X
y1=794   ; WayPoint-b y - точка встречи координата Y
n=7     ; Направление оппонента при бегстве
;0 - Север              (верхний правый угол экрана)
;1 - Северо-восток      (правый центр экрана)
;2 - Восток             (нижний правый угол экрана)
;3 - Юго-Восток         (нижний центр экрана)
;4 - Юг                 (нижний левый угол экрана)
;5 - Юго-Запад          (левый центр экрана)
;6 - Запад              (верхний левый угол экрана)
;7 - Северо-Запад       (верхний центр экрана)

###############################################################
### Начальная функция ########################################
###############################################################
sub main()
  uo.print(str(uo.GetDir(enemy)))   ; Покажет текущее направление оппонента
  uo.setarm('arm')
  if uo.life==uo.str then
    uo.exec('exec ataka')
  else
    uo.exec('exec bs')
  endif
end sub

###############################################################
### Функция атаки ########################################
###############################################################
Sub ataka()
  var dist
  uo.click(enemy)
  Walker(x1,y1,0)       ; Ходилка по координатам :)
  while uo.getdistance(enemy)>2
    wait(200)
  wend
  uo.arm('arm')
  uo.warmode('1')
  uo.attack(enemy)
  uo.warmode('1')
  uo.attack(enemy)
  wait(200)
  while uo.life>minlife
    dist=uo.getdistance(enemy)
    if uo.getdir(enemy)==n || uo.getdistance(enemy)>2 then
      uo.warmode('0')
      uo.warmode('0')
      uo.exec('terminate all; exec bs')
    endif
    wait(200)
  wend
  uo.exec('terminate all; exec main')
end sub

###############################################################
### Healing ###############################################
###############################################################
Sub bs()
  uo.warmode('0')
  uo.warmode('0')
  Walker(x,y,0)       ; Ходилка по координатам :)
  uo.warmode('0')
  uo.waittargettype('0x1008')
  uo.usetype('0x0E20')
  wait(3000)
  repeat
    ws()
    uo.BandageSelf()
    wait(3500)
    if uo.count('0x0E21')<1 then
      uo.waittargettype('0x1008')
      uo.usetype('0x0E20')
      wait(3000)
    endif
  until uo.life==uo.str
  uo.arm('arm')
  wait(2000)
  CheckLag()
  main()
end sub

###############################################################
### Проверка на сохранение мира ############################
###############################################################
Sub ws()
  if uo.injournal("world is saving now...") then
    while not uo.injournal("world data saving")
      wait(100)
    wend
  endif
  CheckLag()
end sub

###############################################################
### CheckLag() ###########################################
###############################################################
Sub CheckLag()
  UO.DeleteJournal() ; вытрем все сообщения в журнале (Inj, но не клиента)
  UO.Click('backpack') ; одиночный клик по вашему backpack
  ;       ждем сообщения в журнале
  repeat
    wait(100)
  until UO.InJournal("backpack")
  ;       этот цикл завершится, если это сообщение появится.... замечу "Backpack" и "backpack"
  ;       регистр важен Пишите точно что ждете
end sub

########################################## Ходилка ##########################
;
;ТУТ ДОЛЖНА БЫТЬ ФУНКЦИЯ ХОДИЛКИ!!!!
;
########################################## Конец ходилки ##########################


Найдёте чего лишнего, смело препарируйте, мне лень... :)
Last edited by ADEPT_ABP on 2009-01-21 19:43:13, edited 1 time in total.
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Советую перед тем как выкладывать скрипты форматировать их, ну и заодно проверить на кривость. Сделать это можно перейдя по ссылке из подписи Дестракшена.
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Не вижу у Destruction-a подписи...
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
heroineinc
Posts: 2
Joined: 2009-01-19 18:18:56

Post by heroineinc »

Запустил, начинают драться.. деруться до пол хп. потом расходятся и только потом начинают хилять..

можно сделать так что бы они сразу хилились, а расходились только тогда когда хп половина ?
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

heroineinc wrote:...можно сделать так что бы они сразу хилились, а расходились только тогда когда хп половина ?


Как-то не догоняю, чего именно ты хочешь?
Дерутся они и сразу хилятся? А если не получается - то расходятся? Если так, то никаких бинтов не хватит, и расходятся они тогда, когда жизнь будет меньше указанного тобою значения. Поставишь 20, будут расходиться если жизнь меньше 20. Для чего расходятся? Чтобы не упасть, и зря бинты не тратить.

P.S. Надо бы ещё, проверку сделать на дисконнект оппонента... Лень. 8)
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

ADEPT_ABP wrote:Не вижу у Destruction-a подписи...

Держи ссылку, сори только до компа долез :)
http://ultimasoft.ru/tools/codesweeper.php
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Поправил. 8)
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
GMX
Posts: 75
Joined: 2010-10-01 16:47:41
Contact:

Re: Спарринг

Post by GMX »

Сделал небольшие дополнения. Теперь ждет результата прикладывания бандажки.

sub WarTraining()
uo.setarm('current armor')
var x = uo.getX()
var y = uo.getY()
var time = uo.timer(), tx, ty
uo.addObject('opponent')
while uo.targeting()
wait(200)
wend
uo.addObject('bandages')
while uo.targeting()
wait(200)
wend
if uo.getX()-uo.getX('opponent') > 1 || uo.getX('opponent')-uo.getX() > 1 || uo.getY()-uo.getY('opponent') > 1 || uo.getY('opponent')-uo.getY() > 1 then
uo.print('Персонажи должны стоять рядом!')
return
endif
if uo.getX() > uo.getX('opponent') then
tx = x+1
ty = y
else
if uo.getX('opponent') > uo.getX() then
tx = x-1
ty = y
else
if uo.getY() > uo.getY('opponent') then
tx = x
ty = y+1
else
if uo.getY('opponent') > uo.getY() then
tx = x
ty = y-1
else
uo.print('Вы должны быть на расстоянии!!')
return
endif
endif
endif
endif
uo.warmode(true)
uo.attack('opponent')
repeat
if uo.getHP() < uo.getMaxHP()/2 then
Walk(tx,ty)
uo.warmode(false)
uo.waittargetobject('self')
uo.usetype(uo.getGraphic('bandages'))

repeat
Uo.deletejournal()
While NOT (Uo.injournal('bloody') OR Uo.Injournal('barely') OR Uo.injournal('mummy'))
wait(200)
wend

uo.waittargetobject('self')
uo.usetype(uo.getGraphic('bandages'))
wait(1000)
until (uo.getHP() == uo.getMaxHP()) OR Uo.injournal('mummy')
uo.arm('current armor')
Walk(x,y)
uo.warmode(true)
uo.attack('opponent')
endif
if uo.getHP('opponent') < uo.getMaxHP('opponent')/2 then
Walk(tx,ty)
uo.warmode(false)
uo.waittargetobject('opponent')
uo.usetype(uo.getGraphic('bandages'))

repeat
Uo.deletejournal()
While NOT (Uo.injournal('bloody') OR Uo.Injournal('barely')[b]OR Uo.injournal('mummy')
)
wait(200)
wend[/b]
uo.waittargetobject('opponent')
uo.usetype(uo.getGraphic('bandages'))
wait(1000)
until (uo.getHP('opponent') == uo.getMaxHP('opponent')) OR Uo.injournal('mummy')
uo.arm('current armor')
Uo.Arm('0x41471AAF')
Walk(x,y)
uo.warmode(true)
uo.attack('opponent')
endif
if uo.timer() > time + 9000 then
time = uo.timer()
UO.UseType('0x097B','0x0000')
Uo.UseType('0x1B78','0x0000')
endif
wait(700)
until uo.dead()
endsub
Все мы славные ребята, простые русские парни, железные люди с деревянными головами...
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Спарринг

Post by Mirage »

Проверка журнала без таймера на 80% обречена на сбой.
GMX
Posts: 75
Joined: 2010-10-01 16:47:41
Contact:

Re: Спарринг

Post by GMX »

Mirage wrote:Проверка журнала без таймера на 80% обречена на сбой.


Возможно. Но меня все время бесили надписи "подождите, прежде чем заняться..." и "вы уже используете бандажки". Добавил - стало лучше. Не утверждаю, что это панацея.
Если есть желание и возможность - покажи, как им пользоваться (таймером).
Ведь хороший скрипт получается. Его отшлифовать - и в нетленку. )))
Все мы славные ребята, простые русские парни, железные люди с деревянными головами...
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Спарринг

Post by Mirage »

Если простой пример то вот:

Code: Select all

sub TinkKey()
var LastTimer
      UO.DeleteJournal()
      LastTimer=UO.Timer() ; <------
      UO.WaitMenu ('Tinkering','Keys','Keys','Iron key' )
      UO.Usetype( Instrum )
      repeat
        wait( 300 )
      until UO.InJournal("You put|положили|fail|не удалось|You broke|сломали") or UO.Timer()>LastTimer+150 ; <------
end sub

UO.Timer()>LastTimer+150
примерно 10-15 секунд. Если сообщение не появляется то цикл отключается.
Для кастов и лечения UO.Timer()>LastTimer+50 достаточно.
Post Reply