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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 08.02.2008, 23:51   #221
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re:

Цитата:
Сообщение от Grinch
народ хелп как правельно взять id перса что б оно было как бы константа :) т.е. ьерём 1 раз и больше не трогаем я знаю что оно и не меняется больше но когда я ставлю id в константу копируя ее с пакета скрипт работает коректно а когда выдёргиваю из чар инфо происходит что то необъянимое короче хелп ми
Покажи как ты это делаешь. Тогда можно подсказывать.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 09.02.2008, 00:13   #222
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

procedure Init;
****
***
***
procedure InitStats;
begin
CharObjID:=ReadD(18);
end;

begin
//UserInfo
if FromServer and (ConnectName=Name) and (pck[1]=#$04) then InitStats;
ну и код где выделяем пакет 48 + иди перса если проходит берём начинает считывать время каста и кастует как робот :)
end

Добавлено спустя 45 секунд:
как всё заработает выложу скриптик мне нравиться в целом в тихом месте кастует всё на ура
Grinch вне форума   Ответить с цитированием
Старый 09.02.2008, 13:36   #223
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

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

CharObjID:=ReadD(18);
ты приравниваеш что к чему? ИД ЧАРА надо хранить в СТРИНГЕ! для того чтобы его можно было напрямую без преобразований использовать.. т.е. тебе надо запомнить 4 символа 18, 19, 20, 21 байты... а ты используя функцию READD(xx) - преобразуеш СТРИНГ- в число интигер... само собой ето число будет от первоначального стринга отличаеш.. ето равносильно функции STRTOINT('stroka'),.
вопщем если ты меня понял то :
приведи CharObjID к типу STRING..
а строку CharObjID:=ReadD(18); приведи к виду:
CharObjID:=pck[18]+pck[19]+pck[20]+pck[21];

а в твоем варианте ето работало так:
CharObjID:=StrToInt(pck[18]+pck[19]+pck[20]+pck[21]);
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 09.02.2008, 15:09   #224
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 28
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
st01en
По умолчанию Re:

Цитата:
Сообщение от VORON
проблема бональна-))
Хм, а почему нельзя хранить ID как число?
Цитата:
Сообщение от xkor
ReadD(var index:integer):integer - читает из переменной pck число (4 байта)
как раз то что нужно помоему.
st01en вне форума   Ответить с цитированием
Старый 09.02.2008, 15:53   #225
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от VORON
CharObjID:=ReadD(18);
ты приравниваеш что к чему? ИД ЧАРА надо хранить в СТРИНГЕ! для того чтобы его можно было напрямую без преобразований использовать.. т.е. тебе надо запомнить 4 символа 18, 19, 20, 21 байты... а ты используя функцию READD(xx) - преобразуеш СТРИНГ- в число интигер... само собой ето число будет от первоначального стринга отличаеш.. ето равносильно функции STRTOINT('stroka'),.
вопщем если ты меня понял то :
приведи CharObjID к типу STRING..
а строку CharObjID:=ReadD(18); приведи к виду:
CharObjID:=pck[18]+pck[19]+pck[20]+pck[21];

а в твоем варианте ето работало так:
CharObjID:=StrToInt(pck[18]+pck[19]+pck[20]+pck[21]);
не ожидал от тя такого бреда...
ReadD (который копирует область памяти размером 4 байта из строки в числовую переменную) не имеет никакого отношения к StrToInt который преобразует строку в число, StrToInt выполняется во многие разы медленнее чем ReadD, так что не путай человека

st01en, не совсем понял зачем те делать чтоб тока при первом пакете юзеринфо считывался ИД, быстродействие от того что ИД будет считываться каждый раз почти не пострадает да и на всяких проверках первый ли это раз быстродействие пострадает даже немного сильнее, но всёравно кстати незначительно)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 09.02.2008, 17:44   #226
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 28
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
st01en
По умолчанию Re:

Цитата:
Сообщение от xkor
st01en, не совсем понял зачем те делать чтоб тока при первом пакете юзеринфо считывался ИД, быстродействие от того что ИД будет считываться каждый раз почти не пострадает да и на всяких проверках первый ли это раз быстродействие пострадает даже немного сильнее, но всёравно кстати незначительно)
а я так и не делаю, я на каждый пакет ЮзернИнфо ИД заново достаю, только не здесь, моя тема в программщине :)
Сюда я случайно влез потому, что странным показалось то что VORON написал :)
Grinch, этот ответ похоже тебе адресовался.
st01en вне форума   Ответить с цитированием
Старый 09.02.2008, 20:38   #227
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от st01en
Grinch, этот ответ похоже тебе адресовался.
хех, точно ему.., не на тот ник нажал)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 10.02.2008, 03:07   #228
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию Re: Re:

