Page 1 of 1

почему не работает

Posted: 2006-03-24 20:20:59
by pandinus
почему у меня в скрипте не работает этот участок кода

Code: Select all

UO.FindType('0x1B73',-1,-1)
wait(500)
If UO.GetQuantity('finditem')>5 then
UO.UseObject('0x40041B2F') ; Фордж 
UO.WaitTargetObject('finditem')
else
Endif

Posted: 2006-03-24 20:39:13
by Scripts Writer
читай мой урок ))) :


Это не правильно.

Code: Select all

UO.UseObject('0x40041B2F') ; Фордж  
UO.WaitTargetObject('finditem')


Сначала ловушку:

Code: Select all

UO.WaitTargetObject('finditem')


А затем действие:

Code: Select all

UO.UseObject('0x40041B2F')




Code: Select all

  
UO.WaitTargetObject('finditem')
UO.UseObject('0x40041B2F')

Posted: 2006-03-25 13:22:23
by pandinus
да я пробовал так и так- всё равно не хочет

вот мой скрипт. всё работает, дагеры находит а форджу юзать не хочет

Code: Select all

sub BS()
var LastTimer,box1,forge

while not uo.dead()

uo.useskill ('Spirit Speak')

################################
#########  берём инги  #########
################################

UO.FindType('0x1BEF',-1,'backpack')
If UO.GetQuantity('finditem')<10 then
UO.FindType('0x1BEF','0x0000', '0x40074018' )
wait(1000)
UO.Grab('200','finditem')
Endif


################################
#########  переплавка  #########
################################

UO.FindType('0x0F51','0x000','backpack') ; ищем ножи
wait(500)
If UO.GetQuantity('finditem')>5 then
UO.WaitTargetObject('finditem')
UO.UseObject('0x40024CDE') ; Фордж
else
Endif



#############################
#########   ковка   #########
#############################


LastTimer=UO.Timer()
UO.DeleteJournal()
UO.UseType('0x1BEF')
UO.WaitMenu('Blacksmithing','Weapons','Weapons','Sword','Sword','dagger')       
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed")
wait(500)
wend
If UO.InJournal("You have failed") then
repeat
wait(100)
until UO.Timer()>=LastTimer+100
Else 
EndIf


wend
end sub

Posted: 2006-03-25 14:06:20
by flake
Убери оператор else, т.к. у тебя после него нет никаких действий (везде его убери).
Далее - ножи это НЕ кучкующиеся вещи, следовательно тебе нужно не UO.GetQuantity, а UO.FindCount()

Posted: 2006-03-25 14:22:43
by Kynep
pandinus wrote:да я пробовал так и так- всё равно не хочет

вот мой скрипт. всё работает, дагеры находит а форджу юзать не хочет

Code: Select all

sub BS()
var LastTimer,box1,forge

while not uo.dead()

uo.useskill ('Spirit Speak')

################################
#########  берём инги  #########
################################

UO.FindType('0x1BEF',-1,'backpack')
If UO.GetQuantity('finditem')<10 then
UO.FindType('0x1BEF','0x0000', '0x40074018' )
wait(1000)
UO.Grab('200','finditem')
Endif


################################
#########  переплавка  #########
################################

UO.FindType('0x0F51','0x000','backpack') ; ищем ножи
wait(500)
If UO.GetQuantity('finditem')>5 then
UO.WaitTargetObject('finditem')
UO.UseObject('0x40024CDE') ; Фордж
else
Endif



#############################
#########   ковка   #########
#############################


LastTimer=UO.Timer()
UO.DeleteJournal()
UO.UseType('0x1BEF')
UO.WaitMenu('Blacksmithing','Weapons','Weapons','Sword','Sword','dagger')       
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed")
wait(500)
wend
If UO.InJournal("You have failed") then
repeat
wait(100)
until UO.Timer()>=LastTimer+100
Else 
EndIf


wend
end sub



Code: Select all

################################
#########  переплавка  #########
################################

UO.FindType('0x0F51','-1','backpack') ; ищем ножи
wait(500)
If UO.GetQuantity('finditem')>5 then
UO.WaitTargetObject('finditem')
UO.UseObject('0x40024CDE') ; Фордж
Endif


Posted: 2006-03-25 14:23:00
by Kynep
pandinus wrote:да я пробовал так и так- всё равно не хочет

вот мой скрипт. всё работает, дагеры находит а форджу юзать не хочет

Code: Select all

sub BS()
var LastTimer,box1,forge

while not uo.dead()

uo.useskill ('Spirit Speak')

################################
#########  берём инги  #########
################################

UO.FindType('0x1BEF',-1,'backpack')
If UO.GetQuantity('finditem')<10 then
UO.FindType('0x1BEF','0x0000', '0x40074018' )
wait(1000)
UO.Grab('200','finditem')
Endif


################################
#########  переплавка  #########
################################

UO.FindType('0x0F51','0x000','backpack') ; ищем ножи
wait(500)
If UO.GetQuantity('finditem')>5 then
UO.WaitTargetObject('finditem')
UO.UseObject('0x40024CDE') ; Фордж
else
Endif



#############################
#########   ковка   #########
#############################


LastTimer=UO.Timer()
UO.DeleteJournal()
UO.UseType('0x1BEF')
UO.WaitMenu('Blacksmithing','Weapons','Weapons','Sword','Sword','dagger')       
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed")
wait(500)
wend
If UO.InJournal("You have failed") then
repeat
wait(100)
until UO.Timer()>=LastTimer+100
Else 
EndIf


wend
end sub



Пробуй так: и заодно проверь ID Форжы

Code: Select all

################################
#########  переплавка  #########
################################

UO.FindType('0x0F51','-1','backpack') ; ищем ножи
wait(500)
If UO.GetQuantity('finditem') then
UO.WaitTargetObject('finditem')
UO.UseObject('0x40024CDE') ; Фордж
Endif


Posted: 2006-03-25 15:23:33
by pandinus
2 cooper

Cooper wrote:

Пробуй так: и заодно проверь ID Форжы

Code: Select all

################################
#########  переплавка  #########
################################

UO.FindType('0x0F51','-1','backpack') ; ищем ножи
wait(500)
If UO.GetQuantity('finditem') then
UO.WaitTargetObject('finditem')
UO.UseObject('0x40024CDE') ; Фордж
Endif



для того чтоб выполнялись операторы после then условие должно принять значение true .....
вот ты мне объясни в каком случае сдесь буде условие равним true ?????
а айди я уже вчера весь вечер проверял и сёдня всё утро


2 flake

Code: Select all

 
################################
#########       переплавка       #########
################################

UO.FindType('0x0F51','0x000','backpack') ; ищем ножи
wait(500)
If UO.FindCount('finditem')>5 then
UO.WaitTargetObject('finditem')
UO.UseObject('0x40024CDE') ; Фордж

Endif


вот так???
так тоже не пашет..
я челу дал скрипт у него даже инги из сундука не берёт

Posted: 2006-03-25 15:33:13
by Kynep
pandinus wrote:вот так???
так тоже не пашет..
я челу дал скрипт у него даже инги из сундука не берёт



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

Posted: 2006-03-25 16:56:04
by pandinus
да, скорее всего не со скриптом.....
и месьами я менял...

Posted: 2006-03-25 17:34:10
by Kynep
pandinus wrote:да, скорее всего не со скриптом.....
и месьами я менял...


Ну тогда тебе сюда:
[url]
viewtopic.php?p=38400#38400
[/url]