Открыть сундук , Подскажите
11 лет
Ranger
Сообщений: 53
Рег. 17.02.2013
9 марта 2013 18:16
Сообщение #1
Немогу понять как открыть в сундуке мешок.
Как запускаю скрипт он открывает сундук а мешок который лежит в сундуке почемуто не открывает.
Подскажите что я зделал не правильно в этом скрипте и отредактируйте плиз
вот скрипт

sub Fasovka()

VAR Sunduk1 = '0x40EA10F8'
var mesh = '0x405480EA'

UO.Set('finddistance','2')

UO.FindType('Sunduk1','-1','ground')
if UO.FindCount() > 0 then
   if uo.getserial('finditem') == Sunduk1 then
    uo.useobject('finditem')
    uo.setreceivingcontainer(Sunduk1)
    wait(1000)
     UO.FindType('mesh','-1','Sunduk1')
if UO.FindCount() > 0 then
   if uo.getserial('finditem') == mesh then
    uo.useobject('finditem')
         uo.setreceivingcontainer(mesh)
  end if
end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
9 марта 2013 18:38
Сообщение #2
используйвот это
http://nmy.id.lv/codesweeper.htm
если в скрипте что-то пропущено, то end sub не будет в самом начале строки.
В твоем скрипте есть 4 "if" и всего 1 "end if"
11 лет
Ranger
Сообщений: 53
Рег. 17.02.2013
9 марта 2013 19:05
Сообщение #3
Непонимаю а куда их вставлять то все енд иф?
Я в конце енд иф поставил что если он возьмёт координаты с последнего ящика то скрипт закрывается.


sub Fasovka()
    VAR Sunduk1 = '0x40EA10F8'
    var mesh = '0x405480EA'
    UO.Set('finddistance','2')
    UO.FindType('Sunduk1','-1','ground')
    if UO.FindCount() > 0 then
        if uo.getserial('finditem') == Sunduk1 then
            uo.useobject('finditem')
            uo.setreceivingcontainer(Sunduk1)
            wait(1000)
            UO.FindType('mesh','-1','Sunduk1')
            if UO.FindCount() > 0 then
                if uo.getserial('finditem') == mesh then
                    uo.useobject('finditem')
                    uo.setreceivingcontainer(mesh)
                end if
            end sub


И я заметил что если стоиш около несколько сундуков то он пишет что нашол типо 5 штук таких..
Хотя ИД же стоит что нужен именно 1 только.
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
9 марта 2013 19:13
Сообщение #4
Цитата: Betrazen
UO.FindType

ты ищешь тип, а указываешь ИД, а не тип
команда if двойная, т.е. на каждый if длжен быть end if
Генерал Полковник (37807901)13 летИнквизитор
Inquisitor
Сообщений: 792
Рег. 27.06.2011
9 марта 2013 19:18
Сообщение #5
sub Fasovka()
    VAR Sunduk1 = '0x40EA10F8'
    var mesh = '0x405480EA'
    UO.Set('finddistance','2')
    UO.FindType(uo.GetGraphic(Sunduk1),'-1','ground')
    if UO.FindCount() then
        if uo.getserial('finditem') == Sunduk1 then
            uo.useobject('finditem')
            wait(1000)
            UO.FindType(uo.GetGraphic(mesh),'-1',Sunduk1)
            if UO.FindCount() then
                if uo.getserial('finditem') == mesh then
                    uo.useobject('finditem')
                    wait(1000)
                    uo.setreceivingcontainer(mesh)
                end if
                endif
                endif
                endif
            end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
9 марта 2013 19:24
Сообщение #6
Fiz Pok, если рядом несколько сундуков, то скрипт затупит, как мне кажется )

хотя хз, я так не делал )
Капитан (8078332)15 лет
Dragonstalker
Сообщений: 3333
Рег. 5.09.2009
9 марта 2013 19:31
Сообщение #7
sub Fasovka()
    VAR Sunduk1 = '0x40EA10F8'
    var mesh = '0x405480EA'
  
            uo.useobject('Sunduk1 ')
            wait(1000)
            uo.useobject('mesh')
            end sub


