Вернуться   CoderX :: Forums > Lineage II > ASI > Работа L2Walker (скрипты, конфиги, советы)
Войти через OpenID

Работа L2Walker (скрипты, конфиги, советы) Сборник советов и рекоммендаций опытных пользователей по настройке бота.

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 18.12.2009, 05:57   #1
Местный
 
Аватар для KoAn
 
Регистрация: 12.11.2009
Сообщений: 120
Сказал Спасибо: 8
Имеет 29 спасибок в 13 сообщенях
KoAn пока неопределено
По умолчанию Практические примеры скриптинга (ошибки новичков)

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

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

Последний раз редактировалось KoAn, 18.12.2009 в 08:13.
KoAn вне форума   Ответить с цитированием
Старый 18.12.2009, 06:40   #2
Местный
 
Аватар для Negris
 
Регистрация: 04.11.2009
Адрес: Н.Новгород
Сообщений: 238
Сказал Спасибо: 78
Имеет 66 спасибок в 39 сообщенях
Negris пока неопределено
По умолчанию

Цитата:
Сообщение от KoAn Посмотреть сообщение
где можно найти базу ID предметов на первые профы)
http://www.towalker.net/down/id-e.zip


Цитата:
Сообщение от KoAn Посмотреть сообщение
сделать так что бы после смерти чар нормально возврашался к предыдушему пункту квеста, а не шпарил код дальше) знаю вопрос нубский
если знаешь зачем спрашиваешь?

Код:
CHARSTATUS(CHP,<=,2)
{
msg(Sdoh)
Set(FightStop)
DELAY(1000)
GOHOME()
DELAY(10000)
jmp(метка, куда нужно вернуться по скрипту)
}
Negris вне форума   Ответить с цитированием
За это сообщение Negris нажился 2 спасибками от:
Старый 18.12.2009, 08:11   #3
Местный
 
Аватар для KoAn
 
Регистрация: 12.11.2009
Сообщений: 120
Сказал Спасибо: 8
Имеет 29 спасибок в 13 сообщенях
KoAn пока неопределено
По умолчанию

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

---------------------------------------------------------------------------
// приперли на поляну
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) -прыгаем на "Охоту"

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

Последний раз редактировалось KoAn, 18.12.2009 в 08:15.
KoAn вне форума   Ответить с цитированием
Старый 18.12.2009, 09:17   #4
Местный
 
Аватар для B0R0DA
 
Регистрация: 01.11.2009
Сообщений: 68
Сказал Спасибо: 1
Имеет 63 спасибок в 29 сообщенях
B0R0DA пока неопределено
По умолчанию

// приперли на поляну
LOADCONFIG(LOL.ini) -загрузка иника
---------------------------------------------------------------------------

SET(RANGETYPE,STARTPOS,2000)//2000-радиус от стартовой точки
SET(MON,NOATTACK,*)
SET(MON,ATTACK,name[ID=XXX])//вписываем ИД нужных мобов
ИЛИ
SET(MON,ATTACK,*)//атакуем всех мобов

SET(FIGHTSTART) - даем команду боту на начало атаки
LabEL(Oxota)//переносим сюда, чтоб после джампа не делались лишние действия и не сбивался радиус
ITEMCOUNT(УШИ слона[ID=1205],<,20) - задаем условие, что при МЕНЬШЕ 20 ушах, переходим К ДЕЙСТВИЯМ В СКОБКАХ (или если условие выполняется, то делаем то что в скобках. а условие перестанет выполняться, когда у нас будет 20 ушей, ибо 20<20-условие не верно!)
{
DELAY(1000)- задаем время ожидания продолжения действия
CALL(1) - вот тут ставим условие проверки на смерть
CALL(2) - лично мне не понятно для чего этот CALL... убираем его
JMP(Oxota) - прыгает на начало блока пока соблюдаЕтся условиЕ: уши<20
}
SET(FIGHTSTOP) - остановка бойни
DELAY(5000) -после того как саберем 20 ушей ждем 5 сек
USEITEM(Scroll of Escape[ID=736]) - юзаем СОЕ
----------------------------------------------------------------------------

