// приперли на поляну
LOADCONFIG(LOL.ini) -загрузка иника
---------------------------------------------------------------------------
SET(RANGETYPE,STARTPOS,2000)//2000-радиус от стартовой точки
SET(MON,NOATTACK,*)
SET(MON,ATTACK,name[ID=XXX])//вписываем ИД нужных мобов
ИЛИ
SET(MON,ATTACK,*)//атакуем всех мобов
SET(FIGHTSTART) - даем команду боту на начало атаки
LabEL(Oxota)//переносим сюда, чтоб после джампа не делались лишние действия и не сбивался радиус
ITEMCOUNT(УШИ слона[ID=1205],<,20) - задаем условие, что при МЕНЬШЕ 20 ушах, переходим К ДЕЙСТВИЯМ В СКОБКАХ (или если условие выполняется, то делаем то что в скобках. а условие перестанет выполняться, когда у нас будет 20 ушей, ибо 20<20-условие не верно!)
{
DELAY(1000)- задаем время ожидания продолжения действия
CALL(1) - вот тут ставим условие проверки на смерть
CALL(2) - лично мне не понятно для чего этот CALL... убираем его
JMP(Oxota) - прыгает на начало блока пока соблюдаЕтся условиЕ: уши<20
}
SET(FIGHTSTOP) - остановка бойни
DELAY(5000) -после того как саберем 20 ушей ждем 5 сек
USEITEM(Scroll of Escape[ID=736]) - юзаем СОЕ
----------------------------------------------------------------------------
LABEL(1) - Проверка на смерть
CharStatus(HP,<=,0) - хп меньше либо равно 0
{
GOHOME() - портуемся в город
DELAY(5000) - ждем
}
RETURN()//обязательно закрываем скобки и RETURN-чтоб вернуться назад к метке CALL, от которой сюда пришли
тело скрипта в городе и дароги обратно на поляну
----------------------------------------------------------------------------
исправлены ошибки
добавлено от себя
З.Ы. ужос скока ошибок если не все исправил сорри... пошел спать...
Последний раз редактировалось B0R0DA, 18.12.2009 в 09:24.
З.Ы. ужос скока ошибок если не все исправил сорри... пошел спать...
ОгоГО! действительно много ошибок , по поводу
SET(MON,NOATTACK,*)
SET(MON,ATTACK,name[ID=XXX])
думал что это проше регулировать ini файлом, ведь когда скрипт пишешь один хрен на поляне тыркнеш информ да и покикаеш всех левых мобов, хотя с другой стороны твой сет разумней, малоли ГМ какой решит проверить, а тут только 1 ID будет моба
По поводу заклемленого SET(2) была идея сделать проверку на то что когда чар выбъет все 20 итемов то если на нем висят мобы он их завалит, отсечет хвост так сказать) подождет и портнется...
А сейсам получается что он взял 20 ушей и хочет портнутся, тут вдруг на него агрится моб и сбивает ТП, и что дальше? либо скрипт продолжает жить своей жизнью, либо чара закалачивают) он же уже вышел их файта и из лейбла Охота тоже, вот как то надо это реализовать, у меня часто такое бывает особено на локациях с аграми, что мобы сбивают телепортацию,я попытался в меру своей корявости изобразить свои мысли в SET(2) =)
За Return() спасибо, как то не обратил внимание
Последний раз редактировалось KoAn, 18.12.2009 в 10:11.
А сейсам получается что он взял 20 ушей и хочет портнутся, тут вдруг на него агрится моб и сбивает ТП, и что дальше?
Ну тогда перед использованием СОЕ делаем следующее:
SET(RANGETYPE,STARTPOS,100)//маленький радиус, чтоб отбить мобов рядом с собой
SET(MON,ATTACK,*)
SET(FIGHTSTART)
DELAY(30000)//тут задаем время на свое усмотрение(это сколько времени он будет отбиваться)
SET(FIGHTSTOP)//стоп
USEITEM(Scroll of Escape[ID=736])//и в город
это проверка так сказать наугад... тоесть он стоит заданное время в малеьком радиусе и отбивается.
или:
SET(RANGETYPE,STARTPOS,100)//маленький радиус, чтоб отбить мобов рядом с собой
SET(MON,ATTACK,*)//бить всех мобов в заданном радиусе
SET(FIGHTSTART)
LABEL(отбиваемся)
CharStatus(HP,<,100)//если НР меньше 100%-делаем то что в скобках
{
DELAY(10000) - ждем
JMP(отбиваемся)//прыгаем опять на метку LABEL(отбиваемся) и так до тех пор пока не будет 100% НР
}
SET(FIGHTSTOP)//у нас 100% НР - следовательно нас никто не атакует и хвоста нет
USEITEM(Scroll of Escape[ID=736])//и в город
если в локе есть мобы арчеры или маги делаем такую проверку:
SET(RANGETYPE,STARTPOS,1000)//большой радиус
SET(MON,NOATTACK,*)//не бить никаких мобов
SET(FIGHTSTART)//по идее должен бить наагренных мобов
LABEL(отбиваемся)
CharStatus(HP,<,100)//если НР меньше 100%-делаем то что в скобках
{
DELAY(10000) - ждем
JMP(отбиваемся)//прыгаем опять на метку LABEL(отбиваемся) и так до тех пор пока не будет 100% НР
}
SET(FIGHTSTOP)//у нас 100% НР - следовательно нас никто не атакует и хвоста нет
USEITEM(Scroll of Escape[ID=736])//и в город
короче говоря масса проверок на отбивание хвоста, выбирай или скрещивай их на свой вкус... ну и после ТП можно сделать проверку не умер ли чар во время тп:
USEITEM(Scroll of Escape[ID=736])//и в город
DELAY(30000)
CALL(1)//проверка на смерть, если выжили во время тп, значит мы в городе, если нет - после CALL(1) нас отправят в город
вообщем масса проверок, стоит только включить фантазию и придумать оптимальный для себя вариант
Последний раз редактировалось B0R0DA, 18.12.2009 в 16:57.
SET(RANGETYPE,STARTPOS,100)//маленький радиус, чтоб отбить мобов рядом с собой
SET(MON,ATTACK,*)//бить всех мобов в заданном радиусе
SET(FIGHTSTART)
LABEL(отбиваемся)
CharStatus(HP,<,100)//если НР меньше 100%-делаем то что в скобках
{
DELAY(10000) - ждем
JMP(отбиваемся)//прыгаем опять на метку LABEL(отбиваемся) и так до тех пор пока не будет 100% НР
}
SET(FIGHTSTOP)//у нас 100% НР - следовательно нас никто не атакует и хвоста нет
USEITEM(Scroll of Escape[ID=736])//и в город
А если нам телепорт сбивает лигет? Или произошло что-то не предвиденное.
Я делаю такую проверку:
После всех вышеописанных проверок и использования телепорта
DELAY(20000) // ожидание ТП
POSINRANGE(x,y,z,100) // Указываем в скрипте то количество точек, сколько точек респа в городе в которыйделаем ТП.( у меня здесь указано две точки)
{
MSG(мы в городе)
JMP(?) //Ставим сюда метку продолжения скрипта
}
POSINRANGE(x,y,z,100)
{
MSG(мы в городе)
JMP(?) //Ставим сюда метку продолжения скрипта
}
JMP(отбиваемся) // Если мы не оказались ни в одной из указанных точек
Добавлено через 35 минут
Цитата:
Сообщение от Retaech
Не плохая идея, наверно стоит еще добавить чтобы во время проверки садился, ато хп может долго регениться.
Если честно, то не вижу в этой проверке смысла, но раз ты так хочеш:
LABEL(Fatality)
SET(RANGETYPE,STARTPOS,100)
SET(MON,ATTACK,*)
SET(FIGHTSTART)
DELAY(20000)
CharStatus(HP,<,100)//если хп меньше100% сажаем его на попу
{
JMP(На попу)
}
SET(FIGHTSTOP)
USEITEM(Scroll of Escape[ID=736])
JMP(?)// Здесь ставим метку продолжения скрипта
LABEL(На Попу)
ChangeWaitType(0)
DELAY(30000)
ChangeWaitType(1)
JMP(Fatality)
Последний раз редактировалось nPoKa3HuK, 19.12.2009 в 00:38.
Причина: Исправлена ошибка в скрипте
Работает так: сначала чар пробует сесть, если ударят он начнет защищаться 30 секунд, потом попробует сесть и снова будет отбиваться если бьют и так до тех пор пока не отрегенит все хп или не сдохнет - в первом случае использует сое и если собьют каст то все начнется сначала.
П.С. Нужно поправить координаты города куда будем лететь.
Последний раз редактировалось Retaech, 19.12.2009 в 01:32.
LABEL(DEFENSE_SOE)
SET(L2WALKER,DISABLE)//Мне кажется использовать не обязательно.
SET(FIGHTSTOP)
LABEL(regen_and_defense)
CHARSTATUS(CHP,==,0)
{
SET(FIGHTSTOP)
SET(L2WALKER,DISABLE)//Тоже можно убрать
GOHOME()
DELAY(30000)
return// Зачем?
JMP(?)//Метка продолжения скрипта
}
CharStatus(HP,<,100)
{
ChangeWaitType(0)
delay(5000)
JMP(defense)
}
JMP(TP)
label(defense)
CharStatus(STAND,==,1)
{
SET(RANGETYPE,STARTPOS,1000)//думаю слишком большой радиус.Хотя против лукарей и магов в самый раз будет.
SET(MON,NOATTACK,*)//мобов бить будем или как ?
SET(L2WALKER,ENABLE)//И это убираем
SET(FIGHTSTART)
delay(30000)
}
CharStatus(HP,<,100)
{
JMP(regen_and_defense)
}
ChangeWaitType(1)
delay(5000)
LABEL(TP)
USEITEM(Scroll of Escape[ID=736])
SET(FIGHTSTOP)
delay(20000)
POSINRANGE(145686,21114,-2136,15000)//Так не выйдет. Исправь то что в скобках
{
SET(L2WALKER,DISABLE)
SET(FIGHTSTOP)
delay(20000)//Это всё убрать
returnТоже не нужен
JMP(?)// метка продолжения скрипта
}
JMP(defense)
Какие ошибки заметил пометил.Кое что подправил.
Последний раз редактировалось nPoKa3HuK, 19.12.2009 в 02:25.
nPoKa3HuK, Правильнее делать SET(MON,NOATTACK,*)
при такой настройке бот будет бить только тех мобов которые на него заагрились и не будет трогать нейтральных.
nPoKa3HuK, Я придумал отличную идею для сое без лишних 20 секунд
Берем конфиг настроеный таким образом:
и сохраняем его под именем SmartSoe.INI
Код:
label(TrySmartSoe)
LoadConfig(SmartSoe.INI)
SET(RANGETYPE,STARTPOS,1000)
SET(MON,NOATTACK,*) //не бьем нейтральных мобов
SET(L2WALKER,ENABLE)
SET(FIGHTSTART)
ChagewaitType(0)//тут перс сядет и будет сидеть пока не
Delay(4444) //подбежит моб ударит, перса - чар встанет и будет его мочить
label(Добиваем Мобов)
Charstatus(STAND,==,1)//пока перс добивает добивает окружающих его мобов он будет стоять
jmp(Добиваем Мобов) //да да фигурные скобки не обязательны
//когда добьет ВСЕХ потревоживших его мобов перс присядет
SET(L2WALKER,Disable) //отрубаем бота
ChangeWaitType(1)//отрываем попу от земли
delay(3000)//анимация вставания
USEITEM(Scroll of Escape[ID=736])
Delay(2222)
SET(L2WALKER,Enable)//если снова нападут мобы и собьют сое бот их отфигачит
delay(25000)//анимация сое
charstatus(CHP,<,1)//убили легиты или новые сагрившиеся мобы
{
gohome()
delay(15000)
}
posoutrange(x,y,z,radius)//если НЕ в городе значит неадекваты сбили сое
{
say(пнх)
jmp(TrySmartSoe) //пробуем еще раз
}
LoadConfig(NormConfig.ini)
RETURN
Последний раз редактировалось mikser, 19.12.2009 в 03:26.