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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 30.07.2008, 15:23   #1
Местный
 
Аватар для PanAm
 
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
PanAm
По умолчанию

ID пакета- это его первый байт
так же можно (нужно) посмотреть Packets.ini в корне ПХ, там (почти) все пакеты, которые ПХ расшифровывет, а также хорошо иметь под рукой T2packets.ini из wpf саурона.
512 мб... а не проще еще хотяб 1 планку прикупить?
PanAm вне форума   Ответить с цитированием
За это сообщение PanAm нажился спасибкой от:
Старый 30.07.2008, 17:07   #2
Местный
 
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
Amorality
По умолчанию

Решила написать сама условие о сообщение в пати , помогите разобраться с пакетом , смотрю формат пакета say2:
Формат:
XX XX // Длина
4A // Тип
Дальше все ясно ..
Как указывать длину? И как использовать тип в скрипте?

Добавлено через 52 секунды
А след строка тоже не понятна:
XX XX XX XX // Object Id того чара, от кого это сообщение
Как определить Obj.Id чара?

Добавлено через 48 минут
Оказывается object.id чара всегда разный?! Тогда как написать постоянный скрипт на проверку сообщения от чара?

Последний раз редактировалось Amorality, 30.07.2008 в 17:07. Причина: Добавлено сообщение
Amorality вне форума   Ответить с цитированием
Старый 30.07.2008, 17:28   #3
Местный
 
Аватар для PanAm
 
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
PanAm
По умолчанию

Код:
4A=Say2:h(ObjectID)d(Type)s(From)s(Message)
ObjectID - Пропускаем
Type - можно пропустить
From - Ник написавшего, то что надо
Message - сообщение
Все строки передаются в формате UNICode, тоесть например "Amorality" будет - "41 00 6D 00 6F 00 72 00 61 00 6C 00 69 00 74 00 79 00" + "00 00"
ReadS() считывает эту строку уже в формате String "Amorality" = "41 6D 6F 72 61 6C 69 74 79"
Теперь попробуем написать скрипт
Delphi Код:
var    i:integer; begin   In FromServer and (pck[1]=#$4A) then begin     i := 10; //Имя с 10 байта     if ReadS(i) = 'Amorality' then //Считываем, сравниваем и увеличиваем i на длину ника       if ReadS(i) = 'dence me plz' then //Считываем, сравниваем сообщение          ....И понеслось   end; end.
Вот примерно так
это не совсем рабочий пример
Например - написав сообщение, вы получите этот пакет в оба окна, надо вставлять еще проверку на соединение (ConnectName)

Последний раз редактировалось PanAm, 30.07.2008 в 17:33.
PanAm вне форума   Ответить с цитированием
За это сообщение PanAm нажился спасибкой от:
Старый 30.07.2008, 18:09   #4
Местный
 
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
Amorality
По умолчанию

Блин , сама хотела написать , ну спасибо ) Допишу еще , конект нейм и тип пати и буду использовать еще раз спасибо

Добавлено через 13 минут
var
i:integer;
o:integer;
begin
If FromServer and (ConnectName='BDGirl') and (pck[1]=#$4A) then begin
i := 10; //Имя с 10 байта
if ReadS(i) = 'Amorality' then //Считываем, сравниваем и увеличиваем i на длину ника
if ReadS(i) = '-dance' then //Считываем, сравниваем сообщение
buf:=hstr('2F 11 01 00 00 00 00 00 00 00');
SendToServer;
end;
If FromServer and (ConnectName='BDGirl') and (pck[1]=#$4A) then begin
i:= 10; //Имя с 10 байта
o:=11; //ник вроде как 11 длинной
if ReadS(o) = 'Amorality2' then //Считываем, сравниваем и увеличиваем i на длину ника
if ReadS(o) = '-dance' then //Считываем, сравниваем сообщение
buf:=hstr('2F 11 01 00 00 00 00 00 00 00');
SendToServer;
end;
end.

---
Я немного видоизменила скрипт , верен ли он? Задача скрипта .. Бд с ником BDGirl танцует , если в чат Amorality или Amorality2 напишет -dance

Последний раз редактировалось Amorality, 30.07.2008 в 18:11. Причина: Добавлено сообщение
Amorality вне форума   Ответить с цитированием
Старый 30.07.2008, 18:52   #5
Местный
 
Аватар для PanAm
 
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
PanAm
По умолчанию

Не правильно ReadS(i) автоматом увеличивает i на длину строки
o:integer просто лишне.
длина "Amorality2" 10*2+2
тело внитри условия одинаково, лучше тогда так
delphi Код:
var    Commandir : string; .......     i := 10; //Имя с 10 байта     Commandir := ReadS(i); //Сохранили ник написавшего и увеличиваем i на длину ника     if (Commandir = 'Amorality') or (Commandir = 'Amorality2') then //сравниваем       if ReadS(i) = '-dence' then begin//Считываем, сравниваем сообщение          buf:=hstr('2F 11 01 00 00 00 00 00 00 00');         SendToServer;       end; ........

Добавлено через 4 минуты
Вот и начинается интересное
вы получили один танец на команду, теперь есть 2 пути -
1. В лоб размножить скрипт и давать отдельную команду на каждый танец.
2. Подумать как танцевать серию танцев
Для примера можно почитать тут
http://coderx.ru/showthread.php?t=14
и тут http://coderx.ru/showthread.php?t=397

Последний раз редактировалось PanAm, 30.07.2008 в 18:54. Причина: Добавлено сообщение
PanAm вне форума   Ответить с цитированием
За это сообщение PanAm нажился спасибкой от:
Старый 30.07.2008, 19:03   #6
Местный
 
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
Amorality
По умолчанию

Цитата:
Сообщение от PanAm Посмотреть сообщение
Вот и начинается интересное
вы получили один танец на команду, теперь есть 2 пути -
А так нельзя?
buf:=hstr('2F 11 01 00 00 00 00 00 00 00');
SendToServer;
buf:=hstr('2F 14 01 00 00 00 00 00 00 00');
SendToServer;
----

ПС А на счет варианта твоего последнего скрипта , будет ли правильно , что ты не описал переменную i в разделе Var?
Amorality вне форума   Ответить с цитированием
Старый 30.07.2008, 19:06   #7
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от Amorality Посмотреть сообщение
А так нельзя?
buf:=hstr('2F 11 01 00 00 00 00 00 00 00');
SendToServer;
buf:=hstr('2F 14 01 00 00 00 00 00 00 00');
SendToServer;
нет, сервер максимум два подряд идущих пакета на юз скил обработает и в результате выполнит тока первый и последний если будет больше двух...

Цитата:
Сообщение от Amorality Посмотреть сообщение
ПС А на счет варианта твоего последнего скрипта , будет ли правильно , что ты не описал переменную i в разделе Var?
а он там и не скрипт указал а тока новые или измененные части так что i естесно надо обьявлять)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Старый 30.07.2008, 19:34   #8
Местный
 
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
Amorality
По умолчанию

Код:
var
   i,x : integer;
   Commandir : string;
   Bissy : Boolean;
begin
  case x of
    1: begin //Блок магического танца начался
     buf:=hstr('2F 11 01 00 00 00 00 00 00 00'); //Dance Of Mystic
     SendToServer; 
     inc(x);
     Bissy:=true;
     end;
     2: begin
     buf:=hstr('2F 14 01 00 00 00 00 00 00 00'); //Dance Of Concentration
     SendToServer; 
     inc(x);
     Bissy:=false;
     end;
     3: begin //Блок воинского танца начался
     buf:=hstr('2F 0F 01 00 00 00 00 00 00 00'); //Dance Of Warrior
     SendToServer; 
     inc(x);
     Bissy:=true;
     end;
     4: begin
     buf:=hstr('2F 13 01 00 00 00 00 00 00 00'); //Dance Of Fury
     SendToServer; 
     inc(x);
     Bissy:=true;
     end;
     5: begin
     buf:=hstr('2F 12 01 00 00 00 00 00 00 00'); //Dance Of Fire
     SendToServer; 
     inc(x);
     Bissy:=false;
     end;
end;
end.

begin
  If FromServer and (pck[1]=#$4A) then begin
   i := 10; //Имя с 10 байта
    Commandir := ReadS(i); //Сохранили ник написавшего и увеличиваем i на длину ника
    if (Commandir = 'Amorality') or (Commandir = 'Amorality2') then //сравниваем 
      if ReadS(i) = '-mdance' then begin //Считываем, сравниваем сообщение
      if not Bissy then begin
      x:=1; //Ссылка на блок с магическим дансом
     end;
end;
end;
end;
end;

begin
  If FromServer and (pck[1]=#$4A) then begin
   i := 10; //Имя с 10 байта
    Commandir := ReadS(i); //Сохранили ник написавшего и увеличиваем i на длину ника
    if (Commandir = 'Amorality') or (Commandir = 'Amorality2') then //сравниваем 
      if ReadS(i) = '-wdance' then begin //Считываем, сравниваем сообщение
      if not Bissy then begin
      x:=3; //Ссылка на блок с воинским дансом
     end;
end;
end;
end;
end;
Вот написала скрипт , его задача, если чар Amorality или Amorality2 пишет в чат -mdance , То BDGirl бафает 2 данса: Mystic и Concentration , а есле -wdance , то BDGirl бафает 3 данса : Fury,warrior,fire.

В общем я почти уверена , что скрипт написан не правильно , поправьте пожалуйста , потестить сама не могу , сервер , где я играю на профилактике до сих пор.

Последний раз редактировалось Amorality, 30.07.2008 в 22:20.
Amorality вне форума   Ответить с цитированием
Старый 30.07.2008, 21:57   #9
Местный
 
Аватар для PanAm
 
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
PanAm
По умолчанию

да, к сожелению. все неверно...
PanAm вне форума   Ответить с цитированием
Старый 30.07.2008, 22:19   #10
Местный
 
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
Amorality
По умолчанию

Совсем все? Ну ладно если это уже не поправить , то буду водить ботов макросами в пати чат , туда вроде нету ограничений

Добавлено через 5 минут
Хм , сунула скрипт в l2phx , ошибок нету , запускается , но попробовать на деле к сожалению не могу .. Может все таки его можно исправить?

Последний раз редактировалось Amorality, 30.07.2008 в 22:19. Причина: Добавлено сообщение
Amorality вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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