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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 21.12.2009, 22:47   #1
Местный
 
Аватар для Stas
 
Регистрация: 21.10.2009
Адрес: Тюмень
Сообщений: 128
Сказал Спасибо: 38
Имеет 171 спасибок в 52 сообщенях
Stas на пути к лучшему
По умолчанию

Добрый день всем ! Ко мне начали поступать предложение такого характера: мол, такой большой блок в случае изменений в игре будет тяжело править. Не лучше ли его разбить на модули ? На отдельные небольшие блоки в зависимости или от задач, которые он выполняет, или по территориям (для Глудина, для Орена и т.д.). Скажу сразу, это можно, но не целесообразно.
Во-первых, я не планирую привязывать этот блок к конкретным типам скриптов, а пытаюсь написать такой блок, который будет подходить к любым видам скриптов.
Во-вторых, система меток (LABEL) продумана у меня таким образом, что при добавлении в в общий блок новых подпрограмм они не будут конфликтовать друг с другом. Даже если я ещё сотню подпрограмм в добавлю. В-третьих, все блоки так или иначе связаны друг с другом, и в ходе работы передают управление от одного блока к другому. Поэтому если их раздербанить на части, то каждый отдельный блок будет ругаться, ему будет недоставать тех или иных данных или поддержки со стороны другого блока.
В-четвёртых, замысел создания данного блока противоречит его дроблению. Потому что он - универсальный: для всей территории Л2 (а не для конкретного города или конкретной локации) и для всех видов скриптов (кач, спойл, фарм, крафт, манор, рыбалка, торговля, телепортация, перемещения и передвижения, локации, полигоны, монстры, обычные квесты, квесты на профу).
В-пятых, даже ради того, чтобы править этот блок сообща, в случае каких-либо изменений в игре, я не намерен его дробить на части. Потому что слово СООБЩА, исходя из своего жизненного опыта, могу всех заверить, что это то же самое, что НИКОГДА. Поясняю, сообща можно выпить, сообща можно отдохнуть и погулять, ну всё можно сообща, но только не работать.
Если мы будем одну программу править все вместе - она никогда не заработает вновь.!!! Поверьте мне на слово !

Поэтому могу только предложить одно: я могу показать и объяснить на примерах работу отдельных блоков универсальной программы. Чтобы желающие энтузиасты могли применить эти отдельные блоки в своих (конкретно направленных на определённые задачи и цели) скриптах. Но сама программа останется цельной и неделимой. Потому что у неё есть стратегическая цель и задачи. Тот, кто понял, для чего эта программа создана, тот понимает, что вся её ценность в единстве её блоков, а не в дроблении.
Stas вне форума   Ответить с цитированием
Старый 21.12.2009, 22:48   #2
Местный
 
Аватар для Stas
 
Регистрация: 21.10.2009
Адрес: Тюмень
Сообщений: 128
Сказал Спасибо: 38
Имеет 171 спасибок в 52 сообщенях
Stas на пути к лучшему
По умолчанию

