Page 1 of 1

Скрипт на БС(ексепт или не експт) хелп

Posted: 2005-03-11 21:13:13
by Grizl
История такова : Собрал(именно собрал) скрипт на БС с целью выуживания ексептовых вещей при прокачке или "так",но что то где то не так и скрипт не работает - пишет ошибку в 44 линии.Может кто глянет опытным глазом и поможет мне? Идея скрипта :
1)находит нап полу инготы,кует последнюю вещь;
2)должен по идее находить ексепт вещь и скидывать а пол(тут и возникает проблема ,может подправите что?)
3)плавит вещи ;
4)сбрасывает инготы в кучку уже лежащую на полу.

sub main()
start:
uo.set("distance","1")
while not uo.dead()
If UO.Count ("0x1BF2") == 0 Then
wait (1000)
UO.Waittargetground ('0x1BF2')
wait (100)
UO.Usetype ("0x13E3")
wait (500)
UO.Lclick (76,390)
wait (2000)
UO.Lclick (76,390)
wait (65000)
plav()
wait(2000)
dropi()
While (UO.ObjAtLayer('Bpack') == '')
wait(10000)
wend
Nuke_hungry()
else

UO.Waittargettype ("0x1BF2")
wait (100)
UO.Usetype ("0x13E3")
wait (500)
UO.Lclick (76,390)
wait (65000)
wait (500)
endif
wend
end sub

sub prov()
if UO.Count("0x143A")<1 then # check for items in the backpack
goto start
else
UO.FindType("0x143A") #serching the items
Wait(500)
UO.addobject("a","finditem")
wait(500)
if UO.getname("a") == "Exceptional shadow gorget [Crafted by Nike]"
uo.exec("drophere finditem")
wait(1000)
else
plav()
end sub


sub plav()
var i=0
while i < 10
uo.waittargettype('0x143A')
uo.usefromground('0x0fb1')
wait(3000)
i = i+1
wend
i=0
wait(5000)
end sub

sub dropi()
UO.Exec("set finddistance 1")
var d = '0x1BF2'
drop(d)
end sub
sub drop(d)
var serial=0
var color=-1
var container = "ground"
while UO.Count(d) > 0
UO.FindType(d,-1,"my")
serial=UO.GetSerial("finditem")
color=UO.GetColor(serial)
UO.Ignore(serial)
if container=="ground" then
UO.FindType(d,color,"ground")
if UO.FindCount()>0 then
UO.MoveItem(serial,"0","finditem","0","0","0")
else
UO.DropHere(serial)
endif
else
UO.MoveItem(serial,"0",container)
endif
wait(1000)

UO.IgnoreReset()
end sub

sub Nuke_hungry()
wait(400)
uo.serverprint(".hungry")
wait(800)
if ((uo.lastmessage()=="You are DYING of hunger...") or (uo.lastmessage()=="You are almost dying of hunger") or (uo.lastmessage()=="You are starving") or (uo.lastmessage()=="Your stomash hurts and you feel dizzy")or (uo.lastmessage()=="Your stomash hurts") or (uo.lastmessage()=="You are REALLY hungry") or (uo.lastmessage()=="You are somewhat hungry") or (uo.lastmessage()=="You are a little hungry") or (uo.lastmessage()=="You aren't hungry at all"))==true then
uo.exec("usetype 0x097B")
endif
endsub


З.Ы. Скрипт рассчитан на POL

Posted: 2005-03-11 23:59:50
by Sfagnum
ты бы хоть пёрнул для ориентиру(с)

подсвети строчечку за номером 44, будь добр, а то я с константами не работаю ;)
всё равно в коде не запихал...

сорри если что не так...

Posted: 2005-03-12 01:48:51
by Grizl
Sfagnum wrote:ты бы хоть пёрнул для ориентиру(с)

подсвети строчечку за номером 44, будь добр, а то я с константами не работаю ;)
всё равно в коде не запихал...

сорри если что не так...
Сорри - думал,что будете юзать скрипт,сами найдете )
Вот она
uo.exec("drophere finditem")

Posted: 2005-03-12 03:20:22
by Sfagnum
uo.drophere('finditem') чем плох?

Posted: 2005-03-13 01:30:52
by Grizl
Sfagnum wrote:uo.drophere('finditem') чем плох?

наоборот даже очень хорош,но не помогает - та же ошибка/ Даже незнаю что делать...

Posted: 2005-03-13 01:36:06
by Goggy
а ты мувани попробуй :D

Posted: 2005-03-15 11:07:31
by Arsuri
2Grizl: Пробуй записать так UO.Findtype('0x143A', '-1', 'backpack'), скрипт не находит объект, потому fimditem пустой, что приводит к ошибке в uo.drophere('finditem')

Posted: 2005-03-15 11:34:21
by Sfagnum
Arsuri wrote:2Grizl: Пробуй записать так UO.Findtype('0x143A', '-1', ,backpack'), скрипт не находит объект, потому fimditem пустой, что приводит к ошибке в uo.drophere('finditem')
и не найдёт... на досуге в хелп загляни и посмотри как прально юзать эту ф-ю...

Code: Select all

UO.Findtype('0x143A', '-1','backpack')
if UO.FindCount() > 0 then
    UO.DropHere('finditem')
end if

Posted: 2005-03-15 11:47:06
by Arsuri
Sfagnum wrote:и не найдёт... на досуге в хелп загляни и посмотри как прально юзать эту ф-ю...

Code: Select all

UO.Findtype('0x143A', '-1','backpack')
if UO.FindCount() > 0 then
    UO.DropHere('finditem')
end if

Опечатался, уже в хелп посылают... :(

Posted: 2005-03-15 12:09:32
by Sfagnum
Arsuri wrote:Опечатался, уже в хелп посылают... :(
с кем не бывает ;) тут разные люди ходют... поэтому и написал.
хех... таки посмотре скрипт повнимательнее

Code: Select all

if UO.getname("a") == "Exceptional shadow gorget [Crafted by Nike]" 
uo.exec("drophere finditem")
wait(1000)
else
plav()
end sub
тут пару вопросов...
1. при проверке обращаешься одним образом, при скидывании другим... не хорошо это ;) попробуй UO.DropHere('a')
2. end if не уважаем? но эт так... ;)

PS не надо в личку гадить...

Posted: 2005-03-15 12:25:20
by Arsuri
Посмотрел повнимательнее, тут

Code: Select all

if UO.getname("a") == "Exceptional shadow gorget [Crafted by Nike]" 
 

надо бы еще then в конце строки добавить.

Posted: 2005-03-15 17:45:59
by Edred
и Then в конец строки, и Endif в конец ифа. Именно в этом и ошибка

Posted: 2005-03-18 02:13:40
by Goggy
гыыы а флуду на 12 сообщений :lol: :lol:

Posted: 2005-03-18 11:41:14
by Sfagnum
Goggy wrote:гыыы а флуду на 12 сообщений :lol: :lol:
да уж... чел дал ложную инфу... оттого и траблы... да и орфографию проверять... это не сюда ;)

Posted: 2005-03-21 09:35:32
by Grizl
Спасибо всем - многое исправил и почти все работает,но мне кажется,что функция UO.getname в моем скрипте не срабатывает так,как того хотелось.Может кто подскажет,как проверить имя вещи? :?

Posted: 2005-03-21 15:18:58
by Yoko
while uo.getname("finditem")==""
uo.click("finditem")
wait(300)
wend