Вход

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


reedsuper
17.01.2010, 17:32
Нашел у вас скрипт .. но он не работает,помогите с синтаксисом ..
(Intelude)

const
Name='mind';
max=79; //Слотов в инвентаре
var
ItemBase: array[1..4,1..max] of integer;
ready:boolean;

procedure Init;
begin
ready:=false;
buf:=#$0F;
SendToServerEx(Name);
end;

//************************************************** *************
procedure CreateItemBase;
var
i, j, ListCount: integer;
begin
for i:=1 to max do begin
//очищаем масив
ItemBase[1,i]:=0; //OID
ItemBase[2,i]:=0; //ID
ItemBase[3,i]:=0; //kol-vo
ItemBase[4,i]:=0; //lvl
end;
j:=4;
ListCount:=ReadH(j);
j:=8;
for i:=1 to ListCount do begin
itemBase[1,i]:=ReadD(j); //OID
itemBase[2,i]:=ReadD(j); //ItemID
itemBase[3,i]:=ReadD(j); //кол-во
inc(j,10);
itemBase[4,i]:=ReadH(j);//EnchantLevel
inc(j,12);
end;
end;
//......................................
//************************************************** ****************************
procedure InventoryUpdate; //пакет 27, обновляет базу ObjectID по ItemID
var
i, ii, j, OID, ID, Count, ListCount, UpdType, lvl: integer;
add : boolean;
begin
add:=false;
ListCount:=ReadH(2);
j:=4;
for ii:=1 to ListCount do begin
add:=false; //Ели додумался изза чего не добавляет сразу несколько предметов в базу
UpdType:=ReadH(j);
ReadH(j); //ItemType1
OID:=ReadD(j); //ObjectID
ID:=ReadD(j); //ItemID
Count:=ReadD(j); //кол-во
inc(j,10);
lvl:=ReadH(j);
case UpdType of
1: begin
for i:=1 to max do begin
if (ItemBase[1,i]=0) and (add=false) then begin
ItemBase[1,i]:=OID;
ItemBase[2,i]:=ID;
ItemBase[3,i]:=Count;
ItemBase[4,i]:=lvl;
add:=true;
end;
end;
end;
2: begin
for i:=1 to max do begin
if ItemBase[1,i]=OID then begin
ItemBase[3,i]:=Count;
ItemBase[4,i]:=lvl;
if OID=arItemOID[arNum] then CurEnchLvl:=lvl;
end;
end;
end;
3: begin
for i:=1 to max do begin
if ItemBase[1,i]=OID then begin
ItemBase[1,i]:=0;
ItemBase[2,i]:=0;
ItemBase[3,i]:=0;
ItemBase[4,i]:=0;
end;
end;
end;
end;
inc(j,10);
end;
end;
//......................................

function SumItem(Item: integer):integer;
var
sum, i : integer;
begin
result:=0;
for i:=1 to max do begin
if (ItemBase[2,i]=item) then begin
result:=result+ItemBase[3,i];
end;
end;
end;

BEGIN
//--- INVENTORY BEGIN ---//
if FromServer and (ConnectName=Name) then case pck[1] of
#$1B: begin
CreateItemBase;
ready:=true;
end;
#$27: begin
InventoryUpdate;
ready:=true;
end;
end;
//--- INVENTORY END ---//
if (SumItem(6577)<=5) and (ready=true) then begin
buf:=HStr('мой пакет');
SendToServerEx(Name);
ready:=false;
end;
END.

QaK
17.01.2010, 18:45
где нашел, ччей скрипт, сам пытался править?

reedsuper
17.01.2010, 19:11
http://coderx.ru/showthread.php?t=1771&highlight=akkerman
вот тема
Пытался.. но безуспешно,я полный ноль в этом
Изменил консты под себя только.

NLObP
19.01.2010, 00:13
reedsuper, скрипты написаны на языке Паскаль. Поищи книжечку по этому языку и почитай. Быстрее получится.
//QaK: а также толковый словарь - определение слова "синтаксис".