Возникла проблема с скриптом. Бот приходя на место и при проверки на оружие "хавает" ее и летит за оружием, но при этом оружие есть. И проверка на оружие при старте проходит нормально
Код:
LABEL(START)
SET(FIGHTSTOP)
MSG(Проверка лвл персонажа.)
CharStatus(LV,>,25)
{
MSG(Уровень персонажа слишком высок для продолжения.)
EXIT()
}
MSG(Проверка места нахождения)
MSG(Если персонаж не в Глудио, будет зделано сое)
PosoutRange(-14383,123742,-3143, 4000)
{
USEITEM(Scroll of Escape[ID=736])
delay(25000)
jmp(CHEK)
}
LABEL(CHEK)
PosoutRange(-14383,123742,-3143, 4000)
{
MSG(Приведите персонажа в центр Глудио)
EXIT()
}
MSG(Персонаж в Глудио, переходим к выполнению скрипта)
ItemCount(Scroll of Escape[ID=736],<,1)
{
MSG(Нехватает СОЕ. Идем покупать)
call(GROCERY)
}
ITEMCOUNT(Теневой Предмет: Шипастая Дубина[ID=8823],<=,0)
{
MSG(Бежим за оружием)
jmp(GUN)
}
jmp(BUFF)
LABEL(GROCERY)
MOVETO(-14355,123742,-3143)
MOVETO(-14349,124529,-3148)
MOVETO(-14628,124617,-3140)
MOVETO(-14852,124500,-3140)
NPCSEL(Гармония[ID=30254])
NPCDLG(Гармония[ID=30254])
DLGSEL(Купить припасы и минералы)
BUYITEM(Scroll of Escape[ID=736],5;)
MOVETO(-14852,124500,-3140)
MOVETO(-14628,124617,-3140)
MOVETO(-14349,124529,-3148)
MOVETO(-14355,123742,-3143)
Return()
LABEL(BUFF)
MOVETO(-14487,123203,-3143)
MOVETO(-14289,123013,-3143)
MOVETO(-14133,122334,-3077)
MOVETO(-14032,122158,-30 15)
MOVETO(-14013,122024,-3015)
NPCSEL(Помощник Новичков[ID=31077])
NPCDLG(Помощник Новичков[ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DLGSEL(Получить Дополнительную магию)
LABEL(RUN)
MSG(Бафнулись, теперь побежали)
MOVETO(-14073,122169,-3015)
MOVETO(-14112,122482,-3143)
MOVETO(-14170,122519,-3143)
MOVETO(-14221,122686,-3143)
MOVETO(-14475,123884,-3143)
MOVETO(-14258,124439,-3147)
MOVETO(-14271,125894,-3170)
MOVETO(-14061,127093,-3217)
MOVETO(-13913,127780,-3283)
MOVETO(-14771,128877,-3445)
MOVETO(-15507,129550,-3471)
MOVETO(-15776,129332,-3428)
MOVETO(-16622,129603,-3477)
MOVETO(-17251,129821,-3514)
MOVETO(-17817,130000,-3700)
MOVETO(-18638,130256,-3752)
MOVETO(-19665,130601,-3752)
MOVETO(-22204,131453,-3667)
MOVETO(-23401,131834,-3587)
MOVETO(-24423,132139,-3421)
MOVETO(-24362,131689,-3463)
MOVETO(-24651,131654,-3463)
MOVETO(-25134,131656,-3519)
MOVETO(-25931,131723,-3654)
MOVETO(-26762,131925,-3702)
MOVETO(-26815,131863,-3699)
MOVETO(-28236,132289,-3720)
MSG(Мы на месте.)
LABEL(EXP)
SET(FIGHTSTART)
MSG(Go! Go! Go!)
CHARSTATUS(CHP,<=,0)
{
SET(FIGHTSTOP)
MSG(Персонаж погиб)
GOHOME()
DELAY(3000)
JMP(BUFF)
}
!CharBuffs([Id=4326]) //Regeneration For Novice
{
MSG(Баффы закончились. Возвращаемся в город.)
SET(FIGHTSTOP)
DELAY(23000)
USEITEM(Scroll of Escape[ID=736])
DELAY(23000)
MSG(Мы в городе!)
JMP(START)
}
ITEMCOUNT(Теневой Предмет: Шипастая Дубина[ID=8823],<=,0)
{
SET(FIGHTSTOP)
DELAY(3000)
MSG(Летим за оружием)
USEITEM(Scroll of Escape[ID=736])
DELAY(23000)
jmp(GUN)
}
ITEMCOUNT(Заряд Души: D-Ранг[ID=1463,<=,50)
{
MSG(Нехватает сосок)
SET(FIGHTSTOP)
DELAY(23000)
USEITEM(Scroll of Escape[ID=736])
DELAY(23000)
EXIT()
}
LABEL(GUN)
MOVETO(-14355,123742,-3143)
MOVETO(-14272,124822,-3154)
MOVETO(-14248,124920,-3156)
MOVETO(-13295,124866,-3144)
NPCSEL(Хапрок[ID=30255])
NPCDLG(Хапрок[ID=30255])
DLGSEL(Личное Хранилище)
DLGSEL(Забрать предмет (личное хранилище))
LoadItem(Теневой Предмет: Шипастая Дубина[ID=8823],1)
delay(1000)
USEITEM(Теневой Предмет: Шипастая Дубина[ID=8823])
ITEMCOUNT(Теневой Предмет: Шипастая Дубина[ID=8823],==,0)
{
MSG(В ВХ нету нужного нам предмета)
EXIT()
}
MOVETO(-13295,124866,-3144)
MOVETO(-14248,124920,-3156)
MOVETO(-14272,124822,-3154)
MOVETO(-14355,123742,-3143)
jmp(START)
п.с. Понимаю что на таких уровнях не стоит так заморачиватся, но это просто тренировка в скриптописании для дальнейшего.
Последний раз редактировалось stima, 19.03.2010 в 16:14.
Думаю что дело было так. Стоит перс без оружия. Ты запускаешь скрипт, он смотри что нету пухи, идет берет и ОДЕВАЕТ, а потом смотрит в инвентарь и не видит одетую!?
Проверка идет только по инвентарю?
п.с. и немного не так), пуха есть уже в руках, он делает проверку и типо все норм прибегает на спот, но потом на споте еще одну не "хавает"
п.с.с. Хотя я очень сомневась по поводу проверки только по инвентарю. Первое это то что я протестил этот вариант, а второе это то что инвентарь в Л2 включает и шмот на чаре по умолчанию.
Последний раз редактировалось stima, 19.03.2010 в 17:17.
//-------------------------------------------------------------//Если лвл больше, чем 43, то сливаемся на гвардах//-------------------------------------------------------------
LABEL(delvl)//Смотрим лвл перса, если больше 43, то сливаемся на гвардах
LABEL(Startuem)
CHARSTATUS(LV,>=,43) ******** Тут меняешь c какого лвла надо сливаться
{
CALL(delvll)
}
RETURN
LABEL(delvll)
CHARSTATUS(LV,>=,41) ******** Тут меняешь до какого лвла надо сливаться
{
MOVETO(81562,53470,-1522)
MOVETO(81306,53412,-1562)
MOVETO(81115,53318,-1586)
FORCEATTACK(Гектор[ID=30197])
delay(20000)
CALL(proverka pri delvle)
CALL(tochki)
RETURN
}
LABEL(proverka pri delvle)
CHARSTATUS(CHP,<,1){
//чар мертв, отправляем в горд
GOHOME()
DELAY(10000)
}
LABEL(tochki)
POSINRANGE(82415,53812,-1522,2000){
MOVETO(82415,53812,-1522)
JMP(delvll)
RETURN
}
POSINRANGE(82469,55614,-1551,2000){
MOVETO(82469,55614,-1551)
MOVETO(82345,54127,-1522)
JMP(delvll)
RETURN
}
POSINRANGE(79949,53099,-1586,2000){
MOVETO(79949,53099,-1586)
MOVETO(80606,53630,-1586)
MOVETO(82175,53368,-1522)
JMP(delvll)
RETURN
}
POSINRANGE(81250,55710,-1560,2000){
MOVETO(81695,55571,-1551)
MOVETO(82131,55385,-1551)
MOVETO(82205,55012,-1551)
MOVETO(82124,53717,-1522)
MOVETO(82269,54606,-1551)
MOVETO(82295,54274,-1522)
JMP(delvll)
RETURN
}
RETURN
Извините что не так в этом скрипте Я только учуьс писать поэтому сам еле как написал Но бот когда становится 43м сливается до 41 начинает стоять и не переходит на следующую подпрограмму.
Последний раз редактировалось NLObP, 20.08.2010 в 10:59.
Ну во-первых у тебя в скрипте два места, куда надо забить лвл, до которого сливаемся. Во втором месте как раз стоит 41, так что все верно...
В метке LABEL(proverka pri delvle) нет возврата (RETURN). Т.е. после выполнения ее, скрипт бежит дальше на метку LABEL(tochki). Но это думаю фиг с ним. Просто если перс не умер, то прыгает на LABEL(tochki), а когда умер, выполняет LABEL(tochki) два раза
CALL(proverka pri delvle)
CALL(tochki).
Ну и нет возврата из метки LABEL(delvll), поэтому он там и зацикливается.
Короче ща навскидку поправлю...
Эту метку ставишь в скрипт, она вызывает подпрограмму слива: Оффтоп
Код:
//скрипт выше
//скрипт выше
LABEL(delvl)
CHARSTATUS(LV,>=,43) ******** Тут меняешь c какого лвла надо сливаться
{
JMP(delvll)
}
// таким образом, если lvl<43, то побежал скрипт ниже
//скрипт ниже
//скрипт ниже
//скрипт ниже
//скрипт ниже
Столкнулся с проблемой, снятия слипа "Свитком пробуждения" функция снятия дебафа слип работает некоректно, ну тоесть вобще неработает. перепробовал все или работает рандомно после смерти моба. Возможно кто то сталкивался с такой проблемой, и нашол решение?