Перейти к содержанию

Рекомендуемые сообщения

  • Администратор

Сейчас пытаюсь реализовать определенную идею. И слава богу, что есть человек, который хоть и не пишет плагин за меня, к большому сожалению... Но он хотя бы делится своими советами. Спасибо ему!

В общем, что я хочу:

Спустя 30 секунд, после загрузки карты c6m3_port (Порт), в чате появляется уведомление:

Цитата

[L4D2Noob Army]В данном районе недавно был замечен монстр! Будьте предельно аккуратны!

Игрок запускает музыкальный автомат, при треке из игры Portal (Почему именно эта песня, ну у нее самый минимальный шанс воспроизведения) появляется надпись в чате о том что эта песня была слишком громкой, и эта песня последнее, что слышали игроки в своей жизни.

Эта песня будит монстра. И в итоге появляется Толстяк, увеличенный в размере в 3 раза, и у которого 18 тысяч хп.

Само собой эту пасхалку можно будет запустить один раз за раунд.

На данный момент мне известно всего две переменных:

  • track6
  • Jukebox.still_alive

По ходу дела я буду отписываться в этой теме, но если кто то понимает в этом Sourcemod, я буду очень рад, если вы поделитесь своими советами.

Ссылка на комментарий
Поделиться на другие сайты
  • Администратор

Пока что я пытаюсь запустить плагин только на определенной карте, и выводить сообщение.

В 25.04.2020 в 10:21, Ryancoolround сказал:

Спустя 30 секунд, после загрузки карты c6m3_port (Порт), в чате появляется уведомление:

Знакомый подкинул несколько кодов для этого. Этот код не компилируется.

public void OnMapStart()
{
char mapname[64];
GetCurrentMap(mapname, sizeof(mapname));
if (StrEqual(mapname, "c7m3_port"))
{
int i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
PrintToChat(i, "{LIGHTGREEN}[L4D2Noob Army]{GREEN}В данном районе недавно был замечен монстр! Будьте предельно аккуратны!");
}
i += 1;
}
}
return Plugin_Stop;
}

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

public void OnMapStart()
{
char mapname[64];
GetCurrentMap(mapname, sizeof(mapname));
if (StrEqual(mapname, "c7m3_port"))
{
CreateTimer(15, HxTimerRS, _, TIMER_FLAG_NO_MAPCHANGE);
}
}

public Action HxTimerRS(Handle timer)
{
int i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
CreateTimer(1.2, HxTimerRS, _, TIMER_FLAG_NO_MAPCHANGE);
PrintToChat(i, "{LIGHTGREEN}[L4D2Noob Army]{GREEN}В данном районе недавно был замечен монстр! Будьте предельно аккуратны!");
}
i += 1;
}

return Plugin_Stop;
}
public void OnMapStart()
{
char mapname[64];
GetCurrentMap(mapname, sizeof(mapname));
if (StrEqual(mapname, "c7m3_port"))
{
CreateTimer(15, HxTimerRS, _, TIMER_FLAG_NO_MAPCHANGE);
}
}

public Action HxTimerRS(Handle timer)
{
PrintToChatAll("{LIGHTGREEN}[L4D2Noob Army]{GREEN}В данном районе недавно был замечен монстр! Будьте предельно аккуратны!");
return Plugin_Stop;
}

Мне сложно, ибо я самоучка, который только начинает учиться, но я запилю эту плагин.

Ссылка на комментарий
Поделиться на другие сайты
#pragma semicolon 1
#include <sourcemod>
#pragma newdecls required

char sMap[64];
int ig_c6m3_port;
int ig_time;

public void OnPluginStart()
{
	HookEvent("round_start", Event_RoundStart);
}

public void OnMapStart()
{
	ig_time = GetTime() + 30;
	GetCurrentMap(sMap, sizeof(sMap));
	if (StrEqual(sMap, "c6m3_port"))
	{	
		ig_c6m3_port = 1;
	}
	else
	{
		ig_c6m3_port = 0;
	}
}

