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, Правильнее делать SET(MON,NOATTACK,*)
при такой настройке бот будет бить только тех мобов которые на него заагрились и не будет трогать нейтральных.
Но тогда в валкере должна стоять настройка чтоб атаковал тех кто в таргете
Добавлено через 33 минуты
Цитата:
Сообщение от Retaech
SET(L2WALKER,DISABLE) в каких случаях по твоему это может помешать?
Я не сказал что помешает, просто зачем вырубать весь валкер.
Цитата:
Сообщение от Retaech
return для возврата к call(DEFENSE_SOE), LABEL(DEFENSE_SOE) там не случайно
Хоть убей меня, но не вижу я переменной CALL
Цитата:
Сообщение от Retaech
SET(RANGETYPE,STARTPOS,1000) чем будет плохо, если цифру 1000 даже увеличить? ведь с SET(MON,NOATTACK,*) бот будет атаковать только защищаясь?
Цитата:
Сообщение от Retaech
Почему POSINRANGE не выйдет, проверка координат с радиусом у меня всегда работала. Я задумывал что скрипт зацикливается и при попадании в город сработает return - возврат туда где будет стоять call(DEFENSE_SOE), а до этого у бота продолжает стоять радиус защиты 1000 и если сое сбивают он сразу защищается и дальше идет возврат к проверке хп и реген с сое по новой.
Зачем delay после сое, ведь каст могут сбить во время него.
Так что вроде все должно работать?
По твоему скрипту ты сделал ТП и сразуже проверяеш, а не в городе ли он. Естественно нет, поэтому ставим задержку.
Последний раз редактировалось nPoKa3HuK, 19.12.2009 в 10:54.
Причина: Добавлено сообщение
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.