Для убедительности приведу несколько примеров.
Вот строка , которая управляет одним из блоков программы: CALL(04_NubGid_Buff)
По этой команде чар получит дополнительную магию и благословение защиты у Помощника новичков в любой деревне или у Помощника путешественников в любом городе. Вам не надо заботиться о том, в какой деревне или в каком городе вам потребовалось получить дополнительную магию, вам не надо прописывать скрипт для конкретного места, по одной команде вы всё получите. Так что лучше? Скопировать эту команду в свой скрипт или писать вот такой текст:
LABEL(04_NubGid_Buff)
CharStatus(STAND,==,0)
{
ChangeWaitType(1)
DELAY(3000)
}
CharStatus(LV,<,6)
{
CALL(03_05_MSG)
JMP(Stas_NubGid_Buff_09)
}
CharStatus(LV,>,75)
{
CALL(03_05_MSG)
JMP(Stas_NubGid_Buff_09)
}
CALL(Stas_NubGid_Buff_NPC)
CALL(Stas_NubGid_Buff_Magiya)
LABEL(Stas_NubGid_Buff_05)
CHARSTATUS(HP,<,100)
{
ChangeWaitType(0)
DELAY(3000)
}
LABEL(Stas_NubGid_Buff_07)
CHARSTATUS(HP,<,100)
{
DELAY(1000)
JMP(Stas_NubGid_Buff_07)
}
LABEL(Stas_NubGid_Buff_09)
CharStatus(STAND,==,0)
{
ChangeWaitType(1)
DELAY(3000)
}
CharStatus(LV,<,2)
{
CALL(03_06_MSG)
RETURN()
}
CharStatus(LV,>,39)
{
CALL(03_06_MSG)
RETURN()
}
LABEL(Stas_NubGid_Buff_11)
CALL(Stas_NubGid_Buff_NPC)
CALL(Stas_NubGid_Buff_Blago)
RETURN()
LABEL(Stas_NubGid_Buff_NPC)
POSINRANGE(-84069,243217,-3728,300)//Деревня говорящего острова
{
NPCDLG(Помощник Новичков[ID=30598])
}
POSINRANGE(-119694,44532,360,300)//Деревня камаэлей
{
NPCDLG(Гид Новичков[ID=32135])
}
POSINRANGE(45468,48383,-3056,300)//Эльфийская деревня
{
NPCDLG(Помощник Новичков[ID=30599])
}
POSINRANGE(12112,16667,-4584,300)//Деревня тёмных эльфов
{
NPCDLG(Помощник Новичков[ID=30600])
}
POSINRANGE(115591,-178004,-896,300)//Деревня гномов
{
NPCDLG(Помощник Новичков[ID=30601])
}
POSINRANGE(-45052,-113606,-192,300)//Деревня орков
{
NPCDLG(Помощник Новичков[ID=30602])
}
POSINRANGE(-83099,150862,-3120,300)//Деревня Глудин
{
NPCDLG(Проводник Новичков[ID=31076])
}
POSINRANGE(-13926,121987,-2984,300)//Глудио
{
NPCDLG(Проводник Новичков[ID=31077])
}
POSINRANGE(87151,-141345,-1336,300)//Шутгарт
{
NPCDLG(Помощник Путешественников[ID=32327])
}
POSINRANGE(111183,221011,-3544,300)//Хейн
{
NPCDLG(Помощник Путешественников[ID=32327])
}
POSINRANGE(82841,149356,-3464,300)//Гиран
{
NPCDLG(Помощник Путешественников[ID=32327])
}
POSINRANGE(148062,-55375,-2728,300)//Годдард
{
NPCDLG(Помощник Путешественников[ID=32327])
}
POSINRANGE(17127,144906,-3008,300)//Дион
{
NPCDLG(Помощник Путешественников[ID=32327])
}
POSINRANGE(43557,-47627,-792,300)//Руна
{
NPCDLG(Помощник Путешественников[ID=32327])
}
POSINRANGE(82383,53297,-1488,300)//Орен
{
NPCDLG(Помощник Путешественников[ID=32327])
}
POSINRANGE(147097,25925,-2008,300)//Аден
{
NPCDLG(Помощник Путешественников[ID=32327])
}
POSINRANGE(116924,77246,-2688,300)//Деревня охотников
{
NPCDLG(Помощник Путешественников[ID=32327])
}
DELAY(1000)
RETURN()
LABEL(Stas_NubGid_Buff_Magiya)
StrInDlg(Посмотреть список имеющихся в наличии дополнительных магических средств)
{
DLGSEL(Посмотреть список имеющихся в наличии дополнительных магических средств)
}
StrInDlg(Посмотреть список вспомогательной магии)
{
DLGSEL(Посмотреть список вспомогательной магии)
}
StrInDlg(Просмотреть список вспомогательной магии)
{
DLGSEL(Просмотреть список вспомогательной магии)
}
StrInDlg(Посмотреть список вспомогательных заклинаний)
{
DLGSEL(Посмотреть список вспомогательных заклинаний)
}
StrInDlg(Просмотреть список имеющейся в наличии Магии Поддержки.)
{
DLGSEL(Просмотреть список имеющейся в наличии Магии Поддержки.)
}
StrInDlg(Посмотреть список доступной вспомогательной магии)
{
DLGSEL(Посмотреть список доступной вспомогательной магии)
}
DELAY(3000)
DLGSEL(Получить Дополнительную магию)
DELAY(1000)
RETURN()
LABEL(Stas_NubGid_Buff_Blago)
StrInDlg(Получить благословение защиты)
{
DLGSEL(Получить благословение защиты)
}
StrInDlg(Получить Благословение защиты)
{
DLGSEL(Получить Благословение защиты)
}
StrInDlg(Получить Благословение Защиты)
{
DLGSEL(Получить Благословение Защиты)
}
DELAY(5000)
DLGSEL(Получить Благословение Защиты)
DELAY(3000)
RETURN()
Stas вне форума   Ответить с цитированием
За это сообщение Stas нажился спасибкой от:
Старый 21.12.2009, 23:02   #3
Местный
 
