Анонс о подключении
- Ответов 65
- Создана
- Последний ответ
Топ авторов темы
-
Ryancoolround 30 постов
-
Shadow 28 постов
-
BLOODY BLADE 4 постов
Рекомендуемые сообщения
Последние посетители 0
- Ни одного зарегистрированного пользователя не просматривает данную страницу
Начнем с того, что таких плагинов для Left 4 Dead 2 в сети лежит 1000 и 1 штука. Но этот скрипт я писал сам, для обучения. И поэтому можно разобрать здесь его. Ну а вы меня отругаете, или все переделаете на свой лад. 🖖 Итак, сам код (Кстати, на версии Sourcemod 1.10.6460 он компилируется без проблем):
Давайте разберемся с проблемами, которые возникли у меня при создании. Но опять таки, благодаря @dr.lex их удалось решить.
PrintToChatAll ("\x04[L4D2Noob]: \x05 Игрок \x04%s \x05 вошел на сервер", name); PrintToChatAll ("\x04[L4D2Noob] \x05 SteamID: \x04[%s]",authid); PrintToChatAll ("\x04[L4D2Noob] \x05 Локация: \x04%s", Country);
Почему то не хотели отображаться цветные сообщения в игре. Оказалось, что виноват символ "»". Что очень странно, ведь в предыдущем моем творении, он исправно работал.
Но как только я убрал этот символ, цвета в чате стали отображаться. Кстати, благодаря этому я понял почему @dr.lex ругал меня за #include <colors> в той теме. Оказывается что это подключение отвечает за отображение дополнительных, подключаемых цветов, которые выводятся как {green} или {lightgreen}, и что если ты используешь стандартные цвета типа \x04, то это подключение не нужно.
Кстати, надо запомнить, что CPrintToChatAll = {green}, а PrintToChatAll = \x04.
Дальше я столкнулся со следующей бедой, это отображение спавна ботов в этом оповещении. То есть плагин считал каждого появившегося бота, как подключившегося игрока. Из за этого в чате игры возникал бесконечный спам. Что бы этого не было, и плагин говорил только о настоящих игроках, нам следующие строки:
new Connect = GetConVarInt(h_connectmsg); if(Connect == 1) { new String:name[99], String:authid[99], String:IP[99], String:Country[99]; GetClientName(client, name, sizeof(name)); GetClientAuthId(client, AuthId_Steam2, authid, sizeof(authid)); GetClientIP(client, IP, sizeof(IP), true); if(!GeoipCountry(IP, Country, sizeof Country)) { Country = "Неизвестный Регион"; } if (CheckCommandAccess(client, "sm_admin", ADMFLAG_GENERIC, true)) return; PrintToChatAll ("\x04[L4D2Noob]: \x05 Игрок \x04%s \x05 вошел на сервер", name); PrintToChatAll ("\x04[L4D2Noob] \x05 SteamID: \x04[%s]",authid); PrintToChatAll ("\x04[L4D2Noob] \x05 Локация: \x04%s", Country); } else { CloseHandle(h_connectmsg); }
Надо просто было поместить в следующий оператор (Не знаю правильно ли я это назвал, но проект не просто так называется l4d2NOOB😞
if (!IsFakeClient(client)) { Поместить сюда }
По итогу все. Как может показаться, что это мелочь, но на эту мелочь у меня ушло часа 2,5.
Это моя подпись.
Ссылка на комментарий
https://ip-gamers.net/topic/3535-anons-o-podkljuchenii/Поделиться на другие сайты