Десять уроков скриптинга (урок 4)

Materials, references, tutorials

Moderators: Murderator+, Murderator

L@wbre@K
Posts: 15
Joined: 2005-03-17 02:25:11
Contact:

Post by L@wbre@K »

Так тоже не получится... Координаты будут менятся...
L@wbre@K
Posts: 15
Joined: 2005-03-17 02:25:11
Contact:

Post by L@wbre@K »

А есть команда:
uo.counttile ? )
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Code: Select all

sub F_Mining_ORE() 
; ****************************************
	var MaxRange = 2 ; <-- 
; ****************************************
	var X, Y, mX, mY, mZ, TrW, TrWeight, TrT, TrTime, Tiles
	UO.Resend()
	wait(2000)
	mX = UO.GetX('self')
	mY = UO.GetY('self')
	mZ = UO.GetZ('self')
	for Y = MaxRange - ( MaxRange * 2 ) to MaxRange
		for X = MaxRange - ( MaxRange * 2 ) to MaxRange
			Tiles = F_HarvestTiles(mX+X, mY+Y)
			if Tiles then
				repeat
					UO.DeleteJournal()
; **************** STOP *****************
					if not UO.Count(0x0E86) || UO.Weight >= UO.STR*3.8 || UO.Dead() then ; <-- Pickaxe
						UO.Print('STOP!!! Max Weight or NO Pickaxe or Dead')
						return 0
					endif
; ***************************************
					TrTime = UO.Timer()
					TrWeight = UO.Weight
					UO.WaitTargetTile(Tiles, mX+X, mY+Y, mZ)
					UO.UseType(0x0E86) ; <-- Pickaxe
					repeat 
						wait(200)
						TrW = TrWeight<>UO.Weight
						TrT = UO.Timer()>TrTime+120
					until UO.InJournal("0xAD00|0xAD02|0xAD01|0xA2DE|0xAD03|0x6B31|0xEE46|0xA866|0xA867") || TrW || TrT
				until UO.InJournal("0xAD00|0xAD02|0xAD01|0xA2DE|0xA866|0xA867") || TrT
			endif
		next
	next
	return 1
end sub  

sub F_HarvestTiles(X,Y)
	if UO.PrivateGetTile(X, Y, -1, 1339, 1370) then 
		for var i=1339 to 1370 
			if UO.PrivateGetTile(X, Y, -1, i, i) then
				return i
			end if 
		next 
	end if 
	return 0
end sub
L@wbre@K
Posts: 15
Joined: 2005-03-17 02:25:11
Contact:

Post by L@wbre@K »

Спасибо, но вот разбератся в этом трудно )
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

это мининг для RunUO
ищи знакомые по этому уроку команды и все поймешь...
L@wbre@K
Posts: 15
Joined: 2005-03-17 02:25:11
Contact:

Post by L@wbre@K »

Да я тк приблизительно понял, но что-то мутно )
Хотя уже есть прояснения в голове )
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

а так..

Code: Select all

sub F_Mining_ORE() 
; **************************************** 
   var MaxRange = 2 ; <-- 
; **************************************** 
   var X, Y, mX, mY, mZ, TrW, TrWeight, TrT, TrTime, Tiles 
;выбрать тайл для копки
   mX = UO.GetX('self') 
   mY = UO.GetY('self') 
   mZ = UO.GetZ('self') 
   for Y = MaxRange - ( MaxRange * 2 ) to MaxRange 
      for X = MaxRange - ( MaxRange * 2 ) to MaxRange 
;проверим тайл на возможность копки
         Tiles = F_HarvestTiles(mX+X, mY+Y) 
;если ноль, то руды там нет... пропускаем
         if Tiles then 
            repeat 
               UO.DeleteJournal() 

               UO.WaitTargetTile(Tiles, mX+X, mY+Y, mZ) 
               UO.UseType(0x0E86) ; <-- Pickaxe 
               repeat 
                  wait(200) 
									; Cliloc
               until UO.InJournal("0xAD00|0xAD02|0xAD01|0xA2DE|0xAD03|0x6B31|0xEE46|0xA866|0xA867")
            until UO.InJournal("0xAD00|0xAD02|0xAD01|0xA2DE|0xA866|0xA867")
         endif 

      next 
   next 
   return 1 
end sub  