Аватар для Stas
 
Регистрация: 21.10.2009
Адрес: Тюмень
Сообщений: 128
Сказал Спасибо: 38
Имеет 171 спасибок в 52 сообщенях
Stas на пути к лучшему
По умолчанию

Ещё один пример. В моём блоке есть маленькая подпрограмма (я ещё буду её усовершенствовать), к которой есть необходимость часто обращаться. Что она делает? Она выполняет несколько простых задач: Включает и выключает Волкер и команду на бой, отбивает прилипших мобов, проверяет чара на смерть, проверяет на ХР, если ранен, то лечит, если погиб, то отправляет в город и т. д.
Управляется также - одной строкой. Эту строку вы можете вставлять во многие опасные места своего скрипта, там, где необходимо включить бой, проверить, жив ли чар и т.д.
Одну строку, а не вот такой примерно блок:
LABEL(103_FinishProwerka)
DELAY(500)
LOADCONFIG(FILEFORALL.ini)
DELAY(500)
SET(RANGETYPE,STARTPOS,80)
DELAY(500)
SET(MON,ATTACK,*)
DELAY(500)
SET(L2WALKER,ENABLE)
DELAY(500)
SET(FIGHTSTART)
LABEL(103_FinishProwerka_03)
CHARSTATUS(CHP,<,1)
{
DELAY(500)
SET(L2WALKER,DISABLE)
DELAY(500)
SET(FIGHTSTOP)
DELAY(500)
LOADCONFIG(CLEAR.ini)
DELAY(2000)
GOHOME()
CALL(100_TeleportTime)
CALL(XYZ_Pos_NubGid)
RETURN()
}
LABEL(103_FinishProwerka_05)
CHARSTATUS(HP,<,100)
{
DELAY(1000)
JMP(102_FinishProwerka_03)
}
DELAY(500)
LOADCONFIG(CLEAR.ini)
DELAY(500)
SET(L2WALKER,DISABLE)
DELAY(500)
SET(FIGHTSTOP)
DELAY(500)
RETURN()

Это он пока в таком виде, а если я его усовершенствую, он будет намного больше. А в процессе работы многих скриптов есть необходимость в такой проверке многократно. Поэтому считаю, что этот блок должен находиться в моей неделимой и цельной универсальной программе. Тогда все будут им пользоваться и без особого труда одной строкой CALL в нужном месте своего скрипта будут вызывать эту подпрограмму.

Здесь же есть яркий пример взаимосвязи всей программы с её отдельными блоками. Даже в этом маленьком блоке есть обращение к другому блоку (тоже важному , хотя и маленькому):
CALL(100_TeleportTime), а вот сама подпрограмма:

LABEL(02_01_TeleportTime)
DELAY(10000)
RETURN()

Маленькая в три строки, но главное её преимущество не в том, что она сокращает текст моей программы, а в том, что каждый из вас, изменив одну единственную цифру, может управлять всей моей программой. Одним надо, чтобы время задержки после телепортации было 10 секунд, другим надо 15, а некоторым 30 секунд. Так вот вам простое, но универсальное решение этой проблемы. Все блоки моей программы десятки, а в последующем и сотни раз, обращаются к этому блоку. Вам не надо изменять все цифры, стоит поменять время в этой программе 10000 на 30000 и время задержки после всех телепортаций изменится с 10 секунд на 30 секунд.

А этот блок управляет временем задержки при диалогах с НПЦ (аналог предыдущего блока):

LABEL(02_02_DialogTime)
DELAY(1000)
RETURN()

Последний раз редактировалось Stas, 21.12.2009 в 23:34.
Stas вне форума   Ответить с цитированием
Старый 21.12.2009, 23:06   #4
Пользователь
 
Регистрация: 21.12.2009
Адрес: север
Сообщений: 15
Сказал Спасибо: 0
Имеет 8 спасибок в 2 сообщенях
Dimedrol пока неопределено
По умолчанию

Здравствуйте!
Stas! Очень Вы мне интересны( в смысле скриптописания).
А можно для начала общения вопрос?
Вы случайно не учителем ТРУДА работаете в далекой Тюменской школе?
И судя по Аватару Вы уже прочли и Нитше и Шопенгауэра (это Артур который).
Dimedrol вне форума   Ответить с цитированием
Старый 22.12.2009, 03:39   #5
Местный
 
Аватар для B0R0DA
 
Регистрация: 01.11.2009
Сообщений: 68
Сказал Спасибо: 1
Имеет 63 спасибок в 29 сообщенях
B0R0DA пока неопределено
По умолчанию

Dimedrol, скорее всего сказать больше нечего

З.Ы. я б не нашел что сказать...
З.З.Ы. я б и не выеживался...! так как люблю сначала найти общий язык/интересы с людьми, прежде чем ляпать...
__________________
Цитата:
Сообщение от Anafema Посмотреть сообщение
а включать мосг раньше мозжечка не в моде?
B0R0DA вне форума   Ответить с цитированием
Старый 22.12.2009, 09:45   #6
Пользователь
 
Регистрация: 21.12.2009
Адрес: север
Сообщений: 15
Сказал Спасибо: 0
Имеет 8 спасибок в 2 сообщенях
Dimedrol пока неопределено
По умолчанию

Здравствуйте!
Нет. Срача не будет. Не для этого сюда пришел.
Зарегался лишь только потому, что случайно попав в форум, прочитал пост Stasa. Печально, что так правильно (в начале) построенный пси портрет уже через два месяца стал пестрить матом и хамством. Вот эта самая "деградация" меня и возбудила(рассмешила).
Но прочитав о таком "букете" заслуг, задумался. Зная и програмируя в ассемблере, что же можно искать в волкере, где програмный инженеринг всего то 3 действа: проверка по условию, безусловный переход и ретурн. Но пльзу я все равно подчерпнул. Пользу в том , что лень самому набирать(строить) скрипты. И спасибо Вам за тот ТИТАНИЧЕСКИЙ труд , который Вы делаете. Жду ответ в стиле первых постов (интригующе вежливый).
Не удержался...простите... А крестиком вышивать Вы умеете?
Dimedrol вне форума   Ответить с цитированием
Старый 22.12.2009, 17:24   #7
Местный
 
Аватар для Stas
 
Регистрация: 21.10.2009
Адрес: Тюмень
Сообщений: 128
Сказал Спасибо: 38
Имеет 171 спасибок в 52 сообщенях
Stas на пути к лучшему
По умолчанию

[quote=Dimedrol;51231]

