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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 26.01.2008, 22:54   #211
Гость
 
Сообщений: n/a
По умолчанию

чар некоторое время сидит и потом вылетает, в чём может быть ошибка? :o
Код:
const
  Name='Palevo';
var
  started :boolean; //есть чо?

procedure Init;
begin
 Randomize;
end;

begin
  if FromClient and (ConnectName=Name) and (pck[1]=#$1B) then begin
    case ReadD(2) of //SocialID
      //социальное действие Yes для начала
      6: begin
            pck:='';
            NoFreeOnClientDisconnect;
            NoFreeOnServerDisconnect;
            started:=true;
            buf:=#$7E; //гы-гы-гы
            SendToClientEx(Name); //паслать на...
      end;
    end;
  end;
  if FromServer and (ConnectName=Name) and (pck[1]=#$D3) and started then begin
    buf:=#$A8;
    WriteD(ReadD(2)); //pingid
    WriteD(Int(Random()*100)); //ping 0-100
    WriteD(2048); //const
    SendToServerEx(Name); //паслать на...
    pck:=''; //killhim :-F
  end;
end.
ps звиняюсь за тупость :pardon:
  Ответить с цитированием
Старый 27.01.2008, 10:36   #212
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

думаю ошибка в етом: WriteD(Int(Random()*100)); //ping 0-100
с чего ты взял что там рандом?
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 30.01.2008, 21:58   #213
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

народ кто сделал норм радар по клану? очень надо а то я тут случайно пк отмыл одного баюма выбил и боты со шлемом драконик, а клан у них 50% хиро и как то не охота в спину что б меня киляли :) если можно поделитесь скриптиком рабочим
Grinch вне форума   Ответить с цитированием
Старый 31.01.2008, 15:32   #214
Заблокирован
 
Регистрация: 01.10.2007
Сообщений: 76
Сказал Спасибо: 22
Имеет 7 спасибок в 7 сообщенях
Murdoc
По умолчанию Re:

Цитата:
Сообщение от Grinch
народ кто сделал норм радар по клану? очень надо а то я тут случайно пк отмыл одного баюма выбил и боты со шлемом драконик, а клан у них 50% хиро и как то не охота в спину что б меня киляли :) если можно поделитесь скриптиком рабочим
Угу. Каждому!!!
Что за хроники? я уже писал у меня есть несколько радарчиков, но на моем ц4 кроме хингейма и аима демы ничего не работает.
Murdoc вне форума   Ответить с цитированием
Старый 06.02.2008, 09:44   #215
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию кушаем ЦП баночки

на наверно баян но вчера сидел правил скриптик :)
Код:
//автоматическое использование НР пробирок by NLObP      + СP редакция GrinchB
// 1-Изменяем Name='ххх';
// 2-бросаем, подбираем или выпиваем Heal Potion и СП как включите там всё написано будет в чат
//Работа проверена на L2C4 Protocol 660 LocalServer "L2J FORTRESS" и  Protocol 656

const
    Name='ххх';
var
    ColvoCP,ColvoHP, CharObjID, ItemObjHP, ItemObjCP: integer;
    CurHP,MaxHP,CurCP,MaxCP: integer;
    TimerCP,TimerHP: TTimer;
    Status: boolean;
//******************************************************************************
procedure OnTimerHP(Sender: TObject);
begin
    if ColvoHP=0 then exit;
    buf:=#$14;
    WriteD(ItemObjHP);
    WriteD(00);
    SendToServerEx(Name);
    ColvoHP:=ColvoHP-1; //количество хилок
    if ColvoHP=0 then begin
      Say('Хилок='+inttostr(ColvoHP));
      Say('Кончились хилки! Закупите Heal Potion!');
    end;
end;
procedure OnTimerCP(Sender: TObject);
begin
    if ColvoCP=0 then exit;
    buf:=#$14;
    WriteD(ItemObjCP);
    WriteD(00);
    SendToServerEx(Name);
    ColvoCP:=ColvoCP-1; //количество CP
    if ColvoCP=0 then begin
      Say('CP='+inttostr(ColvoCP));
      Say('ЕСЛИ ТЫ ПОЛУЧИЛ ЭТО СООБЩЕНИЕ ТЫ ТРУП!');
    end;
end;
//******************************************************************************
procedure Say(msg:string);
begin
  buf:=hstr('4A 00 00 00 00');
  WriteD(2);
  WriteS(Name);
  WriteS(msg);
  SendToClientEx(Name);
end;
//******************************************************************************
procedure InitStats;
var
  i: integer;
begin
  //Запоминаем ИД
  i:=18;
  CharObjID:=ReadD(i);
  //смещение переменное, зависит от имени (LenName*2+2)
  i:=i+(Length(Name)*2+2)+44;
  MaxHP:=ReadD(i);
  CurHP:=ReadD(i);
  MaxCP:=ReadD(i);
  CurCP:=ReadD(i);
  //Say('MaxHP='+inttostr(MaxHP)+'CurHP='+inttostr(CurHP));
  if ItemObjHP=0 then exit;
  if (CurHP<MaxHP-50) then TimerHP.enabled:=true else TimerHP.enabled:=false;
end;
//******************************************************************************
procedure StatsUpdate;
var
  i: integer;
begin
  for i:=0 to ReadD(6)-1 do begin
    case pck[i*8+10] of
      #$09: CurHP:=ReadD(i*8+14);
      #$0A: MaxHP:=ReadD(i*8+14);
      #$21: CurCP:=ReadD(i*8+14);
      #$22: MaxCP:=ReadD(i*8+14);
    end;
  end;
  if ItemObjHP=0 then exit;
  if (CurHP<=MaxHP-50) then TimerHP.enabled:=true else TimerHP.enabled:=false;
  if ItemObjCP=0 then exit;
  if (CurCP<=MaxCP-200) then TimerCP.enabled:=true else TimerCP.enabled:=false;
end;
//******************************************************************************
procedure ObjtoColvoHP(ItemObjHP:integer);
var
  i: integer;
begin
  if ItemObjHP=0 then exit;
  for i:=0 to ReadD(4)-1 do begin
    if ItemObjHP=ReadD(i*28+8) then ColvoHP:=ReadD(i*28+16); //количество хилок
  end;
end;
procedure ObjtoColvoCP(ItemObjCP:integer);
var
  i: integer;
  begin
  if ItemObjCP=0 then exit;
  for i:=0 to ReadD(8)-1 do begin
    if ItemObjCP=ReadD(i*28+8) then ColvoCP:=ReadD(i*28+16); //количество хилок
  end;
end;


//******************************************************************************
//                 Вызывается при включении скрипта
//******************************************************************************
procedure Init;
begin
    status:=false;
    CharObjID:=0;
    ItemObjHP:=0;
    ItemObjCP:=0;
    timerHP:=TTimer.Create(nil);
    timerHP.OnTimer:=@OnTimerHP;
    timerHP.enabled:=false;
    timerHP.interval:=5000; //время отката лечения
    Say('Для начала работы скрипта бросаем, подбираем или выпиваем Heal Potion!');
    timerCP:=TTimer.Create(nil);
    timerCP.OnTimer:=@OnTimerCP;
    timerCP.enabled:=false;
    timerCP.interval:=100; //время отката для шоков или где быстро кушаются банки
    Say('Для начала работы скрипта бросаем, подбираем или выпиваем CP!');
end;
//******************************************************************************
//                 Вызывается при выключении скрипта
//******************************************************************************
procedure Free;
begin
     timerHP.Free;
     timerCP.Free;
end;
//******************************************************************************
//       Вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
begin
//******************************************************************************
  //не обрабатываем пустые пакеты
  if pck='' then exit;
