Page 1 of 1

Проблема с автострелкой

Posted: 2009-06-22 13:20:52
by Blood Slayer
Давно тут не был.

Вообщем суть того что я хочу.
Вот скрипт на каст стрелки во всех в радиусе 15 с игнором.

Code: Select all

Sub Ar() 
var name
uo.set('finddistance', '15') 
uo.ignore('self') 
repeat 
   uo.findtype('0x0190', '-1', 'ground') 
       if uo.findcount() then 
            uo.cast('Magic Arrow', 'finditem')
            name = Uo.GetName('finditem')
            Uo.Print('Пулька в = ' + Str( name ))
            wait(1500)
            uo.ignore('finditem') 
        end if 
Until Uo.Dead() 
end sub
end sub
Думал думал, как сделать так чтобы когда чел усмирает, и приходит опять на арену выписать его из игнор листа, а то послетого как умрет, заходит на аренку и все скрипт его игнорит.

Вообщем помогите кто чем может.

Я бы и сам придумал че нить но так давно не писал что мозг пухнет при чтении скриптов.

Сам с собой развлекаюсь ...

Code: Select all

            name = Uo.GetName('finditem')
            Uo.Print('Пулька в = ' + Str( name ))
Ладно что русский не видно ... Почему пишет = 0 ?

Posted: 2009-06-22 16:25:54
by Mirage
1) не игнорь :) Таргетнексть
2) зачем str написал - переводишь в числовое и удивляешься Просто

Code: Select all

Uo.Print('Пулька в = ' + name )

Code: Select all

sub sell()
  uo.Exec('addobject Vendor')
  while uo.Targeting()
    wait(100)
  wend
  uo.Say(UO.GetName('Vendor') + ' sell')
end sub

Posted: 2009-06-22 21:29:47
by $!@m
В принципе Мираж дело говорит, лучше использовать УОшный бинд targetnext. Он перебирает по возрастанию ИД, ищет в пределах видимости экрана.

Чистой инжой - не думаю, что нормально получится, т.к. регистрация смерти - показатель кумарной, едва что по хп отслеживать, но опять-таки, постоянно хп смотреть/куда-то записывать/сверять. Не морочь голову подобным.

Posted: 2009-06-23 13:54:24
by Blood Slayer
Все таки решил добовлять объекты ... терь думаю как и отследивать и удалять после смерти ...

Code: Select all

sub Null()
var name
uo.set('finddistance', '15') 
uo.ignore('self') 
repeat 
   uo.findtype('0x0190', '-1', 'ground') 
       if uo.findcount() then 
            uo.cast('Magic Arrow', 'finditem')
            name = Uo.GetName('finditem')
            uo.addobject( Name ,'finditem')
            Uo.Print('Пулька в = ' + name )
            wait(1500)
            uo.ignore( Name ) 
        end if 
Until Uo.Dead() 
end sub
[/code]

Posted: 2009-06-24 03:36:25
by Destruction
Все давно придумано..

Посмотри мой скрипт:

Code: Select all

sub hello()
	DIM ignore[1024]
	var i, index = 0
	var man = '0x0190'
	var woman = '0x0191'
	var dst1 = 2 ; со скольки тайлов здороваться
	var dst2 = 8 ; со скольки тайлов забывать
	uo.ignore( 'self' )
	uo.set( 'finddistance', str( dst1 ) )
	repeat
		uo.findtype( woman, '-1', 'ground' )
		if not uo.findcount() then
			uo.findtype( man, '-1', 'ground' )
		endif
		if uo.findcount() then
			msg( 'Привет ' + uo.getName( 'finditem' ) + '! :)' )
			uo.ignore( 'finditem' )
			ignore[ index ] = uo.getSerial( 'finditem' )
			index = index + 1
		else
			wait( 300 )
		endif
		i = 0
		while i < index
			if uo.getDistance( ignore[ i ] ) > dst2 then
				uo.ignore( ignore[ i ], 'off' )
				index = index - 1
				if i < index then
					ignore[ i ] = ignore[ index ]
				endif
			else
				i = i + 1
			endif
		wend
	until false
endsub
PS: Писалось давно, под накуром, с помощью Grin'а - пытаться осмыслить бесполезно :)

Posted: 2009-06-24 10:06:37
by Blood Slayer
Спасибо, пойду потещу.

Posted: 2009-06-25 13:16:30
by Mirage
Destruction wrote:Все давно придумано..
Читал что uo.ignore( ignore[ i ], 'off' ) не работает. Так разве можно?


Исче вариант (из мыслей):
видишь человечка записываешь с текстовый файл его ID сверяешься с ним и игноришь аля потом когда никого нет по близости удаляешь текстовик и при нахождении переписываешь загоно.... Хотя 99% что не заработает :roll:

Posted: 2009-06-25 13:25:16
by Blood Slayer
Mirage wrote:
Destruction wrote:Все давно придумано..
Читал что uo.ignore( ignore[ i ], 'off' ) не работает. Так разве можно?


Исче вариант (из мыслей):
видишь человечка записываешь с текстовый файл его ID сверяешься с ним и игноришь аля потом когда никого нет по близости удаляешь текстовик и при нахождении переписываешь загоно.... Хотя 99% что не заработает :roll:
ТО что мне дали и так работает ... ток ни как не могу сделать чтоб не по дистанци выписывал с игнора, а когда умирает перс ... а так все норм

Posted: 2009-06-25 18:34:33
by Mirage
смерть можно определить по изменению XYZ координатт атакуемого :roll: