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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 01.10.2011, 08:06   #31
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 82
Сказал Спасибо: 49
Имеет 5 спасибок в 4 сообщенях
semiromid пока неопределено
По умолчанию

Код:
const
 Name1='AntBuf'; 
var  
    mana1,mana2,mana3,info1,info2,info3,X1,y1,z1: integer;    
    Paname,mana: String;
    timer:TTimer;
    TimerStep:byte;
procedure Init; 
begin
    TimerStep:=1;
    timer:=TTimer.Create(nil);
    timer.OnTimer:=@OnTimer;
    timer.enabled:=false;
    timer.interval:=1000; //время задержки между отправкой пакетов.
end;

procedure Free;
begin
    timer.free;
end;

procedure OnTimer;
    begin
        case TimerStep of
        
        //////////////Таймер пока не используетсья в тест скрипте
            1: 
                begin  
                    timer.interval:=1000;          
                    buf:=Hstr('');
                    SendToServerEx(name1);
                    Inc(TimerStep);
                end;        
        
            2:                                      
                begin
                    timer.interval:=1000;         
                    buf:=Hstr('');
                    SendToServerEx(name1);
                    Inc(TimerStep);
                end;
            3: 
                begin 
                    timer.interval:=2000;
                    buf := HStr('');
                    SendToServerEx(name1);
                    Inc(TimerStep);               
                end;             
                
        end;
    end;


   
 begin  
   
 /////////////////////////////////////////Блок проверки количество сопартийцев PartySmallWindowAll


if FromServer and (pck[1] = #$4E) and (ConnectName=Name1) then   begin        //Пакет о информации о пати 
                
                mana1:= ReadD(14); //ОверОК
                mana2:= ReadD(88);
                mana3:= ReadD(166); 
if (ReadD(10)=3)  then         //Сколко человек в пати   
            buf:=Hstr('49 31 04 4B 04 3B 04 3E 04 20 00 32 00 2D 00 30 04 20 00 47 04 35 04 3B 04 3E 04 32 04 35 04 30 04 20 00 32 04 20 00 3F 04 30 04 42 04 38 04 20 00 20 00 2C 00 20 00 42 04 35 04 3F 04 35 04 40 04 4C 04 20 00 33 00 2D 00 38 04 20 00 3D 00 29 00 00 00 03 00 00 00');                                                            
            SendToServer;      

 end;

 
/////////////////////////////////////////////перехватываем пакет ЧарИнфо для каждого сопартийца отдельный   
    if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin              
 if    ReadD(18) = mana1  then        //Пакет от номера 1 СверяемПакет чар инфо с ObjectID от пакета  PartySmallWindowAll  
       buf:=hstr('49 4F 04 20 00 10 04 3D 04 42 04 11 04 30 04 44 04 00 00 03 00 00 00');                                                
       SendToServer;                              
     end;  
  

     if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin       
  if   ReadD(18) = mana2  then      //Пакет от номера 2 СверяемПакет чар инфо с ObjectID от пакета  PartySmallWindowAll       
       buf:=hstr('49 2F 04 20 00 21 04 4D 04 34 04 40 04 38 04 3A 04 00 00 03 00 00 00');            
       SendToServer;                      
     end; 
  
     if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin             
  if   ReadD(18) = mana3  then         //Пакет от номера 3 СверяемПакет чар инфо с ObjectID от пакета  PartySmallWindowAll    
       buf:=hstr('49 2F 04 20 00 1D 04 4D 04 3B 04 4F 04 00 00 03 00 00 00');                                                  
       SendToServer;                              
    end;   
end.
Странно как то пакеты отсылаються ..Вот в таком порядке

Пакет от номера 1 -- сразу 3-и шт
Пакет от номера 2 -- сразу 2-е шт
Пакет от номера 3 -- 1-а шт

Подскажите в чем косяк?



Странно я если добовляю сюда условие else , то пакеты идут по порядку .. 1.2.3 Тойсть как и должны идти .Но хочеться узнать саму суть .


Код:
/////////////////////////////////////////////перехватываем пакет ЧарИнфо для каждого сопартийца отдельный   
    if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin 
              
 if    ReadD(18) = mana1  then        //Пакет от номера 1 СверяемПакет чат инфо с ObjectID от пакета  PartySmallWindowAll  
       buf:=hstr('49 4F 04 20 00 10 04 3D 04 42 04 11 04 30 04 44 04 00 00 03 00 00 00')
       else
       buf:=hstr('');                                         
       SendToServer;                              
     end;  
  

     if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin 
       
  if   ReadD(18) = mana2  then      //Пакет от номера 2 СверяемПакет чат инфо с ObjectID от пакета  PartySmallWindowAll       
       buf:=hstr('49 2F 04 20 00 21 04 4D 04 34 04 40 04 38 04 3A 04 00 00 03 00 00 00')
       else
       buf:=hstr('');           
       SendToServer;                      
     end; 
  
     if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin 
             
  if   ReadD(18) = mana3  then         //Пакет от номера 3 СверяемПакет чат инфо с ObjectID от пакета  PartySmallWindowAll    
       buf:=hstr('49 2F 04 20 00 1D 04 4D 04 3B 04 4F 04 00 00 03 00 00 00') 
       else
       buf:=hstr('');                                                 
       SendToServer;                              
    end;

Последний раз редактировалось semiromid, 01.10.2011 в 08:19.
semiromid вне форума   Ответить с цитированием
Старый 01.10.2011, 14:46   #32
Местный
 
Аватар для Pinko
 
Регистрация: 31.05.2011
Сообщений: 130
Сказал Спасибо: 287
Имеет 23 спасибок в 22 сообщенях
Pinko пока неопределено
По умолчанию

if ( ReadD(18) = mana1 ) then
Pinko вне форума   Ответить с цитированием
За это сообщение Pinko нажился спасибкой от:
Старый 01.10.2011, 19:33   #33
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

semiromid, у тебя неправильно оформлен оператор IF.
Надо так:
delphi Код:
if    (ReadD(18) = mana1)  then begin        buf:=hstr('49 4F 04 20 00 10 04 3D 04 42 04 11 04 30 04 44 04 00 00 03 00 00 00')        SendToServer;                              end;

или так
delphi Код:
if    (ReadD(18) = mana1)  then begin        buf:=hstr('49 4F 04 20 00 10 04 3D 04 42 04 11 04 30 04 44 04 00 00 03 00 00 00')        SendToServer;                              end else begin        buf:=hstr('');                                                 SendToServer;                              end;
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 01.10.2011, 20:21   #34
Местный
 
Аватар для Pinko
 
Регистрация: 31.05.2011
Сообщений: 130
Сказал Спасибо: 287
Имеет 23 спасибок в 22 сообщенях
Pinko пока неопределено
По умолчанию

моно так . пример
Код:
 if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then  
      case pck[18] of
      mana1:begin      //Пакет от номера 1 СверяемПакет чат инфо c ObjectID от пакета  PartySmallWindowAll  
       buf:=hstr('49 4F 04 20 00 10 04 3D 04 42 04 11 04 30 04 44 04 00 00 03 00 00 00')
      SendToServer;                              
     end;  
  
    mana2:begin  //Пакет от номера 2 СверяемПакет чат инфо с ObjectID от пакета  PartySmallWindowAll       
       buf:=hstr('49 2F 04 20 00 21 04 4D 04 34 04 40 04 38 04 3A 04 00 00 03 00 00 00')       
       SendToServer;                      
     end; 
  
   mana3:begin //Пакет от номера 3 СверяемПакет чат инфо с ObjectID от пакета  PartySmallWindowAll    
       buf:=hstr('49 2F 04 20 00 1D 04 4D 04 3B 04 4F 04 00 00 03 00 00 00') 
      SendToServer;                              
    end;
Pinko вне форума   Ответить с цитированием
За это сообщение Pinko нажился спасибкой от:
Старый 01.10.2011, 21:09   #35
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 82
Сказал Спасибо: 49
Имеет 5 спасибок в 4 сообщенях
semiromid пока неопределено
По умолчанию

Цитата:
Сообщение от Nickers Посмотреть сообщение
semiromid, Вопрос хотяб задайте, как вам помочь?))

Добавлено через 30 секунд
delphi Код:
buf := buf + HStr('');
Не уверен, что это верно. То есть смысла не вижу.
Так нее.) Я написал решение )
semiromid вне форума   Ответить с цитированием
Старый 02.10.2011, 23:55   #36
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 82
Сказал Спасибо: 49
Имеет 5 спасибок в 4 сообщенях
semiromid пока неопределено
По умолчанию

Проверьте пожалуйста , правильно ли я все сконфигурировал.

Код:
 begin 
////////////////////////////////////////Блок проверки количество человек в пати 

if FromServer and (pck[1] = #$4E) and (ConnectName=Name) then   begin
                             //Блок перебора количества в пати человек
           if (ReadD(10)=2)  then      // в пати 2-а человека
begin
              buf:=Hstr('49 3F 04 30 04 42 04 38 04 20 00 37 00 00 00 03 00 00 00');
              SendToServer; 
end
     else  if (ReadD(10)=3)  then       // в пати 3-а человека
begin
              buf:=Hstr('49 3F 04 30 04 42 04 38 04 20 00 37 00 00 00 03 00 00 00');
              SendToServer;                             
end
     else  if (ReadD(10)=4)  then       // в пати 4-а человека
begin
              buf:=Hstr('49 3F 04 30 04 42 04 38 04 20 00 37 00 00 00 03 00 00 00');
              SendToServer;                              
end
     else  if (ReadD(10)=5)  then       // в пати 5-а человека
begin
              buf:=Hstr('49 3F 04 30 04 42 04 38 04 20 00 37 00 00 00 03 00 00 00');
              SendToServer;                              
end
     else  if (ReadD(10)=6)  then       // в пати 6-а человека
begin
              buf:=Hstr('49 12 04 20 00 3F 04 30 04 42 04 38 04 20 00 37 00 2D 00 3C 04 4C 04 20 00 47 04 35 04 3B 04 3E 04 32 04 35 04 3A 04 00 00 03 00 00 00');
              SendToServer;
              timer.enabled:=true;
              TimerStep:=13;                             
end; 
end;
semiromid вне форума   Ответить с цитированием
Старый 03.10.2011, 01:50   #37
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

semiromid, такое лучше через CASE делать
delphi Код:
if (ConnectName=Name) and FromServer and (pck[1] = #$4E) then   begin     case pck[10] of       #$2: begin               // в пати 2-а человека               ...               end;       #$3: begin               // в пати 3-и человека               ...               end;       #$4: begin               // в пати 4 человека               ...               end;       #$5: begin               // в пати 5 человек               ...               end;       #$6: begin               // в пати 6 человек               ...               end;     end; //case   end;
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 06.10.2011, 05:46   #38
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 82
Сказал Спасибо: 49
Имеет 5 спасибок в 4 сообщенях
semiromid пока неопределено
По умолчанию

Подскажите 2-е вещи.
1. Как в переменную добавить пакет?
2. Как большой скрипт разделить на несколько частей?Возможно спомощью #include ?

Последний раз редактировалось semiromid, 06.10.2011 в 06:37. Причина: Добавлено сообщение
semiromid вне форума   Ответить с цитированием
Старый 06.10.2011, 10:30   #39
Местный
 
Аватар для Pinko
 
Регистрация: 31.05.2011
Сообщений: 130
Сказал Спасибо: 287
Имеет 23 спасибок в 22 сообщенях
Pinko пока неопределено
По умолчанию

Цитата:
Сообщение от semiromid Посмотреть сообщение
Подскажите 2-е вещи.
1. Как в переменную добавить пакет?
2. Как большой скрипт разделить на несколько частей?Возможно спомощью #include ?
1 напиши пример куда и что добавить
2 зачем?
2 часть скрипта в плагин сделать
Pinko вне форума   Ответить с цитированием
За это сообщение Pinko нажился спасибкой от:
Старый 07.10.2011, 04:49   #40
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 82
Сказал Спасибо: 49
Имеет 5 спасибок в 4 сообщенях
semiromid пока неопределено
По умолчанию

Цитата:
Сообщение от Pinko Посмотреть сообщение
1 напиши пример куда и что добавить
2 зачем?
2 часть скрипта в плагин сделать



Вот например вот этот пакет нужно привязать к переменной

Код для примера .

Код:
var
  winn: byte;

procedure Init; 



 winn:='19 E0 D2 10 10 00 00 00 00';
2 зачем?
Была такая задумка , из-за того что ObjectID придмета при покупки меняеться , и нужно было постоянно переделывать ряд одинаковых пакетов . Но теперь я решил сделать подругому .
Вызываю перед включением пакет "Tип: 0x3D (RequestShortCutReg)" , считываю информацию данного придмета и записываю ее в отсылаемые пакеты .



2 часть скрипта в плагин сделать
Буду пробывать ) Спасибо .
Скрипт получился очень большой .Занято около 5-тыс строк (

Последний раз редактировалось semiromid, 07.10.2011 в 04:51.
semiromid вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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