Цитата:
Сообщение от semiromid
Подправте плз.
|
Вот так примерно.
delphi Код:
var
PAName, Name: String;
BafNaBibor: String;
Lider, Index: integer;
procedure Init; //Вызывается при включении скрипта
begin
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromServer and (ConnectName=Name) and (pck[1]=#$39) then
begin //от сервера получен пакет s39=AskJoinParty:s(requestorName)d(itemDistribution)
Lider:= 2;
PAName:= ReadS(Lider);
if (PAName = 'Сэдрик') then
buf:=Hstr('43 01 00 00 00') //Создаем пакет "Принять пати" c43=RequestAnswerJoinParty:d(Response)
else
buf:=hstr('43 00 00 00 00'); //Создаем пакет "Отказать от пати" c43=RequestAnswerJoinParty:d(Response)
pck :=''; //убиваем пакет s39
SendToServer;
end;
if FromServer and (pck[1] = #$4A) and (ConnectName=name) then //s4A=CreatureSay:d(ObjectID)d(textType:Get.FSay2)s(charName)d(npcString)s(Message)
begin //Кто-то написал в чат
Index:=10; //смещение для charName
ReadS(Index); //Index - начальная позиция чтения, которая модифицируется функцией (сдвигается на число считанных байт)
ReadD(Index); //читаем в никуда, чтобы пропустить ещё 4 байта
BafNaBibor:=ReadS(Index); //считываем Message
if (BafNaBibor='4') then
begin //Если нам в чат написали 4-ре, то выполняем действие дельше
timer.enabled:=true;
TimerStep:=606;
end;
end;
end.
Код:
Tèï: 0x4A (CreatureSay)
Размер: 31+2
Время прихода: 14:32:27:024
0002 d ObjectID: 270587955 (0x1020D833)
0006 d textType: # PARTY ID:3 (0x0003)
0010 s charName: Сэдрик
0024 d npcString: -1 (0xFFFFFFFF)
0028 s Message: 4
PS:
здесь полезная информация