Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Скрипты под бота

-

Боты, скрипты и прочий софт для Lineage 2

- Весь софт по Lineage 2 и все, что связано с ботоводством, скриптописанием и брутом - в этом разделе

Ответ
 
Опции темы
Старый 16.01.2009, 17:27   #1
Заблокирован
 Разведчик
Аватар для Xarek86
 
Xarek86 на правильном пути
Регистрация: 31.05.2008
Сообщений: 8
Популярность: 46
Сказал(а) спасибо: 2
Поблагодарили 18 раз(а) в 5 сообщениях
 
По умолчанию Скрипты под бота

Код:
//BOT GNOM SPOILER by elpy  
//ДЛЯ АДАПТАЦИИ: NICK- переправить в имя чара бота.  
//PCK[24] заменить на PCK[xx] в зависимости от того сколько символов в нике персонажа  
//который будет управлять ботом pck[24]- для имен состоящих из 6 символов.  
//если ваш главный персонаж 5 символов в нике то будет pck[22], если 6 то pck[24]  
//если 7 то pck[26], если 8 pck[28] и т.д.  
//ДЛЯ РАБОТЫ СКРИПТА: БОТ- лидер пати, ГЛАВНЫЙ ПЕРС (командир) - на первом месте в пати после бота  
//кнопки управления пишутся в ПАТИ ЧАТ  
//ДЛЯ УПРАВЛЕНИЯ:  
//цифра 1 в пати чат - означет бежать за командиром  
//цифра 2 в пати чат - атакавать и спойлить врага по ассисту с коммандиром  
//свип после смерти моба происходит- автоматически при условии что ТРУП- в таргете у командира  

var  
IDPartyMember, IDAssistTarget, IDMy: String; //ИД командира и ИД его таргета  
MyCoordX, MyCoordY, MyCoordZ :String; //координаты бота  

