|
sub () |
|
|
Aimed |
5.2.2015, 1:05
|
Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012 Группа: Пользователи Наличность: 7782
Пользователь №: 15.607
|
Господи, пиши нормально... а то сабики, да реколычи какие-то (IMG: style_emoticons/default/biggrin.gif) Цитата(kklej @ 4.2.2015, 15:06) Если честно, то я хочу сделать признание. Я прост хочу, чтобы вы мне помогли (IMG: style_emoticons/default/rolleyes.gif) Вот кусочек. Я не оч понимаю. Он отвечает за - чар стоит, а потом реколыч делает по рунной книжке. Перед этим перс взял инструмент. Поправьте пожалуйста! Код 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 Ещё есть метка - goto start. Скажите как и её сюда вернячёк вставить? Она отвечает, чтобы когда перс реколыч мутнул, чтобы он заново копать начал. Конкретно этого куска я тебе вставил старт туда куда ты его просишь, смотри на свой код из моей цитаты. ЧТо касается остального, ты нормально сформулируй своё требование, желательно без реколычей и сабиков, пожалуйста и я тебе помогу.
|
|
|
|
kklej |
5.2.2015, 1:24
|
Группа: Пользователи Наличность: 15391
Пользователь №: 13.346
|
оо спс большое за ответ! (IMG: style_emoticons/default/biggrin.gif) (IMG: style_emoticons/default/biggrin.gif) 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 Вот и мне даж стрём какой то спрашивать - можно ли этот кусочек использовать для нового Саба, чтобы его вставить в другое нужное место и улететь в шахту!
|
|
|
|
Aimed |
5.2.2015, 2:24
|
Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012 Группа: Пользователи Наличность: 7782
Пользователь №: 15.607
|
То код что ты только что скинул - полная лажа. Ты либо скидывай весь код что имеешь, либо конкретные блоки. А то тут while луп и if не полные - чёрти что короче. Что такое вообще next ?
Тот goto start, что я тебе вставил внизу, после рекола - ты неправильно вписал. Посмотри внимательно как я его тебе в if блок вставил.
Там идёт вызов рекола, потом задержка в 10 сек, а потом проверка на смену координат перса, если х и у координаты не изменились, рекол заного запускается, если изменились, тогда else goto start закрываем if блок через end if;
Теперь понятно?
Дальше: Вообще goto желательно не использовать, а то получается путаница, а-ля спагетти-код. Используй gosub (по-моему так, я в инже всего 1 раз писал код до этого). Разбиваешь свой код на действия, тоесть выводишь их в отдельные сабы. Одно действие - 1 саб. Потом делаешь главный саб, в котором и вызываешь свои сабы-действия и в главном сабе строишь уже последовательность действий своего кода с помощью остальных сабов и проверок.
RL_ka в сабы можно передавать параметры, а есть-ли функции, которые могут возвращать значения?
|
|
|
|
Aimed |
5.2.2015, 11:11
|
Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012 Группа: Пользователи Наличность: 7782
Пользователь №: 15.607
|
Цитата( @ 5.2.2015, 6:55) едрить у вас тут садом и гамора... не в даваясь с тонкости кода, если есть в паке золото - положить его на чек (аналог рунбука, используется через "реколл-номер кнопки") Код 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
Автор, сотри инжект со своего компа. Ну или хотя бы начинай с первого урока на yoko форуме. Это ад а не код. Тоесть сабом только булево возвращать можно, да ? kkklej, если ты не понимаешь что его код делает - пиши, я тебе объясню с комментариями. Этот пример написания кода, который я тебе на словах пытался объяснить.
|
|
|
|
Aimed |
8.2.2015, 1:02
|
Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012 Группа: Пользователи Наличность: 7782
Пользователь №: 15.607
|
Цитата(kklej @ 6.2.2015, 22:01) прив, хееелп! поздравляю всех с окончанием недели! суббота, воскресенье - два дня на отдых! чегот он прилетает в пещеру ок, но стоит, не копает. Код if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then goto reccal else goto na4alo endif end sub Очень рад. А где код от na4alo? Цитата(kklej @ 6.2.2015, 22:01) скажите добра, можно ли в новом сабе (в данном случае Sub Rekolka) к метке вернутца? Метка, как я уже сказал у меня в начале она - start: и пошла копка. А Саб я хочу вставить в кое какое место и в Сабе этом - вначале рекол в шахту, а потом срааззу же к метке start:
А то пишет - некорректное определение цикла в скрипте????!!!!!
Да, можно.
|
|
|
|
kklej |
8.2.2015, 16:39
|
Группа: Пользователи Наличность: 15391
Пользователь №: 13.346
|
вот! Код 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 вот, если не трудно!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|