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

The End Is Near...

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

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

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

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

Ваня Олейник

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

KorDen

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

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

Ваня Олейник

Участник
Сообщения
74
Реакции
9
Может все таки оптимизируете?Можно будет убрать настройку конфига ("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,011
Реакции
1,814

pokypka20

Участник
Сообщения
244
Реакции
30
Новые Скиллы на THC_RPG сделаеш даже заплочю)
 
К

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

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

The End Is Near...

Russian Roulette
Сообщения
886
Реакции
660

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

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

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

Вложения

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

KorDen

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

The End Is Near...

Russian Roulette
Сообщения
886
Реакции
660

Вложения

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