Page 1 of 1

копание драгоценных металов

Posted: 2006-04-01 20:58:54
by ghost_hnt
дело в том, что мне надо помочь чуток доработать этот скрипт, а именно мне надо чтобы чар копал руду, если он выкапывал ирон, тин, купер, то он выкидывал его под ноги
вот вроде и вся просьба
заранее блгодарен

:D

Code: Select all

sub mining() 
VAR x,y,z='0',TileNum='1339'
VAR Last=0,LastTimer
For x=-4 to 4
For y=-4 to 4
Repeat
CheckLag()
ToHide()
UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z)
UO.UseType('0x0e86')
LastTimer=UO.Timer()
repeat
wait(2000)
until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("You loosen") OR UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR LastTimer+150<UO.Timer()
if UO.InJournal('You loosen') then
repeat
wait (500)
until UO.InJournal("You put") OR LastTimer+105<UO.Timer()
endif
until UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("Try mining")

Next
Next
mining()
end sub


sub tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.FindType('0x0F0E','0x0631','my')
if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then
UO.UseType('0x0F0E','0x0631')
UO.Exec('warmode 0')
wait(2000)
else
UO.Exec('warmode 0')
UO.UseSkill('Hiding')
repeat
wait(50)
until UO.InJournal('You have hidden') OR UO.InJournal('вам не удалось') OR UO.InJournal('preoccupied')
endif
wend
end sub
 
sub CheckLag()
UO.DeleteJournal()


Posted: 2006-04-02 06:34:06
by Scripts Writer
создай массив с типами руды которую ты выкидывать будешь, и после удачного сообщения в журнале вставь туда,с проверкой: если руды > 0 (аирона,купера) тогда выкинуть. Эт нетрудно

Posted: 2006-04-02 19:02:06
by ghost_hnt
You Must Die wrote:создай массив с типами руды которую ты выкидывать будешь, и после удачного сообщения в журнале вставь туда,с проверкой: если руды > 0 (аирона,купера) тогда выкинуть. Эт нетрудно

