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

Hide radar the dead player 1.0.1

Нет прав для скачивания

Drumanid

Нестандартное звание
Сообщения
1,858
Реакции
1,721
  • Автор ресурса
  • #1
Пользователь Drumanid разместил новый ресурс:

Hide radar the dead player - Скрывает радар после смерти игрока или же когда он находится в спекторах(наблюдателях)

Описание:

Скрывает радар после смерти игрока или же когда он находится в спекторах(наблюдателях)

Демонстрация:

ezgif.com-video-to-gifc12f49c14048ada3.gif

Узнать больше об этом ресурсе...
 

White Wolf

🍉
Сообщения
2,338
Реакции
2,140
  • Команда форума
  • #2

Grey83

не пишу плагины с весны 2022
Сообщения
7,119
Реакции
4,121
@TiBarification, любит он дефайны делать, типа это код сокращает (зато делает совершенно нечитаемым, кмк)

Вот код здорового человека :wink:
PHP:
#pragma semicolon 1
#pragma newdecls required

ConVar hCvar;

public Plugin myinfo =
{
    name    = "[CS:GO] Hide radar the dead player",
    version    = "1.0.2",
    author    = "Drumanid",
    url        = "Discord: Drumanid#9108"
};

public void OnPluginStart()
{
    if(!(hCvar = FindConVar("sv_disable_radar"))) SetFailState("No found cvar: sv_disable_radar");

    HookEvent("player_spawn",    Event_Mode);
    HookEvent("player_death",    Event_Mode);
    HookEvent("player_team",    Event_Mode);
}

public void Event_Mode(Event event, const char[] name, bool dontBroadcast)
{
    if(name[7] == 't' && event.GetInt("team") > 1) return;

    int client = GetClientOfUserId(event.GetInt("userid"));
    if(!IsFakeClient(client)) hCvar.ReplicateToClient(client, name[7] == 's' ? "0" : "1");
}
C-подобный:
//// HRTDP 1.0.2.sp

//
// Code size:             4476 bytes
// Data size:             2752 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   23612 bytes
//
// Compilation Time: 0,19 sec
// ----------------------------------------

//// HRTDP 1.0.1.sp
//
// Code size:             4664 bytes
// Data size:             2764 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   23812 bytes
//
// Compilation Time: 0,17 sec
// ----------------------------------------
 

Вложения

  • HRTDP 1.0.2.sp
    769 байт · Просмотры: 19

Drumanid

Нестандартное звание
Сообщения
1,858
Реакции
1,721
  • Автор ресурса
  • #4
@TiBarification, любит он дефайны делать, типа это код сокращает (зато делает совершенно нечитаемым, кмк)
Поздравляю с лишними проверками.
Нет, дефайны использую для удобности, а не только для того чтобы сократить код, хотя одно другому не мешает.

код неприятно читать, вы от кого шифруетесь?
Кажды(О)й дрочит так как хочет, я дрочу как я хочу.
Если бы я хотел запутать код, писал бы как @AlmazON
 

megoRU

Участник
Сообщения
383
Реакции
80
А можно сделать версию или квар для скрытия радара при просмотре kill cam, а когда уже посмотрел радар включается
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,240
Реакции
1,306
@TiBarification, любит он дефайны делать, типа это код сокращает (зато делает совершенно нечитаемым, кмк)

Вот код здорового человека :wink:

Вы случаем не забыли сделать проверку состояние конвара sv_disable_radar? Ибо если на сервере стоит 0, то игроку в противном случае может включиться радар.

Не лучше ли здесь использовать побитовый сдвиг?

PHP:
#define HIDEHUD_RADAR 1 << 12
#define SHOWHUD_RADAR 1 >> 12
bool radar[MAXPLAYERS + 1] = true;

//on
SetEntProp(iClient, Prop_Send, "m_iHideHUD", SHOWHUD_RADAR);
radar[iClient] = true;

//off
SetEntProp(iClient, Prop_Send, "m_iHideHUD", HIDEHUD_RADAR);
radar[iClient] = false;
 
Последнее редактирование:

Drumanid

Нестандартное звание
Сообщения
1,858
Реакции
1,721
  • Автор ресурса
  • #7
Не лучше ли здесь использовать побитовый сдвиг?
Не скроешь так радар.

Будешь наблюдать за игроком, либо просто уйдешь в наблюдатели, он у тебя снова появится.

Not working:

PHP:
#pragma semicolon 1
#pragma newdecls required

#include <sourcemod>

public Plugin myinfo =
{
    name = "Hide radar the dead player",
    author = "Drumanid",
    version = "1.0.2",
    url = "Discord: Drumanid#9108"
};

public void OnPluginStart()
{
    #define HOOKEVENT(%0,%1) HookEvent(%0, view_as<EventHook>(%1));
    HOOKEVENT("player_spawn", Event_PlayerSpawn)
    HOOKEVENT("player_death", Event_PlayerDeath)
    HOOKEVENT("player_team", Event_PlayerTeam)
}

#define ON 1 >> 12
#define OFF 1 << 12

#define RADAR(%0) \
{ int iClient = GetClientOfUserId(hEvent.GetInt("userid")); \
if(!IsFakeClient(iClient)) SetEntProp(iClient, Prop_Send, "m_iHideHUD", %0); }

