Page 1 of 1

Статус

Posted: 2011-03-20 19:50:49
by Terrible
sub grabStatus()
var mx,my,tx,ty,dx,dy
mx=uo.GetX("self")
my=uo.GetY("self")
tx=uo.GetX("lastattack")
ty=uo.GetY("lastattack")
if abs(mx-tx)<14 and abs(my-ty)<14 then
dx=(mx-tx)*22-(my-ty)*22
dy=(mx-tx)*22+(my-ty)*22
uo.print(str(585-dx)+" "+str(455-dy))
UO.Drag(585-dx,420-dy);
else
uo.print("цель вне экрана")
endif
endsub

вот скрипт на стягивание статуса,но он почему то не работает у меня,цель выделяет а статус не стягивает...подскажите в чем дело??

Re: Статус

Posted: 2011-03-20 20:08:30
by Aleppo
А для чего стягивать статус? это как вообше?

Re: Статус

Posted: 2011-03-21 07:54:16
by Mirage

Code: Select all

sub GetStatus(serial)
   var dx = uo.GetX(serial)-uo.GetX()
   var dy = uo.GetY(serial)-uo.GetY()
   var dz = uo.GetZ(serial)-uo.GetZ()
   var x = 400+22*(dx-dy)
   var y = 300+22*(dx+dy)-dz*4-20
   UO.Drag(x, y, x+44, y)
end sub


Гриновская работает, только условие - 400 и 300 для разрешения окна игры 800*600 (450 и 450 для 900*900). И окно обязательно должно быть расположено в верхнем левом углу экрана.
Проверяй у себя координаты и окно.

Aleppo wrote:А для чего стягивать статус? это как вообше?

Левой мышкой когда жизни оттягиваешь, многие в скриптах используют laststatus.

Re: Статус

Posted: 2011-03-21 08:44:37
by Irina E
чё та я хз как он должен работать этот твой скрипт (Mirage)

Re: Статус

Posted: 2011-03-21 11:19:47
by Mirage
Это скрипт Грина :)
в игре стоит разрешение игрового окна 800*600, окошко игровое после запуска не двигаем (левый верхний угол игрового окна соответствует левому верхнему углу черного поля). Ищем какого нибудь стражника НПС или продавца. Смотрим чтобы он находился НА игровом экране (в любой точке но обязательно на экране). Записываем в main() его ID (впоследствии можно приворганить автоматическую искалку но щаз тестим). На хоткей назначаем exec main. Активно должно быть игровое окно. Тыкаем на кнопку - под курсором появляется статус с жизнями НПС. Элементарно 8)

Code: Select all

sub main()
var IDchara = '0x123456789'
GetStatus( IDchara )
endsub

sub GetStatus(serial)
   var dx = uo.GetX(serial)-uo.GetX()
   var dy = uo.GetY(serial)-uo.GetY()
   var dz = uo.GetZ(serial)-uo.GetZ()
   var x = 400+22*(dx-dy)
   var y = 300+22*(dx+dy)-dz*4-20
   UO.Drag(x, y, x+44, y)
end sub



У меня разрешение экрана 900*900 (модифицированный клиент) так что я вместо 400 и 300 выставлял 450 и 450. Иногда штука пикольно/полезная. Можно оттянуть статус у чара находящегося ЗА какимлибо объектом или в доме даже без тыканья "Показать имя" и судорожных движений мышкой. Но ИМХО на любителя.

PPS принцип я не очень разбирал - описания команды как бы нет. Гдето на форуме привели пример - тот что выше, я протестировал и отписался КАК именно оно работает :roll:

Re: Статус

Posted: 2011-03-21 15:14:53
by Irina E
а можна както по типу а не по ид

Re: Статус

Posted: 2011-03-21 18:04:22
by Terrible
Работает,но не всегда.....Но всё равно скрипт очень хороший,спасибо...Единственное что,а если Игровое окно,640на480,то вместо 400 и 300 сколько писать надо??...

И еще один вопросик,дабы не создавать еще одну тему...
Вот скрипт на уход в Хайд(с доработкой)...
sub Hide()
uo.Exec('warmode 0')
uo.Exec('warmode 1')
uo.UseSkill('Hiding')
end if
end sub

Но когда ты находишься под атакой в хайд чар уходит не всегда,для этого надо "протабиться"(несколько раз самому попереключать вармод)....А как соединить это вместе??Или....Вообщем чтобы чар "табился" и уходил хайд...данный скрипт не очень работае((((

Re: Статус

Posted: 2011-03-21 18:32:01
by Irina E
ты тот скрипт для пвп делал у меня вапще не стягивет статус

а по повуду Этого скрипта

Code: Select all

sub Hide()
uo.Exec('warmode 0') ;ТУТ ВАР ОТКЛЮЧЁН
uo.Exec('warmode 1') ;ТУТ ВАР ВКЛЮЧЁН
uo.UseSkill('Hiding')
end if
end sub

Re: Статус

Posted: 2011-03-21 19:35:39
by Terrible
И,я понимаю....так не работает он...А статус стягивает....все хорошо...

Re: Статус

Posted: 2011-03-21 19:43:05
by Terrible
лана,создам отдельную тему....

Re: Статус

Posted: 2011-03-22 09:03:57
by Mirage
Terrible wrote:Работает,но не всегда.....Но всё равно скрипт очень хороший,спасибо...Единственное что,а если Игровое окно,640на480,то вместо 400 и 300 сколько писать надо??...

соответственно 640/2=320 и 480/2=240 => 320 и 240 :roll:

Terrible wrote:И еще один вопросик,дабы не создавать еще одну тему...
Вот скрипт на уход в Хайд(с доработкой)...
sub Hide()
uo.Exec('warmode 0')
uo.Exec('warmode 1')
uo.UseSkill('Hiding')
end if
end sub

Ну вообще то у тебя там закрывашка endif, а if then нету - скрипт вообще не понятно как РАБОТАЕТ :roll:

То что ты хочешь выглядит вот так:

Code: Select all

sub Hide()
   If Not UO.Hidden() Then ; если не спрятанный
      if Uo.WarMode()==1 then ; если вар включен
         Uo.WarMode('0') ; отключаем вар
      endif
         UO.UseSkill("Hiding") ; прячемся
         Wait( 2000 ) ; пауза на использование скилла (изменить или удалить)
   endif
end sub

Re: Статус

Posted: 2011-03-22 23:36:57
by Terrible
благодарю...

Re: Статус

Posted: 2011-03-23 09:13:32
by Mirage
вот так получше будет (исправил вверху)