Смена КЕГ

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