void Event_PlayerSpawn(Event hEvent)
    RADAR(ON)

void Event_PlayerDeath(Event hEvent)
    RADAR(OFF)

void Event_PlayerTeam(Event hEvent)
{
    if(hEvent.GetInt("team") < 2)
        RADAR(OFF)
}

А можно сделать версию или квар для скрытия радара при просмотре kill cam, а когда уже посмотрел радар включается
Кстати, касательно вопроса выше...

PHP:
#include <sourcemod>

public void OnPluginStart()
{
    HookEvent("player_death", view_as<EventHook>(Event_PlayerDeath));
}

void Event_PlayerDeath(Event hEvent)
{
    SetEntProp(GetClientOfUserId(hEvent.GetInt("userid")), Prop_Send, "m_iHideHUD", 1 << 12);
}

Попробуй.

Вы случаем не забыли сделать проверку состояние конвара sv_disable_radar? Ибо если на сервере стоит 0, то игроку в противном случае может включиться радар.
Если на сервере будет выключен sv_disable_radar, то все будет так как должно быть, если же наоборот включен, следует вопрос... Зачем тогда нужен плагин?

Вот поэтому публиковать ресурсы мне не хочется :russian_ru:
 

RAIN182

Участник
Сообщения
400
Реакции
55
Не скроешь так радар.

Будешь наблюдать за игроком, либо просто уйдешь в наблюдатели, он у тебя снова появится.

Not working:

PHP:
#pragma semicolon 1
#pragma newdecls required

#include <sourcemod>

public Plugin myinfo =
{
    name = "Hide radar the dead player",
    author = "Drumanid",
    version = "1.0.2",
    url = "Discord: Drumanid#9108"
};

public void OnPluginStart()
{
    #define HOOKEVENT(%0,%1) HookEvent(%0, view_as<EventHook>(%1));
    HOOKEVENT("player_spawn", Event_PlayerSpawn)
    HOOKEVENT("player_death", Event_PlayerDeath)
    HOOKEVENT("player_team", Event_PlayerTeam)
}

#define ON 1 >> 12
#define OFF 1 << 12

#define RADAR(%0) \
{ int iClient = GetClientOfUserId(hEvent.GetInt("userid")); \
if(!IsFakeClient(iClient)) SetEntProp(iClient, Prop_Send, "m_iHideHUD", %0); }

void Event_PlayerSpawn(Event hEvent)
    RADAR(ON)

void Event_PlayerDeath(Event hEvent)
    RADAR(OFF)

void Event_PlayerTeam(Event hEvent)
{
    if(hEvent.GetInt("team") < 2)
        RADAR(OFF)
}


Кстати, касательно вопроса выше...

PHP:
#include <sourcemod>

public void OnPluginStart()
{
    HookEvent("player_death", view_as<EventHook>(Event_PlayerDeath));
}

void Event_PlayerDeath(Event hEvent)
{
    SetEntProp(GetClientOfUserId(hEvent.GetInt("userid")), Prop_Send, "m_iHideHUD", 1 << 12);
}

Попробуй.


Если на сервере будет выключен sv_disable_radar, то все будет так как должно быть, если же наоборот включен, следует вопрос... Зачем тогда нужен плагин?

Вот поэтому публиковать ресурсы мне не хочется :russian_ru:
Так после смерти при просмотре демо убийства радар виден будет ???
 

Drumanid

Нестандартное звание
Сообщения
1,858
Реакции
1,721
  • Автор ресурса
  • #11
Он есть , после убийства при просмотре повтора имеется радар на котором расположение всех игроков просматривается .
Не не не, с чего ты решил что радар будет в 'повторе смерти', если плагин установлен?
Нет бы поставить и затестить, я же этого тоже не знаю.

PHP:
#include <sourcemod>

public void OnPluginStart()
{
    HookEvent("player_death", view_as<EventHook>(Event_PlayerDeath));
}

void Event_PlayerDeath(Event hEvent)
{
    SetEntProp(GetClientOfUserId(hEvent.GetInt("userid")), Prop_Send, "m_iHideHUD", 1 << 12);
}
Попробуй.

Этот вариант не будет работать (возвращает радар когда смотришь повтор), только через таймер возвращать...
Тобишь убили игрока, скрыли радар, запустили таймер, как только таймер закончился > возвращать радар.
Вопрос лишь в том какова продолжительность 'повтора смерти'.
 

RAIN182

Участник
Сообщения
400
Реакции
55
Не не не, с чего ты решил что радар будет в 'повторе смерти', если плагин установлен?
Нет бы поставить и затестить, я же этого тоже не знаю.



Этот вариант не будет работать (возвращает радар когда смотришь повтор), только через таймер возвращать...
Тобишь убили игрока, скрыли радар, запустили таймер, как только таймер закончился > возвращать радар.
Вопрос лишь в том какова продолжительность 'повтора смерти'.
Да убирает , плагин зачет , автору RESPECT .
 

snr93

Участник
Сообщения
84
Реакции
11
еще бы сделать так, что если есть админский флаг, то не скрывать радар)
 
Сверху Снизу