Написание плагинов

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
В этой теме можете оставлять свои заявки по написанию различных плагинов:
1. Название плагина
2. Детальное описание

P.S. Некоторые плагины могу пропустить

P.S.S. Буду рад, если кто-то из скриптеров сюда будет заглядывать

 
Последнее редактирование модератором:

Ваня Олейник

Участник
Сообщения
74
Реакции
12
Сможешь этот плагин оптимизировать? [Любая игра] - Most destructive Просто когда я его ставлю себе на сервер начинаются лаги.Может убрать файл перевода?И все в .sp сделать на русском?
 
Последнее редактирование модератором:

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Сможешь этот плагин оптимизировать? http://hlmod.ru/forum/plaginy-dlya-sourcemod/244-most-destructive-v-0-08-a.html Просто когда я его ставлю себе на сервер начинаются лаги.Может убрать файл перевода?И все в .sp сделать на русском?

В этом плагине фактически нет ничего, что может давать действительно заметные лаги. Да, не совсем оптимизирован, но до лагов явно не может дойти
 

Ваня Олейник

Участник
Сообщения
74
Реакции
12
Может все таки оптимизируете?Можно будет убрать настройку конфига ("sm_md_mode "1,2,3" и " "sm_md_lines "1,2,3") а сделать сделать что бы сразу было sm_md_mode "0" и sm_md_lines "3" и убрать plugin.mdest.txt.
 

CTe6eJIeK_vRn

Участник
Сообщения
2,114
Реакции
1,867
К

Константин Князев

Слушай, а ты можешь сделать плагин, что бы когда на сервере игрок использует скрипты, тобишь Alies, его кикало с сервера. Если не бесплатно, то надеюсь стоимость будет умеренная.
Связь со мной
Skype: kostochka1994
Email: kostochka1994@mail.ru
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691

PHP:
// Если по времени, то
bool:CheckMapEnd()
{
	// Начнем с того, 

	// Создаем логические переменные

	// True - Последний раунд
	// False - Не последний раунд
    new bool:lastround = false;

	// True - Нет конца карта по времени (0)
	// False - Есть конец карты по времени (Идет отсчет)
    new bool:notimelimit = false;

	// Создаем переменную, которая будет хранить в себе время карты
	new timelimit = 0;

	// Получаем время карты и если оно меньше единицы (0 вообщем-то)
	if (GetMapTimeLimit(timelimit) && timelimit < 1)
	{
		// Ставим значение переменной в значении True
		// То есть теперь мы знаем, что конца карты по времени нет
		// Или тут можно использовать return false
		notimelimit = true;
	}
	
	// Иначе, если отсчет все-таки идет
	else
	{
		// Создаем переменную, которя будет содержать в себе оставшееся время до конца карты
		new timeleft = 0; 

		// Получаем количество секунд
		if (GetMapTimeLeft(timeleft)) 
		{
			// Если время до конца карты больше нуля
			if (timeleft > 0)
			{
				// Возвращаем False
				return false;
			}

			// Иначе, если отсчет есть, и время оставшееся время равно нулю
			else
			{
				// Ставим значение переменной в значении True
				// Или тут можно использовать return true
				lastround = true;
			}
		}
    }
}
// Учитывай, что это касается времени

PHP:
// То, что касается побед команд
bool:CheckMapEnd()
{
	// Нам известно, что g_hWinLimit = FindConVar("mp_winlimit")

	// Проверяем, существует ли переменная g_hWinLimit	
	if (g_hWinLimit != INVALID_HANDLE) 
	{
		// Получаем значение переменной g_hWinLimit
		new winlimit = GetConVarInt(g_hWinLimit);

		// Если значение больше нуля
		if (winlimit > 0)
		{
			// Получаем количество побед команд
			// 2 - Террористы
			// 3 - Спецназовцы
			if (GetTeamScore(2) >= winlimit || GetTeamScore(3) >= winlimit)
			{
				// Последний раунд
				return true;
			}

			// Ни одна из команд не набрала такое количество побед, которое равно значению переменной => Не последний раунд
			return false;
		}

		// Предыдущее условие не прошло, то есть значение переменной не больше нуля => Не последний раунд
		return false;
	}

	// Предыдущее условие не прошло, то есть переменной не существует => Не последний раунд
	return false;
}

PHP:
bool:CheckMapEnd()
{
	// Нам известно, что g_hMaxRounds = FindConVar("mp_maxrounds")

	// Проверяем, существует ли переменная g_hMaxRounds
	if (g_hMaxRounds != INVALID_HANDLE)
	{
		// Получаем значение переменной
		new maxrounds = GetConVarInt(g_hMaxRounds);

		// Если значение больше нуля
		if (maxrounds > 0)
		{
			// Значение переменной - Количество раундов, прошедших на карте
			// Где мы возьмем значение раундов? Все очень просто.
			// Создаем глобальную переменную (g_TotalRounds)
			// При старте карты (OnMapStart) приравниваем переменную нулю, чтобы счетчик на каждой карте сбрасывался
			// Ловим конец раунда (HookEvent) и прибавляем к переменной g_TotalRounds единицу
			new remaining = maxrounds - g_TotalRounds;

			// Если разность равна нулю
			if (remaining <= 0)
			{
				// Последний раунд
				return true;
            }

			// Предыдущее условие не прошло, то есть разность не равна нулю => Не последний раунд
			return false;
        }

		// Предыдующее условие не прошло, то есть значение не больше нуля => Не последний раунд
		return false;
    }

	// Предыдущее условие не прошло, то есть переменной не существует => Не последний раунд
	return false;
}

Теперь, зачем же нам были нужны переменные? Дело в том, что мы точно не знаем, как настроена смена карты у каждого человека. Поэтому сделать универсальный вариант было бы более рациональным решением
 

gravestal

Участник
Сообщения
30
Реакции
4
1)Join server admin
2)При заходе админа(прописывается в конфиге) пишется в чате "[Главный админ]-Ник админа- зашел в игру." И проигрывается музыка для всех игроков.
P.S Есть такой плагин на ES, но там он корявый и музыка не играет.
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
1)Join server admin
2)При заходе админа(прописывается в конфиге) пишется в чате "[Главный админ]-Ник админа- зашел в игру." И проигрывается музыка для всех игроков.
P.S Есть такой плагин на ES, но там он корявый и музыка не играет.

Можешь попробовать.
// Укажите путь до звукового файла
// ---
// По умолчанию установлено: muz_sound/test.mp3
jsa_sound

v4. Вообщем, забыл убрать лишнюю строку
 

Вложения

  • join_server_admin.sp
    1.3 КБ · Просмотры: 228
Последнее редактирование:

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
The End Is Near..., не будет работать вообще.
1) при player_connect нельзя получить Client. С этой проблемой я уже сталкивался в аналоге Connect Announce...
2) Даже если использовать OnClientConnected, админские права ведь назначаются OnCLientPostAdminCheck, То есть когда уже игрок практически вошел, и поэтому GetUserFlagBits вернет 0 в любом случае
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691

Вложения

  • mdest.sp
    2.3 КБ · Просмотры: 63
Сверху Снизу