"...в фс нет..типа данных ShortStrings..." -->> ссылка
выполни Оффтоп
delphi Код:
var
a:string;
i:integer;
procedure Init; //Вызывается при включении скриптаbeginfor i:=1to500dobegin
a:=a+'-'+inttostr(i);
end;
Sendmsg('a = '+a+' === '+inttostr(length(a)))end;
procedure Free; //Вызывается при выключении скриптаbeginend;
//основная часть скрипта//вызывается при приходе каждого пакета если скрипт включенbeginend.
и сам увидишь сколько байт в а
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 15.07.2011 в 18:39.
Я читал что стринг может вмещать в себя до 255 символов, а если мне надо больше то что используют?
Ограничение 255 байт было в турбо паскале
Цитата:
Сообщение от Deffol
пасиб, а я писал pck:=a;
думал чо не так
помоему он так будет запоминать только первый пришедший пакет, а можно сделать, чтоб запоминал именно новый пришедший?
Какой пакет оно будет запоминать уже зависит от того в каком виде вы будете использовать выше написанные строчки.
__________________
В любом из нас спит гений. И с каждым днем все крепче.
Переходим на протокол нового поколения jabber
Последний раз редактировалось J-Fobos, 15.07.2011 в 18:38.
Deffol: ну делай присваивание (запоминание) только лишь после того, как пройдена проверка на необходимость запоминания.
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Главные бегин енд срабатывают при приходе любого пакета независемо от сервера или от клиента, т.е, в этом гланом бегине енде уже отсортируй какие тебе пакеты запоминать и откуда)
Доброго времени суток уважаемые участники формума.
Я поглядел, что тут используется в скриптах движок языка Delphi.
У меня собственно ворос таковой:
Я незнаю, что возвращает значение переменной Функция или процедура?
Для чего это мне нужно собственно->>
[
if FromClient and (ConnectName='Nevec') and (pck[1]=#$19) then
begin
Передать Функции или Процедуре по этому условию пакет,
затем Функция или Процедура обработает так как мне нужно этот
пакет, чтобы затем я смог его присвоить допустим->>
buf:=Сюда;
end;
]
Часть кода моего:
Const Name='nucLear';
Procedure SendMessage(Msg:String);
Begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(Msg);
SendToClientEx(Name);
End;
//Function SelectEnchantScroll(Scroll:String):String;
//Begin
// if FromClient and (ConnectName=Name) and (pck[1]=HStr('19')) then
// Begin
// Scroll:=pck;
// End;
//End;
begin
if FromClient and (ConnectName=Name) and (pck=HStr('56 18 00 00 00 00 00 00 00 00')) then
begin
buf:=SelectEnchantScroll(pck);
SendToServerEx(Name);
pck:='';
delay(400);
buf:=HStr('D0 4C 00 D6 B3 10 40');
SendToServerEx(Name);
pck:='';
delay(1000);
buf:=HStr('5F D6 B3 10 40 00 00 00 00');
SendToServerEx(Name);
pck:='';
SendMessage('Заточено!!!');
end;
if FromServer and (ConnectName=Name) and (pck=HStr('87 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00')) then
begin
SendMessage('Слетело!!!');
end;
end.
Доброе время суток,кто может разобратся что за скрипт?
Цитата:
Const UserName=('онатоле');
var
ObjectID, KarmaPK, TargetPK, MessagePK, ClassPK, i, x, y, z, TempPK: Integer;
NamePK, CvarPK : String;
ClassName: TStringList;
procedure Init;
begin
MessagePK:=1;
TargetPK:=0;
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS('PK Scanner for Gracia 1.5 by Furious, metalFan');
SendToClientEx(UserName);
ClassName :=TStringList.Create;
ClassName.LoadFromFile('ClassName.ini');
end;
procedure Free;
begin
ClassName.free;
end;
procedure OnConnect(WithClient: Boolean);
begin
end;
procedure OnDisonnect(WithClient: Boolean);
begin
end;
procedure MessageSend(Msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(Msg);
SendToClientEx(UserName);
end;
procedure TargetingPK(ObjectID: Integer);
begin
if TargetPK=1 then begin
buf:=#$1F;
WriteD(ObjectID); WriteD(0); Writed(0); Writed(0); WriteC(0);
SendToServerEx(UserName); end;
end;
procedure KillRadar;
begin
buf:=#$F1;
WriteD(0);
WriteD(1);
WriteD(0);
WriteD(0);
WriteD(0);
SendToClientEx(UserName);
end;
function GetClassName(CID : integer) : string;
begin
result:=ClassName.Strings[CID];
end;
begin
if (FromServer) and (ConnectName=UserName) and (pck[1]=#$31) then
begin
x:=ReadD(2);
y:=ReadD(6);
z:=ReadD(10);
i:=22;
NamePK:=ReadS(i);
ClassPK:=ReadD(i+8);
KarmaPK:=ReadD(i+176);
if (KarmaPK>0) then
begin
ObjectID:=ReadD(18);
TargetingPK(ObjectID);
if MessagePK=1 then begin MessageSend(''+NamePK+' | '+GetClassName(ClassPK)+' | '+IntToStr(KarmaPK)+) end;
buf:=#$F1;
WriteD(0);
WriteD(1);
WriteD(X);
WriteD(Y);
WriteD(Z);
SendToClientEx(UserName);
end;
end;
if (FromServer) and (ConnectName=UserName) and (pck[1]=#$08) then begin
TempPK:=ReadD(2);
case TempPK of ObjectID:
KillRadar;
end;
end;
if (FromClient) and (ConnectName=UserName) and (pck[1]=#$49) then
begin
CvarPK:=ReadS(2);
case CvarPK of
'\start':
begin
TargetPK:=1;
MessageSend('Search On!');
pck:='';
end;
'\stop':
begin
TargetPK:=0;
MessageSend('Stopped all services!');
pck:='';
end;
'\radar':
begin
MessageSend('Radar Killed');
KillRadar;
pck:='';
end;
end;
end;
end.
до этого не юзал скриптовую чать проги, и сегодня заинтересовался этим.
вопрос такой
Код:
procedure Init; //Вызывается при включении скрипта
begin
buf:= HStr('19 74 1D 09 10 00 00 00 00');
SendToServer();
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
end.
нажимаю на кнопку выполнить, ниче не происходит. попробовал этот пакет отправить "посылкой", получилось нормально.
где ошибся?