PDA

Просмотр полной версии : [Скрипт] Готовые примеры для Адреналин бота.


IvaniuS
28.08.2015, 15:24
Думаю всем будет полезно понять и почитать, здесь будет готовый сборник всех моих полезных примеров или полезных примеров в принципе.
Т.к. на данном форуме нету споилеров, буду делать отдельными сообщениями и давать на них ссылки тут, для того чтобы это хорошо смотрелось!
>>>Скрипты Adrenaline, L2, AA, BDO Наш Сайт<<< ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
Хотите больше полезных примеров? - ставим ЛАЙК!

Функция Антипаравоз + функция проверки атаки чара мобами.
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.

Хотите больше полезных примеров? - ставим ЛАЙК!

>>>Скрипты Adrenaline, L2, AA, BDO Наш Сайт<<< ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
П.С. Большинство скриптов авторские и при размещении в других местах ссылка на источник и указание авторства ОБЯЗАТЕЛЬНО!

IvaniuS
10.09.2015, 13:37
Доброго времени суток, что имеешь ввиду под скрипт через альтБ, там нужно байпасы поймать, а потом их отрправлять, все что я использую для этого - это:
procedure ByPass(sCmd:String);
begin
engine.bypasstoserver(sCmd);
delay(1000);
end;

rebello
18.09.2015, 15:28
Кач на антилопах возле гдд с нубобаффом, автореспом - чар сам бафается и бежит к точке респа, в случае смерти - летит в город. Для постоянного бафа рекомендую поставить во вкладку "Селф Баффы" свиток тп с откатом в 3000мс(59мин)
var obj: TL2NPC;
obj2: TL2Effect;

Enemy: TL2Live;
Begin
while 1<>2 do begin // бесконечный цикл


// этот кусок не трогаем
if User.Dead then // умер- вырубаем интерфейс, возврат в город и пауза 15 секунд
begin
Engine.FaceControl(0,false);
Engine.gohome;
delay(15000);
end;
// этот кусок не трогаем





