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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Результаты опроса: Нужна ли такая тема форуму?
Да, мне бы была полезна. 34 66.67%
Пускай будет, но мне и так норм. 10 19.61%
Нет, не нужна. 7 13.73%
Голосовавшие: 51. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Опции просмотра
Старый 06.03.2011, 12:26   #1
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

хех) окей, где-то писал... ща найду..
delphi Код:
const Name='OldMen'; offset=68; var Inventory:array of variant; procedure Init; //Вызывается при включении скрипта begin buf:=#$14; SendToServerEx(Name); SetLength(Inventory,0); end; procedure Free; //Вызывается при выключении скрипта begin end; procedure ItemList; var i:integer; v:variant; begin SetLength(Inventory,0); if ReadH(4)<1 then exit; for i:=0 to ReadH(4)-1 do begin v:=[0,1,2]; v[0]:=ReadD(i*offset+6)//0 - OID v[1]:=ReadD(i*offset+10); //1 - ItemID v[2]:=ReadQ(i*offset+18); //2 - Count SetLength(Inventory,length(Inventory)+1); Inventory[length(Inventory)-1]:=v; end; end; procedure InventoryUpdate; var i,j:integer; v:variant; begin if ReadH(2)<1 then exit; for i:=0 to ReadH(2)-1 do begin v:=[0,1,2]; v[0]:=ReadD(i*offset+6); v[1]:=ReadD(i*offset+10); v[2]:=ReadQ(i*offset+18); case ReadH(i*offset+4) of 1: begin SetLength(Inventory,length(Inventory)+1); Inventory[length(Inventory)-1]:=v; end; 2: begin j:=FindItemByParams(v,0); if j=-1 then exit; Inventory[j]:=v; end3: begin j:=FindItemByParams(v,0); if j=-1 then exit; if (j<>length(Inventory)-1) then Inventory[j]:=Inventory[length(Inventory)-1]; SetLength(Inventory,length(Inventory)-1); end; end;    end; end; function FindItemByParams(v:variant;p:byte) : integer; var i:integer; tempv:variant; begin result:=-1; for i:=0 to length(Inventory)-1 do begin tempv:=Inventory[i]; if tempv[p]=v[p] then begin result:=i; exit; end; end; end; function Say2 : boolean; var i:integer; v:variant; begin result:=true; case ReadS(2) of 'how': CreatureSay('Всего вещей '+inttostr(length(Inventory))); 'say all' : for i:=0 to length(Inventory)-1 do begin v:=Inventory[i]; CreatureSay(IntToStr(i+1)+'. OID='+inttostr(v[0])+'; ItemID='+inttostr(v[1])+'; Count='+inttostr(v[2])); end; else result:=false; end; if result then pck:=''; end; procedure CreatureSay(s:string); begin buf:=#$4A; WriteMask('ddss',[0,3,'Инфо',s]); SendToClientEx(Name); end; //основная часть скрипта //вызывается при приходе каждого пакета если скрипт включен begin if FromServer and (ConnectName=Name) then case pck[1] of #$11: ItemList; #$21: InventoryUpdate; end; if FromClient and (ConnectName=Name) then case pck[1] of #$49: Say2; end; end.
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился 4 спасибками от:
Ответ

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



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

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


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

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

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