PDA

Просмотр полной версии : Практические примеры скриптинга (ошибки новичков)


KoAn
18.12.2009, 05:57
Назрело)) есть кучи тем по скриптам, но новичку который реально начал писать скрипты , сложновать, нет тему бде бы можно было выложить кусочек кода и знаюшие люди помогли бы разобраться в ошибках новичкам)
1 Проблемка)

Кто нибудь может выложить этот кусочек, и как сделать так что бы после смерти чар нормально возврашался к предыдушему пункту квеста, а не шпарил код дальше) знаю вопрос нубский, но я и сам новичек в скриптописании, еще хотелось бы узнать где можно найти базу ID предметов на первые профы)

Negris
18.12.2009, 06:40
где можно найти базу ID предметов на первые профы)

http://www.towalker.net/down/id-e.zip


сделать так что бы после смерти чар нормально возврашался к предыдушему пункту квеста, а не шпарил код дальше) знаю вопрос нубский

если знаешь зачем спрашиваешь? :D

CHARSTATUS(CHP,<=,2)
{
msg(Sdoh)
Set(FightStop)
DELAY(1000)
GOHOME()
DELAY(10000)
jmp(метка, куда нужно вернуться по скрипту)
}

KoAn
18.12.2009, 08:11
Решил переименовать тему в практические примеры скриптинга)
Вот имено что знаю вопрос нубский, но сам то нуб) по этому и спрашиваю)))
Есть необходимость скажем забить квест монстров на поляне и вставить проверку на смерть и на зачистку, получаем следущее??

---------------------------------------------------------------------------
// приперли на поляну
LOADCONFIG(LOL.ini) -загрузка иника
---------------------------------------------------------------------------
Lable(Oxota)
SET(FIGHTSTART) - даем команду боту на начало атаки

ITEMCOUNT(УШИ слона[ID=1205],<,20) - задаем условие что при 20 ушах, переходим дальще по скрипту
{
DELAY(1000)- задаем время ожидания продолжения действия
CALL(1) - вот тут ставим условие проверки на смерть
CALL(2) - вот тут ставим проверку на хвост
JMP(Oxota) - прыгает на начало блока пока соблюдаются условия CALL(1) и CALL(2)
}
DELAY(5000) -после того как саберем 20 ушей и выполним все условия ждем 5 сек
USEITEM(Scroll of Escape[ID=736]) - юзаем СОЕ
----------------------------------------------------------------------------

СAll(1) - Проверка на смерть
CharStatus(HP,<=,0) - хп меньше либо равно 0
{
GOHOME() - портуемся в город
DELAY(5000) - ждем

тело скрипта в городе и дароги обратно на поляну

----------------------------------------------------------------------------
Call(2)

ITEMCOUNT(УШИ слона[ID=1205],<,20) -проверка на наличие 20 итемов
DELAY(1000)

Set(DefPath,Clear) - сложно сказать зачем эта строчка наверное зачистка???
CharStatus(HP,<,100) - при хп меньше 100???? не понимаю смысла 2х строк =(
{
MSG(Бойня 30 секунд)
SET(MON,ATTACK,*) - атакует всех мобов
SET(FIGHTSTART) - начало бойни
Set(RangeType,StartPos,50) - в радиусе 50 от стартовой точки????
DELAY(30000)
}
SET(FIGHTSTOP) - остановка бойни
SET(MON,NOATTACK,*) - никого не атачим
JMP(Oxota) -прыгаем на "Охоту"

Частично написал сам, частично подглядел у других, некоторые строчки не врубаюсь( может кто то прокоментирует где ощибки?

B0R0DA
18.12.2009, 09:17
// приперли на поляну
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, от которой сюда пришли
тело скрипта в городе и дароги обратно на поляну

----------------------------------------------------------------------------
исправлены ошибки
добавлено от себя

З.Ы. ужос скока ошибок :) если не все исправил сорри... пошел спать...

Retaech
18.12.2009, 09:35
Set(DefPath,Clear) чистит таблицу маршрута.

А что за проверка на зачистку тоже не могу понять.

KoAn
18.12.2009, 10:06
З.Ы. ужос скока ошибок :) если не все исправил сорри... пошел спать...

ОгоГО! действительно много ошибок :( , по поводу
SET(MON,NOATTACK,*)
SET(MON,ATTACK,name[ID=XXX])

думал что это проше регулировать ini файлом, ведь когда скрипт пишешь один хрен на поляне тыркнеш информ да и покикаеш всех левых мобов, хотя с другой стороны твой сет разумней, малоли ГМ какой решит проверить, а тут только 1 ID будет моба

По поводу заклемленого SET(2) была идея сделать проверку на то что когда чар выбъет все 20 итемов то если на нем висят мобы он их завалит, отсечет хвост так сказать) подождет и портнется...

А сейсам получается что он взял 20 ушей и хочет портнутся, тут вдруг на него агрится моб и сбивает ТП, и что дальше? либо скрипт продолжает жить своей жизнью, либо чара закалачивают) он же уже вышел их файта и из лейбла Охота тоже, вот как то надо это реализовать, у меня часто такое бывает особено на локациях с аграми, что мобы сбивают телепортацию,я попытался в меру своей корявости изобразить свои мысли в SET(2) =)
За Return() спасибо, как то не обратил внимание

B0R0DA
18.12.2009, 16:54
А сейсам получается что он взял 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) нас отправят в город

вообщем масса проверок, стоит только включить фантазию и придумать оптимальный для себя вариант ;)

Retaech
18.12.2009, 17:29
Не плохая идея, наверно стоит еще добавить чтобы во время проверки садился, ато хп может долго регениться. А еще моб может напасть во время сое, так что на время ег окаста можно своять еще одну проверочку.

nPoKa3HuK
18.12.2009, 23:28
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)//и в город


А если нам телепорт сбивает лигет? Или произошло что-то не предвиденное.
Я делаю такую проверку:
После всех вышеописанных проверок и использования телепорта
DELAY(20000) // ожидание ТП
POSINRANGE(x,y,z,100) // Указываем в скрипте то количество точек, сколько точек респа в городе в которыйделаем ТП.( у меня здесь указано две точки)
{
MSG(мы в городе)
JMP(?) //Ставим сюда метку продолжения скрипта
}
POSINRANGE(x,y,z,100)
{
MSG(мы в городе)
JMP(?) //Ставим сюда метку продолжения скрипта
}
JMP(отбиваемся) // Если мы не оказались ни в одной из указанных точек

[I]Добавлено через 35 минут
Не плохая идея, наверно стоит еще добавить чтобы во время проверки садился, ато хп может долго регениться.

Если честно, то не вижу в этой проверке смысла, но раз ты так хочеш:
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)

B0R0DA
19.12.2009, 00:01
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])
LABEL(На Попу)
ChangeWaitType(0)
DELAY(30000)
ChangeWaitType(1)
JMP(Fatality)

ммм... ану сам исправь этот кусок:) не будет он работать ка надо ;)

nPoKa3HuK
19.12.2009, 00:35
ммм... ану сам исправь этот кусок:) не будет он работать ка надо ;)

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)
Вылетело из головыю. Спасибо за подсказку.

KoAn
19.12.2009, 00:35
Отличная темка получается! как бот заработает количество вопросов сразу увеличится =)

mikser
19.12.2009, 00:53
кароче это все не 100% порты в город
нет гарантий что за 20 секунд бот убьет всех мобов а может и мобов то нет вообще зачем ждать лишние 20-30 сек?
Нада ченить придумать поинтересней
например сесть и подождать если перса ударить моб он встанет - если перс встал то мочим мобов в радиусе 100 (хотя от арчеров это не спасет, тогда радиус можно увеличить и поставить set(mon,NoAttack))

Если перс не встал то сидим и ждем пока хп не станет 100% после чего делаем сое

nPoKa3HuK
19.12.2009, 01:12
кароче это все не 100% порты в город
нет гарантий что за 20 секунд бот убьет всех мобов а может и мобов то нет вообще зачем ждать лишние 20-30 сек?
Нада ченить придумать поинтересней
например сесть и подождать если перса ударить моб он встанет - если перс встал то мочим мобов в радиусе 100 (хотя от арчеров это не спасет, тогда радиус можно увеличить и поставить set(mon,NoAttack))

Если перс не встал то сидим и ждем пока хп не станет 100% после чего делаем сое

Примерно вот так.


LABEL(Fatality)
SET(RANGETYPE,STARTPOS,100)
SET(MON,ATTACK,*)
SET(FIGHTSTART)
LABEL(HP)
CharStatus(HP,<,100)//если хп меньше100% сажаем его на попу
{
JMP(На Попу)
}
SET(FIGHTSTOP)
USEITEM(Scroll of Escape[ID=736])
JMP(?)//Метка продолжения скрипта
LABEL(На Попу)
ChangeWaitType(0)
CharStatus(STAND,==,1)
{
Delay(20000)
JMP(На Попу)
}
JMP(HP)

Retaech
19.12.2009, 01:28
Если честно, то не вижу в этой проверке смысла, но раз ты так хочеш:


Почему же нет? Пока чар будет стоя ждать реген хп, на него может успеть напасть другой моб.

А у меня такой скрипт получился:
LABEL(DEFENSE_SOE)
SET(L2WALKER,DISABLE)
SET(FIGHTSTOP)
LABEL(regen_and_defense)
CHARSTATUS(CHP,==,0)
{
SET(FIGHTSTOP)
SET(L2WALKER,DISABLE)
GOHOME()
DELAY(30000)
return
}
CharStatus(HP,<,100)
{
ChangeWaitType(0)
}
delay(5000)
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)
USEITEM(Scroll of Escape[ID=736])
POSINRANGE(145686,21114,-2136,15000)
{
SET(L2WALKER,DISABLE)
SET(FIGHTSTOP)
delay(20000)
return
}
JMP(defense)

Работает так: сначала чар пробует сесть, если ударят он начнет защищаться 30 секунд, потом попробует сесть и снова будет отбиваться если бьют и так до тех пор пока не отрегенит все хп или не сдохнет - в первом случае использует сое и если собьют каст то все начнется сначала.
П.С. Нужно поправить координаты города куда будем лететь.

nPoKa3HuK
19.12.2009, 02:06
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)

Какие ошибки заметил пометил.Кое что подправил.

KoAn
19.12.2009, 02:16
Ребят большая просьба , когда пишите скриты тут или кусочки, поясняйте строчки, как это делалось в начале! это же тема для новичков, а не для гуру =) а то половину понимаю,половину нет)

по поводу SET(L2WALKER,DISABLE) - что конктетно выключает команда в боте? останавливает ini фаил?

просто если мы придя на поляну грузим ini а потом по набору 20 итемов
Его не выключаем, будет же конфликт скрипта с ботом

SET(RANGETYPE,STARTPOS,1000) действительно слишком большой радиус, там где мобы расположены компактно скрипт замкнется на всегда, считай пока ты лупиш 1 в радиусе респнится другой и так до бесконечности

mikser
19.12.2009, 02:50
nPoKa3HuK, Правильнее делать SET(MON,NOATTACK,*)
при такой настройке бот будет бить только тех мобов которые на него заагрились и не будет трогать нейтральных.

mikser
19.12.2009, 03:22
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

Retaech
19.12.2009, 04:17
Какие ошибки заметил пометил.Кое что подправил.
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 после сое, ведь каст могут сбить во время него.
Так что вроде все должно работать?
Ребят большая просьба , когда пишите скриты тут или кусочки, поясняйте строчки, как это делалось в начале! это же тема для новичков, а не для гуру =) а то половину понимаю,половину нет)
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)//используем сое

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

JMP(defense)//защита против сбива каста во время сое

[I]Добавлено через 21 минуту
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) скобки {} не обязательны у тебя, это же проверка, и надо чтобы при соответсвии условию (чар соит) выполнялось то что внутри них, иначе зачем вообще она?

KoAn
19.12.2009, 05:18
Кстати вариант с ини тоже ничего, можно задать путь на нейтральную зону около поляны где точно нет мобов и оттуда сделать сое!
А скрипт прописать как уже выше сказано
SET(MON,NOATTACK,*)

Кстати обязательно ли после LoadConfig(ххх.INI) ставить SET(L2WALKER,ENABLE) а по окончании SET(L2WALKER,DISABLE) ???

nPoKa3HuK
19.12.2009, 10:52
nPoKa3HuK, Правильнее делать SET(MON,NOATTACK,*)
при такой настройке бот будет бить только тех мобов которые на него заагрились и не будет трогать нейтральных.

Но тогда в валкере должна стоять настройка чтоб атаковал тех кто в таргете

Добавлено через 33 минуты
SET(L2WALKER,DISABLE) в каких случаях по твоему это может помешать?

Я не сказал что помешает, просто зачем вырубать весь валкер.

return для возврата к call(DEFENSE_SOE), LABEL(DEFENSE_SOE) там не случайно

Хоть убей меня, но не вижу я переменной CALL


SET(RANGETYPE,STARTPOS,1000) чем будет плохо, если цифру 1000 даже увеличить? ведь с SET(MON,NOATTACK,*) бот будет атаковать только защищаясь?


Почему POSINRANGE не выйдет, проверка координат с радиусом у меня всегда работала. Я задумывал что скрипт зацикливается и при попадании в город сработает return - возврат туда где будет стоять call(DEFENSE_SOE), а до этого у бота продолжает стоять радиус защиты 1000 и если сое сбивают он сразу защищается и дальше идет возврат к проверке хп и реген с сое по новой.
Зачем delay после сое, ведь каст могут сбить во время него.
Так что вроде все должно работать?
По твоему скрипту ты сделал ТП и сразуже проверяеш, а не в городе ли он. Естественно нет, поэтому ставим задержку.

Retaech
19.12.2009, 12:24
По твоему скрипту ты сделал ТП и сразуже проверяеш, а не в городе ли он. Естественно нет, поэтому ставим задержку.

Вроде скрипт проверяет это до тех пор пока не окажется в городе или хп не станет меньше 100%

nPoKa3HuK
19.12.2009, 12:49
Вроде скрипт проверяет это до тех пор пока не окажется в городе или хп не станет меньше 100%

Подобных проверок можно написать много. Я написал так, как мне показалось будет лучше.

KoAn
19.12.2009, 13:06
Очередная задачка =)

Цель: Скрипт приводит Чара к поляне, на ней квест моб с миньенами,
нужно убитьквест моба, умереть от минов и портнутся в город.
Все осложняется наличием большого количесва желающих пройти квест и редким спамом моба.

Итак мое предложение:

MOVETO(16285,-118570,-784)
SET(RANGETYPE,16285,-118570,-784,700)-чар будет действовать в заданом радиусе

LABEL(1)
SET(MON,NOATTACK,*) - не будет атаковать никаких мобов
SET(MON,ATTACK,Baranka's Messenger[ID=XXX]) - выбраный моб, хз его ID =((((
SET(FIGHTSTART) - стартуем атаку
ITEMCOUNT(Letter to Human[ID=1557],<,1) - условие получение 1 письма
CALL(2) -Если умерли выполняются условия LABLE(2)
DeLAY(1000) - частота проверки наличия письма в рюкзаке
jmp(1)

LABEL(posle)
SET(FIGHTSTOP) - остановка бойни
DELAY(10000) -после того как получили письмо ждем 10 сек
CALL(2) - проверка на смерть
DELAY(4000) - ждем 4 секунды

USEITEM(Scroll of Escape[ID=736]) - юзаем СОЕ

//поподаем в город


// обслуживающие лэйблы
LABEL(2)
CharStatus(HP,<=,0) - хп меньше либо равно 0
{
GOHOME() - портуемся в город
DELAY(5000) - ждем
}
MOVETO (x,y,z)
RETURN() -ХЗ что в скобки ставить? чтоб вернуться назад на путь до LEBEL(1)????

Ребят поправьте ошибки пожалуйста!знаю что есть наверняка или написано криво)

Дальше, такой вопрос, вот я зациклил 2 LABEL - (1) и (posle) на проверку смерти
LABEL(2)!НО, при смерти после получения письма скрипт должен продолжать движение,а сейчас получается он будет возвращатся обратно, можно ли в LABEL(2) засунуть проверку на итем? что бы с помошью нее как то делать разветвление движения, как правильно сделать?

LABEL(2)
CharStatus(HP,<=,0) - хп меньше либо равно 0
{
GOHOME() - портуемся в город
DELAY(5000) - ждем
}
CALL(item)
MOVETO (x,y,z)
RETURN() - опять хз что в скобки поставить

LABEL(item)
ITEMCOUNT(Letter to Human[ID=1557],<,1)
Delay (1000)
Jmp(posle)

Как то так.... еще хотелось бы узнать где можно глянуть ID квест мобов

nPoKa3HuK
19.12.2009, 14:35
Очередная задачка =)

Цель: Скрипт приводит Чара к поляне, на ней квест моб с миньенами,
нужно убитьквест моба, умереть от минов и портнутся в город.
Все осложняется наличием большого количесва желающих пройти квест и редким спамом моба.

Итак мое предложение:
LABEL(na spot)//метка начала передвижения на место кача. Если (MOVETO(16285,-118570,-784)) это точка в городе, и в городе несколько точек респа, то необходимо будет сделать еще одну проверку. Но мы предположим, что точки респа находятся не далеко от указанной ними точки. И ботне будет ни где застревать.
MOVETO(16285,-118570,-784)
SET(RANGETYPE,16285,-118570,-784,700)-чар будет действовать в заданом радиусе

LABEL(1)
SET(MON,NOATTACK,*) - не будет атаковать никаких мобов
SET(MON,ATTACK,Baranka's Messenger[ID=XXX]) - выбраный моб, хз его ID =((((
SET(FIGHTSTART) - стартуем атаку
ITEMCOUNT(Letter to Human[ID=1557],<,1) - условие получение 1 письма
{
CALL(2) -Если умерли выполняются условия LABLE(2)
DeLAY(1000) - частота проверки наличия письма в рюкзаке
jmp(1)
}

LABEL(posle)
SET(FIGHTSTOP) - остановка бойни
DELAY(10000) -после того как получили письмо ждем 10 сек
CALL(2) - проверка на смерть// надо или убрать или заменить другой проверкой на смертьDELAY(4000) - ждем 4 секунды
Здесь можем сделать проверку нужно ли нам делать СоЕ
POSINRANGE(16285,-118570,-784,700)
{
USEITEM(Scroll of Escape[ID=736]) - юзаем СОЕ
Delay(20000)
JMP(?)переход на следующую метку в скрипте
}
JMP(?)переход на следующую метку в скрипте

//поподаем в город


// обслуживающие лэйблы
LABEL(2)
CharStatus(HP,<=,0) - хп меньше либо равно 0
{
GOHOME() - портуемся в город
DELAY(5000) - ждем
JMP(na spot)
}
MOVETO (x,y,z) можно убрать
RETURN() -ХЗ что в скобки ставить? чтоб вернуться назад на путь до LEBEL(1)???? Ни чего!

Ребят поправьте ошибки пожалуйста!знаю что есть наверняка или написано криво)