begin  
//если от сервака принят пакет с ИД и Координатами членов пати то  
if FromServer and (ConnectName='NICK') and (pck[1]=#$a7) then  
begin  
//запоминаем ИД члена пати чье имя первое в списке пати (ИД командира)  
IDPartyMember:=pck[22] + pck[23] + pck[24] + pck[25];  
//Запоминаем собственный ИД (ИД бота)  
IDMy:=pck[6] + pck[7] + pck[8] + pck[9];  
end;  

//если принят пакет со сменой таргета у командира то  
if FromServer and (ConnectName='NICK') and (pck[1]=#$29) then  
if (pck[2]+pck[3]+pck[4]+pck[5]=IDPartyMember) then  
begin  
//запоминаем ИД таргета командира для ассиста  
IDAssistTarget:= pck[6]+pck[7]+pck[8]+pck[9];  
end;  

//если принят пакет от клиента с моими кординатами то  
if FromClient and (ConnectName='NICK') and (pck[1]=#$48) then  
begin  
//запоминаем мои координаты  
MyCoordX:= pck[6] + pck[7] + pck[8] + pck[9];  
MyCoordY:= pck[10] + pck[11] + pck[12] + pck[13];  
MyCoordZ:= pck[14] + pck[15] + pck[16] + pck[17];  
end;  


//БЕГАЕМ ЗА КОМАНДИРОМ  
//если принято сообщение  
//если оно в написано в патичат  
//если отправитель- командир  
//если текст в нем- цифра "1"  
if FromServer and (ConnectName='NICK') and (pck[1]=#$4a) then  
if (pck[6]=#$03) and (pck[2]+pck[3]+pck[4]+pck[5] = IDPartyMember) then  
if (pck[24] = #$31) then  
if (MyCoordX<>'') then  
begin  
//выделяем командира, эмулируя щелчек мыши  
buf:=hstr('04') + IDPartyMember + MyCoordX + MyCoordY + MyCoordZ + hstr('00');  
SendToServerEX('NICK');  
//бежим за командиром эмулируя повторный щелчек мыши по таргету  
buf:=hstr('04') + IDPartyMember + MyCoordX + MyCoordY + MyCoordZ + hstr('00');  
SendToServerEX('NICK');  
end;  

//СПОЙЛИМ ПО АССИСТУ  
//если принято сообщение  
//если оно в написано в патичат  
//если отправитель- командир  
//если текст в нем- цифра "2"  
//если скрипт уже перехватил координаты и все значения для переменных  
if FromServer and (ConnectName='NICK') and (pck[1]=#$4a) then  
if (pck[6]=#$03) and (pck[2]+pck[3]+pck[4]+pck[5] = IDPartyMember) then   
if (pck[24] = #$32) then  
if (MyCoordX<>'') then  
begin  
//берем в таргет вражину по ассисту  
buf:=hstr('04') + IDAssistTarget + MyCoordX + MyCoordY + MyCoordZ + hstr('00');  
SendToServerEX('NICK');  
//юзаем спойл  
buf:=hstr('2F FE 00 00 00 00 00 00 00 00');  
SendToServerEX('NICK');  
end;  

//СВИПАЕМ АВТОМАТИЧЕСКИ  
//если принят пакет DIE для моба (моб умер)  
//если труп моба в таргете у командира  
//если скрипт уже перехватил координаты и все значения для переменных  
if FromServer and (ConnectName='NICK') and (pck[1]=#$06) then  
if (pck[2]+pck[3]+pck[4]+pck[5] = IDAssistTarget) then  
if (MyCoordX<>'') then  
begin  
//юзаем cвип (предполагая что в таргет брать ненужно, т.к. мы его спойлили и  
//труп остался в таргете у бота)  
buf:=hstr('2F 2A 00 00 00 00 00 00 00 00');  
SendToServerEX('NICK');  
end;  

end.

Код:
//by elpy  
//привожу для примера скрипт который управляет сразу двумя ботами приэтом не палится управляющими командами на сервере.. объяснять как переделать именно под вас- нестану.. дабы не плодить ламеров-ботоводов.. скрипт приводится для того чтобы люди могли понять как управлять сразу несколькими ботами и при етом скрыть от сервера управляющие комманды.. скрипт протестирован и 100% рабочий.  
//поясню лиш: что в скрипте принимают участие 3 перехваченных ака:2 бота GNOM-спойлер и VARK а также 1 KOMANDOS который является лидером пати. КОМАНДИР управляет ботами посылкой сообщений в патичат (цифры 1 и 2 и +).. гном свипает труп- автоматически.. приетом СЕРВЕР неполучает никаких сообщений.. СКРИПТ убивает ети сообщения.. а раз сервер ничего не получает- значит и палева перед админами почти 0.. ну 5% палева на то что подозрительно что 2 бота синхронно бегают и вополняют схожие команды.. думаю что в последующих версиях скрипта нужно вводить рандомную задержку выполнения команд ботами.. но об етом потом..  

var  
IDPartyMember, IDAssistTarget, IDMy: String; //ИД командира и ИД его таргета и Собственный ИД  
CoordGnomX, CoordGnomY, CoordGnomZ :String; //координаты бота  
CoordVarkX, CoordVarkY, CoordVarkZ :String; //координаты бота  
IDTargetForSpoil : String; //ИД проспойленного моба  


procedure GnomBeg;  
begin  
if (CoordGnomX <> '') and (IDPartyMember <> '') then  
begin  
//выделяем командира, эмулируя щелчек мыши  
buf:=hstr('04') + IDPartyMember + CoordGnomX + CoordGnomY + CoordGnomZ + hstr('00');  
SendToServerEX('GNOM');  
//бежим за командиром эмулируя повторный щелчек мыши по таргету  
buf:=hstr('04') + IDPartyMember + CoordGnomX + CoordGnomY + CoordGnomZ + hstr('00');  
SendToServerEX('GNOM');  
end;  
end;  

procedure GnomSpoil;  
begin  
if (CoordGnomX <> '') and (IDAssistTarget <> '') then  
begin  
//берем в таргет вражину по ассисту  
buf:=hstr('04') + IDAssistTarget + CoordGnomX + CoordGnomY + CoordGnomZ + hstr('00');  
SendToServerEX('GNOM');  
//юзаем спойл  
buf:=hstr('2F FE 00 00 00 00 00 00 00 00');  
SendToServerEX('GNOM');  
//запоминаем цель которую спойлили  
IDTargetForSpoil:= IDAssistTarget;  
end;  
end;  

procedure GnomSweep;  
begin  
//юзаем cвип (предполагая что в таргет брать ненужно, т.к. мы его спойлили и  
//труп остался в таргете у бота)  
buf:=hstr('2F 2A 00 00 00 00 00 00 00 00');  
SendToServerEX('GNOM');  
end;  

procedure VarkBeg;  
begin  
if (CoordVarkX <> '') and (IDPartyMember <> '') then  
begin  
//выделяем командира, эмулируя щелчек мыши  
buf:=hstr('04') + IDPartyMember + CoordVarkX + CoordVarkY + CoordVarkZ + hstr('00');  
SendToServerEX('VARK');  
//бежим за командиром эмулируя повторный щелчек мыши по таргету  
buf:=hstr('04') + IDPartyMember + CoordVarkX + CoordVarkY + CoordVarkZ + hstr('00');  
SendToServerEX('VARK');  
end;  
end;  

procedure VarkAttack;  
begin  
if (CoordVarkX <> '') and (IDAssistTarget <> '') then  
begin  
//берем в таргет вражину по ассисту  
buf:=hstr('04') + IDAssistTarget + CoordVarkX + CoordVarkY + CoordVarkZ + hstr('00');  
SendToServerEX('VARK');  
//пиздим его  
buf:=hstr('04') + IDAssistTarget + CoordVarkX + CoordVarkY + CoordVarkZ + hstr('00');  
SendToServerEX('VARK');  
end;  
end;  

procedure VarkHeal;  
begin  

buf:=hstr('2F CD 04 00 00 00 00 00 00 00');  
//отправляем пакет серваку  
SendToServerEx('VARK');  

end;  


//основная часть скрипта  
//вызывается при приходе каждого пакета если скрипт включен  
begin  
//честно незнаю зачем эта строка. но логика мыслей такая: если принят пустой пакет то выйти из рабочей части скрипта и необрабатывать этот пакет. вопрос стоит так: если запущено сразу несколько скриптов и в первом скрипте убит кокайто пакет и проверка пошла дальше по другим скриптам и попала в етот скрипт то етот пустой (убитый) пакет обрабатывать- нестоит. так как это приведет к ошибке при синтаксисе (if fromclient and pck[1]=XX then) так как пакет нулевой длинны то возможно проверка первого байта в нем приведет к ошибке.  
if pck='' then exit;  

//если от сервака принят пакет с ИД и Координатами членов пати то  
if FromServer and (pck[1]=#$a7) then  
begin  
//запоминаем ИД командира  
IDPartyMember:=pck[6] + pck[7] + pck[8] + pck[9];  
end;  

//если принят пакет со сменой таргета у командира то  
if FromServer and (pck[1]=#$29) then  
if (pck[2]+pck[3]+pck[4]+pck[5]=IDPartyMember) then  
begin  
//запоминаем ИД таргета командира для ассиста  
IDAssistTarget:= pck[6]+pck[7]+pck[8]+pck[9];  
end;  

//если принят пакет от клиента с кординатами гнома то  
if FromClient and (ConnectName='GNOM') and (pck[1]=#$48) then  
begin  
//запоминаем координаты  
CoordGnomX:= pck[6] + pck[7] + pck[8] + pck[9];  
CoordGnomY:= pck[10] + pck[11] + pck[12] + pck[13];  
CoordGnomZ:= pck[14] + pck[15] + pck[16] + pck[17];  
end;  

//если принят пакет от клиента с кординатами варка то  
if FromClient and (ConnectName='VARK') and (pck[1]=#$48) then  
begin  
//запоминаем координаты  
CoordVarkX:= pck[6] + pck[7] + pck[8] + pck[9];  
CoordVarkY:= pck[10] + pck[11] + pck[12] + pck[13];  
CoordVarkZ:= pck[14] + pck[15] + pck[16] + pck[17];  
end;  

//далее идут управляющие команды  

//если КОМАНДИР пишет в любой чат цифру "1" (код "#$31 #$00" в юникоде (в юникоде под 1 символ используются 2 байта) я так понял) то  
if FromClient and (ConnectName='KOMANDOS')and (pck[1]=#$38) then  
if (pck[2]=#$31) and (pck[3]=#$00) then  
begin  
//убиваем этот пакет, чтоб сервер его не получил  
pck:='';  
//гном бежит за КОМАНДИРОМ  
GnomBeg;  
//ВАРК БЕЖИТ за КОМАНДИРОМ  
VarkBeg;  
//выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны  
exit;  
end;  

if FromClient and (ConnectName='KOMANDOS')and (pck[1]=#$38) then  
if (pck[2]=#$32) and (pck[3]=#$00) then  
begin  
pck:='';  
GnomSpoil;  
VarkAttack;  
exit;  
end;  

if FromServer and (ConnectName='GNOM') and (pck[1]=#$06) then  
if (pck[2]+pck[3]+pck[4]+pck[5] = IDTargetForSpoil) then  
begin  
GnomSweep;  
end;  

if FromClient and (ConnectName='KOMANDOS')and (pck[1]=#$38) then  
if (pck[2]=#$2b) and (pck[3]=#$00) then  
begin  
pck:='';  
VarkHeal;  
exit;  
end;  

end.
Код:
//L2XBotOptimizer by elpy  
//Версия 1.0  
//Управление:  
//в чат пишется минус и команда, например -spoil  
//Удобнее всего использовать макросы, прописывая в них команды  
const  
PartyLeader='Xelat';  
var  
CharPos,CharID,CharSpoil:TStrings;  
TargetID,Cmd,ObjID:string;  

procedure Init;  
begin  
CharID:=TStringList.Create;  
CharPos:=TStringList.Create;  
CharSpoil:=TStringList.Create;  
end;  

procedure Free;  
begin  
CharID.Free;  
CharPos.Free;  
CharSpoil.Free;  
end;  

procedure Say(msg:string);  
begin  
buf:=#$4A#0#0#0#0;  
WriteD(2);  
WriteS(ConnectName);  
WriteS(msg);  
SendToClientEx(PartyLeader);  
end;  

procedure FollowLeader;  
var  
i:integer;  
ObjID,tmp:string;  
begin  
tmp:=#4+CharID.Values[PartyLeader];  
for i:=0 to CharID.Count-1 do  
  begin  
    ObjID:=CharID.Names[i];  
    if ObjID=PartyLeader then continue;  
    buf:=tmp+CharPos.Values[ObjID]+#0;  
    SendToServerEx(ObjID);  
    SendToServerEx(ObjID);  
  end;  
end;  

procedure Attack(ObjID:string);  
begin  
if (TargetID='') or (CharPos.Values[ObjID]='') then exit;  
buf:=#4+TargetID+CharPos.Values[ObjID]+#0;  
SendToServerEx(ObjID);  
SendToServerEx(ObjID);  
end;  

procedure Spoil(ObjID:string);  
begin  
if (TargetID='') or (CharPos.Values[ObjID]='') then exit;  
buf:=#4+TargetID+CharPos.Values[ObjID]+#0;  
SendToServerEx(ObjID);  
buf:=#$2F#$FE#0#0#0#0#0#0#0#0;  
SendToServerEx(ObjID);  
CharSpoil.Values[ObjID]:=TargetID;  
end;  

procedure Sweep(ObjID:string);  
begin  
if (CharSpoil.Values[ObjID]='') or (CharPos.Values[ObjID]='') then exit;  
buf:=#4+CharSpoil.Values[ObjID]+CharPos.Values[ObjID]+#0;  
SendToServerEx(ObjID);  
buf:=#$2F#$2A#0#0#0#0#0#0#0#0;  
SendToServerEx(ObjID);  
CharSpoil.Values[ObjID]:='';  
end;  

procedure Heal(ObjID:string);  
begin  
if CharPos.Values[ObjID]='' then exit;  
buf:=#4+CharID.Values[PartyLeader]+CharPos.Values[ObjID]+#0;  
SendToServerEx(ObjID);  
buf:=#$2F#$CD#4#0#0#0#0#0#0#0#0;  
SendToServerEx(ObjID);  
end;  

begin  
if pck='' then exit;  

//UserInfo  
if FromServer and (pck[1]=#4) then  
begin  
ObjID:=ReadS(18);  
if (ObjID=ConnectName) and (CharID.Values[ObjID]='') then  
  begin  
  CharID.Values[ObjID]:=Copy(pck,14,4);  
  Say('Я готов!');  
  end;  
end  
else  
//ValidatePosition  
if FromClient and (pck[1]=#$48) then  
begin  
CharPos.Values[ConnectName]:=Copy(pck,2,12);  
end  
else  
//Action  
if FromClient and (pck[1]=#4) and (ConnectName=PartyLeader) then  
begin  
ObjID:=Copy(pck,2,4);  
if ObjID<>TargetID then  
  begin  
  TargetID:=ObjID;  
  Say('Цель выбрана');  
  end;  
end  
else  
//Say2  
if FromClient and (pck[1]=#$38) then  
begin  
 Cmd:=ReadS(2);  
 if (Cmd[1]='-') then  
 begin  
 Cmd:=Copy(Cmd,2,Length(Cmd)-1);  
  case Cmd of  
  'follow':FollowLeader;  
  'heal':Heal('Vark');  
  'spoil':Spoil('Gnom');  
  'sweep':Sweep('Gnom');  
  'attack':  
    begin  
    Attack('Vark');  
    Attack('Gnom');  
    end;  
  end;  
 pck:='';  
 end;  
end  
else  
if FromServer and ((pck[1]=#6) or (pck[1]=#12)) then  
if (TargetID<>'') or (CharSpoil.Values[ConnectName]<>'') then  
begin  
ObjID:=Copy(pck,2,4);  
if ObjID=TargetID then TargetID:='';  
if ObjID=CharSpoil.Values[ConnectName] then  
  begin  
  if (pck[1]=#6) then Sweep(ConnectName)  
  else CharSpoil.Values[ConnectName]:='';  
  end;  
end;  

end.

З.Ы. Если повторяюсь сори.
  Ответить с цитированием
Старый 16.01.2009, 20:36   #2
Заблокирован
 Рыцарь-защитник
Аватар для ZliLO
 
ZliLO блестящий пример для подражанияZliLO блестящий пример для подражанияZliLO блестящий пример для подражанияZliLO блестящий пример для подражанияZliLO блестящий пример для подражанияZliLO блестящий пример для подражанияZliLO блестящий пример для подражанияZliLO блестящий пример для подражанияZliLO блестящий пример для подражанияZliLO блестящий пример для подражанияZliLO блестящий пример для подражания
Регистрация: 22.05.2008
Сообщений: 598
Популярность: 2505
Сказал(а) спасибо: 387
Поблагодарили 887 раз(а) в 401 сообщениях
Отправить сообщение для ZliLO с помощью ICQ Отправить сообщение для ZliLO с помощью Skype™
 
По умолчанию

Плагиатор и нуб, учи матчасть, это не для бота.... ламер ты=)
Это для пакетхаков....
  Ответить с цитированием
Старый 17.01.2009, 08:02   #3
Заблокирован
 Разведчик
Аватар для Xarek86
 
Xarek86 на правильном пути
Регистрация: 31.05.2008
Сообщений: 8
Популярность: 46
Сказал(а) спасибо: 2
Поблагодарили 18 раз(а) в 5 сообщениях
 
По умолчанию

сори перепутал я увидел а посматреть сам скрипт не посматрел=)
Взято с [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Ответ

Метки
бота, скрипты


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Руководство] 2 окна на РуОфф (Не используя Бота) FFForever Боты, скрипты и прочий софт для Lineage 2 9 03.12.2009 21:53
нужна помошь в настройке бота! heal Боты, скрипты и прочий софт для Lineage 2 8 18.03.2009 12:44
делаем адекватного бота для добычи руды (кора) Glukoloff Треп 13 04.09.2008 03:04
немного про бота Омен Баги и читы Perfect World 8 16.08.2008 19:00

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 00:22.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net