ну так 'n я понял как надо сделать:
чтобы например искал в бекпаке такой-то тип руды и если она есть, то выкинуть ее
а вот как на скриптах это проделать я не знаю((!!
напишите кто-нить плз!!!

Posted: 2006-04-03 14:28:00
by ghost_hnt
вот написал, но выкидывает всего 3, а не всю руду((
и тем более надо как-то сделать, чтобы проверку делал после того как что-нить выкопал, а то только когда включаю скрипт выкидывает что-нить одно из трех руд(да и то всего 3 рудинки :( )
не очень получилось
подправьте!!!

Code: Select all

sub mining() 
VAR x,y,z='0',TileNum='1339'
VAR Last=0,LastTimer
For x=-4 to 4
For y=-4 to 4
Repeat
CheckLag()
ToHide()
UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z)
UO.UseType('0x0e86')
LastTimer=UO.Timer()
repeat
wait(2000)
until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("You loosen") OR UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR LastTimer+150<UO.Timer()
if UO.InJournal('You loosen') then
repeat
wait (500)
until UO.InJournal("You put") OR LastTimer+105<UO.Timer()
endif
until UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("Try mining")

Next
Next
mining()
end sub


sub tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.FindType('0x0F0E','0x0631','my')
if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then
UO.UseType('0x0F0E','0x0631')
UO.Exec('warmode 0')
wait(2000)
else
UO.Exec('warmode 0')
UO.UseSkill('Hiding')
repeat
wait(50)
until UO.InJournal('You have hidden') OR UO.InJournal('вам не удалось') OR UO.InJournal('preoccupied')
endif
wend
end sub
 
UO.FindType('0x19B8',-1,'backpack') #купер
wait(500)
If UO.GetQuantity('finditem') then
UO.WaitTargetObject('finditem')
uo.drophere('finditem')
Endif
UO.FindType('0x19B9',-1,'backpack') #тин
wait(500)
If UO.GetQuantity('finditem') then
UO.WaitTargetObject('finditem')
uo.drophere('finditem')
Endif
UO.FindType('0x19B9',-1,'backpack') #айрон
wait(500)
If UO.GetQuantity('finditem') then
UO.WaitTargetObject('finditem')
uo.drophere('finditem')
Endif   

sub CheckLag()
UO.DeleteJournal()


Posted: 2006-04-03 15:57:30
by Scripts Writer
ghost_hnt wrote:вот написал, но выкидывает всего 3, а не всю руду((
и тем более надо как-то сделать, чтобы проверку делал после того как что-нить выкопал, а то только когда включаю скрипт выкидывает что-нить одно из трех руд(да и то всего 3 рудинки :( )
не очень получилось
подправьте!!!

Code: Select all

sub mining() 
VAR x,y,z='0',TileNum='1339'
VAR Last=0,LastTimer
For x=-4 to 4
For y=-4 to 4
Repeat
CheckLag()
ToHide()
UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z)
UO.UseType('0x0e86')
LastTimer=UO.Timer()
repeat
wait(2000)
until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("You loosen") OR UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR LastTimer+150<UO.Timer()
if UO.InJournal('You loosen') then
repeat
wait (500)
until UO.InJournal("You put") OR LastTimer+105<UO.Timer()
endif
until UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("Try mining")

Next
Next
mining()
end sub


sub tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.FindType('0x0F0E','0x0631','my')
if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then
UO.UseType('0x0F0E','0x0631')
UO.Exec('warmode 0')
wait(2000)
else
UO.Exec('warmode 0')
UO.UseSkill('Hiding')
repeat
wait(50)
until UO.InJournal('You have hidden') OR UO.InJournal('вам не удалось') OR UO.InJournal('preoccupied')
endif
wend
end sub
 
UO.FindType('0x19B8',-1,'backpack') #купер
wait(500)
If UO.GetQuantity('finditem') then
UO.WaitTargetObject('finditem')
uo.drophere('finditem')
Endif
UO.FindType('0x19B9',-1,'backpack') #тин
wait(500)
If UO.GetQuantity('finditem') then
UO.WaitTargetObject('finditem')
uo.drophere('finditem')
Endif
UO.FindType('0x19B9',-1,'backpack') #айрон
wait(500)
If UO.GetQuantity('finditem') then
UO.WaitTargetObject('finditem')
uo.drophere('finditem')
Endif   

sub CheckLag()
UO.DeleteJournal()





если у вас руда различается типами то вставляй и клей это:


Code: Select all

sub off()
 DIM ruda[3]
 
     ruda[0]=' '   ;Сюда и ниже вставляй типы руд
     ruda[1]=' '
     ruda[2]=' '

for i = 0 to 2
  UO.FindType(ruda[i],-1,'backpack')
  If UO.GetQuantity('finditem') then
    UO.WaitTargetObject('finditem')
    uo.drophere('finditem')
    wait(500)
  end if
next
end sub

Posted: 2006-06-14 17:54:07
by ghost_hnt
о отрыл этот топ!!
не руда в типах Одинакова, различается по цвету
viewtopic.php?p=15452#15452
вот нашел топик там есть на счет копания выделенных металлов
но как сделать чтобы он проверял , выкопанную руду по цвету и если это не нужная руда- кидал ее себе под ноги

ХЕЛП ПЛЗ ЛЮДИ)! :D

Posted: 2006-06-14 21:50:29
by ghost_hnt
че никто помочь не может? :( :( :(

Posted: 2006-06-14 22:38:34
by Scripts Writer
В массив цвета впиши ненужной руды, и:

Code: Select all

for i = 0 to ...
  uo.FindType(ore,color[i],'backpack')


если найдено-выкинуть.

Posted: 2006-06-15 08:33:58
by Askaneli
1,2,3,4 и более руды имеют разный тип.
На вашем месте я бы сделал выкидываение по весу чара.
То есть достиг крического веса например 4*STR запускается выкидывалка по массиву цветов оров.
Получится что выкинутся все что больше 4 и соответствуют определённым в массиве цветам. А те что меньше 4х не создают многа веса и выкинутся в следующий заход, если канечна в количестве зашкалят таки за 4.

Code: Select all

Sub SbrosOre()
var i
Dim OreColor[10] ## массив цветов трешевой руды
OreColor[1] = ''
OreColor[2] = ''
...
OreColor[10] = ''
for i=1 to 10
uo.findtype('тут тип 4 и более оров',OreColor[i],'backpack')
while uo.findcount()>0
uo.moveitem('finditem','-1','ground')
wait(700)
uo.findtype('тут тип 4 и более оров',OreColor[i],'backpack')
wend
next
end sub

Posted: 2006-06-15 09:36:29
by ghost_hnt
тип вроде одинаковый- руда отличается только по цвету

Posted: 2006-06-15 09:37:23
by Scripts Writer
ghost_hnt wrote:тип вроде одинаковый- руда отличается только по цвету


Я же тебе написал пример ... Че вы в самом деле, не видите ?

И асканели так же тебе всё по твоему вопросу ответил-ты просто не можешь понять.

Posted: 2006-06-15 09:54:01
by ghost_hnt
You Must Die wrote:
ghost_hnt wrote:тип вроде одинаковый- руда отличается только по цвету


Я же тебе написал пример ... Че вы в самом деле, не видите ?

И асканели так же тебе всё по твоему вопросу ответил-ты просто не можешь понять.

ты прав- что-то не ососбо понимаю, сейчас сервер в дауне, заработает - проверю и отпишу!

Posted: 2006-06-15 11:13:44
by Askaneli
ghost_hnt wrote:тип вроде одинаковый- руда отличается только по цвету


Вазми кучку таго же айрона
отдели 1 ор, посмари тип
отдели 2 ора, посмари тип
отдели 3 ора, посмари тип
отдели 4 ора, посмари тип
И у большой кучки пасмари тип и поймёшь о чём я.


Code: Select all

DIM Ore[4] 
Ore[01]='0x19B7'  ## 1 ore
Ore[02]='0x19BA'  ## 2 ore
Ore[03]='0x19B8'  ## 3 ore
Ore[04]='0x19B9'  ## 4 and more ore


Вот. Нуна тока цвета прописать на соответствующее количество трешевых руд и размерность массива утрясти.

Code: Select all

Sub SbrosOre() 
var i,j

Dim OreType[4]
OreType[01]='0x19B7'  ## 1 ore
OreType[02]='0x19BA'  ## 2 ore
OreType[03]='0x19B8'  ## 3 ore
OreType[04]='0x19B9'  ## 4 and more ore

Dim OreColor[10] ## массив цветов трешевой руды
OreColor[1] = ''
OreColor[2] = ''
...
OreColor[10] = ''
for j=1 to 4
for i=1 to 10
uo.findtype(OreType[j],OreColor[i],'backpack')
while uo.findcount()>0
uo.moveitem('finditem','-1','ground')
wait(700)
uo.findtype(OreType[j],OreColor[i],'backpack')
wend
next
next
end sub

Posted: 2006-06-15 12:00:08
by ghost_hnt
вроде бы понял
но выдается ошибка
unhandled exeption in parser

Code: Select all

Sub sbroska() 
var i,j
Dim OreType[4]
OreType[01]='0x19B7'  ## 1 ore
OreType[02]='0x19BA'  ## 2 ore
OreType[03]='0x19B8'  ## 3 ore
OreType[04]='0x19B9'  ## 4 and more ore

Dim OreColor[2] ## массив цветов трешевой руды
OreColor[1] = '0x0000'
OreColor[2] = '0x0641'

for j=1 to 4
for i=1 to 10
uo.findtype(OreType[j],OreColor[i],'backpack')
while uo.findcount()>0
uo.moveitem('finditem','-1','ground')
wait(700)
uo.findtype(OreType[j],OreColor[i],'backpack')
wend
next
next
end sub

Posted: 2006-06-15 12:01:55
by Askaneli

Code: Select all

for i=1 to 10


поменяй на

Code: Select all

for i=1 to 2

Posted: 2006-06-15 12:27:40
by ghost_hnt
все работает
вот если кому понадобится, ТОЛЬКО НЕ ЗАБУДЬТЕ ПОМЕНЯТЬ СООБЩЕНИЯ ЖУРНАЛА- НА СООБЩЕНИЯ ВАШЕГО ШАРДА

Code: Select all

sub mining() 
VAR x,y,z='0',TileNum='1339'
VAR Last=0,LastTimer
For x=-4 to 4
For y=-4 to 4
Repeat
CheckLag()
ToHide()
UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z)
UO.UseType('0x0e85')
LastTimer=UO.Timer()
repeat
wait(2000)
until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("Раздолбив") OR UO.InJournal("Тут не") OR UO.InJournal("Это слишком") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR LastTimer+150<UO.Timer()
if UO.InJournal('You loosen') then
repeat
wait (500)
until UO.InJournal("You put") OR LastTimer+105<UO.Timer()
endif
until UO.InJournal("Тут не осталось") OR UO.InJournal("Это слишком") OR UO.InJournal("Раздолбив")

Next
Next
mining()
end sub


sub tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.FindType('0x0F0E','0x0631','my')
if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then
UO.UseType('0x0F0E','0x0631')
UO.Exec('warmode 0')
wait(2000)
else
UO.Exec('warmode 0')
UO.UseSkill('Hiding')
repeat
wait(50)
until UO.InJournal('You have hidden') OR UO.InJournal('Вам не удалось') OR UO.InJournal('preoccupied')
endif
wend
end sub

sub CheckLag()
UO.DeleteJournal()



sub mining()
VAR x,y,z='0',TileNum='1339'
VAR Last=0,LastTimer
For x=-4 to 4
For y=-4 to 4
Repeat
CheckLag()
ToHide()
UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z)
UO.UseType('0x0e85')
LastTimer=UO.Timer()
repeat
wait(2000)
until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("Раздолбив") OR UO.InJournal("Тут не") OR UO.InJournal("Это слишком") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR LastTimer+150<UO.Timer()
if UO.InJournal('You loosen') then
repeat
wait (500)
sbroska()
until UO.InJournal("You put") OR LastTimer+105<UO.Timer()
endif
until UO.InJournal("Тут не осталось") OR UO.InJournal("Это слишком") OR UO.InJournal("Раздолбив")

Next
Next
mining()
end sub


sub tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.FindType('0x0F0E','0x0631','my')
if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then
UO.UseType('0x0F0E','0x0631')
UO.Exec('warmode 0')
wait(2000)
else
UO.Exec('warmode 0')
UO.UseSkill('Hiding')
repeat
wait(50)
until UO.InJournal('You have hidden') OR UO.InJournal('Вам не удалось') OR UO.InJournal('preoccupied')
endif
wend
end sub

sub CheckLag()
UO.DeleteJournal()

Sub sbroska()
var i,j
Dim OreType[4]
OreType[01]='0x19B7'  ## 1 ore
OreType[02]='0x19BA'  ## 2 ore
OreType[03]='0x19B8'  ## 3 ore
OreType[04]='0x19B9'  ## 4 and more ore

Dim OreColor[3] ## массив цветов трешевой руды
OreColor[1] = '0x0000'
OreColor[2] = '0x0641'
OreColor[3] = '0x077A'

for j=1 to 4
for i=1 to 3
uo.findtype(OreType[j],OreColor[i],'backpack')
while uo.findcount()>0
uo.moveitem('finditem','-1','ground')
wait(700)
uo.findtype(OreType[j],OreColor[i],'backpack')
wend
next
next
end sub


СПАСИБО БОЛЬШОЕ АСКАНЕЛИ и You must die

pS У меня возник еще небольшое вопросик :) :
по этому скрипту - он стоит на месте и перекапывает всю шахту, т.е он будет кидать на 1 тайл всю руду - со временем тайл будет по-просту забит => надо чтобы он выкидывал руду не только под себя или выкилдывал ее на производный тайл :?

Posted: 2006-06-15 12:31:41
by Askaneli
ghost_hnt wrote:все работает
вот если кому понадобится, ТОЛЬКО НЕ ЗАБУДЬТЕ ПОМЕНЯТЬ СООБЩЕНИЯ ЖУРНАЛА- НА СООБЩЕНИЯ ВАШЕГО ШАРДА

Code: Select all

sub mining()


СПАСИБО БОЛЬШОЕ АСКАНЕЛИ и You must die

pS У меня возник еще небольшое вопросик :) :
по этому скрипту - он стоит на месте и перекапывает всю шахту, т.е он будет кидать на 1 тайл всю руду - со временем тайл будет по-просту забит => надо чтобы он выкидывал руду не только под себя или выкилдывал ее на производный тайл :?


Если выбрасывать как я сказал по факту набора определённого веса , то пока ты копаешь полный вес, то что выбросил успеет исчезнуть ...

Да тебя грохнут раньше чем ты нароешь что нить на этом скрипте ...

Posted: 2006-06-15 13:12:53
by ghost_hnt
Askaneli wrote:Да тебя грохнут раньше чем ты нароешь что нить на этом скрипте ...

посмотрим посмотрим)