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

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

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

Post 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()

Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

создай массив с типами руды которую ты выкидывать будешь, и после удачного сообщения в журнале вставь туда,с проверкой: если руды > 0 (аирона,купера) тогда выкинуть. Эт нетрудно
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post by ghost_hnt »

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

ну так 'n я понял как надо сделать:
чтобы например искал в бекпаке такой-то тип руды и если она есть, то выкинуть ее
а вот как на скриптах это проделать я не знаю((!!
напишите кто-нить плз!!!
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post 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()

Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post 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
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post by ghost_hnt »

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

ХЕЛП ПЛЗ ЛЮДИ)! :D
ЦСКА- чЕмПиОн, кто не верит, тот ...... (нехороший человек)
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post by ghost_hnt »

че никто помочь не может? :( :( :(
ЦСКА- чЕмПиОн, кто не верит, тот ...... (нехороший человек)
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

В массив цвета впиши ненужной руды, и:

Code: Select all

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


если найдено-выкинуть.
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post 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
Сделал дело - флуди смело !!!
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post by ghost_hnt »

тип вроде одинаковый- руда отличается только по цвету
ЦСКА- чЕмПиОн, кто не верит, тот ...... (нехороший человек)
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

ghost_hnt wrote:тип вроде одинаковый- руда отличается только по цвету


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

И асканели так же тебе всё по твоему вопросу ответил-ты просто не можешь понять.
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post by ghost_hnt »

You Must Die wrote:
ghost_hnt wrote:тип вроде одинаковый- руда отличается только по цвету


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

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

ты прав- что-то не ососбо понимаю, сейчас сервер в дауне, заработает - проверю и отпишу!
ЦСКА- чЕмПиОн, кто не верит, тот ...... (нехороший человек)
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post 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
Сделал дело - флуди смело !!!
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post 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
ЦСКА- чЕмПиОн, кто не верит, тот ...... (нехороший человек)
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Code: Select all

for i=1 to 10


поменяй на

Code: Select all

for i=1 to 2
Сделал дело - флуди смело !!!
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post 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 тайл всю руду - со временем тайл будет по-просту забит => надо чтобы он выкидывал руду не только под себя или выкилдывал ее на производный тайл :?
ЦСКА- чЕмПиОн, кто не верит, тот ...... (нехороший человек)
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

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

Code: Select all

sub mining()


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

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


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

Да тебя грохнут раньше чем ты нароешь что нить на этом скрипте ...
Сделал дело - флуди смело !!!
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post by ghost_hnt »

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

посмотрим посмотрим)
ЦСКА- чЕмПиОн, кто не верит, тот ...... (нехороший человек)
Post Reply