Скрипт урона

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Как сделать так что бы когда вас какой-то определенный игрок например из команды CT урон вам не наносился+Надо не только что бы урон не наносился, но и что бы он не мог вас убить вообще
 

The End Is Near...

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

new bool:check[MAXPLAYERS + 1]  = {false, ...};

new	m_iHealth = -1;

public OnPluginStart()
{
	if ((m_iHealth = FindSendPropOffs("CCSPlayer", "m_iHealth")) == -1)
	{
		SetFailState("m_iHealth error"); 
	}
	else
	{
		HookEvent("player_hurt", Event_OnPlayerHurt, EventHookMode_Pre);

		RegConsoleCmd("test", CallBack);
	}
}

public Action:Event_OnPlayerHurt(Handle:event, const String:name[], bool:silent)
{
	if (check[GetClientOfUserId(GetEventInt(event, "attacker"))])
	{
		new client = GetClientOfUserId(GetEventInt(event,"userid"));
		SetEntData(client, m_iHealth, GetClientHealth(client) + GetEventInt(event, "dmg_health"), 4, true);
	}
}

public Action:CallBack(client, args)
{
	if (client > 0)
	{
		check[client] = !check[client];
		PrintToChat(client, "Вы %sможете наносить урон", check[client] ? "не " : "");
	}

	return Plugin_Handled;
}
 
Последнее редактирование:

Черная вдова

Участник
Сообщения
2,795
Реакции
670
The End Is Near...,
Не вижу проверки команды атакующего
И не надо эти проверки на ошибки со здоровьем, игра css не надо их

Добавлено через 7 минут
Вот так же можно и игрок CT ТОЧНО НЕ УБЬЕТ да ? Даже если будет достаточно 1 попадания
C-подобный:
[COLOR=#000000][COLOR=#000000][COLOR=#FF8000]#include <sourcemod>[/COLOR][/COLOR][COLOR=#007700]

public [/COLOR][COLOR=#0000BB]OnPluginStart[/COLOR][COLOR=#007700]()
{[/COLOR][COLOR=#007700]
        [/COLOR][COLOR=#0000BB]HookEvent[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"plyaer_hurt"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Event_OnPlayerHurt[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]EventHookMode_Pre[/COLOR][COLOR=#007700]);[/COLOR][COLOR=#007700]
}

public [/COLOR][COLOR=#0000BB]Action[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]Event_OnPlayerHurt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Handle[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]event[/COLOR][COLOR=#007700], const [/COLOR][COLOR=#0000BB]String[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]name[/COLOR][COLOR=#007700][], [/COLOR][COLOR=#0000BB]bool[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]silent[/COLOR][COLOR=#007700])
{
[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#007700]new [/COLOR][COLOR=#0000BB]attacker2 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]GetClientOfUserId[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]GetEventInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]event[/COLOR][COLOR=#007700],[/COLOR][COLOR=#DD0000]"[/COLOR][/COLOR][/COLOR][/COLOR][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#DD0000][COLOR=#000000][COLOR=#DD0000]attacker[/COLOR][/COLOR]"[/COLOR][COLOR=#007700]));[/COLOR][/COLOR]  
[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#007700]new [/COLOR][COLOR=#0000BB]client2 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]GetClientOfUserId[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]GetEventInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]event[/COLOR][COLOR=#007700],[/COLOR][COLOR=#DD0000]"[/COLOR][/COLOR][/COLOR][/COLOR][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#DD0000][COLOR=#000000][COLOR=#DD0000]userid[/COLOR][/COLOR]"[/COLOR][COLOR=#007700]));[/COLOR][/COLOR]  [/COLOR][/COLOR]  
 if (GetClientTeam([/COLOR][/COLOR][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#0000BB]attacker2[/COLOR][/COLOR][/COLOR][/COLOR]) == 3)[/COLOR][COLOR=#007700]
    {[/COLOR][COLOR=#007700]
        [/COLOR][COLOR=#0000BB]SetEntData[/COLOR][COLOR=#007700]([/COLOR][/COLOR][COLOR=#000000][COLOR=#0000BB][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#0000BB]client2[/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]m_iHealth[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]GetClientHealth[/COLOR][COLOR=#007700]([/COLOR][/COLOR][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#007700][COLOR=#000000][COLOR=#0000BB]client2[/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][COLOR=#007700]) + [/COLOR][COLOR=#0000BB]GetEventInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]event[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"dmg_health"[/COLOR][COLOR=#007700]), [/COLOR][COLOR=#0000BB]4[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]true[/COLOR][COLOR=#007700]);
    }
}
[/COLOR][COLOR=#007700]
[/COLOR][/COLOR]

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

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Черная вдова
Проверь, у тебя ошибки в коде. Команду игрока можешь сам проверить.
 

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
wanted241
Как ты думаешь, на чем основывается SetEntityHealth?

И так знаю. Но все же. Зачем мудрить ? Все пользуются SetEntityHealth() и ни у кого еще не было с этим проблем.

Добавлено через 1 минуту
Да и вообще, если ты хочешь полностью убрать урон, чтобы он до тебя даже не дошел - это не поможет. Нужно по-другому делать.
 
Последнее редактирование:

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
HookMode_Pre. Не заметил.

Добавлено через 1 минуту
Но урон дойдет. Пусть ты и прибавил до этого хп, но урон дойдет. Если хочешь, чтобы даже не доходил, используй SDKHooks.

Добавлено через 5 минут
Кстати, не знал, что есть такое событие:

C-подобный:
HookEvent("plyaer_hurt", Event_OnPlayerHurt, EventHookMode_Pre);
 
Последнее редактирование:
Сверху Снизу