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

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

  • Страница 1 из 1
  • 1
Show nickname on HUD таймер
Skrepka Дата: Пятница, 22.05.2015, 17:33:09 | Сообщение # 1
Сообщений: 3
Репутация: 0 [ +/- ]
Здравствуйте,
я нашёл плагин который при наводке на игрока показывает его ник(Show nickname on HUD), но когда отводишь от него прицел, то его ник показывается примерно 10 секунд
Если я заменяю CreateTimer(0.5, Timer, _, TIMER_REPEAT); на CreateTimer(0.3, Timer, _, TIMER_REPEAT);, то ничего не происходит, как это исправить?
Код

#include <sourcemod>
#include <sdktools>
#include <cstrike>

#define PLUGIN_VERSION   "1.1"

public Plugin:myinfo =
{
  name = "Show nickname on HUD",
  author = "Graffiti",
  description = "Show nickname on HUD for CSGO",
  version = PLUGIN_VERSION,
  url = "http://www.sourcemod.net/"
};

public OnPluginStart()
{
  CreateConVar("sm_show_nickname_on_hud_version", PLUGIN_VERSION, "Show nickname on HUD", FCVAR_PLUGIN | FCVAR_SPONLY | FCVAR_DONTRECORD | FCVAR_NOTIFY);
  CreateTimer(0.5, Timer, _, TIMER_REPEAT);
}

stock TraceClientViewEntity(client)
{
  new Float:m_vecOrigin[3];
  new Float:m_angRotation[3];

  GetClientEyePosition(client, m_vecOrigin);
  GetClientEyeAngles(client, m_angRotation);

  new Handle:tr = TR_TraceRayFilterEx(m_vecOrigin, m_angRotation, MASK_VISIBLE, RayType_Infinite, TRDontHitSelf, client);
  new pEntity = -1;

  if (TR_DidHit(tr))
  {
   pEntity = TR_GetEntityIndex(tr);
   CloseHandle(tr);
   return pEntity;
  }

  if(tr != INVALID_HANDLE)
  {
   CloseHandle(tr);
  }
   
  return -1;
}

public bool:TRDontHitSelf(entity, mask, any:data)
{
  return (1 <= entity <= MaxClients && entity != data);  
}

public Action:Timer(Handle:timer)
{
  for(new i = 1; i <= MaxClients; i++)
  {
   if (IsClientInGame(i))
   {
    new target = TraceClientViewEntity(i);
    if(target > 0 && target <= MaxClients && IsClientInGame(target) && IsPlayerAlive(target) && i != target)
    {
     PrintHintText(i, "\"%N\"", target);
    }
   }
  }
  return Plugin_Continue;  
}
 
_R1KO_ Дата: Пятница, 22.05.2015, 18:12:34 | Сообщение # 2
Сообщений: 200
Репутация: 30 [ +/- ]
Всё дело в PrintHintText(i, "\"%N\"", target);
У него такая дефолт длительность.

Можно попробывать убрать надпись если уже не смотрит на игрока:
Код
PrintHintText(i, "");
 
Skrepka Дата: Пятница, 22.05.2015, 18:25:52 | Сообщение # 3
Сообщений: 3
Репутация: 0 [ +/- ]
[code]
if (IsClientInGame(i))
{
new target = TraceClientViewEntity(i);
if(target > 0 && target <= MaxClients && IsClientInGame(target) && IsPlayerAlive(target) && i != target)
{
PrintHintText(i, "\"%N\"", target);
PrintHintText(i, "");
}
}

Если сделать так, то будет поле без текста, даже при наводке. Как правильно сделать? Или может можно изменить длительность?
 
_R1KO_ Дата: Пятница, 22.05.2015, 19:41:05 | Сообщение # 4
Сообщений: 200
Репутация: 30 [ +/- ]
Код
new target = TraceClientViewEntity(i);
if(target > 0 && target <= MaxClients && IsClientInGame(target) && IsPlayerAlive(target) && i != target)
{
PrintHintText(i, "\"%N\"", target);
}
else PrintHintText(i, "");


Сообщение отредактировал _R1KO_ - Пятница, 22.05.2015, 19:41:19
 
«SeReGa»☆ Дата: Пятница, 22.05.2015, 22:28:29 | Сообщение # 5
Сообщений: 395
Репутация: 37 [ +/- ]
_R1KO_, а почему 2 символа &&?

и ещё вопрос, если написаний мною плагин не выдаёт ERROR logs значит ли что всё хорошо?


Сообщение отредактировал «SeReGa»☆ - Пятница, 22.05.2015, 22:39:44
 
_R1KO_ Дата: Пятница, 22.05.2015, 22:59:19 | Сообщение # 6
Сообщений: 200
Репутация: 30 [ +/- ]
Цитата «SeReGa»☆ ()
а почему 2 символа &&?

Логическое И

Цитата «SeReGa»☆ ()
и ещё вопрос, если написаний мною плагин не выдаёт ERROR logs значит ли что всё хорошо?

Если нет утечек и ошибок в логике то норм.
 
«SeReGa»☆ Дата: Пятница, 22.05.2015, 23:19:06 | Сообщение # 7
Сообщений: 395
Репутация: 37 [ +/- ]
Как определить есть ли утечки?
 
SourceSamil Дата: Суббота, 23.05.2015, 03:41:14 | Сообщение # 8
Сообщений: 237
Репутация: [ +/- ]
Sourcemod выдаст ошибку, выгрузит плагин и выключит сервер
 
Skrepka Дата: Суббота, 23.05.2015, 11:42:48 | Сообщение # 9
Сообщений: 3
Репутация: 0 [ +/- ]
_R1KO_, после того как я увожу прицел от игрока, то появляется пустое окно, можно убрать окно если ты не целишься в человека?
 
_R1KO_ Дата: Суббота, 23.05.2015, 11:50:02 | Сообщение # 10
Сообщений: 200
Репутация: 30 [ +/- ]
Цитата Skrepka ()
_R1KO_, после того как я увожу прицел от игрока, то появляется пустое окно, можно убрать окно если ты не целишься в человека?

Там проще смирится с тем что он долго игрока показывает.

Цитата «SeReGa»☆ ()
Как определить есть ли утечки?

Сервер будет жрать много памяти и со временем падать т.к. ему её уже не будет хвататат

Для проверки можно поюзать sm_dump_handles
 
SourceSamil Дата: Суббота, 23.05.2015, 20:30:17 | Сообщение # 11
Сообщений: 237
Репутация: [ +/- ]
/del


Сообщение отредактировал SourceSamil - Суббота, 23.05.2015, 20:31:42
 
  • Страница 1 из 1
  • 1
Поиск: