yTka в init добавить
static void WriteFile(string file_name, string text)
{
private FileHandle fhandle;
if ( !FileExist(file_name) )
{
fhandle = OpenFile(file_name, FileMode.WRITE);
}
else
{
fhandle = OpenFile(file_name, FileMode.APPEND);
}
if ( fhandle == 0 )
{
Print("[#Ultima]: [Журналы]: Не удалось открыть файл для записи: " + fName);
Print("[#Ultima]: [Журналы]: [Запись]: " + fLine);
return;
}
FPrintln(fhandle, text);
CloseFile(fhandle);
}
static void WritePlayersInfo()
{
array<Man> players = new array<Man>; Man player; Man player_test;
GetGame().GetPlayers( players );
for ( int i = 0; i < players.Count(); ++i )
{
player_test = players.Get(i);
if( player_test )
{
PlayerIdentity p_identity = player_test.GetIdentity();
string coord_pl = player_test.GetPosition().ToString();
string Name_P = p_identity.GetName();
string UID_P = p_identity.GetPlainId();
WriteFile("$profile:PlayersLogFile.txt", "User name: " + Name_P + " UID: " + UID_P + " Coords: " + coord_pl);
}
}
}
и в конце void main()
GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(WritePlayersInfo, 10000, true);
где 10000 - 10 секунд
Не тестил, но должно работать