пока возможно...
Код:
Program ScreenPlayers;
const CMan = $0190;
CWoman = $0191;
CScreenDoneFile = 'c:\screendone.ini';
CScreensDir = 'd:\AnyDir\';
var aList, aCreature, aID, atID: LongInt;
k, i: LongInt;
st, aSection: String;
aType: Word;
aFound: Boolean;
aIni: LongInt;
begin
Repeat
GetCharsList(aList, False);
GetListCount(aList, k);
aFound:=False;
If k<>0 Then
For i:=0 to k-1 do
begin
GetListItem(aList, i, aCreature, st);
GetCharInfo(aCreature, aType, aID);
If (aType=CMan) or (aType=CWoman) Then
If not SectionExists(CScreenDoneFile, IntToStr(aID)) Then
begin
aFound:=True;
WriteAsInteger(CScreenDoneFile, IntToStr(aID), 'ID', aID);
end;
end;
If aFound Then TakeScreenShot(CScreensDir, 0, 100);
OpenIniFile(CScreenDoneFile, aIni);
If FirstSection(aIni, aSection, '') Then
Repeat
aFound:=False;
ReadAsInteger(CScreenDoneFile, aSection, 'ID', atID);
If k<>0 Then
For i:=0 to k-1 do
begin
GetListItem(aList, i, aCreature, st);
GetCharInfo(aCreature, aType, aID);
If aID=atID Then aFound:=True;
end;
If not aFound Then EraseSection(CScreenDoneFile, aSection);
Until not NextSection(aIni, aSection);
CloseIniFile(aIni);
Delay(2000);
Until False;
end.
осматривает местность каждые 2 секунды... если видит Man или Woman делает скрин...
запоминает, чьи скрины уже сделал и пока чар в зоне видимости, не скринит (чтобы диск не забивать)...
если чар покидает зону видимости, "забывает" его, т.е. при следующем появлении опять снимет скрин...
значение константы CScreensDir надо исправить на свое...
окно УО, естественно, дожно быть видимым...
http://uoscript.nm.ru
скрипт будет работать и для незарегистрированных персонажей...