Новичок
Регистрация: 09.03.2009
Сообщений: 10
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
|
Все сделал как ты сказал, не пашет(, только сообщение клиенту отсылает что скрипт загружен, остальные действия не прокатывают, пробывал потом еще перед каждым SendToServer типа
begin
UseForConnectName := myname;
buf:=hstr('2F');
SendToServer;
end;
поставить все равно не идет
вот вариант который я по твоему предложнию откорректировал
Оффтоп
Код:
const
myname ='MypJIo'; //<<== пишем свой НИК
max = 200;//<<== колличество ячеек в рюкзаке
chat = 3;// <<== какой ЧАТ выводить сообщения
var
BaseItems:array[1..max,1..11] of integer;
BaseID:array[1..max] of integer;
Timer01: TTimer;
Timer02: TTimer;
Timer03: TTimer;
flag,start,select,selectID,autoMsg:Boolean;
autostart:Boolean;
mytext:string;
ListSize,ItemEnch:word;
textID,itemID:integer;
enchantObjectID:integer;
enchantID,skrolObjectID:integer;
ItemOID,objectOID: integer;
sumskrol,sumitemID: integer;
t,l,d,x,y,ii:integer;
maxlvl: integer;
GetiD:integer;
skrolID,skrolObj:integer;
index:integer;
//-----------------------------------------
procedure SendMsg2(msg:string);
begin
if autoMsg then begin
buf:=#$4A;
WriteD(0);
WriteD(chat);// <<=куда выводить сообщения
WriteS('');
WriteS(msg);
SendToClient;
end;
end;
//===========================================
procedure Resultmaxlvl;
var
i:integer;
begin
i:=2;
mytext:=ReadS(i);
textID:=ReadD(i);
if (textID=3) then begin
maxlvl:=StrToInt(mytext);
SendMsg2( ' Установлен МАХ Уровень Заточки : '+IntToStr(maxlvl)+'' );
end;
end;
//..............................................................................
procedure ItemList;
var
i, j, k: integer;
count,x:integer;
begin
deleteBase;
count:=0;
x:=0;
y:=0;
j:=4;
ListSize:=ReadH(j);
for i:=1 to ListSize do
if (i<=ListSize) then begin
BaseItems[i,1]:=ReadH(j); //ItemType1
BaseItems[i,2]:=ReadD(j); //ObjectID
BaseItems[i,3]:=ReadD(j); //ItemID
BaseItems[i,4]:=ReadD(j); //LocationSlot
BaseItems[i,5]:=ReadD(j); // Amount:
BaseItems[i,6]:=ReadD(j); // Amount:
BaseItems[i,7]:=ReadH(j);//ItemType2
BaseItems[i,8]:=ReadH(j);// CustomType1
BaseItems[i,9]:=ReadH(j);//isEquipped:
BaseItems[i,10]:=ReadD(j);//BodyPart
BaseItems[i,11]:=ReadH(j);//EnchantLevel
inc(x); // счетчик
count:=round((Length(pck)-5) / ListSize);
y:=count*x-(j-6);
inc(j,y);
end else for k:=1 to 11 do BaseItems[i,k]:=0;
if start and (0 < skrolObjectID) then begin
sumskrol:=0;
sumskrol:=Getitem(skrolID,3,5);
SendMsg2 (' SKROL ... c ID : '+IntToStr(skrolID)+' = '+IntToStr(sumskrol)+' ШТ ');
if start and (0<sumskrol) then Timer01.enabled:=true;
if start and (sumskrol=0) then begin
stopEnchantItem;// остановка скрипта
SendMsg2 ('........ НЕДОСТАТОЧНО SKROL........ ');
end;
end;
end;
//=============================
procedure deleteBase;
var
i,j,k:integer;
begin
for i:=1 to max do
BaseItems[i,1]:=0;
BaseItems[i,2]:=0; //ObjectID
BaseItems[i,3]:=0; //ItemID
BaseItems[i,4]:=0;
BaseItems[i,5]:=0;
BaseItems[i,6]:=0;
BaseItems[i,7]:=0;
BaseItems[i,8]:=0;
BaseItems[i,9]:=0;
BaseItems[i,10]:=0;
BaseItems[i,11]:=0;
end;
//===========================
function Getitem(Obj,up,down:integer): integer;
var
i:integer;
begin
Result:= 0; //В начале у нас 0
for i:=1 to max do
if (BaseItems[i,up]=Obj) then begin
Result:=BaseItems[i,down];
end;
end;
//===========================
function Getsumitem(Obj,up,down:integer): integer;
var
i:integer;
begin
Result:= 0; //В начале у нас 0
for i:=1 to max do
if (BaseItems[i,up]=Obj) then begin
Result:=Result+BaseItems[i,down];
end;
end;
//добавляем в базу ID предмета
procedure addIDtoarray(ItemOID:integer);
begin
SendMsg2( '------------------------------------- ' );
SendMsg2 (' добавить в базу для заточки ID : '+IntToStr(ItemOID)+' Предмета ');
SendMsg2(' .................' );
flag:=false;
for ii:=1 to max do
if (BaseID[ii]=ItemOID) then begin // текущий ID уже есть в массиве,
flag := true;
sumitemID:=Getsumitem(ItemOID,3,5);//счет скоко предметов
SendMsg2 (' предмет в базе есть с ID : '+IntToStr(ItemOID)+' = '+IntToStr(sumitemID)+' ШТ ');
SendMsg2( '------------------------------------- ' );
Break; // прерываем дальнейший перебор массива.
end;
if (flag = false) then begin
for ii:=1 to max do
if (BaseID[ii]=0) then begin // добавим ID в массив,
BaseID[ii]:=ItemOID;
index:=ii;
sumitemID:=Getsumitem(ItemOID,3,5);//счет скоко предметов
SendMsg2 (' Добавлен Предмет с ID : '+IntToStr(ItemOID)+' = '+IntToStr(sumitemID)+' ШТ ');
SendMsg2( '------------------------------------- ' );
Break; // прерываем дальнейший перебор массива.
end;
end;
end;
Последний раз редактировалось Maxima, 08.12.2009 в 21:07.
|