Жесткий скриптингРаздел для обсуждения готовых и тестируемых скриптов
Внимание! В разделе введена жесткая модерация, темы и сообщения публикуются только после проверки модераторами
+ Контроль рыбалки с панели управления;
+ Статистика ловли;
+ Может работать одновременно несколько скриптов для разных чаров;
+ При нападении моба может атаковать его и может лечиться бутылками;
+ Потрошит пойманную рыбу;
+ Подбирает выпавшие предметы из убитого моба;
+ Возвращается на место рыбалки после смерти;
+ Когда закончатся крючки, бежит к фишермэну и продает/покупает/обменивает предметы
(продажа Fish Oil и Great Fish Oil не производится, см. ниже);
+ Меняет место ловли при неудачных попытках (в скрипте три места ловли);
+ В процессе рыбалки преобразует Fish Oil в Great Fish Oil, Great Fish Oil в Premium
Fish Oil (требуются соответствующие рецепты);
+ проверка на то, что мы действительно рыбачим, с репозицией;
+ проверка на застревание с возвратом на одну позицию назад;
+ возобновляет рыбалку если моб исчез сам;
+ показывает количество HP напавшего моба;
+ добавил отключение клиента (социал YES);
Спасибо Xkor за пакетхак!
Спасибо участникам форума CoderX.ru за идеи для скрипта!
Скрипт распространяется как есть, и я не несу ответственности за то,
что ВЫ натворили у себя, его используя.
MyICQ 402988808
by APXAHGEJI
Вот попробуй этот, на моем ХБэшном серве работает.
Единственно что, не переделал отключение клиента.
Скрипт не универсален, то есть работает тока под ХБ.
Ниже прикреплены скрипты
Так выглядит панель управления скриптом
Последний раз редактировалось NLObP, 01.08.2009 в 02:45.
Причина: обновление скрипта
//сюда вписываем ItemID предметов для автообмена
TradeMultiItem=[6908,6909,6910,6911,6912,6913,6914,6915,6916]; //нельзя изменять, собъется обмен!
//количество предметов в массиве TradeMultiItem
TradeMultiItemCount=9;//нельзя изменять, собъется обмен!
Но я не хочу продавать Fish Gem'ы и Shiny Fish Gem'ы.
Что нужно для этого сделать?
Почему нельзя изменять?
Если убрать 6913 и 6914, а TradeMultiItemCount поставить равным 7, не будет работать?
Поясни, пожалуйста.
//сюда вписываем ItemID предметов для автообмена
TradeMultiItem=[6908,6909,6910,6911,6912,6913,6914,6915,6916]; //нельзя изменять, собъется обмен!
//количество предметов в массиве TradeMultiItem
TradeMultiItemCount=9;//нельзя изменять, собъется обмен!
Но я не хочу продавать Fish Gem'ы и Shiny Fish Gem'ы.
Что нужно для этого сделать?
Почему нельзя изменять?
Если убрать 6913 и 6914, а TradeMultiItemCount поставить равным 7, не будет работать?
Поясни, пожалуйста.
Поставь вместо ID предметов, которые хочешь оставить, любое заведомо неподходящее под другие ID предметов число (например 999999 или 1) и оно просто будет пропущено. Причина в вычислении EntryId в пакете MultiSellChoose. ID предметов для обмена идут по порядку и пропускать их нельзя.
Совет: Добавьте строчку в скрипте, чтобы во время обмена у фишермена очищался контрол msg. Иначе через несколько часов происходит его переполнение и скрипт падает с ошибкой "List index out of bounds (4999)"
Код:
//***************************************************************
// Вся торговля здесь!!!
//***************************************************************
procedure OnTrade(Sender: TObject);
begin
msg.Lines.Clear();
case trade of
//-------------------------------------------------
//продаем фишерману из массива TradeSellItem
//-------------------------------------------------
200: begin
Последний раз редактировалось LiS, 23.08.2009 в 04:18.
Вот часть кода:
В версии 3.4.1.83 работает нормально, а в версии 3.5.13.122 падает на выделенной синим цветом строке.
Если комментирую эту строку, то падает в следующей.
В чем причина? Подскажите, плиз.
Компилирую скрипт. Ставлю галочку на запуск скрипта. Все отлично.
Снимаю галочку, форма исчезает. Еще раз ставлю галочку. Скрипт запускается, форма появляется, но в логах пишет:
Код:
ошибка в CreateItemBase->StringList.Add()
И еще ошибка такая (вернее не понятная мне вещь).
В версии 3.5.13.122 уже есть встроенный метод SendMsg(string).
В этом скрипте он почему-то не шлет сообщения в клиент.
Пришлось вставить такой метод в скрипт:
по русски: отключаем таймер, устанавливаем интервал = 0 (зачем?), высвобождаем таймер (что в принципе подразумевает его останов), пытаемся обнулить привязку процедуры к событию онтаймер.
последний шаг производиться на уже не существующем обьекте, что явно приведет к рантайм эррору.
в принципе, все эти 4 действия сводятся к банальному ShowInf.Free; больше ничего и не надо.
Цитата:
ошибка в CreateItemBase->StringList.Add()
что в статусбаре/еррорлоге написано, и код инит функции с подствеченой строкой на которой выбивает ошибку в студию.
Цитата:
В версии 3.5.13.122 уже есть встроенный метод SendMsg(string).
В этом скрипте он почему-то не шлет сообщения в клиент.
SendMsg встроенный в пх шлет сообщения в ЛОГ пх.
__________________
L2Ext - project closed.
Последний раз редактировалось alexteam, 23.08.2009 в 15:12.