Когда я пришёл в игру, меня она сразу увлекла разнообразием и насыщенностью информации (множество персонажей, красивая детализированная графика, огромное количество квестовых заданий и многое другое). Я поначалу вырастиил нескольких чаров вручную до 30-40 лвл. Но когда приобрёл бот программу, мне больше понравилось автоматизация процессов игры и стало нудно водить чаров вручную, да и нереально на больших лвлах этим заниматься. Ну а раз начал играть ботом, соответственно понадобились скрипты. Я пересмотрел сотни скриптов и не найдя ничего интересного, особенного, выдающегося, сплошное переписывание одного и того же по сотне раз друг у друга, вынужден был открыть тему, чтобы сообща выработать хорошие, интересные и универсальные (насколько это будет возможно) скрипты. Но, не увидев особой поддержки и помощи (кроме издёвок, тупых приколов, умничанья со стороны некоторых, разного рода отписок, непонятных ни мне, ни им самим, на которые я так и отвечал - ты сам-то понял, что сказал?), я решил не ждать милости от природы и помощи со стороны опытных игроков и ботоводов, а засучил рукава и начал работать, изучать и писать скрипты. Да, я пришёл не в большое программирование, я пришёл в игру, и вынужденно начал писать программы для бота, чтобы автоматизировать и упростить работу себе и другим. В связи с этим хочу сказать, что я хоть какую-то пользу приношу себе и людям. А ты сам признался, что тебе лень этим заниматься. Я верю тебе, это кропотливая и нудная работа, я сам отказался от работы программиста в своё время, но тут ради игры увлекло, здесь интереснее - написал и видишь сразу результат в игровом процессе. И оттого, что ты знаешь условные и безусловные переходы и возврат из подпрограммы с помощью команды Return, ни тебе, ни мне, ни другим - ни холодно, ни жарко, потому что пользы никому от них никакой ! За эти несколько месяцев, как я открыл эту тему, я не почерпнул ничего нового для себя (за редким исключением), не увидел ни одного достойного примера (тоже за редким исключением), но цензоров и рецензоров уже наслушался вдоволь. Да, я открыл тему для практического дела, а не для упражнений в красноречии и словоблудии. Мне жалко времени (я им дорожу) на болтовню, споры и дебаты. Но меня всегда возмущали и выводили из себя толстокожие и непробиваемые даже пулей персоны, которым что в лоб, что по лбу, им ссы в глаза - им всё равно Божья роса.
Вот только поэтому я перешёл от приличного обращения к хамскому, от русского языка к мату, а не из-за своей деградации (хотя у меня уже взята определённая ступень интеллектуального роста, определённая высота, с которой я могу катиться вниз, а тебе ещё предстоит набрать тот уровень, с которого можно катиться без дополнительного пинка в зад). Я лично, будь я на твоём месте, уже бы всё понял и умолк, а ты вновь пытаешься выставить меня в негативе и, выискав в своём словарном запасе несколько умных слов, хочешь выставить себя - умником, а меня - идиотом. Да, я умею вышивать, и не только крестиком, но и гладью...
Я в жизни всё перепробовал, и способен отличить уксус от сахара, хрен от редьки и коньяк от денатурата. А тебе, молодой человек, этому ещё предстоит научиться.
И рисовать для тебя свой психологический портрет я совершенно не имею никакого желания, мне всю жизнь хватало любви от женщин и уважения от мужчин, я в отличие от тебя, этим не обделён. А твоё ёрничанье по поводу моего титанического труда вообще ни к месту и не в тему. Ту кропотливую и неблагодарную работу, которую я проделал за эти два месяца, действительно не каждому под силу. А букет заслуг... просто ты вынудил, чтобы я тебе (и тебе подобным) описал небольшую часть из своих увлечений, это для тех, кто живёт по принципу: на фоне мрака и говна мои блистают имена ! То есть, когда самим блеснуть нечем, то обосрав другого, на его фоне выглядят на высоте.
Поэтому попытался вас умников урезонить чуток, но видно вы не уймётесь так просто... Вот для этих целей я и вынужден прибегать к не литературным терминам, чтобы поставить вас на место, потому что не привык терпеливо сдерживать себя, когда тебе явно плюют незаслуженно в лицо. А вообще, было бы более приятно, если бы ты молча зашёл, взял, что тебе нужно и молча вышел, мне даже спасибки твоей не надо, чем ты завёл тут дебаты, оторвал меня от работы и испортил рабочий настрой, и других заставил читать всю эту галиматью.

