PDA

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


Хламчег
05.08.2011, 19:26
помогите разобраться, вроде все написал правильно... выдает ошибку EInOutError: I/O error 105
В скрипте я задаю Оиды итемов, координаты для сброса, и должно получиться так что итемы бросаются на пол по очереди. помогите!

const
name='';
TimerInterval=1000;
max=4; //количестко итемов для дропа

x=15927;
y=143135;
z=-2762;

itm1=1075319858;
itm2=1075319828;
itm3=1075319859;
itm4=1075319826;

var
timer1:TTimer;
mass: array [1..max] of integer;
i:integer;
procedure Init; //Вызывается при включении скрипта
begin
start;
Timer1:= TTimer.Create(nil) ;
Timer1.Interval := TimerInterval ;
Timer1.Enabled := False ;
Timer1.Ontimer := @OnTimer ;
end;

procedure Free; //Вызывается при выключении скрипта
begin
Timer1.Enabled := False;
end;
procedure start;
begin
mass[1]:=itm1;
mass[2]:=itm2;
mass[3]:=itm3;
mass[4]:=itm4;
i:=1;
Timer1.Enabled := True;
end;
Procedure OnTimer;
begin
buf:=#$12;
WriteD(mass[i]);
WriteD(1);
WriteD(x);
WriteD(y);
WriteD(z);
SendToServerEx(Name);
if i<max then i:=i+1 else i:=1;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin

end.

Kilatif
05.08.2011, 19:58
Procedure OnTimer;

Если я не ошибаюсь, она должна быть
Procedure OnTimer(Sender : TObject);

А еще почему таймер включается еще даже до того, как ему инициализировали процедуру OnTimer? А точнее сначала его включают, а потом выключают :D

(Вызывается процедура start, в которой есть строчка Timer1.Enabled := True; Хотя видно что только после выполнения процедуры start таймеру назначается интервал, потом таймер выключается опять Timer1.Enabled := False ; и потом назначается процедура OnTimer)

Хламчег
05.08.2011, 22:29
Спасибо))