Palonez
бб братки
- Сообщения
- 3,035
- Реакции
- 1,839
Можно через HookUserMessage блокировать отображение, а через массив буллов запрещать выполнять повторно командуПодскажи еще пожалуйста,можно нет сделать так,чтоб команду можно было использовать только раз за раунд?
То-есть чтоб даже потом в чате не писало<что человек прописывает команду)
То-есть прописал один раз команду и все,потом только в следующим раунде можно.
Ну это не только к этому плагину относится,а ваше к любому где идут какие то прописи.
Просто бывает пишут без конца,такое как медик,вип или админ.
Вот хотелось узнать,можно нет как то блокировать команды один раз за раунд.
Чтоб не было лишнего спама от игроков в чате.
Погуглил,не че такого не нашел чтоб самому потестить)
Сообщения автоматически склеены:
что-то типо тогоПодскажи еще пожалуйста,можно нет сделать так,чтоб команду можно было использовать только раз за раунд?
То-есть чтоб даже потом в чате не писало<что человек прописывает команду)
То-есть прописал один раз команду и все,потом только в следующим раунде можно.
Ну это не только к этому плагину относится,а ваше к любому где идут какие то прописи.
Просто бывает пишут без конца,такое как медик,вип или админ.
Вот хотелось узнать,можно нет как то блокировать команды один раз за раунд.
Чтоб не было лишнего спама от игроков в чате.
Погуглил,не че такого не нашел чтоб самому потестить)
C-подобный:
bool bActive[MAXPLAYERS+1];
public void OnClientPostAdminCheck(int client)
{
bActive[client] = true;
}
public void OnClientDisconnect(int client)
{
bActive[client] = true;
}
public void OnPluginStart()
{
HookEvent("round_start", EVRS);
RegConsoleCmd("sm_armur", Armor);
HookUserMessage(GetUserMessageId("TextMsg"), HOOK, true);
}
public void EVRS(Event hEvent, const char[] sEvent, bool bdb)
{
for(int i = 0; i <= MaxClients; i++)
if(IsClientInGame(i) && !IsFakeClient(i))
if(!bActive[i])
bActive[i] = true;
}
public Action HOOK(UserMsg msg_id, Protobuf msg, const int[] players, int playersNum, bool reliable, bool init)
{
char mes[256];
msg.ReadString("params", mes, sizeof(mes));
if(!StrEqual("sm_armur", mes) && !StrEqual("!armur", mes))
return Plugin_Continue;
for(int i = 0; i < playersNum; i++)
if(IsClientInGame(players[i]) && !IsFakeClient(players[i]))
if(!bActive[players[i]])
return Plugin_Handled;
return Plugin_Continue;
}
public Action Armor(int client, int args)
{
SetEntProp(client, Prop_Send, "m_ArmorValue", 100);
return Plugin_Handled;
}
Последнее редактирование: