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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 13.08.2010, 00:33   #1
Новичок
 
Регистрация: 13.08.2010
Сообщений: 1
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Azhole пока неопределено
По умолчанию

//J-Fobos: Вариант "сделайте все за меня и чтоб работало" здесь не прокатит
Но помочь не откажемся, спрашивайте что интересует, подскажем.

Раз на то пошло, основы программирования у меня есть но только на языке C++.
Многие функции я просто не перевариваю(здесь нужна помошь, где мне получить эту базу епрст).Что то я находил но там явно не для новичков гайд.
Код:
const
   nik='xxxx';
   Enchant=16;

var
   Useitem2:string; //х3 мои домыслы гм шоп в моём инвентори 
   UseItem, SelectItem, EnchantItem: string;//обьявляем переменные , которые будут изьяты и потока строкой 
   CurrentEnch: integer;//непонятно 
   key: boolean; // не знаю как работате наверное возращает значение true/false или  1\0 ...
   Timer01, Timer02: TTimer; 

procedure Init; // как я понял главный модуль скрипта
begin
   Timer01:=TTimer.Create(nil);
   Timer01.OnTimer:=@OnTimer01;
   Timer01.enabled:=false;
   Timer01.interval:=3000;

   Timer02:=TTimer.Create(nil);
   Timer02.OnTimer:=@OnTimer02;
   Timer02.enabled:=false;
   Timer02.interval:=500;

end;

procedure OnTimer01(Sender: TObject); 
begin
   case key of
      false: begin
         buf:=UseItem;
         SendToServerEx(nik);
         Timer02.enabled:=true;
         end; 
      true: begin
         buf:=EnchantItem;\\шмотка которую энчатим присвоили переменной буф(буфер?)
         SendToServerEx(nik);
         end;
   end;
         key:=not(key); \\ обнуляем переменную?
end;

procedure OnTimer02(Sender: TObject);
begin
         buf:=SelectItem;
         SendToServerEx(nik);
         Timer02.enabled:=false;
end;

procedure Free;\\соц действие )))
begin
  Timer01.free;
  Timer02.free;
  CurrentEnch:=0;
  key:=false;
end;
//проверка на что та причём работает постоянно я х3 (
//мне нужна такаяже только на кол. точек в инвенторе предположения где будет проверка, сразу при использование
UseItem (как я понял сама точка) поставить счётчик (или тут в моде таймер) и крч если Useitem<=0 то ... то используем Useitem2
а далее шаримся по гм шопу (появляется меню ну тут я не знаю как работать с менюшками , толи остаются пакеты с разделами , либо самому вписывать  а далее всё как обычно в меню Scrolls выбираем точку строго покупаем 50 и дальше точим точим) ...
//вобще программа очень заинтересовала но здесь нету материала от которого можна отталкнутся по крайней мере на виду.
begin
    if FromServer and (pck[1]=#$87) then case ReadD(2) of
       0: begin
          CurrentEnch:=CurrentEnch+1;
          if CurrentEnch=Enchant then Timer01.enabled:=false;
          end;
       3: CurrentEnch:=0;
       end;
    if FromClient and (pck[1]=#$19) then UseItem:=pck;
    if FromClient and (pck[1]=#$D0) then SelectItem:=pck;
    if FromClient and (pck[1]=#$5F) then EnchantItem:=pck;
    if FromClient and (pck[1]+pck[2]=#$56#$0C) then
       begin
          pck:='';
          Timer01.enabled:=not(Timer01.enabled);
       end;
end.

Последний раз редактировалось Azhole, 14.08.2010 в 03:40.
Azhole вне форума   Ответить с цитированием
Старый 22.08.2010, 12:50   #2
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Цитата:
Сообщение от Azhole Посмотреть сообщение
Раз на то пошло, основы программирования у меня есть но только на языке C++.
Многие функции я просто не перевариваю(здесь нужна помошь, где мне получить эту базу епрст).Что то я находил но там явно не для новичков гайд.
В прикрепленных темах есть вся нужная информация. Конечно она сделана не в виде гайдов, а как справочник. Вот тот прокоментирую тот скрипт что вы скинули:
Код:
const
   nik='xxxx';  //константа с именем чара
   Enchant=16; //константа с желаемым уровнем заточки

var
   Useitem2:string; //переменная в скрипте не используется. Кажется автор скрипта просто забыл ее убрать, строку вообще можно удалить
   UseItem, SelectItem, EnchantItem: string;//обьявляем переменные , которые будут изьяты и потока строкой 
   CurrentEnch: integer;//уровень заточки предмета в данный момент 
   key: boolean;//так как вы и написали, либо тру, либо фелс
   Timer01, Timer02: TTimer;    //два таймера

procedure Init; //это не главный модуль скрипта, это процедура которая выполняется при старте скрипта. В данном случаи в ней задаются парамерты работы 2-х таймеров.
begin
   Timer01:=TTimer.Create(nil);
   Timer01.OnTimer:=@OnTimer01;
   Timer01.enabled:=false;  //таймер сначала выключен
   Timer01.interval:=3000;

   Timer02:=TTimer.Create(nil);
   Timer02.OnTimer:=@OnTimer02;
   Timer02.enabled:=false; //таймер сначала выключен
   Timer02.interval:=500;

end;

procedure OnTimer01(Sender: TObject); //процеруда которая вылняется первым таймером
begin
   case key of
      false: begin
         buf:=UseItem;//переменная buf испоьзуется для отправки пакета, что в этой переменной бубет находится то и отправится на сервер/клиент
         SendToServerEx(nik);  //   отправка  buf на сервер
         Timer02.enabled:=true;   //вклчюаем второй таймер
         end; 
      true: begin
         buf:=EnchantItem;
         SendToServerEx(nik);//отправка  buf на сервер
         end;
   end;
         key:=not(key); // меняем значение переменной, с тру на фелс или с фелс на тру
end;

procedure OnTimer02(Sender: TObject);    //процеруда которая вылняется первым таймером
begin
         buf:=SelectItem;
         SendToServerEx(nik);      
         Timer02.enabled:=false;   //выклчюем второй таймер
end;

procedure Free; //процедура которая выполняется при остановке скрипта, в данном случаи освобождаем память от таймеров
begin
  Timer01.free;
  Timer02.free;
  CurrentEnch:=0; //не нужная строка, при закрытии скрипта переменная исчезнет
  key:=false;   //не нужная строка, при закрытии скрипта переменная исчезнет
end;


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

//материал есть и не спрятанный. абсолютно вся нужная информация находится в закреплнных темах этого и соседних разделов, а также в справке к программе 

begin
    if FromServer and (pck[1]=#$87) then case ReadD(2) of
       0: begin
          CurrentEnch:=CurrentEnch+1;
          if CurrentEnch=Enchant then Timer01.enabled:=false;
          end;
       3: CurrentEnch:=0;
       end;
    if FromClient and (pck[1]=#$19) then UseItem:=pck;
    if FromClient and (pck[1]=#$D0) then SelectItem:=pck;
    if FromClient and (pck[1]=#$5F) then EnchantItem:=pck;
    if FromClient and (pck[1]+pck[2]=#$56#$0C) then
       begin
          pck:='';
          Timer01.enabled:=not(Timer01.enabled);
       end;
end.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
За это сообщение J-Fobos нажился 3 спасибками от:
Ответ

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



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

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


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

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

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