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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 08.01.2008, 15:28   #141
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: ДА БУДЕТ БОТ!

Попробуй воспользоваться подпрограммами
Надо учесть, что пакет A7=PartyMemberPosition:d(membercount)d(objID)d(X)d (Y)d(Z)
1-й это командир пати, следующие патимемберы по порядку как перечислены в клиенте.

Код:
//***************************************************************
//04=Action:h(ObjectID)d(OriginX)d(OriginY)d(OriginZ)b(ShiftFlag)
procedure Target(AttackerObjID: Integer);
begin
    buf:=#$04;
    WriteD(AttackerObjID);
    WriteD(MyXpos);
    WriteD(MyYpos);
    WriteD(MyZpos);
    WriteC(00);
    SendToServerEx(Name);
end;

begin
  //****************************************************************************
  //не обрабатываем пустые пакеты
  if pck='' then exit;
  //****************************************************************************
  if (ConnectName=Name) and FromServer then begin
    case pck[1] of
      #$04: begin
          //пакет с инфой о моём чаре
          i:=2;
          MyXpos:=ReadD(i); //получаю координату х моего чара
          MyYpos:=ReadD(i); //получаю координату у моего чара
          MyZpos:=ReadD(i); //получаю координату z моего чара
          //Запоминаем ИД
          i:=18;
          MyObjID:=ReadD(i); //получаю ид моего чара
          //смещение переменное, зависит от имени (LenName*2+2)
          i:=i+(Length(Name)*2+2)+48; //44 для С4
          MaxHP:=ReadD(i);
          CurHP:=ReadD(i);
      end;
      //****************************************************************************
      //если от сервака принят пакет с ИД и Координатами членов пати то
      //A7=PartyMemberPosition:d(membercount)d(objID)d(X)d(Y)d(Z)
      #$A7: begin
         //запоминаем ИД командира
         MyObjID:=ReadD(6);
      end;
    end;
  end;

  if (ConnectName=Name) and FromClient then begin
    case pck[1] of
      //ValidatePosition пакет от клиента с моими кординатами
      #$48: begin
          //обновляем если мы сошли с места
          MyXpos:=ReadD(2); //получаю координату х моего чара
          MyYpos:=ReadD(6); //получаю координату у моего чара
          MyZpos:=ReadD(10); //получаю координату z моего чара
      end;
    end;
end.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 08.01.2008, 17:19   #142
Новичок
 
Регистрация: 03.01.2008
Сообщений: 8
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Shnaider
По умолчанию

Народ,вот мне skymanrus сделал скрипт на бег за нужным чаром второго моего чара
Можете сделать его так,чтобы он включался по нажатию SokolA действия Pick UP,но сам он неподбирал бы дроп,а включался скрипт ходьбы за SokolA и SokolB тоже бы пытался подобрать дроп столько раз сколько нажал на Pick UP SokolA.Потом чтобы когда SokolA нажимает например Victory,то l2phx бы неотправлял этот пакет серверу,но выключал бы скрипт ходьбы за SokolA и SokolB начинал атаковать цель SokolA по ассисту
Код:
begin // main!!!!!!!!!!!!!!!!!!!

if FromClient and (ConnectName='SokolA') and (pck[1]=#$48) then  //мы сошли с места
begin
buf:=#$01;
WriteD(ReadD(2));
WriteD(ReadD(6));
WriteD(ReadD(10));
WriteD(0);
WriteD(0);
WriteD(0);
buf:=buf+#$01+#$00+#$00+#$00;
SendToServerEx('SokolB');
end;

end.
Вот пример xkor'a на то чтобы пакет на действие Victory от SokolA недоходил до сервера, а SokolB садится
Код:
begin
  if FromClient and (ConnectName='SokolA') 
  and (pck=HStr('1b 04 00 00 00')) then begin
    buf:=HStr('45 00 00 00 00 00 00 00 00 00');
    SendToServerEx('SokolB');
    pck:='';
  end;
end.
Shnaider вне форума   Ответить с цитированием
Старый 09.01.2008, 11:07   #143
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Ну вот и я вернулся =)
Цитата:
Сообщение от mks
-режим бега(второе соц. действие) -режим бега работает так, что бот бежит туда же куда и хозяин, но с отклонением которое можно указать в const -chaos, генерируется случайным образом
режимы включаются и выключаются тем же соц. действием.
:beer: Сам давно хотел написать, да некогда все было
Цитата:
Сообщение от ASS
var
target: string;


begin

