Автор: evnetiy
я НЕ ЗНАЮ будет ли работать на адреналине, но скорее всего - будет, так как писался для шадова.
Сам модуль АРХИполезный для скриптеров, если работает. Почитайте.
История изменений
0.005 и 0.006 - 03.08.2013
- Завершена функция InCity; Она вызывается автоматически при использовании функции GoHome; Добавлен сбор новых точек респа в фаил NewResp.txt;
- Добавлена функция CheckItems. Данная функция проверяет Итем по ID и Count у вас в инвенторе. Более детальное описание ниже.
- В функции GetBuff прописан апгрейд вещей до Династии. Пославлена заглушка и работает данная вещь только для СвордСингеров.
- В функцию Trade добавлена возможность продать сразу все вещи в инвенторе. Добавлен IgnoreID.txt. Создается автоматически из вещей, которые по какой-либо причине не смоги продать в магазин.
- В функциях TeleportTo и Trade теперь не используются двойные кавычки " для элементов, содержащих пробелы.
- UPD: Мелкая правка в логике функции Trade.
- Исправлена ошибка в функции GetCity;. Теперь она работает корректно во всех городах.
- Добавлены все маршруты в функцию GetBuff во всех городах.
- Добавлены все маршруты в функцию GetBless во всех городах. Если в городе нет своего герольда, то функция летит в соседний город и получает бафф там. У каждого города прописан соседний город (соседи выбирались по наименьшей цене телепорта туда-обратно). Есть вероятность попасть в вечный цикл, если в городах-парах не окажется Герольда Например у Гирана городом-парой является Орен, а у Орена при ненахождении Герольда получение прописано в Гиране. Так же с парой Годдард-Шутгарт.
- Начал заполнять функцию InCity; - Было бы не плохо если бы мы уже начали писать юнит вместе делитесь зонами респов по городам ))
- Переписана функция GetCity;. Работает корректно почти во всех городах (Почему-то в Руне маленький кусочек у гейткипера воспринимает за глудин)
- Прописаны все маршруты во всех городах в функции Trade;
- Приступаю к прописыванию маршрутов до NewbieHelpera;
- В константы вынесены все текстовые данные, используемые в функциях.
- Во все функции добавлены пустые части по городам.
- В функции GetBuff покупка шмоток и их одевание реализованы через ID и Obj. Обмен пока только до Б грейда.
- В функции GoHome добавлена проверка на начилие Свитков телепорта в инвенторе. Свиток телепорта теперь используется по ID, а не по нейму как раньше.
- В функции GetCity города теперь определяются по 5 NPC ID. Сделано пока только для Шутгарта и Орена.
- Планируется получение ДрагонБаффа функцией GetDGBuff, но пока не добавлена ни функция, ни её действия )))
- Залит
uses TP;
begin
Script.NewThread(@PingMonitor);
//Дальше идет наш скрипт.
//Конец Нашего Скрипта ))
end.
Процедуры:
- procedure TeleportTo(Teleports:string);
- procedure GetBuff(Buff:Integer);
- procedure GetBless;
- procedure GoHome(SkillOrItem:String='');
- procedure Trade(SellItems,BuyItems:String;Ignore:boolean=true);
- procedure PingMonitor(P: pointer);
- function CheckItems(Items:string): String;
Свести к минимуму в наших скриптах действия в городах. При телепорте в город, при баффе в городе, при покупке и продаже тех или иных итемов.
Примеры использования в своих скриптах:
TeleportTo('Глудио,Дион,Гиран,Аден,Годдард,Шутгарт'); - Если мы стоим в Деревне Говорящего Острова у ГейтКипера и нам необходимо телепортироваться в Годдард и при этом сэкономить немного денег на телепорты.
GetBuff(2); 1 - Страж, 2 - Берсерк, 3 - Маг. Во всех городах используем Помощника новичков для получения баффа. Если мы качаемся квестами, то на определенных уровнях мы переодеваемся в одежду за Монеты Железных Врат.
GetBless; - Во всех городах получаем благословение на +3% к опыту.
GoHome; - Для возвращения домой используем не только СоЕ. Можно использовать Скилл или Благ.Свиток Телепорта. GoHome('Благ.Свиток Телепорта');
Trade('Модель Латного Шлема,1,Часть Латного Щита,2,1914,4','1464,20'); - Во всех городах идем от гейткипера к бакалейщику. Продаем и покупаем. При продаже возможно использование пары ItemName,Count илиItemID,Count.
Так же добавлена возможность продавать все вещи в инвенторе, которые не внесены в IgnoreID.txt. Возможно продавать вещи в инвенторе, игнорируя IgnoreID.txt. При продаже всех вещей из инвенторя автоматически дополняется список IgnoreID.txt вещами, которые не получилось продать.
Пример использования procedure Trade
//Продаем итемы, а так же проверяем докупить ли нам СоЕ и SSA;
Trade('Деревянная Стрела,1,Железная Стрела,2,Мифриловая Стрела,1343,1,1345,1,1341,1,18550,1',CheckItems('1466,5200,736,41'));
//Продаем SSA игнорируя IgnoreID.txt
Trade('1466,5200','',false);
//Продаем все из инвентаря, кроме тех итемов, которые занесены в IgnoreID.txt. При этом покупаем SSA в кол-ве 300 штук.
Trade('ALL','1466,300');
Код:
CheckItems; - Допустим мы хотим, чтобы у нас было постоянное число сосок, телепортов, банок на хп... Вызываем функцию CheckItems('1466,5000,746,20,1061,100'). Эта функия смотрит сколько итемов у нас в инвенторе и возвращает разницу. Используется с функцией Trade;