Иконка ресурса

hostageskillers 16-10-2012

DivX

Участник
Сообщения
23
Реакции
14
  • Автор ресурса
  • #1
hostageskillers

Описание:

Плагин отнимает 25 хп у игрока убившего заложника. Принадлежность к команде не имеет значения. Если у игрока менее 25 хп, то плагин оставит ему 1 хп.

Установка:

Закинуть hostageskillers.smx в addons/sourcemod/plugins
Закинуть hostageskillers.sp в addons/sourcemod/scripting

Квары:

Кваров нет. Количество отнимаемых хп можно исправить в исходнике.

Дополнительное описание:

Этот плагин мне сделал на заказ SemJeF , за что ему отдельное спасибо.
Плагин не делает никаких оповещений в чат, так что я использую его в связке с Hostage Down!

Скриншот:
ss (2012-10-16 at 10.44.31).jpg
 
Последнее редактирование модератором:

Andrey

пишу код за еду
Сообщения
3,386
Реакции
4,019
  • Команда форума
  • #2
Какой смысл был заливать на народ.ру, а не сюда ?
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Upd.
PHP:
#pragma semicolon 1
#include <sourcemod>

#define PL_VERSION "1.0"

new	Handle:g_SubtractionHP = INVALID_HANDLE;
new Handle:g_SetHp = INVALID_HANDLE;
new Handle:g_Enabled = INVALID_HANDLE;

public Plugin:myinfo =
{
	name = "Hostages Killers",
	author = "SemJeF",
	description = " ",
	version = PL_VERSION,
	url = "http://Pluginshop.ru/"
};

public OnPluginStart()
{
	CreateConVar("sm_hk_version", PL_VERSION, "Версия плагина", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_CHEAT|FCVAR_DONTRECORD);
	g_Enabled = CreateConVar("sm_hk_enable", "1", "Включение = 1 / Отключение = 0 плагина", FCVAR_NOTIFY, true, 0.0, true, 1.0);
	g_SubtractionHP = CreateConVar("sm_hk_substractionhp", "25", "Укажите сколько количество здоровья, убавляемое за укбийство заложника", FCVAR_NOTIFY);
	g_SetHp = CreateConVar("sm_hk_sethp", "1", "Укажите, какое количество здоровья установить если оно меньше sm_hk_substractionhp", FCVAR_NOTIFY);
	HookEvent("hostage_killed", Event_HostageKilled);
	
	AutoExecConfig(true, "HostageKill");
}


public Event_HostageKilled(Handle:event, const String:name[], bool:dontBroadcast)
{
	if (!GetConVarBool(g_Enabled)) return;

	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	if (client < 1 || !IsPlayerAlive(client)) return;

	new hp = GetClientHealth(client);
	new subhp = GetConVarInt(g_SubtractionHP);

	if (hp > subhp)
	{
		SetEntityHealth(client, hp - subhp);
		PrintToChat(client, "\x01\x03За убийство заложника ваше здоровье уменьшилось на \x05%d hp", subhp);
	}
	else if (hp < subhp)
	{
		SetEntityHealth(client, (hp = GetConVarInt(g_SetHp)));
		PrintToChat(client, "\x01\x03За убийство заложника вам установлено здоровье в количестве \x05%d hp", hp);
	}
}
 
Последнее редактирование:

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
PHP:
#pragma semicolon 1
#include <sourcemod>

#define PL_VERSION "1.0"

new Handle:g_Enabled = INVALID_HANDLE;
new	Handle:g_SubtractionHP = INVALID_HANDLE;
new Handle:g_SetHp = INVALID_HANDLE;

public Plugin:myinfo =
{
	name = "Hostages Killers",
	author = "SemJeF",
	description = " ",
	version = PL_VERSION,
	url = "http://Pluginshop.ru/"
};

public OnPluginStart()
{
	CreateConVar("sm_hk_version", PL_VERSION, "Версия плагина", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_CHEAT|FCVAR_DONTRECORD);
	g_Enabled = CreateConVar("sm_hk_enable", "1", "Включение = 1 / Отключение = 0 плагина", FCVAR_NOTIFY);
	g_SubtractionHP = CreateConVar("sm_hk_substractionhp", "25", "Укажите сколько количество здоровья, убавляемое за укбийство заложника", FCVAR_NOTIFY);
	g_SetHp = CreateConVar("sm_hk_sethp", "1", "Укажите, какое количество здоровья установить если оно меньше sm_hk_substractionhp", FCVAR_NOTIFY);
	HookEvent("hostage_killed", Event_HostageKilled);
	
	AutoExecConfig(true, "HostageKill");
}


public Event_HostageKilled(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	new gethp = GetClientHealth(client);
	new subhp = GetConVarInt(g_SubtractionHP);
	new enable = GetConVarInt(g_Enabled);
	new sethp = GetConVarInt(g_SetHp);
	if(enable)
	{
		if(gethp > subhp)
		{
			SetEntityHealth(client, gethp - subhp);
			PrintToChat(client, "\x01\x03За убийство заложника ваше здоровье уменьшилось на \x05%s hp", subhp);
		}
		else if(gethp < subhp)
		{
			SetEntityHealth(client, sethp);
			PrintToChat(client, "\x01\x03За убийство заложника вам установлено здоровье в количестве \x05%s hp", sethp);
		}
	}
}

Хотел сделать плагин легко настраиваемым. Не получаются только сообщения. То есть в сообщениях нет количества убавки\установки hp. В чем ошибка?

Дело в том, что нельзя принтовать хандлы, так же ты не можешь число выводить, как строку.

PrintToChat(client, "\x03За убийство заложника вам установлено здоровье в кол-ве \x05%d hp", sethp);

Так же с subhp.
 

semjef

semjef.ru
Сообщения
993
Реакции
444
DoK_1997, ввести числовые переменные и юзать GetConVarInt(hCVar);
 

legend1998

Участник
Сообщения
286
Реакции
187
Оффтоп
 
Сверху Снизу