Написание скриптов
Cкрипты для бота.Важно! Любой скрипт сохраняйте только в формате ЮНИКОД !
Начну с основных команд скрипта:
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) ) бота и так же полезна для новичков.
----------------------------------------------------------------------
Мало кто знает зачем в настройках бота нужна вкладка "Control settings"!
Эта функция валкера предназначена для того чтоб им можно было управлять через "Приватные сообшения"
например мы играем из клиента и находимся на осаде а за нами бишоп стоит на боте так вот пишем ему в приват "Heal me" ну или что вы там захотите а он в ответ вас хиляет(Возможны вариации) независимо от того в партии вы или нет красота не так ли?
Для болле простого понимания введем в урок несколько так сказать премменых:
"NameBot"-имя персонажа на боте !
"NameChar"-имя персонажа на клиенте!
"Heal me"-команда по желанию они могут быть любыми какие токо вы придумаете.
Приступим к настройке бота(в данном случае бишоп):
В опциях на вкладе "Control Settings" ставим галочку '[v]Recv Request' В поле Send Name пишем NameChar в поле "Text" пишем "Heal me" далее в меню "Skills" выбираем нужный нам скилл в данном случае "Greater heal" и нажимаем "Add"
Даллее по желанию добавляем еше скилл "Resurrection" по команде "res" итд... итп...
Можно еще привязать бота за собой. И дальнейшая настройка по вашему вкусу.
Все бот на данном этапе настроен.
Теперь заходим в игру клиентом пишем "NameBot Heal me
И вуаля на вас кастуют "Greater heal"
Теперь маленькая хитрость от меня
Зходим в редактор макросов создаем макросс с первой строчкой типа
1.["NameBot Heal me]
Ставим его на панель быстрого доступа нажимаем на него или соответсвуюшею ему клавишу и вуаля на вас кастуют "Greater heal"(ну или что вы там хотите).
О макросах я тоже как нибудь сделаю урок это будет зависеть от вашей в этом потребности я это увижу по количеству спасиб сказанных вами.
Теперь другая ситуация у бишопа заканчивается ХП или МП Ставим галочку "Send Request" в поле 'Recv name' вводим "NameChar" далее в поле When указываем условие Self HP%< или Self MP%< или Delay(s) даллее указываем число, в первых 2-х случаях этим числом будут проценты здоровья или манны в последнем это будут секунды через которые он переодически будет писять в приват сообшение которое вы введете в поле "Text"
например можно ввести "Манны осталось 50%" и указать "When" 'Self MP%<'[ 50 ]
или можно ввести "Бишоп дохнет" и указать "When" 'Self HP%<'[ 30 ]
или "Бишоп сдох" и указать "When" 'Self HP%<'[ 1 ]
Такую же систему можно устроить между двумя ботами...
Ах да в поле Range указывается с какого растояния боту можно на вас кастовать. Это сделанно для того чтоб бот не побежал на вас в гагры если вы случайно напишите ему в приват ту самую команду или нажмете на макросс.
И вообше если включить воображение можно такое сделать...
О практическом применении этой функции в купе со скриптом на бота и макросом я вам раскажу в одной из последуюших моих тем.
Теперь раскажу о такой тоже не всем известной функции как <Auto Trade>.
Начну с того, что такая функция нужна, когда приходится постояно чтото перекидывать на бота или же постоянно, что то брать у бота она автоматизирует процесс зависяший от бота, тобиш ненадо каждый раз переключатся на бота и выполнять одни и теже действия!
Как же настроить такую замечательную функцию?
А очень просто:
1.Если нужно постоянно чтото скидывать на бота, например как в мешок то нам нужно будет поставить галочку <Accept Trade> и в следуюшее поле ввести ник персонажа от у которого надо автоматически принимать Trade или несколько ников через точку с запятой.
Например:
[MyName;YourName;FriendName;] итд.
Поле weight%< нужно для того чтоб бот принимал trade только в том случае если у него осталось место в запасе тоесть в случае с нашим скриншотом он не примет trade если у него загруженность достигает 75%.
Поле Delay [2] s Done Trade означает, что бот будет принимать трэйд и по истечении 2-х секунд будет потверждать его независимо от того поставили вы что нибудь туда или нет, рекомендую ставить больше 5 секунд.
Поле Delay [5] s Cancel Trade означает что если вы тоже не потвердите trade в течении 5 секунд то бот его оменит! Число ставить всегда больше чем в первом поле Delay!
Таким образо получается такая картина: Даем боту Trade он его принимает, ставим туда что нам вздумается (допустим, всякий хлам который вы собрали) он сошлашается и все хлам на боте!
2.Если нужно постоянно брать одни и теже веши с бота, например СС банки скрулы итд. Тогда нада настроить все как в первом случае. + В поле Trade item ставим галочку на Targe далее вводим ник кому передавать далее в каком количестве далее выбираем из списка что передавать!
Можно передовать сразу до 6 разных наименований или каждому свое!
Например в первом Targe ставим, ник Мага и передаем ему спиритшоты а во втором ник война и передаем соулшоты! Таким образом, Магу спиритшоты, а войну соулшоты.
3.Допустим если, наоборот, у бота чтото всегда кончается, а у вас этого навалом тогда нам пригодится поле <Auto Request Trade>
Ставим галочку When Item далее указываем предмет, который кончается далее число после которого он буде просить у вас trade далее имя, у которого просить trade.
Например, у бота остается меньше 10 банок он у вас просит Trade вы даете ему их, и он молчит не даете он опять просит!
И наконец такую систему можно реализовать не только БОТ <> Клиент но и БОТ<>БОТ.
Удачи в ботоводстве