Последний раз редактировалось Stas, 22.12.2009 в 17:28.
Stas вне форума   Ответить с цитированием
За это сообщение Stas нажился спасибкой от:
Старый 22.12.2009, 17:50   #8
Местный
 
Аватар для Anafema
 
Регистрация: 21.09.2009
Адрес: Питер
Сообщений: 1,030
Сказал Спасибо: 38
Имеет 228 спасибок в 142 сообщенях
Anafema пока неопределено
По умолчанию

[quote=Stas;51353]
Цитата:
Сообщение от Dimedrol Посмотреть сообщение
многа букав
Стас тебе реально важно мнение о тебе кучки пользователей данного портала? Накой ляд ты в каждом посте оправдываешся и пытаешся задавить интелектом, а потом удивляешся чего на тебя агрятся. Делай свое дело и обращай внимание тока на нормальные посты, не нормальные сами успокоятся. Народная мудрость: не тронь каку не будет пахнуть...
__________________
Форумный зануда...
Пишу автономные скрипты под wallker любой сложности

Гуляю с собаками, убираю квартиры...

Продаю адену(Classic)
Eva - 2кк

ICQ: Оффтоп
Anafema вне форума   Ответить с цитированием
За это сообщение Anafema нажился спасибкой от:
Старый 22.12.2009, 19:13   #9
Местный
 
Аватар для Acmilan
 
Регистрация: 14.09.2008
Адрес: Ростов-на-Дону
Сообщений: 882
Сказал Спасибо: 35
Имеет 120 спасибок в 84 сообщенях
Acmilan пока неопределено
По умолчанию

Цитата:
Сообщение от Stas Посмотреть сообщение
Мне жалко времени (я им дорожу)
Я наблюдаю эту тему с самого начала, и в каждом втором посте ты пишешь подобное, причем твои посты не отличаются лаконичностью, ну а когда ты выдаешь скрипт на 2.5к строк для перемещения по острову, я просто начинаю истерически смеятся! Времени тебе жалко, хах!
Acmilan вне форума   Ответить с цитированием
Старый 22.12.2009, 19:47   #10
Местный
 
Аватар для Stas
 
Регистрация: 21.10.2009
Адрес: Тюмень
Сообщений: 128
Сказал Спасибо: 38
Имеет 171 спасибок в 52 сообщенях
Stas на пути к лучшему
По умолчанию

Цитата:
Сообщение от Acmilan Посмотреть сообщение
Я наблюдаю эту тему с самого начала, и в каждом втором посте ты пишешь подобное, причем твои посты не отличаются лаконичностью, ну а когда ты выдаешь скрипт на 2.5к строк для перемещения по острову, я просто начинаю истерически смеятся! Времени тебе жалко, хах!
Очень, конечно, сложно это понять... Это как асфальт на дорогах. Можно положить один раз и надолго, а можно каждые полгода его взрывать, вывозить искорёженные куски на свалку и ложить новый асфальт, чтобы через полгода повторить ту же самую операцию. Я сторонник сделать один раз, чтобы в сотне скриптов не описывать то же самое. А если понять, что я планирую это сделать для всей карты Л2, то не считаю это пустой тратой времени. Тем более я неоднократно это всем объяснял и описывал, для каких целей создаю эту программу. И я не господь Бог, чтобы за двое суток создать такую программу. А пока она не будет полностью готова, я устану вести с вами споры о её важности и целесообразности. Это как в анекдоте про изнасиловании девушки на улице... Можно или нельзя...
Конечно, нельзя, прохожие задолбают советами. Так и здесь, в спорах о моей программе. Надо, не надо, можно, нельзя... Нет, правда, достали...
И всё-таки прав Анафема, надо просто не обращать на вас внимания. Просто, раз я открыл тему, то считал своим долгом, отвечать людям на их вопросы, но видимо заблуждался. Некоторые решили со мной просто забавляться и развлекаться...

Последний раз редактировалось Stas, 22.12.2009 в 19:48. Причина: Добавлено сообщение
Stas вне форума   Ответить с цитированием
Ответ

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


Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


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

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

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