почему так нельзя? нужно только к сундуку подойти
11 лет
Ranger
Сообщений: 53
Рег. 17.02.2013
9 марта 2013 19:51
Сообщение #8
Проверил от физ пока нифега. Когда стою с другими сундуками он даже не открывает тот который должен открывать. А если стою на едине с этим сундуком то тогда норм. Но мешок всё ещё не открывает.


Митако а какой командой можно найти Айди?
Капитан (8078332)15 лет
Dragonstalker
Сообщений: 3333
Рег. 5.09.2009
9 марта 2013 19:57
Сообщение #9
не забывай про радиус и доступность сундука.

,info
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
9 марта 2013 19:59
Сообщение #10
Betrazen, вообщем тебе точно надо именно такой скрипт? Я знаю решение, но оно замудренное
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
9 марта 2013 20:01
Сообщение #11
http://forum.yoko.com.ua/viewtopic.php?f=20&t=17146
Генерал Полковник (37807901)13 летИнквизитор
Inquisitor
Сообщений: 792
Рег. 27.06.2011
9 марта 2013 20:14
Сообщение #12
все проще гораздо: если несколько
sub Fasovka()
    VAR Sunduk1 = '0x40EA10F8'
    var mesh = '0x405480EA'
    UO.Set('finddistance','2')
    UO.FindType(uo.GetGraphic(Sunduk1),'-1','ground')
    while UO.FindCount()
uo.ignore('finditem')
        if uo.getserial('finditem') == Sunduk1 then
            uo.useobject('finditem')
            wait(1000)
            UO.FindType(uo.GetGraphic(mesh),'-1',Sunduk1)
           while UO.FindCount()
uo.ignore('finditem')
                if uo.getserial('finditem') == mesh then
                    uo.useobject('finditem')
                    wait(1000)
                    uo.setreceivingcontainer(mesh)
                end if
            UO.FindType(uo.GetGraphic(mesh),'-1',Sunduk1)
                wend
                endif
               UO.FindType(uo.GetGraphic(Sunduk1),'-1','ground')
             wend
uo.ignorereset()
            end sub

а вообще - согласен с Паркером
11 лет
Ranger
Сообщений: 53
Рег. 17.02.2013
10 марта 2013 02:36
Сообщение #13
sub Fasovka()

VAR Sunduk1 = '0x40EA10F8';сундук с мешками
VAR Sunduk3 = '0x402FE8A0' Мой бакпэк
VAR Sunduk2 = '0x405480EA';ñóíäóê ñ ìåøêàìè
VAR Mesh1 = '0x40F87F90';1 мешок
VAR Mesh2 = '0x405480EA';2 ìåøîê
VAR Mesh3 = '0x40F87F90';3 ìåøîê
VAR Mesh4 = '0x40547A24';4 ìåøîê
DIM R[56]
var a

R[1] = '0x1067';êîæà
R[2] = '0x19B9';ðóäà
R[3] = '0x19B7';ðóäà
R[4] = '0x19BA';ðóäà
R[5] = '0x1BDD';ëîãè

R[6] = '0x108A';êîëüöà
R[7] = '0x1087';ñåðüãè
R[8] = '0x1088';îïôèä. îæåðåëüå
R[9] = '0x1086';áðàñëåòû
R[10] = '0x1085';ëèçàðä áóñû
R[11] = '0x0F26'
R[12] = '0x0F25'
R[13] = '0x0F13'
R[14] = '0x0F11'
R[15] = '0x0F18'
R[16] = '0x0F15'
R[17] = '0x0F10'
R[18] = '0x0F16'

R[19] = '0x0F60';ëîíã ñâîðä
R[20] = '0x13B5';ñêèìèòàð
R[21] = '0x143C';õàìåðïèê
R[22] = '0x13FE';êàòàíà
R[23] = '0x143A';ìàóë
R[24] = '0x1404';âèëêà
R[25] = '0x13B1';ëóê
R[26] = '0x1400';êðèññ
R[27] = '0x1402';ïèêà
R[28] = '0x13B9';âèêèíã ñâîðä
R[29] = '0x143E';àëåáàðäà
R[30] = '0x13FC';àðáàëåò

