Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

По окончанию бафа летим в город. Баф и опять на спот.

Рег
1 Фев 2017
Сообщения
8
Реакции
0
Доброго времени суток, дорогие форумчане.
Помогите пожалуйста со скриптом.
И так.
Лока штутткард. Все нормально бафается, тп, бежит на спот. Включился фарми. По окончанию бафа. продолжает бить мобов, помогите сделать так что-бы по окончанию бафа он делал сое и все по новой.
Вот код.

Код:
var
 
    obj: TL2NPC;
    obj2: TL2Effect;

   Enemy: TL2Live;
   
  
   
   
// Buff
function Buff(value:string):boolean;
var
  s:string;
  bypass:string;
  i:integer;
  b:boolean;
  mass:array [1..100] of string;
  Obj: TL2Buff;
begin
  Engine.Settarget(30176);
  Engine.DlgOpen();
  s:=Engine.DlgText;
  b:=true;
  i:=1;
  while b do
  begin
    Delete(s,1,Pos('<button',s)-1);
    mass[i]:=Copy(s,1,Pos('>',s));                  
    
    Delete(s,1,Length(mass[i]));
    inc(i);
    if Pos('<button',s) = 0 then
      b:=false;
  end;
  for i:=1 to 100 do
    if mass[i] <> '' then
        if Pos(value,mass[i]) <> 0 then
        begin
          bypass := mass[i];
          delete(bypass,1,pos('action="',bypass)+17);
          bypass:=Copy(bypass,1,pos('"',bypass)-1);
          break;
        end;
    Engine.ByPassToServer(bypass);
end;


Begin
while 1<>2 do begin   // бесконечный цикл
// этот кусок не трогаем
      if User.Dead then    // умер- вырубаем интерфейс, возврат в город и пауза 15 секунд
       begin
       Engine.FaceControl(0,false);
Engine.gohome;
delay(5000);
end;
// этот кусок не трогаем





  //1 менять тут
// этот кусок - точки респа выбранной деревни  их просто заменить на нужную вам
 if User.inrange(87184,-140256,-1536, 1000, 150) then begin
      Engine.MoveTo(87184,-140256,-1536);
      Engine.MoveTo(87368,-140838,-1512);
      Engine.MoveTo(87319,-141796,-1338);
      Engine.MoveTo(87145,-142916,-1313);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(87408,-142304,-1336, 1000, 150) then begin
      Engine.MoveTo(87408,-142304,-1336);
      Engine.MoveTo(87145,-142916,-1313);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(88240,-142736,-1336, 1000, 150) then begin
      Engine.MoveTo(88240,-142736,-1336);  
      Engine.MoveTo(87585,-142662,-1338);  
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(85056,-141328,-1528, 1000, 150) then begin
      Engine.MoveTo(85056,-141328,-1528);
      Engine.MoveTo(85181,-141845,-1539);
      Engine.MoveTo(85804,-142279,-1339);
      Engine.MoveTo(87157,-142636,-1338);  
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(88624,-142480,-1336, 1000, 150) then begin
      Engine.MoveTo(88624,-142480,-1336);
      Engine.MoveTo(87548,-142686,-1331);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(86400,-142672,-1336, 1000, 150) then begin
      Engine.MoveTo(86400,-142672,-1336);
      Engine.MoveTo(87143,-142570,-1338);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(86560,-140320,-1536, 1000, 150) then begin
      Engine.MoveTo(86560,-140320,-1536);
      Engine.MoveTo(87300,-140655,-1539);
      Engine.MoveTo(87385,-141436,-1339);
      Engine.MoveTo(87246,-142537,-1338);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(88448,-140512,-1536, 1000, 150) then begin
      Engine.MoveTo(88448,-140512,-1536);
      Engine.MoveTo(87410,-140642,-1539);
      Engine.MoveTo(87299,-141493,-1338);
      Engine.MoveTo(87291,-142607,-1338);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(89712,-141472,-1528, 1000, 150) then begin
      Engine.MoveTo(89712,-141472,-1528);
      Engine.MoveTo(89497,-141893,-1539);
      Engine.MoveTo(88963,-142272,-1339);
      Engine.MoveTo(87737,-142631,-1338);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(87344,-141696,-1336, 1000, 150) then begin
      Engine.MoveTo(87344,-141696,-1336);
      Engine.MoveTo(87354,-142594,-1338);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(85472,-140752,-1536, 1000, 150) then begin
      Engine.MoveTo(85472,-140752,-1536);
      Engine.MoveTo(85191,-141803,-1539);
      Engine.MoveTo(85909,-142322,-1338);
      Engine.MoveTo(87096,-142671,-1338);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(89360,-140944,-1536, 1000, 150) then begin
      Engine.MoveTo(89360,-140944,-1536);
      Engine.MoveTo(89539,-141762,-1539);
      Engine.MoveTo(88910,-142276,-1339);
      Engine.MoveTo(87637,-142734,-1332);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(87776,-140384,-1536, 1000, 150) then begin
      Engine.MoveTo(87776,-140384,-1536);
      Engine.MoveTo(87403,-140707,-1539);
      Engine.MoveTo(87351,-141645,-1338);
      Engine.MoveTo(87310,-142568,-1338);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(84720,-141936,-1536, 1000, 150) then begin
      Engine.MoveTo(84720,-141936,-1536);
      Engine.MoveTo(85201,-141842,-1539);
      Engine.MoveTo(85807,-142262,-1339);
      Engine.MoveTo(87116,-142704,-1338);
      Engine.MoveTo(87070,-143418,-1290);
    end;
    if User.inrange(85968,-142384,-1336, 1000, 150) then begin
      Engine.MoveTo(85968,-142384,-1336);
      Engine.MoveTo(87116,-142704,-1338);
      Engine.MoveTo(87070,-143418,-1290);
    end;
  // этот кусок - точки респа выбранной деревни
//2 менять тут
// точка которая указаная в инренж этот точка в которую видут все точки респа,
//ее просто можно скопировать  с конечной любой точки респа
       if User.inrange(87070,-143418,-1290, 250, 150) then begin    // бежим к ГК и тпишмся в руины
        delay(2550);
  // тут указываем   путь к нубскому баферу либо сразу к гк если мы не бафаемся
// выделение нпц с ИД указанным в скобках,ид видны справа снизу в боте рядом с именем нпц

//--------------------------------------------------------------------------------------------------------------//
buff('Баффы воина');   // <-----------------------вот настройки бафа, меняешь где надо
buff('HP,CP,MP');   //- Название нужной кнопки
//--------------------------------------------------------------------------------------------------------------//


 // выделение нпц с ИД указанным в скобках,ид видны справа снизу в боте рядом с именем нпц  
         begin
          Engine.MoveTo(82974, 53207, -1472);
          delay(1550);
          Engine.SetTarget(31964);
          // открывем диалоговое окно и прожимаем строки ( у нас сначала 2 потом 15)
          Engine.DlgOpen();
          Engine.DlgSel(1);
          Engine.DlgSel(13);
// эти точки ведут нас уже непосредственно на наш спот и по его достижению вкллючаем инфетфейс


Engine.MoveTo(116664, -107624, -952);
Engine.MoveTo(117912, -107640, -1072);
Engine.MoveTo(119096, -106952, -1224);
Engine.MoveTo(118952, -105752, -1384);

           Engine.FaceControl(0,true);
                     end;
       delay(550);
    end;     delay(550);
      end; 
    end.
 
Код:
if not User.Buffs.Byid(ID, Obj)  then               // если кончился бафф (ID)
begin
Engine.FaceControl(0,false);                           // вырубаем интерфес бота
Engine.UseItem(736, false);                            // делаем тп
Delay(25000);
end;
 
Столкнулся с проблемой того, что на одном сервере ID бафов у NPC совсем другие.
Поэтому можно применить и такой вариант (по моему даже лучше).
Не забываем, что сел бафы тоже бафы :)
Код:
if User.Buffs.Count<3 then // Если бафов меньше 3 шт., то летим ребаф
	begin
		// Отключаем интерфейс и юзаем скрол телепорта
		Engine.FaceControl(0,false);
		Print('Бафф ТП');
		if (User.InZone) then Engine.UseItem(736); // User.InZone - если не в мирной зоне, то юзаем скролл (иначе тупо юзает даже в городе)
		delay(10000);
	end;
 
if (not User.Target.Dead) and (User.target <> nil) then
begin
Engine.Attack;
delay(1000);
end;
if not User.Buffs.ByID(1488,Buff) or (Buff.EndTime<60000) then
if (User.Target.Dead) and (User.target <> nil) then
begin
Engine.FaceControl(0,false);
Engine.UseItem(736);
delay(5000);
end;

Ну а дальше сам допиливай !Ничего сложного нет!И вариантов масса!
 
Назад
Сверху