public void OnClientPostAdminCheck(int client)
{
	if (ig_c6m3_port)
	{
		if (GetTime() < ig_time)
		{
			if (!IsFakeClient(client))
			{
				CreateTimer(15.0, HxTimerRS, client, TIMER_FLAG_NO_MAPCHANGE);
			}
		}
	}
}

public void Event_RoundStart(Event event, const char[] name, bool dontBroadcast)
{
	if (ig_c6m3_port)
	{
		int i = 1;
		while (i <= MaxClients)
		{
			if (!IsFakeClient(i))
			{
				CreateTimer(2.0, HxTimerRS, i, TIMER_FLAG_NO_MAPCHANGE);
			}
			i += 1;
		}
	}
}

public Action HxTimerRS(Handle timer, any client)
{
	if (!IsFakeClient(client))
	{
		if (GetClientTeam(client) == 2)
		{
			if (IsPlayerAlive(client))
			{
				PrintToChat(client, "\x04[\x03L4D2Noob Army\x04] \x05В данном районе недавно был замечен монстр! Будьте предельно аккуратны!");
			}
		}
	}
	return Plugin_Stop;
}

1.Должно показывать только на карте c6m3_port

2. Сообщение будет показывать только команде живым (не думаю что инфекции нужно это видеть)
3. При загрузке карты запускается таймер 30 сек, если игрок зайдет в течении этого времени он увидит сообщение, если более 30 сек нет. (так как по сути игра может уже начаться другими игроками.
4. Так же сообщение будет показывать начале  каждого раунда (на данной карте)

Как это будет работать в режиме versus хз) так как не держу сервер данного режима

b_350_20_692108_381007_ffffff_000000.png

b_350_20_692108_381007_ffffff_000000.png

 

Ссылка на комментарий
Поделиться на другие сайты
  • Администратор
В 02.05.2020 в 00:41, dr.lex сказал:

Как это будет работать в режиме versus хз) так как не держу сервер данного режима

Это работает.

Теперь надо сделать что бы если из Jukebox запускался track6, то спавнился Толстяк с 18к хп. Тут как раз и надо вроде начинать изучать hookevent

Изменено пользователем Райан
Удалил битые файлы
Ссылка на комментарий
Поделиться на другие сайты
  • Администратор

На сервере, когда игрок нажимает на кнопку Jukebox, ничего не происходит. Консоль ничего не пишет, вообще ничего... Поэтому на Порте придется поискать какой нибудь другой триггер для пасхалки.

Ссылка на комментарий
Поделиться на другие сайты
  • Администратор
1 час назад, Ryancoolround сказал:

На сервере, когда игрок нажимает на кнопку Jukebox, ничего не происходит. Консоль ничего не пишет, вообще ничего... Поэтому на Порте придется поискать какой нибудь другой триггер для пасхалки.

Хотя с включенным sv_cheats 1 смог получить следующую переменную song_game_event

Ссылка на комментарий
Поделиться на другие сайты
  • Администратор

Вопрос. Что по вашему более забавно? Живой Толстяк в каком то недоступном месте с 18к хп, или просто трудно заметная надпись "Monstr"?

Ссылка на комментарий
Поделиться на другие сайты
  • Администратор
23 часа назад, Blutsauger сказал:

Посмотрите этот плагин Alliedmods

22 часа назад, Ryancoolround сказал:

Живой Толстяк в каком то недоступном месте с 18к хп

Ну благодаря ссылке, которую скинул @Blutsauger я смог получить позицию, где хотелось бы заспавнить Толстяка:

350.987182 -456.186798 184.031250     30.700063 90.861076 0.000000

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Похожий контент

    • Автор Райан
      Новый формат изображений от Google с расширением .webp набирает популярность. Всё чаще его можно встретить на сайтах, так как он оптимизирует картинку под меньший размер без потери качества по сравнению с .jpg. В этом году его стали использовать даже у нас на IP-Gamers.NET.
      Но, при скачивании и открытии в Photoshop, такой файл выдаёт ошибку, которая говорит что Photoshop не может  прочитать этот формат.
      Что бы избежать этого, по пути:
      C:\Program Files\Adobe Photoshop 2020\Plug-ins\File Formats Вставьте файл, что я прикрепил в этом посте.
      Так же рекомендую сохранять ваши JPG теперь именно в WEBP.
      Ссылки на скачивание:
      Рекомендованная Adobe версия плагина W.rar
       
    • Автор Райан
      Эта эпическая переделка оригинальной песни GHOSTBUSTERS но в стиле трейлера Охотников За Привидениями: Наследники. Вот оригинальный источник, откуда я взял эту музыку:
      А чуть ниже mp3 версия для скачивания.
      GHOSTBUSTERS Afterlife International Trailer Music Best Quality.mp3
         
      А это полная версия...
       
    • Автор KRUTIK
      Кислотная желчь: выжившие, которые забрели в кислотную лужу, имеют шанс забрызгать желчью и привлечь обычных инфицированных. Кислотный пул: Из-за нестабильной природы тела Спиттера, периодически пул Сплита будет вытекать под ее ногами. Кислотный слюни: Сплиттер постоянно качает головой, что иногда приводит к тому, что часть слюнявой кислоты попадает на выживших поблизости. Acidic Splash: Когда Spitter получает урон, у свежих ран есть шанс выплеснуть кислоту на любого из Выживших поблизости. Acid Swipe: Spitter использует свои покрытые кислотой пальцы, чтобы сильно ударить Survivor, нанося урон в течение долгого времени, поскольку рана горит. Удар Гидры: Позволяет Спиттеру быстро стрелять из второй косы после первой. Липкая слизь: Любой выживший, стоящий в бассейне слюны, застрянет в слизи, и ему будет сложнее быстро выйти. Supergirl: После запуска плевка Spitter покрывается защитным слоем, который медленно стекает и уменьшает весь урон, пока не исчезнет. Supergirl Speed: работает со способностью Supergirl, коса также покрывает ноги Spitters, увеличивая скорость движения в течение короткого периода после запуска косы. Изменения:
      Версия 1.5: - В коде плагина обновлен синтаксис - Обновлены подписи игровых данных Ссылки:
      Пост с версией плагина 1.5 L4D2_Spitter_Supergirl.sp l4d2_viciousplugins.txt
    • Автор Райан
      Данный плагин будет автоматически лечить выжившего, как в Call of Duty. Количество восстанавливаемого ХП указывается в конфиге.
      Пример конфига:
      // how many health buffer instanly heal after taking damage when both heal done and is going to die // - // Default: "1.0" // Minimum: "0.000000" call_of_duty_heal_fix "1.0" // lower than the health to heal // - // Default: "30.2" // Minimum: "2.100000" call_of_duty_heal_max "30.2" // how many health buffer heal once // - // Default: "1.0" // Minimum: "0.100000" call_of_duty_heal_point "1.0" // set to none-zero to remove internal heartbeat when is on thirdstrike // - // Default: "1" call_of_duty_heal_remove "1" // repeat interval after healing start // - // Default: "0.1" // Minimum: "0.100000" call_of_duty_heal_repeat "0.1" // set to none-zero to emit heartbeat when healing // - // Default: "1" call_of_duty_heal_sound "1" // how long time need to wait after taking damage // - // Default: "5.0" // Minimum: "0.100000" call_of_duty_heal_wait "5.0"  
      call_of_duty_heal.sp call_of_duty_heal.smx
    • Автор Райан
      Описание:
      Этот плагин будет очень полезен тем, у кого для sb_all_bot_team установлено значение 1. Плагин остановит ботов в начале раунда, на 40 секунд. CVAR'S:
      l4d2_RSBS_delay_enabled "1" Включить или отключить задержку ботов l4d2_RSBS_delay "40" Время задержки ботов Установка:
      Скомпилировать .sp файл на версии SM 1.10.0.6492 и поместить получившийся .smx файл в /left4dead2/addons/sourcemod/plugins Либо уже воспользоваться нашим .smx файлом (Скомпилированно на SM 1.10.0.6492) Сделать рестарт сервера. RSBS.sp RSBS.smx
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...