Цитата:
Сообщение от st01en
Цитата:
Сообщение от VORON
проблема бональна-))
Хм, а почему нельзя хранить ID как число?
Цитата:
Сообщение от xkor
ReadD(var index:integer):integer - читает из переменной pck число (4 байта)
как раз то что нужно помоему.
ну сматри если ты используеш для хранения ИДешника (4-х байтного) ИНТИГЕР- то- тебе его применять надо по особому!.. простой IntToStr - некатит... нужно применять WRITED(Integer) , а ты скорее всего применяеш хз как.. тот клочек кода что ты дал- тока запоминает.. ето дело каждого как запомнить.. кто то хранит в ИНТИГЕРЕ.. а кто то в СТРИГЕ.. но приетом использовать надо- адекватно.. вставлять в правильном формате.. у тебя проблема именно в етом.. надо делать так:
вариант 1: запоминать данные из пакета- 04 (ИД ЧАРА) в стринговом формате (ID:= PCK[18]+PCK[19]+PCK[20]+PCK[21]) и применять его тупо: (buf:=buf+ID)
вариант 2: запоминать в интигере ID:=READD(18) но тогда етот интигер в нужное место надо встовлять по особому..
BUF:=BUF; //string
writeD(ID);


ну вот собственно.. скорее всего ты запомнил в одном формате а применил в другом...
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 10.02.2008, 14:50   #229
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

народ как говориться стоять зорька :) я выложу скрипт целиуом, а вы попробуйте заставить его работать динамически считывая ид чара :) просто динамически считывается другой пакет $48 (ид мой)(иди кого бафаем или убиваем) (ну и т.д.)( время каста)(время отката), И что получается когда я вбиваю ИД константой всё работает когда считываю не работает причём считывается всё верно.
Код:
const
   PPbafer = 'НИК ТВОЕГО ПП';// ps если нет пп то юзаем чьи нибуть бафы но не меньше 5 
   buff =
   ['2F 3D 04 00 00 00 00 00 00 00 ',   //Acumen
    '2F 18 04 00 00 00 00 00 00 00 ',   //BtS
    '2F 15 04 00 00 00 00 00 00 00 ',   //BtB
    '2F 2C 04 00 00 00 00 00 00 00 ',   //Might
    '2F 10 04 00 00 00 00 00 00 00 ',   //Shield
    '2F 36 04 00 00 00 00 00 00 00 ',   //concentration
    '2F 35 04 00 00 00 00 00 00 00 ',   //Focus
    '2F DA 04 00 00 00 00 00 00 00 ',   //DW
    '2F D8 04 00 00 00 00 00 00 00 ',   //Точночть
    '2F B4 04 00 00 00 00 00 00 00 ',   //WW
    '2F 0C 04 00 00 00 00 00 00 00 ',   //   MB
    '2F 0B 04 00 00 00 00 00 00 00 ',   //   Mental
    '2F 3E 04 00 00 00 00 00 00 00 ',   //   Haste
    '2F 48 05 00 00 00 00 00 00 00 ',   // EP
    '2F DB 04 00 00 00 00 00 00 00 '];  // щит
    SS=0;
    PPbaferID=1212167608;
var
    prof,x,y, SkilID, SkilHIT,{PPbaferID} : integer;
    timer1, timer2: TTimer;
    Target: string;
procedure Say(msg:string);
begin
buf:=hstr('4A 00 00 00 00');
WriteD(2);
WriteS(PPbafer);
WriteS(msg);
SendToClientEx(PPbafer);
end;


procedure Init; //Вызывается при включении скрипта
begin
//делаем таймер
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer1;
timer1.enabled:=false;//по начал не баффаемся, толко по команде
timer1.interval:=200;// 0,2 секунды - начальный интервал таймера


end;
//procedure InitStats;
{begin

    PPbaferID:=ReadD(18);
end;  }
procedure OnTimer1(Sender: TObject);
begin
if x = 1 then
Say('Начинаем баффаццо');
buf:=hstr(buff[x]);             //берем нужный элемент из массива
SendToServerEx(PPbafer);
inc(x);                        //увеличиваем х на 1
if x = 15 then
begin Say('Баффаццо вроде закончили');
      Timer1.Enabled:=False;    //закончили баффаццо - таймер отключили
      x:=0;
end;
Say('x='+inttostr(x))// так что б мониторить измение в чате
end;

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

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck='' then exit;
if FromServer and (ConnectName=PPbafer) and ((pck[1]=#$04)  then InitStats;
if FromServer and (ConnectName=PPbafer) and ((pck[1]=#$48) and (ReadD(18)=SS)) then exit ;
if FromServer and (ConnectName=PPbafer) and ((pck[1]=#$48) and (ReadD(2)=PPbaferID)) then
   begin
   SkilHIT:=ReadD(18);
   SkilID:= ReadD(10);
   Timer1.Interval:=SkilHit+100;      //ставим время отката скила   +100 константа смешения тупо что б паузу сделать маленькую
   Say('Скил='+inttostr(SkilID)); // иди скрипта так для самопроверке кстате можно тестить бафы на ускорение каста и шмот
   Say('Откат='+inttostr(SkilHIT)); //время каста скила
   end;

if FromClient and (pck[1]+pck[2]=#$38#$31) and (ConnectName=PPbafer) then  //1- нажимаем в любой чат окуратней я пакет не убил
begin
  prof:=1;
  Timer1.Enabled:=True;  //врубаем таймер

end;
  if prof=1 then begin
      y:=1;
      prof:=0;
  end;

// Say('ID'+inttostr(PPbaferID));
end.
и в крацее для чего нужен ИД бафера, постойте в геране или в зоне кача сколько летит пакетов $48 выделяем свой просто и скрипт работает прямо и не сбивается

Добавлено спустя 6 минут 30 секунд:
ну 2 варианта там где ид константа надо свой написать :) или закоментировать и попробовать профиксить ошибку которую я допустил не могу понять в чём она т.к. в тонкостях не разбираюсь и половину что вы тут написали просто не понял :cry:
Grinch вне форума   Ответить с цитированием
Старый 10.02.2008, 15:18   #230
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

тоесть так непашет?
Код:
    const
       PPbafer = 'НИК ТВОЕГО ПП';// ps если нет пп то юзаем чьи нибуть бафы но не меньше 5
       buff =
       ['2F 3D 04 00 00 00 00 00 00 00 ',   //Acumen
        '2F 18 04 00 00 00 00 00 00 00 ',   //BtS
        '2F 15 04 00 00 00 00 00 00 00 ',   //BtB
        '2F 2C 04 00 00 00 00 00 00 00 ',   //Might
        '2F 10 04 00 00 00 00 00 00 00 ',   //Shield
        '2F 36 04 00 00 00 00 00 00 00 ',   //concentration
        '2F 35 04 00 00 00 00 00 00 00 ',   //Focus
        '2F DA 04 00 00 00 00 00 00 00 ',   //DW
        '2F D8 04 00 00 00 00 00 00 00 ',   //Точночть
        '2F B4 04 00 00 00 00 00 00 00 ',   //WW
        '2F 0C 04 00 00 00 00 00 00 00 ',   //   MB
        '2F 0B 04 00 00 00 00 00 00 00 ',   //   Mental
        '2F 3E 04 00 00 00 00 00 00 00 ',   //   Haste
        '2F 48 05 00 00 00 00 00 00 00 ',   // EP
        '2F DB 04 00 00 00 00 00 00 00 '];  // щит
        SS=0;
        //PPbaferID=1212167608;
    var
        prof,x,y, SkilID, SkilHIT,PPbaferID : integer;
        timer1, timer2: TTimer;
        Target: string;
    procedure Say(msg:string);
    begin
    buf:=hstr('4A 00 00 00 00');
    WriteD(2);
    WriteS(PPbafer);
    WriteS(msg);
    SendToClientEx(PPbafer);
    end;


    procedure Init; //Вызывается при включении скрипта
    begin
    //делаем таймер
    timer1:=TTimer.Create(nil);
    timer1.OnTimer:=@OnTimer1;
    timer1.enabled:=false;//по начал не баффаемся, толко по команде
    timer1.interval:=200;// 0,2 секунды - начальный интервал таймера


    end;
    procedure InitStats;
    begin
        PPbaferID:=ReadD(18);
    end;  

    procedure OnTimer1(Sender: TObject);
    begin
    if x = 1 then
    Say('Начинаем баффаццо');
    buf:=hstr(buff[x]);             //берем нужный элемент из массива
    SendToServerEx(PPbafer);
    inc(x);                        //увеличиваем х на 1
    if x = 15 then
    begin Say('Баффаццо вроде закончили');
          Timer1.Enabled:=False;    //закончили баффаццо - таймер отключили
          x:=0;
    end;
    Say('x='+inttostr(x))// так что б мониторить измение в чате
    end;

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

    //основная часть скрипта
    //вызывается при приходе каждого пакета если скрипт включен
    begin
    if pck='' then exit;
    if FromServer and (ConnectName=PPbafer) and ((pck[1]=#$04)  then InitStats;
    if FromServer and (ConnectName=PPbafer) and ((pck[1]=#$48) and (ReadD(18)=SS)) then exit ;
    if FromServer and (ConnectName=PPbafer) and ((pck[1]=#$48) and (ReadD(2)=PPbaferID)) then
       begin
       SkilHIT:=ReadD(18);
       SkilID:= ReadD(10);
       Timer1.Interval:=SkilHit+100;      //ставим время отката скила   +100 константа смешения тупо что б паузу сделать маленькую
       Say('Скил='+inttostr(SkilID)); // иди скрипта так для самопроверке кстате можно тестить бафы на ускорение каста и шмот
       Say('Откат='+inttostr(SkilHIT)); //время каста скила
       end;

    if FromClient and (pck[1]+pck[2]=#$38#$31) and (ConnectName=PPbafer) then  //1- нажимаем в любой чат окуратней я пакет не убил
    begin
      prof:=1;
      Timer1.Enabled:=True;  //врубаем таймер

    end;
      if prof=1 then begin
          y:=1;
          prof:=0;
      end;

    // Say('ID'+inttostr(PPbaferID));
    end.
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился 2 спасибками от:
Ответ

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



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

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


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

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

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