//******************************************************************************
//InventoryUpdate
if FromServer and (ConnectName=Name) and (pck[1]=#$27) and ((ReadD(12)=1060) or (ReadD(12)=1061)) then begin //Healing Potion, Lesser Healing Potion
    ItemObjHP:=ReadD(8);
    ColvoHP:=ReadD(16); //количество хилок
    if status then exit;
    Say('Автоматическое использование Нeal Рotion готово к работе!');
    Say('Хилок='+inttostr(ColvoHP));

end;
if FromServer and (ConnectName=Name) and (pck[1]=#$27) and (ReadD(12)=5592)  then begin //CP, Lesser Healing Potion
    ItemObjCP:=ReadD(8);
    ColvoCP:=ReadD(16); //количество CP
    if status then exit;
    Say('Автоматическое использование CP готово к работе!');
    Say('CP='+inttostr(ColvoCP));

    status:=true;
end;
//******************************************************************************
//ItemList
if FromServer and (ConnectName=Name) and (pck[1]=#$1B) and status then begin
    ObjtoColvoHP(ItemObjHP); //количество хилок
    //Say('Хилок='+inttostr(ColvoHP));
end;
//******************************************************************************
//UserInfo
if FromServer and (ConnectName=Name) and (pck[1]=#$04) then InitStats;
//******************************************************************************
//StatusUpdate
if FromServer and (ConnectName=Name) and (pck[1]=#$0E) and (CharObjID=ReadD(2)) then StatsUpdate;
end.
скажу сразу я пока учусь програмить и спс NLObP и его коментариям т.к. без них я б не разобрался как ет работает и не добавил банки ЦП. думаю доработать потом под 2 вида банок что б кушалось по очереди т.к. метод кульный :) и грейт хилки добавить на условие кушания меньше 30% и до 60% потом снова красненькие вот тока сейчас не эти занят хочу велосипед изобрести.
Идея простая скилы юзаются в порядке нажатия после отката предыдущего так вот хочу сделать процедурку котороя бы на автомате брала время из пакета и заменить в скриптах на баф таймер ровно допустим 2секунды на число реального каста как правило ето в районе 1-5 секунд взависимости от бафа под смом вообще стремиться к нулю. Так что пока буду думать юзайте хп и цп банки так. Или помогите кто шарит в програмерстве т.к. ет не простая процедура и очень как мне кажеться полезная

Добавлено спустя 4 минуты 47 секунд:
а мой пост о пакете с такими даные найдёте в теме "ищу пакет" я его сам в итоге нашёл всё расписано там
Grinch вне форума   Ответить с цитированием
Старый 07.02.2008, 09:03   #216
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Grinch, сделай таймер, у которого значение Interval присваивай считываемому значению реюза из пакета $48
QaK вне форума   Ответить с цитированием
Старый 07.02.2008, 23:52   #217
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

lQaKl ы делаю, но из-за кривизны рук и недостатка свободного времени пишеться медлено тем более делаю по аналогии других скриптов.

Добавлено спустя 11 часов 56 минут 56 секунд:
Код:
  const
   Name='xxx';//скилы от ПП для теста
b1='2F 3D 04 00 00 00 00 00 00 00 ';   //Acumen
b2='2F 18 04 00 00 00 00 00 00 00 ';   //BtS
b3='2F 15 04 00 00 00 00 00 00 00 ';   //BtB
b4='2F 2C 04 00 00 00 00 00 00 00 ';   //Might 
b5='2F 10 04 00 00 00 00 00 00 00 ';    //Shield
b6='2F 36 04 00 00 00 00 00 00 00 ';    //concentration
b7='2F 35 04 00 00 00 00 00 00 00 ';     //Focus
b8='2F DA 04 00 00 00 00 00 00 00 ';     //DW
b9='2F D8 04 00 00 00 00 00 00 00 ';      //Точночть
b10='2F B4 04 00 00 00 00 00 00 00 ';     //WW
b11='2F 0C 04 00 00 00 00 00 00 00 ';      //   MB
b12='2F 0B 04 00 00 00 00 00 00 00 ';      //   Mental
b13='2F 3E 04 00 00 00 00 00 00 00 ';      //   Haste
b14='2F 48 05 00 00 00 00 00 00 00 ';      // EP
b15='2F DB 04 00 00 00 00 00 00 00 ';      // щит
var
    prof,x, SkilID, SkilHIT : integer;
    timer1: TTimer;
    Target: string;
procedure Say(msg:string);
begin
 buf:=hstr('4A 00 00 00 00');
 WriteD(2);
 WriteS(Name);
 WriteS(msg);
 SendToClientEx(Name);
end;


procedure Init; //Вызывается при включении скрипта
begin
      timer1:=TTimer.Create(nil);
   timer1.OnTimer:=@OnTimer;
   timer1.enabled:=true;
   timer1.interval:=SkilHIT;// главная трабла или не всё так просто :( значение не присваивается динамически изначальео его 
просто нет пробовал менять на 2000 там ниже вместа адреса числа


Say('НУ РАБОТАЙ!');
  end;
  procedure OnTimer(Sender: TObject);
begin
case x of
1: begin
    buf:=hstr(b1);
    sendtoserver;

    x:=x+1;
    end;
2: begin
    buf:=hstr(b2);
    sendtoserver;

    x:=x+1;
    end; 
3: begin
    buf:=hstr(b3);
    sendtoserver;

    x:=x+1;
    end;
4: begin
    buf:=hstr(b4);
    sendtoserver;

    x:=x+1;
    end;
5: begin
    buf:=hstr(b5);
    sendtoserver;

    x:=x+1;
    end;
6: begin
    buf:=hstr(b6);
    sendtoserver;

    x:=x+1;
    end;
7: begin
    buf:=hstr(b7);
    sendtoserver;

    x:=x+1;
    end;
8: begin
    buf:=hstr(b8);
    sendtoserver;

    x:=x+1;
    end;
9: begin
    buf:=hstr(b9);
    sendtoserver;

    x:=x+1;
    end;
10: begin
    buf:=hstr(b10);
    sendtoserver;

    x:=x+1;
    end;
11: begin
    buf:=hstr(b11);
    sendtoserver;

    x:=x+1;
    end;
12: begin
    buf:=hstr(b12);
    sendtoserver;

    x:=x+1;
    end;
13: begin
    buf:=hstr(b13);
    sendtoserver;

    x:=x+1;
    end;
14: begin
    buf:=hstr(b14);
    sendtoserver;

    x:=x+1;
    end;
15: begin
    buf:=hstr(b15);
    sendtoserver;

    x:=0;
    end;
end;

end;




procedure Free; //Вызывается при выключении скрипта
begin
  timer1.enabled:=false;
timer1.Free;
   x:=0;
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
   begin

    if FromServer and (ConnectName=Name) and (pck[1]=#$48)  then
   begin
   SkilHIT:=ReadD(18);
   SkilID:= ReadD(10);
   Say('Скил='+inttostr(SkilID)); // иди скрипта так для самопроверке кстате можно тестить бафы на ускорение каста и шмот
   Say('Откат='+inttostr(SkilHIT)); //время каста скила

   end;
   if FromClient and (pck[1]+pck[2]=#$38#$31)then  //1- нажимаем в любой чат окуратней я пакет не убил
begin
  prof:=1
 end;
  if prof=1 then begin
      x:=1;
      prof:=0;
    end;
     Say('x='+inttostr(x))// так что б мониторить измение в чате 
end.
ЗЫ НЕ РАБОТАЕТ в чём трабла?
Grinch вне форума   Ответить с цитированием
Старый 08.02.2008, 14:51   #218
Гость
 
Сообщений: n/a
По умолчанию Скрипт VORON'a ПОЧЕМУ НЕ ПАШЕТ,РАСПИШИТЕ ОШИБКИ ПО ПОРЯДУКУ,

var
IDPartyMember, IDAssistTarget, IDMy: String;
CoordVarkX, CoordVarkY, CoordVarkZ :String;

procedure VarkBeg;
begin
if (CoordVarkX<>'Bot1') and (IDPartyMember<>'TRATATA') then
begin
buf:=hstr('04') + IDPartyMember + CoordVarkX + CoordVarkY + CoordVarkZ + hstr('00');
SendToServerEX('Bot1');
buf:=hstr('04') + IDPartyMember + CoordVarkX + CoordVarkY + CoordVarkZ + hstr('00');
SendToServerEX('Bot1');
end;
end;

begin
if pck='' then exit;

if FromServer and (pck[1]=#$a7) then
begin
IDPartyMember:=pck[6] + pck[7] + pck[8] + pck[9];
end;

if FromServer and (pck[1]=#$29) then
if (pck[2]+pck[3]+pck[4]+pck[5]=IDPartyMember) then
begin
IDAssistTarget:= pck[6]+pck[7]+pck[8]+pck[9];
end;

if FromClient and (ConnectName='TRATATA') and (pck[1]=#$48) then
begin
CoordVarkX:= pck[6] + pck[7] + pck[8] + pck[9];
CoordVarkY:= pck[10] + pck[11] + pck[12] + pck[13];
CoordVarkZ:= pck[14] + pck[15] + pck[16] + pck[17];
end;

if FromClient and (ConnectName='TRATATA')and (pck[1]=#$38) then
begin
pck:='';
VarkBeg;
exit;
end;

end.
  Ответить с цитированием
Старый 08.02.2008, 16:27   #219
Гость
 
Сообщений: n/a
По умолчанию Почему когда я вставляю пакет(с выбором таргета) в посылку о

Почему когда я вставляю пакет(с выбором таргета) в посылку он его снова не выделяет?????????

04 40 77 80 48 A4 61 00 00 43 22 00 00 E9 F1 FF FF 00 00 00 00 BB 41 5F 27 87 B3 78 99 E3 0C FD 64 29 3F 43 68

№ | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | Строкой
-----+-------------------------------------------------+-----------------
0000 | 04 40 77 80 48 A4 61 00 00 43 22 00 00 E9 F1 FF | .@wЂH¤a..C"..йся
0010 | FF 00 00 00 00 BB 41 5F 27 87 B3 78 99 E3 0C FD | я....»A_'‡іx™г.э
0020 | 64 29 3F 43 68 | d)?Ch
  Ответить с цитированием
Старый 08.02.2008, 23:43   #220
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

народ хелп как правельно взять id перса что б оно было как бы константа :) т.е. ьерём 1 раз и больше не трогаем я знаю что оно и не меняется больше но когда я ставлю id в константу копируя ее с пакета скрипт работает коректно а когда выдёргиваю из чар инфо происходит что то необъянимое короче хелп ми
Grinch вне форума   Ответить с цитированием
Ответ

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


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

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

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


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

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

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