Автоматизация заточки предметов до необходимого уровня by NLObP
Возможности скрипта
--------------------
+ Панель управления;
+ Затачиваем по очереди все предметы с ItemID пока не переломаем
или не заточим. Один предмет всегда остаётся.
Необходимо затариться оружием, заточками и валерьянкой.
Name='NLObP'; //Вписать сюда имя чара
//установить константу в зависимости от типа игры (С4 или Интерлюд)
interlude=true; //Interlude - true, C4 - false
Внимание!
Из комбобокса обязательно надо выбрать вещь, чтобы скрипт узнал
ID и количество, только потом ставить напротив галочку.
Галочки снимать не надо, если кончились заточки/вещи - можно сразу идти
покупать и продолжать заточку.
В инвентаре должно быть не менее двух одинаковых затачиваемых вещей, степень заточки значения не имеет
Скрипт распространяется как есть, и я не несу ответственности за то, что ВЫ натворили у себя, его используя.
Packets.ini поставил от YuLaw, пробовал с l2ph 3.1.8, 3.1.9, 3.2.0.
3.1.8 и 3.2.0 выдают такую ошибку
3.1.9 просто виснет...
В списке соединений я не вижу имени чара. Обычно такая ошибка выскакивает из-за несоответствия соединения и настроек скрипта.
К тому же скрипт проверялся на С4 и Интерлюдии.
Для Камаэля есть несоответсвия в пакетах.
В Интерлюдии 58=RequestEnchantItem:d(ObjectID), а в Камаэле 5F=RequestEnchantItem:d(ObjectID).
Последний раз редактировалось NLObP, 06.07.2008 в 13:35.
Для С4, надо внести изменения в procedure CreateItemBase;
...
было --> if interlude then inc(j,12) else inc(j,8);
надо --> if interlude then inc(j,12) else inc(j,4); //для С4 проверено, спасибо Mulder
Изменил все как указано выше, все точит отлично до +4, после этого пишет заточка прервана, а все из-за того что оно видит в моем инвентаре неправильное количество заточек и оружия. Хотя в инвентаре 60 шт. заточек и 40 шт. оружия, программа видит только 4 шт. заточек и 3 шт. оружия, хотелось бы узнать с чем может быть это связано и как исправить, что бы программа видела правильное количество предметов в инвентаре.
PS: Заранее спасибо
Уважаемый NLObP, а как сделать чтоб перс сам докупал заточки?
Сделать что бы покупал можно, но это для каждого сервера будет немного по своему, поэтому делать не буду.
Посмотреть, как это сделать самому, можно в рыбалке и в теме алгоритмов.
Немного подскажу. Надо знать ID продавцов. Знать как продается - обычный магазин/мультиселл. Знать bypass из html-менюшки, который посылать для покупки. Нужно запоминать ListID в ответе продавца.
покупка состоит из следующих шагов:
1. таргет на продавце, пауза, снова таргет (c04=Action, c04=Action)
2. приходит s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d) - берем из него bypass требуемого пункта меню
3. шлем выбранный пункт из меню c21=RequestBypassToServer:s(Cmd)
4. приходит s11=BuyList:d(Money)h(ListID)w(ListCount)w(ItemTyp e1)h(ObjectID)i(ItemID)d(maxcnt)w(ItemType2)w(h)d( ItemBodyPart)... - берем ListID
5. FindItem(ID) найдем OID, Count нужной вещи по ID - это отдельная процедура поиска в инвентаре и здесь не требуется!
6. шлем c1F=RequestBuyItem:h(ListID)d(BuyCount)i(ItemID)d( Count)i(ItemID)d(Count)
На некоторых серверах не обязятельно подходить к продавцу, на других обязательно. Тоже самое с ListID - на некоторых можно 0 ставить.
Последний раз редактировалось NLObP, 03.08.2008 в 00:51.
Сделать что бы покупал можно, но это для каждого сервера будет немного по своему, поэтому делать не буду.
Посмотреть, как это сделать самому, можно в рыбалке и в теме алгоритмов.
Как вариант:
Делаешь функцию настройки скрипта:
В ПМ пишеться: выдели нпц, выбери пункт меню, купи 5 точек, используй одну точку на любом оружие...
Всё довольно просто после чего сохраняешь параметры в стринглист тот же и в файл.
PS: Жаль что на l2r.ru сложная шифрация пакетов, которую я одолеть не могу, так бы было много скриптов от меня(автокачающийся ВК был бы точно) ну и карту бы закончил в dll.
А я могу услышать ответ на свой вопрос, или оно настолько сложный, что даже нечего ответить ?
Скрипт писался под Интерлюд. Пакеты отличаются в С4 и в Интерлюде (в конце вроде 8 байт и 4 байт лишних). Я проверить не могу, так как на сервере сменили защиту (lagam.net). Чем я еще могу помочь? Для всех я тоже не могу проверять и так 9 разных клиентов. Только если ты сам будешь ковыряться и проверишь, какие надо внести изменения в скрипт, чтобы заработало.
Скорее всего это в
Код:
procedure CreateItemBase; //пакет 1B, Создает базу ObjectID по ItemID
...
if interlude then inc(j,12) else inc(j,8);
и в
Код:
procedure InventoryUpdate; //пакет 27, обновляет базу ObjectID по ItemID
...
if interlude then inc(j,10) else inc(j,2);
PS: какой у тебя сервер?
Добавлено через 2 минуты
Цитата:
Сообщение от raid
Как вариант:
Делаешь функцию настройки скрипта:
В ПМ пишеться: выдели нпц, выбери пункт меню, купи 5 точек, используй одну точку на любом оружие...
Всё довольно просто после чего сохраняешь параметры в стринглист тот же и в файл.
Может сделаешь? Я ведь не всё умею.
Последний раз редактировалось NLObP, 19.07.2008 в 17:49.
Причина: Добавлено сообщение
а как сделать чтоб скрипт точил предмет до определённого уровня и если он ломался то начинал точить следующий?
Как сейчас сделано, больше шанс, что по максимуму заточится. Теоритически можно и по одному сделать, только я уже не буду делать. Посмотри в теме, выложены еще два скрипта, может там как раз то, что надо?
Добавлено через 1 минуту
Цитата:
Сообщение от andrey93
а есть для камельки такая штука??
Для Камаеля другие пакеты нужны, если напишешь, какие там используются, могу и поправить.
Последний раз редактировалось NLObP, 28.07.2008 в 23:29.
Причина: Добавлено сообщение