Постоянное 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 |
|
Сообщений: 563
Репутация: 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 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
не понял :D
|
|
| |
NANO_VIRUS
|
Дата: Суббота, 20.04.2013, 16:02:12 | Сообщение # 5 |
|
Сообщений: 41
Репутация: 0 [ +/- ]
|
|
Я хочу сделать чтобы худ сообщение могло мгновенно обновится на другое, а для этого мне надо чтобы оно либо обновлялось как минимум каждые пол секунды, либо висело на экране пока я не заставлю его обновится. Но дело в том если я его обновлю, когда старое сообщение ещё не исчезло по истечению своего времени, то она как бы ляжет на него и цвет уже будет жирным и не красивым. Мне надо сделать чтобы старое сообщение как нить удалялось.
|
|
| |
TEIN
|
Дата: Суббота, 20.04.2013, 16:08:05 | Сообщение # 6 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
Создавай один таймер при вводе команды, если повторно вводишь команду, то проверяй, если таймер != INVALID_HANDLE, то убивай его и создавай новый таймер с новым сообщением
|
|
| |
NANO_VIRUS
|
Дата: Суббота, 20.04.2013, 16:22:29 | Сообщение # 7 |
|
Сообщений: 41
Репутация: 0 [ +/- ]
|
|
А есть возможность очистить все созданные худ сообщение на экране у клиента до того как их время пройдет, как например после спавна игрока?
|
|
| |
TEIN
|
Дата: Суббота, 20.04.2013, 16:23:40 | Сообщение # 8 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
Тоже самое, сделай таймер для каждого клиента, при спавне игрока, проверь на != INVALID_HANDLE, удали таймер
|
|
| |
NANO_VIRUS
|
Дата: Суббота, 20.04.2013, 16:38:03 | Сообщение # 9 |
|
Сообщений: 41
Репутация: 0 [ +/- ]
|
|
Я наверное не так объяснил)))
Смотри я создаю текст на экране игрока который будет там висеть допустим 999 секунд, я обновляю текст и снова посылаю игроку, сообщение обновилось, но время старого текста еще не прошло и на старый текст наложился новый, и получилось так что цвет сообщения стал жирней и если так проделать еще несколько раз то текст станет очень жирным и некрасивым.
Так вот я хочу узнать есть ли возможность полностью удалить старое сообщение?
|
|
| |
panorama
|
Дата: Понедельник, 21.10.2013, 16:04:35 | Сообщение # 10 |
|
Сообщений: 203
Репутация: 2 [ +/- ]
|
|
Скажите для игры Counter Strike Source Эта функция работает ? А то сколько сайтов я перерыл нету примера для css ... И еще скажите я правильно понял : Эта функция может разместить сообщение в любом месте экрана ?
|
|
| |
Meow_1337
|
Дата: Четверг, 24.10.2013, 22:41:34 | Сообщение # 11 |
|
Сообщений: 207
Репутация: 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 |
|
Сообщений: 203
Репутация: 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); } }
Нет , дело в том что я заметил в выше написанной функции установку расположения надписи на экране .... Вот и заинтересовался ей
|
|
| |