R[31] = '0x0F7B';ÁÌ
R[32] = '0x0F86';ÌÐ
R[33] = '0x0F7A';ÁÏ
R[34] = '0x0F88';ÍÑ
R[35] = '0x0F8C';ÑÀ
R[36] = '0x0F84';ÃÀ
R[37] = '0x0F8D';ÑÑ
R[38] = '0x0F85';ÃÑ
R[39] = '0x0F8E';ñåðïåíò ñêàëå
R[40] = '0x0F78';áåòâèíãè
R[41] = '0x0F83';ñåðäöà
R[42] = '0x09B5';ÿéöà
R[43] = '0x0F8F';âóëêàíèê àø
R[44] = '0x0F91';âèðìõàðòû
R[45] = '0x0F7C';áëóäñïàóí
R[46] = '0x0F79';áëåêìóð
R[47] = '0x0F87';ãëàçèêè
R[48] = '0x0F8A';ïèãàéðîí
R[49] = '0x0F7E';êîñòè (ñêåëåòû, ïàëû)
R[50] = '0x0F80';êîñòè (äåìîí)
R[51] = '0x0F82';äðàãîí áëàä è àíàëîãè÷íûå
R[52] = '0x0F7F';áðèìñòîóí
R[53] = '0x0F90';äåäâóäû
R[54] = '0x0F8B';ïóìèñ
R[55] = '0x0F89';îáñèäèàí
R[56] = '0x09F1';ìÿñî

    UO.Set('finddistance','2')
    UO.FindType(uo.GetGraphic(Sunduk1),'-1','ground')
    while UO.FindCount()
uo.ignore('finditem')
        if uo.getserial('finditem') == Sunduk1 then
            uo.useobject('finditem')
            wait(1000)
            UO.FindType(uo.GetGraphic(Mesh2),'-1',Sunduk1)
           while UO.FindCount()
uo.ignore('finditem')
                if uo.getserial('finditem') == Mesh2 then
                    uo.useobject('finditem')
                    wait(1000)
                    uo.setreceivingcontainer(Mesh2)
                end if
            UO.FindType(uo.GetGraphic(Mesh2),'-1',Sunduk1)
                wend
                endif
               UO.FindType(uo.GetGraphic(Sunduk1),'-1','ground')
             wend
uo.ignorereset()

uo.setreceivingcontainer('Mesh2')
uo.DeleteJournal()
for a=6 to 18
uo.findtype(R[a],"-1",'Sunduk3')
if uo.FindCount()>0 then
while uo.FindCount()>0
uo.findtype(R[a],"-1",'Sunduk3')
UO.Grab("0","finditem")
wait(1000)
wend
endif
next

end sub


Ребят я тут намудрил с тем что вы мне дали и получилось то что хотелось.
Но такое ощющение что скрипт можно сделать намного легче и чтоб он легче работал.
Крашит очень очень часто в данный момент не пойму почему.
11 лет
Ranger
Сообщений: 53
Рег. 17.02.2013
10 марта 2013 02:37
Сообщение #14
То что я хочю в скрипт добавить это чтоб например в другой мешок он ложил другие вещи но как это правильно соединить я не понимаю. Я пробовал, скрипт впринципе работал но почемуто краш за крашом.
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
10 марта 2013 11:33
Сообщение #15
Betrazen, сделай один массив на 1 сундук, второй массив на второй сундук. Открыл первый - выгрузил, начал искать. открывать второй и в него выгружать через второй массив
11 лет
Ranger
Сообщений: 53
Рег. 17.02.2013
10 марта 2013 14:07
Сообщение #16
Как я по твоим словам понял то нужно сделать примерно так.

    UO.Set('finddistance','2')
    UO.FindType(uo.GetGraphic(Sunduk1),'-1','ground')
    while UO.FindCount()
uo.ignore('finditem')
        if uo.getserial('finditem') == Sunduk1 then
            uo.useobject('finditem')
            wait(1000)
            UO.FindType(uo.GetGraphic(Mesh2),'-1',Sunduk1)
           while UO.FindCount()
