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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 14.01.2008, 11:11   #151
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию Re:

Цитата:
Сообщение от keyn
Цитата:
Сообщение от mks
или еще проще добавь в этом месте
for t:=1 to PartyCount do
begin
if (CurHP[t]=MinHP) and (CurHP[t]<MaxHP[t]) then
begin
NeedHP:=t;
break;
end;
end;
Блин, запутался я в трех соснах, если делать таким макаром, то SE начинает хилять как только HP начинает уменьшаться, но как только HP достигает Максимума SE продолжает тупо хилять полностью здорового перса - два дня ковыряюсь немогу найти где косяк...
-) да да я с етим сталкивался.. хилы продолжаются даже если ХП- полное.. такое бывает когда таймер используеш для хила, в котором смутриш что если какаято переменная =TRUE то хилиш а FALSE= нехилиш.. поетому откажись от использования таймера для етой задачи.. хиль непосредственно в обработчике пакета из которого инфа про ХП и МП берется.. я пытался понять почему таймер некоректно так работает.. но так и непонял
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 14.01.2008, 11:36   #152
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию Re: ДА БУДЕТ БОТ!

не знаю че у вас за проблемы, но я пользуюсь этим скриптом, и все у меня нормально работает
__________________
FA©Q!
mks вне форума   Ответить с цитированием
Старый 14.01.2008, 23:05   #153
Новичок
 
Регистрация: 04.01.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
keyn
По умолчанию

Приду домой буду голову ломать дальше, потому что судя по коду все должно быть гладко...

Добавлено спустя 4 часа 54 минуты 50 секунд:
То ли с ума сошел я, - то ли мир вокруг меня глумится... Ковыряю сейчас скрипт msk на бота хилера...

Код:
Const
  HP=2000;
  BotName='Хилер';
  MasterName='Командос';
  Chaos=100;

  GreatHeal='2F C1 04 00 00 00 00 00 00 00';
  GroupHeal='2F C3 04 00 00 00 00 00 00 00';

var
   CharName: array[1..9] of string;
   CharID:   array[1..9] of integer;
   CurHP:    array[1..9] of integer;
   MaxHP:    array[1..9] of integer;
   CurMP:    array[1..9] of integer;
   MaxMP:    array[1..9] of integer;
   Dev:      array[1..9] of extended;
   xe, ye: extended;
   PartyCount,i,f,e,t,MinHP,NeedHP,ox,oy,oz,x,y,z,MasterID,BotID: integer;
   exist, HealKey, RunKey: boolean;

   TimerHP: TTimer;

procedure Init; //Aucuaaaony i?e aee??aiee ne?eioa
begin
  TimerHP:=TTimer.Create(nil);
  TimerHP.OnTimer:=@OnTimerHP;
  TimerHP.enabled:=true;
  TimerHP.interval:=1000;
end;

procedure Heal;
begin
    //target
    buf:=#$04;
    WriteD(CharID[NeedHP]);
    WriteD(ox);
    WriteD(oy);
    WriteD(oz);
    WriteC(0);
    SendToServerEx(BotName);
    //heal
    buf:=hstr(GreatHeal);
    SendToServerEx(BotName);
end;

procedure SendMsg(msg:string);
begin
buf:=#$4A;
WriteD(BotID);
WriteD(2);
WriteS(BotName);
WriteS(msg);
SendToClient;
end;

procedure Min(n1,n2:integer);
begin
if n1<n2 then MinHP:=n1 else MinHP:=n2;
end;

procedure OnTimerHP(Sender: TObject);
begin
  if PartyCount>0 then
  begin
    MinHP:=CurHP[1];
    for t:=1 to PartyCount do
    begin
        if CharName[t]=MasterName then MasterID:=CharID[t];
        if CharName[t]=BotName then BotID:=CharID[t];
        min(MinHP,CurHP[t]);
    end;
    for t:=1 to PartyCount do
    begin
        if (CurHP[t]=MinHP) and (CurHP[t]<MaxHP[t]) then
        begin
        NeedHP:=t;
        break;
        end;
    end;
    if (HealKey=true) and (MinHP<HP) then Heal;
  end;
end;

procedure Free; //Aucuaaaony i?e auee??aiee ne?eioa
begin
PartyCount:=0;
TimerHP.free;
HealKey:=false;
RunKey:=false;
end;

//iniiaiay ?anou ne?eioa
//aucuaaaony i?e i?eoiaa ea?aiai iaeaoa anee ne?eio aee??ai
begin

if FromServer and (pck[1]=#$52) then
  begin
    i:=6;
    for f:=1 to (PartyCount+1) do
        begin
             if CharID[f]=ReadD(2) then exist:=true else exist:=false;
             if exist=true then
             begin
                CharName[f]:=ReadS(i);
                i:=i+8;
                CurHP[f]:=ReadD(i);
                MaxHP[f]:=ReadD(i);
                CurMP[f]:=ReadD(i);
                MaxMP[f]:=ReadD(i);
                Dev[f]:=CurHP[f]/MaxHP[f];
                break;
             end;
        end;

        if exist=false then
                begin
                PartyCount:=PartyCount+1;
                f:=PartyCount;
                CharID[f]:=ReadD(2);
                CharName[f]:=ReadS(i);
                i:=i+8;
                CurHP[f]:=ReadD(i);
                MaxHP[f]:=ReadD(i);
                CurMP[f]:=ReadD(i);
                MaxMP[f]:=ReadD(i);
                Dev[f]:=CurHP[f]/MaxHP[f];
                end;
  end;


   if FromClient and (ConnectName=MasterName) and (RunKey=true) and (pck[1]=#$01) then
      begin
         xe:=ReadD(2)-Chaos/2+round(random*Chaos);
         ye:=ReadD(6)-Chaos/2+round(random*Chaos);

         x:=round(xe);
         y:=round(ye);
         z:=ReadD(10);

         buf:=#$01;
         WriteD(x);
         WriteD(y);
         WriteD(z);
         WriteD(ox);
         WriteD(oy);
         WriteD(oz);
         ox:=x;
         oy:=y;
         oz:=z;
         SendToServerEx(BotName);
      end;


   if FromClient and (ConnectName=BotName) and (pck[1]=#$01) then
      begin
         ox:=ReadD(2);
         oy:=ReadD(6);
         oz:=ReadD(10);
      end;


      //Heal mode
if FromClient and (ConnectName=MasterName) and (pck=hstr('1B 02 00 00 00')) then
begin
HealKey:=not(HealKey);
pck:='';
Case HealKey of
true: SendMsg('Heal mode ON');
false: SendMsg('Heal mode OFF');
end;
end;

//Run mode
if FromClient and (ConnectName=MasterName) and (pck=hstr('1B 03 00 00 00')) then
begin
RunKey:=not(RunKey);
pck:='';
Case RunKey of
true: SendMsg('Run mode ON');
false: SendMsg('Run mode OFF');
end;
end;

if FromClient and (pck=hstr('1B 04 00 00 00')) then
begin
     //target master
    buf:=#$04;
    WriteD(MasterID);
    WriteD(ox);
    WriteD(oy);
    WriteD(oz);
    WriteC(0);
  SendToServerEx(BotName);
  buf:=hstr('2F F5 03 00 00 00 00 00 00 00');
  SendToServerEx(BotName);
  pck:='';
end;
end.[/quote]
Короче вчера вот строго в этом виде все работало без мистики - с одним лиш косяком кторый заключался в том, что SE хилял безконечно после того, как опрделил что у одного из членов пати Текущее HP меньше чем максимальное.

Сейчас в этом же виде когда включаеш HEAL MODE - L2PacketHack вывливает коврик Variant or safe array index out of bounds :shock:
Ошибка исчезает если вернуть строку if (CurHP[t]=MinHP) and (CurHP[t]<MaxHP[t]) then к виду if CurHP[t]=MinHP then

Похоже крыша у меня поехала... тяжелых наркотиков не употреблял вроде на кануне. :unknown:
keyn вне форума   Ответить с цитированием
Старый 15.01.2008, 11:39   #154
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию Re: ДА БУДЕТ БОТ!

keyn обрати внимание, у меня в скрипте не учтен один момент: если один или несколько членов пати выходят из него, и ты пересоздаешь пати, или появляются новые члены, то ID старых членов пати остаются в массивах, т.е. таким образом если количество ID игроков побывавших в твоем пати превысит 9, то должна вылезти ошибка(массивы-то не динамические), и еще не пойму почему у тебя СЕ начинает бессприрывно хилять после того как заметит что хп члена меньше заданного минимума - после хила приходит пакет что хп члена пати увеличилось, все заносится в массив, и если хп больше минимума СЕ должен перестать хил, у меня-то все работает....
__________________
FA©Q!
mks вне форума   Ответить с цитированием
Старый 15.01.2008, 15:41   #155
Новичок
 
Регистрация: 04.01.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
keyn
По умолчанию

mks, У меня в пати всего 3 чара было, на них тестировал, сейчас буду скрипт с нуля писать, по аналогии с твоим, думаю по шагам разберусь - у меня соображалка так устроена, пока по своему не сделаю хрен разберусь в чужих трудах.
keyn вне форума   Ответить с цитированием
Старый 15.01.2008, 16:24   #156
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию Re:

Цитата:
Сообщение от keyn
mks, У меня в пати всего 3 чара было, на них тестировал, сейчас буду скрипт с нуля писать, по аналогии с твоим, думаю по шагам разберусь - у меня соображалка так устроена, пока по своему не сделаю хрен разберусь в чужих трудах.
дерзай, потом скажешь че вышло
__________________
FA©Q!
mks вне форума   Ответить с цитированием
Старый 15.01.2008, 21:43   #157
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

ых, скучаю по етому топу-)) но пока я не разберусь с "ДЕШИРИРУЕМ ТРАФИК" мне тут ловить нечего-))
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 15.01.2008, 23:10   #158
Новичок
 
Регистрация: 04.01.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
keyn
По умолчанию

mks, Кажется допетрил я в чем дело - перехватил пакет UserInfo и проанализировав его пришел к выводу, что там идет смещение - получается что MaxHP находится на месте CurrentHP - CurrentHP находится на месте MaxMP - отсюда скрипт неправильно вырывает значения и получаются такие глюки. Сейчас препешу определение характеристик конкретно под вид этого пакета - Похоже Админы сервера на ктором я это все тестил - намудрили такой вот капкан. А может Интерлюдия так работает - ХЗ
keyn вне форума   Ответить с цитированием
Старый 16.01.2008, 00:00   #159
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

2keyn возможно причина в следующем:
В пакете ЮзерИнфо длина ника и/или длина титула - строковый параметр, может быть разной длины - отсюда и смещение.

Добавлено спустя 1 минуту 13 секунд:
Цитата:
Сообщение от keyn
то ли мир вокруг меня глумится
Цитата:
Сообщение от keyn
тяжелых наркотиков не употреблял вроде на кануне.
Жжошь :ROFL:
QaK вне форума   Ответить с цитированием
Старый 16.01.2008, 00:14   #160
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

KEYN, етот вопрос вроде негде не поднимался но я при переходе с ц4 на интерлюд тоже с етим стокнулся... на несколько байт сдвинуто ХП и МП.. -)) жэлаю удачи-))
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Ответ

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


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

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

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


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

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

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