Показать сообщение отдельно
Старый 19.12.2009, 04:17   #20
Пользователь
 
Аватар для Retaech
 
Регистрация: 13.11.2009
Сообщений: 71
Сказал Спасибо: 3
Имеет 2 спасибок в 2 сообщенях
Retaech пока неопределено
По умолчанию

Цитата:
Сообщение от nPoKa3HuK Посмотреть сообщение
Какие ошибки заметил пометил.Кое что подправил.
SET(L2WALKER,DISABLE) в каких случаях по твоему это может помешать?
return для возврата к call(DEFENSE_SOE), LABEL(DEFENSE_SOE) там не случайно
SET(RANGETYPE,STARTPOS,1000) чем будет плохо, если цифру 1000 даже увеличить? ведь с SET(MON,NOATTACK,*) бот будет атаковать только защищаясь?
Почему POSINRANGE не выйдет, проверка координат с радиусом у меня всегда работала. Я задумывал что скрипт зацикливается и при попадании в город сработает return - возврат туда где будет стоять call(DEFENSE_SOE), а до этого у бота продолжает стоять радиус защиты 1000 и если сое сбивают он сразу защищается и дальше идет возврат к проверке хп и реген с сое по новой.
Зачем delay после сое, ведь каст могут сбить во время него.
Так что вроде все должно работать?
Цитата:
Сообщение от KoAn Посмотреть сообщение
Ребят большая просьба , когда пишите скриты тут или кусочки, поясняйте строчки, как это делалось в начале! это же тема для новичков, а не для гуру =) а то половину понимаю,половину нет)
Цитата:
LABEL(DEFENSE_SOE)//метка для вызова по CALL(DEFENSE_SOE)

SET(L2WALKER,DISABLE)
SET(FIGHTSTOP)

LABEL(regen_and_defense)

CHARSTATUS(CHP,==,0)//если сдох - летит в город и производится возврат к CALL(DEFENSE_SOE)
{
SET(FIGHTSTOP)
SET(L2WALKER,DISABLE)
GOHOME()
DELAY(30000)
return//завершает подпрограмму, включая продолжение скрипта
}

CharStatus(HP,<,100)//если хп меньше 100%
{
ChangeWaitType(0)//пробуем сесть чтобы отрегенить хп
}

delay(5000)

label(defense)

CharStatus(STAND,==,1)//если чар встал, значит его бьют - отбиваемся
{
SET(RANGETYPE,STARTPOS,1000)
SET(MON,NOATTACK,*)
SET(L2WALKER,ENABLE)
SET(FIGHTSTART)//включаем боевой режим с радиусом 1000 и атакой только нападающих
delay(30000)//отбиваемся 30сек и проверяем хп
}

CharStatus(HP,<,100)//если хп меньше 100%
{
JMP(regen_and_defense)
}

ChangeWaitType(1)//когда 100% хп - встаем и
delay(5000)
USEITEM(Scroll of Escape[ID=736])//используем сое

POSINRANGE(145686,21114,-2136,15000)//попав в город произойдет возврат к CALL(DEFENSE_SOE)
{
SET(L2WALKER,DISABLE)
SET(FIGHTSTOP)//выключаем автобой
delay(20000)//задержка для прогрузки города после сое
return//завершает подпрограмму, включая продолжение скрипта
}

JMP(defense)//защита против сбива каста во время сое
Добавлено через 21 минуту
Цитата:
Сообщение от mikser Посмотреть сообщение
nPoKa3HuK, Я придумал отличную идею для сое без лишних 20 секунд
Берем конфиг настроеный таким образом:
Вложение 819
и сохраняем его под именем 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
Чтото я не вкурил в твою задумку, можно подробнее? Что дает конфиг - сидеть при хп меньше 101% (всегда сидеть?) и встать при хп больше 102% (никогда не вставать?)?
И почему после Charstatus(STAND,==,1) скобки {} не обязательны у тебя, это же проверка, и надо чтобы при соответсвии условию (чар соит) выполнялось то что внутри них, иначе зачем вообще она?

Последний раз редактировалось Retaech, 19.12.2009 в 04:17. Причина: Добавлено сообщение
Retaech вне форума   Ответить с цитированием