add object

Ask for help

Moderators: Murderator+, Murderator

lokis
Posts: 15
Joined: 2009-04-30 07:41:38

add object

Post by lokis »

принципиально не хотел писать на форум,дабы не отвлекать учёные умы на ерунду,тут и так много всяких просьб,но делать больше нечего :oops:
всё облазил что вообще реально,но если никто не обьяснит-не понять никогда,всё что знаю-знаю из етого форума,и чужих скриптов,так что всё равно спасибо вам)
не пинайте ногами,или пинайте но обьясните хотябы
как оно работает? add object?
Sub Mark(RuneID,Place)
var mark_key = 0
uo.Print("Выбрасываем старую рунку... ")
uo.drophere(RuneID)
Uo.UseObject(RuneBags)
wait(500)
uo.findtype(rune,'-1',RuneBags)
if uo.FindCount() then
uo.moveitem("finditem",'-1','backpack')
wait(700)
else
var Emsg = "Нет пустых рунок!!"
FatalError(Emsg)
end if
while mark_key == 0
If Uo.Mana < 50 then
while Uo.Mana < Uo.Int
Uo.Useskill("Meditation")
wait(5000)
wend
endif
Uo.DeleteJournal()
wait(500)
Uo.Cast("Mark",'finditem')
wait(10000)
mark_key = 1
if Uo.Injournal("spell") then
mark_key = 0
endif
wend
mark_key = 0
Uo.WaitTargetObject('finditem')
if Place == 0 then
uo.Exec('addobject RuneSaife')
Uo.UseObject('RuneSaife')
wait(1500)
Uo.Say("RuneToSaife")
wait(2500)
else
uo.Exec('addobject RuneVesper')
Uo.UseObject('RuneVesper')
wait(1500)
Uo.Say("RuneToVesper")
wait(2500)
endif
end sub

это кусок из скрипта на скупку регов,марк рун,там он добавляет рунку через адобжект, предварительно она оговаривается в uo.findtype и потом она везде идёт как finditem а вот ето вот и добавляет её автотагетом присваивая имя
Uo.WaitTargetObject('finditem')
if Place == 0 then
uo.Exec('addobject RuneSaife')
Uo.UseObject('RuneSaife')

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

суть вопроса-как работает addobject?вообще реально его использовать для таких целей,добавления в скрипт нового предмета из имеющихся однотипных с присвоением ему имени?
про лут бэк читал...учебник тоже...по аналогии не работает...спросить не у кого... :cry:

скрипт обязательно выложу для всех если заработает :cry:
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

ну хоть кто нибудь?ну если не тут,то где ж ещё?
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Re: add object

Post by Kynep »

Вероятно вы забыли указать цель для таргета которая указывается командой UO.WaitTargetObject():

Code: Select all

sub add_rune()
   VAR tip = '0x0000' #Тип предмета, необходим для поиска.

   UO.FindType(tip, '-1', 'backpack')
   If UO.FindCount() > 0 then
      UO.WaitTargetObject('finditem')
      UO.AddObject('Rune')
   endif
end sub

Этим простым скриптом мы добавляем обьект с именем Rune и ID взятом из finditem, который в свою очередь, получен путем поиска предмета по типу в паке, все предельно просто.
Если не получиться так, то сделаем по синаксису команды:

Code: Select all

sub add_rune()
   VAR tip = '0x0000' #Тип предмета, необходим для поиска.

   UO.FindType(tip, '-1', 'backpack')
   If UO.FindCount() > 0 then
      UO.AddObject('Rune', 'finditem')
   endif
end sub
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

object updated kolbasa=0x000000
и сразу после анхндлд иксепшн ловиться
вообщем как и было,
и тагет указатель остаётся,жму после вылета на итем,пишет уже нормальную object updated kolbasa=0x387873,может из за того что в бак паке таких предметов много? :(
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

lokis wrote:object updated kolbasa=0x000000
и сразу после анхндлд иксепшн ловиться
вообщем как и было,
и тагет указатель остаётся,жму после вылета на итем,пишет уже нормальную object updated kolbasa=0x387873,может из за того что в бак паке таких предметов много? :(

А может проблема не в этом? Мой скрипт работает? Я просто не могу проверить, если мой работает, значит все должно быть ОК.
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

второй вариант работает!!! 8) :) 8)
а анхндлд парсер там из за чего может быть?
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

пасип) просто не успеваю и проверять и отвечать
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

lokis wrote:второй вариант работает!!! 8) :) 8)
а анхндлд парсер там из за чего может быть?

ХЗ, нужно скрипт смотреть, щас работает?
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

uo.addObject()

Не создает ожидания ответа от пользователя.

Т.е. команда не дожидается ответа от пользователя - то нельзя писать конструкцию, который привел автор:

Code: Select all

uo.Exec('addobject RuneSaife') 
Uo.UseObject('RuneSaife')


Нужно добавить паузу:

Code: Select all

uo.Exec('addobject RuneSaife') 
while uo.targeting()
    wait( 100 )
wend
Uo.UseObject('RuneSaife')
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

Kynep wrote:
lokis wrote:второй вариант работает!!! 8) :) 8)
а анхндлд парсер там из за чего может быть?

ХЗ, нужно скрипт смотреть, щас работает?

работает,но как всё сделает вылетает
uo.Print("!")
VAR tip = '0х0000' #Тип предмета, необходим для поиска.
UO.FindType(tip, '-1', 'backpack')
If UO.FindCount() > 0 then
UO.WaitTargetObject('finditem')
UO.AddObject('колбаса', 'finditem')
Uo.UseObject('колбаса')
....
....
...
wend
end sub
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Destruction wrote:uo.addObject()
Не создает ожидания ответа от пользователя.
Т.е. команда не дожидается ответа от пользователя - то нельзя писать конструкцию, который привел автор:

Ну он привел фрагмент чьего-то скрипта, так что претензии к аффтору. :)
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

вставил паузу,как сказали,попрежнему работает))))
только анхнлд тож осталась
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Может русское имя сменить на английское? И UO.WaitTargetObject('finditem') можно удалить, оно лишнее.
Last edited by Kynep on 2009-04-30 09:00:26, edited 1 time in total.
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

Kynep wrote:Может русское имя сменить на английское?

нормальное там имя :oops:
это я для консперации...
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

sub fasovka()
Var backpack = '0x403A50A2'
var emptybag = '0x400FFF5D'
var type1='0x0F85'#
var type2='0x0F7B'#
var type3='0x0F87'#
var type4='0x0F86'#
var type5='0x0F8D'#
var type6='0x0F88'#
var type7='0x0F84'#
var type8='0x0F8D'#
var type9='0x0E34'#
var type10='0x0F8C'
var type11='0x0F7A'
var type12='0x0E76'
var recall='0x1F4C'
VAR Ttov
uo.Print("идёт погрузка")
VAR tip = '0x0E76' #Тип предмета, необходим для поиска.
UO.FindType(tip, '-1', 'backpack')
If UO.FindCount() > 0 then
UO.WaitTargetObject('finditem')
UO.AddObject('bag', 'finditem')
while uo.targeting()
wait( 100 )
wend
Uo.UseObject('bag')
UO.FindType(type1, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type1,'-1','bag')
wend
UO.FindType(type2, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type2,'-1','bag')
wend
UO.FindType(type3, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type3,'-1','bag')
wend
UO.FindType(type4, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type4,'-1','bag')
wend
UO.FindType(type5, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type5,'-1','bag')
wend
UO.FindType(type6, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type6,'-1','bag')
wend
UO.FindType(type7, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type7,'-1','bag')
wend
UO.FindType(type8, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type8,'-1','bag')
wend
UO.FindType(type9, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type9,'-1','bag')
wend

UO.FindType(type10, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type10,'-1','bag')
wend

UO.FindType(type11, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(type11,'-1','bag')
wend

UO.FindType(recall, '-1', 'bag')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',backpack)
CheckLag()
Wait(1000)
UO.FindType(recall,'-1','bag')
wend
uo.Print("погрузка оконченна")
UO.MoveItem('bag','-1',emptybag)
CheckLag()
Wait(1000)
UO.FindType(recall,'-1','bag')

wend
end sub
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

вот оно,где ступил?
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

это кусочек только...запускаю самостоятельно...пока не менял ничего не вылетало...из за чего может быть?только не отправляйте в поиск,там общее,и спасиб за хелп :) работает ведь)
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Осмелюсь предложить другой вариант, т.к. этот слишком громоздкий и в принципе не нужный:

Code: Select all

sub fasovka()
   var emptybag = '0x400FFF5D'
   VAR i, ser
   Dim items[13]
   items[0] = '0x0F85'
   items[1] = '0x0F7B'
   items[2] = '0x0F87'
   items[3] = '0x0F86'
   items[4] = '0x0F8D'
   items[5] = '0x0F88'
   items[6] = '0x0F84'
   items[7] = '0x0F8D'
   items[8] = '0x0E34'
   items[9] = '0x0F8C'
   items[10] = '0x0F7A'
   items[11] = '0x0E76'
   items[12] = '0x1F4C'
   
   VAR meshok = '0x0E76' #Тип мешка.
   
   uo.Print("идёт погрузка")
   repeat
      UO.FindType(meshok, '-1', 'backpack')
      If UO.FindCount() > 0 then
         ser = UO.GetSerial('finditem')
         UO.UseObject(ser)
         wait(500)
         for i = 0 to 12
            UO.FindType(items[i], '-1', ser)
            If UO.FindCount() > 0 then
               repeat
                  CheckLag()
                  UO.MoveItem('finditem','-1', 'backpack')
                  Wait(1000)
                  UO.FindType(items[i], '-1', ser)
               until NOT UO.FindCount()
            endif
         next
         CheckLag()
         UO.MoveItem(ser, '-1', emptybag)
         wait(1000)
      else
         uo.Print("В паке пусто, выходим")
         UO.Exec('terminate fasovka')
      endif
      UO.FindType(meshok, '-1', 'backpack')
   until NOT UO.FindCount()
   uo.Print("Погрузка окончена!!")
end sub

В данном скрипте backpack это пак персонажа!!! Будте внимательней!
Last edited by Kynep on 2009-04-30 09:45:27, edited 1 time in total.
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

огромное человеческое спасибо) давно маюсь)
теперь рантайм еррор только :)
lokis
Posts: 15
Joined: 2009-04-30 07:41:38

Post by lokis »

это как то связанно с тем что у меня это кусочек скрипта (который кстати тоже большой и ненужный :D ) а дальше там ещё много чего делает чар?вылетает сразу после окончания фасовки..
Post Reply