Скрипт танка для рб.
Танк агрит рб и бегает по кругу(чуть рандомно), имитирует работу обычного танка на рб.
Код
//AVTOR ATMS_DIFKS
{
1 запускаем скрипт
2 выделяем рб в таргет
3 любой сопартиец может сказать в пати фразу "го" и танк начнет танковать
фраза "с уд" говорит танку использовать уд, когда он начнет танковать
фраза "без уд" говорит танку не использовать уд
Фраза "все" останавливает работу танка
танк агрит каждые 4 сек
Ети фразы принимаются от любого персонажа находящегося в пати с танком
}
const name = 'Имя танка';
Var
l,t,id,x,y,z,n,rx,ry,rz,xn,yn,zn,mv,ud:integer;
nik,ms:string;
Tim01: TTimer;
atk:boolean;
procedure SendMsc(msc:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(2); //тип сообщения 1 шаут 2 приват 10 аноним обьявление и тд
WriteS('танк'); //ник от кого
WriteS(msc);
SendToClientEX(name);
end;
procedure Say(msc:string);
begin
buf:=#$38;
WriteS(msc);
WriteD(3);
SendToServerEX(name);
end;
procedure Init; //Вызывается при включении скрипта
begin
id:=0; ud:=0;
Tim01:=TTimer.Create(nil); //Не менять!
Tim01.OnTimer:=@OnTim011; //Не менять!
Tim01.enabled:=false; //Не менять!
Tim01.interval:=4000; //Не менять!
Tim01.enabled:=false; //Не менять!
end;
procedure mov;
begin
buf:=#$01;
WriteD(xn);
WriteD(yn);
WriteD(zn);
WriteD(rx);
WriteD(ry);
WriteD(rz);
WriteD(1);
SendToServerEX(name);
end;
procedure OnTim011;
begin
randomize;
mv := round(random()*300);
if ud = 1 then
begin
buf:=hstr('2F 6E 00 00 00 00 00 00 00 00');
SendToServerEX(name);
ud:=0;
end;
if atk = true then
begin
buf:=hstr('2F 1C 00 00 00 00 00 00 00 00 ');
SendToServerEX(name);
//atk:=false;
// n:=0;
end;
n:=n+1;
if n = 1 then begin xn:=x+1000+mv; yn:=y+mv; zn:=z; mov; end;
if n = 2 then begin xn:=x+mv; yn:=y-1000+mv; zn:=z; mov end;
if n = 3 then begin xn:=x-1000+mv; yn:=y+mv; zn:=z; mov; end;
if n = 4 then begin xn:=x+mv; yn:=y+1000+mv; zn:=z; mov; end;
if n = 4 then n:=0;
end;
procedure Free; //Вызывается при выключении скрипта
begin
Tim01.free;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromClient and (pck[1]=#$48) and (ConnectName=name) then
begin
rx:=ReadD(2);
ry:=ReadD(6);
rz:=ReadD(10);
end;
if id = 0 then begin SendMsc('Выдели РБ в таргет'); id:=1; end;
if fromclient and (ConnectName=name) and (pck[1]=#$04) then begin if id = 1 then begin x:=ReadD(6); y:=ReadD(10); z:=ReadD(14); id:=ReadD(2); SendMsc('Т34');end;end;
if FromServer and (pck[1]=#$4A) and (ConnectName=name) then
begin
t:=ReadD(6);
nik:=ReadS(10);
l:=12+(length(nik)*2);
ms:=ReadS(l);
if (ms = 'го') and (t=3) then begin say('агрю'); Tim01.enabled:=true; atk:=true; end;
if (ms = 'с уд') and (t=3) then begin say('понял с уд'); ud:=1; end;
if (ms = 'без уд') and (t=3) then begin say('понял без уд'); ud:=0; end;
if (ms = 'все') and (t=3) then begin say('оке'); Tim01.enabled:=false; atk:=true; end;
end;
end.