Дальше, такой вопрос, вот я зациклил 2 LABEL - (1) и (posle) на проверку смерти
LABEL(2)!НО, при смерти после получения письма скрипт должен продолжать движение,а сейчас получается он будет возвращатся обратно, можно ли в LABEL(2) засунуть проверку на итем? что бы с помошью нее как то делать разветвление движения, как правильно сделать?

LABEL(2)
CharStatus(HP,<=,0) - хп меньше либо равно 0
{
GOHOME() - портуемся в город
DELAY(5000) - ждем
CALL(item)
JMP(na spot)
}
CALL(item)
JMP(1)

LABEL(item)
ITEMCOUNT(Letter to Human[ID=1557],<,1)
{// не забывай ставить скобки
Delay (1000)
Return()// при использовании команды Call необходимо ставить Return(), чтобы вернуться к этому CALL
}
JMP(posle)

Как то так.... еще хотелось бы узнать где можно глянуть ID квест мобов

В команде Return в скобках ни чего ставить не надо. Если что сильно не бейте. Возможно я что-то проглядел.

moondog
19.12.2009, 14:57
Очередная задачка =)

Цель: Скрипт приводит Чара к поляне, на ней квест моб с миньенами,
нужно убитьквест моба, умереть от минов и портнутся в город.
Все осложняется наличием большого количесва желающих пройти квест и редким спамом моба.



Ух ты, пахнет скриптом на раскачку орков)))

KoAn
19.12.2009, 15:02
В команде Return в скобках ни чего ставить не надо. Если что сильно не бейте. Возможно я что-то проглядел.
Боже упоси бить!) спасибо сказать надо!

Ошибок сделал меньше) что уже радует!) спасибо за исправления реально нужны советы и помощь! а то где еше уму научиться разуму =)
Скобки я не забывал поставить я просто не знал что надо их ставить, еще плохо в синтаксисе понимаю, вот от суда и такие ляпы

Ух ты, пахнет скриптом на раскачку орков)))
Абсолютно верно) я уже наваял линейный драйвер-скрипт, с обязательным присутствием за компом, вот сейчас улучшать пытаюсь, убирая все в автоматические функции. ;)
Но новичку со стажем 3й день за скриптами, сложновато разобраться, а наглядные примеры будут всем полезны на будущее

wowii
12.01.2010, 00:01
Тема нужная. Прикрепите её!

Добавлено через 3 часа 51 минуту
Народ, подскажите как решить проблему.

Мне нужно, чтобы скрипт начинал работать с определённой точки => перед этой точкой я поставил перед всеми строками "//12334". В результате walker зафлуживает приват чара сообщениями "//12334" и дойдя до нужной мне точки начинает работать. Как избежать засирания чата?

Ещё вопрос - можно ли как-то организовать автоматизацию сосок, при условии, что чар только что их получил? [т.е. хозяин не поставил на автомат перед тем, как включить скрипт]

B0R0DA
12.01.2010, 05:52
перед этой точкой я поставил перед всеми строками "//12334"
чето не совсем понял зачем ты поставил //12334

На счет сосок - можно выставить в монс сеттинг чтоб юзал нужные соски, но кажись оно не работает, по крайней мере не работало, когда я последний раз пробовал, хотя может я где-то продуплил. Но особо там не запаривался, так как сразу решил реализовать это скриптом: USEITEM(Soulshot: ?-grade[ID=ХХХ]). Просто во время сражения у меня зацыклена проверка на смерть, координаты места сражения,..., и юз шотов.

wowii
12.01.2010, 12:58
чето не совсем понял зачем ты поставил //12334


цифры - просто так ставил. Строчка, перед которой стоит "//" - не исполняется, вот я и метил их цифрами - чтобы в глаза лучше бросалось, при редактировании скрипта.
Дак как избежать засирания чата приват сообщениями от бота?

viteksamb
12.01.2010, 13:23
Ребят, а как отключать только БОЙ командой валкера, а не полностью его настройки?

Anafema
12.01.2010, 14:37
SET(StopFight)

B0R0DA
12.01.2010, 14:45
Ребят, а как отключать только БОЙ командой валкера, а не полностью его настройки?
SET(FIGHT,STOP)


Дак как избежать засирания чата приват сообщениями от бота?
значит помечай после команды. пример:
SET(FIGHT,STOP)//остановка боя

или:

JMP(1)
//блаблабла
LABEL(1)

viteksamb
12.01.2010, 14:56
SET(StopFight)
SET(FIGHT,STOP)

Ыыыы... А как правильно? :)

Advanced
12.01.2010, 16:50
SET(STOPFIGHT)... по крайней мере у меня так работает

Добавлено через 12 минут
говорили мне не злоупотребляй go to, тааких кривых скриптов понаписал....поглядел - все намного проще....переделаю можт выложу даже....

по сабжу... проблемка: в профе на тира надо убить Алых Саламандр и не считается итем III Кожаная Сумка (полная), 1я, 2я сумка норм при появлении заходит в цикл
ITEMCOUNT(III Кожаная Сумка (полная)[ID=1599],>,0) не хочет считать

[I]Добавлено через 1 минуту
eупс...

B0R0DA
12.01.2010, 17:10
SET(STOPFIGHT)... по крайней мере у меня так работает
странно, у меня не работает. специально проверил

работает и
SET(FIGHT,STOP)
и
SET(FIGHTSTOP)

Advanced
12.01.2010, 17:15
Написал скрипты на 1-21 для нужных мне проф, и тока в этом месте косяк.....

ЗЫ. Другое дело как написал)) переделывать и переделывать еще их

B0R0DA
12.01.2010, 17:23
ITEMCOUNT(III Кожаная Сумка (полная)[ID=1599],>,0) не хочет считать
попробуй только ИД сумки оставить
ITEMCOUNT([ID=1599],>,0)

Advanced
12.01.2010, 18:28
Пасип помогло, учился на примерах, везде было название, по ID конечно проще все

wowii
12.01.2010, 18:51
Люди, они после сегодняшней проверки ID мобов поменяли что ли? Писал вчера скрипт на 1-ю профу гному. Сегодня он пашет почти полностью - мобов не убивает(. По NPC бегает, разговаривает с ними, тп'шиться куда надо, прибегает на точку и встаёт

MOVETO(139889,-206151,-3723)
SET(MON,NOATTACK,*)
SET(MON,ATTACK,Hunter Tarantula[ID=20403])
SET(MON,ATTACK,Plunder Tarantula[ID=20508])
SET(RANGETYPE,RAND)
SET(FIGHTSTART)
LABEL(check_item4)
ITEMCOUNT(Tarantula Spider Silk[ID=1493],<,1)
{
DELAY(3000)
JMP(check_item4)
}
DELAY(3000)
SET(RANGETYPE,STARTPOS,5)
LABEL(ToTPart4)
CharStatus(HP,<,50)
{
CALL(ToTPart4)
}
LABEL(ToTPart5)
CharStatus(MP,<,100)
{
CALL(ToTPart5)
}
SET(RANGETYPE,STARTPOS,1500)
SET(FIGHTSTOP)
SET(RANGETYPE,STARTPOS,100)
SET(MON,ATTACK,*)
SET(FIGHTSTART)
SET(FIGHTSTOP)
USEITEM(Свиток Телепорта: Деревня Камаэль[ID=12753])

B0R0DA
12.01.2010, 20:43
попробуй без имен мобов, только ИД. выше ж похожая проблема с квест итемом
SET(MON,ATTACK,[ID=20403])
SET(MON,ATTACK,[ID=20508])

З.Ы. ИД мобов и итемов не менялись еще с С4 (насколько я помню), рискну предположить что и с самих С1, только добавлялись новые.

wowii
12.01.2010, 22:51
Хмм, работает. Спасибо.

Arg
14.01.2010, 08:08
Смотрю всякие команды на бота и не пойму как сделать:
нужно в скрипте выделять персонажа (в игре это просто команда /target <name>) а в скрипте то как это сделать?

Kirsha
14.01.2010, 09:53
хочу реализовать в скрипте таку фигню как говорить в пм
тоесть
допустим я ставлю себя на бота а мой знакомый который сомной в пати норм играет и мне надо например сделать
label(begin)
call(gorod_baff)
call(kach)
goto(begin)
label(gorod_baff)
/тут перс в городе бежит за бафом и портится на нужное место
/включает волкер
return
label(kach)
/кач 53 мин с проверками на смерть
/и предупреждением в пм что допустим через 20 сек я в город(или меня суки убили я в город)
/скрол телепорта
/выключает волкер
return

как сказать в шаут я знаю но хотелось бы в пм

Anafema
14.01.2010, 18:17
хочу реализовать в скрипте таку фигню как говорить в пм
тоесть
допустим я ставлю себя на бота а мой знакомый который сомной в пати норм играет и мне надо например сделать
label(begin)
call(gorod_baff)
call(kach)
goto(begin)
label(gorod_baff)
/тут перс в городе бежит за бафом и портится на нужное место
/включает волкер
return
label(kach)
/кач 53 мин с проверками на смерть
/и предупреждением в пм что допустим через 20 сек я в город(или меня суки убили я в город)
/скрол телепорта
/выключает волкер
return

как сказать в шаут я знаю но хотелось бы в пм

в пм никак не скажеш, а то что ты хочеш реализовать - поищи тему: Болванка скрипта на кач или как то так

Kirsha
15.01.2010, 01:22
в пм никак не скажеш, а то что ты хочеш реализовать - поищи тему: Болванка скрипта на кач или как то так

да скрипты то я писать вроде научился бегают сволочи...
просто появилась необходимость именно диалога пофиг буду кричать в шаут
а тогда такой вопрос возможно в срипте написать такую штуку если например мне сказали тп я тп(естественно с прерываниями и прочим проста нужна какая либо проверка на нужную команду... мож он сможет юзать итем не нужный и по его кол-ву телепортироваться в город там докупить и дальше)?
как вариант полезности етого можно было бы удаленно моему другу перед уходом спать сказать мне "все хватит и бот бы остановился "

Anafema
15.01.2010, 11:55
да скрипты то я писать вроде научился бегают сволочи...
просто появилась необходимость именно диалога пофиг буду кричать в шаут
а тогда такой вопрос возможно в срипте написать такую штуку если например мне сказали тп я тп(естественно с прерываниями и прочим проста нужна какая либо проверка на нужную команду... мож он сможет юзать итем не нужный и по его кол-ву телепортироваться в город там докупить и дальше)?
как вариант полезности етого можно было бы удаленно моему другу перед уходом спать сказать мне "все хватит и бот бы остановился "

это в самом боте настраивается, на любое слово в пм можно настроить команду.

elenka
16.01.2010, 04:15
ну вот и я решила записаться в нубки и спросить:
не могу найти команду для скрипта: "встать с трейда/сесть на трейд"
(это нужно для самобаффа рубашки во время автокрафта и трейда)

kolu4ii
16.01.2010, 04:21
не понял, что ты имеешь ввиду. но можно сохранить настройки на трейд, а при определенных условиях грузяить настройкт на отмену трейда... я пьяный, если надо конкретнее-пиши в пм

elenka
16.01.2010, 11:45
"грузить настройки на отмену трейда" - это как?
я еще не проснулась, мб поэтому не врубель пока...

суть: гном сидит на продаже, при этом интенсивно крафтя. для еще более интенсивного крафта надо чтоб он вставал с трейда и селфаффался.

как сделать цикл, прописать делей и афф я знаю, а вот как заставить его встать, отменив торговлю, и потом обратно сесть?

kolu4ii
16.01.2010, 12:32
в настройках вроде есть делей на повторный трейд. в скрипт вставляешь проверку на положение бота (сидит или стоит) и когда он встает пусть делает бафф. или в положении стоя пусть грузит настройки без трейда(loadconfig(notrade_justbuff.INI)), потом задержка и снова зарузка конфига с трейдом.

elenka
16.01.2010, 17:43
немного не понимаю как работает команда CharStatus(STAND,==,1)
эта проверка постоянно идет или ее надо зацикливать, чтоб каждые неск сек проверялось?

Acmilan
16.01.2010, 18:03
ее надо зацикливать, чтоб каждые неск сек проверялось
в большинстве вопросов кроется ответ)

elenka
16.01.2010, 18:18
в большинстве вопросов кроется ответ)

это был вопрос, предлагающий 2 варианта ответа ) спасибо, что наставил на путь истинный)))

FerLuci
16.01.2010, 20:21
Ребят, может кто помочь с куском скрипта, заморочился сделать скрипт 1-18лвл человек мистик, застопорился в месте, где нужно убить 3 квест моба, дается 3 палки, сами понимаете что одной это палкой он моба не зафигачит, а магией стрелять тоже не работает надо хотябы добивать ею

Acmilan
16.01.2010, 23:25
Просчитай сколько примерно времени нужно что бы снять 2\3 хп мобу, делай делей, а потом юзитем(палка)

Хотя имхо лучше останавливать скрипт и делать ручками.. Делов то.

Avaddon
17.01.2010, 17:40
Возник вот такой вопросец....
в скрипте выбирается нпц и начинается диалог

NPCSEL(NpcName)
DELAY(1000)
NPCDLG(NpcName)
DELAY(1000)
DLGSEL(Квест)
DELAY(1000)
DLGSEL(Согласиться)

но вот вторая страница диалога слишком длинная и команда DLGSEL(Согласиться) не выполняется почему-то, может быть потому что строка не видна в окне диалога сразу (хотя может и нет) подскажите, может есть возможность как-то прокручивать окно диалога
или тут дело в другом?

PS и еще вопрос возник - можно ли как-то отменить взятый квест через скрипт?

nPoKa3HuK
17.01.2010, 18:51
"грузить настройки на отмену трейда" - это как?
я еще не проснулась, мб поэтому не врубель пока...

суть: гном сидит на продаже, при этом интенсивно крафтя. для еще более интенсивного крафта надо чтоб он вставал с трейда и селфаффался.

как сделать цикл, прописать делей и афф я знаю, а вот как заставить его встать, отменив торговлю, и потом обратно сесть?

К сожалению валкер не умеет поднимать чара с трейда. Жди когда все купят. Используи пример в скрипте.
label(1)
CharStatus(STAND,==,0)
{
ChangeWaitType(1)
jmp(1)
}
......../// Продолжение скрипта
........

Добавлено через 6 минут
Возник вот такой вопросец....
в скрипте выбирается нпц и начинается диалог

NPCSEL(NpcName)
DELAY(1000)
NPCDLG(NpcName)
DELAY(1000)
DLGSEL(Квест)
DELAY(1000)
DLGSEL(Согласиться)

но вот вторая страница диалога слишком длинная и команда DLGSEL(Согласиться) не выполняется почему-то, может быть потому что строка не видна в окне диалога сразу (хотя может и нет) подскажите, может есть возможность как-то прокручивать окно диалога
или тут дело в другом?

PS и еще вопрос возник - можно ли как-то отменить взятый квест через скрипт?

Возможно не правильно в скрипте прописан диалог. Если ты скажеш, что за квест и что за НПС могу посмотреть и четко сказать в чем проблема. Отменить квест через скрипт нельзя.

Avaddon
17.01.2010, 18:55
При попытке записать скрипт прямо в боте вместо записи:

NPCDLG(НПЦ)
DLGSEL(Квест)
DLGSEL(Согласиться)

записывает только:

NPCDLG(НПЦ)
DLGSEL(Квест)

похоже диалог какой-то неправильный сам по себе....
а то что нельзя отменить квест - так значит и в скрипте вопрос отпадает))

Anafema
18.01.2010, 20:06
При попытке записать скрипт прямо в боте вместо записи:

NPCDLG(НПЦ)
DLGSEL(Квест)
DLGSEL(Согласиться)

записывает только:

NPCDLG(НПЦ)
DLGSEL(Квест)

похоже диалог какой-то неправильный сам по себе....
а то что нельзя отменить квест - так значит и в скрипте вопрос отпадает))

таргет с НПЦ сними прежде чем жать запись скрипта.

KoAn
19.01.2010, 04:41
Говоря о диологах, попался мне давече кусок диалога, на первую профу орка шамана где выбирается 1 из 2х веток дальнейшего прохождения квеста.

Все вроде бы записал верно в скрипт, перепроверил не раз, но почему то чар стопится на выборе в диологе. временое решение pause() , но хотелось бы избавится от лишних остановок квеста, может кто сталкивался? кусок диалога ниже:

NPCSEL(Tataru Zu Hestui[ID=30585])
NPCDLG(Tataru Zu Hestui[ID=30585])
DLGSEL(Квест)
DLGSEL(Проведите ритуал)
DELAY(2000)
DLGSEL("Я хочу унаследовать мудрость 99 душ.")


И еще, если есть у кого то сыль на респ в городах, (интересует деревня орков), буду благодарен, в гугл не посылать ибо лениво =)

Negris
19.01.2010, 08:10
се вроде бы записал верно в скрипт, перепроверил не раз, но почему то чар стопится на выборе в диологе. временое решение pause() , но хотелось бы избавится от лишних остановок квеста, может кто сталкивался?

