Настроенный бот для 5 сервера можно скачать с сайта http://www.lineage.ru/L2Walker.rar
Для запуска бота нужно добавить в файл C:\WINDOWS\system32\drivers\etc\hosts
Следующие строки ->
127.0.0.1 vip.tt2xz.com
127.0.0.1 vip1.tt2xz.com
127.0.0.1 vip2.tt2xz.com
127.0.0.1 vip3.tt2xz.com
127.0.0.1 vip4.tt2xz.com
127.0.0.1 vip5.tt2xz.com
127.0.0.1 vip6.tt2xz.com
127.0.0.1 vip7.tt2xz.com
Распаковать архив, запустить patcher.exe, затем сам L2Walker.exe
Настройка бота:
Basik Option. (главные настройки)
Окно General
Relogin - при дисконнекте подключаеться снова.
Delay - задержка перед повторными попытками подключения.
Death Retyrn - возвражение в город при смерти.
Death Logaut - уходит в логаут при смерти бота(чтоб ваш бот не валялся на поляне по 12 часов)
Char Login Delay - задержка после выбора персонажа(эмуляция разумной деятельности - человек не мгновенно выбирает перса за которого будет играть)
Login Game Delay - время ввода пароля и пасса(снова эмуляция деятельности человека - игрок не может ввести пароль мгновенно)
Enable Login Delay - использовать настройки ввода логина(использовать задержки входа)
Oкно SOCKS5 Proxy
Тут все понятно без разьяснений. Для любителей анонимного ботоводства.
Окно Down Level
Тут настройки делевинга.(Немного истории: боты были в принципе созданы для фарма адены, а не для кача. Игрок качался до 20 лвл и одевал топовые шмотки из Д-град и оставался пожизнено на 20 лвл. Так как мог очень продуктивно уничтожать мобов 18-20 лвл и зарабатывать в час по 15-25к адены а затем перепродавать её за реал. Это было весьма прибыльно особенно на первых порах, когда за 100к адены давали 100$ на офф сервере)
Attack NPC - делевиться путем атаки охранников у города.
Lvl>ХХ при левеле выше указанного атаковать НПС( в раскрывающейся строке указываються ники НПС из доступных
Oкно Abnormyty Buff
Использование баффов при ранении скиллом Bleed и использование антидотов при отравлении - Self-Cures poison
Die After - после смерти использовать скрипт путь к ктоторому указываеться в окошке Run Script
Например можно написать скрипт чтобы после смерти бежал снова к месту кача и продолжал лупить мобов.
Heal Options (Настройка лечения)
Окно Sit(садиться)
Use Relax Skill - использовать скилл релакс при отдыхе(для хуманов)
HP<ХХ% or MP<ХХ% - садиться при заданных условиях(в процентах, т.е. больше 100 нельзя ставить или только в особо оговоренных случаях) Если ничего не указать то бот будет драться с мобами до тех пор пока не помрет.
Окно Stand(вставать)
HP>ХХ% or MP>ХХ% - всnавать при указанных условиях(в процентах, т.е. больше 100 нельзя ставить или только в особо оговоренных случаях) К Примеру вам нужно оставаться в сидячем положении после полного восстановления - тогда нужно указать величину превышающую 100 в любом из окон в рамке Stand
Если ничего не указывать то бот будет вставать после полного восстановлении жизни и маны
Окно HP/MP Protect
Use Pots - использовать бутылки хилинга при HP меньше указанного (в %)
Справа есть столбец под названием Use In Combat - использовать во время боя - бутылки ВСЕГДА нужно использовать во время боя иначе бота посто прибьют.
Еще правее есть колонка Delay - Задержка перед следующим применением - для хилингов составляет
10 секунд - столько действует лечилка.
Чуть пониже есть выбор условий для сохранения МП - на некоторых серверах в продаже есть ManaDrug - колбочки вроде лечилок но восстанавливающих ману(синего цвета) думаеться мне что можно их использовать и в боте.
Окно Protect
HP<ХХ% - Logaut - бот автоматичеси оборвет коннект с сервером и уйдет в логаут если его ХП станет меньше указанного и попытаеться зайти снова после указанного в окошке времени(по дефолту 60 секунд) Еще правее стоит количество таких перезаходов(если место плохое и вашего бота там часто подводят к смерти то попыток начать заново будет указанное количество)
HP<ХХ% Flee - попытаться убежать от моба(куда побежит не знаю, никогда этот пункт не ставлю)
Run When Surrounded By - убегать если на вас напало ХХ мобов(этот пункт не подходит для мест где полно агро мобов - бота скорее всего убьют, в любом случае лучше качаться в местах где вы можете выдержать не менее 3-х мобов одновременно, используя Соулшоты и лечилки).
Buff
Окно Use Items – использование СС, СПС, БСПС при условиях
Target HP – при повреждении ХП более чем указано за указаноое время
Target LV – при атаке мобов с уровнем указанным в окне
Self HP<ХХ - при ХП меньше указанного( тут полные единицы жизни, а не % как в других настройках)
Surrounde – при окружении мобами в указанном количестве
Окно Self Buff Setting – использование баффов на себя
В раскрывающихся окнах выбираються баффы которые вы будете использовать на себя(доступны после подключения бота к серверу)
Справа пункт(ы) Delay - задержка перед повторным баффом
Еще правее MP> - условие что бафф используеться только если MP больше указанного
Dwarf – дварфы
Use Auto Sweep – использование спойла и свипа дварфом
Auto Make – использовать рецепт при МП равном указанному или больше(рецепты должны лежать в инвентаре. Удобно для крафта СС/СпС/БСпС и т.д.
Party Setting (Настройка партии)
Окно Healer Settings – Настройка Хилера
Sleep When Helper – рутит мобов помогая указанному (вписать ник игрока учитывая большие и маленькие буквы в его нике)
При МП меньше указанного (У кого?) и МП больше указанного(у кого?) не усыплять - условия не понятны так и не смог разобраться что к чему - хилер рутит одного моба столько раз сколько успевает пока моба не убьют.
Send Party Invite – Посылать приглашение в партию указанному игроку( Игроку с указанным ником будет постоянно приходить приглашение в партию)
Окно Follow Attack – следовать атаке
Active Follow Attack – атаковать тогоже кого атакует ведущий(имя ведущего указываеться в меню Follow Setting
Dont Solo counterAtck mons – не контратаковать монстров в одиночку(Например ведущего убили)
Attack When Healer Selected Target – атаковать когда Хилер выбирает цель (Хилер ведущий и при этом только выбирает цель, а пати атакует выбранного моба. Хилер может быть как на боте так и живым игроком с пати состоящей из ботов)
Protect Men – Защащать указанного игрока.(Нарпимер укажите ник Хилера или ценного для пати игрока и если на него нападают мобы то вся пати(боты) нападают на атакующего моба не зависимо на кого они нападали до этого)Не должно противоречить другим настройкам - боты впадут в ступор если мобы нападают на игрока из Protect Man и одновременно боты настроены на Active Follow Attack и при этом Игрок прописанный в строчке с Active Follow Attack не настроен на защиту игрока в строке Protect Man.
Другими словами если вы используете Protect Man то все участники пати должны быть на это настроены.
Окно Helper Setting – Настройка помошника
When Be Attaked Run Behind – при атаке указанного игрока он будет убегать от моба(в каких пределах - незнаю)
Auto Res Party Plauer > МП Резуректить при МП больше указанного(если в пати есть хилер с резуректом то он автоматически поднимет умершего товарища )
Allow Use Item – использовать скролл резуректа - если в пати нет хилера с резуректом то один из членов пати воспользуеться скроллом резуректа
Follow Healer Sit – садиться вместе с хилером(как только у хилера есть нужда отдохнуть и при этом хилер являеться ведeobv(он прописан в строке Folow Name)
Follow Healer Action – вставатьза хилером после его отдыха.
Окно Follow Setting – настройки следования
Active Follow – активное следование за игроком указанным в строчке Follow Name
Follow Distance – дистанция следования - расстояние на котором будут бегать боты за ведущим(если ботов несколько то указывайте разное рассояние иначе со стороны будет глупо выглядеть)
Cur Target – дистанция атаки - при атаке боты отходят от атакуемого обьекта на указанное расстояние(например нужно чтобы первым атаковал танк, а моб являеться агрессивным - нужно предотвратить слишком близкий подход к мобу остальными членами партии)
Follow Name – cледовать за указанным игроком
Auto Accept Invites – принимать приглашение в партию от указанно игрока(Например вы хотите качаться в партии из 2-ботов - пропишите в этой строчке свой ник и они будут вступать в вашу пати как только вы послали им приглашение).
Окно Party Buff(Партийные баффы)
Галочку ставим если хотим юзать какойто бафф который выбираеться из списка(список доступен после подключения бота к серверу и там сохраняеться)
Delay - Частота использования баффа
Name - Укажите имена счастливчиков награждаемых баффами - если не указано ничего то счастивы будут все (Некоторые баффы не нужны одним игрокам и нужны другим, например для магов нужно акумен и эмпауер, а воинам нафиг ненужен и в целях экономии маны можно указывать кому что нужно)
Helpy Party Members - помощь партийцам со стороны хилера.
Самая важная настройка для жизнедеятельности парии и не только.
Итак нужно указать при каком состоянии ХП участника партии его лечить и каким хилом(простой, battl heal и т.д)
Обычно баттл хил используют в критических ситуациях поэтому для него нужен самый низкий % от жизни игрока при котором он будет использован. Величины сильно зависят от того каких мобов вы бьете и как быстро они вас убивают. Тут по обстоятельствам.
Pathing - Настройка области действия бота
Окно Path Setting - настройка ботинга
Rand – рандомный выбор – бегает туда где видит подходящих мобов(подходит если за пределами видимости нет таких же мобов иначе может ОООчень далеко убежать например в данже можно)
Combat begin Point – бегать в заданном квадрате с указанным размером(размер указываеться в строчке Radii
Center Point – центральная точка с указанными координатами - можно закрепить квадрат действия бота - так без указания центральной точки квадрат действия назначаеться относительно положения вашего бота и с центральной точкой квадрат привязан к карте
Cur. – ввод текущих координат(там где расположен бот)
Radii – размер рабочей области бота
Z-limit – не лазить в горы выше указанного
When Not Foun monstr…. - использовать другие точки из списка если около указанной точки нет подходящих мобов.(можно проложить маршрут по которому бот будет искать нужный вид мобов если в пределах видимости их нету, для этого вы предварительно ведете бота по маршруту и на каждом повороте жмете Cur.Pos - заполняеться мини-табличка справа и потом жмете Add - данные перекочуют в список в центре с координатами опорных точек. Так делаеться дорожка из нескольких точек. По этой дорожке бегает ваш бот и как только увидит нужных вам мобов сразу к ним ломиться, а затем возвращаеться снова к дорожке и бежит дальше.).
Far Attacks – Нападение издалека (дистанционная атака)
Use Raf Settings – использовать настройки удаленной атаки(ставим галочку если хотим их использовать).
When Target Is In – когда цель находиься дальше 500 единиц
Attack And Run – убегать после атаки и атаковать снова(для лучников и магов)
Equip Weapoon 1 – использовать первым указанное оружие
Equip Weapoon 2 – использовать вторым указанное оружие
First Skill 1 – скилл для первого оружия
Must – должен использовать при указанных условиях
First Skill 2 – скилл для второго оружия
Attacking Type – тип атаки
Direct Attack – прямое нападение(вручную - близкая атака)
Use Spell – использовать спелы (активные скиллы)
When Target HP< - когда ХП меньше указанного использовать прямое нападение(рукопашный бой и можно использовать другое оружие).
Short Attack - короткое нападение (ближний бой - настройка для танков и прочих кто не стреляет и не колдует)
Use Melee Settings – использовать настройки
When Target Is – когда цель рядом, на указанном расстоянии или ближе
Equip Weapon 1 – первое оружие.
Equip Weapon 2 – второе оружие
First Skill 1 – первый скилл(например можно поставить для даггерщика настройки When HP<101% и MP>90% чтобы использовал скилл МорталБлоу)
Must – использовать при условии - настройки MP и HP
First Skill 2 – второй скилл
When Target HP< - при условии повреждения ХП (ХП осталось менее указанного)
Attacking Type – тип атаки
Direct Attack – простая атака
Use Spell – использовать спелы при атаке
When Target HP< - когда ХП меньше указанного использовать простое нападение.
Monster Setting – настройки поведения с различными монстрами.
Аtk Type – тип атаки (что делать с этим мобом)
No attack – не атаковать
Attack – атаковать
Attack Alone – атаковать только одинокостоящих(как точно это настраиваеться я не разобрался, было бы где прописать радиус при котором если мобы стоят ближе друг к другу их не атаковать)
Auto Sweep – автоматически использовать Спойл и Свип(для дварфов)
All Sets Same – выбрать тоже самое для всех мобов.
Initiative – агрессивность моба(агро/нет)
Colony – социальное поведение (помогают друг другу)
Mons Level Limit – ограничение уровней атакуемых мобов.
No Atk Lvl Big to – не атаковать мобов с уровнем выше указанного
No Atk Lvl Low - не атаковать мобов с уровнем ниже указанного
Other – другие настройки
Attack Aggros First – атаковать вначале агрессивных мобов(например вы бежите к мобу который не агро и далеко стоит, а на вашем пути стоит моб который агро топробегая мимо вы его будете бить хотя в ваших настройках может и не прописано что такой вид мобов надо лупить)
Grab Player’s Monster – атаковать мобов атакуемых другими игроками(иначе вашего бота могут быстро вычислить другие игроки просто выделяя мобов к кторому бежит ваш бот).
Items Setting – настройка игровых предметов
Pick Up Item Distance – поднимать предметы в радиусе ХХХ ед
Pick Up Item Before Atk – подбирать итемсы во время боя(иначе сопрут другие. Но имейте ввиду что реальные игроки очень редко подбирают итемсы во время боя)
Only Pik mine - дословно - поднимать единственное своё(хз что это значит)
Auto del load >ХХ -автоматически кинет в корзину при подьеме одинаковых итемсов более указанного количества(например с мобов падает какаянибудь хрень которая весит много а пользы приносит мало(антидот хотябы) то при накоплении у вас будет перегруз и бот прросто их уничтожит)В принципе ничто не мешает написать макрос для бота чтобы при накоплении каких то итемсов он бежал в город и сам их продавал, затем затаривался лечилками, ССками и бежал снова на место кача.
Окно Setting
Выбираете итемс из списка или набиваете его в строчке и затем выбираете из списка и настраивате дальше что с ним делать вашему боту.
Pick - поднимать
Sell - продавать(где возможно нужно для макроса. мне не известно)
Store - запасать/складывать в инвентори
GMuse - использовать при ГМе(не знаю зачем надо, может гм бросает а ты должен поднять и использовать?)
All Same - применить настройки ко всем итемсам.
*Pet Setting – настройки пета (прокачка пета)
Follow Attack – атаковать того, кого отакует мембер
Follow Masten not - в этой строчке можно прописать имя чара после атаки которого ваш пет бросаеться в бой - хозяин может выполнять пассивную роль в партии - нпример только лечить.
Pet - настройка поведения пета
Auto Take – автоматический подьем
When – когда
Auto seeding when Hunger – автоматически кушать при ХП меньше указанного
Сall Back Pet When No Feed – убрать пета если нет пищи.
*Пета, например дракона, очень удобно качать в партии. Создаёте партию из двух человек. В настройке Follow Attack ставите имя мембера. А в ваших личных настройках (Party Setting->Follow Name(ставите ник мембера) & ->Follow Distance(ставите дистанцию 10 - 100). Больше тут никаких галок не ставим. Теперь ваш бот будет следовать за мембером, повторяю ТОЛЬКО СЛЕДОВАТЬ, а ваш дракончик будет атаковать того моба, которого атакует мембер. Таким образом весть тот exp, который должен был идти вам, идёт дракону и получается нон-стоп кач. Это особенно эфективно на 50+ леваках, тогда можно дракона 35 левака вскачнуть до страйдера меньше чем за неделю.
GM Strategy – стратегия при появлении ГеймМастера
Сheckup GM Use Items – Использовать выбранные пункты при проверке ГМом
Logaut – выйти из игры через указанное время
Relogin – перезайти через указанное время
Say – сказать фразу при появлении ГМа
If Teleported – телепортироваться и выйти в логаут через указанное время
GM Whisper or Petition – Разговор с ГМ( с помощью окна петиции)
Logaut – выйти из игры через указанное время
Smart Reply – сказать фразу в ответ на вопрос ГМа
gnore Him - игнорировать(работать на мануале при появлении ГМ)
Не пытайтесь внести в список как можно больше фраз - и ответов на одни и теже фразы - бот выбирает ответ который идет в самом верху на один тип вопроса(баг).
Other player – другие игроки (поведение при появлении других игроков)
Auto Reject Party Invite – автоматически отказывается от партии
Auto Rejekt Trade invite – автоматически отказывается от трэйда
Logaut On Found Player – выйти из игры при появлении другого игрокав в указанном радиусе (игрок должен быть из списка в закладке Names Setting)
Other Player – других игроков
Friend Player – друзей из списка.
Relogin – перезайти через уаказанное время
Logaut On Red Player Выйти в логаут при появлении PK(некоторые игроки развлекаються тем что убивают ботов и естественно становяться PK) Если ПК подойдет ближе чем написано в строчке справа(окошко для ввода данных)
Attacked By Player – атака игрока
First Say – быстрая фраза при атаке(фраза вылезет мгновенно так что не пишите трактатов в 10 слов)
And Logout – и выйти из игры при атаке другим игроком
Relogin – войти снова через указанное время
Smart Reply Whisper – сказать в ответ на приват
No Smart Math Random Say – выбрать случайный ответ из списка(баг) - Ответ выдает но на одну и туже фразу всегда выдает одинаковый ответ.
Name Setting – Настройка Имен.
Всего в этой версии бота 3 окна.
GM name - имена игроков являющимися ГМами и самих GMов
Other Player Name - имена игроков которые вас нелюбят/вы их не любите(не хотите при них ботать и прочее)
Friend Name - имена друзей(будет отображатьтся их присутствие он лайн).
Vending – настройка магазина.
Auto Set Up Shop When Begin – автоматическая настройка магазина при старте( после старта ваш бот сам все выложит в торговлю и сядет торговать)
Logaut When Done – выйти при окончании торговли(все продано/скуплено зачем сидеть более )
Notice When You Use Relogin Set Up Shop Please Left Sell Items Number Or Buy Item Left One – Проверяйте количество и стоимость покупаемых/продаваемых товаров после перезахода в игру.( Специально для изменчивого рынка - вы можете прогадать на цене)
Auto Set Up Shop – автоматическая настройка магазина.
Sell – продажа
Buy – покупка
Title – надпись на магазине
Item Name – наименование покупаемых/продаваемых предметов
Quantity – количество
Price – цена
В Sound alert и так все ясно.
Обязательно поставте сигнал требоги в первых трех пунктах. От этого зависит узнаете вы о том, что ГМ рядом или нет.
-/-/-/-/-/-/-/-/-/-/-/-/
Скрипты:
Что такое скрипты объяснять не буду, думаю вы и сами всё знаете. Начну с основных команд скрипта:
GOHOME()
//Переход к началу скрипта.
SAY(Сообщение)
//Писать что-либо в окне чата. Не думаю, что это будет полезно
JMP(Текст)
//Переход к CALL(Текст) где текст в кавычках такой же.
CALL(Текст)
//Вызов подпрограммы. Переход к LABEL(Текст) где текст в кавычках такой же.
LABEL(Текст)
//Обозначает метку для перехода по CALL(Текст).
DELAY(x)
x = милисекунды
//Приостановка скрипта.
Pause(x)
x = милисекунды
//Не уверен, что есть разница между DELAY и PAUSE
RETURN()
//Выход из подпрограммы.
EXIT()
//Выход из скрипта.
ПЕРЕМЕЩЕНИЕ:
MOVETO(x,y,z)
//Топать в точку с координатами x,y,z
ПРЕДМЕТЫ:
ITEMCOUNT(Название предмета[ID=#],<,1)
{
}
//Подсчитывает количество указанных предметов с условиями <, >, = и выполняет скрипт в фигурных скобках.
USEITEM(Название предмета[ID=#])
//Использует предмет.
BuyItem(Название предмета[ID=#],#)
//Покупает предмет
BuyItem(Название предмета[ID=#],#;Название предмета[ID=#],#)
//Покупает за раз более одного предмета (можно указать много предметов через точку с запятой) .
SavelItem(Название предмета[ID=#],#)
//Помещает предмет в хранилище (Warehouse).
SavelItem(Название предмета[ID=#],#;Название предмета[ID=#],#)
//Помещает несколько предметов в хранилище (Warehouse).
LoadItem(Название предмета[ID=#],#)
//Забрать предмет из хранилища.
LoadItem(Название предмета[ID=#],#;Название предмета[ID=#],#)
//Забрать несколько предметов из хранилища. # - само собой количество.
МОБЫ aka NPC's:
NPCSEL(Имя NPC[ID=#])
//Выбрать NPC.
NPCDLG(Имя NPC[ID=#])
//Открыть диалог с NPC.
DLGSEL(Диалог)
//Выьрать пункт диалога [пример: DLGSEL(Buy)]
StrInDlg(Диалог)
{
}
//Проверяет присутствует ли фраза в диалоге. (например, Thank You!) Если да, то испольняеца кусов скрипта в фигурных скобках ({}).
Параметры персонажа:
ChangeWaitType(x)
Сменить состояние с "сидеть" на "стоять" и наоборот.
x = 0 Сесть
x = 1 Встать
CharStatus([CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND]
,[>=|>|==|!=|<|<=],число)
{
}
CHP = Здоровье персонажа
CMP = Мана персонажа
HP = Здоровье (%)
MP = Мана (%)
WEIGHT = Загрузка (%)
LV = Уровень
SP = Хрен знает что такое
RACE = Это еще менее понятно
STAND = Проверка сидишь или стоишь
...,==,0) Сидишь
...,==,1) Стоишь (может быть 0 и 1 надо поменять местами
PosInRange(x,y,z,дистанция)
{
}
//Проверка находится ли заданная точка в пределах досягаемости (дистанция). Если да, то выполняется кусок скрипта в фигурных скобках ({}).
PosOutRange(x,y,z,дистанция)
{
}
//То же самое, но условие верно, если точка все досягаемости.
SET(FIGHTSTART)
//Начинает бой.
SET(FIGHTSTOP)
//Останавливает бой.
Пример скрипта:
Простейший скрипт для возвращения на место кача после смерти.
SET(FIGHTSTOP) //Остановить бой
MSG(Begin go from city)
MOVETO(43073,50070,-2976) //Координаты точек пути следования бота
MOVETO(43127,49827,-2992)
MOVETO(43497,50386,-2992)
MOVETO(44121,50202,-3056)
MOVETO(42680,50112,-2984)
MOVETO(43127,49827,-2992)
MOVETO(43331,50985,-2984)
MOVETO(40092,53247,-3320)
MOVETO(37348,50329,-3432)
MOVETO(37816,46189,-3432)
MOVETO(33460,42697,-3536)
MOVETO(32946,39895,-3440)
MSG(Begin Combat)
Вы уже на месте прокачки
SET(FIGHTSTART) //Начать бой
EXIT()
Для того, что бы этот скрипт запустился после смерти бота нужно:
Basik Option->Death Retyrn(поставить галочку); Die After(поставить галочку), в окошке Run Script прописать путь к скрипту. Таким образом, после сметри бот будет останавливать бой, через 60 сек после семрти портаться в город, бежать на место прокачки и продолжать качаться!
Программ для написания скрптов НЕТ! Скрипты можно писать либо в OnGame боте(Script->Script Make), либо в блокноте. В OnGame боте есть кнопочка .REC. (Script->Script Make->.REC.), жмёте её и бот записывает все ваши действия. Очень удобно при записи маршрута (MOVETO(x,y,z) ) бота и так же полезна для новичков.
-/-/-/-/-/-/-/-/-/-/-/-/
Примеры скриптов:
Файл со скриптами вы сможете найти в разделе Файлы.
//-------------------------------------------------------------
//
//
// Скрипт на прокачку версия 0.01
// для Talking Island Village точка 001 (-85038,253859,-3704)
// мобы 1-4 уровня
//
// © made by Zzz
// скрипт писался и тестировался на Wnet
//
//
//-------------------------------------------------------------
LABEL(metka401)
SET(FIGHTSTOP)
CALL(mesto)
CALL(magazin)
CALL(bank)
CALL(beg)
CALL(kombat)
JMP(metka401)
//------------------------------------------------------------
//
// определение места
// и переход на начальную точку
// (-85013,242479,-3728)
//
//------------------------------------------------------------
LABEL(mesto)
LABEL(metka001)
PosInRange(-85013,242061,-3728,100)
{
JMP(metka002)
}
PosInRange(-83537,242537,-3700,200)
{
MOVETO(-84185,242513,-3728)
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-83646,243397,-3700,200)
{
MOVETO(-83739,242793,-3728)
MOVETO(-84185,242513,-3728)
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-83700,242896,-3700,200)
{
MOVETO(-84185,242513,-3728)
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-83742,242214,-3700,200)
{
MOVETO(-84185,242513,-3728)
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-83761,243620,-3700,200)
{
MOVETO(-83739,242793,-3728)
MOVETO(-84185,242513,-3728)
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-83964,242680,-3700,200)
{
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-83990,243336,-3700,200)
{
MOVETO(-83739,242793,-3728)
MOVETO(-84185,242513,-3728)
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-84512,242679,-3700,200)
{
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-84623,243193,-3700,200)
{
MOVETO(-84693,242823,-3728)
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-84756,242155,-3700,200)
{
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-84852,243174,-3700,200)
{
MOVETO(-84693,242823,-3728)
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
PosInRange(-84903,243489,-3700,200)
{
MOVETO(-84693,242823,-3728)
MOVETO(-85013,242061,-3728)
JMP(metka002)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(25000)
JMP(metka001)
LABEL(metka002)
RETURN
//-----------------------------------------------------------
//
// подпрограмма на продажу ненужного
// и покупку СоЕ
//
//-----------------------------------------------------------
LABEL(magazin)
MOVETO(-84596,241587,-3728)
MOVETO(-83909,241157,-3728)
MOVETO(-83919,240931,-3720)
MOVETO(-83854,240817,-3720)
NPCDLG(Silvia[ID=7003])
DELAY(1500)
//
// продаем ненужное
//
LABEL(metka101)
DLGSEL(Sell)
DELAY(1000)
ITEMCOUNT(Club [ID=4],>,0)
{
SELLITEM(Club [ID=4]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Apprentice's Rod [ID=7],>,0)
{
SELLITEM(Apprentice's Rod [ID=7]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Short Bow [ID=13],>,0)
{
SELLITEM(Short Bow [ID=13]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Wooden Arrow [ID=17],>,0)
{
SELLITEM(Wooden Arrow [ID=17]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Leather Shield [ID=18],>,0)
{
SELLITEM(Leather Shield [ID=18]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Small Shield [ID=19],>,0)
{
SELLITEM(Small Shield [ID=19]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Shirt [ID=21],>,0)
{
SELLITEM(Shirt [ID=21]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Pants [ID=28],>,0)
{
SELLITEM(Pants [ID=28]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Cloth Cap [ID=41],>,0)
{
SELLITEM(Cloth Cap [ID=41]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Leather Cap [ID=42],>,0)
{
SELLITEM(Leather Cap [ID=42]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Apprentice's Earring [ID=112],>,0)
{
SELLITEM(Apprentice's Earring [ID=112]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Tunic [ID=426],>,0)
{
SELLITEM(Tunic [ID=426]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Stockings [ID=462],>,0)
{
SELLITEM(Stockings [ID=462]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Ring of Knowledge [ID=875],>,0)
{
SELLITEM(Ring of Knowledge [ID=875]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Necklace of Knowledge [ID=906],>,0)
{
SELLITEM(Necklace of Knowledge [ID=906]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Spellbook: Aura Attack [ID=1095],>,0)
{
SELLITEM(Spellbook: Aura Attack [ID=1095]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Cotton Tunic [ID=1100],>,0)
{
SELLITEM(Cotton Tunic[ID=1100]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Crude Leather Shoes [ID=1129],>,0)
{
SELLITEM(Crude Leather Shoes [ID=1129]
DELAY(1000)
JMP(metka101)
}
ITEMCOUNT(Recipe: Willow Staff [ID=1787],>,0)
{
SELLITEM(Recipe: Willow Staff [ID=1787]
DELAY(1000)
JMP(metka101)
}
//
// Покупаем СоЕ
//
LABEL(metka102)
ITEMCOUNT(Scroll of Escape [ID=736],<,5)
{
NPCDLG(Silvia[ID=7003])
DELAY(1500)
DLGSEL(Buy)
DELAY(1000)
BUYITEM(Scroll of Escape [ID=736],1
DELAY(1000)
JMP(metka102)
}
MOVETO(-83919,240931,-3720)
MOVETO(-83909,241157,-3728)
MOVETO(-83873,241259,-3755)
MOVETO(-83693,241295,-3755)
MOVETO(-83266,241178,-3755)
MOVETO(-82959,241699,-3755)
RETURN
//------------------------------------------------
//
// подпрограмма ложить ресы в варехауз
//
//----------------------------------------------
LABEL(bank)
MOVETO(-82674,242354,-3755)
MOVETO(-82384,242855,-3753)
MOVETO(-81968,243180,-3752)
MOVETO(-81800,243330,-3742)
MOVETO(-81654,243376,-3742)
MOVETO(-81543,243414,-3742)
LABEL(metka201)
NPCDLG(Wilford[ID=7005])
DELAY(1500)
DLGSEL(Deposit Item (Private Warehouse))
DELAY(2500)
ITEMCOUNT(Stem [ID=1864],>,0)
{
SAVEITEM(Stem [ID=1864],*
DELAY(1000)
JMP(metka201)
}
ITEMCOUNT(Varnish [ID=1865],>,0)
{
SAVEITEM(Varnish [ID=1865],*;
DELAY(1000)
JMP(metka201)
}
ITEMCOUNT(Animal Skin [ID=1867],>,0)
{
SAVEITEM(Animal Skin [ID=1867],*
DELAY(1000)
JMP(metka201)
}
ITEMCOUNT(Suede [ID=1866],>,0)
{
SAVEITEM(Suede [ID=1866],*
DELAY(1000)
JMP(metka201)
}
ITEMCOUNT(Thread [ID=1868],>,0)
{
SAVEITEM(Thread [ID=1868],*
DELAY(1000)
JMP(metka201)
}
ITEMCOUNT(Coal [ID=1870],>,0)
{
SAVEITEM(Coal [ID=1870],*
DELAY(1000)
JMP(metka201)
}
ITEMCOUNT(Charcoal [ID=1871],>,0)
{
SAVEITEM(Charcoal [ID=1871],*
DELAY(1000)
JMP(metka201)
}
ITEMCOUNT(Animal Bone [ID=1872],>,0)
{
SAVEITEM(Animal Bone [ID=1872],*
DELAY(1000)
JMP(metka201)
}
MOVETO(-81654,243376,-3742)
MOVETO(-81923,243252,-3752)
MOVETO(-83269,244005,-3755)
MOVETO(-82404,244953,-3748)
RETURN
//----------------------------------------------
//
// бежим на место кача
//
//----------------------------------------------
LABEL(beg)
MOVETO(-81567,246262,-3664)
MOVETO(-81387,247882,-3656)
MOVETO(-82143,250330,-3728)
MOVETO(-85038,253859,-3704)
MOVETO(-85038,253859,-3704)
RETURN
//----------------------------------------------
//
// кач
//
//----------------------------------------------
LABEL(kombat)
PosOutRange(-85038,253859,-3704,100)
{
JMP(metka302)
}
DELAY(5000)
SET(FIGHTSTART)
LABEL(metka301)
PosOutRange(-85038,253859,-3704,2500)
{
JMP(metka302)
}
CHARSTATUS(CHP,<=,0)
{
JMP(metka302)
}
CHARSTATUS(WEIGHT,>=,60)
{
JMP(metka302)
}
DELAY(5000)
JMP(metka301)
LABEL(metka302)
SET(FIGHTSTOP)
RETURN
//---------------------------------------------
Скрипт для возвращения после смерти на место кача(BlazingSwamp):
SET(FIGHTSTOP) //Остановить бой
SAY(пизец) //Это на тот случай, если тебя будут тестить на бота и завалят
MSG(Ближайший поселок)
DELAY(5000) //Ждём 5сек.
CALL(METKI) //Ссылка на LABEL(METKI) которая будет ниже
EXIT()
LABEL(METKI)
MOVETO(148070,27229,-2231) //Идти к центру площади
CALL(Swamp) //Запускается мини-программа Swamp(LABEL(Swamp))
RETURN() //Завершить исполнение программы
LABEL(Swamp)
MOVETO(148070,27229,-2231) //Путь следования бота до насначенного места
USEITEM(??????[ID=734]) //Пьём ускорялку
MOVETO(148429,27674,-2295)
MOVETO(149850,27521,-2295)
MOVETO(149889,25447,-2170)
MOVETO(150122,25108,-2167)
MOVETO(152049,25099,-2169)
MOVETO(152236,24823,-2162)
MOVETO(151259,20207,-1910)
MOVETO(150647,18496,-1824)
MOVETO(150502,12720,-995)
MOVETO(150268,10770,-716)
MOVETO(150760,8422,-624)
MOVETO(152284,7424,-627)
MOVETO(152359,7066,-627)
MOVETO(152378,6701,-627)
MOVETO(152418,6411,-626)
MOVETO(152419,6255,-626)
MOVETO(153664,5726,-4323)
MOVETO(154316,8273,-4221)
MOVETO(155369,8363,-4371)
MOVETO(155369,8363,-4371)
MOVETO(155369,8363,-4371)
MOVETO(155369,8363,-4371)
MOVETO(155369,8363,-4371)
MOVETO(155369,8363,-4371)
MOVETO(155369,8363,-4371)
MOVETO(155369,8363,-4371)
MOVETO(155369,8363,-4320)
MOVETO(158097,9052,-4192)
MOVETO(158857,8867,-4153)
MOVETO(159412,8736,-4106)
MOVETO(160895,5332,-3981)
MOVETO(162366,3289,-3745)
MOVETO(162583,3319,-3713)
MOVETO(162583,3319,-3664)
MOVETO(162228,1298,-3506)
MOVETO(161631,205,-3475)
MOVETO(161038,-2263,-3380)
MOVETO(161140,-3346,-3261)
MOVETO(160190,-5904,-3910)
MOVETO(161143,-6981,-3599)
MOVETO(160724,-9090,-3368)
MOVETO(160224,-13388,-2926)
MOVETO(159988,-13685,-2853)
MOVETO(159360,-12869,-2922)
MOVETO(158285,-12827,-2852)
MOVETO(157712,-13321,-2804)
MOVETO(156454,-13870,-2769)
MOVETO(155845,-14060,-2790)
MOVETO(155698,-13601,-2859)
MOVETO(154995,-12486,-3953)
MOVETO(154373,-12027,-3974)
MOVETO(153963,-12000,-4039)
MOVETO(153403,-11571,-4466)
MOVETO(152502,-11866,-4509)
RETURN() //Завершить исполнение программы
Скрипт для возвращение на место кача после смерти около Ivory Tower:
LABEL(IVORY) //Название основной программы
SET(FIGHTSTOP) //Остановить бой
DELAY(60000) //Ждём минуту
MOVETO(82744,53585,-1521) //Идём к ГейтКиперу
DELAY(5000) //Ждём 5сек, на случай, если будут припятствия
MOVETO(80983,53511,-1585) //Путь следования к Warehouse
MOVETO(80954,54500,-1551)
MOVETO(81018,54700,-1551)
MOVETO(81330,54700,-1536)
MOVETO(81317,54966,-1536)
NPCSEL(???[ID=1007182])
NPCDLG(???[ID=1007182])
DLGSEL(Withdraw Item (Private Warehouse))
LOADITEM(????????[ID=1061],900 //Берём банки лечения
DELAY(1000)
NPCDLG(???[ID=1007182])
DLGSEL(Withdraw Item (Private Warehouse))
LOADITEM(???-C?[ID=1464],25000 //Берём соски
MOVETO(81286,54724,-1535) //Путь следования к ГейтКиперу
MOVETO(80920,54695,-1551)
MOVETO(81012,53859,-1586)
MOVETO(81212,53420,-1584)
MOVETO(82729,53522,-1522)
MOVETO(82976,53197,-1522)
NPCSEL(????[ID=1007177]) //Выделяем ГейтКипера
NPCDLG(????[ID=1007177]) //Открываем диалог с ГейтКипером
DLGSEL(Go to another village.)
DLGSEL(Ivory Tower - 4400 ??) //Портаемся в Ivory Tower
DELAY(5000) //Ждём 5сек
MOVETO(85346,15032,-3554) //Путь следования на место кача
MOVETO(85358,10162,-3544)
MOVETO(85323,6938,-3573)
MOVETO(85154,5422,-3448)
MOVETO(85243,3569,-3405)
MOVETO(85415,2930,-3405)
MOVETO(85067,1958,-3411)
MOVETO(84739,890,-3655)
MOVETO(86761,-1528,-3579)
MOVETO(89174,-2889,-3402)
MOVETO(91839,-4238,-3417)
MOVETO(91892,-4505,-3416)
MOVETO(93177,-7324,-3310)
MOVETO(93634,-7459,-3163)
MOVETO(95139,-8891,-3415)
SET(FIGHTSTART) //Начать бой
RETURN() //Конец программы
EXIT() //Выход из скрипта
Скрипт для возвращение в город(Гиран), если у вас банок лечения меньше чем 100, место кача Hardin's Academy:
LABEL(check) //Название программы
SET(FIGHTSTART)
DELAY(60000)
ITEMCOUNT(????????[ID=1061],>,100) //Проверка, больше или меньше 100 у вас банок лечения, если меньше, то выполняется скрипт в скобочках, если больше, то продолжается проверка
{
SET(FIGHTSTOP) //Останавливаем бой
SAY(BUM) //На всякий случай
DELAY(30000)
USEITEM(????[ID=736])
DELAY(130000) //Ждём две минуты
Далее пошли програмки путей следования к магазину магии(купить банок), в банк (взять сосок), к ГейтКиперу и на место кача
CALL(GKSHOP)
CALL(BUY)
CALL(WAREHAUS)
CALL(MAKESSD)
CALL(GOKIPER)
CALL(AKADEMIA)
CALL(KACH)
USEITEM(??????[ID=734])
USEITEM(??????[ID=735])
CALL(check)
}
JMP(check) //Переход к началу скрипта
LABEL(GKSHOP)
MOVETO(81574,147538,-3492)
MOVETO(81419,146963,-3559)
MOVETO(80894,146775,-3559)
MOVETO(79889,147555,-3559)
MOVETO(80447,147859,-3534)
RETURN()
LABEL(BUY)
NPCSEL(???[ID=1007082])
NPCDLG(???[ID=1007082])
DLGSEL(Купить) //На моём сервера место слова Buy, в диалоге с продавцо, сделали слово Купить, у вас может быть и другое
BUYITEM(????????[ID=1061],402 //Купить банок
NPCDLG(???[ID=1007082])
DLGSEL(Купить)
BUYITEM(??????[ID=734],2
DLGSEL(Купить)
BUYITEM(??????[ID=735],2
NPCDLG(???[ID=1007082])
DLGSEL(Купить)
BUYITEM(???????[ID=1829],2
RETURN()
LABEL(WAREHAUS)
MOVETO(79718,147415,-3559)
MOVETO(80720,146473,-3559)
RETURN()
LABEL(MAKESSD)
NPCSEL(???[ID=1007086])
NPCDLG(???[ID=1007086])
DLGSEL(Withdraw Item (Private Warehouse))
LOADITEM(???-D?[ID=1463],10000) //Взять 10 000 сосок
RETURN()
LABEL(GOKIPER)
MOVETO(81162,146896,-3559)
MOVETO(81533,147058,-3559)
MOVETO(81560,147762,-3495)
MOVETO(83361,148019,-3431)
MOVETO(83387,147922,-3431)
RETURN()
LABEL(AKADEMIA)
NPCSEL(????[ID=1007080])
NPCDLG(????[ID=1007080])
DLGSEL(Go to another village.)
DLGSEL(Hardin's Academy - 5300 ??) //Портаемся в Академию
RETURN()
LABEL(KACH)
MOVETO(104356,106756,-3335) //Путь следования к месту кача
MOVETO(104015,106177,-3361)
RETURN()
MOVETO(161038,-2263,-3380)
MOVETO(161140,-3346,-3261)
MOVETO(160190,-5904,-3910)
MOVETO(161143,-6981,-3599)
MOVETO(160724,-9090,-3368)
MOVETO(160224,-13388,-2926)
MOVETO(159988,-13685,-2853)
MOVETO(159360,-12869,-2922)
MOVETO(158285,-12827,-2852)
MOVETO(157712,-13321,-2804)
MOVETO(156454,-13870,-2769)
MOVETO(155845,-14060,-2790)
MOVETO(155698,-13601,-2859)
MOVETO(154995,-12486,-3953)
MOVETO(154373,-12027,-3974)
MOVETO(153963,-12000,-4039)
MOVETO(153403,-11571,-4466)
MOVETO(152502,-11866,-4509)
RETURN() //Завершить исполнение программы
Скрипт для возвращение на место кача после смерти около Ivory Tower:
LABEL(IVORY) //Название основной программы
SET(FIGHTSTOP) //Остановить бой
DELAY(60000) //Ждём минуту
MOVETO(82744,53585,-1521) //Идём к ГейтКиперу
DELAY(5000) //Ждём 5сек, на случай, если будут припятствия
MOVETO(80983,53511,-1585) //Путь следования к Warehouse
MOVETO(80954,54500,-1551)
MOVETO(81018,54700,-1551)
MOVETO(81330,54700,-1536)
MOVETO(81317,54966,-1536)
NPCSEL(???[ID=1007182])
NPCDLG(???[ID=1007182])
DLGSEL(Withdraw Item (Private Warehouse))
LOADITEM(????????[ID=1061],900 //Берём банки лечения
DELAY(1000)
NPCDLG(???[ID=1007182])
DLGSEL(Withdraw Item (Private Warehouse))
LOADITEM(???-C?[ID=1464],25000 //Берём соски
MOVETO(81286,54724,-1535) //Путь следования к ГейтКиперу
MOVETO(80920,54695,-1551)
MOVETO(81012,53859,-1586)
MOVETO(81212,53420,-1584)
MOVETO(82729,53522,-1522)
MOVETO(82976,53197,-1522)
NPCSEL(????[ID=1007177]) //Выделяем ГейтКипера
NPCDLG(????[ID=1007177]) //Открываем диалог с ГейтКипером
DLGSEL(Go to another village.)
DLGSEL(Ivory Tower - 4400 ??) //Портаемся в Ivory Tower
DELAY(5000) //Ждём 5сек
MOVETO(85346,15032,-3554) //Путь следования на место кача
MOVETO(85358,10162,-3544)
MOVETO(85323,6938,-3573)
MOVETO(85154,5422,-3448)
MOVETO(85243,3569,-3405)
MOVETO(85415,2930,-3405)
MOVETO(85067,1958,-3411)
MOVETO(84739,890,-3655)
MOVETO(86761,-1528,-3579)
MOVETO(89174,-2889,-3402)
MOVETO(91839,-4238,-3417)
MOVETO(91892,-4505,-3416)
MOVETO(93177,-7324,-3310)
MOVETO(93634,-7459,-3163)
MOVETO(95139,-8891,-3415)
SET(FIGHTSTART) //Начать бой
RETURN() //Конец программы
EXIT() //Выход из скрипта
Скрипт для возвращение в город(Гиран), если у вас банок лечения меньше чем 100, место кача Hardin's Academy:
LABEL(check) //Название программы
SET(FIGHTSTART)
DELAY(60000)
ITEMCOUNT(????????[ID=1061],>,100) //Проверка, больше или меньше 100 у вас банок лечения, если меньше, то выполняется скрипт в скобочках, если больше, то продолжается проверка
{
SET(FIGHTSTOP) //Останавливаем бой
SAY(BUM) //На всякий случай
DELAY(30000)
USEITEM(????[ID=736])
DELAY(130000) //Ждём две минуты
Далее пошли програмки путей следования к магазину магии(купить банок), в банк (взять сосок), к ГейтКиперу и на место кача
CALL(GKSHOP)
CALL(BUY)
CALL(WAREHAUS)
CALL(MAKESSD)
CALL(GOKIPER)
CALL(AKADEMIA)
CALL(KACH)
USEITEM(??????[ID=734])
USEITEM(??????[ID=735])
CALL(check)
}
JMP(check) //Переход к началу скрипта
LABEL(GKSHOP)
MOVETO(81574,147538,-3492)
MOVETO(81419,146963,-3559)
MOVETO(80894,146775,-3559)
MOVETO(79889,147555,-3559)
MOVETO(80447,147859,-3534)
RETURN()
LABEL(BUY)
NPCSEL(???[ID=1007082])
NPCDLG(???[ID=1007082])
DLGSEL(Купить) //На моём сервера место слова Buy, в диалоге с продавцо, сделали слово Купить, у вас может быть и другое
BUYITEM(????????[ID=1061],402 //Купить банок
NPCDLG(???[ID=1007082])
DLGSEL(Купить)
BUYITEM(??????[ID=734],2
DLGSEL(Купить)
BUYITEM(??????[ID=735],2
NPCDLG(???[ID=1007082])
DLGSEL(Купить)
BUYITEM(???????[ID=1829],2
RETURN()
LABEL(WAREHAUS)
MOVETO(79718,147415,-3559)
MOVETO(80720,146473,-3559)
RETURN()
LABEL(MAKESSD)
NPCSEL(???[ID=1007086])
NPCDLG(???[ID=1007086])
DLGSEL(Withdraw Item (Private Warehouse))
LOADITEM(???-D?[ID=1463],10000) //Взять 10 000 сосок
RETURN()
LABEL(GOKIPER)
MOVETO(81162,146896,-3559)
MOVETO(81533,147058,-3559)
MOVETO(81560,147762,-3495)
MOVETO(83361,148019,-3431)
MOVETO(83387,147922,-3431)
RETURN()
LABEL(AKADEMIA)
NPCSEL(????[ID=1007080])
NPCDLG(????[ID=1007080])
DLGSEL(Go to another village.)
DLGSEL(Hardin's Academy - 5300 ??) //Портаемся в Академию
RETURN()
LABEL(KACH)
MOVETO(104356,106756,-3335) //Путь следования к месту кача
MOVETO(104015,106177,-3361)
RETURN()