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

Подсветка цветом игрока в зависимости от здоровья (ColoredHealth)


Райан

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

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

На этот раз дяде Нику не повезло, я все тесты проделывал на нем.

Скрытый текст

20200831062308_1.jpg20200831062123_1.jpg20200831062137_1.jpg20200831062139_1.jpg20200831062157_1.jpg

Этот плагин устанавливает цвет и прозрачность игроков в зависимости от его здоровья. Кстати, этот плагин полностью настраивается с помощью конфиг файла.

Это особенно полезно для серверов Сражения на реализме.

Компиляция была произведена на SM 1.10.0.6492

Установка:

  • Скомпилировать .sp файл и поместить плагин в /left4dead2/addons/sourcemod/plugins
  • Либо уже готовый .smx файл поместить в /left4dead2/addons/sourcemod/plugins
  • Файл coloredhealth.txt поместить в /left4dead2/addons/sourcemod/configs
  • Сделать рестарт сервера.

 

coloredhealth.smx coloredhealth.sp coloredhealth.txt

Ссылка на комментарий
Поделиться на другие сайты
  • 3 недели спустя...
  • Администратор
2 часа назад, BLOODY BLADE сказал:

Новый синтаксисcoloredhealth.sp

Из всего пака который ты скинул, только этот вызывает Warning 241 при компиляции. Остальные скомпилировались идеально.

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

Из всего пака который ты скинул, только этот вызывает Warning 241 при компиляции. Остальные скомпилировались идеально.

Это для sm 1.10 нормально. Предупреждение просто оповещает на будущее, что "структуры перечислений на основе массивов удалены в sm 1.11".

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

для sm 1.10 нормально

Я как понял, в 1.11 оно не будет появляться, верно?

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

Я как понял, в 1.11 оно не будет появляться, верно?

На sm 1.11, при компиляции данного плагина компилятор выдаст предупреждения и ошибки:

Цитата

//SourceMod Batch Compiler
// by the SourceMod Dev Team


//// coloredhealth.sp
//
// D:\Games\Left4Dead2_Repack_by_Pioneer\scripting\sm&mm\sourcemod-1.11.0-git6624-windows\addons\sourcemod\scripting\coloredhealth.sp(9) : error 153: Array-based enum structs have been removed. See https://wiki.alliedmods.net/SourcePawn_Transitional_Syntax#Enum_Structs
// D:\Games\Left4Dead2_Repack_by_Pioneer\scripting\sm&mm\sourcemod-1.11.0-git6624-windows\addons\sourcemod\scripting\coloredhealth.sp(17) : error 009: invalid array size (negative, zero or out of bounds)
// D:\Games\Left4Dead2_Repack_by_Pioneer\scripting\sm&mm\sourcemod-1.11.0-git6624-windows\addons\sourcemod\scripting\coloredhealth.sp(64) : warning 213: tag mismatch (expected "int", got "float")
// D:\Games\Left4Dead2_Repack_by_Pioneer\scripting\sm&mm\sourcemod-1.11.0-git6624-windows\addons\sourcemod\scripting\coloredhealth.sp(68) : error 032: array index out of bounds (variable "g_levelData")
// D:\Games\Left4Dead2_Repack_by_Pioneer\scripting\sm&mm\sourcemod-1.11.0-git6624-windows\addons\sourcemod\scripting\coloredhealth.sp(69) : error 032: array index out of bounds (variable "g_levelData")
// D:\Games\Left4Dead2_Repack_by_Pioneer\scripting\sm&mm\sourcemod-1.11.0-git6624-windows\addons\sourcemod\scripting\coloredhealth.sp(70) : error 032: array index out of bounds (variable "g_levelData")
// D:\Games\Left4Dead2_Repack_by_Pioneer\scripting\sm&mm\sourcemod-1.11.0-git6624-windows\addons\sourcemod\scripting\coloredhealth.sp(71) : error 032: array index out of bounds (variable "g_levelData")
// D:\Games\Left4Dead2_Repack_by_Pioneer\scripting\sm&mm\sourcemod-1.11.0-git6624-windows\addons\sourcemod\scripting\coloredhealth.sp(92) : error 032: array index out of bounds (variable "g_levelData")
//
// 7 Errors.
//
// Compilation Time: 1,59 sec
// ----------------------------------------

Press enter to exit ...

 

 

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

Все же, есть решение скомпилировать этот плагин на актуальной стабильной версии SM, но так, что бы не было ни ошибок ни предупреждений. Это чисто для перфекционизма. Если что, вот код:

#include <sourcemod>

#define PL_VERSION "1.0.1-stable"

enum LevelAttributes
{
	Float:BiggerThan, 
	R, 
	G, 
	B, 
	A
}

new Handle:g_hConfigFilePath;
new g_levelData[64][LevelAttributes];

public Plugin:myinfo = 
{
	name = "ColoredHealth", 
	author = "alongub", 
	description = "Sets the color and transparency of players based on health.", 
	version = PL_VERSION, 
	url = "http://steamcommunity.com/id/alon"
};

public OnPluginStart()
{
	g_hConfigFilePath = 
	CreateConVar(
		"sm_coloredhealth_configfilepath", 
		"configs/coloredhealth.txt", 
		"Path, relative to root sourcemod directory, to colored health levels config file.", 
		_);
	
	HookEvent("player_hurt", Event_PlayerHurt);
	HookEvent("player_spawn", Event_PlayerSpawn);
	
	AutoExecConfig();
}

public OnConfigsExecuted()
{
	new Handle:kv = CreateKeyValues("levels");
	
	decl String:path[128];
	GetConVarString(g_hConfigFilePath, path, sizeof(path));
	
	BuildPath(Path_SM, path, sizeof(path), path);
	
	FileToKeyValues(kv, path);
	
	if (!KvGotoFirstSubKey(kv))
		return;
	
	decl String:sectionName[4];
	
	do
	{
		KvGetSectionName(kv, sectionName, sizeof(sectionName));
		new count = StringToInt(sectionName);
		
		new r = 255;
		new g = 255;
		new b = 255;
		new a = 255;
		
		g_levelData[count][BiggerThan] = KvGetFloat(kv, "biggerThan");
		
		KvGetColor(kv, "rgba", r, g, b, a);
		
		g_levelData[count][R] = r;
		g_levelData[count][G] = g;
		g_levelData[count][B] = b;
		g_levelData[count][A] = a;
		
	} while (KvGotoNextKey(kv));
	
	CloseHandle(kv)
}

public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	SetEntityRenderMode(client, RenderMode:RENDER_GLOW);
}

public Event_PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	new Float:health = GetEventFloat(event, "health") / GetEntProp(client, Prop_Data, "m_iMaxHealth");
	
	for (new i = 0; i < sizeof(g_levelData); i++)
	{
		if (health >= g_levelData[i][BiggerThan])
		{
			SetEntityRenderColor(client, g_levelData[i][R], g_levelData[i][G], g_levelData[i][B], g_levelData[i][A]);
			return;
		}
	}
} 

 

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

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

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

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

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

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

Войти

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

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

    • Автор Райан
      Подключение в настоящее время не поддерживается авторами, но прекрасно работает и прекрасно справляется со своей задачей.
      ЦВЕТА В ЧАТЕ
      Функции для удобного управления цветом в чате
      Описание:
      Это подключение позволяет разработчикам легко управлять раскраской чата в различных модах, использовать теги цвета, использовать теги в переводах и автоматически заменять цвета в модах, которые их не поддерживают (любой цвет, который не поддерживается, будет заменен зеленым цветом). Функции:
      CPrintToChat CPrintToChatAll CPrintToChatEx CPrintToChatAllEx CRemoveTags CSkipNextClient Какой то код:
      /** * Prints a message to a specific client in the chat area. * Supports color tags. * * @param client Client index. * @param szMessage Message (formatting rules). * @return No return * * On error/Errors: If the client is not connected an error will be thrown. */ stock CPrintToChat(client, const String:szMessage[], any:...) /** * Prints a message to all clients in the chat area. * Supports color tags. * * @param client Client index. * @param szMessage Message (formatting rules) * @return No return */ stock CPrintToChatAll(const String:szMessage[], any:...) Возможные теги: {default}, {green}, {lightgreen}, {red}, {blue}, {olive}.
      Регулярные цвета: default, green (yellow в L4D), olive.
      Командные цвета: lightgreen, red, blue.
      Примечания:
      В сообщении можно использовать только один командный цвет (например lightgreen, red или blue). В hl2dm цвета для классического deathmatch и командного deathmatch разные. Если какой-то цвет не поддерживается модом, он будет автоматически заменен на зеленый. Вы можете использовать эти функции вместо функции SM по умолчанию, они поддерживают форматирование (% d,% s,% t и так далее) Зеленый цвет - желтый в L4D и L4D2. Для правильной работы красного и синего цветов в каждой команде должен быть хотя бы один игрок. В противном случае эти теги будут заменены на зеленый. Файлы и ссылки:
      Версия colors.inc 2.0.0-MC colors.inc
    • Автор Райан
      Это еще один плагин, который будет спамить нанесенным уроном на экране, во время игры в Left 4 Dead 2. Если говорить уж совсем просто, то это индикатор попадания в Left 4 Dead. Предыдущий подобный плагин можно скачать здесь:
      ConVars:
      sm_display_damage_ads: Показывает рекламное сообщение, которое говорит игрокам что они могут изменить способ отображения. sm_display_damage_enabled: Включает отображение урона игрокам. sm_display_damage_default: Режим отображения повреждений по умолчанию. 1 = все; 2 = нанесенный игроком урон; 3 = нанесенный игроку урон. sm_display_damage_delay: минимальная задержка между отображениями повреждений. sm_display_damage_mode: режим отображения урона игрокам. 1 = текст подсказки; 2 = центральный текст; 3 = Текст чата. Команды игрока:
      sm_displaymode <0/1/2/3> - для консоли !displaymode <0/1/2/3> - для чата -----
      Перейти к посту с последней версией плагина. displaydamage.sp - Исходник
      displaydamage.smx - Плагин
    • Автор Райан
      Как я понял, администраторы делаю випам цветной чат. Если тот, у кого цветной чат использует специальный символ, например @, то цветное сообщение блокируется, и отправляется обычное. Плагин понравился тем, что у него простой и очень маленький код.
      /* [ Includes ] */ #include <sourcemod> /* [ Compiler Options ] */ #pragma newdecls required #pragma semicolon 1 /* [ Defines ] */ #define MAX_MESSAGE_LENGTH 512 /* [ Chars ] */ static const char g_sSymbols[][] = { "", "", "", "", "", "", "", "", "", "", "", " " }; // White | Green | Blue | Darkblue | Darkred | Gold | Grey | Lightgreen | Lightred | Lime | Purple | Yellow /* [ Plugin Author And Informations ] */ public Plugin myinfo = { name = "[CS:GO] Pawel - [ Block Color Chat ]", author = "Pawel", description = "Block color messages for CS:GO servers by Pawel.", version = "1.0.0", url = "https://steamcommunity.com/id/pawelsteam" }; /* [ Message Modify ] */ public Action OnChatMessage(int &iAuthor, Handle hRecipients, char[] sName, char[] sMessage) { for (int i = 0; i < sizeof(g_sSymbols); i++) { while (StrContains(sMessage, g_sSymbols[i]) != -1) { ReplaceString(sMessage, MAX_MESSAGE_LENGTH, g_sSymbols[i], ""); return Plugin_Changed; } } return Plugin_Continue; }  
      pBlockColorChat.sp pBlockColorChat.smx
    • Автор Райан
      О плагине:
      Потрепанный Зараженный сможет восстановить свое здоровье, если атакует обычных Зомби или Выживших. Плагин тестировался и компилировался на версии SourceMod (1.10.0.6497).
      Установка:
      Извлеките содержимое из архива Положите файл .smx в /left4dead2/addons/sourcemod/plugins Перезапустите сервер При первом запуске плагина генерируется следующий CFG файл:
      // This file was auto-generated by SourceMod (v1.10.0.6497) // ConVars for plugin "L4D2 Vampiric Infected.smx" // Позволяет Особо зараженным атаковать обычных зараженных для восстановления здоровья. // - // Default: "1" // Minimum: "0.000000" l4d_vim_vampiriccommon "1" // Количество HP, которое особый зараженный получает каждый раз, когда атакует обычного зараженного. // - // Default: "5" // Minimum: "0.000000" l4d_vim_vampiriccommonamount "5" // Период восстановления между действием Вампиризма // - // Default: "0.5" // Minimum: "0.000000" l4d_vim_vampiriccommoncooldown "0.5" // Процент для уменьшения ущерба, наносимого обычным инфицированным во время лечения // - // Default: "0.3" // Minimum: "0.000000" l4d_vim_vampiriccommonreduction "0.3" // Версия Плагина // - // Default: "1.1" l4d_vim_version "1.1"  
      L4D2 Vampiric Infected.smx L4D2 Vampiric Infected.sp
  • Последние посетители   0 пользователей онлайн

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

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