Сталкивался, иногда решается перезаходом чара без релогина (т.е. просто подглючивает). В некоторых диалогах вообще ботом невозможно поговорить. Пример самый известный - 2 квеста у Карруды. Баг волкера начиная с 2.16 версии :(

Anafema
19.01.2010, 11:30
Автор, включи РАЕ и будет у тебя не 32 а 36 битная адресация. Вот тока пользы от этого 0. Потому что программы все равно будут использовать 3.25Гб оперативной памяти, а не 4+.

PAE – Physical Address Extension

xINFINITYx
19.01.2010, 22:11
Подскажите плз команду для автозагрузки настроек определенного перса, что-то вроде SET(L2WALKER,LOADCONFIG). Гдето читал, не помню где :( а как сформулировать вопрос в гугле, тоже ХЗ.

B0R0DA
19.01.2010, 23:07
LOADCONFIG(название файла.ini)

Negris
20.01.2010, 02:09
Потому что программы все равно будут использовать 3.25Гб оперативной памяти, а не 4+.

Толк от /PAE есть и еще какой, винда использует весь объем ОЗУ. Ограничение только - не может адресовать на каждый процесс больше 4Гб, но в нашем случае это никак не мешает (л2.бин разжирается обычно не больше 600-800 Мб)

http://en.wikipedia.org/wiki/Physical_Address_Extension

Anafema
20.01.2010, 12:07
Толк от /PAE есть и еще какой, винда использует весь объем ОЗУ. Ограничение только - не может адресовать на каждый процесс больше 4Гб, но в нашем случае это никак не мешает (л2.бин разжирается обычно не больше 600-800 Мб)

http://en.wikipedia.org/wiki/Physical_Address_Extension

даже если Windows определит всю доступную память, пользу это принесет, в лучшем случае, твоему самолюбию. Причина в том, что область памяти за пределами 4 Гб в 32-битной среде может быть доступна только приложениям, написанным с использованием интерфейса AWE (Address Windowing Extension). Проще говоря, если PAE – это поддержка большого объема памяти со стороны железа и операционки, то AWE – это ее поддержка со стороны софта. И вся проблема в том, что такой поддержкой обладает разве что софт, оперирующий огромными объемами данных – к примеру, СУБД или программы, выполняющие сложные научные расчеты. Играм или офисному софту это попросту не нужно, соответственно, и прироста производительности в них ты не увидишь. А вот какой-нибудь Microsoft SQL Server получит очень даже ощутимую пользу!

Hahoha
21.01.2010, 01:16
Есть вопрос, реально ли написать скрипт который делает вот что:
Допустим каждую минуту говорит с нпс, этот нпс пишет всего 2 сообщения, возможен ли захват нужного сообщения и при этом либо издать звук, либо проспамить в пм нескольким людям?

B0R0DA
21.01.2010, 01:24
Есть вопрос, реально ли написать скрипт который делает вот что:
Допустим каждую минуту говорит с нпс, этот нпс пишет всего 2 сообщения, возможен ли захват нужного сообщения и при этом либо издать звук, либо проспамить в пм нескольким людям?

реально

Hahoha
21.01.2010, 01:25
реально
Кто может помочь в этом?

B0R0DA
21.01.2010, 01:30
Телепатов тут нет. из того что я понял тебе вот что надо
StrInDlg(Нужный текст)
{
LOADCONFIG(настройки с воспроизведением мелодии.ini)
}

Anafema
21.01.2010, 12:01
Есть вопрос, реально ли написать скрипт который делает вот что:
Допустим каждую минуту говорит с нпс, этот нпс пишет всего 2 сообщения, возможен ли захват нужного сообщения и при этом либо издать звук, либо проспамить в пм нескольким людям?

в пм нереально проспамить, не умеет этого волкер

lva
21.01.2010, 12:02
в пм нереально проспамить, не умеет этого волкера контрол сеттинг не катит?

Anafema
21.01.2010, 12:05
а контрол сеттинг не катит?

он не пишет в пм

Hahoha
22.01.2010, 01:57
Ну а насчет звуков значит все можно, так?

B0R0DA
22.01.2010, 02:12
Та можно можно. Я ж уже ответил.
StrInDlg(Нужный текст)
{
LOADCONFIG(настройки с воспроизведением мелодии.ini)
}


Ты конкретнее пиши задачу. Такой скрытнуй куда там :) Баюма пасешь? Так и скажи

anti_BuTaMuH
22.01.2010, 02:48
LABEL(str)
//точка 1
POSINRANGE(146819, 28063, -2264, 10)
{
MOVETO(146367,28247,-2295)
JMP(mov)
}
//точка 2
POSINRANGE(146814, 27108, -2200, 10)
{
MOVETO(146364,28242,-2295)
JMP(mov)
}
//точка 3
POSINRANGE(148010, 27996, -2264, 10)
{
MOVETO(146403,28235,-2295)
JMP(mov)
}
//точка 4
POSINRANGE(147970, 27040, -2200, 10)
{
MOVETO(147327,27264,-2230)
MOVETO(147181,27373,-2231)
MOVETO(146372,28245,-2295)
JMP(mov)
}
//точка 5
POSINRANGE(145686, 21114, -2136, 10)
{
MOVETO(145691,21740,-2167)
MOVETO(145082,22568,-2167)
MOVETO(145026,25140,-2167)
MOVETO(145144,27622,-2295)
JMP(mov)
}
//точка 6
POSINRANGE(144559, 22835, -2136, 10)
{
MOVETO(144985,23715,-2167)
MOVETO(144982,25270,-2167)
MOVETO(145138,27470,-2264)
MOVETO(145164,27674,-2295)
JMP(mov)
}
//точка 7
POSINRANGE(144526, 24661, -2136, 10)
{
MOVETO(144924,25369,-2167)
MOVETO(145138,27470,-2264)
JMP(mov)
}
//точка 8
POSINRANGE(144635, 26664, -2264, 10)
{
MOVETO(144723,26957,-2295)
MOVETO(145191,27587,-2295)
JMP(mov)
}
//точка 9
POSINRANGE(144626, 29145, -2456, 10)
{
MOVETO(144997,28737,-2477)
MOVETO(145000,27907,-2308)
MOVETO(145173,27682,-2295)
JMP(mov)
}
//точка 10
POSINRANGE(146038, 30519, -2456, 10)
{
MOVETO(146764,30192,-2487)
MOVETO(147421,29968,-2487)
JMP(mov)
}
//точка 11
POSINRANGE(146494, 30584, -2456, 10)
{
MOVETO(147181,30195,-2487)
MOVETO(147439,29966,-2487)
JMP(mov)
}
//точка 12
POSINRANGE(150227, 29104, -2456, 10)
{
MOVETO(149530,29863,-2487)
MOVETO(148766,30043,-2487)
MOVETO(147442,29952,-2487)
JMP(mov)
}
//точка 13
POSINRANGE(148565, 30463, -2456, 10)
{
MOVETO(147525,29979,-2487)
JMP(mov)
}
//точка 14
POSINRANGE(148112, 30439, -2456, 10)
{
MOVETO(147491,29990,-2487)
JMP(mov)
}
//точка 15
POSINRANGE(148946, 21121, -2136, 10)
{
MOVETO(149637,22427,-2167)
MOVETO(149701,23764,-2167)
MOVETO(149457,24106,-2167)
MOVETO(148579,24337,-2039)
MOVETO(148520,25590,-2039)
MOVETO(148185,25763,-2039)
MOVETO(147596,25855,-2039)
MOVETO(147385,26948,-2230)
MOVETO(146376,28219,-2295)
JMP(mov)
}
//точка 16
POSINRANGE(146814, 27108, -2200, 10)
{
MOVETO(146370,28244,-2295)
JMP(mov)
}
USEITEM(Scroll of Escape)
DELAY(30000)
JMP(str)
LABEL(mov)
MOVETO(147490,26662,-2230)
MOVETO(147125,25834,-2039)
DELAY(2000)
NPCSEL(Adventurers' Guide[ID=32327])
DELAY(2000)
NPCDLG(Adventurers' Guide[ID=32327])
DLGSEL(Посмотреть список вспомогательной магии)
DLGSEL(Получить Дополнительную магию)
DELAY(2000)
MOVETO(146945,25799,-2039)
MOVETO(146794,25781,-2039)
DELAY(3000)
NPCSEL(Elisa[ID=30848])
NPCDLG(Elisa[ID=30848])
DELAY(2000)
DLGSEL(Телепортироваться)
DLGSEL(Долина Безмолвия - 6100 аден )
DELAY(3000)
DLGSEL(Долина Безмолвия - 3100 аден )
MOVETO(171929,56610,-5696)
MOVETO(173143,56624,-5936)
MOVETO(174454,55575,-6007)
SET(FIGHTSTART)
POSINRANGE(174454,55575,-6007,2100)
//качаемся 53 минуты
DELAY(3200000)
SET(FIGHTSTOP)
DELAY(50000)
USEITEM(Scroll of Escape[ID=736])
DELAY(50000)
JMP(str)


Этот скрипт писал сам ток есть прозьба помогите вставить на проверку смерти

[I]Добавлено через 53 секунды
Этот скрипт с задержками я так делал чтоб если лаг то есть время

baton4eg
22.01.2010, 04:16
Расчитано на 55 минут + минута разобраться с остатками + еще успеть на ребаф:)
\\==========================
LABEL(FIGHT)

CALL(5)

MSG(10%)
CALL(5)

MSG(20%
CALL(5)

MSG(30%
CALL(5)

MSG(40%
CALL(5)

MSG(50%)
CALL(5)

MSG(60%
CALL(5)

MSG(70%
CALL(5)

MSG(80%
CALL(5)

MSG(90%)
CALL(5)
MSG(100%)

RETURN()


\\===================
LABEL(5)

CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)

RETURN()



\\===================
\\===================
\\===================

LABEL(WAR)
CHARSTATUS(CHP,<,2)
{
DELAY(3000)
SET(FIGHTSTOP)
DELAY(3000)
GOHOME()
SET(L2WALKER,DISABLE)
DELAY(3000)
GOHOME()
SET(L2WALKER,DISABLE)
DELAY(3000)
GOHOME()
SET(L2WALKER,DISABLE)
DELAY(3000)
GOHOME()
SET(L2WALKER,DISABLE)
DELAY(10000)
JMP(str) \\впишеш куда ему прыгнуть над будет если помер и ушел в город. если измениш названия.
}
DELAY(3000)
RETURN()
\\===================


Проверка смерти каждые 3 секунды. Для выполнения введи в скрипт CALL(FIGHT)


Примерно так :

SET(FIGHTSTART)
POSINRANGE(174454,55575,-6007,2100)
CALL(FIGHT)
SET(FIGHTSTOP)
DELAY(50000)
USEITEM(Scroll of Escape[ID=736])
DELAY(50000)
JMP(str)

Но я бы сделал несколько по другому:)
Выглядит конечно массивно, но не тупим по пол часа для остановки скрипта во время кача

B0R0DA
22.01.2010, 04:26
ОМГ:o

Hahoha
22.01.2010, 04:29
на фринту нужен скрипт) там может написать 2 месаги, либо кто то уже зашел к ней, либо только лидер цц может войти.

baton4eg
22.01.2010, 04:36
Ну и собственно мой вариант всего скрипта)) Строго не судить)

Label(start)
CALL(mov)
CALL(CombatSet)
CALL(FIGHT)
CALL(SOE)











SET(FIGHTSTART)
POSINRANGE(174454,55575,-6007,2100)
//качаемся 53 минуты
DELAY(3200000)
SET(FIGHTSTOP)
DELAY(50000)
USEITEM(Scroll of Escape[ID=736])
DELAY(50000)
JMP(str)




LABEL(CombatSet)
SET(L2WALKER,ENABLE)
SET(RANGETYPE,DEFPOS,174454,55575,-6007,2100,4000)
MSG(Начинаем сражение:)
SET(FIGHT,START)
RETURN()


LABEL(mov)
MOVETO(147490,26662,-2230)
MOVETO(147125,25834,-2039)
DELAY(2000)
NPCSEL(Adventurers' Guide[ID=32327])
DELAY(2000)
NPCDLG(Adventurers' Guide[ID=32327])
DLGSEL(Посмотреть список вспомогательной магии)
DLGSEL(Получить Дополнительную магию)
DELAY(2000)
MOVETO(146945,25799,-2039)
MOVETO(146794,25781,-2039)
DELAY(3000)
NPCSEL(Elisa[ID=30848])
NPCDLG(Elisa[ID=30848])
DELAY(2000)
DLGSEL(Телепортироваться)
DLGSEL(Долина Безмолвия - 6100 аден )
DELAY(3000)
DLGSEL(Долина Безмолвия - 3100 аден )
MOVETO(171929,56610,-5696)
MOVETO(173143,56624,-5936)
MOVETO(174454,55575,-6007)
Return()

LABEL(str)
//точка 1
POSINRANGE(146819, 28063, -2264, 10)
{
MOVETO(146367,28247,-2295)
JMP(mov)
}
//точка 2
POSINRANGE(146814, 27108, -2200, 10)
{
MOVETO(146364,28242,-2295)
JMP(mov)
}
//точка 3
POSINRANGE(148010, 27996, -2264, 10)
{
MOVETO(146403,28235,-2295)
JMP(mov)
}
//точка 4
POSINRANGE(147970, 27040, -2200, 10)
{
MOVETO(147327,27264,-2230)
MOVETO(147181,27373,-2231)
MOVETO(146372,28245,-2295)
JMP(mov)
}
//точка 5
POSINRANGE(145686, 21114, -2136, 10)
{
MOVETO(145691,21740,-2167)
MOVETO(145082,22568,-2167)
MOVETO(145026,25140,-2167)
MOVETO(145144,27622,-2295)
JMP(mov)
}
//точка 6
POSINRANGE(144559, 22835, -2136, 10)
{
MOVETO(144985,23715,-2167)
MOVETO(144982,25270,-2167)
MOVETO(145138,27470,-2264)
MOVETO(145164,27674,-2295)
JMP(mov)
}
//точка 7
POSINRANGE(144526, 24661, -2136, 10)
{
MOVETO(144924,25369,-2167)
MOVETO(145138,27470,-2264)
JMP(mov)
}
//точка 8
POSINRANGE(144635, 26664, -2264, 10)
{
MOVETO(144723,26957,-2295)
MOVETO(145191,27587,-2295)
JMP(mov)
}
//точка 9
POSINRANGE(144626, 29145, -2456, 10)
{
MOVETO(144997,28737,-2477)
MOVETO(145000,27907,-2308)
MOVETO(145173,27682,-2295)
JMP(mov)
}
//точка 10
POSINRANGE(146038, 30519, -2456, 10)
{
MOVETO(146764,30192,-2487)
MOVETO(147421,29968,-2487)
JMP(mov)
}
//точка 11
POSINRANGE(146494, 30584, -2456, 10)
{
MOVETO(147181,30195,-2487)
MOVETO(147439,29966,-2487)
JMP(mov)
}
//точка 12
POSINRANGE(150227, 29104, -2456, 10)
{
MOVETO(149530,29863,-2487)
MOVETO(148766,30043,-2487)
MOVETO(147442,29952,-2487)
JMP(mov)
}
//точка 13
POSINRANGE(148565, 30463, -2456, 10)
{
MOVETO(147525,29979,-2487)
JMP(mov)
}
//точка 14
POSINRANGE(148112, 30439, -2456, 10)
{
MOVETO(147491,29990,-2487)
JMP(mov)
}
//точка 15
POSINRANGE(148946, 21121, -2136, 10)
{
MOVETO(149637,22427,-2167)
MOVETO(149701,23764,-2167)
MOVETO(149457,24106,-2167)
MOVETO(148579,24337,-2039)
MOVETO(148520,25590,-2039)
MOVETO(148185,25763,-2039)
MOVETO(147596,25855,-2039)
MOVETO(147385,26948,-2230)
MOVETO(146376,28219,-2295)
JMP(mov)
}
//точка 16
POSINRANGE(146814, 27108, -2200, 10)
{
MOVETO(146370,28244,-2295)
JMP(mov)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(30000)
JMP(str)

\\==========================
LABEL(FIGHT)

CALL(5)

MSG(10%)
CALL(5)

MSG(20%
CALL(5)

MSG(30%
CALL(5)

MSG(40%
CALL(5)

MSG(50%)
CALL(5)

MSG(60%
CALL(5)

MSG(70%
CALL(5)

MSG(80%
CALL(5)

MSG(90%)
CALL(5)
MSG(100%)

RETURN()

baton4eg
22.01.2010, 04:36
Продолжение, вместе не уместилось:)

\\===================
LABEL(5)

CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)
CALL(WAR)

RETURN()



\\===================
\\===================
\\===================

LABEL(WAR)
CHARSTATUS(CHP,<,2)
{
DELAY(3000)
SET(FIGHTSTOP)
DELAY(3000)
GOHOME()
SET(L2WALKER,DISABLE)
DELAY(3000)
GOHOME()
SET(L2WALKER,DISABLE)
DELAY(3000)
GOHOME()
SET(L2WALKER,DISABLE)
DELAY(3000)
GOHOME()
SET(L2WALKER,DISABLE)
DELAY(10000)
JMP(str)
}
DELAY(3000)
RETURN()
\\===================

LABEL(back)
SET(L2WALKER,ENABLE)
SET(MON,NOATTACK,*)
SET(RANGETYPE,STARTPOS,100)
SET(FIGHT,START)
DELAY(30000) // добиваем остатки
SET(FIGHT,STOP)
SET(L2WALKER,DISABLE)
ChangeWaitType(1)
DELAY(600)
USEITEM(Scroll of Escape[ID=736])
DELAY(30000)
PosInRange(144635, 26664, -2264,6000)
{
DELAY(2000)
JMP(str)
}
CharStatus(CHP,<=,0) // Если персонаж погиб во время использования СоЕ
{
MSG(К сожалению, персонаж погиб во время использования Свитка Телепорта.)
DELAY(3000)
GOHOME()
SET(L2WALKER,DISABLE)
DELAY(120000)
JMP(str)
}
JMP(back) // Еще одна попытка попасть в город
//------------

B0R0DA
22.01.2010, 05:11
Hahoha, записываешь нужный диалог и вот он скрипт:

LABEL(start)
NPCDLG(name[ID=XXX])
DELAY(2000)
StrInDlg(нужный диалог)
{
LOADCONFIG(Alarm.ini)
}
DELAY(2000)
JMP(start)

Alarm.ini настраиваем например так, как предложил товарисч mikser - http://coderx.ru/attachment.php?attachmentid=813&d=1260950345

anti_BuTaMuH, вместо
//качаемся 53 минуты
DELAY(3200000)
SET(FIGHTSTOP)
DELAY(50000)
USEITEM(Scroll of Escape[ID=736])
DELAY(50000)
JMP(str) вставь это:

LABEL(combat)
CharStatus(CHP,<=,0)
{
DELAY(3000)
SET(FIGHT,STOP)
GOHOME()
DELAY(50000)
JMP(str)
}
!CharBuffs([Id=4323])// Баффы закончились (ID баффа на защиту)
{
SET(MON,NOATTACK,*)
SET(RANGETYPE,STARTPOS,100)
SET(FIGHT,START)
DELAY(30000)// Отбиваемся от хвоста
SET(FIGHT,STOP)
ChangeWaitType(1)
DELAY(1000)
USEITEM(Scroll of Escape[ID=736])
DELAY(50000)
JMP(str)
}
DELAY(1000)
JMP(combat)

хотя я б там еще много чего подправил...

baton4eg, no comments...

KoAn
25.01.2010, 02:17
Сталекнулся с одной проблемкой, пишу скрипт под прокачку хуманойдов с 1 по 18, как известно там имеется квест в катором нужно убить 3х духов и получить с них 3 палки.
первое убийство духа проходит нормально, в квест инвенторий падает палка, а вот со второй и третей палкой проблемы: добигая на место убиения не исполняются установленые условия и чар портуется как будто он уже получил нужный предмет, вместо проверки на наличие.

Проблема решена удалением названия предмета из условий, оставлением только ID

Hahoha
25.01.2010, 12:03
Случайно ни у кого не валяется скрипта на фарм 150+ камней?

Ippo
30.01.2010, 07:43
Вот скрипт, не получается зациклить на этапе начала кача.
В чем ошибка?

LABEL(start)
SET(FIGHTSTOP)
call(detect gludio)


label(detect gludio)
POSOUTRANGE(-13956,123632,-3112,2500)
{
DELAY(500)
MSG(Ваш чар находится в окрестностях Глудио)
DELAY(500)
MSG(Телепортируемся в город)
DELAY(500)
USEITEM(Свиток Телепорта[ID=736])
DELAY(29000)
}
DELAY(500)
MSG(Ваш чар находится в Глудио)
DELAY(500)
POSINRANGE(-13709,123563,-3112,600)
{
DELAY(1000)
MOVETO(-13847,123525,-3143)
MOVETO(-14195,123141,-3143)
MOVETO(-14042,122134,-3015)
MOVETO(-13935,122003,-3015)
DELAY(500)
JMP(Buff)
}
POSINRANGE(-14465,124434,-3112,600)
{
DELAY(1000)
MOVETO(-14432,124297,-3144)
MOVETO(-14171,122755,-3143)
MOVETO(-14046,122174,-3015)
MOVETO(-13935,122009,-3015)
DELAY(500)
JMP(Buff)
}
POSINRANGE(-14683,121945,-3032,600)
{
DELAY(1000)
MOVETO(-14657,121895,-3068)
MOVETO(-14309,121477,-3015)
MOVETO(-14145,121585,-3015)
MOVETO(-13951,121922,-3015)
DELAY(500)
JMP(Buff)
}


LABEL(Buff)
DELAY(1500)
NPCSEL(Помощник Новичков[ID=31077])
DELAY(1500)
NPCDLG(Помощник Новичков[ID=31077])
DELAY(1500)
DLGSEL(Посмотреть список вспомогательной магии)
DELAY(1500)
DLGSEL(П
DELAY(1500)
CharBuffs(Adventurer's Bless the Body[Id=4324])
{
JMP(go na spot)
}
jmp(buff)


label(go na spot)
DELAY(1000)
MOVETO(-13326,122430,-3015)
MOVETO(-13241,122628,-3080)
MOVETO(-13062,122709,-3143)
MOVETO(-12765,122827,-3143)
DELAY(1500)
NPCSEL(Белла[ID=30256])
NPCDLG(Белла[ID=30256])
DLGSEL(Телепортироваться)
DELAY(4000)
DLGSEL(Поместье Виндавуд)
DELAY(19000)
MOVETO(-28240,157118,-3433)
MOVETO(-27897,158034,-3077)
MOVETO(-28542,160397,-2855)
jmp(fatality)


label(fatality)
SET(FIGHTSTART)
SET(RANGETYPE,STARTPOS,100)
delay(30000)
SET(FIGHTSTOP)
ChangeWaitType(1)
jmp(grind)


label(grind)
SET(RANGETYPE,STARTPOS,3000)
SET(FIGHTSTART)
!CharBuffs(Adventurer's Bless the Body[Id=4324])
{
SET(FIGHTSTOP)
SET(RANGETYPE,STARTPOS,100)
delay(30000)
JMP(start)
}

HellTip
30.01.2010, 10:55
Ребят подскажите пож почему нет зацикливания, на спот прибегают и скрипт заканчиваеться :(

USEITEM(Scroll of Escape[ID=736])
DELAY(26000)
LABEL(START)
SET(FIGHTSTOP)
SET(L2WALKER,DISABLE)
//Проверяем все точки респа
POSINRANGE(79933, 55752, -1552, 100)
{
MOVETO(80923,54411,-1551)
MOVETO(81123,53472,-1586)
MOVETO(82109,53429,-1522)
MOVETO(82346,53383,-1522)
JMP(BAF)
}
POSINRANGE(82323, 55466,-1520,200)
{
MOVETO(82313,54625,-1551)
MOVETO(82332,53608,-1522)
JMP(BAF)
}
POSINRANGE(80334, 54400,-1522,200)
{
MOVETO(80943,54349,-1551)
MOVETO(81110,53493,-1586)
MOVETO(82159,53361,-1522)
MOVETO(82327,53344,-1522)
JMP(BAF)
}
LABEL(BAF)
NPCSEL(Помощник Путешественников[ID=32327])
DELAY(1087)
NPCDLG(Помощник Путешественников[ID=32327])
DELAY(1045)
DLGSEL(Посмотреть список вспомогательной магии)
DELAY(1007)
DLGSEL(Получить Дополнительную магию)
DELAY(1186)
MOVETO(82862,53167,-1522)
NPCSEL(Валентина[ID=30177])
DELAY(1124)
NPCDLG(Валентина[ID=30177])
DELAY(1247)
DLGSEL(Телепортироваться)
DELAY(1547)
DLGSEL(Башня Слоновой Кости
DELAY(2157)
//Бежим на спот
LABEL(GOTO_SPOT)
MOVETO(85338,17245,-3576)
MOVETO(85365,21721,-3599)
MOVETO(85359,23070,-3544)
MOVETO(85409,24074,-3662)
MOVETO(86315,24640,-3621)
MOVETO(87585,24018,-3533)
MOVETO(89676,23633,-3629)
MOVETO(91558,22187,-3648)
MOVETO(92646,21907,-3459)
DELAY(5000)
SET(FIGHTSTART)
SET(L2WALKER,ENABLE)
LABEL(PROVERKA)
CHARSTATUS(HP,<=,0)
{
SET(FIGHTSTOP)
DELAY(1000)
GOHOME()
DELAY(8000)
JMP(START)
RETURN()
}
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DALAY(300000)
CALL(PROVERKA)
DALAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
SET(FIGHTSTOP)
SET(L2WALKER,DISABLE)
USEITEM(Scroll of Escape[ID=736])
DELAY(25000)
JMP(START)

Helleraser
30.01.2010, 14:40
ну во первых замени ВСЕ DALAY нормальной командой delay :))) а во вторых у тебя на спот прибегает и сразу чекать проверку начинает, ты сперва delay ставь 300000, дай ему покачаться малость ) а потом уже прверку на смерть )

LABEL(PROVERKA)
CHARSTATUS(HP,<=,0)
{
SET(FIGHTSTOP)
DELAY(1000)
GOHOME()
DELAY(8000)
JMP(START)
RETURN()
}
CALL(PROVERKA) ну че вот он делает? сам подумай

HellTip
30.01.2010, 14:51
я перименовал delay все :)
LABEL(PROVERKA) метка
CHARSTATUS(HP,<=,0) проверить хп если 0 меньше 0 выполнить программу
{
SET(FIGHTSTOP) остановить бой
DELAY(1000) ждем
GOHOME() в город
DELAY(8000) ждем
JMP(START) перейти к метке старт
RETURN() выйти из под прогрммы
}
CALL(PROVERKA) вызвать программу проверка

это мой первый скрипт разьясни плс что я неправильно делаю заранее очень благодарен

Helleraser
30.01.2010, 14:58
CALL(PROVERKA)
DALAY(300000)
CALL(PROVERKA)
DALAY(300000)


не все переименовал, внимательней будь. и переставь этот столбик вот так.... начиная с паузы DELAY(300000)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)


CALL это вызов, ты на спот прибегал и сразу вызывал проверку, Label, которая выше по столбику, он там стоял и проверялся постояно жив ли я, не умер ли я )))

HellTip
30.01.2010, 15:55
пасиб :) ток зацикливание все равно нет:(

Джузеппе
30.01.2010, 18:30
Кто в курсе, можно ли задетектить баф гнома на блант мастери, который шансово во время атаки накладывается на несколько секунд? ай ди у него есть?

Anafema
30.01.2010, 20:26
можно
Dagger Mastery id = 5603
Blunt Mastery id = 5604

Helleraser
31.01.2010, 11:08
LABEL(GOTO_SPOT)
MOVETO(85338,17245,-3576)
MOVETO(85365,21721,-3599)
MOVETO(85359,23070,-3544)
MOVETO(85409,24074,-3662)
MOVETO(86315,24640,-3621)
MOVETO(87585,24018,-3533)
MOVETO(89676,23633,-3629)
MOVETO(91558,22187,-3648)
MOVETO(92646,21907,-3459)
SET(FIGHTSTART)
SET(L2WALKER,ENABLE)
LABEL(PROVERKA)
CHARSTATUS(HP,<=,0)
{
SET(FIGHTSTOP)
DELAY(1000)
GOHOME()
DELAY(8000)
JMP(START)
RETURN()
}
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
SET(FIGHTSTOP)
SET(L2WALKER,DISABLE)
USEITEM(Scroll of Escape[ID=736])
DELAY(25000)
JMP(START)

2HellTip я говорил что надо как прибежал на спот ставить паузу! в первую очередь! Вот скопируй все это и поменяй и будет тебе зацикливание, если не будет можешь назвать меня оленем, ну а если будет то извините олень уже ты ))) не в обиду )

HellTip
31.01.2010, 14:04
Ммм как и прежде он качит на том месте только теперь вместо того что бы тупо вырубаться как прибежит он проверяеться на смерть:) а надо что бы после определенного времени он за бафом летел...

nPoKa3HuK
31.01.2010, 20:04
Ммм как и прежде он качит на том месте только теперь вместо того что бы тупо вырубаться как прибежит он проверяеться на смерть:) а надо что бы после определенного времени он за бафом летел...

LABEL(GOTO_SPOT)
MOVETO(85338,17245,-3576)
MOVETO(85365,21721,-3599)
MOVETO(85359,23070,-3544)
MOVETO(85409,24074,-3662)
MOVETO(86315,24640,-3621)
MOVETO(87585,24018,-3533)
MOVETO(89676,23633,-3629)
MOVETO(91558,22187,-3648)
MOVETO(92646,21907,-3459)
SET(FIGHTSTART)
SET(L2WALKER,ENABLE)
LABEL(PROVERKA)
CHARSTATUS(HP,<=,0)
{
SET(FIGHTSTOP)
DELAY(1000)
GOHOME()
DELAY(8000)
JMP(START)
RETURN()
}
!CharBuffs(Adventurer's Bless the Body[Id=4324])
{
MSG(Пора на ребаф)
SET(FIGHTSTOP)
USEITEM(Scroll of Escape[ID=736])
delay(30000)
JMP(START)
}
return()
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
SET(FIGHTSTOP)
SET(L2WALKER,DISABLE)
USEITEM(Scroll of Escape[ID=736])
DELAY(25000)
JMP(START)

Попробуй так.

HellTip
31.01.2010, 23:01
это он один раз проверит наличие бафа? я вот думаю если логически подумать то в конце программы чтоит го ту как на делфи к определенному месту, а оно выпендриваеться:(

Ippo
01.02.2010, 07:38
Может просто зациклить проверку бафа? Когда перс умирает - баф падает и перс улетает в город.

nPoKa3HuK
01.02.2010, 12:42
Вот скрипт, не получается зациклить на этапе начала кача.
В чем ошибка?

LABEL(start)
SET(FIGHTSTOP)
call(detect gludio)


label(detect gludio)
POSOUTRANGE(-13956,123632,-3112,2500)
{
DELAY(500)
MSG(Ваш чар находится в окрестностях Глудио)
DELAY(500)
MSG(Телепортируемся в город)
DELAY(500)
USEITEM(Свиток Телепорта)
DELAY(29000)
}
DELAY(500)
MSG(Ваш чар находится в Глудио)
DELAY(500)
POSINRANGE(-13709,123563,-3112,600)
{
DELAY(1000)
MOVETO(-13847,123525,-3143)
MOVETO(-14195,123141,-3143)
MOVETO(-14042,122134,-3015)
MOVETO(-13935,122003,-3015)
DELAY(500)
JMP(Buff)
}
POSINRANGE(-14465,124434,-3112,600)
{
DELAY(1000)
MOVETO(-14432,124297,-3144)
MOVETO(-14171,122755,-3143)
MOVETO(-14046,122174,-3015)
MOVETO(-13935,122009,-3015)
DELAY(500)
JMP(Buff)
}
POSINRANGE(-14683,121945,-3032,600)
{
DELAY(1000)
MOVETO(-14657,121895,-3068)
MOVETO(-14309,121477,-3015)
MOVETO(-14145,121585,-3015)
MOVETO(-13951,121922,-3015)
DELAY(500)
JMP(Buff)
}


LABEL(Buff)
DELAY(1500)
NPCSEL(Помощник Новичков[ID=31077])
DELAY(1500)
NPCDLG(Помощник Новичков[ID=31077])
DELAY(1500)
DLGSEL(Посмотреть список вспомогательной магии)
DELAY(1500)
DLGSEL(П
DELAY(1500)
CharBuffs(Adventurer's Bless the Body[Id=4324])
{
JMP(go na spot)
}
jmp(buff)


label(go na spot)
DELAY(1000)
MOVETO(-13326,122430,-3015)
MOVETO(-13241,122628,-3080)
MOVETO(-13062,122709,-3143)
MOVETO(-12765,122827,-3143)
DELAY(1500)
NPCSEL(Белла[ID=30256])
NPCDLG(Белла[ID=30256])
DLGSEL(Телепортироваться)
DELAY(4000)
DLGSEL(Поместье Виндавуд)
DELAY(19000)
MOVETO(-28240,157118,-3433)
MOVETO(-27897,158034,-3077)
MOVETO(-28542,160397,-2855)
jmp(fatality)


label(fatality)
SET(FIGHTSTART)
SET(RANGETYPE,STARTPOS,100)
delay(30000)
SET(FIGHTSTOP)
ChangeWaitType(1)
jmp(grind)


label(grind)
SET(RANGETYPE,STARTPOS,3000)
SET(FIGHTSTART)
LABEL(PROVERKA)
!CharBuffs(Adventurer's Bless the Body[Id=4324])
{
SET(FIGHTSTOP)
SET(RANGETYPE,STARTPOS,100)
delay(30000)
JMP(start)
}
JMP(PROVERKA)

попробуй может получится.

[I]Добавлено через 16 минут
это он один раз проверит наличие бафа? я вот думаю если логически подумать то в конце программы чтоит го ту как на делфи к определенному месту, а оно выпендриваеться:(

LABEL(GOTO_SPOT)
MOVETO(85338,17245,-3576)
MOVETO(85365,21721,-3599)
MOVETO(85359,23070,-3544)
MOVETO(85409,24074,-3662)
MOVETO(86315,24640,-3621)
MOVETO(87585,24018,-3533)
MOVETO(89676,23633,-3629)
MOVETO(91558,22187,-3648)
MOVETO(92646,21907,-3459)
SET(FIGHTSTART)
SET(L2WALKER,ENABLE)
LABEL(PROVERKA)
CHARSTATUS(HP,<=,0)
{
SET(FIGHTSTOP)
DELAY(1000)
GOHOME()
DELAY(8000)
JMP(START)
RETURN()
}
!CharBuffs(Adventurer's Bless the Body[Id=4324])
{
MSG(Пора на ребаф)
SET(FIGHTSTOP)
USEITEM(Scroll of Escape[ID=736])
delay(30000)
JMP(START)
}
JMP(PROVERKA)
В данном варианте идёт полное зацикливание не проверку бафа и смерти во время кача. Как только баф слетит чар телепортнётся в город и скрипт запустится с начала.

HellTip
01.02.2010, 15:55
спасибо за помощь

Link
01.02.2010, 22:43
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)
DELAY(300000)
CALL(PROVERKA)


Прошу прощения. С начала не читал и очем вообще хз. Но не лучше, ли делей впихнуть в сам лейбл проверка? кучу строчек уберете

Erches
02.02.2010, 10:17
Ребят, подскажите. Как на погибшем чаре юзать свиток оживления, как это прописать в скрипте?
Заранее, спасибо.

KoAn
02.02.2010, 11:26
Ребят, подскажите. Как на погибшем чаре юзать свиток оживления, как это прописать в скрипте?
Заранее, спасибо.

Чар в пати или соло? если в пати то просто в боте задаешь, если соло то придется городить огород с проверкой на смерть и выполнением условий

Erches
02.02.2010, 12:00
Еще вопрос, пробовал написать скрипт, делевл в дионе, в настройках поставил атака нужного мне NPC, сохранил файл ини, написал скрипт и вставил там подгрузку этого файла ини. При запуске скрипта, чар не бьет нужного мне NPC, если опять поставить галку, то бьет. В чем проблема?
Заранее, спасибо.

KoAn
02.02.2010, 12:06
Еще вопрос, пробовал написать скрипт, делевл в дионе, в настройках поставил атака нужного мне NPC, сохранил файл ини, написал скрипт и вставил там подгрузку этого файла ини. При запуске скрипта, чар не бьет нужного мне NPC, если опять поставить галку, то бьет. В чем проблема?
Заранее, спасибо.

Ты очень путанно пишешь =(

Есть 2 реализации Длвл через скрипт путем прописывания всего через условия и через Бота, непосредственно в настройках.

Примеры можешь посмотреть поискав тут на форуме, обсуждений с кодами предостаточно.

В любом случае Длвл не проходит гладко, зачастую вылеты, приходится следить

Erches
02.02.2010, 12:18
Ты очень путанно пишешь =(

Для чего служат файлы ини? Сохраняют настройки в волкере?
Если так, то я сохраняю настройки бить определенного мне НПС, так вот после подгрузки в скрипте этого файла, чар не бьет НПС.

Если же вручную подбегать к НПС и поставить галку Атака НПС, все нормально.

KoAn
02.02.2010, 12:35
Для чего служат файлы ини? Сохраняют настройки в волкере?
Если так, то я сохраняю настройки бить определенного мне НПС, так вот после подгрузки в скрипте этого файла, чар не бьет НПС.

Если же вручную подбегать к НПС и поставить галку Атака НПС, все нормально.

Ини то же самое что ежедневник, ты записываешь туда то что будет исполнять бот.

Видимо ты что то не правильно задаешь или где то не верно что то поставил/забыл поставить, в твой комп залезть не могу что бы посмотреть где ошибка.:(

elenka
03.02.2010, 11:07
а вот назрел вопросик )
автотрейд более чем 6 предметов - как реализовать в скрипте?

Zarathustra
03.02.2010, 22:45
а вот назрел вопросик )
автотрейд более чем 6 предметов - как реализовать в скрипте?

на сколько я знаю - на трейд команд вообще нету...
встречный вопрос: а зачем?!:scratch_one-s_head:

elenka
03.02.2010, 23:07
встречный вопрос: а зачем?!:scratch_one-s_head:

потому что то , что я добываю ботами в 10 окнах имеет более 6 разновидностей и зачастую разворачивать сутки проработавшее окно очень неприятно и долго (

lva
03.02.2010, 23:37
Тут такой вопрос. Допустим есть квест, нужно убивая мобов, получить 2 или более квест итема, как это реализовать?
З.Ы Вопрос не так поставил. Не 2 штуки одного вида, а 2 разных итема.

Acmilan
04.02.2010, 00:12
ItemCount(ID[1234],=>,100500)
{
blablabla
}

Arg
05.02.2010, 09:22
LABEL(ProverkaKol)

ITEMCOUNT(Шкура Животного[ID=1867],<,6)
{
EXIT()
}

LABEL(ProverkaMP)
CHARSTATUS(CMP,<,1000)
{
DELAY(1000)
JMP(ProverkaMP)
}

USEITEM(Рецепт: Кожа[ID=1814])
DELAY(500)
DLGSEL([Создание])
DELAY(500)

JMP(ProverkaKol)

Знатоки гляньте пожалуйста скрипт, почему то не работает на руофе.
При запуске скрипта почему то не открывает рецепт. l2infob русское

nPoKa3HuK
05.02.2010, 22:26
LoadConfig(Крафт кожи.INI)////настраиваем валкер на крафт кожи
LABEL(ProverkaKol)
ITEMCOUNT(Шкура Животного[ID=1867],<,6)
{
LoadConfig(ни чего не делать.INI)///Нестаиваем валкер, что бы бот ни чего не делал
EXIT()
}
JMP(ProverkaKol)


Я бы зделал так. На мой взгляд это оптимальное решение.

Arg
06.02.2010, 13:56
Рассматривал такой вариант, но хотелось бы сделать без задействования лишних конфигов, на то есть причины.
Так что не так в том скрипте никто не подскажет?

Джузеппе
08.02.2010, 00:11
Рассматривал такой вариант, но хотелось бы сделать без задействования лишних конфигов, на то есть причины.
Так что не так в том скрипте никто не подскажет?

озадачивался этой проблемой. много рылся по инету и сам тестил, ничего не получается. только через смену настроек реализовал

alexteam
09.02.2010, 16:31
:D
Program kamikadze;
var
Recipe : TL2RecipeItem;
Ingridient_Coal, Ingridient_Leather, Ingridient_Cord : Tl2InvItem;

Function CheckIngridients:boolean;
begin
result := Recipe <> nil;
result := result and (Ingridient_Coal <> nil) and (Ingridient_Coal.count > 4);
result := result and (Ingridient_Leather <> nil) and (Ingridient_Leather.count > 4);
result := result and (Ingridient_Cord <> nil) and (Ingridient_Cord.count > 4);
end;

Begin
//Находим ингридиенты. их несколько.
Ingridient_Coal := engine.GetInvItem(1870);
Ingridient_Leather := engine.GetInvItem(1882);
Ingridient_Cord := engine.GetInvItem(1884);

engine.stand; //встаем. чтобы использовать скилл.
engine.UseSkill(1321); //1321=Dwarven Craft открываем книгу рецептов.
engine.sit; //садимся.
Recipe := Engine.GetRecipe(2148);//Находим рецепт. у него айди 2148

while true do //Крутимся вечно в цикле.
begin
if not CheckIngridients then //проверка на ингридиенты
begin
print('Не найдены\недостаточно ингдидиентов либо отсуствует рецепт.');
Exit; //вылетаем с цикла.
end;

if engine.CharData.CurrentMP > 30 then //если мп хватает чтобы скрафтить
Recipe.Execute; //Крафтим.

engine.sleep(5000); //ждем 5 сек перед повторением цикла.
end;
end.

Anafema
10.02.2010, 00:42
осталось тока родится Сауроном и запустить на руофе пакетхак)
//alexteam: это не пх. а мой бот. в пх кода бы было в 550 раз больше (серьезно).

Acmilan
15.02.2010, 02:17
result := result and (Ingridient_Coal <> nil) and (Ingridient_Coal.count > 4);
Мне надо выспаться, или это действительно бесконечная рекурсия? О_о

Добавлено через 32 секунды
Ааа функция булева..

HellTip
20.02.2010, 18:15
кто знает как написать зацикленный скрипт такого вида
использовать скил рыбалка(закинуть)
подождать 30 сек
использовать скил рыбалка(закинуть) и все по кругу....!! очень надо

Acmilan
20.02.2010, 19:34
LABEL(A1)
USESKILL([ID=1234]) //айди сам найди
DELAY(30000)
JMP(A1)

HellTip
20.02.2010, 22:24
а где искать ай ди?)

Добавлено через 44 минуты
пасиб большое додумался как сделать без айди)

Acmilan
21.02.2010, 01:12
На будущее:
В волкере во вкладке со скриптами нажимаешь кнопочку REC и используешь скил\предмет. Действие запишется и ид увидишь

HellTip
21.02.2010, 02:03
да я пробывал так сделать, но фигня в том что при нажатии рек не записывались действия со скилами, ни с рыбалкой ни какие либо другие.

Acmilan
21.02.2010, 02:53
хммм странно.. вообще вся рыбалка идет посредством настройки волкера.. Скрипт нужен не для этого..))

Ippo
25.02.2010, 15:09
Как сделать скрипт, чтобы перс после смерти всегда улетал в город? Имею 10% вероятность, что перс останется лежать.

LABEL(check)
CHARSTATUS(CHP,<=,0)
{
GOHOME()
DELAY(30000)
JMP(Start)
}
return()

LABEL(Exping)
call(check)
ITEMCOUNT(Soulshot: A-grade[ID=1464],<=,500)
{
SET(FIGHTSTOP)
call(fatality)
USEITEM(Scroll of Escape[ID=736])
delay(30000)
JMP(SSA)
}
!CharBuffs(Adventurer's Bless the Body[Id=4324])
{
SET(FIGHTSTOP)
call(fatality)
USEITEM(Scroll of Escape[ID=736])
delay(30000)
jmp(Start)
}
jmp(Exping)

Acmilan
25.02.2010, 15:34
Убери лейбл чек, поставь деат ретурн в волкере и запуск своего скрипта после смерти

Ippo
25.02.2010, 15:51
запуск своего скрипта после смерти
Я так понимаю, как только при смерти баф спал (а чар улетел в город), скрипт после заминок на фаталити и сое, отправляется на label(start) и там я уже задаю проверку координат города и далее возврат на место кача, так?

Acmilan
25.02.2010, 21:47
лейбл фаталити покажи

B0R0DA
25.02.2010, 21:54
шо вы мутите???
Ippo, после LABEL(Start) сделай еще раз проверку call(check)

00077k
25.02.2010, 22:22
В 1 запуске исрпавил несколько функций.
Во втором нормально дошёл до места рыбалки, стал запустилась проверка на ТП и сработала функция exit()

Где я ошибся? Или такие конструкции делать нельзя?

Я сначала подумал проблема тут: PosInRange(xxx,xxx,xxx,250). Сначала там было 50, но когда вылазит моб чар может сдвинутся, поэтому взял с запасом и всё равно не помогло.
LABEL(MOVETOFISH)
CALL(GIRANTOFISH) //идём из гирана на место рыбалки
DELAY(2000)
LABEL(STARTFISHING)
CALL(loc1) /идём на место рыбалки №1
DELAY(2000)
CALL(HASTE) //выпиваем бутылку haste, которая будет служить индикатором 20 минутной рыбалки на 1 месте
DELAY(2000)
SET(L2WALKER,ENABLE) //начинаем рыбачить
DELAY(2000)
[B]LABEL(GMTESTLOC1))
PosInRange(xxx,xxx,xxx,250) // проверка на месте ли рыбалки или нас переместили
{
JMP(HASTTEST1) //если на месте, то проверяем не спала ли бутылка Haste potion
}
EXIT() //если не спала, но мы не там где надо скрип off

LABEL(MOVELOC2)
CALL(CHISTKA) //чистим рыбку
DELAY(2000)
SET(L2WALKER,DISABLE) //выключаем бота
DELAY(10000)
CALL(loc2) //идём в локу №2
DELAY(2000)
CALL(HASTE) //пьём банку Haste potion
DELAY(2000)
..............etc

HASTTEST1
//HASTE TEST1///
LABEL(HASTTEST1)
!CharBuffs(Haste[Id=2011]) //проверяем есть ли баф Haste Potion
{
JMP(MOVELOC2) //если нету, то перемещаемся в другое место рыбачить
}
JMP(GMTESTLOC1) //если висит баф, проверяемя на телепорт ГМа ещё раз

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

B0R0DA
25.02.2010, 22:41
[b]LABEL(GMTESTLOC1))
а что за [b] и зачем вторая скобка в конце?

Acmilan
25.02.2010, 22:53
JMP(HASTTEST1)
Так нельзя, поменяй на call

B0R0DA
25.02.2010, 22:56
Acmilan, с чего это вдруг нельзя? О_о

00077k
25.02.2010, 23:59
а что за [b] и зачем вторая скобка в конце?
это хотел выделить жирным, потом убрал "[/b ]", а "[ b]" забыл.

А по-поводу "))" это не доглядел. Исправил в скрипте на 1 скобку, попоже проверю - отпишусь.
Спасибо. Смотрел всё, а скобку не заметил :)


[B]Acmilan
Так точно можно.

Acmilan
25.02.2010, 23:59
ну тогда хз. екзит может быть только если не соблюдено условие

00077k
26.02.2010, 00:01
Ну внутри блока нельзя описывать другой блок. Это ж вроде одно и тоже.
JMP можно.

Acmilan
26.02.2010, 00:02
JMP можно.
Ну тогда сорри. Туплю =)

00077k
26.02.2010, 01:15
Убрал лишнюю скобочку - не помогло :(

Ippo
26.02.2010, 14:15
лейбл фаталити покажи
LABEL(fatality)
SET(FIGHTSTART)
SET(RANGETYPE,STARTPOS,100)
delay(30000)
SET(FIGHTSTOP)
ChangeWaitType(1)
return()

B0R0DA
26.02.2010, 22:27
00077k, Ну тогда последнее что приходит в голову: когда ты имправлял/дописывал строчку LABEL(GMTESTLOC1)) может случайно поставил русскую С или О и поставил ту самую лишнюю скобку... короче перепиши названия лаблов и джампов, чтоб совпадали на 1оо%

Добавлено через 7 часов 27 минут
да?

Elastica
27.02.2010, 00:02
Подскажите пожалуйста, можно ли ввести в скрипты какую-то составляющую, с помощью которой, например, можно случайным образом выбирать путь до места кача? А то когда 2+ тела каждый час пробегают по одним точкам - это не айс.
И еще, подскажите можно ли определить имя персонажа?

Ippo
28.02.2010, 11:35
Как сделать условие "или" при проверке на количество сосок?
К примеру, если все условия не выполняются, то тогда конец скрипта:

ITEMCOUNT(Soulshot: C-grade[ID=1464],<,3000)
ITEMCOUNT(Soulshot: B-grade[ID=1465],<,1000)
ITEMCOUNT(Soulshot: A-grade[ID=1466],<,1000)
{
exit()
}

00077k
28.02.2010, 14:45
Как сделать условие "или" при проверке на количество сосок?
К примеру, если все условия не выполняются, то тогда конец скрипта:

ITEMCOUNT(Soulshot: C-grade[ID=1464],<,3000)
ITEMCOUNT(Soulshot: B-grade[ID=1465],<,1000)
ITEMCOUNT(Soulshot: A-grade[ID=1466],<,1000)
{
exit()
}

ITEMCOUNT(Soulshot: C-grade[ID=1464],<,3000)
{
JMP(CGRADE) //jump куда-то если сосок меньше 3000
}
//если больше то проверяет Б соски
ITEMCOUNT(Soulshot: B-grade[ID=1465],<,1000)
{
JMP(BGRADE)//джамп куда-то если Б сосок меньше 1000
}
//если больше, то проверяем А
ITEMCOUNT(Soulshot: A-grade[ID=1466],<,1000)
{
JMP(AGRADE) //тоже самое
}
//если все условия не выполнены, то выполняется exit()
exit()

Ippo
28.02.2010, 16:20
Тьфу блин, как все просто :)

Cruel
01.03.2010, 18:19
LABEL(Start)
POSINRANGE(координаты)
{
JMP(mov)
}
POSINRANGE(координаты)
{
MOVETO(координаты)
MOVETO(координаты)
JMP(mov)
}
POSINRANGE(координаты)
{
MOVETO(координаты)
MOVETO(координаты)
MOVETO(координаты)
JMP(mov)
}
POSINRANGE(координаты)
{
MOVETO(координаты)
MOVETO(координаты)
MOVETO(координаты)
JMP(Start)
}
POSINRANGE(координаты)
{
JMP(Exp)
}
DELAY(30000)
JMP(Start)
LABEL(mov)
MOVETO(координаты)
NPCSEL(Adventurers' Guide[ID=32327])
DELAY(500)
NPCDLG(Adventurers' Guide[ID=32327])
DELAY(3000)
DLGSEL(Посмотреть список вспомогательной магии)
DELAY(3000)
StrInDlg(Воспользоваться магией)
{
DLGSEL(Воспользоваться магией)
}
StrInDlg(Получить Дополнительную магию)
{
DLGSEL(Получить Дополнительную магию)
}
DELAY(3000)
NPCSEL(Valentina[ID=30177])
DELAY(5000)
NPCDLG(Valentina[ID=30177])
DELAY(5000)
DLGSEL(Телепортироваться)
DELAY(5000)
DLGSEL(Локация)
DELAT(20000)
MOVETO(координаты)
MOVETO(координаты)
MOVETO(координаты)
MOVETO(координаты)
MOVETO(координаты)
MOVETO(координаты)
MOVETO(координаты)
LABEL(Exp)
SET(RANGETYPE,STARTPOS,2500)
SET(FIGHTSTART)
LABEL(combat)
CharStatus(CHP,<=,0)
{
DELAY(3000)
SET(FIGHT,STOP)
GOHOME()
DELAY(50000)
JMP(start)
}
!CharBuffs([Id=4323])// Баффы закончились (ID баффа на защиту взятый с бороды)
{
SET(MON,NOATTACK,*)
SET(RANGETYPE,STARTPOS,100)
SET(FIGHT,START)
DELAY(30000)// Отбиваемся от хвоста
SET(FIGHT,STOP)
ChangeWaitType(1)
DELAY(1000)
USEITEM(Scroll of Escape[ID=736])
DELAY(50000)
JMP(start)
}
DELAY(1000)
JMP(combat)

Проблема в том, что после того как прилетает в город, начинает юзать сое, пока они не кончаются.

B0R0DA
01.03.2010, 19:01
POSINRANGE(координаты)
{
JMP(Exp)
}
Тут координаты места сражения должны быть. Судя по проблеме, у тебя тут стоят координаты города, после чего прыгаем на лабел Exp, там проверка на баф, бафа нет - юз сое...

Cruel
01.03.2010, 19:05
Спс, на твоих скриптах и учусь))) Переделал просто этот скрипт на немного другое место, а тут забыл координаты поменять)))

Кстати, хотел узнать еще одну вещь. В твоем скрипте на спойл в партизанах есть такое место:
JMP(CombatBegin)
}
PosInRange(47382,111278,-2104,1000) // Координаты дороги до места сражения
{
CALL(path001)
JMP(CombatBegin)
}
PosInRange(49801,111406,-2034,1000) // Координаты дороги до места сражения
{
CALL(path002)
JMP(CombatBegin)
}
PosInRange(51812,111092,-2006,1000) // Координаты дороги до места сражения
{
CALL(path003)
JMP(CombatBegin)
}
PosInRange(52164,112853,-2021,1000) // Координаты дороги до места сражения
{
CALL(path004)
JMP(CombatBegin)
Это для того, чтобы если бежишь, а на тебя сагрились, то остановиться, распинать всех и дальше? Я прост тока 3-ий день занимаюсь ими, не всё могу понять))

B0R0DA
01.03.2010, 20:26
Cruel, это чтоб при дисконекте скрипт можно было запустить с любого места и чтоб он продолжился, а не начинал делать все с начала

Cruel
01.03.2010, 22:22
)) Я еще думал, зачем каждый шаг делать так, будто он первый)) долго не мог понять, да еще эти пазы смутили, не видел такой команды ни разу))

Cruel
02.03.2010, 22:57
LABEL(Start)
POSINRANGE(82415,53812,-1522,2000)
{
JMP(mov)
}
POSINRANGE(82469,55614,-1551,2000)
{
MOVETO(82469,55614,-1551)
MOVETO(82345,54127,-1522)
JMP(mov)
}
POSINRANGE(79949,53099,-1586,2000)
{
MOVETO(79949,53099,-1586)
MOVETO(80606,53630,-1586)
MOVETO(82175,53368,-1522)
JMP(mov)
}
POSINRANGE(80266,55998,-1586,2000)
{
MOVETO(80266,55998,-1586)
MOVETO(81847,55686,-1551)
MOVETO(82502,55563,-1551)
JMP(Start)
}
POSINRANGE(точка кача)
{
JMP(Exp)
}
DELAY(30000)
JMP(Start)
LABEL(mov)
MOVETO(82722,53310,-1522)
NPCSEL(Adventurers' Guide[ID=32327])
DELAY(500)
NPCDLG(Adventurers' Guide[ID=32327])
DELAY(3000)
DLGSEL(Посмотреть список вспомогательной магии)
DELAY(3000)
StrInDlg(Воспользоваться магией)
{
DLGSEL(Воспользоваться магией)
}
StrInDlg(Получить Дополнительную магию)
{
DLGSEL(Получить Дополнительную магию)
}
DELAY(3000)
NPCSEL(Valentina[ID=30177])
DELAY(5000)
NPCDLG(Valentina[ID=30177])
DELAY(5000)
DLGSEL(Телепортироваться)
DELAY(5000)
DLGSEL(Море Спор)
DELAY(20000)
MOVETO(путь до место кача)
LABEL(Exp)
SET(RANGETYPE,STARTPOS,2500)
SET(FIGHTSTART)
LABEL(combat)
CharStatus(CHP,<=,0)
{
DELAY(3000)
SET(FIGHT,STOP)
GOHOME()
DELAY(50000)
JMP(Start)
}
!CharBuffs([Id=4323])// Баффы закончились (ID баффа на защиту)
{
SET(MON,NOATTACK,*)
SET(RANGETYPE,STARTPOS,100)
SET(FIGHT,START)
DELAY(30000)// Отбиваемся от хвоста
SET(FIGHT,STOP)
ChangeWaitType(1)
DELAY(1000)
USEITEM(Scroll of Escape[ID=736])
DELAY(50000)
JMP(Start)
}
DELAY(1000)
JMP(combat)


Проблема в том, что первый час кача усё норм, потом, когда бафф спадает, он естессно портуется как и задано...но когда прилетает в город снова юзает сое, т.к. баффа все равно нету, и он опять выполняет действие сое:(
Итак уважаемые знатоки, вопрос: Как можно сделать так, чтобы попадая в город (в данном случае Орен, я думаю понятно по имени ГК), первым делом он начал заново путь до нубихелпера?

Acmilan
03.03.2010, 00:15
POSINRANGE(80266,55998,-1586,2000)
{
MOVETO(80266,55998,-1586)
MOVETO(81847,55686,-1551)
MOVETO(82502,55563,-1551)
JMP(Start) //Тут наверно JMP(mov)
}

А USEITEM(Scroll of Escape[ID=736])
DELAY(50000)

перенеси в начало перед проверкой в городе

Cruel
03.03.2010, 00:24
если поставить ждамп на мов, то он будет не искать с на какой из точек респа находится, а сразу бежать к точке у нубихелпера кажись...

LABEL(Start)
USEITEM(Scroll of Escape[ID=736])
DELAY(50000)
POSINRANGE(82415,53812,-1522,2000)
{
JMP(mov)
}
POSINRANGE(82469,55614,-1551,2000)
{
MOVETO(82469,55614,-1551)
MOVETO(82345,54127,-1522)
JMP(mov)
}
POSINRANGE(79949,53099,-1586,2000)
{
MOVETO(79949,53099,-1586)
MOVETO(80606,53630,-1586)
MOVETO(82175,53368,-1522)
JMP(mov)
}
POSINRANGE(80266,55998,-1586,2000)
{
MOVETO(80266,55998,-1586)
MOVETO(81847,55686,-1551)
MOVETO(82502,55563,-1551)
JMP(mov)
}
POSINRANGE(точка кача)
{
JMP(Exp)
}
DELAY(30000)
JMP(Start)
LABEL(mov)
MOVETO(82722,53310,-1522)
NPCSEL(Adventurers' Guide[ID=32327])
DELAY(500)
NPCDLG(Adventurers' Guide[ID=32327])
DELAY(3000)
DLGSEL(Посмотреть список вспомогательной магии)
DELAY(3000)
StrInDlg(Воспользоваться магией)
{
DLGSEL(Воспользоваться магией)
}
StrInDlg(Получить Дополнительную магию)
{
DLGSEL(Получить Дополнительную магию)
}
DELAY(3000)
NPCSEL(Valentina[ID=30177])
DELAY(5000)
NPCDLG(Valentina[ID=30177])
DELAY(5000)
DLGSEL(Телепортироваться)
DELAY(5000)
DLGSEL(Море Спор)
DELAY(20000)
MOVETO(путь до место кача)
LABEL(Exp)
SET(RANGETYPE,STARTPOS,2500)
SET(FIGHTSTART)
LABEL(combat)
CharStatus(CHP,<=,0)
{
DELAY(3000)
SET(FIGHT,STOP)
GOHOME()
DELAY(50000)
JMP(Start)
}
!CharBuffs([Id=4323])// Баффы закончились (ID баффа на защиту)
{
SET(MON,NOATTACK,*)
SET(RANGETYPE,STARTPOS,100)
SET(FIGHT,START)
DELAY(30000)// Отбиваемся от хвоста
SET(FIGHT,STOP)
ChangeWaitType(1)
DELAY(1000)
JMP(Start)
}
DELAY(1000)
JMP(combat)

так ты имеешь ввиду?

Acmilan
03.03.2010, 01:16
Блин, ну я же специально выделил целый блок)) Прочитай мой пост полностью и сравни со своим скриптом, и надеюсь поймешь =)

Cruel
03.03.2010, 09:56
Всё, окончательно мозги из-за этих скриптов разъехались)))))) Спс))) Щас буду шаманить)))

Vasquez
06.03.2010, 12:51
Подскажите пожалуйста...а это...byitem работает вообще?
Не могу у нпц чет ничего купить...

NPCSEL(Harmony[ID=30254])
DELAY(3000)
NPCDLG(Harmony[ID=30254])
DELAY(3000)
DLGSEL(Купить припасы и минералы)
DELAY(3000)
BUYITEM(Scroll of Resurrection[ID=737],2)
DELAY(3000)

вот это не работает почему-то - не покупает нифига(

Cruel
06.03.2010, 13:23
Подскажите пожалуйста...а это...byitem работает вообще?
Не могу у нпц чет ничего купить...

NPCSEL(Harmony[ID=30254])
DELAY(3000)
NPCDLG(Harmony[ID=30254])
DELAY(3000)
DLGSEL(Купить припасы и минералы)
DELAY(3000)
BUYITEM([ID=737],2;) возможно из-за этого, или просто с диалогами не так, и может попробовать название вещи убрать, тока айди оставь.
DELAY(3000)

вот это не работает почему-то - не покупает нифига(

выделил

Vasquez
06.03.2010, 13:34
не, чет не помогает - всеравно не покупает - просто доходит до конца и все=(

Cruel
06.03.2010, 15:32
NPCSEL(7254[/COLOR]])
DELAY(3000)
NPCDLG([ID=7254])
DELAY(3000)
DLGSEL(Купить припасы и минералы)
DELAY(3000)
BUYITEM([ID=737],2;)
DELAY(3000)

Проверь, там именно "Купить припасы и минералы"? Вроде все верно....Айди проверил тока что.
Айди нпс неправильно

[I]Добавлено через 1 час 55 минут
Ну так что? Пашет или опять не то?

Vasquez
06.03.2010, 15:40
счас гляну) просто этот ИД дал валкер - ну записал скрыпт

MagL2
06.03.2010, 23:34
Помогите реализовать отзыв пета через скрипт и валкер...

ЗЫ: можно в Личку ;)

Vasquez
08.03.2010, 01:14
Это...не работает с другим ИД всеравно не покупает - прогоняет скрипт и все - не выпоолняет команду(

Cruel
08.03.2010, 01:58
Это НПС в каком городе? потестю, скину результат.

Добавлено через 19 минут
NPCSEL(Harmony)
NPCDLG(Harmony[ID=30254])
DLGSEL(Купить припасы и минералы)
BUYITEM(Scroll of Resurrection[ID=737],2;)

То, что записал и проверил 6 раз (блин, терь 14 ресов в рюкзаке). Скорее всего проблема не в этой части.

[I]Добавлено через 5 минут
Скинь полный скрипт, посмотрим что там.

Vasquez
08.03.2010, 05:50
Блин...странно как-то=(
Только эта часть и есть - покупка и все. Не покупает((

MagL2
08.03.2010, 18:07
Vasquez, скрипт нпс выделяет, окошко диалога открывает? попробуй вставить задержки между действиями, проверь наличие денег)

Cruel
08.03.2010, 23:59
проверял уже раз 10 (все равно на пета ресы нужны блин), всё пашет... В окне купли продажи сразу говорю РЕСЫ НЕ ПЕРЕКИДЫВАЮТСЯ, они просто сразу появляются в инвентаре, а деньги вычетаются:) Проверь инвентарь.

Vasquez
10.03.2010, 01:28
все ясно, спс большое за разъясненье - и правда, пашет - просто ничего в системных сообщ не пишет и в окне тож ничего, просто появляется в инв.=) Туплю...что делать=))

Добавлено через 11 минут
Блин...а такая точно не пашет штука хз почему
NPCSEL(Helvetia[ID=30081])
DELAY(1000)
NPCDLG(Helvetia[ID=30081])
DELAY(1000)
DLGSEL(Купить припасы и минералы)
DELAY(1000)
BUYITEM(Scroll: Recovery (Grade A)[ID=8598],30;)
DELAY(1000)

в гиране

Cruel
10.03.2010, 01:51
Это записанный скрипт? Просто щас нет способа проверить. А так, если записан и ПОДСТАВЛЕН АйДи рековера А грейда, то может в магазе гирановском их и нету (в Адене и выше кажись А грейд рековери)

Vasquez
10.03.2010, 02:38
не - это записанный, ид рекавера дал валкер.
нужно брать где-то другой?

B0R0DA
10.03.2010, 12:33
Vasquez, тока ИД свитка оставь

Cruel
10.03.2010, 13:53
Да кстати, борода как всегда прав, можно ведь и без названия попробовать, бывали такие ошибки:)

NPCSEL(Helvetia[ID=30081])
DELAY(1000)
NPCDLG(Helvetia[ID=30081])
DELAY(1000)
DLGSEL(Купить припасы и минералы)
DELAY(1000)
BUYITEM([ID=8598],30;)
DELAY(1000)

Vasquez
10.03.2010, 22:54
Ее все фурычит, спасибо=)

Foxich
11.03.2010, 16:15
Господа, возник вопрос по оптимизации. Просматривал скрипты с целью изучения логики их построения. В скрипте TromaL на кач в HuntersVillage проверка на смерть реализована таким образом:

CharStatus(CHP,<=,0)
{
msg(Sdoh)
Set(FightStop)
delay(3000)
gohome()
DELAY(20000)
jmp(Start)
}
DELAY(60000)
Данный фрагмент кода повторяется более 50 раз, занимая более 80% тела скрипта. Предполагаю, что автор таким образом избавился от дополнительной проверки на наличие бафов, т.к. после 50+ ежеминутных проверок идет зачистка хвоста и тп в город.

Для себя постарался оптимизировать проверки на смерть/бафы, получилось таким образом:

label(GeneralCheck)
Delay(60000)
Charstatus(CHP,<=,0) //Проверяем жив ли бот
{
MSG(Fatality)
Set(Fightstop)
Delay(3000)
gohome()
Delay(20000)
jmp(start)
}
CharBuffs([Id=4323]) //Проверяем наличие бафов
{
MSG(Out of Buff - ReBuff)
Set(RangeType,StartPos,100)
Set(FightStart)
Delay(30000)
Set(Fightstop)
UseItem(Scroll of Escape [id=736])
jmp(start)
}
jmp(GeneralCheck)
Корректен ли приведенный мной фрагмент? В данный момент, просто не имею возможности проверить :)

Стоит ли выдержать дополнительную паузу после проверки на наличие бафа и процедуры зачистки хвоста или это станет бесполезной потерей времени?
CharBuffs([ID=4243]) //Проверяем наличие бафов
{
MSG(Out of Buff - ReBuff)
Delay(10000)
Set(RangeType,StartPos,100)
Set(FightStart)
Delay(30000)
Set(Fightstop)
UseItem(Scroll of Escape [id=736])
jmp(start)
}

Так же возник вопрос, как проверить наличие штрафа за смерть с целью изничтожить оный свитком снятия штрафа?

Cruel
11.03.2010, 18:07
Для зачистки от хвоста поставь монстр ноатак, чтоб тока сагрившихся завалил, а то нацепляешь.

Foxich
11.03.2010, 18:14
Cruel, Спасиб, как то сразу в голову не пришло, исправил :)