//1 менять тут
// этот кусок - точки респа выбранной деревни их просто заменить на нужную вам
if user.inrange(146272, -58176, -2976, 250, 150) //возле хранилища
then
begin
Engine.MoveTo(147593, -58103, -3007);
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(145264, -57680, -2976, 250, 150) //возле хранилища 2
then
begin
Engine.MoveTo(145588, -56926, -3007);
Engine.MoveTo(146673, -56095, -2807);
Engine.MoveTo(147543, -56054, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(145696, -57696, -2976, 250, 150) //возле хранилища 3
then
begin
Engine.MoveTo(145510, -56930, -3007);
Engine.MoveTo(146499, -56202, -2807);
Engine.MoveTo(147481, -56031, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(144944, -55392, -2976, 250, 150) //самый край
then
begin
Engine.MoveTo(145153, -56813, -3007);
Engine.MoveTo(145569, -56855, -3007);
Engine.MoveTo(146467, -56271, -2807);
Engine.MoveTo(147566, -56034, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(144752, -56752, -2976, 250, 150) //самый край
then
begin
Engine.MoveTo(145534, -56884, -3007);
Engine.MoveTo(146265, -56418, -2807);
Engine.MoveTo(147407, -56063, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;

//восточная лестница
if user.inrange(149120, -58064, -2976, 250, 150) //магазин
then
begin
Engine.MoveTo(147706, -58107, -3007);
Engine.MoveTo(147751, -56737, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(150400, -56752, -2976, 250, 150) //самый край
then
begin
Engine.MoveTo(149935, -56870, -3007);
Engine.MoveTo(149139, -56390, -2807);
Engine.MoveTo(147929, -56063, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(150704, -55744, -2976, 250, 150) //самый край 2
then
begin
Engine.MoveTo(149935, -56870, -3007);
Engine.MoveTo(149139, -56390, -2807);
Engine.MoveTo(147929, -56063, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;

//северная лелтница
if user.inrange(147680, -58208, -2976, 250, 150) //низ центр лестницы
then
begin
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(148288, -58304, -2976, 250, 150) //низ центр лестницы чуть правее
then
begin
Engine.MoveTo(147738, -58050, -3007);
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(147232, -58480, -2976, 250, 150) //низ центр лестницы чуть левее
then
begin
Engine.MoveTo(147677, -58063, -3007);
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(149088, -56256, -2776, 250, 150)
then
begin
Engine.MoveTo(147854, -56054, -2807);
Engine.MoveTo(147934, -55354, -2760);
end;

//площадь
if user.inrange(146832, -55904, -2776, 250, 150) //площадь слева от лестницы
then
begin
Engine.MoveTo(147529, -56046, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(146368, -56256, -2776, 250, 150) //площадь слева от лестницы 2
then
begin
Engine.MoveTo(147529, -56046, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(147664, -56464, -2776, 250, 150) //площадь центр
then
begin
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(147680, -56928, -2776, 250, 150) //площадь центр 2
then
begin
Engine.MoveTo(147810, -56110, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(148560, -55904, -2776, 250, 150) //площадь справа от лестницы
then
begin
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(149872, -57424, -2976, 250, 150)
then
begin
Engine.MoveTo(149897, -56910, -2979);
Engine.MoveTo(149230, -56412, -2779);
Engine.MoveTo(147939, -55999, -2772);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(144960, -56224, -2976, 250, 150)
then
begin
Engine.MoveTo(145458, -56853, -2979);
Engine.MoveTo(146343, -56326, -2779);
Engine.MoveTo(147625, -55995, -2772);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(144496, -55088, -2976, 250, 150)
then
begin
Engine.MoveTo(145327, -56873, -2979);
Engine.MoveTo(146337, -56445, -2779);
Engine.MoveTo(147533, -55963, -2766);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
if user.inrange(145392, -56960, -2976, 250, 150)
then
begin
Engine.MoveTo(146347, -56305, -2779);
Engine.MoveTo(147514, -56003, -2772);
Engine.MoveTo(147936, -55368, -2760); //возле гк
end;
// этот кусок - точки респа выбранной деревни







//2 менять тут




// точка которая указаная в инренж этот точка в которую видут все точки респа,
//ее просто можно скопировать с конечной любой точки респа
if User.inrange(147936, -55368, -2760, 950, 950) then begin // бежим к ГК и тпишмся в руины
delay(2550);
// тут указываем путь к нубскому баферу либо сразу к гк если мы не б
Engine.MoveTo(148056, -55384, -2712);


// выделение нпц с ИД указанным в скобках,ид видны справа снизу в боте рядом с именем нпц
Engine.SetTarget(32327);
// открывем диалоговое окно и прожимаем строки ( у нас сначала 2 потом 15)
Engine.DlgOpen();
Engine.DlgSel(1);
Engine.DlgSel(1); // бафнулись у нубобафа
Engine.MoveTo(147976, -56040, -2752);
Engine.MoveTo(147752, -57128, -2760);
Engine.MoveTo(147720, -57256, -2760);
Engine.MoveTo(147656, -59016, -2960);
Engine.MoveTo(147720, -59304, -2960);
Engine.MoveTo(147656, -63704, -3424);
Engine.MoveTo(147544, -62168, -3480);
Engine.MoveTo(147544, -62168, -3480);
Engine.MoveTo(146472, -62680, -3280);
Engine.MoveTo(146792, -62504, -3384);





Engine.FaceControl(0,true);
end;
delay(550);
end; delay(550);
end.

IvaniuS
22.09.2015, 01:00
var obj: TL2NPC;
obj2: TL2Effect;

Enemy: TL2Live;
Begin
while 1<>2 do begin // бесконечный цикл
вот зачем этот кусок если ты не используешь переменную и что это за бесконечный цикл, хотябы While true do или лучше While delay(500) do или на крайняк While engine.stats=lsonline do....

Shiki1996
17.03.2016, 12:52
Кто-нибудь выложит обход обычной цифровой капчи? байпасс 00

godfatherl1
17.03.2016, 13:28
up!

vetal6464122
24.03.2016, 07:55
дайте скрипт на ТТ, все нпс рядом стоят

HDSH
07.04.2016, 06:58
дайте скрипт на ТТ, все нпс рядом стоят

:wow: НА харяву не кто не даст )

am1tsa
14.11.2016, 09:30
var i:integer;
begin

while 1=1 do begin
Engine.SetTarget(31521);
Engine.MoveToTarget(-1);
Delay(500);
Engine.DlgOpen();
Engine.DlgSel(1);
Delay(500);
Engine.DlgSel('Egg Delivery');
Delay(500);
engine.bypasstoserver('00');
Delay(500);
Engine.DlgOpen();
Delay(500);
Engine.DlgSel(1);
Delay(500);
Engine.DlgSel('Specialty Liquor Delivery');
Delay(500);
engine.bypasstoserver('00');
Delay(500);
Engine.MoveTo(149208, -113912, -2016);
Delay(500);
for i:=31547 downto 31543
do begin
Engine.SetTarget(i);
Engine.MoveToTarget(-1);
Delay(500);
Engine.DlgOpen();
Engine.DlgSel(2);
Delay(500);
Engine.DlgSel(2);
Delay(500);
engine.bypasstoserver('00');
Delay(500);
end;
for i:=31543 to 31547
do begin
Engine.SetTarget(i);
Engine.MoveToTarget(-1);
Delay(500);
Engine.DlgOpen();
Engine.DlgSel(2);
Delay(500);
Engine.DlgSel(1);
Delay(500);
engine.bypasstoserver('00');
Delay(500);
end;
Engine.MoveTo(149528, -112696, -2064);
Engine.SetTarget(31521);
Engine.MoveToTarget(-1);
Delay(500);
Engine.DlgOpen();
Engine.DlgSel(1);
Delay(500);
Engine.DlgSel('Egg Delivery');
Delay(500);
engine.bypasstoserver('00');
Delay(500);
Engine.DlgOpen();
Delay(500);
Engine.DlgSel(1);
Delay(500);
Engine.DlgSel('Specialty Liquor Delivery');
Delay(500);
engine.bypasstoserver('00');
Delay(500);
Engine.MoveTo(149272, -114168, -1952);

Engine.SetTarget(31267);
Engine.MoveToTarget(-1);
Delay(500);
Engine.DlgOpen();
Engine.DlgSel(4);
Delay(500);
engine.bypasstoserver('00');
Engine.SetTarget(31584);
Engine.MoveToTarget(-1);
Delay(500);
Engine.DlgOpen();
Engine.DlgSel(1);
Delay(500);
engine.bypasstoserver('00');
end;
end.



Скрипт на ТТ все НПС рядом стоят

IvaniuS
16.11.2016, 10:12
К стати сейчас мы совместно с PCoder`ом все скрипты прямо в боте и бесплатно можно юзать...
Там и ТТ и заточка и аугмент и возврат на спот и все остальное...

MrKonchulizov
16.11.2016, 12:08
На рпг-гф х5 тоже работает?

IvaniuS
16.11.2016, 20:17
На рпг-гф х5 тоже работает?
скрипты? - да

KUARHADRON
25.03.2020, 17:28
var mob: tl2npc;
begin
while 1<>2 do begin
delay(100);
if User.InRange(31346,69074,-3609,1000,150) then begin
npclist.byid(15063, mob);
engine.settarget(mob);
Engine.UseSkill(1167);
//Engine.UseSkill(тутскиллид);
end;
while ((not user.target.dead) and (not user.dead)) do
begin
//использование во время боя
Engine.UseSkill(1341);
Engine.UseSkill(1343);
Engine.UseSkill(1233);
Engine.UseSkill(1239);
delay(10);
end;
if (User.Target.Dead) and (User.target <> nil) then begin
Engine.CancelTarget;
delay(10);
end;
end;
// code..
end.
поcле убийства НПС-моба не меняет цель на следующую ... стоит ждёт пока жмур провалится сквозь землю
подскажите что не так пж (: