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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 16.04.2009, 12:56   #21
Пользователь
 
Регистрация: 11.04.2009
Адрес: lameriy
Сообщений: 34
Сказал Спасибо: 9
Имеет 1 спасибку в 1 сообщении
lamer пока неопределено
По умолчанию

я так и думал..
lamer вне форума   Ответить с цитированием
Старый 16.04.2009, 13:03   #22
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от lamer Посмотреть сообщение
Подитожим.
Вероятнее всего нужно добавить есчё чтото чтоб бд за вами бежал, так как он только берёт в таргет. а не бежит за вами
В клиенте надо два раза кликнуть на чара, чтобы бежать за ним. В скрипте также надо послать два раза таргет от чара, на того, за которым надо бежать.

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


NLObP вне форума   Ответить с цитированием
Старый 16.04.2009, 15:10   #23
Местный
 
Аватар для PanAm
 
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
PanAm
По умолчанию

в принципе, можно в процедуре createskillbase отсеить пассивы.
Примерно так
нет возможности проверить работоспособность процедуры, может что намудрил со смещениями
delphi Код:
procedure createskillbase; var  i, j,SkillCount: integer; begin   for i:=1 to 200 do begin     skillbase[i,1]:=0;     skillbase[i,2]:=0;   end;   J:=2;   listbox1.items.Clear;   SkillCount := ReadD(J);   for i:=1 to SkillCount do     if ReadD(j)=0 then begin       skillbase[i,1]:=ReadD(j);       skillbase[i,2]:=ReadD(j);       inc(j);       listbox1.items.Add('ID:'+inttostr(skillbase[i,2])+'   '+SkillsName.Values[IntToStr(skillbase[i,2])]+'  LVL:'+inttostr(skillbase[i,1]));     end else       J := J+9;   if SkillCount>0 then skillhave:=true; end;

Последний раз редактировалось PanAm, 16.04.2009 в 15:20. Причина: Добавлено сообщение
PanAm вне форума   Ответить с цитированием
Старый 16.04.2009, 19:18   #24
Пользователь
 
Регистрация: 11.04.2009
Адрес: lameriy
Сообщений: 34
Сказал Спасибо: 9
Имеет 1 спасибку в 1 сообщении
lamer пока неопределено
По умолчанию

Цитата:
Сообщение от NLObP Посмотреть сообщение
В клиенте надо два раза кликнуть на чара, чтобы бежать за ним. В скрипте также надо послать два раза таргет от чара, на того, за которым надо бежать.
Угу, ток я не програмайзер и переделывал пакеты в игре, заходил чаром и юзал чтоб ИД узнать, терь надо перепроверить. Кстати спс за разьяснение с Т0 и Т1. Правда там пару пакетов не нашёл перехода, но эт не в этой теме.
Перепроверю отредактированные пакеты и выложу скрипт целиком, как обещал..)

Добавлено через 1 час 29 минут
Код:
{
AutoBD_SVS by Ad
Принимает пати танцует или поет, и следует по необходимости!
Для того чтобы нормально следовал за целью, нужно основным чаром что нибудь в чат написать, чтобы запомнился айди.

name- ник БД или СВСа
name2- ник того перса который будет кидать пати и за кем будет следовать БД или СВС.

Запускать скрипт ТОЛЬКО ПОСЛЕ того как БД или СВС уже вошел в игру.
}

Const 
  name2='---';
  name='---';
  
  //ID пакетов
  //От клиента
  ACTION_ID = #$1F;
  REQUESTITEMLIST_ID = #$14;
  REQUESTANSWERJOINPARTY_ID = #$43;
  REQUESTWITHDRAWALPARTY_ID = #$44;
  REQUESTMAGICSKILLUSE_ID = #$39;
  REQUESTSOCIALACTION_ID = #$34;
  REQUESTSSKILLLIST_ID = #$50;
  //от сервера
  USERINFO_ID = #$32;
  ASKJOINPARTY_ID = #$39;  
  SAY2_ID = #$4A;
  SKILLLIST_ID = #$5F;
  MAGICSKILLLAUNCHED_ID = #$54;
  
  
Var
  Msg : TMemo;
  FormMain : TForm; //Создаваемая форма
  useskill: TTimer;
  skills:string;
  skillid,skillidold:integer;
  party_have,iswork,skillhave:boolean;
  skillbase: array[1..200,1..2] of integer;
  SkillsName : TStringList;
  listbox1,listbox2: TListBox;
  GB1: TGroupBox;
  Button1,Button2,Button3,Button4: TButton;
  Lb1,Lb2: Tlabel;
  cb3:tcheckbox;
  myOID,myX,myY,myZ: integer;       
  targetOID:integer;

function Create_FormMain : TForm;
Var
  Yes : boolean;
begin
  Yes := FALSE;
  Result := TForm.Create(nil);

  Result.Caption     := 'AutoBD v.0.0.1';
  Result.Left        := 397;
  Result.Top         := 233;
  Result.Width       := 450;
  Result.Height      := 650;
  Result.FormStyle   := fsNormal;
  Result.Position    := poDesigned;
  Result.BorderStyle := bsSizeable;
  Result.BorderWidth := 0;
  Result.WindowState := wsNormal;
  Result.Color       := clBtnFace;
  Result.Font.Name   := 'Tahoma';
  Result.Font.Size   := 8;
  Result.Font.Color  := clWindowText;
  Result.Font.CharSet:= 1;
  Result.OnClose := @FormClose;

  Msg := TMemo.Create(Result);
  Msg.Parent := Result;
  Msg.Left    := 0;
  Msg.Top     := 400;
  Msg.Width   := 200;
  Msg.Height  := 200;
  Msg.Visible := TRUE;
  Msg.Tag     := 0;
  Msg.Enabled  := TRUE;
  Msg.Hint     := '';
  Msg.ShowHint := FALSE;
  Msg.Font.Name  := 'Tahoma';
  Msg.Font.Size  := 8;
  Msg.Font.Color := clWindowText;
  Msg.Color         := clWindow;
  Msg.TabOrder      := 2;
  Msg.TabStop       := TRUE;
  Msg.Align         := alBottom;
  Msg.WordWrap      := TRUE;
  Msg.Alignment     := taLeftJustify;
  Msg.WantTabs      := FALSE;
  Msg.WantReturns   := TRUE;
  Msg.HideSelection := TRUE;
  Msg.MaxLength     := 0;
  Msg.OEMConvert    := FALSE;
  Msg.ReadOnly      := FALSE;
  Msg.ScrollBars    := ssNone;

  GB1 := TGroupBox.Create(Result);
  GB1.Parent := result;
  GB1.Align         := alRight;
  GB1.Left    := 1;
  GB1.Top     := 2;
  GB1.Width   := 100;
  GB1.Height  := 95;
  GB1.Visible := TRUE;
  GB1.Tag     := 0;
  GB1.Enabled  := TRUE;
  GB1.Hint     := '';
  GB1.ShowHint := FALSE;
  GB1.Caption    := 'НЕПРИНИМАЕТ ПАТИ';
  GB1.Align      := alTOP;
  GB1.Color      := clBtnFace;
  GB1.Font.Name  := 'Tahoma';
  GB1.Font.Size  := 8;
  GB1.Font.Color := clWindowText;
  GB1.Font.CharSet := 1;
  GB1.TabOrder     := 3;
  GB1.TabStop      := FALSE;

  listbox1 := Tlistbox.Create(Result);
  listbox1.Parent := Result;
  listbox1.Left    := 0;
  listbox1.Top     := 100;
  listbox1.Width   := 180;
  listbox1.Height  := 200;
  listbox1.Visible := TRUE;
  listbox1.Tag     := 0;
  listbox1.Enabled  := TRUE;
  listbox1.Hint     := '';
  listbox1.ShowHint := FALSE;
  listbox1.Font.Name  := 'Tahoma';
  listbox1.Font.Size  := 8;
  listbox1.Font.Color := clWindowText;
  listbox1.Color         := clWindow;
  listbox1.TabOrder      := 2;
  listbox1.TabStop       := TRUE;
  listbox1.Align         := alLeft;
  listbox1.OnDblClick :=@button3click;

  listbox2 := Tlistbox.Create(Result);
  listbox2.Parent := Result;
  listbox2.Left    := 0;
  listbox2.Top     := 100;
  listbox2.Width   := 180;
  listbox2.Height  := 200;
  listbox2.Visible := TRUE;
  listbox2.Tag     := 0;
  listbox2.Enabled  := TRUE;
  listbox2.Hint     := '';
  listbox2.ShowHint := FALSE;
  listbox2.Font.Name  := 'Tahoma';
  listbox2.Font.Size  := 8;
  listbox2.Font.Color := clWindowText;
  listbox2.Color         := clWindow;
  listbox2.TabOrder      := 2;
  listbox2.TabStop       := TRUE;
  listbox2.Align         := alRight;
  listbox2.OnDblClick :=@button4click;

  Button1 := TButton.Create(Result);
  Button1.Parent := gb1;
  Button1.Left    := 10;
  Button1.Top     := 30;
  Button1.Width   := 75;
  Button1.Height  := 25;
  Button1.Visible := TRUE;
  Button1.Tag     := 0;
  Button1.Enabled  := true;
  Button1.Hint     := '';
  Button1.ShowHint := FALSE;
  Button1.Caption    := 'Вкл';
  Button1.Font.Name  := 'Tahoma';
  Button1.Font.Size  := 8;
  Button1.Font.Color := clWindowText;
  Button1.Font.CharSet := 1;
  Button1.TabOrder     := 1;
  Button1.TabStop      := TRUE;
  Button1.Cancel       := FALSE;
  Button1.ModalResult  := 0;
  Button1.OnClick     := @Button1click;

  Button2 := TButton.Create(Result);
  Button2.Parent := gb1;
  Button2.Left    := 100;
  Button2.Top     := 30;
  Button2.Width   := 75;
  Button2.Height  := 25;
  Button2.Visible := TRUE;
  Button2.Tag     := 0;
  Button2.Enabled  := true;
  Button2.Hint     := '';
  Button2.ShowHint := FALSE;
  Button2.Caption    := 'Выкл';
  Button2.Font.Name  := 'Tahoma';
  Button2.Font.Size  := 8;
  Button2.Font.Color := clWindowText;
  Button2.Font.CharSet := 1;
  Button2.TabOrder     := 1;
  Button2.TabStop      := TRUE;
  Button2.Cancel       := FALSE;
  Button2.ModalResult  := 0;
  Button2.OnClick     := @Button2click;

  Button3 := TButton.Create(Result);
  Button3.Parent := result;
  Button3.Left    := 200;
  Button3.Top     := 140;
  Button3.Width   := 40;
  Button3.Height  := 25;
  Button3.Visible := TRUE;
  Button3.Tag     := 0;
  Button3.Enabled  := True;
  Button3.Hint     := '';
  Button3.ShowHint := FALSE;
  Button3.Caption    := '>>>>';
  Button3.Font.Name  := 'Tahoma';
  Button3.Font.Size  := 8;
  Button3.Font.Color := clWindowText;
  Button3.Font.CharSet := 1;
  Button3.TabOrder     := 1;
  Button3.TabStop      := TRUE;
  Button3.Cancel       := FALSE;
  Button3.ModalResult  := 0;
  Button3.OnClick     := @button3click;

  Button4 := TButton.Create(Result);
  Button4.Parent := result;
  Button4.Left    := 200;
  Button4.Top     := 220;
  Button4.Width   := 40;
  Button4.Height  := 25;
  Button4.Visible := TRUE;
  Button4.Tag     := 0;
  Button4.Enabled  := True;
  Button4.Hint     := '';
  Button4.ShowHint := FALSE;
  Button4.Caption    := '<<<<';
  Button4.Font.Name  := 'Tahoma';
  Button4.Font.Size  := 8;
  Button4.Font.Color := clWindowText;
  Button4.Font.CharSet := 1;
  Button4.TabOrder     := 1;
  Button4.TabStop      := TRUE;
  Button4.Cancel       := FALSE;
  Button4.ModalResult  := 0;
  Button4.OnClick     := @button4click;

  Lb1:= Tlabel.Create(result);
  Lb1.Parent := GB1;
  Lb1.Left    := 140;
  Lb1.Top     := 30+200;
  Lb1.Align         := alLeft;
  Lb1.Layout     := tlBottom;
  Lb1.Visible := TRUE;
  Lb1.Tag     := 0;
  Lb1.Enabled  := TRUE;
  Lb1.Hint     := '';
  Lb1.ShowHint := FALSE;
  Lb1.Caption    := 'Все Скилы';
  Lb1.Font.Name  := 'Tahoma';
  Lb1.Font.Size  := 10;
  Lb1.Font.Color := clWindowText;
  Lb1.Font.CharSet := 1;

  Lb2:= Tlabel.Create(result);
  Lb2.Parent := GB1;
  Lb2.Left    := 140;
  Lb2.Top     := 30+200;
  Lb2.Align         := alRight;
  Lb2.Layout     := tlBottom;
  Lb2.Visible := TRUE;
  Lb2.Tag     := 0;
  Lb2.Enabled  := TRUE;
  Lb2.Hint     := '';
  Lb2.ShowHint := FALSE;
  Lb2.Caption    := 'Те которые использовать';
  Lb2.Font.Name  := 'Tahoma';
  Lb2.Font.Size  := 10;
  Lb2.Font.Color := clWindowText;
  Lb2.Font.CharSet := 1;

  cb3:= TCheckbox.Create(result);
  cb3.Parent := GB1;
  cb3.Left    := 220;
  cb3.Top     := 60;
  cb3.Width   := 220;
  cb3.Checked := TRUE;
  cb3.Visible := TRUE;
  cb3.Tag     := 0;
  cb3.Enabled  := TRUE;
  cb3.Hint     := '';
  cb3.ShowHint := FALSE;
  cb3.Caption    := 'Следовать послы выхода из пати';
  cb3.Font.Name  := 'Tahoma';
  cb3.Font.Size  := 10;
  cb3.Font.Color := clWindowText;
  cb3.Font.CharSet := 1;

  Yes := TRUE;

  Result.Show;
  msg.Lines.Add(timetostr(now)+': '+'Autodance, by Ad');
  msg.Lines.Add(timetostr(now)+': '+'Работаем с чаром: '+Name);

end;

procedure button1click(Sender: TButton);
begin
  iswork:=true;
  GB1.Caption    := 'ПРИНИМАЕТ ПАТИ';
end;

procedure button2click(Sender: TButton);
begin
  iswork:=false;
  GB1.Caption    := 'НЕПРИНИМАЕТ ПАТИ';
end;

procedure perreshet;
var i:integer;
str:string;
begin
 str:='';
 for i:=1 to ListBox2.items.Count do
     begin
     str:=str+Copy(ListBox2.Items.Strings[i-1],1+pos(':',ListBox2.Items.Strings[i-1]),pos(' ',ListBox2.Items.Strings[i-1])-4)+':';
     end;
 skills:=str;
end;

procedure button3click(Sender: TButton);
var m:integer;
begin

if ListBox1.Items.Count>0 then
   begin
   m:=ListBox1.ItemIndex;
   if (ListBox1.Items.Count=1) then m:=0
   else
   if m=ListBox1.Items.Count-1 then dec(m);

   ListBox2.Items.Add(ListBox1.Items.Strings[ListBox1.ItemIndex]);
   ListBox1.Items.Delete(ListBox1.ItemIndex);
   ListBox1.ItemIndex:=m;
   perreshet;
   end;

end;

procedure Button4Click(Sender: TObject);
var m:integer;
begin

if ListBox2.Items.Count>0 then
   begin
   m:=ListBox2.ItemIndex;
   if (ListBox2.Items.Count=1) then m:=0
   else
   if m=ListBox2.Items.Count-1 then dec(m);

   ListBox1.Items.Add(ListBox2.Items.Strings[ListBox2.ItemIndex]);
   ListBox2.Items.Delete(ListBox2.ItemIndex);
   ListBox2.ItemIndex:=m;
   perreshet;
end;

end;

procedure FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caNone;
end;

procedure Free_FormMain;
begin
  TRY
    if FormMain<>NIL then begin
       FormMain.Free;
       FormMain:=NIL;
    end;
  FINALLY
  END;
end; 

procedure SendMesg(msg:string);  //отправка сообщений клиенту
begin
 buf:=SAY2_ID;
  WriteD(0);
  WriteD(2);
  WriteS('->БОГ');
  WriteS(msg);
  SendToClientEx(Name);
end;

procedure Init; //Вызывается при включении скрипта
begin

 skillsName:=TStringList.Create;
try
  skillsName.LoadFromFile('.\SkillsID.ini');
  except
    msg.Lines.Add('itemsid.ini не найден!');
    exit;
  end;

skillid:=0;
iswork:=false;
useskill:=TTimer.Create(nil);
useskill.OnTimer:=@timerskill;
useskill.interval:=200; //время задержки
useskill.enabled:=true;
skillhave:=false;
party_have:=false;
FormMain:=Create_FormMain;
buf:=REQUESTSSKILLLIST_ID;
SendToServerEx(name);

buf:=REQUESTITEMLIST_ID;
SendToServerEx(name);

end;

procedure timerskill;
begin
if skillid<>0 then
 begin
   msg.lines.add('Юзаю скилл');
   MagicSkillUse(skillid);
   skillidold:=skillID;
   skillID:=0;
 end;

end;

procedure Free; //Вызывается при выключении скрипта
begin
 useskill.free;
 Free_FormMain;
end;

procedure UserInfo; //обновление данных о себе
var
  i:word;
begin
  MyOID:=ReadD(18);
  MyX:=ReadD(2);
  MyY:=ReadD(6);
  MyZ:=ReadD(10);
end;

procedure MagicSkillUse(MagicID:integer);
begin
  buf:=REQUESTMAGICSKILLUSE_ID;
  WriteD(MagicID);
  WriteD(00);
  WriteC(00);
  SendToServerEx(Name);
end;

procedure createskillbase;
var
 i, j,n: integer;
begin
  for i:=1 to 200 do begin
    skillbase[i,1]:=0;
    skillbase[i,2]:=0;
  end;
  n:=0;
  J:=10;
  listbox1.items.Clear;
  for I:=1 to 200 do begin
    skillbase[i,1]:=ReadD(j);
    skillbase[i,2]:=ReadD(j);
    if skillbase[i,2]=0 then break;
    j:=j+5;
    inc(n);
    listbox1.items.Add('ID:'+inttostr(skillbase[i,2])+'   '+SkillsName.Values[IntToStr(skillbase[i,2])]+'  LVL:'+inttostr(skillbase[i,1]));
  end;
  if N>0 then skillhave:=true;
end;

procedure Target(Attacker: Integer);
begin
  buf:=ACTION_ID;
  WriteD(Attacker);
  WriteD(MyX);
  WriteD(MyY);
  WriteD(MyZ);
  WriteC(00);
  SendToServerEx(Name);
end;

procedure TargetAttacker(Attacker: Integer);
begin
  if Attacker<>0 then begin
    msg.Lines.Add('Attacker='+IntToStr(Attacker)+' Player='+IntToStr(MyOID));
    Target(Attacker);
    delay(800);
    Target(Attacker);
    delay(800);
  end;
end;
        
procedure buffok;
begin
  if ReadD(6)=skillIDold then begin
    msg.lines.add('Прописываем следующий скилл');
    if Length(skills)>0 then begin
      skillID:=strtoint(Copy(Skills,1,pos(':',Skills)-1));
      delete(Skills,1,pos(':',Skills));
    end else
      if  party_have=true then begin
        msg.lines.add('Cледуем за '+name2);
        if cb3.Checked=true then
          TargetAttacker(targetOID);
        msg.lines.add('Разрываем пати');
        delay(200);
        buf:=REQUESTWITHDRAWALPARTY_ID;
        SendToServerEx(name);
        party_have:=false;
      end;
  end;
end;

var
  temp : String;

begin
  if pck='' then exit;
  if (ConnectName=Name) and FromClient then
    case pck[1] of
    REQUESTSOCIALACTION_ID:
        case ReadD(2) of
          //социальное действие Yes для старта
          6: begin
             iswork:=true;
             GB1.Caption:= 'ПРИНИМАЕТ ПАТИ';
             end;
          //социальное действие No для остановки
           5: begin
              iswork:=false;
              GB1.Caption:= 'НЕПРИНИМАЕТ ПАТИ';
              end;
        end;
    end;

if (ConnectName=Name) and FromServer then
begin
         case pck[1] of
         ASKJOINPARTY_ID: if iswork then
              begin
                temp:=ReadS(2);
                if temp=name2 then
                  begin
                  perreshet;
                  Delay(100);
                  buf:=REQUESTANSWERJOINPARTY_ID+#$01#$00#$00#$00;
                  SendToServerEx(name);
                  msg.Lines.Add('Принимаю пати');
                  party_have:=true;
                  Delay(200);
                  if Length(skills)>0 then
                    begin
                    msg.Lines.Add('Прописываю скилл');
                    skillID:=strtoint(Copy(Skills,1,pos(':',Skills)-1));
                    delete(Skills,1,pos(':',Skills));
                    end;
                  pck:='';
                  end else msg.Lines.Add('Проигнорирован запрос пати от: '+temp);
              end;

         MAGICSKILLLAUNCHED_ID:  begin
                if (MyOID=ReadD(2)) then buffok;
                end;
         USERINFO_ID:  begin //пакет с инфой о моём чаре
                UserInfo;
                end;
         SAY2_ID:  begin //пакет с инфой о моём чаре
                 if ReadS(10)=name2 then
                     begin
                     TargetOID:=ReadD(2);
                     msg.lines.add('Нашли цель следовния: '+inttostr(TARGETOID));
                     end;
                 end;
         SKILLLIST_ID:  begin
                if skillhave=false then createskillbase;
                end;
           end;
end;

end.
Проверил, всё верно переделал, такчто как обещал вылаживаю под ХБ. Спасибо автору за данный скрипт.
Вот если кто доделает следование за командиром, буду благодарен.

Последний раз редактировалось lamer, 16.04.2009 в 19:18. Причина: Добавлено сообщение
lamer вне форума   Ответить с цитированием
Старый 16.04.2009, 20:00   #25
Новичок
 
Регистрация: 06.02.2009
Сообщений: 13
Сказал Спасибо: 3
Имеет 15 спасибок в 6 сообщенях
AD! пока неопределено
По умолчанию

Скрипт доделан и обновлен в 1м посте, по идее должен следовать))
AD! вне форума   Ответить с цитированием
Старый 11.05.2009, 05:00   #26
Новичок
 
Регистрация: 15.04.2009
Сообщений: 10
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Pat пока неопределено
По умолчанию

