Скриптинг Форум посвещенный созданию скриптов для L2PacketHack
Результаты опроса: Нужна ли такая тема форуму?
Да, мне бы была полезна.
34
66.67%
Пускай будет, но мне и так норм.
10
19.61%
Нет, не нужна.
7
13.73%
05.03.2011, 11:41
#1
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
да какие тут могут быть примеры) вообще, по-хорошему, надо делать так:
1. Создание картины мира (совсем по-хорошему абсолютно полную)
2. И потом по этим данным уже делать действия которые тебе нужны.
через массивы то конечно можно все что угодно сделать)
но TList и класс скажем
TL2Item=class
public
OID,ID:integer;
Count:int64;
Enachant:smallint;
isEquipped:boolean; //и тд
end;
так удобнее, согласись
ну а тут судя по всему придется делать массивы, потом опять же массив нпсов, массив текущего мультиселла, расшифровщик хтмла(наверное) и думаю этого хватит.
__________________
Н а ч а л о .
05.03.2011, 23:11
#2
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
Так более универсально - для C4
delphi Код:
var
ItemID, ItemOID, ItemEnch: integer ; //ItemID затачиваемого предмета
//ITEMs
BaseItems: array[1 ..maxitems , 1 ..12 ] of integer ; //все предметы в инвентаре
//......................................
Procedure ItemList; //создание базы предметов
var
i, j, count : integer ;
values : array[0 ..8 ] of variant ;
begin
count:=round ( ( length ( pck) -5 ) /ReadH( 4 ) ) ;
for j:=1 to 12 do for i:=1 to maxitems do BaseItems[i,j]:=0 ;
for i:=0 to ReadH( 4 ) -1 do
begin
readmask( 'hdddhhhdh' , 6 +i*count, values) ;
BaseItems[i+1 ,2 ]:=values[1 ]; //OID
BaseItems[i+1 ,3 ]:=values[2 ]; //ItemID
BaseItems[i+1 ,5 ]:=values[3 ]; //Amount (кол-во предметов)
BaseItems[i+1 ,10 ]:=values[8 ]; //EnchLvl
end ;
end ;
//......................................
Procedure InventoryUpdate;
var
i, j, obj, count : integer ;
values : array[0 ..9 ] of variant ;
begin
count:=round ( ( length ( pck) -3 ) /ReadH( 2 ) ) ;
for i:=0 to ReadH( 2 ) -1 do
begin
readmask( 'hhdddhhhdh' , 4 +i*count, values) ;
case values[0 ] of
1 : obj:=0 ;
2 : obj:=values[2 ];
3 : begin
for i:=1 to maxitems do
if BaseItems[i,2 ]=values[2 ] then
begin
for j:=1 to 12 do BaseItems[i,j]:=0 ;
break ;
end ;
continue ;
end ;
end ;
for i:=1 to maxitems do
if BaseItems[i,2 ]=obj then
begin
BaseItems[i,2 ]:=values[2 ]; //OID
BaseItems[i,3 ]:=values[3 ]; //ItemID
BaseItems[i,5 ]:=values[4 ]; //Amount
BaseItems[i,10 ]:=values[9 ]; //EnchLvl
break ;
end ;
end ;
end ;
Тоже самое для Freya
delphi Код:
//......................................
Procedure ItemList; //создание базы предметов
var
i, j, count : integer ;
values : array[0 ..8 ] of variant ;
begin
count:=round ( ( length ( pck) -5 ) /ReadH( 4 ) ) ;
for j:=1 to 12 do for i:=1 to maxitems do BaseItems[i,j]:=0 ;
for i:=0 to ReadH( 4 ) -1 do
begin
readmask( 'dddqhhhdh' , 6 +i*count, values) ;
BaseItems[i+1 ,2 ]:=values[0 ];
BaseItems[i+1 ,3 ]:=values[1 ];
BaseItems[i+1 ,5 ]:=values[3 ];
BaseItems[i+1 ,10 ]:=values[8 ];
end ;
end ;
//......................................
Procedure InventoryUpdate;
var
i, j, obj, count : integer ;
values : array[0 ..9 ] of variant ;
begin
count:=round ( ( length ( pck) -3 ) /ReadH( 2 ) ) ;
for i:=0 to ReadH( 2 ) -1 do
begin
readmask( 'hdddqhhhdh' , 4 +i*count, values) ;
case values[0 ] of
1 : obj:=0 ;
2 : obj:=values[1 ];
3 : begin
for i:=1 to maxitems do
if BaseItems[i,2 ]=values[1 ] then
begin
for j:=1 to 12 do BaseItems[i,j]:=0 ;
break ;
end ;
continue ;
end ;
end ;
for i:=1 to maxitems do
if BaseItems[i,2 ]=obj then
begin
BaseItems[i,2 ]:=values[1 ];
BaseItems[i,3 ]:=values[2 ];
BaseItems[i,5 ]:=values[4 ];
BaseItems[i,10 ]:=values[9 ];
break ;
end ;
end ;
end ;
За это сообщение NLObP нажился 3 спасибками от:
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 00:56 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!