Я официальный представитель сайта adrenalin5.ru и форума соответственно.
Продам, напишу, помогу настроить, помогу написать для бота Adrenalin.
Консультации бесплатно.
Уже Выполнены проекты(кликабельно):
1)Бот World of Warplanets (Wargaming.net)
2)Бот фарм\антиAFK для DOTA 2
3)Бот для браузерки Stratogame.net (Космическая стратегия) на подобие Травиан
4)Бот для фарма лабиринтов Combats.ru
5) Скрипты для фарма Lineage II (Adrenalin, UOPilot, AutoIT) Официальный представитель
6)ОЧЕНЬ большое количество ботов для игр ВК, Одноклассники, маил.ру и др.
Интересно так :) прошел год как все изменилось то...
Думаю всем будет полезно понять и почитать, здесь будет готовый сборник всех моих полезных примеров или полезных примеров в принципе.
Т.к. на данном форуме нету споилеров, буду делать отдельными сообщениями и давать на них ссылки тут, для того чтобы это хорошо смотрелось!
Хотите больше полезных примеров? - ставим ЛАЙК!
Функция Антипаравоз + функция проверки атаки чара мобами.
Код:
function MobsAttacking : Boolean;//Атакуют ли нас мобы?
var i, n: Integer;
begin
n := 0;
for i := 0 to NpcList.Count - 1 do
if (NpcList.Items(i).Target = User) and not NpcList.Items(i).Dead then inc(n);
Result := n > 0;
end;
function inDanger: boolean;//Есть ли рядом с нами паравоз : работает только на 50%!!!!!
var mobsInTrain,minMobs,i,j: integer;
begin
Result := false;
minMobs := 3;//кол-во мобов
for i:=0 to charlist.count-1 do begin
mobsInTrain := 0;
if (user.distto(charlist.items(i)) < 3000) and charlist.items(i).moved then begin //close, runing
for j:=0 to npclist.count-1 do begin
if (npclist.items(j).target = charlist.items(i)) and (charlist.items(i).distto(npclist.items(j)) < 1500) then inc(mobsInTrain);
if (mobsInTrain >= minMobs) then begin
Result := true;
exit;
end;
end;
end;
end;
end;
Функция Проверки на смерть
Код:
function CheckDeath: Boolean;//Проверка на смерть
begin
Result:=false;
if User.Dead then //умерли
begin
Print('Bot Umer');//печатаем в лог
Delay(3000);//ждать реса
if User.Dead then
begin
Result:=true;
Engine.FaceControl(0,false);//выключаем бота
Engine.GoHome;//встаем в город
Delay(10000);//отдыхаем
end;
end;
end;
Скрипт или процедура(поток) для принятия\отмены диалогов (ивенты)
Код:
begin
while delay(500) do
begin
Engine.ConfirmDialog(false); // отказ true согласие
//Также именно ЭТА команда отвечает за принятие\отказ (респа,трейда и т.д. не только ивенты)
delay(10000);
end;
end.
#Процедура отправки почты по условию
Код:
procedure SendMail;
begin
if inventory.User.ByID(57, Item) and (Item.count > 250000) then
begin
Engine.SendMail('Ник', 'тема', 'комент',[id,кол-во,id,кол-во,id,кол-во,id,кол-во,id,кол-во,id,кол-во]);
delay(1000);
end;
end;
#Скрипт. Часто спрашивают, как дать команду боту по чату, вот так:
Код:
uses sysutils,classes;
begin
while Engine.Status = lsOnline do begin
if (ChatMessage.ChatType = mtPrivate) and ChatMessage.Unread then //непрочитанное сообщение тип чата mtPrivate=ПМ mtParty mtAll=белый
begin
if (ChatMessage.Text = 'пати плз') then Engine.InviteParty(ChatMessage.Sender, ldRandom); //текстом - делаем
if (ChatMessage.Text = 'бпк') then engine.useskill(3521); //текстом - делаем
end;
delay(2000);
end;
end.
#Скрипт\Поток АнтиДизарм
Код:
const
WeaponID:=4233;//ID Itema оружия
var
item: TL2Item;
begin
while delay(500) do //Два раза в секунду
if inventory.user.byid(WeaponID, item) and not (Item.Equipped) then begin
Delay(500);
Engine.UseItem(WeaponID);
Delay(800);
end;
end.
#Процедура\скрипт проверки шагов квеста
Код:
procedure CheckQuestStatus(ID:integer=-1);
Var
i:integer;
stat:string;
begin
Print('Инфо по квесту '+IntToStr(ID));
for i:=1 to 32 do
begin
if Engine.QuestStatus(ID,i) then stat:='OK' else stat:=' -- ';
Print('Шаг '+IntToStr(i)+' - '+stat);
end;
end;
begin
CheckQuestStatus(10323); // вместо 10323 вписываем ID квеста
end.
#Для Опытных пользователей. Пример импорта и работы WinAPI функций
Код:
function MessageBoxW(hWnd: integer; Text, Caption: PChar; uType: integer): integer; stdcall; external 'user32.dll';
function ShellExecuteW(hwnd: integer; lpOperation, lpFile, lpParameters, lpDirectory: PChar; nShowCmd: integer): integer; stdcall; external 'Shell32.dll';
function FindWindowW(lpClassName, lpWindowName: PChar): integer; stdcall; external 'user32.dll';
function SetWindowTextW(hWnd: integer; lpString: PChar): boolean; stdcall; external 'user32.dll';
var
H: integer;//Handle
begin
MessageBoxW(0, 'HELLO !', 'Пример WinAPI', 0);
ShellExecuteW(0, 'open', 'calc', nil, nil, 0);
Delay(500); // даем время запуститься калькулятору
H := FindWindowW(nil,'Калькулятор');
SetWindowTextW(H, 'Shadow - WinAPI]DEMO');
end.
Хотите больше полезных примеров? - ставим ЛАЙК!
П.С. Большинство скриптов авторские и при размещении в других местах ссылка на источник и указание авторства ОБЯЗАТЕЛЬНО!