LABEL(1) - Проверка на смерть
CharStatus(HP,<=,0) - хп меньше либо равно 0
{
GOHOME() - портуемся в город
DELAY(5000) - ждем
}
RETURN()//обязательно закрываем скобки и RETURN-чтоб вернуться назад к метке CALL, от которой сюда пришли
тело скрипта в городе и дароги обратно на поляну

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

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

Последний раз редактировалось B0R0DA, 18.12.2009 в 09:24.
B0R0DA вне форума   Ответить с цитированием
За это сообщение B0R0DA нажился 3 спасибками от:
Старый 18.12.2009, 09:35   #5
Пользователь
 
Аватар для Retaech
 
Регистрация: 13.11.2009
Сообщений: 71
Сказал Спасибо: 3
Имеет 2 спасибок в 2 сообщенях
Retaech пока неопределено
По умолчанию

Set(DefPath,Clear) чистит таблицу маршрута.

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

Последний раз редактировалось Retaech, 18.12.2009 в 09:38.
Retaech вне форума   Ответить с цитированием
Старый 18.12.2009, 10:06   #6
Местный
 
Аватар для KoAn
 
Регистрация: 12.11.2009
Сообщений: 120
Сказал Спасибо: 8
Имеет 29 спасибок в 13 сообщенях
KoAn пока неопределено
По умолчанию

Цитата:
Сообщение от B0R0DA Посмотреть сообщение

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

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

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

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

Последний раз редактировалось KoAn, 18.12.2009 в 10:11.
KoAn вне форума   Ответить с цитированием
Старый 18.12.2009, 16:54   #7
Местный
 
Аватар для B0R0DA
 
Регистрация: 01.11.2009
Сообщений: 68
Сказал Спасибо: 1
Имеет 63 спасибок в 29 сообщенях
B0R0DA пока неопределено
По умолчанию

Цитата:
Сообщение от KoAn Посмотреть сообщение
А сейсам получается что он взял 20 ушей и хочет портнутся, тут вдруг на него агрится моб и сбивает ТП, и что дальше?
Ну тогда перед использованием СОЕ делаем следующее:
SET(RANGETYPE,STARTPOS,100)//маленький радиус, чтоб отбить мобов рядом с собой
SET(MON,ATTACK,*)
SET(FIGHTSTART)
DELAY(30000)//тут задаем время на свое усмотрение(это сколько времени он будет отбиваться)
SET(FIGHTSTOP)//стоп
USEITEM(Scroll of Escape[ID=736])//и в город

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

или:

SET(RANGETYPE,STARTPOS,100)//маленький радиус, чтоб отбить мобов рядом с собой
SET(MON,ATTACK,*)//бить всех мобов в заданном радиусе
SET(FIGHTSTART)
LABEL(отбиваемся)
CharStatus(HP,<,100)//если НР меньше 100%-делаем то что в скобках
{
DELAY(10000) - ждем
JMP(отбиваемся)//прыгаем опять на метку LABEL(отбиваемся) и так до тех пор пока не будет 100% НР
}
SET(FIGHTSTOP)//у нас 100% НР - следовательно нас никто не атакует и хвоста нет
USEITEM(Scroll of Escape[ID=736])//и в город

если в локе есть мобы арчеры или маги делаем такую проверку:

SET(RANGETYPE,STARTPOS,1000)//большой радиус
SET(MON,NOATTACK,*)//не бить никаких мобов
SET(FIGHTSTART)//по идее должен бить наагренных мобов
LABEL(отбиваемся)
CharStatus(HP,<,100)//если НР меньше 100%-делаем то что в скобках
{
DELAY(10000) - ждем
JMP(отбиваемся)//прыгаем опять на метку LABEL(отбиваемся) и так до тех пор пока не будет 100% НР
}
SET(FIGHTSTOP)//у нас 100% НР - следовательно нас никто не атакует и хвоста нет
USEITEM(Scroll of Escape[ID=736])//и в город

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

USEITEM(Scroll of Escape[ID=736])//и в город
DELAY(30000)
CALL(1)//проверка на смерть, если выжили во время тп, значит мы в городе, если нет - после CALL(1) нас отправят в город

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

