Поиск Block change name.

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
6
Реакции
3
Уважаемые, ищу плагин блокировки частой смены ника.
Проблема в том, что заходят тип и начинает часто менять ник, получается флуд смены ника.
Полный блок не подойдет, не хотелось бы, а такой чтобы грубо говоря в течение раунда 1 раз можно менять ник.
Спасибо.
 
Сообщения
288
Реакции
226
Помог
6 раз(а)
Вот: [Pawn] Block name change - Pastebin.com
Код:
#include <amxmodx>
#include <reapi>

new gmsgSayText, gmsgTextMsg

public plugin_init()
{
RegisterHookChain(RG_CBasePlayer_SetClientUserInfoName, "CBasePlayer_SetUserInfoName")

gmsgSayText = get_user_msgid("SayText")
gmsgTextMsg = get_user_msgid("TextMsg")
}

public CBasePlayer_SetUserInfoName(const pPlayer, infobuffer[], szNewName[])
{
new szOldName[32]
// get_user_info(pPlayer, "name", szOldName, charsmax(szOldName))
get_entvar(pPlayer, var_netname, szOldName, charsmax(szOldName))

SetHookChainArg(3, ATYPE_STRING, szOldName)

console_print(pPlayer, "szOldName: %s | szNewName: %s", szOldName, szNewName)

set_msg_block(get_entvar(pPlayer, var_deadflag) != DEAD_NO ? gmsgTextMsg : gmsgSayText, BLOCK_ONCE)
}

Смена ника будет воспроизводиться только по окончанию раунда
 
Последнее редактирование:
Сообщения
119
Реакции
53
Помог
4 раз(а)
Кстатий , не обязательно полностью блокировать смену ника на сервере. Реально же сделать ограничение по времени.
К примеру : "простите но следующая смена Имени(Ника) доступна через 30 секунд.
 
Сообщения
462
Реакции
430
Предупреждения
8
Помог
7 раз(а)
sleedney,
Код:
#define NEXT_CHANGE_TIME            15

new Float:g_fNextNameChange[MAX_CLIENTS + 1]

public plugin_init()
{
register_plugin("NameChangeTime", "0.0.1", "Vaqtincha")
RegisterHookChain(RG_CBasePlayer_SetClientUserInfoName, "CBasePlayer_SetUserInfoName", .post = false)
}

public client_putinserver(pPlayer){
g_fNextNameChange[pPlayer] = 0.0
}

public CBasePlayer_SetUserInfoName(const pPlayer, infobuffer[], szNewName[])
{
new Float:fCurtime = get_gametime()

if(g_fNextNameChange[pPlayer] > fCurtime)
{
console_print(pPlayer, "Cледующая смена ника доступна через %0.f секунд.", g_fNextNameChange[pPlayer] - fCurtime)

SetHookChainReturn(ATYPE_INTEGER, false)
return HC_SUPERCEDE
}

g_fNextNameChange[pPlayer] = fCurtime + NEXT_CHANGE_TIME.0

return HC_CONTINUE
}
 
Сообщения
119
Реакции
53
Помог
4 раз(а)
Я немного упоролся первое предложение лишнее.Простите.
 
Сообщения
24
Реакции
1
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Vaqtincha, Можешь сделать пожалуйста что бы писало в чате и Цветным
 

Вложения

Сообщения
1,335
Реакции
528
Помог
91 раз(а)
SergeyPanov, воспользоваться поиском на форуме, либо создать соответствующую тему.
 
Сообщения
1,419
Реакции
2,508
Помог
59 раз(а)
SergeyPanov, не нужно некропостить. На данном форуме более десятка решений ошибки этого рода, одного запроса в гугле хватит чтобы найти десятки одинаковых ответов на решение этой проблемы.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу