ReDie и !IsPlayerAlive

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Возможно ли как-нибудь сделать чтобы sourcemod думал что возрожденные призраки мертвые, когда проверяешь игрока на IsPlayerAlive ?

Вот подобный плагин https://forums.alliedmods.net/showthread.php?p=2198357

В самом плагине, должна идти проверка.
Если призрак значит он мертв.

А вообще вопрос не понятен, зачем тебе это?
 

SHAREN

Servers-Info.Ru
Сообщения
232
Реакции
32
А вообще вопрос не понятен, зачем тебе это?

Ну к примеру у меня есть плагины которые считают живых игроков. К примеру в [CSS/CS:GO] SM_Hosties пока не останется 2 живых Т написание полседнего желания !lr не будет доступно, и этот плагин считает и призраков как живых игроков.

Добавлено через 25 минут
Ну к примеру у меня есть плагины которые считают живых игроков. К примеру в [CSS/CS:GO] SM_Hosties пока не останется 2 живых Т написание полседнего желания !lr не будет доступно, и этот плагин считает и призраков как живых игроков.

P.S. хотя этот redie работает нормально с !IsPlayerAlive но этот именно https://github.com/Franc1sco/Franug-DM-minigame-for-dead-players этот плагин не маскирует.

P.S. было m_lifeState 0 надо было 1
 
Последнее редактирование:

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Ну к примеру у меня есть плагины которые считают живых игроков. К примеру в [CSS/CS:GO] SM_Hosties пока не останется 2 живых Т написание полседнего желания !lr не будет доступно, и этот плагин считает и призраков как живых игроков.

Добавлено через 25 минут


P.S. хотя этот redie работает нормально с !IsPlayerAlive но этот именно https://github.com/Franc1sco/Franug-DM-minigame-for-dead-players этот плагин не маскирует.

P.S. было m_lifeState 0 надо было 1

Ну наверное нужна булевая проверка.
Создаешь в плагине проверку. Если bool = true, то запрещаешь писать !LR, если bool = false, то разрешаем.
Или если можно использовать функцию !IsPlayerAlive, то устанавливаешь для призраком эту функцию. Хотя я такое не делал, чтобы игрок был живым и считался как мертвый игрок.
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
SetEntProp(client, Prop_Send, "m_Alive", 0);
Я надеялся что то подобное есть
но не нашел

m_bIsLive
Возможно то что надо
 

SHAREN

Servers-Info.Ru
Сообщения
232
Реакции
32
https://goo.gl/cF06SQ
C-подобный:
// m_lifeState values
#define	LIFE_ALIVE				0 // alive
#define	LIFE_DYING				1 // playing death animation or still falling off of a ledge waiting to hit ground
#define	LIFE_DEAD				2 // dead. lying still.
#define LIFE_RESPAWNABLE		3
#define LIFE_DISCARDBODY		4
Нашел значения m_lifeState, если делать значение > 0 , то призрак не сможет резать, стрелять и его не будет видно.

Немного разобрался, оказывается строку SetEntProp(client, Prop_Send, "m_lifeState", 0); вообще можно убрать, в этом плагине она ни на что не влияет

А то что в табе показывает призраков мертвыми работает за счет g_iOffset_PlayerResource_Alive
https://goo.gl/wF55UY я конечно же новичок и понятия не имею как это работает.

Добавлено через 19 минут
К примеру я могу сделать native IsPlayerGhost в плагине DM-minigame-for-dead-players

Первый вариант засунуть в каждый плагин на сервере проверку рядом с IsPlayerAlive(i) && !IsPlayerGhost(i) чтобы эти плагины игнорировали призраков. Но это займет кучу времени и будут трудности с обновлением плагинов.

Второй вариант это переписать СМ чтобы при вызове IsPlayerAlive он проверял к примеру через OnPlayerManager_ThinkPost не отображается ли этот живой игрок мертвым. Или на прямую делал запрос в плагин DM-minigame-for-dead-players.
native bool:IsPlayerAlive(client); и static cell_t smn_IsPlayerAlive

Ну и третий вариант (не знаю возможно ли такое) чтобы плагин перехватывал запрос IsPlayerAlive(client) и менял его значение.

Но как реализовать 2й или 3й вариант я не знаю.
 
Последнее редактирование:
Сверху Снизу