Последний раз редактировалось B0R0DA, 18.12.2009 в 16:57.
B0R0DA вне форума   Ответить с цитированием
За это сообщение B0R0DA нажился 4 спасибками от:
Старый 18.12.2009, 17:29   #8
Пользователь
 
Аватар для Retaech
 
Регистрация: 13.11.2009
Сообщений: 71
Сказал Спасибо: 3
Имеет 2 спасибок в 2 сообщенях
Retaech пока неопределено
По умолчанию

Не плохая идея, наверно стоит еще добавить чтобы во время проверки садился, ато хп может долго регениться. А еще моб может напасть во время сое, так что на время ег окаста можно своять еще одну проверочку.
Retaech вне форума   Ответить с цитированием
Старый 18.12.2009, 23:28   #9
Пользователь
 
Аватар для nPoKa3HuK
 
Регистрация: 11.11.2009
Сообщений: 27
Сказал Спасибо: 6
Имеет 13 спасибок в 7 сообщенях
nPoKa3HuK пока неопределено
По умолчанию

Цитата:
Сообщение от B0R0DA Посмотреть сообщение
SET(RANGETYPE,STARTPOS,100)//маленький радиус, чтоб отбить мобов рядом с собой
SET(MON,ATTACK,*)//бить всех мобов в заданном радиусе
SET(FIGHTSTART)
LABEL(отбиваемся)
CharStatus(HP,<,100)//если НР меньше 100%-делаем то что в скобках
{
DELAY(10000) - ждем
JMP(отбиваемся)//прыгаем опять на метку LABEL(отбиваемся) и так до тех пор пока не будет 100% НР
}
SET(FIGHTSTOP)//у нас 100% НР - следовательно нас никто не атакует и хвоста нет
USEITEM(Scroll of Escape[ID=736])//и в город
А если нам телепорт сбивает лигет? Или произошло что-то не предвиденное.
Я делаю такую проверку:
После всех вышеописанных проверок и использования телепорта
DELAY(20000) // ожидание ТП
POSINRANGE(x,y,z,100) // Указываем в скрипте то количество точек, сколько точек респа в городе в которыйделаем ТП.( у меня здесь указано две точки)
{
MSG(мы в городе)
JMP(?) //Ставим сюда метку продолжения скрипта
}
POSINRANGE(x,y,z,100)
{
MSG(мы в городе)
JMP(?) //Ставим сюда метку продолжения скрипта
}
JMP(отбиваемся) // Если мы не оказались ни в одной из указанных точек

Добавлено через 35 минут
Цитата:
Сообщение от Retaech Посмотреть сообщение
Не плохая идея, наверно стоит еще добавить чтобы во время проверки садился, ато хп может долго регениться.
Если честно, то не вижу в этой проверке смысла, но раз ты так хочеш:
LABEL(Fatality)
SET(RANGETYPE,STARTPOS,100)
SET(MON,ATTACK,*)
SET(FIGHTSTART)
DELAY(20000)
CharStatus(HP,<,100)//если хп меньше100% сажаем его на попу
{
JMP(На попу)
}
SET(FIGHTSTOP)
USEITEM(Scroll of Escape[ID=736])
JMP(?)// Здесь ставим метку продолжения скрипта
LABEL(На Попу)
ChangeWaitType(0)
DELAY(30000)
ChangeWaitType(1)
JMP(Fatality)

Последний раз редактировалось nPoKa3HuK, 19.12.2009 в 00:38. Причина: Исправлена ошибка в скрипте
nPoKa3HuK вне форума   Ответить с цитированием
Старый 19.12.2009, 00:01   #10
Местный
 
Аватар для B0R0DA
 
Регистрация: 01.11.2009
Сообщений: 68
Сказал Спасибо: 1
Имеет 63 спасибок в 29 сообщенях
B0R0DA пока неопределено
По умолчанию

Цитата:
Сообщение от nPoKa3HuK Посмотреть сообщение
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)
ммм... ану сам исправь этот кусок не будет он работать ка надо
B0R0DA вне форума   Ответить с цитированием
За это сообщение B0R0DA нажился спасибкой от:
Ответ

  CoderX :: Forums > Lineage II > ASI > Работа L2Walker (скрипты, конфиги, советы)



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:14.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!