| 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); У него такая дефолт длительность.
 
 Можно попробывать убрать надпись если уже не смотрит на игрока:
 
 |  |  |  |  | 
| 
| 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 |  |  |  |  |