Приив. Скажите пожалуйста выгоднее создать сабик или в коде уже шаманить?
номер строки 180, мож проверить? глянь там
ну не, мне надо из функции popa-primer() - вытащить улеталку по книге рунной.
далее код из popa-primer() поместить в новый сабик. А сабик уже вставить в код:
GetInst()
RegiCheck()
GrabRune()
popa-primer()
и чтобы в месте popa-primer() он реколился!
Функция include
если я угадал о чём ты, то советую лучше формулировать вопрос
thaaanks что помогаете! (love_smilik) <3
вот:
GetInst()
RegiCheck()
GrabRune()
popa-primer()
перс берёт инструмент, реги, руну и дальше popa-primer() отвечает за улёт обратно в шахту (по рунной книжке)!
вначале скрипта я мечу рунную книжку:
uo.print('Select your Runebook')
uo.exec('addobject Runebook')
while uo.targeting()
wait(100)
wend
а вот это:
uo.exec("recall Runebook 46") - отвечает за улёт.
Я хотел бы новый сабик создать, чтобы его всунуть потом в нужное место!
Если честно, то я хочу сделать признание. Я прост хочу, чтобы вы мне помогли
Вот кусочек. Я не оч понимаю. Он отвечает за - чар стоит, а потом реколыч делает по рунной книжке. Перед этим перс взял инструмент. Поправьте пожалуйста!
sub Rekolka()
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
uo.exec("recall Runebook 46")
wait(6500)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
end sub
Если комут не оч сложно, то хелпаните пожалуйста! Мне желательно, чтоб чар как возьмет лопату сразу был субик с реколычем в шахту и копкой. вот только нету кода с реколычем правельного. Хотелось бы чтобы вы помогли.
Господи, пиши нормально... а то сабики, да реколычи какие-то
sub Rekolka()
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
uo.exec("recall Runebook 46")
wait(6500)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
else
goto start
endif
end sub
оо спс большое за ответ! ok. Если честно, я люблю бананы, но я ещё не совсем обезьяна. Код чуток понимаю, но всё абыкак получаетца!
Вот если есть время то глянь! Это кусок скрипта, он отвечает за реколл к месту выгрузки, у меня это сундук.
А сейчас немножко кода:
loot()
wait(3000)
goto reccal
endif
next
wend
if uo.weight > 150 then
goto end
endif
wend
UO.DeleteJournal()
next
next
goto start
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21"); к сундуку
wait(10000)
loot()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94"); в шахту обратно
mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
goto start
end sub
То код что ты только что скинул - полная лажа. Ты либо скидывай весь код что имеешь, либо конкретные блоки. А то тут while луп и if не полные - чёрти что короче.
Что такое вообще next ?
Тот goto start, что я тебе вставил внизу, после рекола - ты неправильно вписал. Посмотри внимательно как я его тебе в if блок вставил.
Там идёт вызов рекола, потом задержка в 10 сек, а потом проверка на смену координат перса, если х и у координаты не изменились, рекол заного запускается, если изменились, тогда
else
goto start
закрываем if блок через
end if;
Теперь понятно?
Дальше:
Вообще goto желательно не использовать, а то получается путаница, а-ля спагетти-код.
Используй gosub (по-моему так, я в инже всего 1 раз писал код до этого).
Разбиваешь свой код на действия, тоесть выводишь их в отдельные сабы. Одно действие - 1 саб.
Потом делаешь главный саб, в котором и вызываешь свои сабы-действия и в главном сабе строишь уже последовательность действий своего кода с помощью остальных сабов и проверок.
RL_ka в сабы можно передавать параметры, а есть-ли функции, которые могут возвращать значения?
едрить у вас тут садом и гамора...
не в даваясь с тонкости кода, если есть в паке золото - положить его на чек (аналог рунбука, используется через "реколл-номер кнопки")
sub main(); стартовая процедура
check('1')
end sub
Sub check(x); скрытая процедура с параметром кнопки
if gold() then
uo.recall('0x40A5516A',x)
endif
end sub
Sub gold(); скрытая процедура возвращающая 1 при удачном и 0 при не удачном поиске
if UO.Count('0x0EED') then
return 1
else
return 0
endif
endsub
sub main(); стартовая процедура
check('1')
end sub
Sub check(x); скрытая процедура с параметром кнопки
if gold() thenш
uo.recall('0x40A5516A',x)
endif
end sub
Sub gold(); скрытая процедура возвращающая 1 при удачном и 0 при не удачном поиске
if UO.Count('0x0EED') then
return 1
else
return 0
endif
endsub
спасиибо! были значит аццкие скриптеры, а теперь back to the future
Aimed ну да, мне рунную книжку вставить надо! Можешь немножко объяснить пожалуйста?
uo.recall('0x40A5516A',x) - тут надо id книги вставить и номер кнопки?
Я сейчас проверю, ты пока не говори ничего!
прив, хееелп!
поздравляю всех с окончанием недели! суббота, воскресенье - два дня на отдых!
чегот он прилетает в пещеру ок, но стоит, не копает.
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
else
goto na4alo
endif
end sub
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
else
goto na4alo
endif
end sub
вот!
sub maning()
var mx, my, mz, i, j, jor, ser, noto
Uo.exec("set norbcheck 1"); для рекола
uo.exec("set norbcalc 1"); тоже
na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
ToHide()
UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait (500)
if uo.injournal("heavy") or uo.dead() then
endif
for jor = 0 to 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then
if uo.waiting() then
uo.canceltarget()
endif
Код от ToHide() где?
На экране видно вот это:
UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
Tohide() это же любимая пряяяталка вот -
Sub ToHide()
if not UO.Hidden() then
UO.Print('Уходим в stealth...')
UO.WarMode(0)
endif
while not UO.Hidden()
UO.UseSkill('Stealth')
wait(1000)
wend
end sub
end sub
На второй вопрос тоже ответь.
сейчас глюк поймал весомый с уокитом.
ну эт выводит на экран сообщение "Копаем..."
ещё наверное лучче в переменные кирку закинуть!
uo.print('Select pickaxe')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
uo.print('Select pickaxe')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
Аймед!!! Ну ты поможешь пожалуйста? Прост я уже запутался.
sub maning()
var mx, my, mz, i, j, jor, ser, noto
Uo.exec("set norbcheck 1"); для рекола
uo.exec("set norbcalc 1"); тоже
na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
ToHide()
UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait (500)
if uo.injournal("heavy") or uo.dead() then
endif
for jor = 0 to 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then
if uo.waiting() then
uo.canceltarget()
endif
На этом форуме очень много (а на yoko еще больше) скриптов на копание и на добычу в принцие. От тяжелых строк за тыщу до простых процедур - взял инструмент-долблю в ласттаргет.
Aimed прав, если у тебя нет четкого представления что ты хочешь чтобы скрипт делал + ты еще и такими канделябрами пишешь как человеки вообще могут тебе помочь?
Это же базовое программирование. Описывай по пунктам алгоритм:
Мне надо чтобы чар добрал инструменты взял тото и тото, перелетел в пещеру таким то образом (рунка, книга, откуда брать как кастовать), проверил тото и тото, начал копать там то и там то... Скрипт сам по волшебству сложится.
Начинай с простых процедур которые проверяются по отдельности.
Запустил процедуру - чар открыл сундук, взял кирку, взял ДВА реагента на перелет. Поправил чтобы брал три реагента. Все работает как надо. Запускаешь процедуру перелета. Перелетел - запускаешь копание. Выкопал, запускаешь возврат...
А потом будешь дописывать всякие свистелки перделки в виде проверок на перелет по GetX и GetY, решение антимакрос задач и прочее.
спс что помогаете. скажите ешо - зачем нужен трек мировых вещей? вы знали, что инжект чем то на яву-скрипт похожь? и ешр - все же как через меточку вернутца к субу, в котором идет начало копки?
трек мировых вещей делает то за что его так обозвали - следит за вещами окружающими чара.
Без галки нельзя открывать контейнеры на земле, брать на прицел НПС или других игроков. Если предметов очень большое количество - как любят засирать себе дома некоторые личности - может привести к крашу. Ждя добычи она не нужна. Для убийства или обхода препятствий - нужна.
Как "врубатца к субу" я уже показал. Какой скрипт ты хочешь сделать опиши - покажут как это сделать.
спс. мне над следующее:
как ток перс воскресился, летит на метле к сундуку за инструментом, а потом обратно в пещеру и - начинаем копать! вот, гляньте пожалуйста!
мне надо правильно вставить реколл в шахту и чтобы опять начал копать!
что лучче сделать - суб новый для реколла в шахту и начало копки, или как то по другому?
вот, я сказал чего мне надо! подскажите пожалуйста.
хелп!
тут есть метка - na4alo:
var Runebook2='0x403ADD4B' # Для рекола домой.
var Runenr='46' # Номер руны.
var Chest='0x404E5DF9' # Сундук с инструментами.
var helpX=1868 # Переменные без кавычек!
var helpY=50 # Переменные без кавычек!
sub maning()
var mx, my, mz, i, j, jor, ser, noto
Uo.exec("set norbcheck 1"); для рекола
uo.exec("set norbcalc 1"); тоже
uo.print('Select pickaxe! ')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
uo.print('Select Runebook! ')
uo.exec('addobject Runebook')
while uo.targeting()
wait(100)
wend
if not uo.getglobal('flagRes')=='1' then
uo.exec('exec Resurrector')
uo.setglobal('flagRes','1')
endif
na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
while not UO.Hidden()
UO.Warmode("0")
uo.print("Hiding...")
UO.UseSkill("Hiding")
wait(4000)
wend
UO.Print("Dig in coordinates: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here|location|far away|in rock|Iron Ore|Copper|Rusty Ore")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
while not UO.InJournal("You put|heavy|location|no ore|but fail|far away|in rock")
wait (500)
for jor = 0 to 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then
if uo.waiting() then
uo.canceltarget()
endif
loot()
wait(3000)
goto reccal
endif
next
wend
if uo.weight > 650 then; Максимальный вес при котором домой с рудой
goto end
endif
wend
UO.DeleteJournal()
next
next
goto na4alo
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21"); home
wait(10000)
loot()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94"); cave
mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
goto na4alo
end sub
sub loot()
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
VAR UnloadCont='0x403B3732'
DIM Ore[10]
Ore[0]=0x19B9; 4 and more ore
Ore[1]=0x19B7; 1 ore
Ore[2]=0x19BA; 2 ore
Ore[3]=0x19B8; 3 ore
Ore[4]=0x0F15; citrine
Ore[5]=0x0F26; a diamond
Ore[6]=0x0F18; turmalin
Ore[7]=0x0F10; emerald
Ore[8]=0x0F11; saphire
Ore[9]=0x0F0F; star saphire
Ore[10]=0x0F16; ametist
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 10
Exit=0
repeat
UO.FindType(Ore[a])
CheckLag()
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
end sub
sub checklag()
repeat
UO.DeleteJournal()
UO.Click('backpack')
until backpack()==1
endsub
sub backpack()
var n
for n=0 to 200
if uo.injournal('a backpack') then
return 1
endif
wait(200)
next
endsub
sub GetPickaxe()
var n
dim instrument[4]
instrument[1]='0x0F39'
instrument[2]='0x0F3A'
instrument[3]='0x0E86'
instrument[4]='0x0E85'
if uo.count('0x0F39')==0 and uo.count('0x0F3A')==0 and uo.count('0x0E86')==0 and uo.count('0x0E85')==0 then
for n=1 to 4
uo.findtype(instrument[n],-1,Chest)
if uo.findcount() then
pickaxe=uo.getserial('finditem')
uo.moveitem('finditem',0,'backpack')
checklag()
wait(700)
return
endif
next
else
for n=1 to 4
uo.findtype(instrument[n],-1,'my')
if uo.findcount() then
pickaxe=uo.getserial('finditem')
return
endif
next
endif
while 1
uo.print(' pickaxe not found ')
wait(3000)
wend
endsub
sub Open(what)
uo.useobject(what)
checklag()
wait(700)
endsub
sub Rekolka()
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
uo.exec("recall Runebook 46")
wait(6500)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
else
goto na4alo
endif
end sub
спасиииб Мираж и Аимед!!! Вы попали в блокнотик добрых людей даа. Оказываетца всё было просто, надо было addobject выкинуть и через uo.recall делать штучки. Сейчас как ошпаренный всё делает
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)