uo.ignore('finditem')
                if uo.getserial('finditem') == Mesh2 then
                    uo.useobject('finditem')
                    wait(1000)
                    uo.setreceivingcontainer(Mesh2)
                end if
            UO.FindType(uo.GetGraphic(Mesh2),'-1',Sunduk1)
                wend
                endif
               UO.FindType(uo.GetGraphic(Sunduk1),'-1','ground')
             wend
uo.ignorereset()

uo.setreceivingcontainer('Mesh2')
uo.DeleteJournal()
for a=6 to 18
uo.findtype(R[a],"-1",'Sunduk3')
if uo.FindCount()>0 then
while uo.FindCount()>0
uo.findtype(R[a],"-1",'Sunduk3')
UO.Grab("0","finditem")
wait(1000)
wend
endif
next


а потом после строчки некст просто скопировать всё и переделать для другого сундука.

11 лет
Ranger
Сообщений: 53
Рег. 17.02.2013
10 марта 2013 14:08
Сообщение #17
    UO.Set('finddistance','2')
    UO.FindType(uo.GetGraphic(Sunduk1),'-1','ground')
    while UO.FindCount()
uo.ignore('finditem')
        if uo.getserial('finditem') == Sunduk1 then
            uo.useobject('finditem')
            wait(1000)
            UO.FindType(uo.GetGraphic(Mesh3),'-1',Sunduk1)
           while UO.FindCount()
uo.ignore('finditem')
                if uo.getserial('finditem') == Mesh3 then
                    uo.useobject('finditem')
                    wait(1000)
                    uo.setreceivingcontainer(Mesh3)
                end if
            UO.FindType(uo.GetGraphic(Mesh3),'-1',Sunduk1)
                wend
                endif
               UO.FindType(uo.GetGraphic(Sunduk1),'-1','ground')
             wend
uo.ignorereset()

uo.setreceivingcontainer('Mesh3')
uo.DeleteJournal()
for a=18 to 30
uo.findtype(R[a],"-1",'Sunduk3')
if uo.FindCount()>0 then
while uo.FindCount()>0
uo.findtype(R[a],"-1",'Sunduk3')
UO.Grab("0","finditem")
wait(1000)
wend
endif
next


Этот массив щяс например от 18 итема до 30.
А в массиве выше с 6 до 18? Но я так пробовал юзать скрипт почемуто сильно крашит. чють ли не при каждом использование
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
10 марта 2013 15:35
Сообщение #18
убрал
13 лет
Ranger
Сообщений: 1043
Рег. 18.06.2011
11 марта 2013 09:59
Сообщение #19
Капец вы настрогали...

UO.FindType(uo.GetGraphic(Mesh3),'-1',Sunduk1)
не будет работать, т.к. он найдет тип заданного мешка но потом будет работать с ID а оно может не совпасть если рядом лежит еще один мешок.

В чем проблема использовать

PUTLoot2(0x1085, 0x108b, '-1', SundLoot, SundBi,'','','') ; бижутерия
PUTLoot2(0x1f05, 0x1f0a, '-1', SundLoot, SundBi,'','','') ; бижутерия
PUTLoot2(0xf0f, 0xf30, '-1', SundLoot, SundBi,'','','') ; камни
PUTLoot2(0x1f19, 0x1f5c, '0', SundLoot, SundS,'','','') ; scroll 1-6

эти строчки обрабатывают ВСЮ бижутерию, ВСЕ камни и ВСЕ свитки 1-6 уровней.
Хоть 100 РАЗНЫХ мешков.

А если дозхрена баз то сделать
sub razklad1()
sub razklad2()

Не любитесь с деревянным одноколесным велосипедом. Ну в крайнем случае можно использовать разноцветные мешки (если у вас тут они есть).
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
11 марта 2013 10:27
Сообщение #20
Alucard, мы с тобой на ёко общались на эту тему. Твой вариант не подходит, если разгрузка в нескольких местах. У меня сейчас, к примеру, 3 таких места. Делать 3 разных саба и биндить их на кнопки, потом вспоминать что куда для меня неприемлемо
Последние посетители (0):

 
Сейчас: 25 ноября 2024 23:35