Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Принудительный увеличить ослепление
Принудительный увеличить ослепление
Naykon Дата: Пятница, 06.06.2014, 17:43:00 | Сообщение # 1
Сообщений: 439
Репутация: -4 [ +/- ]
Можно ли как ниубедь увеличить длительность ослепления игрока воспользовавшись слеповой гранатой... аналогично и боевой (больше дымаг) и дымовой (больше дыма)
?
 
BarD Дата: Пятница, 06.06.2014, 18:35:47 | Сообщение # 2
Сообщений: 943
Репутация: 137 [ +/- ]
Насчёт осколочной:
1) Ловишь событие player_hurt (Pre)
2) Проверяешь оружие
3) Если это граната, то уменьшаешь хп игрока через SetEntProp на сколько хочешь
Т.к. даже если хп игрока ты сделаешь равным нулю, то он не умрёт. И граната его добьет. Только обязательно лови Pre, чтобы уменьшить ему хп до взрыва гранаты.

Насчёт слеповухи:
1) Ловишь событие ослепления от флешки (player_blind)
2) Находишь игрока, которого ослепило (event, "userid")
3) Делаешь ему ослепление, на сколько тебе надо

Код
SetEntPropFloat(client, Prop_Send, "m_flFlashDuration", 0.0); //Время
       SetEntPropFloat(client, Prop_Send, "m_flFlashMaxAlpha", 0.0); //Прозрачность. Попробуй на 255 поставить
 
Naykon Дата: Четверг, 07.08.2014, 18:16:47 | Сообщение # 3
Сообщений: 439
Репутация: -4 [ +/- ]
Время ослепления зависит от того куда смотрит пострадавший от слепы.. если на нее то заслепить его конкретно если нет то мение сильно... также зависит от расстояния от пострадавшего.Как получить время ослепления от слеповой?


Сообщение отредактировал Naykon - Четверг, 07.08.2014, 18:46:02
 
BarD Дата: Четверг, 07.08.2014, 18:58:45 | Сообщение # 4
Сообщений: 943
Репутация: 137 [ +/- ]
Думаю, что так:
Код
new Float:Time = GetEntPropFloat(client, Prop_Send, "m_flFlashDuration");

Логично же...
 
Naykon Дата: Четверг, 07.08.2014, 19:19:04 | Сообщение # 5
Сообщений: 439
Репутация: -4 [ +/- ]
оуу возможно просто вариант SetEntPropFloat(client, Prop_Send, "m_flFlashDuration", 0.0); работал не корректно.. а конкретно работал только 1 раз. после слеп вообще не слепила.
 
BarD Дата: Четверг, 07.08.2014, 19:25:18 | Сообщение # 6
Сообщений: 943
Репутация: 137 [ +/- ]
Попробуй, вдруг сработает.
 
Naykon Дата: Четверг, 07.08.2014, 19:47:33 | Сообщение # 7
Сообщений: 439
Репутация: -4 [ +/- ]
Сработало.

Код
public Action:player_blind(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event,"userid"));
new killer = GetClientOfUserId(GetEventInt(event, "attacker"));
PrintToChatAll("%N,%N",killer, client);
}

new killer = GetClientOfUserId(GetEventInt(event, "attacker")); - не работает... Как можно получить индекс игрока который кинул слепу в момент ее активации.?

Если не знаете как получить индекс игрока. Тогда встречный вопрос как получить индекс взорвавшейся флешки?


Сообщение отредактировал Naykon - Четверг, 07.08.2014, 20:37:19
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Принудительный увеличить ослепление
  • Страница 1 из 1
  • 1
Поиск: