Смена КЕГ

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Смена КЕГ

Post by BulldoZer »

Ну вот предисловие: взял скрипт с раздела Top Quality >> Пойзонинг...

Пробую добавить смену кег и ничего неполучаеться(((

Code: Select all

dd:
uo.findtype('keg','0','backpack')
wait(100)
uo.moveitem('finditem','0','sum')
uo.say('Ложу ПУСТОЙ кег в сундук.')
wait(1000)

uo.findtype('keg','0','sum1')
uo.grab('0','finditem')
uo.say('Достал ПОЛНЫЙ кег из сумки')
wait(2000)
goto ee 

ee:
uo.usetype('keg')
wait(500)
if uo.injournal('The keg is empty.') then
wait(100)
uo.DeleteJournal()
goto dd
else
goto pp
endif


Уже столько пытался переделать, что запутался совсем... вроде находит кег но неперебрасывает пустой с бекпака!

Пожалуйста укажите где правельно надо ставить интервалы - наставил наугад)))))))
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

попробуй так

Code: Select all

dd:
uo.findtype( keg ,'0','backpack')
if uo.findcount() then
uo.moveitem('finditem','0', sum )
uo.say('Ложу ПУСТОЙ кег в сундук.')
wait(1000)
end if

uo.findtype( keg ,'0', sum1 )
if uo.findcount() then
uo.moveitem('finditem')
uo.say('Достал ПОЛНЫЙ кег из сумки')
wait(2000)
end if
goto ee

ee:
uo.usetype('keg')
wait(500)
if uo.injournal('The keg is empty.') then
wait(100)
uo.DeleteJournal()
goto dd
else
goto pp
endif
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Post by BulldoZer »

Сенки)
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Post by BulldoZer »

ВОт НЕЗАДАЧА... Тоже самое((( Скрипт запустился и когда доходит до этого места в уо пишеться:

Warning: error in command
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

1) что такое sum1?

2) 'keg' везде должен быть в кавычках одинакого. А не в одном месте это имя объекта, а в другом имя переменной (хотя такая переменная даже не объявлена)

3) Логику скрипта понять нельзя, вероятна ошибка где то вне этого куска.
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Post by BulldoZer »

Счас покажу полный скрипт с моим исправлением...

Code: Select all

sub main() 
var p1,p2,dp
uo.say(',exec bandcure')
uo.say('Запущена система контроля хп')
uo.say('Покажи как выглядит бочка с ядом.')
uo.addtype('keg')
while uo.targeting()
wait(100)
wend
uo.say('Покажи как выглядит еда.')
uo.addtype('food')
while uo.targeting()
wait(100)
wend
uo.say('Покажи как выглядит яд.')
uo.addtype('poison')
while uo.targeting()
wait(100)
wend
uo.say('Покажи сумку с едой.')
uo.addobject('sum')
while uo.targeting()
wait(100)
wend 
uo.say('Покажи сумку для полных кег')
uo.addobject('sum1')
while uo.targeting()
wait(100)
wend
g:

    uo.findtype('food','-1','sum')
    uo.grab('1','finditem')
    uo.say('Достал еду из сумки')
   wait(2000)
   goto cond


dd:
uo.findtype( 'keg' ,'0','backpack')
if uo.findcount() then
uo.moveitem('finditem','0', 'sum' )
uo.say('Ложу Пустой кег в сундук.')
wait(1000)
end if

uo.findtype( 'keg' ,'0', 'sum1' )
if uo.findcount() then
uo.moveitem('finditem')
uo.say('Достал кег из сумки')
wait(2000)
end if
goto ee

ee:
uo.usetype('keg')
wait(500)
if uo.injournal('The keg is empty.') then
wait(100)
uo.DeleteJournal()
goto dd
else
goto pp
endif

pp:
wait(500)
uo.waittargettype('poison')
uo.useskill('Poisoning')
wait(1000)
uo.findtype('food','-1')
wait(1000)
uo.target('1','finditem')
wait(11000)
goto cond1



cond:
p1=uo.skillval('Poisoning')
uo.say('Значение скила Пойзонинг записано в переменную p1')
goto pp


cond1:
p2=uo.skillval('Poisoning')
dp=p2-p1
if dp>10 then
uo.say('Значение скила поднялось на 0.3, беру другую порцию еды для работы.')
uo.findtype('food','-1')
uo.setreceivingcontainer('sum')
wait(500)
uo.findtype('food')
uo.grab('1','finditem')
uo.say('Ложу еду в сумку.')
wait(1000)
uo.unsetreceivingcontainer()
goto g
else
goto ee
endif

end sub

sub bandcure()
repeat
if uo.poisoned('self') and uo.count('bandage')>0 then
uo.bandageself()
uo.say('Бинтуюсь!')
wait(10000)
end if
if uo.poisoned('self') and uo.count('cure')>0 then
uo.usetype('cure')
uo.say('Пью антидот!')
wait(1000)
end if
wait(1000)
until uo.life<0
end sub


МОГУ сказать на верняка фраза

Code: Select all

uo.say('Ложу Пустой кег в сундук.') 


Замечена ниразу небыла...


АЙДИ Пустого и полного кега одинаковое... Думаю скрипт неразличает их или неможет понять что надо с бэкпака переложит(
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

Ошибок не видать. Все норм. Значит алгоритм неправильный.

BulldoZer wrote:Думаю скрипт неразличает их или неможет понять что надо с бэкпака переложит(


Если ты их различаешь, значит и скрипт способен. Нужно только найти в чем отличие и правильно его описать. ;)


По скрипту займись отладочкой.
Как я бы это сделал:
1) Проверить правильно ли определяется пустой кег. Для этого после метки ПП добавить вывод чего-нить в чат, ну например UO.Print("Jumping to PP")
2) Если кег определяется и переход осуществляется, то проверить функцию поиска кега... и т.д.

PS честно говоря не понятно зачем после использования кега искать его заново, если есть указатель {lastobject Последний использованый (двойным щелчком мыши) обьект } и можно просто сделать UO.MoveItem('lastobject', 0, 'sum'). Ну да это не важно, каждый ****ит как хочет. :roll:

Вобщем двигай по шагам и ищи где сбой. :)
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Post by BulldoZer »

Спасибо... ты прав буду пошагово разбирать его...

Твой вариант вижу удобнее... я основывался что у всех видов кег одинаковый айди... и он в переменной 'keg' значит когда журнал сработал переход то найти кег в паке и передвинуть... буду эксперементировать)

зы: я ламер и нифига нешарю в скриптах инжекта :evil:
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Post by BulldoZer »

УРА Я ПОБЕДИЛ!!!

Для начала уперся в журнал в нем неписалось ничего такого - 'The keg is empty.'

а только такое cliloc# 0xA9E6

второе небрал полные кеги) пока неисправил так uo.findtype('keg','0x0046','sum1')


Все спасибо))) впереди остался кач) Пака
Post Reply