Остается вопрос про штраф за смерть и, думаю, как у многих, кто только что начал :) - Точки ТП
На олчитсе они сидят в хайде :(

umaxi
13.03.2010, 22:35
Привет ребята адаптирую скрипт под руоф но проблема втом что перс бафаться не хочет у нубл бафа помогите решить вот скрипт выкладываю
LABEL(GO)
USEITEM(Scroll of Escape)
DELAY(20000)
POSINRANGE(-84064,150864,-3120,300)
{
MOVETO(-83138,150910,-3120)
NPCSEL(Newbie Guide)
DELAY(1011)
NPCDLG(Newbie Guide)
DELAY(1361)
DLGSEL(Посмотреть список )
DELAY(1500)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82035,152647,-3168,300)
{
MOVETO(-82991,152654,-3204)
MOVETO(-83103,150966,-3155)
NNPCSEL(Newbie Guide)
DELAY(1011)
NPCDLG(Newbie Guide)
DELAY(1361)
DLGSEL(Посмотреть список вспомогательных заклинаний)
DELAY(1500)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82186,150495,-3155,300)
{
MOVETO(-83100,150866,-3155)
NPCSEL(Newbie Guide)
DELAY(1011)
NPCDLG(Newbie Guide)
DELAY(1361)
DLGSEL(Посмотреть список вспомогательных заклинаний)
DELAY(1500)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82084,-82084,-3155,300)
{
MOVETO(-80791,154711,-3204)
MOVETO(-81623,154836,-3204)
MOVETO(-82891,154803,-3204)
MOVETO(-83089,153663,-3204)
MOVETO(-83109,152013,-3155)
MOVETO(-83118,150986,-3155)
NPCSEL(Newbie Guide)
DELAY(1011)
NPCDLG(Newbie Guide)
DELAY(1361)
DLGSEL(Посмотреть список)
DELAY(1500)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-83408,151376,-3120,300)
{
MOVETO(-83105,150876,-3155)
NNPCSEL(Newbie Guide)
DELAY(1011)
NPCDLG(Newbie Guide)
DELAY(1361)
DLGSEL(Посмотреть список )
DELAY(1500)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
LABEL(START)
MOVETO(-81649,150284,-3155)
MOVETO(-81111,150131,-3081)
MOVETO(-80765,149784,-3070)
NPCSEL(Richlin[ID=30320])
NPCDLG(Richlin[ID=30320])
DLGSEL(Телепортироваться)
DLGSEL(Забытый Храм)
DELAY(10000)
MOVETO(-52858,190621,-3519)
MOVETO(-52901,188947,-4330)
MOVETO(-52953,188207,-4723)
MOVETO(-53616,188117,-4686)
MOVETO(-53752,189166,-4559)
MOVETO(-53767,190171,-4541)
MOVETO(-55218,190360,-4503)
MOVETO(-55916,190357,-4502)
MOVETO(-56982,190354,-4541)
MOVETO(-57390,189842,-4541)
MOVETO(-57443,188985,-4541)
MOVETO(-57443,188345,-4524)
MOVETO(-57464,187334,-4541)
MOVETO(-57470,186527,-4541)
MOVETO(-57692,185335,-4543)
MOVETO(-58511,185314,-4541)
DELAY(6000)
SET(FIGHTSTART)
SET(RANGETYPE,STARTPOS,350)
DELAY(3400000)
SET(FIGHTSTOP)
DELAY(30000)
CHARSTATUS(CHP,==,0)
{
GOHOME()
SET(FIGHTSTOP)
DELAY(5000)
JMP(GO)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(10000)
JMP(GO)

[I]Добавлено через 1 минуту
вот еще один скрипт тут перс бафается только при старте скрипта
//MSG(Стартова локация: Orc Village)
Label(Start)
MOVETO(-45044, -113844, -216)
MOVETO(-45086, -113606, -192)
NPCSEL(Newbie Guide)
DELAY(1011)
NPCDLG(Newbie Guide)
DELAY(1361)
DLGSEL(Посмотреть список )
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
MOVETO(-45060, -113137, -240)
MOVETO(-44758, -112877, -240)
MOVETO(-45197, -112508, -240)
NPCSEL(Tamil)
DELAY(968)
NPCDLG(Tamil)
DELAY(932)
DLGSEL(Телепортироваться)
DELAY(1037)
DLGSEL(Пещера Испытаний)
DELAY(1094)
//In Cave of trials
MOVETO(9184, -112296, -2536)
MOVETO(10542, -109586, -2152)
MOVETO(13371, -106830, -2088)
MOVETO(8929, -105044, -2536)
MOVETO(8006, -101887, -2392)
SET(FIGHTSTART) //качаемся 53 минуты
DELAY(3200000)
SET(FIGHTSTOP)

CHARSTATUS(CHP,==,0)
{
GOHOME()

Cruel
14.03.2010, 01:22
LABEL(GO)
USEITEM(Scroll of Escape[ID=736])
DELAY(20000)
POSINRANGE(-84064,150864,-3120,300)
{
MOVETO(-83138,150910,-3120)
NPCSEL(Newbie Guide) тут лучше поставь айди помощника новичков.
DELAY(1011)
NPCDLG(Newbie Guide) аналогично
DELAY(1361)
DLGSEL(Посмотреть список ) проверь диалоги
DELAY(1500)
DLGSEL(Получить Дополнительную магию) аналогично
DELAY(1500)
JMP(START)
в остальных аналогично, проверь диалоги и вставь айди (лучше убрав при этом имя нпс)




Вот как то так. Во втором нету возвращения в город, т.е. после 53 минут, он вырубает режим боя и тупо стоит.

umaxi
14.03.2010, 10:30
//MSG(Стартова локация: Orc Village)
Label(Start)
MOVETO(-45044, -113844, -216)
MOVETO(-45086, -113606, -192)
NPCSEL(Newbie Guide)
DELAY(1011)
NPCDLG(Newbie Guide)
DELAY(1361)
DLGSEL(Просмотреть список вспомогательной магии)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
MOVETO(-45060, -113137, -240)
MOVETO(-44758, -112877, -240)
MOVETO(-45197, -112508, -240)
NPCSEL(Tamil)
DELAY(968)
NPCDLG(Tamil)
DELAY(932)
DLGSEL(Телепортироваться)
DELAY(1037)
DLGSEL(Пещера Испытаний)
DELAY(1094)
//In Cave of trials
MOVETO(9184, -112296, -2536)
MOVETO(10542, -109586, -2152)
MOVETO(13371, -106830, -2088)
MOVETO(8929, -105044, -2536)
MOVETO(8006, -101887, -2392)
SET(FIGHTSTART) //качаемся 53 минуты
DELAY(3200000)
SET(FIGHTSTOP)

CHARSTATUS(CHP,==,0)
{
GOHOME()
DELAY(3000)
}
USEITEM(Scroll of Escape)
DELAY(15000)
JMP(Start)

[I]Добавлено через 17 минут
LABEL(GO)

MOVETO(-83138,150910,-3120)
NPCSEL(Newbie Guide)
NPCDLG(Newbie Guide[ID=31076])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
POSINRANGE(-82035,152647,-3168,300)
{
MOVETO(-82991,152654,-3204)
MOVETO(-83103,150966,-3155)
NPCSEL(Newbie Guide[ID=31076])
NPCDLG(Newbie Guide[ID=31076])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
POSINRANGE(-82186,150495,-3155,300)
{
MOVETO(-83100,150866,-3155)
NPCSEL(Newbie Guide[ID=31076])
NPCDLG(Newbie Guide[ID=31076])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
POSINRANGE(-82084,-82084,-3155,300)
{
MOVETO(-80791,154711,-3204)
MOVETO(-81623,154836,-3204)
MOVETO(-82891,154803,-3204)
MOVETO(-83089,153663,-3204)
MOVETO(-83109,152013,-3155)
MOVETO(-83118,150986,-3155)
NPCSEL(Newbie Guide[ID=31076])
NPCDLG(Newbie Guide[ID=31076])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
POSINRANGE(-83408,151376,-3120,300)
{
MOVETO(-83105,150876,-3155)
NPCSEL(Newbie Guide[ID=31076])
NPCDLG(Newbie Guide[ID=31076])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
LABEL(START)
MOVETO(-81649,150284,-3155)
MOVETO(-81111,150131,-3081)
MOVETO(-80765,149784,-3070)
NPCSEL(Richlin[ID=30320])
NPCDLG(Richlin[ID=30320])
DLGSEL(Телепортироваться)
DLGSEL(Забытый Храм)
DELAY(10000)
MOVETO(-52858,190621,-3519)
MOVETO(-52901,188947,-4330)
MOVETO(-52953,188207,-4723)
MOVETO(-53616,188117,-4686)
MOVETO(-53752,189166,-4559)
MOVETO(-53767,190171,-4541)
MOVETO(-55218,190360,-4503)
MOVETO(-55916,190357,-4502)
MOVETO(-56982,190354,-4541)
MOVETO(-57390,189842,-4541)
MOVETO(-57443,188985,-4541)
MOVETO(-57443,188345,-4524)
MOVETO(-57464,187334,-4541)
MOVETO(-57470,186527,-4541)
MOVETO(-57692,185335,-4543)
MOVETO(-58511,185314,-4541)
DELAY(6000)
SET(FIGHTSTART)
SET(RANGETYPE,STARTPOS,350)
DELAY(3400000)
SET(FIGHTSTOP)
DELAY(30000)
CHARSTATUS(CHP,==,0)
{
GOHOME()
SET(FIGHTSTOP)
DELAY(5000)
JMP(GO)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(10000)
JMP(GO)

[I]Добавлено через 5 минут
всеравно бот даже не прибегает к нпс

[I]Добавлено через 4 минуты
теперь стал прибегать но жмет на баф помошника

[I]Добавлено через 4 минуты
нашел косяк скобочки нужно ближе ставить

Добавлено через 46 секунд
сейчас жду когда бот вернется

Добавлено через 4 минуты
еще телепортирование при старте скрипта убрал

Добавлено через 5 минут
вот еще бы радиус чуточку увеличить а то за перегородку бот во во втором случае не идет если прописываю больший радиус то выходит за пределы комнаты

Добавлено через 52 минуты
телепортироватья сам бот не хочет что делать

umaxi
14.03.2010, 10:48
LABEL(GO)
{
MOVETO(-83138,150910,-3120)
NPCSEL(Newbie Guide)
NPCDLG(Newbie Guide)
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
POSINRANGE(-82035,152647,-3168,300)
{
MOVETO(-82991,152654,-3204)
MOVETO(-83103,150966,-3155)
NPCSEL(Newbie Guide[ID=31076])
NPCDLG(Newbie Guide[ID=31076])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
POSINRANGE(-82186,150495,-3155,300)
{
MOVETO(-83100,150866,-3155)
NPCSEL(Newbie Guide[ID=31076])
NPCDLG(Newbie Guide[ID=31076])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
POSINRANGE(-82084,-82084,-3155,300)
{
MOVETO(-80791,154711,-3204)
MOVETO(-81623,154836,-3204)
MOVETO(-82891,154803,-3204)
MOVETO(-83089,153663,-3204)
MOVETO(-83109,152013,-3155)
MOVETO(-83118,150986,-3155)
NPCSEL(Newbie Guide[ID=31076])
NPCDLG(Newbie Guide[ID=31076])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
POSINRANGE(-83408,151376,-3120,300)
{
MOVETO(-83105,150876,-3155)
NPCSEL(Newbie Guide[ID=31076])
NPCDLG(Newbie Guide[ID=31076])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
JMP(START)
}
LABEL(START)
MOVETO(-81649,150284,-3155)
MOVETO(-81111,150131,-3081)
MOVETO(-80765,149784,-3070)
NPCSEL(Richlin[ID=30320])
NPCDLG(Richlin[ID=30320])
DLGSEL(Телепортироваться)
DLGSEL(Забытый Храм)
DELAY(10000)
MOVETO(-52858,190621,-3519)
MOVETO(-52901,188947,-4330)
MOVETO(-52953,188207,-4723)
MOVETO(-53616,188117,-4686)
MOVETO(-53752,189166,-4559)
MOVETO(-53767,190171,-4541)
MOVETO(-55218,190360,-4503)
MOVETO(-55916,190357,-4502)
MOVETO(-56982,190354,-4541)
MOVETO(-57390,189842,-4541)
MOVETO(-57443,188985,-4541)
MOVETO(-57443,188345,-4524)
MOVETO(-57464,187334,-4541)
MOVETO(-57470,186527,-4541)
MOVETO(-57692,185335,-4543)
MOVETO(-58511,185314,-4541)
DELAY(6000)
SET(FIGHTSTART)
SET(RANGETYPE,STARTPOS,350)
DELAY(3400000)
SET(FIGHTSTOP)
DELAY(30000)
CHARSTATUS(CHP,==,0)
{
GOHOME()
SET(FIGHTSTOP)
DELAY(5000)
JMP(GO)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(10000)
JMP(GO)

[I]Добавлено через 15 минут
первый скрипт когда цикл завершился бафаться не идет сразу пробегает бафера

[I]Добавлено через 1 минуту
вот привожу его еще раз
//MSG(Стартова локация: Orc Village)
Label(Start)
MOVETO(-45044, -113844, -216)
MOVETO(-45086, -113606, -192)
NPCSEL(Newbie Guide[ID=31076])
DELAY(1011)
NPCDLG(Newbie Guide[ID=31076])
DELAY(1361)
DLGSEL(Посмотреть список вспомогательных заклинаний)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
MOVETO(-45060, -113137, -240)
MOVETO(-44758, -112877, -240)
MOVETO(-45197, -112508, -240)
NPCSEL(Tamil)
DELAY(968)
NPCDLG(Tamil)
DELAY(932)
DLGSEL(Телепортироваться)
DELAY(1037)
DLGSEL(Пещера Испытаний)
DELAY(1094)
//In Cave of trials
MOVETO(9184, -112296, -2536)
MOVETO(10542, -109586, -2152)
MOVETO(13371, -106830, -2088)
MOVETO(8929, -105044, -2536)
MOVETO(8006, -101887, -2392)
SET(FIGHTSTART) //качаемся 53 минуты
DELAY(3200000)
SET(FIGHTSTOP)

CHARSTATUS(CHP,==,0)
{
GOHOME()
DELAY(3000)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(15000)
JMP(Start)

Foxich
14.03.2010, 14:37
Здесь у тебя сначала пауза на кач, потом проверка на смерть, если чар во время кача упадет, так и пролежит остатки времени до проверки на смерть
SET(FIGHTSTART) //качаемся 53 минуты
DELAY(3200000)
SET(FIGHTSTOP)

CHARSTATUS(CHP,==,0)
{
GOHOME()
DELAY(3000)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(15000)
JMP(Start)

Тут ID укажи или имя НПЦ поменяй на руофф
NPCSEL(Tamil)
DELAY(968)
NPCDLG(Tamil)
DELAY(932)

первый скрипт когда цикл завершился бафаться не идет сразу пробегает бафера

Тут все корректно, по крайней мере таковым кажется :)
Что точно происходит? Выделяется нуби гайд или нет?

NPCSEL(Newbie Guide[ID=31076])
DELAY(1011)
NPCDLG(Newbie Guide[ID=31076])
DELAY(1361)
DLGSEL(Посмотреть список вспомогательных заклинаний)
Delay(1000) //Я бы поставил, для перестраховки
DLGSEL(Получить Дополнительную магию)
DELAY(1500)

umaxi
14.03.2010, 21:37
про первый скажу не выделяется сразу пробегает пробую ид 31077

Добавлено через 24 минуты
почему после завершения кача перс не телепортируется?

Добавлено через 4 минуты
поправил тестирую
LABEL(GO)
{
MOVETO(-83138,150910,-3120)
NPCSEL(Newbie Guide)
NPCDLG(Newbie Guide)
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82035,152647,-3168,300)
{
MOVETO(-82991,152654,-3204)
MOVETO(-83103,150966,-3155)
NPCSEL(Newbie Guide[ID=31077])
NPCDLG(Newbie Guide[ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82186,150495,-3155,300)
{
MOVETO(-83100,150866,-3155)
NPCSEL(Newbie Guide[ID=31077])
NPCDLG(Newbie Guide[ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82084,-82084,-3155,300)
{
MOVETO(-80791,154711,-3204)
MOVETO(-81623,154836,-3204)
MOVETO(-82891,154803,-3204)
MOVETO(-83089,153663,-3204)
MOVETO(-83109,152013,-3155)
MOVETO(-83118,150986,-3155)
NPCSEL(Newbie Guide[ID=31077])
NPCDLG(Newbie Guide[ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-83408,151376,-3120,300)
{
MOVETO(-83105,150876,-3155)
NPCSEL(Newbie Guide[ID=31077])
NPCDLG(Newbie Guide[ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
LABEL(START)
MOVETO(-81649,150284,-3155)
MOVETO(-81111,150131,-3081)
MOVETO(-80765,149784,-3070)
NPCSEL(Richlin[ID=30320])
NPCDLG(Richlin[ID=30320])
DLGSEL(Телепортироваться)
DLGSEL(Забытый Храм)
DELAY(10000)
MOVETO(-52858,190621,-3519)
MOVETO(-52901,188947,-4330)
MOVETO(-52953,188207,-4723)
MOVETO(-53616,188117,-4686)
MOVETO(-53752,189166,-4559)
MOVETO(-53767,190171,-4541)
MOVETO(-55218,190360,-4503)
MOVETO(-55916,190357,-4502)
MOVETO(-56982,190354,-4541)
MOVETO(-57390,189842,-4541)
MOVETO(-57443,188985,-4541)
MOVETO(-57443,188345,-4524)
MOVETO(-57464,187334,-4541)
MOVETO(-57470,186527,-4541)
MOVETO(-57692,185335,-4543)
MOVETO(-58511,185314,-4541)
DELAY(6000)
SET(FIGHTSTART)
SET(RANGETYPE,STARTPOS,350)
DELAY(3200000)
SET(FIGHTSTOP)
CHARSTATUS(CHP,==,0)
{
GOHOME()
SET(FIGHTSTOP)
DELAY(5000)
JMP(GO)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(10000)
JMP(GO)

[I]Добавлено через 25 минут
вот первый поправил
//MSG(Стартова локация: Orc Village)
Label(Start)
MOVETO(-45044, -113844, -216)
MOVETO(-45086, -113606, -192)
NPCSEL(Newbie Guide)
DELAY(1011)
NPCDLG(Newbie Guide[ID=31077])
DELAY(1361)
Delay(1000) //Я бы поставил, для перестраховки
DLGSEL(Посмотреть список вспомогательных заклинаний)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
MOVETO(-45060, -113137, -240)
MOVETO(-44758, -112877, -240)
MOVETO(-45197, -112508, -240)
NPCSEL(Tamil[ID=27035])
DELAY(968)
NPCDLG(Tamil[ID=27035])
DELAY(932)
DLGSEL(Телепортироваться)
DELAY(1037)
DLGSEL(Пещера Испытаний)
DELAY(1094)
//In Cave of trials
MOVETO(9184, -112296, -2536)
MOVETO(10542, -109586, -2152)
MOVETO(13371, -106830, -2088)
MOVETO(8929, -105044, -2536)
MOVETO(8006, -101887, -2392)
SET(FIGHTSTART) //качаемся 53 минуты
DELAY(3200000)
SET(FIGHTSTOP)

CHARSTATUS(CHP,==,0)
{
GOHOME()
DELAY(3000)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(15000)
JMP(Start)

[I]Добавлено через 35 минут
еще нужно чучуть во втором скрипте радиус увеличить чтобы за перегородкой мобов бил

[I]Добавлено через 29 минут
во втором случае
так и не бафается сам еще после смерти валяется на месте

Добавлено через 24 минуты
ну что молчим то? у мя все боты стоят

Добавлено через 1 час 33 минуты
все таки я неудачник мой премиум акаунт заблокировали я на нем играл с начала 2009 года что теперь делать хоть бы шмотки скинуть

Foxich
14.03.2010, 21:47
ну что молчим то? у мя все боты стоят
Ммм... Воскресение.. Дела, дела :)


NPCDLG(Newbie Guide[ID=31077])
Попробуй убрать "Newbie Guide", валкеру в принципе не нужно имя НПЦ, если указан ID, выше в теме обсуждалась похожая проблема, вылечилась тем, что оставили только ID, да и Cruel уже упоминал об этом

Это точно синтаксис скрипта?
Получается, что после метки (GO) без описания команды-условия сразу идет действие, выполняемое, если условие TRUE
LABEL(GO)
{
MOVETO(-83138,150910,-3120)
NPCSEL(Newbie Guide[ID=31077])
NPCDLG(Newbie Guide[ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}

А с качем и телепортом, попробуй лучше так:

Проверено на своих ботах :)
Падают - портируются,
Бафы кончаются - портируются :))

//Базовая проверка на Смерть-Бафы
label(GeneralCheck)
Delay(60000)
CharStatus(CHP,<=,0) //Проверяем жив ли персонаж
{
MSG(Персонаж Погиб)
Set(Fightstop)
Delay(3000)
gohome()
Delay(20000)
jmp(start)
}
!CharBuffs([Id=4323]) // Бафы закончились (ID бафа на защиту)
{
MSG(Out of Buff - ReBuff)
Set(Mon,NoAttack,*)
Set(RangeType,StartPos,100)
Set(FightStart) //Отбиваемся от хвоста
Delay(30000)
Set(Fightstop)
UseItem(Scroll of Escape [id=736])
jmp(start) //Start описывает действия в городе, ребаф/соски/банки и т.п.
}
jmp(GeneralCheck)

umaxi
15.03.2010, 05:32
я сам для себя названия оставляю так как путаюсь в них а вт часть кода которую я убрал MOVETO(-83138,150910,-3120)
USEITEM(Scroll of Escape)
DELAY(20000)
POSINRANGE(-84064,150864,-3120,300)

[I]Добавлено через 6 минут
LABEL(GO)
POSINRANGE(-84064,150864,-3120,300)
{
MOVETO(-83138,150910,-3120)
NPCSEL()
NPCDLG()
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82035,152647,-3168,300)
{
MOVETO(-82991,152654,-3204)
MOVETO(-83103,150966,-3155)
NPCSEL(Newbie Guide[ID=31077])
NPCDLG(Newbie Guide[ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82186,150495,-3155,300)
{
MOVETO(-83100,150866,-3155)
NPCSEL([ID=31077])
NPCDLG([ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82084,-82084,-3155,300)
{
MOVETO(-80791,154711,-3204)
MOVETO(-81623,154836,-3204)
MOVETO(-82891,154803,-3204)
MOVETO(-83089,153663,-3204)
MOVETO(-83109,152013,-3155)
MOVETO(-83118,150986,-3155)
NPCSEL([ID=31077])
NPCDLG([ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-83408,151376,-3120,300)
{
MOVETO(-83105,150876,-3155)
NPCSEL([ID=31077])
NPCDLG([ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
LABEL(START)
MOVETO(-81649,150284,-3155)
MOVETO(-81111,150131,-3081)
MOVETO(-80765,149784,-3070)
NPCSEL(Richlin[ID=30320])
NPCDLG(Richlin[ID=30320])
DLGSEL(Телепортироваться)
DLGSEL(Забытый Храм)
DELAY(10000)
MOVETO(-52858,190621,-3519)
MOVETO(-52901,188947,-4330)
MOVETO(-52953,188207,-4723)
MOVETO(-53616,188117,-4686)
MOVETO(-53752,189166,-4559)
MOVETO(-53767,190171,-4541)
MOVETO(-55218,190360,-4503)
MOVETO(-55916,190357,-4502)
MOVETO(-56982,190354,-4541)
MOVETO(-57390,189842,-4541)
MOVETO(-57443,188985,-4541)
MOVETO(-57443,188345,-4524)
MOVETO(-57464,187334,-4541)
MOVETO(-57470,186527,-4541)
MOVETO(-57692,185335,-4543)
MOVETO(-58511,185314,-4541)
DELAY(6000)
label(GeneralCheck)
Delay(60000)
CharStatus(CHP,<=,0) //Проверяем жив ли персонаж
{
MSG(Персонаж Погиб)
Set(Fightstop)
Delay(3000)
gohome()
Delay(20000)
jmp(start)
}
!CharBuffs([Id=4323]) // Бафы закончились (ID бафа на защиту)
{
MSG(Out of Buff - ReBuff)
Set(Mon,NoAttack,*)
Set(RangeType,StartPos,100)
Set(FightStart) //Отбиваемся от хвоста
Delay(30000)
Set(Fightstop)
UseItem([id=736])
jmp(start) //Start описывает действия в городе, ребаф/соски/банки и т.п.
}
jmp(GeneralCheck)
}
USEITEM([ID=736]) //id телепорта
DELAY(10000)
JMP(GO)

[I]Добавлено через 58 секунд
вот поправил теперь все так? и еще подскажите как от гма защититься икак теперь перса отмазать

[I]Добавлено через 1 час 13 минут
ау

Добавлено через 2 часа 9 минут
теперь после смерти гном телепортируетчся в годорде зачем это надо

Добавлено через 2 часа 40 минут
ребят дайте полный код этого скрипта с путевыми поправками устал уже править

Foxich
15.03.2010, 11:27
вот поправил теперь все так? и еще подскажите как от гма защититься икак теперь перса отмазать
теперь после смерти гном телепортируетчся в годорде зачем это надо

ТП в Годдард, вероятно, происходит, потому что пока бот качается, его местоположение смещается от "(координаты) Окрестности Деревни Гномов" к (координаты) Окрестности Годдарда (Если сверяться по /loc)
Как вариант - добавь тп Годдард=>Деревня Гномов

Бегло просмотрел скрипт, показалось что все корректно :)
Тести дальше :)

umaxi
15.03.2010, 11:46
народ выложите плиз готовый скрипт уже задолбался его править

Добавлено через 1 минуту
он нефега не делает по баф останавливается и стоит если убивают возвращается в город и делает тп обратно в город

Добавлено через 2 минуты
от хвоста плохо отбивается

Foxich
15.03.2010, 15:28
от хвоста плохо отбивается
Отредактируй под себя, чистка хвоста мной писалась для совершенно другой локи, где агров раз/два и обчелся

umaxi
15.03.2010, 19:17
Есть готовые координаты в гонраде

Добавлено через 30 минут
такой нюансобнаружил бот добегает и не бьет мобов только техч то агрятся

Добавлено через 2 минуты
вообщем скрипт так и не заработал прошу вас напиши те под эту локацию скрипт

Acmilan
15.03.2010, 19:27
Выложи весь свой скрипт, посмотрим что с ним, а то по кускам его тут долго собирать

umaxi
15.03.2010, 19:46
полный скрипт
LABEL(GO)

{
MOVETO(-83138,150910,-3120)
NPCSEL([ID=31077])
NPCDLG([ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82035,152647,-3168,300)
{
MOVETO(-82991,152654,-3204)
MOVETO(-83103,150966,-3155)
NPCSEL([ID=31077])
NPCDLG([ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82186,150495,-3155,300)
{
MOVETO(-83100,150866,-3155)
NPCSEL([ID=31077])
NPCDLG([ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-82084,-82084,-3155,300)
{
MOVETO(-80791,154711,-3204)
MOVETO(-81623,154836,-3204)
MOVETO(-82891,154803,-3204)
MOVETO(-83089,153663,-3204)
MOVETO(-83109,152013,-3155)
MOVETO(-83118,150986,-3155)
NPCSEL([ID=31077])
NPCDLG([ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
POSINRANGE(-83408,151376,-3120,300)
{
MOVETO(-83105,150876,-3155)
NPCSEL([ID=31077])
NPCDLG([ID=31077])
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
JMP(START)
}
LABEL(START)
MOVETO(-81649,150284,-3155)
MOVETO(-81111,150131,-3081)
MOVETO(-80765,149784,-3070)
NPCSEL(Richlin[ID=30320])
NPCDLG(Richlin[ID=30320])
DLGSEL(Телепортироваться)
DLGSEL(Забытый Храм)
DELAY(10000)
MOVETO(-52858,190621,-3519)
MOVETO(-52901,188947,-4330)
MOVETO(-52953,188207,-4723)
MOVETO(-53616,188117,-4686)
MOVETO(-53752,189166,-4559)
MOVETO(-53767,190171,-4541)
MOVETO(-55218,190360,-4503)
MOVETO(-55916,190357,-4502)
MOVETO(-56982,190354,-4541)
MOVETO(-57390,189842,-4541)
MOVETO(-57443,188985,-4541)
MOVETO(-57443,188345,-4524)
MOVETO(-57464,187334,-4541)
MOVETO(-57470,186527,-4541)
MOVETO(-57692,185335,-4543)
MOVETO(-58511,185314,-4541)
DELAY(6000)
label(GeneralCheck)
Delay(60000)
CharStatus(CHP,<=,0) //Проверяем жив ли персонаж
{
MSG(Персонаж Погиб)
Set(Fightstop)
Delay(3000)
gohome()
Delay(20000)
jmp(start)
}
!CharBuffs([Id=4323]) // Бафы закончились (ID бафа на защиту)
{
MSG(Out of Buff - ReBuff)
Set(Mon,NoAttack,*)
Set(RangeType,StartPos,100)
Set(FightStart) //Отбиваемся от хвоста
Delay(30000)
Set(Fightstop)
UseItem([id=736])
jmp(start) //Start описывает действия в городе, ребаф/соски/банки и т.п.
}
jmp(GeneralCheck)
}
USEITEM([ID=736]) //id телепорта
DELAY(10000)
JMP(GO)

Acmilan
16.03.2010, 01:24
ТУТ POSINRANGE ЗАБЫЛ
{
MOVETO(-83138,150910,-3120)
JMP(START)
}
POSINRANGE(-82035,152647,-3168,300)
{
MOVETO(-82991,152654,-3204)
MOVETO(-83103,150966,-3155)
JMP(START)
}
POSINRANGE(-82186,150495,-3155,300)
{
MOVETO(-83100,150866,-3155)
NPCSEL([ID=31077])
NPCDLG([ID=31077])
JMP(START)
}
POSINRANGE(-82084,-82084,-3155,300)
{
MOVETO(-80791,154711,-3204)
MOVETO(-81623,154836,-3204)
MOVETO(-82891,154803,-3204)
MOVETO(-83089,153663,-3204)
MOVETO(-83109,152013,-3155)
MOVETO(-83118,150986,-3155)
JMP(START)
}
POSINRANGE(-83408,151376,-3120,300)
{
MOVETO(-83105,150876,-3155)
JMP(START)
}
LABEL(START)
DELAY(1000)
NPCSEL([ID=31077])
DELAY(1000)
NPCDLG([ID=31077])
DELAY(1000)
DLGSEL(Просмотреть список вспомогательной магии)
DELAY(1000)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
MOVETO(-81649,150284,-3155)
MOVETO(-81111,150131,-3081)
MOVETO(-80765,149784,-3070)
DELAY(1000)
NPCSEL(Richlin[ID=30320])
DELAY(1000)
NPCDLG(Richlin[ID=30320])
DELAY(1000)
DLGSEL(Телепортироваться)
DELAY(1000)
DLGSEL(Забытый Храм)
DELAY(10000)
MOVETO(-52858,190621,-3519)
MOVETO(-52901,188947,-4330)
MOVETO(-52953,188207,-4723)
MOVETO(-53616,188117,-4686)
MOVETO(-53752,189166,-4559)
MOVETO(-53767,190171,-4541)
MOVETO(-55218,190360,-4503)
MOVETO(-55916,190357,-4502)
MOVETO(-56982,190354,-4541)
MOVETO(-57390,189842,-4541)
MOVETO(-57443,188985,-4541)
MOVETO(-57443,188345,-4524)
MOVETO(-57464,187334,-4541)
MOVETO(-57470,186527,-4541)
MOVETO(-57692,185335,-4543)
MOVETO(-58511,185314,-4541)
DELAY(6000)
Set(RangeType,StartPos,2000)
Set(FightStart)
Delay(60000)
JMP(1)
EXIT()

LABEL(1)
CharStatus(CHP,<=,0) //Проверяем жив ли персонаж
{
Set(Fightstop)
Delay(3000)
gohome()
Delay(20000)
jmp(start)
}
JMP(2)
RETURN()

LABEL(2)
!CharBuffs([Id=4323]) // Бафы закончились (ID бафа на защиту)
{
MSG(Out of Buff - ReBuff)
Set(RangeType,StartPos,100)
Set(FightStart) //Отбиваемся от хвоста
Delay(30000)
Set(Fightstop)
UseItem([id=736])
jmp(start) //Start описывает действия в городе, ребаф/соски/банки и т.п.
}
JMP(1)
RETURN()


Как-то так..

umaxi
16.03.2010, 15:11
а label не нужен?

Добавлено через 1 минуту
тестирую

Добавлено через 3 минуты
все акаунты закрыли твари тестить негде

Acmilan
16.03.2010, 19:53
Дада наверху LABEL(start)

umaxi
18.03.2010, 06:05
Разблочили акаунты вот скрипт на кач 20-30 проблема в том что гном не хочет бафаться
//MSG(Стартова локация: Orc Village)
Label(Start)
MOVETO(-45044, -113844, -216)
MOVETO(-45086, -113606, -192)
NPCSEL()
DELAY(1011)
NPCDLG()
DELAY(1361)
Delay(1000) //Я бы поставил, для перестраховки
DLGSEL(Посмотреть список вспомогательных заклинаний)
DLGSEL(Получить Дополнительную магию)
DELAY(1500)
MOVETO(-45060, -113137, -240)
MOVETO(-44758, -112877, -240)
MOVETO(-45197, -112508, -240)
NPCSEL(Tamil)
DELAY(968)
NPCDLG(Tamil[ID=27035])
DELAY(932)
DLGSEL(Телепортироваться)
DELAY(1037)
DLGSEL(Пещера Испытаний)
DELAY(1094)
//In Cave of trials
MOVETO(9184, -112296, -2536)
MOVETO(10542, -109586, -2152)
MOVETO(13371, -106830, -2088)
MOVETO(8929, -105044, -2536)
MOVETO(8006, -101887, -2392)
SET(FIGHTSTART) //качаемся 53 минуты
DELAY(3200000)
SET(FIGHTSTOP)

CHARSTATUS(CHP,==,0)
{
GOHOME()
DELAY(3000)
}
USEITEM(Scroll of Escape[ID=736])
DELAY(15000)
JMP(Start)

[I]Добавлено через 3 минуты
подходит к ньб бафу и стоит уходит без бафа когда сам нажимаешь на него бафается афтоматически по диалогам

[I]Добавлено через 37 минут
замечу со старым валкером проблемы не было

[I]Добавлено через 37 минут
Acmilan ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО БОТ ПОЧТИ ИДЕАЛЬНО ПАШЕТ С ТВОИМ СКРИПТОМ!!!!!

Добавлено через 1 минуту
прав в угол иногда встает главное чтобы петицию не написали

Добавлено через 4 минуты
всетаки сильно заметно что бот в углу застривает

Добавлено через 1 минуту
еще сильно его ухлапывают если на 32 прийти туда сляжет на 36 еле жизней хватает

Добавлено через 1 минуту
с хилками бегать ну скажем не всегда дешева на па нормально но у меня еще 2 окна не па

Добавлено через 1 минуту
еще такой нюанс заметил подбигает к мобу думает а что с ним делать только потом бить начинает

Добавлено через 2 минуты
вот если бы как то это все поправить можно было )

Добавлено через 32 минуты
бафера пробегает когда сам бежит

Добавлено через 1 минуту
и после смерти

Добавлено через 1 час 0 минут
вот идейка возникла как поэкономичнее сделать нужно чтобы бот сначало скелетов лил

Добавлено через 2 минуты
если скилетов нет то бьет мобов

Добавлено через 1 минуту
причем чтобы не бегл искла скелетов а около себя проверял

B0R0DA
18.03.2010, 06:09
Добавлено через 3 минуты
подходит к ньб бафу и стоит уходит без бафа когда сам нажимаешь на него бафается афтоматически по диалогам

Добавлено через 37 минут
замечу со старым валкером проблемы не было

Добавлено через 37 минут
Acmilan ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО БОТ ПОЧТИ ИДЕАЛЬНО ПАШЕТ С ТВОИМ СКРИПТОМ!!!!!

Добавлено через 1 минуту
прав в угол иногда встает главное чтобы петицию не написали

Добавлено через 4 минуты
всетаки сильно заметно что бот в углу застривает

Добавлено через 1 минуту
еще сильно его ухлапывают если на 32 прийти туда сляжет на 36 еле жизней хватает

Добавлено через 1 минуту
с хилками бегать ну скажем не всегда дешева на па нормально но у меня еще 2 окна не па

Добавлено через 1 минуту
еще такой нюанс заметил подбигает к мобу думает а что с ним делать только потом бить начинает

Добавлено через 2 минуты
вот если бы как то это все поправить можно было )

Добавлено через 32 минуты
бафера пробегает когда сам бежит

Добавлено через 1 минуту
и после смерти

Добавлено через 1 час 0 минут
вот идейка возникла как поэкономичнее сделать нужно чтобы бот сначало скелетов лил

Добавлено через 2 минуты
если скилетов нет то бьет мобов

Добавлено через 1 минуту
причем чтобы не бегл искла скелетов а около себя проверял
уж0снах ))) сори за оффтоп, не удержался )))

Radik
18.03.2010, 15:30
Скрипт хороший только как лучше добавить проверку смерти подскажите плиз
Скрип для кача под ореном с 40 по 50
label(begin)
posinrange(82638,53885,-1488, 500) //near gk
{
MOVETO(82545,53427,-1522)
MOVETO(82352,53342,-1522)
}
posinrange(82874,55391,-1551, 500)
{
MOVETO(82216,55514,-1551)
MOVETO(82321,54289,-1521)
MOVETO(82448,53466,-1522)
MOVETO(82448,53321,-1522)
}
posinrange(79938,55736,-1586, 500)
{
MOVETO(80785,53689,-1586)
MOVETO(81268,53410,-1572)
MOVETO(82187,53407,-1522)
MOVETO(82566,53378,-1522)
moveto(82473,53329,-1488)
}
NPCDLG(Adventurers' Guide[ID=32327])
DLGSEL(Посмотреть список вспомогательной магии)
DLGSEL(Получить Дополнительную магию)
MOVETO(82789,53225,-1522)
NPCSEL(Valentina[ID=30177])
NPCDLG(Valentina[ID=30177])
DLGSEL(Телепортироваться)
DLGSEL(Башня Слоновой Кости - 3700 Адена )
MOVETO(85286,16913,-3638)
MOVETO(85278,17016,-3632)
MOVETO(85279,17017,-3632)
MOVETO(85358,17346,-3552)
MOVETO(85406,22567,-3544)
MOVETO(85317,24134,-3662)
MOVETO(86066,24366,-3592)
MOVETO(87086,25360,-3597)
MOVETO(88317,24956,-3616)
SET(FIGHTSTART)
SET(RANGETYPE,STARTPOS,1600)
DELAY(3480000)
set(fightstop)
delay(2000)
useitem(Scroll of Escape[ID=736])
jmp(begin)

bokot
18.03.2010, 17:33
Скрипт кошмарный. Особенно меня убивают делеи по 50+ минут :D

Вот обрезанный скрипт на кач под ИТ (надеюсь лишнего не отрезал :p).
Использует два конфига: один для бега по городу и к локации (отключены сиденья при малом кол-ве маны, включен отжор банок, дабы не сдох по пути): ForSOE.INI
второй для кача. Для каждого перса делаю свой (каких мобов бить, каких не бить. С кого спойлить. Хил, пати и прочее). В данном примере: GnomSpoiler.INI
Проверка на ТП ботхантером из зоны кача (правда тут она большая, при желании можно уменьшить). Проверка на смерть. Проверка на кол-во сосок. Можно поставить любую другую проверку.

Upd: 16:55 изменил файл скрипта: зону кача => проверку на ТП ботхантера сделал нормального не большого размера.

umaxi
18.03.2010, 20:41
значит про мой скрипт уже все забыли мда

Anafema
18.03.2010, 20:49
значит про мой скрипт уже все забыли мда

нынешняя молодеж уже и Пушкина забыла...а ты....

Acmilan
18.03.2010, 21:31
Разблочили акаунты вот скрипт на кач 20-30 проблема в том что гном не хочет бафаться
Перед разговором с нпц и между пунктами ставь DELAY(1000)

stima
19.03.2010, 16:11
Возникла проблема с скриптом. Бот приходя на место и при проверки на оружие "хавает" ее и летит за оружием, но при этом оружие есть. И проверка на оружие при старте проходит нормально
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)


п.с. Понимаю что на таких уровнях не стоит так заморачиватся, но это просто тренировка в скриптописании для дальнейшего.

Acmilan
19.03.2010, 16:24
Думаю что дело было так. Стоит перс без оружия. Ты запускаешь скрипт, он смотри что нету пухи, идет берет и ОДЕВАЕТ, а потом смотрит в инвентарь и не видит одетую!?

stima
19.03.2010, 16:40
Проверка идет только по инвентарю?
п.с. и немного не так), пуха есть уже в руках, он делает проверку и типо все норм прибегает на спот, но потом на споте еще одну не "хавает"
п.с.с. Хотя я очень сомневась по поводу проверки только по инвентарю. Первое это то что я протестил этот вариант, а второе это то что инвентарь в Л2 включает и шмот на чаре по умолчанию.

Acmilan
19.03.2010, 20:25
хммм, ну попробуй одевать пуху только после второй проверки! А вообще уж купил бы китай и не парился)

Алмас
20.03.2010, 16:14
//-------------------------------------------------------------
//Если лвл больше, чем 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 начинает стоять и не переходит на следующую подпрограмму.

00077k
20.03.2010, 17:23
А реально, что мешает кидай купить? Или признаём только оригинальный ададаЗ?

bokot
20.03.2010, 17:39
Алмас
Ну во-первых у тебя в скрипте два места, куда надо забить лвл, до которого сливаемся. Во втором месте как раз стоит 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, то побежал скрипт ниже

//скрипт ниже
//скрипт ниже
//скрипт ниже
//скрипт ниже


Сама подпрограмма слива:
LABEL(delvll) //подпрограмма слива

CHARSTATUS(LV,>,41) ******** Тут меняешь до какого лвла надо сливаться
{
MOVETO(81562,53470,-1522)
MOVETO(81306,53412,-1562)
MOVETO(81115,53318,-1586)
FORCEATTACK(Гектор[ID=30197])
delay(20000)
JMP(proverka pri delvle)
}
JMP(delvl) /слились до 41 лвл и прыгаем на метку delvl в программе

LABEL(proverka pri delvle)
CHARSTATUS(CHP,<,1)
{
//чар мертв, отправляем в горд
GOHOME()
DELAY(10000)
}

LABEL(tochki)
POSINRANGE(82415,53812,-1522,2000)
{
MOVETO(82415,53812,-1522)
JMP(delvll)
}
POSINRANGE(82469,55614,-1551,2000)
{
MOVETO(82469,55614,-1551)
MOVETO(82345,54127,-1522)
JMP(delvll)
}
POSINRANGE(79949,53099,-1586,2000)
{
MOVETO(79949,53099,-1586)
MOVETO(80606,53630,-1586)
MOVETO(82175,53368,-1522)
JMP(delvll)
}
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)
}
MSG(Перс оказался хз где)
MSG(надо добалять в скрипт еще точек с путем отсюда)
EXIT()

Путь персонажа я, естественно, не проверял, взяты из твоего скрипта.

fatklass
19.08.2010, 20:37
Столкнулся с проблемой, снятия слипа "Свитком пробуждения" функция снятия дебафа слип работает некоректно, ну тоесть вобще неработает. перепробовал все или работает рандомно после смерти моба. Возможно кто то сталкивался с такой проблемой, и нашол решение?

Lexa®
19.08.2010, 22:55
ну вроде пока не добьет моба слип не снимает, по крайней мере у меня так.

viteksamb
20.08.2010, 10:47
ну вроде пока не добьет моба слип не снимает, по крайней мере у меня так.
Да у всех кажется так. Ибо такой вот ВАЛКЕР

fatklass
20.08.2010, 22:38
спасибо, я просто подумал возможно есть какой скрипт чтобы принудительно снимал слип свитком)

Anafema
20.08.2010, 23:05
ну вроде пока не добьет моба слип не снимает, по крайней мере у меня так.

только если сапорт сам учавствует в атаке(дэбафит там или просто лупит)
если нет то прекрасно все и сразу снимает.