Не работает, если выключил радар, то с концами.Off:
On:PHP:1 << 12
PHP:1 >> 12
Ну все, че делать будем?Не работает, если выключил радар, то с концами.
ConVar g_hCvar;
public void OnPluginStart()
{
if((g_hCvar = FindConVar("sv_disable_radar")) == null)
SetFailState("No found cvar: sv_disable_radar");
}
g_hCvar.SetInt(!g_hCvar.IntValue); // Включить/выключить радар для всех
g_hCvar.ReplicateToClient(%0, "1"); // Выключить радар для игрока
g_hCvar.ReplicateToClient(%0, "0"); // Включить радар для игрока
public Action sm_hp(int client, int args)
{
if(client && IsPlayerAlive(client) && GetClientTeam(client) == 2)
{
for (int x = 1; x <= MaxClients; x++)
{
if (IsClientInGame(x) && GetClientTeam(x) == 2 && IsPlayerAlive(x))
{
PrintToChat(x, "\x04%N: \x05Health\x01 - %i. \x05Health Buffer \x01- %.1f", x, IsGameHealth(x), GetEntPropFloat(x, Prop_Send, "m_healthBuffer"));
}
}
}
// return Plugin_Handled;
}
Всем привет. Почему я только себя проверяю и всё? Цикл меня только проверяет и видимо останавливается не проверяя остальных игроков.
PHP:public Action sm_hp(int client, int args) { if(client && IsPlayerAlive(client) && GetClientTeam(client) == 2) { for (int x = 1; x <= MaxClients; x++) { if (IsClientInGame(x) && GetClientTeam(x) == 2 && IsPlayerAlive(x)) { PrintToChat(x, "\x04%N: \x05Health\x01 - %i. \x05Health Buffer \x01- %.1f", x, IsGameHealth(x), GetEntPropFloat(x, Prop_Send, "m_healthBuffer")); } } } // return Plugin_Handled; }
PrintToChat(x /* <= Вероятно поэтому */, "\x04%N: \x05Health\x01 - %i. \x05Health Buffer \x01- %.1f", x, IsGameHealth(x), GetEntPropFloat(x, Prop_Send, "m_healthBuffer"));
PrintToChatAllВсем привет. Почему я только себя проверяю и всё? Цикл меня только проверяет и видимо останавливается не проверяя остальных игроков.
но таймер не работает корректно. если человек выходит, то при подключении ему может высветится 6 сек, 10, 12, любое рандомное, но не то что в конфиге указано.@kleuser, ошибок не нашёл
вроде не заметно, а можно оптимизировать ?Интересно, при редкой смене карт, большом онлайне и частом входе/выходе игроков плагин сильно память отжирает?
Можно (чистить массив от записей по истечении времени таймером), вот только хз нужно ли?а можно оптимизировать ?
конечно. если не сложно, скинь с оптимизацией :ab:вот только хз нужно ли?
@kleuser, ну как-то так
L 06/25/2019 - 00:00:41: [SM] Exception reported: Invalid data pack handle 0 (error 4)
L 06/25/2019 - 00:00:41: [SM] Blaming: antireconnect_edition.smx
L 06/25/2019 - 00:00:41: [SM] Call stack trace:
L 06/25/2019 - 00:00:41: [SM] [0] DataPack.WriteString
L 06/25/2019 - 00:00:41: [SM] [1] Line 117, D:\Dev\sm19\scripting\antireconnect_edition.sp::Event_PlayerDisconnect
L 06/25/2019 - 00:01:11: [SM] Exception reported: Invalid data pack handle 0 (error 4)
L 06/25/2019 - 00:01:11: [SM] Blaming: antireconnect_edition.smx
L 06/25/2019 - 00:01:11: [SM] Call stack trace:
L 06/25/2019 - 00:01:11: [SM] [0] DataPack.Reset
L 06/25/2019 - 00:01:11: [SM] [1] Line 122, D:\Dev\sm19\scripting\antireconnect_edition.sp::Timer_Clear
L 06/25/2019 - 00:01:11: [SM] Exception reported: Invalid data pack handle 0 (error 4)
L 06/25/2019 - 00:01:11: [SM] Blaming: antireconnect_edition.smx
L 06/25/2019 - 00:01:11: [SM] Call stack trace:
L 06/25/2019 - 00:01:11: [SM] [0] DataPack.ReadString
L 06/25/2019 - 00:01:11: [SM] [1] Line 124, D:\Dev\sm19\scripting\antireconnect_edition.sp::Timer_Clear
L 06/25/2019 - 00:01:11: [SM] Plugin "antireconnect_edition.smx" encountered error 23: Native detected error
L 06/25/2019 - 00:01:11: [SM] Invalid data handle 0 (error 4) passed during timer end with TIMER_DATA_HNDL_CLOSE
L 06/25/2019 - 00:01:11: [SM] Unable to call function "Timer_Clear" due to above error(s).
@Drumanid в скриптах не силен,но можно ли сделать автоотключение игроку радара когда он умирает?Очень мешает,почему то после смерти на радаре видно всех.Ну все, че делать будем?
AlliedModders - View Single Post - [CSS/CS:GO] Disable Radar
Почему то мне думается, что именно в CS:GO это не работает :fuck:
Включаем мозг и вспоминаем что есть у нас такой квар как 'sv_disable_radar'.
Скрыть/показать радар можно еще таким образом:
PHP:ConVar g_hCvar; public void OnPluginStart() { if((g_hCvar = FindConVar("sv_disable_radar")) == null) SetFailState("No found cvar: sv_disable_radar"); } g_hCvar.SetInt(!g_hCvar.IntValue); // Включить/выключить радар для всех g_hCvar.ReplicateToClient(%0, "1"); // Выключить радар для игрока g_hCvar.ReplicateToClient(%0, "0"); // Включить радар для игрока
Дальше сам разберешься...
@Drumanid в скриптах не силен,но можно ли сделать автоотключение игроку радара когда он умирает?Очень мешает,почему то после смерти на радаре видно всех.
p.s Если кто то может помочь с этим буду благодарен.
#include <sourcemod>
public Plugin myinfo =
{
name = "Hide radar the dead player",
author = "Drumanid",
version = "1.0.0",
url = "Discord: Drumanid#9108"
};
ConVar g_hCvar;
public void OnPluginStart()
{
if((g_hCvar = FindConVar("sv_disable_radar")) == null)
SetFailState("No found cvar: sv_disable_radar");
#define HOOKEVENT(%0) HookEvent(%0, view_as<EventHook>(Events))
HOOKEVENT("player_spawn");
HOOKEVENT("player_death");
}
void Events(Event hEvent, const char[] sName)
{
int iClient = GetClientOfUserId(hEvent.GetInt("userid"));
if(!IsFakeClient(iClient))
g_hCvar.ReplicateToClient(iClient, sName[7] == 'd' ? "1":"0");
}
@Drumanid, Очень к стати. Но можно ли сделать что бы ещё спекторам тоже отключало радар, а не только в момент смерти?
#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>
public Plugin myinfo =
{
name = "Hide radar the dead player",
author = "Drumanid",
version = "1.0.1",
url = "Discord: Drumanid#9108"
};
ConVar g_hCvar;
public void OnPluginStart()
{
if(!(g_hCvar = FindConVar("sv_disable_radar")))
SetFailState("No found cvar: sv_disable_radar");
#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 "0"
#define OFF "1"
#define HIDERADAR(%0) \
{ int iClient = GetClientOfUserId(hEvent.GetInt("userid")); \
if(!IsFakeClient(iClient)) g_hCvar.ReplicateToClient(iClient, %0); }
void Event_PlayerSpawn(Event hEvent)
HIDERADAR(ON)
void Event_PlayerDeath(Event hEvent)
HIDERADAR(OFF)
void Event_PlayerTeam(Event hEvent)
{
if(hEvent.GetInt("team") < 2)
HIDERADAR(OFF)
}