Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 25.03.2008, 14:20   #311
Гость
 
Сообщений: n/a
По умолчанию

мне нужн опроизвести атаку на моба толкьо с определенным названием как сделать ведь в пакете это не пишиться!
  Ответить с цитированием
Старый 25.03.2008, 16:16   #312
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от aker
моба толкьо с определенным названием
имя моба = mobID = NPCID, по нему и исчи.
QaK вне форума   Ответить с цитированием
Старый 27.03.2008, 02:28   #313
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

Код:
парни помогите срочно!!! можноли взять в таргет моба но только чтобы он не аттакавал типо как командой "/target и имя моба" ?
мышкой по мобу жать пробуй.. а в топ спрашивай вопросы по существу что именно не выходит..

Добавлено спустя 8 минут 7 секунд:
каждый новый очередной-тупой-неграмотнопоставленый вопрос расширяет топ на 3 листа.. сейчас вот люди тока разобрались( спомощью многочисленных вопросов и подсказок тебе) что оказывается тебе нужно объяснить механизм как получает клиент информацию об местоположении мобов.. ну сматри допустим ты в дионе.. твой клиент при етом незнает об местоположении мобов в ЕГ например.. потомучто ето довольно далеко.. еслиб твой клиент занал обо всех мобах на серваке инфу то надо очень мощьный сервер.. когда ты бежиш из ДИОНА в ЕГ.. то мобы которые встретятся у тебя на пути- будут сопровождаться пакетом (НПЦ-ИНФО).. а точнее наоборот.. когда приходят твоему клиенту пакеты НПЦ ИНФО то они у тебя на екране показываются.. и пользуясь етой информацией можно их ИД запомнить (этим пакетом)..
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 27.03.2008, 12:02   #314
Новичок
 
Регистрация: 22.11.2007
Сообщений: 17
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Rubec
По умолчанию

Ворон есть проблемка в твоем скрипте на всех баферов :(

Суть в чем использовал допустим ше скил залив маны и скрипт соответственно поймал его с его ИД и приказал включить бег так вот на окне командира он вроде как бежит за ним а на самом деле он остается стоять хз почему и так можно сказать теряется и когда ему очередной раз приходится заливать или еще чего то он из окна командира просто исчезает (как телепорт ) и появляется там где остался. Это раз.

ну и хилки не пьются, но этот кусок кода я еще не проверял так что может там что то с ИД банок не так. Использую на Ц 4 и подкоректил смещение при отлове хп и мп с 48 на 44, лечит льет нормально бегает с трудом, банки не пьет на счет ЦП не знаю не пробовал. Хочу попробовать еще прикрутить автобаф каждые 20 мин и как то совместить со скриптом ботом на кач переделав его под мага, правда там стока всего что мне даже страшно что то трогать ( я про ТК 64)

И вопрос по ТК 64 походу там дроп не собираеться или очень плохо собирается (

Добавлено спустя 31 минуту 26 секунд:
Откуда такая формула и как ее понять?

for i:= 0 to round(length(pck)/36) do
begin
if (pck[i*36+4+8]+pck[i*36+5+8] = hstr('25 04')) then OidHPPotion0:=pck[i*36+8]+pck[i*36+1+8]+pck[i*36+2+8]+pck[i*36+3+8];
Rubec вне форума   Ответить с цитированием
Старый 27.03.2008, 18:48   #315
Заблокирован
 
Регистрация: 10.03.2008
Адрес: Тула
Сообщений: 1,098
Сказал Спасибо: 188
Имеет 108 спасибок в 60 сообщенях
DashKAaa
По умолчанию

Бегает,лечит,заливает, пьет цп,хп на ура, правда задержечка есть при цп...

скорей всего у тебя просто сервак левый особенно с таргетами и пропаданием суппорта за спиной)
DashKAaa вне форума   Ответить с цитированием
Старый 27.03.2008, 19:24   #316
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re:

Цитата:
Сообщение от Rubec
Nlopd к тебе вопрос можно переделать скрипт на кач ТК под кач мага, а то я что то пробовал но так тупо віходит ппц, и еще біло бі неплохо чтобі совместить его с использованием скрипта от ворона там где ше пп ее и биш ну и сам соответственно пьет всякие лекарства
My name='NLObP"
Для мага - сложность в дистанционной атаке, очень большая сложность... для меня по крайней мере.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 27.03.2008, 22:28   #317
Новичок
 
Регистрация: 22.11.2007
Сообщений: 17
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Rubec
По умолчанию

Цитата:
My name='NLObP"
Для мага - сложность в дистанционной атаке, очень большая сложность... для меня по крайней мере.
очень неплохо такая атака реализована в этом скрипте

Код:
//Бот_маг with 'Hachling of Star' by NLObP
    {
    Социальное действие YES включить
    Социальное действие NO выключить

    Скрипт распространяется как есть, и я не несу ответственности за то, что
    ВЫ натворили у себя, его используя.
    }

    //******************************************************************************
    Const
      Name='';      //имя чара
      Pet='';           //имя Пета
      max=500;         //max количество контролируемых мобов
      Radius=1500;    //радиус участка для поиска мобов
      DeltaZ=250;    //глубина/высота до мобов
      Distance=600;  //дистанция до моба
      windstrike=1230; //Wind Strike

    //******************************************************************************
    VAR
      NameChar: string;
      CharID, PetID, Attacker, ObjectID: integer;
      CentrKachX,CentrKachY,CentrKachZ,RadiusKachX,RadiusKachY: integer;
      CentrKachXex,CentrKachYex,RadiusKachXex,RadiusKachYex: extended;
      tempX,tempY, tempLenght: extended;
      tempZ, ColvoMobs: integer;

      xe,ye: extended;
      x,y,z,ox,oy,oz,n: integer;

      MobCurHP, MobMaxHP, CurHP, MaxHP, CurMP, MaxMP: integer;
      BotCoordX,BotCoordY,BotCoordZ: integer; //координаты бота
      BotCoordXext,BotCoordYext,BotCoordZext:extended;
      MinPutID: integer; //указывает индекс моба в базе путь до которого самый короткий
      MinPutLenght: extended; //расстояния до ближайшего моба
      timer1: TTimer; //основной таймер
      timer2: TTimer; //вспомогательный
      timerA: TTimer; //вспомогательный
      i, itm, SocialID: integer; // вспомогательная
      time1, time2: integer;
      AddMob, UnderAttack, scrready, NeedBackup, fire: boolean;

      ItemBase:   array[1..4,1..max] of integer;  // описатель предметов
      CharBase:   array[1..4,1..max] of integer;  // описатель игроков (которых не атакуем)
      MobBase:    array[1..4,1..max] of integer;  // описатель мобов вокруг
      MobBaseExt: array[1..4,1..max] of extended; // описатель мобов вокруг вспомогательная
    { 1 - ID
      2 - X
      3 - Y
      4 - Z}

    //******************************************************************************
    procedure Init; //Вызывается при включении скрипта
    begin
      UnderAttack:=false;
      itm:=0;
      NeedBackup:=false;
      scrready:=false;
      colvomobs:=0;
      timer1:=TTimer.Create(nil);
      timer1.OnTimer:=@OnTimer1;
      timer1.enabled:=False;
      timer1.interval:=1500;        //каждые 2 сек ищем ближайшего моба для атаки
      timerA:=TTimer.Create(nil);
      timerA.OnTimer:=@OnTimerA;
      timerA.enabled:=False;
      timerA.interval:=1500;        //каждые 2 сек магическая атака
      timer2:=TTimer.Create(nil);
      timer2.OnTimer:=@OnTimer2;
      timer2.enabled:=false;
      timer2.interval:=5000;
      //RequestItemList
      buf:=hstr('0F');
      SendToServerEx(Name);
    end;

    //******************************************************************************
    procedure Free; //Вызывается при выключении скрипта
    begin
      timer1.Free;
      timer2.Free;
      timerA.Free;
    end;

    //******************************************************************************
    //сообщения в приват, на сервер не отправляются
    procedure Say(msg:string);
    begin
      buf:=hstr('4A 00 00 00 00');
      WriteD(2);
      WriteS(Name);
      WriteS(msg);
      SendToClientEx(Name);
    end;

    //*******************************************************************
    function Wait(var tick: integer;Timewait: Integer): Boolean;
    // сквозная проверка без остановки скрипта (c)dmitry501
    // modifed by Sh00rGo
    var
      t: integer;
    begin
      result:=false;
      t:=Round(Time*86400);
      if t>(tick+Timewait) then begin
        if tick>0 then result:=true;
        tick:=t;
      end;
    end;

    //******************************************************************************
    procedure ReqGetItem;
    begin
      if itm=0 then begin
        timer1.enabled:=true; //включаем отсчет времени
        needbackup:=false;
        exit;
      end;
      timer1.enabled:=false; //выключаем отсчет времени
      //перебираем базу
      for i:=1 to max do begin
        //если нашли, то обнуляем
        if (ItemBase[1,i]<>0) then begin  //ObjectID
          say('ReqGetItem');
          //даем команду подобрать вещь
          buf:=#$04;
          WriteD(ItemBase[1,i]);
          WriteD(ItemBase[2,i]);
          WriteD(ItemBase[3,i]);
          WriteD(ItemBase[4,i]);
          WriteH(00);
          SendToServerEx(Name);
        end;
      end;
    end;

    //******************************************************************************
    procedure OnTimer2(Sender: TObject);
    begin
      UnderAttack:=false;     //отцепимся от атакуемого
      if itm>0 then needbackup:=true;
    end;

    //******************************************************************************
    //0E=StatusUpdate:h(ObjectID)d(AttribCount)d(AttrID)d(AttrValue)
    procedure StatusUpdate;
    var
      i: integer;
    begin
      for i:=0 to ReadD(6)-1 do begin
        case pck[i*8+10] of
          #$09: MobCurHP:=ReadD(i*8+14);
          #$0A: MobMaxHP:=ReadD(i*8+14);
        end;
      end;
      if (MobCurHP<=0) then begin
        underattack:=false;
        say('Убили!');
      end;
    end;

    //******************************************************************************
    procedure OnTimer1(Sender: TObject);
    begin
      //не вычисляем, если уже атакуем
      if UnderAttack then exit;

      MinPutID:=0;
      MinPutLenght:=99999999;

      ///ищем самого близкого к нам моба
      for i:=1 to max do begin
        if (MobBaseExt[1,i]<>0) then begin
          tempX:=MobBaseExt[2,i];
          tempY:=MobBaseExt[3,i];
          //расстояние по теореме Пифагора: c^2=a^2+b^2
          tempLenght:=int(sqrt((BotCoordXext-tempx)*(BotCoordXext-tempx)+(BotCoordYext-tempy)*(BotCoordYext-tempy)));
          if (tempLenght<MinPutLenght) and (PetID<>MobBase[1,i]) and (CharID<>MobBase[1,i]) then begin
            MinPutLenght:=tempLenght;
            MinPutID:=i;
          end;
        end;
      end;
      if (minputid<>0) then begin
          Attacker:=MobBase[1,MinPutID];
          TargetAttacker(Attacker);
          say('Атакуем моба!');
      end
       else MoveCenter;
    end;


    //******************************************************************************
    //01=MoveBackwardToLocation:d(targetX)d(targetY)d(targetZ)d(originX)d(originY)d(originZ)d(moveByMouse)
    procedure MoveDistance;
    begin
       xe:=MobBase[2,MinPutID]+Distance/4+round(random*(Distance/4));
        ye:=MobBase[3,MinPutID]+Distance/4+round(random*(Distance/4));

        x:=round(xe);
        y:=round(ye);
         z:=MobBase[4,MinPutID];

        buf:=#$01;
        WriteD(x);
        WriteD(y);
        WriteD(z);
        WriteD(BotCoordx);
        WriteD(BotCoordy);
        WriteD(BotCoordz);
        WriteD(01);
        SendToServerEx(Name);
        say('держим дистанцию');
    end;

    procedure MoveCenter;
    begin
        buf:=#$01;
        WriteD(CentrKachx);
        WriteD(CentrKachy);
        WriteD(CentrKachz);
        WriteD(BotCoordx);
        WriteD(BotCoordy);
        WriteD(BotCoordz);
        WriteD(01);
        SendToServerEx(Name);
        say('бежим в центр');
    end;
    //******************************************************************************
    procedure TargetAtt;
    begin
      buf:=#$04;
      WriteD(Attacker);
      WriteD(BotCoordX);
      WriteD(BotCoordY);
      WriteD(BotCoordZ);
      WriteC(00);
      SendToServerEx(Name);
    end;

    //***************************************************************
    //2F=RequestMagicSkillUse:h(MagicID)d(CtrlPressed)b(ShiftPressed)
    procedure MagicSkillUse(MagicID:integer);
    begin
        buf:=#$2F;
        WriteD(MagicID);
        WriteD(00);
        WriteC(00);
        SendToServerEx(Name);
    end;

    //******************************************************************************
    procedure OnTimerA(Sender: TObject);
    begin
      MagicSkillUse(windstrike);
      MoveDistance;
      say('magic attack');
    end;

    //******************************************************************************
    procedure TargetAttacker(Attacker: Integer);
    begin
      TargetAtt;
      timerA.enabled:=true;
      UnderAttack:=true; //зацепимся за атакуемого
    end;

    //******************************************************************************
    //          вызывается при приходе каждого пакета если скрипт включен
    //******************************************************************************
    begin

      //****************************************************************************
      //не пропускаем пустые пакеты
      if pck='' then exit;

      //****************************************************************************
      //16=NpcInfo:h(ObjectID)d(NpcTypeID)d(IsAttackable)d(X)d(Y)d(Z)d(Heading)d(d)d(Maspd)d(Paspd)d(runSpd)d(walkSpd)d(swimRSpd)d(swimWSpd)d(flRSpd)d(flWSpd)d(FlyRSpd)d(FlyWSpd)f(ProperMul)f(Paspd)f(CollisRadius)f(CollisHeight)d(RHand)d(d)d(LHand)b(nameabove)b(isRun)b(isInFight)b(isAlikeDead)b(isSummoned)s(Name)s(Title)d(d)d(d)d(karma?)d(abnEffect)d(d)d(d)d(d)d(d)b(c)b(Team)f(collisRadius)f(collisHeight)d(d)
      //NPCInfo, запоминаем мобов
      if FromServer and (ConnectName=Name) and (pck[1]=#$16) then begin
        AddMob:=true;

        //проверка, входит моб в радиус действия?
        tempX:=ReadD(14); //x
        tempY:=ReadD(18); //y
        tempLenght:=sqrt((CentrKachXex-tempX)*(CentrKachXex-tempX)+(CentrKachYex-tempY)*(CentrKachYex-tempY));

        //проверям, не под землей ли моб(в катакомбах)
        tempZ:=BotCoordZ-ReadD(22);
        if tempz<0 then tempZ:=tempz*(-1);
        if tempZ<=DeltaZ then begin
          if (tempLenght<Radius) then begin
            for i:=1 to max do begin
              //если нашли Моба в базе, то коректируем его координаты на новые
              if (MobBase[1,i]=ReadD(2)) and (CharID<>ReadD(2)) and (PetID<>ReadD(2)) then begin
                MobBase[2,i]:=ReadD(14); //x
                MobBase[3,i]:=ReadD(18); //y
                MobBase[4,i]:=ReadD(22); //z
                //Ext массив
                MobBaseExt[2,i]:=ReadD(14); //x
                MobBaseExt[3,i]:=ReadD(18); //y
                MobBaseExt[4,i]:=ReadD(22); //z
                AddMob:=false;
              end;
            end;
            //иначе, перебираем базу, ищем свободную ячейку в ней и добавляем нового моба
            for i:=1 to max do begin
              if (MobBase[1,i]=0) and AddMob and (CharID<>ReadD(2)) and (PetID<>ReadD(2)) then begin
                //запоминаем моба в свободную ячейку
                MobBase[1,i]:=ReadD(2); //ObjectID
                MobBase[2,i]:=ReadD(14); //x
                MobBase[3,i]:=ReadD(18); //y
                MobBase[4,i]:=ReadD(22); //z
                //Ext массив
                MobBaseExt[1,i]:=ReadD(2); //ObjectID
                MobBaseExt[2,i]:=ReadD(14); //x
                MobBaseExt[3,i]:=ReadD(18); //y
                MobBaseExt[4,i]:=ReadD(22); //z
                inc(colvomobs);
                say('Запоминаем координаты Моба'+' ColvoMobs='+inttostr(colvomobs));
                break;
              end;
            end;
          end;
        end;
      end;

      //****************************************************************************
      //CharInfo, запоминаем игроков
      if FromServer and (ConnectName=Name) and (pck[1]=#$03) then begin
        AddMob:=true;
        for i:=1 to max do begin
          //если нашли чара в базе, то коректируем его координаты на новые
          if (CharBase[1,i]=ReadD(18)) then begin
            CharBase[2,i]:=ReadD(2);  //x
            CharBase[3,i]:=ReadD(6);  //y
            CharBase[4,i]:=ReadD(10); //z
            AddMob:=false;
          end;
        end;
        //иначе, перебираем базу, ищем свободную ячейку в ней и добавляем нового чара
        for i:=1 to max do begin
          if (CharBase[1,i]=0) and AddMob then begin
            //запоминаем моба в свободную ячейку
            CharBase[1,i]:=ReadD(18); //ObjectID
            CharBase[2,i]:=ReadD(2);  //x
            CharBase[3,i]:=ReadD(6);  //y
            CharBase[4,i]:=ReadD(10); //z
            NameChar:=ReadS(22);
            say('Приближается Игрок '+NameChar+'!!!');
            break;
          end;
        end;

        for i:=1 to max do begin
          //если нашли Чара в базе Мобов, то удаляем его
          if (MobBase[1,i]=ReadD(18)) then begin
            MobBase[1,i]:=0; //x
            MobBase[2,i]:=0; //x
            MobBase[3,i]:=0; //y
            MobBase[4,i]:=0; //z
            //Ext массив
            MobBaseExt[1,i]:=0; //x
            MobBaseExt[2,i]:=0; //x
            MobBaseExt[3,i]:=0; //y
            MobBaseExt[4,i]:=0; //z
            dec(colvomobs);
            say('Нашли Чара в базе Мобов, удаляем его'+' ColvoMobs='+inttostr(colvomobs));
          end;
        end;
      end;

      //****************************************************************************
      //MoveToLocation, коректируем координаты мобов в базе
      if FromServer and (ConnectName=Name) and (pck[1]=#$01) then begin
        AddMob:=true;
        //проверка, входит моб в радиус действия?
        tempX:=ReadD(6);  //x
        tempY:=ReadD(10); //y
        tempLenght:=sqrt((CentrKachXex-tempX)*(CentrKachXex-tempX)+(CentrKachYex-tempY)*(CentrKachYex-tempY));
        tempZ:=BotCoordZ-ReadD(14);
        if tempz<0 then tempZ:=tempz*(-1);
        if tempZ<=DeltaZ then begin
          if (int(tempLenght)<Radius) then begin
            //перебираем базу и ищем там моба, который бежит
            for i:=1 to max do begin
              //если нашли моба в базе, то коректируем его координаты на новые
              if (MobBase[1,i]=ReadD(2)) and (CharID<>ReadD(2)) and (PetID<>ReadD(2)) and (CharBase[1,i]<>ReadD(2)) then begin  //ObjectID
                MobBase[2,i]:=ReadD(6);  //x
                MobBase[3,i]:=ReadD(10); //y
                MobBase[4,i]:=ReadD(14); //z
                //Ext массив
                MobBaseExt[2,i]:=ReadD(6);  //x
                MobBaseExt[3,i]:=ReadD(10); //y
                MobBaseExt[4,i]:=ReadD(14); //z
                AddMob:=false;
              end;
            end;
            //иначе, перебираем базу, ищем свободную ячейку в ней и добавляем нового моба
            for i:=1 to max do begin
              if (MobBase[1,i]=0) and AddMob and (CharID<>ReadD(2)) and (PetID<>ReadD(2)) then begin
                //запоминаем моба в свободную ячейку
                MobBase[1,i]:=ReadD(2); //ObjectID
                MobBase[2,i]:=ReadD(6); //x
                MobBase[3,i]:=ReadD(10); //y
                MobBase[4,i]:=ReadD(14); //z
                //Ext массив
                MobBaseExt[1,i]:=ReadD(2); //ObjectID
                MobBaseExt[2,i]:=ReadD(6); //x
                MobBaseExt[3,i]:=ReadD(10); //y
                MobBaseExt[4,i]:=ReadD(14); //z
                inc(colvomobs);
                break;
              end;
            end;
          end;
        end;
      end;

      //****************************************************************************
      //MagicSkillUse 48, Attack 05
      if FromServer and (ConnectName=Name) and ((pck[1]=#$48) or (pck[1]=#$05)) then begin
        if UnderAttack then exit; //сначало убъем одного
        Attacker:=ReadD(2);
        ObjectID:=ReadD(6);
        if (Attacker<>ObjectID) and (CharID=ObjectID) then begin
          UnderAttack:=true;     //нас атакуют
          needbackup:=false;
          Say('Нас атакуют!');
          TargetAttacker(Attacker);
        end;
      end;

      //****************************************************************************
      //если принят пакет Die
      if FromServer and (ConnectName=Name) and (pck[1]=#$06) then begin
        //ищем моба в базе
        if (Attacker=ReadD(2)) then begin
          UnderAttack:=false; //убили атакующего моба
          timerA.enabled:=False;
        end;
        for i:=1 to max do begin
          //очишаем запись связанную с етим мобом
          if (MobBase[1,i]=ReadD(2)) then begin
            dec(colvomobs);
            MobBase[1,i]:=0; //ObjectID
            MobBase[2,i]:=0; //x
            MobBase[3,i]:=0; //y
            MobBase[4,i]:=0; //z
            //Ext массив
            MobBaseExt[1,i]:=0; //ObjectID
            MobBaseExt[2,i]:=0; //x
            MobBaseExt[3,i]:=0; //y
            MobBaseExt[4,i]:=0; //z
            break;
          end;
        end;
      end;

      //****************************************************************************
      //если принят пакет DeleteObject
      if FromServer and (ConnectName=Name) and (pck[1]=#$12) then begin
        //ищем моба в базе
        //say('DeleteObject');
        if (Attacker=ReadD(2)) then begin
          UnderAttack:=false; //убили атакующего моба
          timerA.enabled:=False;
        end;
        for i:=1 to max do begin
          //очишаем запись связанную с етим мобом
          if (MobBase[1,i]=ReadD(2)) then begin
            dec(colvomobs);
            MobBase[1,i]:=0; //ObjectID
            MobBase[2,i]:=0; //x
            MobBase[3,i]:=0; //y
            MobBase[4,i]:=0; //z
            //Ext массив
            MobBaseExt[1,i]:=0; //ObjectID
            MobBaseExt[2,i]:=0; //x
            MobBaseExt[3,i]:=0; //y
            MobBaseExt[4,i]:=0; //z
            break;
          end;
        end;
        for i:=1 to max do begin
          //если нашли в базе, то удаляем
          if (CharBase[1,i]=ReadD(2)) then begin
            CharBase[2,i]:=0; //x
            CharBase[3,i]:=0; //y
            CharBase[4,i]:=0; //z
          end;
        end;
      end;

      //****************************************************************************
      //ValidatePosition если принят пакет от клиента с моими кординатами то
      if FromClient and (ConnectName=Name) and (pck[1]=#$48) then begin
        //запоминаем мои координаты
        BotCoordX:=ReadD(2);
        BotCoordY:=ReadD(6);
        BotCoordZ:=ReadD(10);
        //ext
        BotCoordXext:=ReadD(2);
        BotCoordYext:=ReadD(6);
        BotCoordZext:=ReadD(10);
      end;

      //****************************************************************************
      //если от сервака принят пакет с ИД и Координатами членов пати то
      if FromServer and (ConnectName=Name) and (pck[1]=#$a7) then begin
          //запоминаем ИД командира
          CharID:=ReadD(6);
          if scrready then exit
          else begin
            Say('Скрипт готов к работе. Запомнил ИД лидера');
            scrready:=true;
          end;
      end;

      //****************************************************************************
      //если от сервака принят пакет с UserInfo
      if FromServer and (ConnectName=Name) and (pck[1]=#$04) then begin
          //Запоминаем собственный ИД
          CharID:=ReadD(18);
          if scrready then exit
          else begin
            Say('Скрипт готов к работе. Запомнил ИД лидера');
            scrready:=true;
          end;
      end;

      //****************************************************************************
      //если от сервака принят пакет с PetInfo
      if FromServer and (PetID=0) and (ConnectName=Name) and (pck[1]=#$b1) then PetID:=ReadD(6);

      //****************************************************************************
      //DropItem - выпала вещь
      if FromServer and (ConnectName=Name) and (pck[1]=#$0C) then begin
        //чужие вещи не берем
        if (Attacker=ReadD(2)) then begin
          timer1.enabled:=false; //выключаем бота
          AddMob:=true;
          //перебираем базу
          for i:=1 to max do begin
            //если нашли, то корректируем его координаты на новые
            if (ItemBase[1,i]=ReadD(6)) then begin  //ObjectID
              ItemBase[2,i]:=ReadD(14); //x
              ItemBase[3,i]:=ReadD(18); //y
              ItemBase[4,i]:=ReadD(22); //z
              AddMob:=false;
              inc(itm);
              NeedBackup:=true;
            end;
          end;
          //иначе, перебираем базу, ищем свободную ячейку в ней и добавляем
          for i:=1 to max do begin
            if (ItemBase[1,i]=0) then begin
              //запоминаем в свободную ячейку
              ItemBase[1,i]:=ReadD(6); //ObjectID
              ItemBase[2,i]:=ReadD(14); //x
              ItemBase[3,i]:=ReadD(18); //y
              ItemBase[4,i]:=ReadD(22); //z
              inc(itm);
              NeedBackup:=true;
              break;
            end;
          end;
        end;
        say('ColvoItm='+inttostr(itm));
      end;

      //****************************************************************************
      //каждые две сек подбираем предмет
      if Wait(time1,2) and NeedBackup and (underAttack=false) then ReqGetItem;

      //****************************************************************************
      //определяем реальность поднятия вещи
      //GetItem
      if FromServer and (ConnectName=Name) and (pck[1]=#$0D) then begin
        //перебираем базу
        for i:=1 to max do begin
          //если нашли, то обнуляем
          if (ItemBase[1,i]=ReadD(6)) then begin  //ObjectID
            ItemBase[1,i]:=0; //x
            ItemBase[2,i]:=0; //x
            ItemBase[3,i]:=0; //y
            ItemBase[4,i]:=0; //z
            dec(itm);
            //say('Удаляем данные по предмету');
          end;
        end;
        if itm=0 then begin
          needbackup:=false;
          timer1.enabled:=true;
        end;
        say('ColvoItm='+inttostr(itm));
      end;

      //******************************************************************************
      //StatusUpdate
      if FromServer and (ConnectName=Name) and (pck[1]=#$0E) and (Attacker=ReadD(2)) then StatusUpdate;

      //****************************************************************************
      if FromClient and (ConnectName=Name) and (pck[1]=#$1B) then begin
        SocialID:=ReadD(2);
        pck:='';
        case SocialID of
          //социальное действие Yes для начала
          6: begin
            //if CharID=0 then exit;
            CentrKachX:=BotCoordX;
            CentrKachY:=BotCoordY;
            CentrKachZ:=BotCoordZ;
            CentrKachXex:=BotCoordXext;
            CentrKachYex:=BotCoordYext;
            Say('Команда Старт!!!');
            say('Получили координаты центра');
            say('X='+inttostr(BotCoordX)+' Y='+inttostr(BotCoordY));
            timer1.enabled:=true;
            exit;
          end;
          //социальное действие No для окончания
          5: begin
            //if CharID=0 then exit;
            timer1.enabled:=false;
            timer2.enabled:=false;
            timerA.enabled:=False;
            underattack:=false;
            Say('Команда Стоп!!!');
            exit;
          end;
        end;
      end;
    end.
Добавлено спустя 3 минуты 34 секунды:
Re:
Цитата:
Сообщение от DashKAaa
Бегает,лечит,заливает, пьет цп,хп на ура, правда задержечка есть при цп...

скорей всего у тебя просто сервак левый особенно с таргетами и пропаданием суппорта за спиной)
Какие хроники?

Добавлено спустя 2 минуты 16 секунд:
Сервер довольно неплохой ПТС Ц4
Rubec вне форума   Ответить с цитированием
Старый 28.03.2008, 00:50   #318
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re:

Цитата:
Сообщение от Rubec
Цитата:
My name='NLObP"
Для мага - сложность в дистанционной атаке, очень большая сложность... для меня по крайней мере.
очень неплохо такая атака реализована в этом скрипте
А мне не очень нравится. Может отбежать не от моба, а мимо него на заданное расстояние.

Ещё. Воин по двойному клику начинает атаковать и можно забыть про него, а маг должен чередоваь магическую атаку и отслеживать сбой в атаке.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 28.03.2008, 16:38   #319
Новичок
 
Регистрация: 22.11.2007
Сообщений: 17
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Rubec
По умолчанию

Ворон для Ц 4 код на цп и хп пошин такой же будет ?

Добавлено спустя 3 минуты 58 секунд:
В принципе меня этот
Код:
//Бот_маг with 'Hachling of Star' by NLObP
    {
    Социальное действие YES включить
    Социальное действие NO выключить
скрипт вполне устраивает единственное что так это то что он застревает часто когда до цели не может добраться или выпавшая вещь где то где ее никак не взять он тупо будет все время пытаться ее поднять а как добавить допустим чтобы 5-6 раз попытался поднять и забыл потом про эту вещь или моба хз (( и еще когда его бафера бафают то он их за цель принимает )и заклинивается на них )
Rubec вне форума   Ответить с цитированием
Старый 29.03.2008, 04:26   #320
Пользователь
 
Аватар для APXAHGEJI
 
Регистрация: 08.03.2008
Сообщений: 77
Сказал Спасибо: 31
Имеет 19 спасибок в 15 сообщенях
APXAHGEJI
По умолчанию

Не видел исправленной записи ObjectID бутылок предложенной VORON'ом,
поэтому выкладываю исправленное мною.
Работатет под С4.
Код:
    //**************************************************************************
    //Записываем ObjectID некоторых банок
    if pck[1]=#$1B then
      for i:= 0 to round((length(pck)- 5)/28) do begin
        if (ReadH(i*28+4+8) = 5592) then begin //Greater CP Potion
          OidGCP:= ReadD(i*28+8);//ObjectID
          NGCP:= ReadH(i*28+4+4+8);//кол-во
        end;
        if (ReadH(i*28+4+8) = 1539) then begin //Greater Healing Potion
          OidGHP:= ReadD(i*28+8);//ObjectID
          NGHP:= ReadH(i*28+4+4+8);//кол-во
        end;
        if (ReadH(i*28+4+8) = 6036) then begin //Greater Magic Haste Potion
          OidGMG:= ReadD(i*28+8);//ObjectID
          NGMG:= ReadH(i*28+4+4+8);//кол-во
        end;
        if (ReadH(i*28+4+8) = 1374) then begin //Greater Haste Potion
          OidGHS:= ReadD(i*28+8);//ObjectID
          NGHS:= ReadH(i*28+4+4+8);//кол-во
        end;
        if (ReadH(i*28+4+8) = 1375) then begin //Greate Swift Attack Potion
          OidGSW:= ReadD(i*28+8);//ObjectID
          NGSW:= ReadH(i*28+4+4+8);//кол-во
        end;
      end;
    //**************************************************************************
APXAHGEJI вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг


Опции темы
Опции просмотра

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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!