PDA

Просмотр полной версии : Скриптик


KrazyKeNNy
02.07.2008, 16:19
Выложите, пожалуйста скрипт на автоматическое принятие ботом пати.

raid
02.07.2008, 17:36
const
Name='raid';
procedure Init; //Вызывается при включении скрипта
begin
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if (ConnectName=Name) and FromServer and (pck[1]=#$39) then begin
// ReadS(2) - ник того кто кинул пати.
buf:=#$2A;
WriteD(1); // 0 - отказ от пати
SendToServerEx(Name);
end;
end.
И еще вдобавку изучал тут, для написание бафа варлока/еса:
кинуть пати:
c29=RequestJoinParty:c(ID)s(Name)d(ItemDistributio n)
s3A=JoinParty:c(ID)d(response)
s4F=PartySmallWindowAdd:[trash]

принять пати:
s39=AskJoinParty:c(ID)s(requestorName)d(itemDistri bution)
c2A=RequestAnswerJoinParty:c(ID)d(Response) "2A 01 00 00 00"
s4E=PartySmallWindowAll:[trash]

Порвать пати:
c2B=RequestWithDrawalParty:c(ID)
s50=PartySmallWindowDeleteAll:c(ID)

Баф (отмена торговли, баф, снова торговля):
73
76
45 F3 03 00 00 00 00 00 00 00
73
74 00 00 00 00 01 00 00 00 6E 0A 0B 10 01 00 00 00 00 F1 53 65

c73=RequestPrivateStoreManage
c76=RequestPrivateStoreQuit
c45=RequestActionUse:c(ID)d(ActionID)d(CtrlPressed )c(ShiftPressed)
c73=RequestPrivateStoreManage
c74=SetPrivateStoreListSell:c(ID)d(Package)d(ListC ount)d(ObjectID)d(Count)d(Price)

Инфа о покупке:
SystemMessage: 64
Ex: 64 7C 01 00 00 03 00 00 00 00 00 00 00 4D 00 61 00 6D 00 79 00 00 00 03 00 00 00 B3 05 00 00 01 00 00 00 01 00 00 00

s64=SystemMessage:c(ID)d(MsgID)d(ParamsCount)-(4)s(Name)-(4)d(ItemID)d(Count)

Написание в пати:
38 1F 04 3E 04 3A 04 43 04 3F 04 30 04 39 04 20 00 3E 04 34 04 3D 04 43 04 20 00 10 04 10 04 2C 00 20 00 4F 04 20 00 31 04 30 04 44 04 3D 04 43 04 2E 00 00 00 03 00 00 00

c38=Say:s(Text)d(Type)
Text:='Покупай одну АА, я бафну.';
Typ:=3;

mks
02.07.2008, 19:04
raid,
все нормально, но тут есть один нюанс:
тебе кинули пати, да в этом скрипте бот примет пати, но диалоговое окно в клиенте о приеме в пати останется, и когда шкала пройдет клиент автоматом пошлет пакет кэнслпати 2A 00 00 00 00, либо если нажмете согласиться 2A 01 00 00 00, поэтому советую добавить в скрипт гашение этого пакета

begin
if fromclient and (pck[1]=#$2A) then pck:=''; //<-------собсно вот

if (ConnectName=Name) and FromServer and (pck[1]=#$39) then begin
// ReadS(2) - ник того кто кинул пати.
buf:=#$2A;
WriteD(1); // 0 - отказ от пати
SendToServerEx(Name);
end;


end.

фигня... поробуй сам.. ну поймет клиент что пати просрал он и что будет? на разрыв пати запрос отдаст? нефига...