Новичок
Регистрация: 15.12.2012
Сообщений: 16
Сказал Спасибо: 2
Имеет 1 спасибку в 1 сообщении
|
Alexxxxx как ты преодолел в корректоре правильное отображение инвентаря для Бота 10.9.3, файлом L2InfoB.dat созданного от своего клиента проблема не решается.
Протокол клиента был 152, в боте пробовал все протоколы 146,148,152.
Хотел бы узнать есть ли решение для бота 10.9.3 ,сервер Эпилог, чтобы питомцы не определялись в как NPC , а то когда они начинают бафать их начинают атаковать члены пати.
Искал на просторах интернета решение, нашел вот такой скрипт, но что то он у меня не подошел, может кто знает в чем дело?
Код:
//Fix_PartyListPet.fsc Фикс отображения списка пати (сайманеры) для Gracia Final & Epiloge
//скрипт для WP PPC
Const Title = 'Title: Фикс отображения списка пати для Gracia+ by Be3geBJIa3';
Var
ID,iSID,iPckL: Integer;
iPos,iPos1,iCol,i,i1: Integer;
PObjectID,PMaxHP,PCurHP,PMaxMP,PCurMP,PMaxCP,PCurCP : Integer;
buf,StatusPacket,PName,: string;
begin
if not( gSys.isGS > 0 ) then exit;
if length(_gBuff) < 3 then begin
gBlockPacket;
exit;
end;
ID := gInt(_gBuff,3,1);
iPckL := length(_gBuff);
if (ID = $FE) or (ID = $D0) then begin
iSID := gInt(_gBuff,4,2);
end;
//
if _gFromServ then begin//пакеты от сервера
case ID of
//Начало блока если нужно перенести в свой скрипт, если используете case
$4E://PartySmallWindowAll
if (iPckL>62) and (gInt(_gBuff, $0C, 4)>=1) then begin
_gOutBuff := _gBuff;
iCol := gInt(_gBuff, $0C, 4);
i := 1;
iPos := 16;
while (i<=iCol) and (iPos<iPckL) do begin
iPos := ScanPck5(_gOutBuff, iPos+4,'s', buf, null, null, null, null);
iPos := iPos+44;
iPos1 := iPos;
if (iPos+8<=iPckL) then begin
if gInt(_gOutBuff, iPos+4, 4)>0 then begin//значит идет пет
//обнаружено 2 варианта, подбор методом проб
iPos := ScanPck5(_gOutBuff, iPos+16,'s', buf, null, null, null, null);
//iPos := ScanPck5(_gOutBuff, iPos+12,'s', buf, null, null, null, null);
inc(iPos,20);
end else begin
inc(iPos,8);
end;
i1 := iPos-iPos1;
iPos := iPos1;
delete(_gOutBuff,iPos,i1);
dec(iPckL,i1);
end;
inc(i);
end;
delete(_gOutBuff,1,2);
_gOutBuff := SetPckSize(_gOutBuff);
end;
$52://fix PartySmallWindowUpdate
begin
ScanPck5(_gbuff,ScanPck5(_gbuff,4,'dsddd',PObjectID,PName,PCurCP,PMaxCP,PCurHP),'ddd',PMaxHP,PCurMP,PMaxMP,null,null);
StatusPacket := FormatPck('%cdddddddddddddd',[$18,PObjectID,6,$09,PCurHP,$0A,PMaxHP,$0B,PCurMP,$0C,PMaxMP,$21,PCurCP,$22,PMaxCP]);
gSys.EnSendC(StatusPacket);
gSys.Sleep(10);
end;
//конец блока
end;
end else begin//пакеты от клиента
end;
end.
Последний раз редактировалось zevsloy, 13.01.2013 в 11:23.
|