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

[TF2] (Маска против вирусов) Covid-19 Mask


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

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

Этот плагин позволяет игрокам носить маски, защищающие их от Covid-19. Внимание, плагин работает только в Team Fortress 2.

Пропишите команду !covid что бы использовать маску.

68747470733a2f2f692e696d6775722e636f6d2f364a67714d61732e706e67.png

Ниже код, на случай того, если я буду удалять файлы в своем профиле:

#include <sourcemod>
#include <tf2_stocks>
#include <clientprefs>
#include <morecolors>


#pragma semicolon 1
#pragma newdecls required

#define PLUGIN_VERSION "1.0"
#define MASK_INDEX 31163

Handle g_hWearableEquip;
Handle g_hCookie;

int g_Mask[MAXPLAYERS+1] = {false,...};

public Plugin myinfo = 
{
	name = "[TF2] Covid-19",
	author = "Tair",
	description = "Gives TF2 players mask against Covid-19",
	version = PLUGIN_VERSION,
	url = "https://forums.alliedmods.net"
}


public void OnPluginStart() 
{
    
	RegConsoleCmd("sm_covid", Command_Mask);
	HookEvent("post_inventory_application", OnResupply);
	g_hCookie  = RegClientCookie("covid_mask", "", CookieAccess_Private);

	GameData hTF2 = new GameData("sm-tf2.games"); // sourcemod's tf2 gamdata

	if (!hTF2)
		SetFailState("This plugin is designed for a TF2 dedicated server only.");

	StartPrepSDKCall(SDKCall_Player);
	PrepSDKCall_SetVirtual(hTF2.GetOffset("RemoveWearable") - 1);    // EquipWearable offset is always behind RemoveWearable, subtract its value by 1
	PrepSDKCall_AddParameter(SDKType_CBaseEntity, SDKPass_Pointer);
	g_hWearableEquip = EndPrepSDKCall();

	if (!g_hWearableEquip)
		SetFailState("Failed to create call: CBasePlayer::EquipWearable");

	delete hTF2; 
}


public Action OnResupply(Handle event, char[] name, bool dontBroadcast)
{
	int client = GetClientOfUserId(GetEventInt(event, "userid"));
	if(g_Mask[client])
    	CreateMask(client);
}


public Action Command_Mask(int client, int args)
{
	if (!g_Mask[client])
	{
		g_Mask[client] = true;
		SetClientCookie(client, g_hCookie, "true");
		CPrintToChat(client,"{gold}★ Covid-19 {white}| Mask is now on! Touch resupply to receive!");
	}
	else
	{
		g_Mask[client] = false;
		SetClientCookie(client, g_hCookie, "false");
		CPrintToChat(client,"{gold}★ Covid-19 {white}| Mask is now off. Touch resupply to remove it!");
	}

	return Plugin_Handled;
}


public void OnClientDisconnect(int client)
{
	g_Mask[client] = false;
}


public void OnClientCookiesCached(int client) 
{
   char value[9];
   GetClientCookie(client, g_hCookie, value, sizeof(value));
   if (StrEqual(value, "true"))
      g_Mask[client] = true;
}


bool CreateMask(int client)
{
	int hat = CreateEntityByName("tf_wearable");
	
	if (!IsValidEntity(hat))
	{
		return false;
	}
	
	char entclass[64];
	GetEntityNetClass(hat, entclass, sizeof(entclass));
	SetEntProp(hat, Prop_Send, "m_iItemDefinitionIndex", MASK_INDEX);	 
	SetEntProp(hat, Prop_Send, "m_bInitialized", 1);
	SetEntData(hat, FindSendPropInfo(entclass, "m_iEntityQuality"), 10);
	SetEntProp(hat, Prop_Send, "m_iEntityLevel", 1);
	
	DispatchSpawn(hat);
	SDKCall(g_hWearableEquip, client, hat);
	return true;
}

 

Covid.smx Covid.sp

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

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

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

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

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

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

Войти

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

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

    • Автор Райан
      Актуальная версия подключения morecolors.inc, которое необходимо при компиляции некоторых плагинов. Например:
      Подключение необходимо положить в следующую директорию:
      D:\sm111\addons\sourcemod\scripting\include  
      morecolors.inc
    • Автор Райан
      Новый формат изображений от Google с расширением .webp набирает популярность. Всё чаще его можно встретить на сайтах, так как он оптимизирует картинку под меньший размер без потери качества по сравнению с .jpg. В этом году его стали использовать даже у нас на IP-Gamers.NET.
      Но, при скачивании и открытии в Photoshop, такой файл выдаёт ошибку, которая говорит что Photoshop не может  прочитать этот формат.
      Что бы избежать этого, по пути:
      C:\Program Files\Adobe Photoshop 2020\Plug-ins\File Formats Вставьте файл, что я прикрепил в этом посте.
      Так же рекомендую сохранять ваши JPG теперь именно в WEBP.
      Ссылки на скачивание:
      Рекомендованная Adobe версия плагина W.rar
       
    • Автор 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 пользователей онлайн

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

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