Не получается использовать setglobal() и getglobal, мож я че неплаьно делаю:
sub Mining()
uo.setglobal('per1', '0')
uo.print('Укажите сундук с регами, кирками, инвизками, манками')
uo.exec('addobject Sunduk1')
while uo.targeting()
wait(100)
wend
..............
...............
DropOre()
end sub
sub DropOre()
if uo.getglobal('per1') == 1 then
DIM Ore[4]
Ore[0] = '0x19B9'
Ore[1] = '0x19B7'
Ore[2] = '0x19BA'
Ore[3] = '0x19B8'
for var a = 0 to 3
uo.findtype(Ore[a])
while uo.findcount() > 0
uo.moveitem('finditem', '-1', 'Sunduk2')
wait(1000)
uo.findtype(Ore[a])
wend
next
endif
uo.setglobal('per1', '1')
end sub
Задумка была такова, чтоыб при первом запуске скритп не срабатывал, а при последующем (не через саб minimg) срабатывал, вот только он ни так ни этак не работает.
Не получается использовать uo...global(****
Moderators: Murderator+, Murderator
-
- Posts: 308
- Joined: 2005-07-17 15:30:52
- Location: www.drw.ru
Все просто:
uo.setglobal('per1', '0') - этой командой ты запихиваешь в глобалку 0 строкой.
uo.getglobal('per1') == 1 - тут ты берешь строку из глобалки и пытаешься ее сравнивать с числом. Преобразование строки в число по умолчанию всегда 0, ноль всегда не равен единице...
Что надо поправить, догадаешься сам?
uo.setglobal('per1', '0') - этой командой ты запихиваешь в глобалку 0 строкой.
uo.getglobal('per1') == 1 - тут ты берешь строку из глобалки и пытаешься ее сравнивать с числом. Преобразование строки в число по умолчанию всегда 0, ноль всегда не равен единице...
Что надо поправить, догадаешься сам?

-
- Posts: 308
- Joined: 2005-07-17 15:30:52
- Location: www.drw.ru
Вы меня запутали, лан буд разбираться что она делает методом тыка, а вообще я не програмист и всего неделю от силы пытаюсь написать что нить стоящее, ничего в этом не шаря, должно быть так?
sub Mining()
uo.setglobal('per1', 'abd')
uo.print('Укажите сундук с регами, кирками, инвизками, манками')
uo.exec('addobject Sunduk1')
while uo.targeting()
wait(100)
wend
..............
...............
DropOre()
end sub
sub DropOre()
if uo.getglobal('per1') == 'abc' then
DIM Ore[4]
Ore[0] = '0x19B9'
Ore[1] = '0x19B7'
Ore[2] = '0x19BA'
Ore[3] = '0x19B8'
for var a = 0 to 3
uo.findtype(Ore[a])
while uo.findcount() > 0
uo.moveitem('finditem', '-1', 'Sunduk2')
wait(1000)
uo.findtype(Ore[a])
wend
next
endif
uo.setglobal('per1', 'abc')
end sub
Можно сделать как нить так чтобы она с числами работала, тк удобнее?
sub Mining()
uo.setglobal('per1', 'abd')
uo.print('Укажите сундук с регами, кирками, инвизками, манками')
uo.exec('addobject Sunduk1')
while uo.targeting()
wait(100)
wend
..............
...............
DropOre()
end sub
sub DropOre()
if uo.getglobal('per1') == 'abc' then
DIM Ore[4]
Ore[0] = '0x19B9'
Ore[1] = '0x19B7'
Ore[2] = '0x19BA'
Ore[3] = '0x19B8'
for var a = 0 to 3
uo.findtype(Ore[a])
while uo.findcount() > 0
uo.moveitem('finditem', '-1', 'Sunduk2')
wait(1000)
uo.findtype(Ore[a])
wend
next
endif
uo.setglobal('per1', 'abc')
end sub
Можно сделать как нить так чтобы она с числами работала, тк удобнее?
Эх, ну тебе надо же всего лишь в первом скрипте подставить кавычки:
И всех делов-то... Ну а если тебе очень хочется именно числом, то тогда так:
Вообще, когда пользуешься хелпом, весьма настойчиво рекомендую обращать внимание на обозначение перед именем функции:
Тут написано 'text' - это то, в каком виде функция возвращает значение.
Code: Select all
if uo.getglobal('per1') == '1' then
И всех делов-то... Ну а если тебе очень хочется именно числом, то тогда так:
Code: Select all
if val(uo.getglobal('per1')) == 1 then
Вообще, когда пользуешься хелпом, весьма настойчиво рекомендую обращать внимание на обозначение перед именем функции:
Синтакс: text uo.GetGlobal(name)
Тут написано 'text' - это то, в каком виде функция возвращает значение.