Riders perm
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Категории каталога
полезное [14]
Мини-чат
Наш опрос
Ваша любимая расса?
Всего ответов: 89
Главная » Статьи » полезное

Написание скриптов в L2Walker




Написание скриптов в L2Walker

Что такое скрипты объяснять не буду, думаю вы и сами всё знаете. Начну с основных команд скрипта:

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 уровня
//
// (c) 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()

© andy

-/-/-/-/-/-/-/-/-/-/-/-/


Стиль и орфография автора полностью сохранены.
Категория: полезное | Добавил: НекрасовСергей (06.10.2008)
Просмотров: 6436 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Пиветь =),
Гость!
нуб юзай поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
FreezZ © 2025 Хостинг от uCoz