Уже неделю бьюсь с настройкой скрипта на варлока. Суть понимаю, скилы не чара а сумона и соответственно надо знать информацию PetInfo и еще наверно что то. Подскажите хотя бы намеками в каком направлении надо решать проблему. И еще не могу разобраться с переменными i, n и J , с теми что стоят в скрипте для СвС и БД скилы из \SkillsID.ini какие то левые выбираются, приходится в строке listbox1.items.Add('ID:'+inttostr(skillbase[i,2])+' '+SkillsName.Values[IntToStr(skillbase[i,2])]+' LVL:'+inttostr(skillbase[i,1])); прописывать вручную нужные ID
Pat вне форума   Ответить с цитированием
Старый 11.05.2009, 17:40   #27
Новичок
 
Регистрация: 06.02.2009
Сообщений: 13
Сказал Спасибо: 3
Имеет 15 спасибок в 6 сообщенях
AD! пока неопределено
По умолчанию

Айди этих скилов в пакетах не идут, их клиент знает, поэтому становится непонятно от чего отталкиваться, ведь вручную сопоставлять какой скилл какому пету принадлежит не очень охота.

п.с. может я плохо искал )) может и идут
AD! вне форума   Ответить с цитированием
Старый 12.05.2009, 12:44   #28
Новичок
 
Регистрация: 15.04.2009
Сообщений: 10
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Pat пока неопределено
По умолчанию

Id петов известны их пакетхак отлавливает, пробелемма в другом-кастует скилы сумон а не чар и в данном скрипте каст начинается с принятия пати чаром а сумон не знает об этом

Добавлено через 6 часов 14 минут
А может пойти другим путем? На панели,например, F12 поставить нужный скил и исправить кусок скрипта по типу
procedure MagicSkillUse(ActionID:integer);
begin
buf:=#$45;
WriteD(ActionID);
WriteD(00);
WriteC(00);
SendToServerEx(Name);
и в строке
listbox1.items.Add('ID:'+inttostr(skillbase[i,2])+' '+SkillsName.Values[IntToStr(skillbase[i,2])]+' LVL:'+inttostr(skillbase[i,1]));
поставить ID нажатия клавиши F12?
Если не правильно может поправят знающие

Последний раз редактировалось Pat, 12.05.2009 в 12:44. Причина: Добавлено сообщение
Pat вне форума   Ответить с цитированием
Старый 12.05.2009, 12:53   #29
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Pat, панелька - это GUI, пакетами ф11 не нажмешь.
QaK вне форума   Ответить с цитированием
Старый 12.05.2009, 20:35   #30
Новичок
 
Регистрация: 15.04.2009
Сообщений: 10
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Pat пока неопределено
По умолчанию

Вобщем опробовал я дома замену 2F на 45 вместо скилов поставил действие
delphi Код:
procedure MagicSkillUse(MagicID:integer); begin   buf:=#$45;   WriteD(MagicID);   WriteD(00);   WriteC(00);   SendToServerEx(Name); procedure createskillbase; var  i, j, n: integer; begin for i:=1 to 200 do     begin     skillbase[i,1]:=0;     skillbase[i,2]:=0;     end;  n:=0;  J:=10;  listbox1.items.Clear; for I:=1 to 200 do     begin     skillbase[i,1]:=ReadD(j);     skillbase[i,2]:=ReadD(j);     if skillbase[i,2]=0 then break;     j:=j+5;     inc(n);     listbox1.items.Add('ID:'+inttostr(1007)+'   '+SkillsName.Values[IntToStr(1007)]);     end; if N>0 then skillhave:=true; end;
пати принимает скил самона кидает, но из пати не выходит, правлю интуитивно скрипт, но чувствую с дельфи и паскалем начну знакомится

Последний раз редактировалось QaK, 13.05.2009 в 09:12. Причина: юзай теги для оформления кода
Pat вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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