//PartyMemberPosition
if fromserver and (pck[1]=#$A7) then
begin
target:=#$04+pck[6]+pck[7]+pck[8]+pck[9]+pck[10]+pck[11]+pck[12]+pck[13]+pck[14]+pck[15]+pck[16]+pck[17]+pck[18]+pck[19]+pck[20]+pck[21]+#$00;
end;

//Say ? ??????
if fromserver and (pck[1]+pck[6]=#$4A#$02) then
begin
case ord(pck[18]) of
$38:
begin
buf:=target;
SendToServer;
end;
end;
end;
end.
от сервера и от клиента пакеты путаешь, от сервера приходит пакет о том, что кто-то кого-то выделил, а от клиента нужно посылать пакет Action (04)
QaK вне форума   Ответить с цитированием
Старый 09.01.2008, 17:02   #144
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от Shnaider
кто-нибудь вот это действие с бегом за лидером по координатам с небольшим отставанием
Ты бредишь? МКС его ж написал, глаза разуй на предыдущую страничку загляни.
Цитата:
Сообщение от Shnaider
другим кто нешарит помочь вам западло
Ты считаешь эта фраза кого-нить вдохновит написать нужный тебе скрипт? Нефиг тут сопли раводить, не умеешь - учись, здесь форум программистов, а не халаявное написание скриптов на заказ. :evil:
QaK вне форума   Ответить с цитированием
Старый 09.01.2008, 17:58   #145
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию Re:

Shnaider
Код:
//-------------------------------------------------------------------------------------------
//ловим пакет от клиента отправленный коммандиром при перемещении
if FromClient and (ConnectName=MasterName) and (pck[1]=#$01) then
      begin
         x:=ReadD(2);
         y:=ReadD(6);
         z:=ReadD(10); //координаты точки куда пошел коммандир

         ox:=ReadD(14);
         oy:=ReadD(18);
         oz:=ReadD(22);//координаты точки откуда шел коммандир
//-------------------------------------------------------------------------------------------
//имеем координаты точек откуда и куда шел коммандир
//делаем с координатами все что душе угодно
//строим аналогичный пакет
         buf:=#$01;
         WriteD(x);
         WriteD(y);
         WriteD(z);
        
         WriteD(ox);
         WriteD(oy);
         WriteD(oz);
         SendToServerEx(BotName); //отправляем его серверу ботом
      end;
вот и все
__________________
FA©Q!
mks вне форума   Ответить с цитированием
Старый 09.01.2008, 18:31   #146
Новичок
 
Регистрация: 01.01.2008
Сообщений: 3
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
djbandit
По умолчанию

for i:=1 to ListCount do begin
ObjID:=ReadD(j); //ObjectID
ItmID:=ReadD(j); //ItemID
j:=j+14;
Lvl:=ReadD(j); //Level
case ItmID of
ScrollID: begin
ScrollBase[ss]:=ObjID;
inc(ss);
Say('ColvoScrl='+IntToStr(ss));
end;

Что может быть за ошибка в слове которое подчеркнули выделил?В чём ошбика?
djbandit вне форума   Ответить с цитированием
Старый 09.01.2008, 20:45   #147
Новичок
 
Регистрация: 04.01.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
keyn
По умолчанию СЕ хиллер

mks
Мужик, С прошедшими тебя праздниками!!!

Слушай за скрип твой на СЕ Хиллера огромный респект, все супер сделано - только вот у меня такая проблема пока незнаю как решить, Вообщем если задать значение HP больше чем есть реально у SE - SE начинает себя хилять пока руки не отсохнут - вот хотел какнибудь решить этот казус - может ли скрип какнибудь следить за максимальными значениями HP членов пати и уже исходя из этих значений хилять тех у кого это значение стало меньше? Извиняюсь за калабур сам еще от НГ не отошел )))
keyn вне форума   Ответить с цитированием
Старый 10.01.2008, 11:54   #148
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию Re: СЕ хиллер

Цитата:
Сообщение от keyn
mks
Мужик, С прошедшими тебя праздниками!!!

Слушай за скрип твой на СЕ Хиллера огромный респект, все супер сделано - только вот у меня такая проблема пока незнаю как решить, Вообщем если задать значение HP больше чем есть реально у SE - SE начинает себя хилять пока руки не отсохнут - вот хотел какнибудь решить этот казус - может ли скрип какнибудь следить за максимальными значениями HP членов пати и уже исходя из этих значений хилять тех у кого это значение стало меньше? Извиняюсь за калабур сам еще от НГ не отошел )))
скрипт запоминает все значиния и максимальные и текущие и HP и MP.
для твоего случая у меня там имеется переменная dev (extended) которая содержит в себе отношение текущего ХП к макс ХП, т.е. CurHP/MaxHP, так что здесь ты можешь немного переделать в условиях, что б сравнивалось не с текущим количеством ХП а с этой переменной, и будет хилить как тебе удобно, допустим если хп члена пати меньше чем 1/2 от максимума

Добавлено спустя 38 минут 34 секунды:
Re: ДА БУДЕТ БОТ!
или еще проще добавь в этом месте
for t:=1 to PartyCount do
begin
if (CurHP[t]=MinHP) and (CurHP[t]<MaxHP[t]) then
begin
NeedHP:=t;
break;
end;
end;
__________________
FA©Q!
mks вне форума   Ответить с цитированием
Старый 11.01.2008, 08:40   #149
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от Shnaider
например /assist MasterName?,атаку сделать смогу,но никак непойму как делается ассист
Смотришь кого выделяет коммандир (пакет Action) выдираешь из него ID цели, и при определенный условиях выделяешь объект с запомненныйм ID.
QaK вне форума   Ответить с цитированием
Старый 14.01.2008, 00:56   #150
Новичок
 
Регистрация: 04.01.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
keyn
По умолчанию

Цитата:
Сообщение от mks
или еще проще добавь в этом месте
for t:=1 to PartyCount do
begin
if (CurHP[t]=MinHP) and (CurHP[t]<MaxHP[t]) then
begin
NeedHP:=t;
break;
end;
end;
Блин, запутался я в трех соснах, если делать таким макаром, то SE начинает хилять как только HP начинает уменьшаться, но как только HP достигает Максимума SE продолжает тупо хилять полностью здорового перса - два дня ковыряюсь немогу найти где косяк...
keyn вне форума   Ответить с цитированием
Ответ

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


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

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

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


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

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

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