; функция проверки, копать можно только от 1339 до 1370
sub F_HarvestTiles(X,Y) 
   if UO.PrivateGetTile(X, Y, -1, 1339, 1370) then 
      for var i=1339 to 1370 
         if UO.PrivateGetTile(X, Y, -1, i, i) then 
            return i 
         end if 
      next 
   end if 
   return 0 
end sub
L@wbre@K
Posts: 15
Joined: 2005-03-17 02:25:11
Contact:

Post by L@wbre@K »

Code: Select all

UO.InJournal("0xAD00|0xAD02|0xAD01|0xA2DE|0xAD03|0x6B31|0xEE46|0xA866|0xA867")
            until UO.InJournal("0xAD00|0xAD02|0xAD01|0xA2DE|0xA866|0xA867")
         endif

      next
   next
   return 1
end sub  
Меня больше это смущало )
L@wbre@K
Posts: 15
Joined: 2005-03-17 02:25:11
Contact:

Post by L@wbre@K »

Уже не смущает ) Сенкс. 4 банки и 2 плюшки способны заставить мозг работать )
Gosser
Posts: 8
Joined: 2006-02-25 17:01:49

Post by Gosser »

Люди подскажите с таргетом... У менявообщем проблема мне нада чтоб я запустил команду он юзанул прицел на лошадь после этого появляеться воторой прицел и он тоже должен идти на лошадь но я незнаю как это сделать...
Плиз хелп :)
Заранее спасибо..!
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

Задаем прицел

Code: Select all

uo.exec('addobject Animal')
Ждем ответа

Code: Select all

while uo.targeting() 
Ловушку на животное

Code: Select all

UO.WaitTargetObject('Animal')

Пример:

Code: Select all

var mod=1
## 
sub main() 
uo.exec('addobject Animal') 
while uo.targeting() 
wait(100) 
wend 
wait(1000) 
while NOT UO.Dead() 
UO.DeleteJournal() 
UO.WaitTargetObject('Animal') 
UO.Useskill('Animal Taming') 
repeat 
wait(1000) 
until UO.InJournal('You fail') OR UO.InJournal('The') OR UO.InJournal('It seems ')
If Uo.InJournal('The') OR UO.InJournal('It seems ') Then 
If mod==0 Then 
UO.Say('all release') 
Endif 
If mod==1 Then 
UO.useobject('Animal')
Endif 
Endif 
wend 
end sub 
[b][color=green]ДРВ[/color][/b]
[color=blue]Spoiler[/color]
_________________
[b][color=green]Антарес[/color][/b]
[color=blue]Spoiler[/color]|[color=blue]Gostrabaiter[/color]|[color=red]Umhra[/color]|[color=red]Slog[/color]
Miha*
Posts: 14
Joined: 2006-10-23 14:18:19

Post by Miha* »

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

Post by Mirage »

есть замечательный раздел сайта:
http://yoko.com.ua/help/
там написано что
Описание: waittargetobject •

Синтакс: ,waittargetobject object [object2]
none uo.waittargetobject(object,[object2])
Тема: Прицелы Ключевые слова: command, uoscript, objhandling, waitsystem

Устанавливает на обьект object ловушку прицела.
Следующий прицел, который будет запрошен сервером, будет направлен на этот обьект.
Если задан второй обьект, object2, то после срабатывания ловушки будет установлена ловушка на обьект object2.
См. так же waittargettype, waittargetground, poison, waittargettile, findtype.
А пример скрипта

Code: Select all

sub Herding() 
var posoh = "0x0E81" 
uo.print('Укажите животное - ')
uo.addobject('Animal')
while uo.targeting()
wait(100)
wend
repeat 
uo.waittargetobject('Animal','self')
uo.usetype(posoh)
Uo.DeleteJournal()
repeat
wait(500)
until uo.injournal('You can|You don|не получилось|animal') 
until uo.dead() 
endsub
хотя имхо такие вопросы не здесь лучше задавать
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Miha* wrote:А как быть например когда качаеш хердинг, там же два таргета, как это всё обустроить, во туже пол часа мучуюсь, никак не магу сделать, помагите пожалуйсто, дайте хотябы какиенить наброски с двумя таргеатми от использования одного итема..

Code: Select all

Синтакс: ,waittargetobject object [object2]
none uo.waittargetobject(object,[object2])
Miha*
Posts: 14
Joined: 2006-10-23 14:18:19

Post by Miha* »

даже не ожидал на такой скорый ответ, спасибо всем за инфо и за скрипт
Post Reply