Иконка ресурса

MapTime 1.1

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
520
  • Автор ресурса
  • #1
Предыстория: Друг просил написать плагин, чтобы администраторы могли узнать, сколько времени "играет" карта.

Название: MapTime.
Версия: 1.1.

Как работает?
- В чате !maptime, либо в консоли sm_maptime.
Команда доступна администраторам с флагом b [GENERIC].

Описание:
Данный плагин показывает, сколько времени "играется" карта.

Обновления:
v 1.1 - Оптимизация.
v 1.0 - Первый релиз.
 

Вложения

  • MapTime.jpg
    MapTime.jpg
    5.5 КБ · Просмотры: 248
Последнее редактирование модератором:

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
520
  • Автор ресурса
  • #3
Оффтоп

Оффтоп
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
520
  • Автор ресурса
  • #5
Зачем ты спрашиваешь? Почитай исходник и там всё написано. Он независим от игроков, а если DM, то будет идти таймер, как обычно. И нигде он не врёт.

Добавлено через 3 минуты
И он независим от переменной mp_timelimit. И может быть больше её.
 
Последнее редактирование модератором:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
MapTime_v1.0.1

может быть больше её
Во! А то не знаешь, что говоришь)
По коду:
PrintToChat(client, "\04[MapTime] - впереди также ставится \x01 при использовании нескольких цветов (CS:GO).
PHP:
Seconds += 1;
Minutes += 1;
Hours += 1;
Лучше:
PHP:
Seconds++;
Minutes++;
Hours++;
А в таймере - TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE.
PHP:
Hours = 0;
Minutes = 0;
Seconds = 0;
KillTimer(TimeRepeat);
Вручную обнуляешь таймер, а потом пытаешься его убить? Интересно...
Итого:
PHP:
new Hours, Minutes, Seconds;

public Plugin:myinfo = {
	name = "MapTime",
	author = "WeSTMan",
	description = "Time Map by WeSTMan",
	version = "1.0.1",
	url = ""
};

public OnPluginStart() RegAdminCmd("sm_maptime", CMD_TimeMap, ADMFLAG_GENERIC);

public OnMapStart()
{
	Hours = 0;
	Minutes = 0;
	Seconds = 0;
	CreateTimer(1.0, TimeMapOne, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public Action:CMD_TimeMap(client, args)
{	
	PrintToChat(client, "\x01\04[MapTime] \x01Сыграно \x04%d \x01час(ов), \x04%d\x01 минут(ы) и \x04%d\x01 секунд(ы).", Hours, Minutes, Seconds);
	return Plugin_Handled;
}

public Action:TimeMapOne(Handle:timer)
{
	Seconds++;
	if (Seconds == 60)
	{
		Seconds = 0;
		Minutes++;
	}
	if (Minutes == 60)
	{
		Minutes = 0;
		Hours++;
	}
	return Plugin_Continue;
}
 
Последнее редактирование:

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Плагин кул.
Впилил его в админ меню, в меню смены карты.
Админам нравиться, не нужно спрашивать сколько играете и т.д.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Нагружает сервер, даже во время смены карты. Несколько таких плагинов могут его затормозить, продлевая процесс перехода на новую карту.
KillTimer есть конечно, но не знаю, насколько он эффективен при повторяющимся таймере. В таком обычно используют return Plugin_Stop;
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
520
  • Автор ресурса
  • #9
Re: MapTime_v1.0.1

Во! А то не знаешь, что говоришь)
По коду:
PrintToChat(client, "\04[MapTime] - впереди также ставится \x01 при использовании нескольких цветов (CS:GO).
PHP:
Seconds += 1;
Minutes += 1;
Hours += 1;
Лучше:
PHP:
Seconds++;
Minutes++;
Hours++;
А в таймере - TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE.
PHP:
Hours = 0;
Minutes = 0;
Seconds = 0;
KillTimer(TimeRepeat);
Вручную обнуляешь таймер, а потом пытаешься его убить? Интересно...
Итого:
PHP:
new Hours, Minutes, Seconds;

public Plugin:myinfo = {
	name = "MapTime",
	author = "WeSTMan",
	description = "Time Map by WeSTMan",
	version = "1.0.1",
	url = ""
};

public OnPluginStart() RegAdminCmd("sm_maptime", CMD_TimeMap, ADMFLAG_GENERIC);

public OnMapStart()
{
	Hours = 0;
	Minutes = 0;
	Seconds = 0;
	CreateTimer(1.0, TimeMapOne, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public Action:CMD_TimeMap(client, args)
{	
	PrintToChat(client, "\x01\04[MapTime] \x01Сыграно \x04%d \x01час(ов), \x04%d\x01 минут(ы) и \x04%d\x01 секунд(ы).", Hours, Minutes, Seconds);
	return Plugin_Handled;
}

public Action:TimeMapOne(Handle:timer)
{
	Seconds++;
	if (Seconds == 60)
	{
		Seconds = 0;
		Minutes++;
	}
	if (Minutes == 60)
	{
		Minutes = 0;
		Hours++;
	}
	return Plugin_Continue;
}


Ты проверял свою чушь?
Начнём с первого.
1. Ты пишешь:
PHP:
PrintToChat(client, "\x01\04[MapTime] \x01Сыграно \x04%d \x01час(ов), \x04%d\x01 минут(ы) и \x04%d\x01 секунд(ы).", Hours, Minutes, Seconds);
Посмотри мою картинку, которую я прикрепил и не возникай по поводу цветов. И с двух цветов начить? Зачем?

2. Как добавлять переменной ++ или += 1, как я решил, так и сделал и разницы нету.

3. А в таймере - TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE. В таймере нету MAPCHANGE и может быть добавлю.

3. Убери убийство таймера и обнуление в конце карты и проверь плагин, а потом пиши.

Больше на тупые вопросы не буду отвечать. Моя реализация останется моей и .
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
А теперь внимательнее:
не возникай по поводу цветов. И с двух цветов начить? Зачем?
Верно, но по коду короче.
В таймере нету MAPCHANGE
Фактически это и есть автоубийство таймера.
Убери убийство таймера и обнуление в конце карты и проверь плагин, а потом пиши
Обнуление переменных - обязательно, ибо независимо от таймера, они сохраняют свои старые значения. А вот убийство такого таймера - весьма спорно, плохой метод.
Ты проверял свою чушь?
Ставим оба плагина и получаем одинаковое время вплоть до секунды.
Чушью обновляешь плагин? :-D
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
520
  • Автор ресурса
  • #11
А теперь внимательнее:
Верно, но по коду короче.

Фактически это и есть автоубийство таймера.

Обнуление переменных - обязательно, ибо независимо от таймера, они сохраняют свои старые значения. А вот убийство такого таймера - весьма спорно, плохой метод.

Ставим оба плагина и получаем одинаковое время вплоть до секунды.

Чушью обновляешь плагин? :-D

Я чушью не обновлял, читай выше.

Добавлено через 9 минут
И да, ты говорил:
Ставим оба плагина и получаем одинаковое время вплоть до секунды.
Оффтоп
 
Последнее редактирование модератором:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Тогда зачем мне всё это пишешь?
Максимальная оптимизация и улучшение в плане нагрузки на сервер.
Как насчёт создать плагин, вообще не нагружающий сервер?
Оффтоп

И, народ, ставьте Спасибо, если скачиваете плагин WeSTMan'а! :rtfm:
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
520
  • Автор ресурса
  • #13
Покажи, я посмотрю.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
WeSTMan, твоя новая версия плагина MapTime v1.1.rar
PHP:
#define PLUGIN_VERSION "1.1"
new Hours, Minutes, Seconds;

public Plugin:myinfo = {
	name = "MapTime",
	author = "WeSTMan",
	description = "Time Map by WeSTMan",
	version = PLUGIN_VERSION,
	url = ""
};

public OnPluginStart()
{
	RegAdminCmd("sm_maptime", CMD_TimeMap, ADMFLAG_GENERIC);
}

public OnMapStart()
{
	Hours = 0;
	Minutes = 0;
	Seconds = 0;
	CreateTimer(1.0, TimeMapOne, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public Action:CMD_TimeMap(client, args)
{	
	PrintToChat(client, "\x04[MapTime] \x01Сыграно \x04%d \x01час(ов), \x04%d\x01 минут(ы) и \x04%d\x01 секунд(ы).", Hours, Minutes, Seconds);
	return Plugin_Handled;
}

public Action:TimeMapOne(Handle:timer)
{
	Seconds += 1;
	if (Seconds == 60)
	{
		Seconds = 0;
		Minutes += 1;
	}
	if (Minutes == 60)
	{
		Minutes = 0;
		Hours += 1;
	}
	return Plugin_Continue;
}
- почти копия
Ты проверял свою чушь?
поста с моей "чушью".
Просто относись доброжелательней, я же тебя не назло всё спрашиваю и поправляю.
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
520
  • Автор ресурса
  • #15
Копии нету, добавил MAPCHANGE.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Safe Time Map v1.0.0

ОффтопНиже написал плагин, гораздо точнее по отображаемому времени и практически не нагружающий сервер, в отличии от его аналога.

Safe Time Map

Базируется на высокоточном прецизионном таймере самого движка сервера, но без применения элементов, нагружающих SourceMod в режиме простоя сервера.
В активном режиме - нагрузки также почти нет.
Абсолютная погрешность показаний - менее 1 секунды.

Команды:
В чате - !maptime или /maptime, либо в консоли клиента - sm_maptime.
Доступно администраторам с флагом b [GENERIC].
2ea3101a882c.jpg
 

Вложения

  • SafeTimeMap.sp
    709 байт · Просмотры: 27
Последнее редактирование:

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Re: Safe Time Map v1.0.0


Ниже написал плагин, гораздо точнее по отображаемому времени и практически не нагружающий сервер, в отличии от его аналога.

Safe Time Map

Базируется на высокоточном прецизионном таймере самого движка сервера, но без применения элементов, нагружающих SourceMod в режиме простоя сервера.
В активном режиме - нагрузки также почти нет.
Абсолютная погрешность показаний - менее 1 секунды.

Команды:
В чате - !maptime или /maptime, либо в консоли клиента - sm_maptime.
Доступно администраторам с флагом b [GENERIC].
2ea3101a882c.jpg

Уважайте и цените труд авторов: скачивая плагин - ставьте "Спасибо"!
Не важно, ради просмотра исходного кода или для прямого назначения.

Вот это от души, реально спасибо:beer:
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
520
  • Автор ресурса
  • #18
Оффтоп
Ниже написал плагин, гораздо точнее по отображаемому времени и практически не нагружающий сервер, в отличии от его аналога.
Safe Time Map
Базируется на высокоточном прецизионном таймере самого движка сервера, но без применения элементов, нагружающих SourceMod в режиме простоя сервера.
В активном режиме - нагрузки также почти нет.
Абсолютная погрешность показаний - менее 1 секунды.
Команды:
В чате - !maptime или /maptime, либо в консоли клиента - sm_maptime.
Доступно администраторам с флагом b [GENERIC].

Разве не один в один:
https://forums.alliedmods.net/showthread.php?p=1618015
 
Последнее редактирование модератором:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Далеко не в один, но принцип тот же. Я как бы оптимизировал такой плагин, хотя вижу его впервые.
PHP:
RoundToZero
Там умнее поступили... Надо было также. :)
И этот один в один. Механизм тот же, просто подумал его впихнуть сюда.
А этот вообще его прародитель, 2010 года код. На год раньше твоего найденного [CSS] Map-Time. Думаешь, я скорее увидел его в нём, а не в Console Welcome Message? А может, мы все оттуда списали?
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
520
  • Автор ресурса
  • #20
Я не списывал, а реализовывал сам.
 
Сверху Снизу