[Source 2009][Оплата] Исправление бага со сменой ника
| |
Jiffs
|
Дата: Воскресенье, 27.01.2013, 11:51:39 | Сообщение # 1 |
|
Сообщений: 4
Репутация: 0 [ +/- ]
|
|
Добрый день.
В наличии имеется плагин который запрещает определенные ники и если заходит игрок с таким ником, то плагин, либо меняет ему ник, либо кикает. Проблема в том, что в играх на движке Source 2009 (в моем случае это DoD:S) возникает проблема, когда выбран вариант смены ника.
Возьмем ситуацию, когда в файле для запрещенных ников прописано "JM", а мой ник "Jiffs Maverick". Когда я захожу на сервер - все нормально. Но если я сменю ник на "JM", то в чате начинается такой балаган:
Код Player Jiffs Maverick changed name to JM Sorry, bad name! Player Player 82355 changed name to JM Sorry, bad name! Player Player 95298 changed name to JM Sorry, bad name! Player Player 44594 changed name to JM
около сотни таких строк
Sorry, bad name! Player Player 5351 changed name to JM Sorry, bad name! Player JM changed name to Player 23422 В логах sourcemod это выглядит так:
Код L 26/01/2013 - 22:36:09: [namefilter.smx] Player found with badword in his name: JM L 26/01/2013 - 22:36:09: [namefilter.smx] Player found with badword in his name: JM L 26/01/2013 - 22:36:09: [namefilter.smx] Player found with badword in his name: JM L 26/01/2013 - 22:36:09: [namefilter.smx] Player found with badword in his name: JM
около сотни таких строк
L 26/01/2013 - 22:36:29: [namefilter.smx] Player found with badword in his name: JM L 26/01/2013 - 22:36:29: [namefilter.smx] Player found with badword in his name: JM Такая же ситуация происходит, если меняется карта. Отмечу, при заходе на сервер игрока с запрещенным ником - проблемы нет, ник нормально меняется.
Кто поможет исправить данную проблему? А то сам пытался скорректировать, но ни чего не вышло, к сожалению. Естественно я заплачу (Webmoney), если решение будет найдено.
P.S.: в L4D1/L4D2 такой проблемы нет. P.P.S.: другие плагины не предлагать, надо исправить именно этот.
Гости не могут скачивать файлы
|
Сообщение отредактировал Jiffs - Воскресенье, 27.01.2013, 11:58:03 |
|
| |
Scarface_slv
|
Дата: Воскресенье, 27.01.2013, 13:16:37 | Сообщение # 2 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Тут public OnClientSettingsChanged(iClient) найди CreateTimer(0.1, tCheckClient, iClient); и измени на CreateTimer(10.0, tCheckClient, iClient); и компилируй, может поможет от повторов, не знаю даже из за чего это может быть
|
|
| |
Jiffs
|
Дата: Воскресенье, 27.01.2013, 14:09:13 | Сообщение # 3 |
|
Сообщений: 4
Репутация: 0 [ +/- ]
|
|
Если увеличивать время таймера, то спама нет, но
При 5 секундах - две лишних смены ника При 10 секундах - 1 лишняя смена ника При 15 секундах - 1 лишняя смена ника При 20 секундах - лишних смен нет, все идет как положено, но он то показывает, что игрок сменил имя, то нет (где в 90% случаев не показывает, закономерности не выявил). Ну и побочный эффект - слишком долгое ожидание фразы "Sorry, bad name!".
|
|
| |
Scarface_slv
|
Дата: Воскресенье, 27.01.2013, 14:37:23 | Сообщение # 4 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Код public OnClientSettingsChanged(iClient) { if(!IsNameClean(iClient)) { new iMode = GetConVarInt(cvarMode); if (iMode == MODE_KICK) { decl String:sKickReason[128]; GetConVarString(cvarWarning, sKickReason, sizeof(sKickReason)); KickClient(iClient, sKickReason); } else if (iMode == MODE_RENAME) { if (!IsNameClean(iClient)) { decl String:sWarning[512]; GetConVarString(cvarWarning, sWarning, sizeof(sWarning)); PrintToChat(iClient, "\x04%s", sWarning); new userid = GetClientUserId(iClient); CreateTimer(10.0, tCheckClient, userid); // Weird timing spam issues without timer } } } }
public Action:tCheckClient(Handle:hTimer, any:userid) { new iClient = GetClientOfUserId(userid); if (iClient > 0) RenameClient(iClient); return Plugin_Handled; } замени блоки так, тогда не будет долгого ожидания Sorry, bad name а насчет таймера даже если сделать 0.1 смена ника произойдет все равно через 10-15 секунд, но будут повторы...
Сообщение отредактировал Scarface_slv - Воскресенье, 27.01.2013, 14:38:44 |
|
| |
Sunday
|
Дата: Воскресенье, 27.01.2013, 22:31:23 | Сообщение # 5 |
|
Сообщений: 186
Репутация: 24 [ +/- ]
|
|
Цитата (Scarface_slv) замени блоки так, тогда не будет долгого ожидания Sorry, bad name а насчет таймера даже если сделать 0.1 смена ника произойдет все равно через 10-15 секунд, но будут повторы...
Сегодня тоже переделывал по разному и пришел к выводу что сам движек реагирует на изменение через 18 секунд (засек время) и от сюда такие косяки, хотя не уверен что я прав. Тестировалось в игре Half-Life 2 DM.
|
|
| |
Meow_1337
|
Дата: Понедельник, 28.01.2013, 16:51:16 | Сообщение # 6 |
|
Сообщений: 207
Репутация: 11 [ +/- ]
|
|
Цитата L 01/28/2013 - 17:46:37: [SM]Displaying call stack trace for plugin "namefilter.smx": L 01/28/2013 - 17:46:37: [SM][0] Line 168, /home/groups/alliedmodders/forums/files/1/6/6/6/8/8/104360.attach::RenameClient() L 01/28/2013 - 17:46:37: [SM][1] Line 86, /home/groups/alliedmodders/forums/files/1/6/6/6/8/8/104360.attach::OnClientConnect()
Вот у меня тоже стоит такой же плагин. Ошибки в логах.
|
|
| |
Jiffs
|
Дата: Понедельник, 28.01.2013, 17:11:05 | Сообщение # 7 |
|
Сообщений: 4
Репутация: 0 [ +/- ]
|
|
Провел некоторые тесты. Действительно, в движке Source 2009 встроен, скажем так, ограничитель на смену ника. Длится он около 20 секунд и в течении этого времени не позволяет сменить ник. Проверял как на пиратке, так и на лицензии. Именно поэтому происходит спам, так как sourcemod меняет ник, а движок возвращает его обратно. Так длится пока не истекут эти 20 секунд. Обновил плагин с учетом этого факта. Теперь плагин работает, в принципе, нормально. По сути, теперь мою просьбу можно переформулировать следующим образом: можно ли избавится от этих 20 секунд блокировки движком смены ника?
Meow_1337, у меня плагин ошибок не выдавал в логах. Попробуйте обновленную версию.
Гости не могут скачивать файлы
|
Сообщение отредактировал Jiffs - Понедельник, 28.01.2013, 17:13:13 |
|
| |
Scarface_slv
|
Дата: Понедельник, 28.01.2013, 17:29:29 | Сообщение # 8 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Цитата (Jiffs) можно ли избавится от этих 20 секунд блокировки движком смены ника? Такое вряд ли возможно... Это все у клиента происходит
Добавлено (28.01.2013, 17:29:29) --------------------------------------------- Meow_1337, у меня тоже выдавало такие ошибки из за повторов ну и из за SetEntPropString(iClient, Prop_Data, "m_szNetname", sNewName);
Сообщение отредактировал Scarface_slv - Понедельник, 28.01.2013, 17:32:25 |
|
| |
Jiffs
|
Дата: Понедельник, 28.01.2013, 18:10:12 | Сообщение # 9 |
|
Сообщений: 4
Репутация: 0 [ +/- ]
|
|
Нашлось решение:
Код "sv_namechange_cooldown_seconds" = "20.0" - When a client name change is received, wait N seconds allowing another name change Собственно, все проблемы теперь решены. Всем спасибо. Тему можно закрывать.
Сообщение отредактировал Jiffs - Понедельник, 28.01.2013, 18:12:04 |
|
| |
Scarface_slv
|
Дата: Понедельник, 28.01.2013, 19:01:57 | Сообщение # 10 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
О_о у меня на v34 такой команды нет)
|
|
| |
Meow_1337
|
Дата: Понедельник, 28.01.2013, 22:09:14 | Сообщение # 11 |
|
Сообщений: 207
Репутация: 11 [ +/- ]
|
|
Jiffs, где эту функцию нашел?
|
|
| |
_wS_
|
Дата: Понедельник, 28.01.2013, 22:23:09 | Сообщение # 12 |
|
Это стандартный серверный cvar (Новость). На v34 нет его.
|
|
| |
Meow_1337
|
Дата: Понедельник, 28.01.2013, 22:45:48 | Сообщение # 13 |
|
Сообщений: 207
Репутация: 11 [ +/- ]
|
|
Странно, у myarena в конфиге нет такого. хм буду знать.
|
|
| |
_wS_
|
Дата: Понедельник, 28.01.2013, 22:59:16 | Сообщение # 14 |
|
cvarlist пропиши в консоль сервера/клиента - там много чего.
|
|
| |
Meow_1337
|
Дата: Вторник, 29.01.2013, 01:59:26 | Сообщение # 15 |
|
Сообщений: 207
Репутация: 11 [ +/- ]
|
|
Ок спс.
У твоего сайта _wS_ некая проблема. Когда нажимаешь на ник, чтобы ответить некому лицу, то ник отображается не корректно.
Пример: w_, , rface, ,
--------------------- Ucoz'овские обновления + новые баги.
|
|
| |
|