Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
123new

DayZ 0.63 Класс для логов[перезалив]

Recommended Posts

Автор скрипта: http://s-platoon.ru/profile/48-nonameultima/

Все благодарности за этот скрипт непосредственно автору скрипта, не мне!


 

Установка:

1. Описание: Создаем собственный класс, для сохранения логов.

Код класса:

class Ultima_Server_Class_Logs
	{
		private FileHandle fhandle;
		void Ultima_Server_Class_Logs()
			{	
			}
		void ~Ultima_Server_Class_Logs()
			{
			}
		void SaveLog(string fName, string fLine)
			{
				if ( !FileExist(fName) )
					{
						fhandle	=	OpenFile(fName, FileMode.WRITE);
					}
				else
					{
						fhandle	=	OpenFile(fName, FileMode.APPEND);
					}
				if ( fhandle == 0 )
					{
						Print("[#Ultima]: [Журналы]: Не удалось открыть файл для записи: " + fName);
						Print("[#Ultima]: [Журналы]: [Запись]: " + fLine);
						return;
					}
				FPrintln(fhandle, fLine);
				CloseFile(fhandle);
			}
	}

2. Данный файл сохраняем под именем класса:

Ultima_Server_Class_Logs.c

И помещаем в папку:

....\DayZServer\scripts\5_Mission\mission

 

Пример использования:

*Для примера берем файл:

missionServer.c

В область переменных добавляем:

private    ref Ultima_Server_Class_Logs    Log = new Ultima_Server_Class_Logs();

И далее в любой процедуре, можем логгировать события.

К примеру так:

Log.SaveLog("$profile:MyLogFile.txt", "Записываем строку");

 

Добавлено от 123new:

Если у вас нет папки scripts в папке с сервером игры, откройте папку dta, распакуйте папку scripts из pbo-файла scripts.pbo и переместите в папку с сервером.

Чтобы папка считывалась сервером, необходимо добавить параметр запуска сервера '-FilePatching'.

Чтобы запись в файлы работала, необходимо добавить параметр запуска сервера '-scrAllowFileWrite'

Share this post


Link to post
Share on other sites







Доработочка класса/скрипта от NoNameUltima

Сокращено название класса

Добавлена функция ротации логов (как в линухе) - Rotate(string File, int FileNum) 1й параметр имя путь-файла, второй кол-во копий

Перед строкой с текстом всегда прописывается текущая дата и время хоста на котором работает сервер

 

Код

class LogClass
{
	private FileHandle Handle;
	
	void LogClass()
	{
		Print("::: LogClass ::: Init :::");
	}

	void ~LogClass()
	{
		Print("::: LogClass ::: UnInit :::");
	}

	void Save(string File, string String)
	{
		private int year, month, day, hour, minute, second;
		Print("::: [LogClass]: Save: " + File);
		if (!FileExist(File))
		{
			Handle = OpenFile(File,FileMode.WRITE);
		}
		else
		{
			Handle = OpenFile(File, FileMode.APPEND);
		}
		if ( Handle == 0 )
		{
			Print("::: [LogClass]: Can not write file: " + File);
			return;
		}

		FPrintln(Handle, DataBase_GetDate() + "," + DataBase_GetTime() + " : " + String);
		CloseFile(Handle);
	}

	void Rotate(string File, int FileNum)
	{
		Print("::: [LogClass]: Rotate: " + File);
		if (!FileExist(File))
		{
			Print("::: [LogClass]: Rotate: File not exists: " + File);
			return;
		}
		else
		{
			for ( int i = FileNum; i > 0; i-- )
			{
				Print("::: [LogClass]: Rotate: File: " + File + "." + i);
				if (FileExist(File + "." + i))
				{
					Print("::: [LogClass]: Rotate: DeleteFile: " + File + "." + i);
					DeleteFile(File + "." + i);
				}
				if (FileExist(File + "." + (i - 1)))
				{
					Print("::: [LogClass]: Rotate: CopyFile: " + File + "." + (i - 1) + " => " + File + "." + i);
					CopyFile(File + "." + (i - 1), File + "." + i);
				}
			}
			CopyFile(File, File + ".0");
			DeleteFile(File);
		}
	}
	
	static string DataBase_GetDate()
	{
		int year, month, day;	
		GetYearMonthDay(year, month, day);
		string date = day.ToStringLen(2) + "." + month.ToStringLen(2) + "." + year.ToStringLen(2);
		return date;
	}

	static string DataBase_GetTime()
	{
		int hour, minute, second;
		GetHourMinuteSecond(hour, minute, second);
		string time = hour.ToStringLen(2) + ":" + minute.ToStringLen(2) + ":" + second.ToStringLen(2);
		return time;
	}
};

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Fan10m22
      серверный мод(для выдачи товаров), скрипт для работы сайта

      Похожий сайты:
      https://midnight-dayz.ru/store
      https://dayzpay.ru/

      Если знаете как сделать или есть уже готовое что то пишите в лс
      Вк: https://vk.com/whoiam5637
       
    • By Fan10m22
      Вообщем буду краток:
      Меня зовут Макс мне 20 лет.
      Я хочу открыть свой сервер Dayz на карте чернарусия. Для этого к меня есть малый опыт в открытие, но готов учиться. Есть в районе от 100-150 на создание сервера. 
      Нужны люди умеющие или бывшие держатели своего сервера. Возраст не важен главное желание. 
      Нужен:
      Кодер - человек который будет отвечать за работоспособность самого сервера.
      Дизайнер - который может сделать любой раскрас на одежде и по возможности создать совершенно новую одежду броню и т.д 
       
      Концепт сервера: ПВП сервер с трейдерами и т.д.
       
      За остальным пишите мне в:
      Вк: https://vk.com/whoiam5637
      Телеграмм: @abudab1
    • By Trueтень733
      500 метров и начинается туман ,есть у кого настройки тумана ???Спасибо)))

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By Trueтень733
      Ищем человека кто сможет сделать Автоивент,либо подскажите у кого есть какие автоивенты для DayZ,кто занимается именно созданием ивентов,Спасибо!
    • By TokZe
      Добрый вечер, знающие подскажите как реализовать продажу через сайт, без очереди и вип!
      также как вывести топ игроков на сайт
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.