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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 14.01.2008, 15:41   #21
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от SWS
Delphi я щас юзаю 7 и компоненты не ставил таких как JEDI
Я ставил - все норм ставится и Jedi И FastScript, только в 7й дельфе нет компонента TTrayIcon.
QaK вне форума   Ответить с цитированием
Старый 14.01.2008, 17:19   #22
Гость
 
Сообщений: n/a
По умолчанию Re:

Цитата:
Сообщение от skymanrus
действительно те длл которые я пытался запустить в пакетхаке прекрасно работают в WP PPC
а я так с ними мучился... :(

но меня все же удивляет и поражает что виндузовые библиотеки User32.dll и GDI32.dll все же пашут в пакет хаке :shock: :shock:
значит если как то все же изловчиться можно подобную библиотеку под пакетхак написать
жалко что исходники этих библиотек недостанеш нигде :(

может у кого то все же есть какие то дллки с исходным кодом которые в пакет хаке пашут?
Пакетхак написан очень не грамотно, в нем есть ошибки, для исправления которых придется переписывать 70% пакетхака. И эти ошибки критичны, поэтому постоянно вылетают ошибки приложения.
Неправильный вызов ф-ций DLL это только цветочки, например класс TTimer всегда используется не корректно, так как он использует очередь сообщений главного окна, а в пакетхаке вообще нету правильной синхронизации основного потока и его очередей с потоками скриптов в случае использования Visual Component Library. Подобных ляпов в программе много, исправлять нет смысла, только если полность писать новый продукт.
  Ответить с цитированием
Старый 14.01.2008, 17:23   #23
Новичок
 
Регистрация: 15.11.2007
Сообщений: 19
Сказал Спасибо: 0
Имеет 1 спасибку в 1 сообщении
SWS
По умолчанию

Гость, Пределагаешь юзать WP PPC ?) Вариант-то нужно какой-то найти. Ни сидеть же вот так без DLL.
SWS вне форума   Ответить с цитированием
Старый 14.01.2008, 17:27   #24
Гость
 
Сообщений: n/a
По умолчанию

Не вижу ни слова про предложение использовать WP. Зато вижу намеки что стоит написать свой перехватчик клиента линейки и писать напрямую что хотите.
  Ответить с цитированием
Старый 14.01.2008, 17:31   #25
Новичок
 
Регистрация: 15.11.2007
Сообщений: 19
Сказал Спасибо: 0
Имеет 1 спасибку в 1 сообщении
SWS
По умолчанию

кпк, дело в том товарищ, что это не всем дано, можно и свою операционку написать, а вот делом мочь никто че-то не желает. Расскажи хотя б с чего начать писать, как расшифровать траффик и т.д.
Умные советы и я давать могу. :)
SWS вне форума   Ответить с цитированием
Старый 14.01.2008, 17:34   #26
Гость
 
Сообщений: n/a
По умолчанию

Есть исходники пакетхака по ним можно посмотреть как расшифровать траффик игрового сервера а больше и не надо
  Ответить с цитированием
Старый 14.01.2008, 17:39   #27
Новичок
 
Регистрация: 15.11.2007
Сообщений: 19
Сказал Спасибо: 0
Имеет 1 спасибку в 1 сообщении
SWS
По умолчанию

кпк, ты их смотрел? Если нет, посмотри, я смотрел, и понял, что мне потребуется много времени чтоб во всем разобраться. Даже первая функция это создание критической секции, ты хоть знаешь че это такое? Она используется для синхронизации потоков, код написанный в критической секции может выполнятся тока одним потоком одновременно, пока какой-то поток не освободит другой этот код использовать не может, поток будет временно приостановлен. Если для тебя это все так легко, то флаг те в руки как говорится. Я лично не берусь писать свою прогу парсинга и расшифровки пакетов. Думаю если попросить дружно xkor обновить свою программу и указать основные направления улучшения, то дело сдвинется с мёртвой точки.
SWS вне форума   Ответить с цитированием
Старый 14.01.2008, 17:44   #28
Гость
 
Сообщений: n/a
По умолчанию

Ну так сиди и жди когда перепишут как сказал гость 70% кода и не ной что не можешь понять а лучше иди и разбирись
  Ответить с цитированием
Старый 14.01.2008, 17:45   #29
Новичок
 
Регистрация: 15.11.2007
Сообщений: 19
Сказал Спасибо: 0
Имеет 1 спасибку в 1 сообщении
SWS
По умолчанию

кпк, те какое дело? Хочу и ною :)
SWS вне форума   Ответить с цитированием
Старый 14.01.2008, 21:03   #30
Пользователь
 
Аватар для skymanrus
 
Регистрация: 28.12.2007
Сообщений: 54
Сказал Спасибо: 0
Имеет 40 спасибок в 10 сообщенях
skymanrus пока неопределено
По умолчанию

SWS я по своему решил проблему создания немодального окна :D
может это конечно не самый лучший вариант но как говорится - "чем богаты..."
я сделал дллку которая генерирует ини файлик (в делфи на удивление просто с ини файлами обращатся)
а затем я просто написал прогу которая читает этот файл и таким образом я связал экзешник с длл
в общем отпала необходимость создавать форму прямо из длл (хотя хотелось бы)

длл
Код:
library dllll;
uses
   SysUtils, IniFiles;

var
MobsX, MobsY, MobsZ, MobsRAS, MobsID: array[1..30] of integer;
MaxID, MyXpos, MyYpos, MyZpos, MyID: integer;
on1: Boolean;

//-------------------------------------------------
function GetMaxX: integer;
var
i, MaxX: Integer;
begin
MaxX:=0;
MaxID:=0;
 for i:= 1 to 30 do
 begin
  if (MobsRAS[i]>=MaxX) then
  begin
  MaxX:=MobsRAS[i];
  MaxID:=i;
  end;
 end;
 result:=MaxX;
end;
//-------------------------------------------------
function Summ: integer;
var
i, Summa: Integer;
begin
Summa:=0;
 for i:= 1 to 30 do
 begin
   if (MobsID[i]>1) then
   begin
   Summa:=Summa+1;
   end;
 end;
 Summa:=Summa+2;
 result:=Summa;
end;
//-------------------------------------------------
function rastoyanie(xpos1, ypos1, xpos2, ypos2:integer): integer;
begin
result:= Round(Sqrt(((xpos1-xpos2)*(xpos1-xpos2))+((ypos1-ypos2)*(ypos1-ypos2))));
end;
//-------------------------------------------------
function FuncTst1(s, i, j: string): integer;
var
   sIniFile: TIniFile;
   sPath : String[160];
begin
   GetDir(0,sPath);
   sIniFile := TIniFile.Create(sPath+'\BOT.INI');
   sIniFile.WriteString(s, i, j);
   sIniFile.Free;
   result:=1;
end;

//-------------------------------------------------
function FuncTst2(s : string): integer;
var
   sIniFile: TIniFile;
   sPath : String[160];
begin
   GetDir(0,sPath);
   sIniFile := TIniFile.Create(sPath+'\BOT.INI');
   sIniFile.EraseSection(s);
   sIniFile.Free;
   result:=1;
end;
//-------------------------------------------------
function DelElArr(ele:integer): integer;  //??????? ????!
begin
   MobsID[ele]:=0;
   MobsRAS[ele]:=0;
   MobsX[ele]:=0;
   MobsY[ele]:=0;
   MobsZ[ele]:=0;
   //Attacker[ele]:=false;
   result:=1;
end;
//-------------------------------------------------

function AddBD(id, posx, posy, posz:integer): integer; stdcall;
var
k: Integer;
povtor: Boolean;
begin
   if (on1=true) then begin
if (Summ>=25) or (GetMaxX>2500) then DelElArr(MaxID);

        povtor:=false;
        for k:= 1 to 30 do
        begin
          if (MobsID[k]=id) and (MobsX[k]=posx) and (MobsY[k]=posy) then
          begin
          povtor:=true;
          break;
          end;
           if (MobsID[k]=id) then
           begin
        MobsRAS[k] := rastoyanie(MyXpos, MyYpos, posx, posy);
        MobsX[k]:=posx;
        MobsY[k]:=posy;
        MobsZ[k]:=posz;
        povtor:=true;
        break;
           end;
        end;

    if (povtor=false) then begin
     for k:= 1 to Length(MobsID) do begin
      if (MobsID[k]=0) then begin
        MobsRAS[k] := rastoyanie(MyXpos, MyYpos, posx, posy);
        MobsID[k]:=id;
        MobsX[k]:=posx;
        MobsY[k]:=posy;
        MobsZ[k]:=posz;
        break;
      end;
     end;
    end;

  //  FuncTst2('bd');
    for k:= 1 to 30 do begin
    if (MobsID[k]<>0) then FuncTst1('bd', IntToStr(k), IntToStr(k)+'-'+IntToStr(MobsRAS[k])+'-'+IntToStr(MobsID[k])+'-x'+IntToStr(MobsX[k])+'-y'+IntToStr(MobsY[k])+'-z'+IntToStr(MobsZ[k]));
    if (MobsID[k]=0) then  FuncTst1('bd', IntToStr(k), '-');
    end;
  end;
  result:=1;
end;
//-------------------------------------------------
function funcON(id, posx, posy, posz:integer): integer; stdcall;
begin
if (on1<>true) then begin
MyID:=id;
MyXpos:=posx;
MyYpos:=posy;
MyZpos:=posz;
on1:=true;
end;
result:=2;
end;
//-------------------------------------------------
exports AddBD, funcON;

begin
end.
экзешник читающий ини
Код:
unit rUnit1;

interface

uses
  IniFiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
   i: integer;
   sIniFile: TIniFile;
   sPath : String[160];
begin
 GetDir(0,sPath);
 sIniFile := TIniFile.Create(sPath+'\BOT.INI');
 ListBox1.clear;
 for i:= 1 to 20 do begin
 if ('-1'<>sIniFile.ReadString('bd', inttostr(i), inttostr(-1))) then
 ListBox1.Items.Add( sIniFile.ReadString('bd', inttostr(i), inttostr(-1) ));
 end;

//ListBox1.Items.Add( sIniFile.ReadString('bd', '1', inttostr(-1) ));

 sIniFile.Free;
end;

end.
и ещё ты написал как форму создавать а как просто переменную передать из длл в пакетхак можеш скинуть код ??
__________________
На людей сердишся, когда чувсивуешь, что их поступки важны. Ничего подобного я больше не чувствую...
skymanrus вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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