Контакты Поиск

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

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Постоянное HUD Сообщение с обновлением.
Постоянное HUD Сообщение с обновлением.
NANO_VIRUS Дата: Суббота, 20.04.2013, 15:02:56 | Сообщение # 1
Сообщений: 41
Репутация: 0 [ +/- ]
Как заставить сообщение не переливаться со старым?

Код
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

new Handle:HUD;
new TEG[MAXPLAYERS+1];

public OnPluginStart()
{
  RegConsoleCmd("ovtest", StartMsg);  
  HUD = CreateHudSynchronizer();
  SetHudTextParams(0.45, 0.5, 9999.0, 254, 174, 10, 255);
  CloseHandle(HUD);
}

public Action:StartMsg(client, args)  
{
  HUD = CreateHudSynchronizer();
  TEG[client] += 1;
  ShowHudText(client, 3, "Число:%d", TEG[client]);
  CloseHandle(HUD);
}
 
TEIN Дата: Суббота, 20.04.2013, 15:07:22 | Сообщение # 2
Сообщений: 568
Репутация: 78 [ +/- ]
http://forums.alliedmods.net/showthread.php?t=179914
 
NANO_VIRUS Дата: Суббота, 20.04.2013, 15:51:41 | Сообщение # 3
Сообщений: 41
Репутация: 0 [ +/- ]
А как сделать чтобы не переливался с перерывом меньше 3 секунд?
 
TEIN Дата: Суббота, 20.04.2013, 15:52:08 | Сообщение # 4
Сообщений: 568
Репутация: 78 [ +/- ]
не понял :D
 
NANO_VIRUS Дата: Суббота, 20.04.2013, 16:02:12 | Сообщение # 5
Сообщений: 41
Репутация: 0 [ +/- ]
Я хочу сделать чтобы худ сообщение могло мгновенно обновится на другое, а для этого мне надо чтобы оно либо обновлялось как минимум каждые пол секунды, либо висело на экране пока я не заставлю его обновится. Но дело в том если я его обновлю, когда старое сообщение ещё не исчезло по истечению своего времени, то она как бы ляжет на него и цвет уже будет жирным и не красивым. Мне надо сделать чтобы старое сообщение как нить удалялось. plach
 
TEIN Дата: Суббота, 20.04.2013, 16:08:05 | Сообщение # 6
Сообщений: 568
Репутация: 78 [ +/- ]
Создавай один таймер при вводе команды, если повторно вводишь команду, то проверяй, если таймер != INVALID_HANDLE, то убивай его и создавай новый таймер с новым сообщением
 
NANO_VIRUS Дата: Суббота, 20.04.2013, 16:22:29 | Сообщение # 7
Сообщений: 41
Репутация: 0 [ +/- ]
А есть возможность очистить все созданные худ сообщение на экране у клиента до того как их время пройдет, как например после спавна игрока?
 
TEIN Дата: Суббота, 20.04.2013, 16:23:40 | Сообщение # 8
Сообщений: 568
Репутация: 78 [ +/- ]
Тоже самое, сделай таймер для каждого клиента, при спавне игрока, проверь на != INVALID_HANDLE, удали таймер
 
NANO_VIRUS Дата: Суббота, 20.04.2013, 16:38:03 | Сообщение # 9
Сообщений: 41
Репутация: 0 [ +/- ]
Я наверное не так объяснил)))

Смотри я создаю текст на экране игрока который будет там висеть допустим 999 секунд, я обновляю текст и снова посылаю игроку, сообщение обновилось, но время старого текста еще не прошло и на старый текст наложился новый, и получилось так что цвет сообщения стал жирней и если так проделать еще несколько раз то текст станет очень жирным и некрасивым.

Так вот я хочу узнать есть ли возможность полностью удалить старое сообщение?
 
panorama Дата: Понедельник, 21.10.2013, 16:04:35 | Сообщение # 10
Сообщений: 206
Репутация: 2 [ +/- ]
Скажите для игры Counter Strike Source Эта функция работает ?
А то сколько сайтов я перерыл нету примера для css ...
И еще скажите я правильно понял : Эта функция может разместить сообщение в любом месте экрана ?
 
Meow_1337 Дата: Четверг, 24.10.2013, 22:41:34 | Сообщение # 11
Сообщений: 209
Репутация: 11 [ +/- ]
Не это ли тебе нужно?

Код
#include <sourcemod>
#include <smlib>

new Handle:g_hudTimer[MAXPLAYERS+1];
new String:sSteamID[32];

public OnClientPutInServer(client)
{
  g_hudTimer[client] = CreateTimer(1.0, HUD, client, TIMER_REPEAT);
}

public Action:HUD(Handle:timer, any:client)
{
  if(IsClientConnected(client))
  GetClientAuthString(client, sSteamID, sizeof(sSteamID));
   
  if(IsClientInGame(client))
  {
   new String:sText[254];
   sText[0] = '\0';
    
   Format(sText, sizeof(sText), "%sName : %N \n", sText, client);

   Format(sText, sizeof(sText), "%sSteamID : %s  \n", sText, sSteamID);
    
   Format(sText, sizeof(sText), "%sWorld-Source.ru \n", sText);
    
   Format(sText, sizeof(sText), "%s----------- \n", sText);
    
   Client_PrintKeyHintText(client, "-----------\n%s", sText);
  }
}
 
panorama Дата: Пятница, 25.10.2013, 07:24:45 | Сообщение # 12
Сообщений: 206
Репутация: 2 [ +/- ]
Цитата Meow_1337 ()
Не это ли тебе нужно?

Код
#include <sourcemod>
#include <smlib>

new Handle:g_hudTimer[MAXPLAYERS+1];
new String:sSteamID[32];

public OnClientPutInServer(client)
{
  g_hudTimer[client] = CreateTimer(1.0, HUD, client, TIMER_REPEAT);
}

public Action:HUD(Handle:timer, any:client)
{
  if(IsClientConnected(client))
  GetClientAuthString(client, sSteamID, sizeof(sSteamID));
   
  if(IsClientInGame(client))
  {
   new String:sText[254];
   sText[0] = '\0';
    
   Format(sText, sizeof(sText), "%sName : %N \n", sText, client);

   Format(sText, sizeof(sText), "%sSteamID : %s  \n", sText, sSteamID);
    
   Format(sText, sizeof(sText), "%sWorld-Source.ru \n", sText);
    
   Format(sText, sizeof(sText), "%s----------- \n", sText);
    
   Client_PrintKeyHintText(client, "-----------\n%s", sText);
  }
}


Нет , дело в том что я заметил в выше написанной функции установку расположения надписи на экране ....
Вот и заинтересовался ей
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Постоянное HUD Сообщение с обновлением.
  • Страница 1 из 1
  • 1
Поиск: