28.08.2010, 23:17
|
#12
|
Местный
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
|
Часть первая: Оффтоп
delphi Код:
const
MyFileName = 'c:\myfile.txt';
Var
name, CharNick, CharTitle, idx:string;
CharName, ProfName, ProfList: TStringList;
tmp, CharOID, CharClassID, CharClan, MyOID:integer;
charX, charY,charZ:integer;
function GetValue(ValName: string): string;
begin
result:=CharName.Values[ValName];
end;
function GetProf(ValName:string): string;
begin
result:=ProfName.Values[ValName];
end;
procedure SetValue(ValName: string; Value: string);
begin
CharName.Values[ValName]:=Value;
end;
procedure Init; //Вызывается при включении скрипта
var
i:integer;
begin
CharName:=TStringList.Create;
try
CharName.LoadFromFile(MyFileName);
except
end;
ProfList:=TStringList.Create;
ProfName:=TStringList.Create;
try
ProfName.LoadFromFile('classid.ini');
except
SendMsg('classid.ini не найден!');
exit;
end;
MyOID:=0;
end;
procedure Free;
begin
CharName.Clear;
CharName.Free;
CharName.SaveToFile(MyFileName);
end;
begin
if fromserver and (pck[1]=#$31) then begin
idx:=StrtoHex(pck[18])+StrtoHex(pck[19])+StrtoHex(pck[20])+StrtoHex(pck[21]);
name:='OID: '+idx;
tmp:=18;
CharOID:=ReadD(tmp);
if ((GetValue(Name))='') then begin
CharX:=ReadD(2);
CharY:=ReadD(6);
CharZ:=ReadD(10);
CharNick:=ReadS(tmp);
ReadD(tmp);
ReadD(tmp);
CharClassId:=ReadD(tmp);
tmp:=tmp+276;
CharTitle:=ReadS(tmp);
CharClan:=ReadD(tmp);
name:='OID: '+idx;
SetValue(name,((CharNick)));
name:='Профессия основы: '+idx;
SetValue(name,(GetProf(inttostr(CharClassId))));
name:='Клан: '+idx;
SetValue(name,(inttostr(CharClan))); //тут значение вар\не вар прикрутить стоит
name:='Титул: '+idx;
SetValue(name,(CharTitle));
name:='CoordX: '+idx;
SetValue(name,(inttostr(CharX)));
name:='CoordY: '+idx;
SetValue(name,(inttostr(CharY)));
name:='CoordZ: '+idx;
SetValue(name,(inttostr(CharZ)));
CharName.SaveToFile(MyFileName);
end else begin
idx:=StrtoHex(pck[18])+StrtoHex(pck[19])+StrtoHex(pck[20])+StrtoHex(pck[21]);
name:='OID: '+idx;
If (GetValue(name)<>'') then begin
SendMsg('Ник: '+GetValue(name));
name:='Профессия основы: '+idx;
SendMsg('Профа: '+GetValue(name));
name:='Клан: '+idx;
SendMsg('Клан ИД: '+GetValue(name));
name:='Титул: '+idx;
if ((GetValue(name))<>'') then SendMsg('Титул: '+GetValue(name));
end;
end;
end;
if fromserver and (pck[1]=#$2F) then begin // and ((ReadD(2))<>MyOID)
idx:=StrtoHex(pck[2])+StrtoHex(pck[3])+StrtoHex(pck[4])+StrtoHex(pck[5]);
CharOID:=ReadD(2);
CharX:=ReadD(6);
CharY:=ReadD(10);
CharZ:=ReadD(14);
if ((GetValue('OID: '+idx))<>'') and (CharOID<>MyOID) and (MyOID<>0) then begin
try
name:='CoordX: '+idx;
SetValue(name,(inttostr(CharX)));
name:='CoordY: '+idx;
SetValue(name,(inttostr(CharY)));
name:='CoordZ: '+idx;
SetValue(name,(inttostr(CharZ)));
CharName.SaveToFile(MyFileName);
except
end;
end;
If (CharOID<>MyOID) and ((GetValue('OID: '+idx))<>'')then begin
SendMsg('Перс '+GetValue('OID: '+idx)+' бежит в X:'+GetValue('CoordX: '+idx)+' Y:'+GetValue('CoordY: '+idx)+' Z:'+GetValue('CoordZ: '+idx)+);
end else begin
If (CharOID=MyOID) then begin
SendMsg('Вы бежите в X:'+inttostr(CharX)+' Y:'+inttostr(CharY)+' Z:'+inttostr(CharZ));
end;
end;
end;
// end of part I
(продолжение ниже)
После отключения скрипта - файл-лог очищается.
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 29.08.2010 в 08:11.
|
|
|