Туник
Участник
- Сообщения
- 1,281
- Реакции
- 263
Ошибки вроде пропали пока не видно, теперь нужно проверить самое главное)вход админов.Хотя я уже чёт не уверен, що на этой стадии можно получить флаги игрока
Ошибки вроде пропали пока не видно, теперь нужно проверить самое главное)вход админов.Хотя я уже чёт не уверен, що на этой стадии можно получить флаги игрока
Ну ошибка появится при входе какого-нибудь игрока, если появитсяОшибки вроде пропали пока не видно, теперь нужно проверить самое главное)вход админов.
не пускает ошибок нетНу ошибка появится при входе какого-нибудь игрока, если появится
можешь сделать задержку небольшую для проверки флага?Хотя я уже чёт не уверен, що на этой стадии можно получить флаги игрока
Чёт меня немножк понесло. Попробовал крч через OnClientPostAdminCheck сделать. Игрок успеет подключиться, но его кикнет.можешь сделать задержку небольшую для проверки флага?
#pragma semicolon 1
#include <sourcemod>
#include <geoip>
#pragma newdecls required
ConVar cf_mode;
ConVar cf_countries;
ConVar cf_reject_msg;
ConVar cf_connect_msg;
public Plugin myinfo =
{
name = "Country Filter",
author = "Knagg0, babka68",
description = "Этот плагин позволяет вам запретить игрокам из определенных стран подключаться к вашему серверу.",
version = "1.2",
url = "www.mfzb.de, tmb-css.ru"
};
public void OnPluginStart()
{
cf_mode = CreateConVar("cf_mode", "1", "1 = разрешить только cf_countries, 2 = Разрешить все, кроме cf_countries");
cf_countries = CreateConVar("cf_countries", "", "Список стран Пример: EN US DE NL RU");
cf_reject_msg = CreateConVar("cf_reject_msg", "Ваша страна %s не разрешена на этом сервере", "Сообщение, показываемое игроку, которое было отклонено");
cf_connect_msg = CreateConVar("cf_connect_msg", "%s разрешено подключение", "Сообщение, которое отображается всем игрокам, когда игрок подключается");
}
public bool OnClientConnect(int client, char[] rejectmsg, int maxlen)
{
if (!IsFakeClient(client))
{
char ip[15], code2[3], country[45];
GetClientIP(client, ip, sizeof(ip));
GeoipCode2(ip, code2);
GeoipCountry(ip, country, sizeof(country));
if (Reject(code2))
{
AdminId AId = GetUserAdmin(client);
int flags = GetAdminFlags(AId, Access_Effective);
if (flags & ADMFLAG_RESERVATION || flags & ADMFLAG_ROOT)
{
GetConVarString(cf_reject_msg, rejectmsg, maxlen);
Format(rejectmsg, maxlen, rejectmsg, country);
return false;
}
}
char name[32], msg[255];
GetClientName(client, name, 32);
GetConVarString(cf_connect_msg, msg, 255);
Format(msg, 255, msg, name, country);
PrintToChatAll(msg);
}
return true;
}
public bool Reject(const char[] code2)
{
if (StrEqual("er", code2))
{
return false;
}
char str[255];
char arr[100][3];
GetConVarString(cf_countries, str, 255);
int total = ExplodeString(str, " ", arr, 100, 3);
if (total == 0)
{
strcopy(arr[total++], 3, str);
}
if (GetConVarInt(cf_mode) == 2)
{
for (int i = 0; i < total; i++)
{
if (StrEqual(arr[i], code2))
{
return true;
}
}
}
else
{
bool reject = true;
for (int i = 0; i < total; i++)
{
if (StrEqual(arr[i], code2))
reject = false;
}
return reject;
}
return false;
}
L 02/11/2021 - 21:26:02: [SM] Warning(s) encountered in translation file "CountryFilter.phrases.txt"Чёт меня немножк понесло. Попробовал крч через OnClientPostAdminCheck сделать. Игрок успеет подключиться, но его кикнет.
Не знаю, сработает ли эта версия, но попробовать стоит. Сам не тестировал.
P.s.: если используешь не GeoIP2, а обычный GeoIP, лучше перекомпилируй плагин со старой инклудой.
UPD: А ещё, оказывается, есть это - Country Filter 2nd Edition - AlliedModders
L 02/11/2021 - 21:26:02: [SM] Warning(s) encountered in translation file "CountryFilter.phrases.txt"
L 02/11/2021 - 21:26:02: [SM] Invalid token ' ' in #format property on line 23.
L 02/11/2021 - 21:26:02: [SM] Invalid token ' ' in #format property on line 29.
L 02/11/2021 - 21:26:02: [SM] Invalid token ' ' in #format property on line 35.
L 02/11/2021 - 21:26:02: [SM] Invalid token ' ' in #format property on line 41.
L 02/11/2021 - 21:26:02: [SM] Invalid token ' ' in #format property on line 51.
L 02/11/2021 - 21:26:02: [SM] Invalid token ' ' in #format property on line 57.
L 02/11/2021 - 21:26:02: [SM] Invalid token ' ' in #format property on line 63.
L 02/11/2021 - 21:26:02: [SM] Invalid token ' ' in #format property on line 69.
Сообщения автоматически склеены:
Хотя всё залил
Д блин.. не доглядел снова. Давно б сам просто лишние пробелы убралL 02/11/2021 - 22:02:20: [SM] Warning(s) encountered in translation file "CountryFilter.phrases.txt"
L 02/11/2021 - 22:02:20: [SM] Invalid token ' ' in #format property on line 29.
LR и так записывает это время, разве нет?1. Плагин записи данных в бд
2. Плагин, который бы записывал данные в определенную таблицу (например тот же lr, например: lvl_base_time) данные о том, сколько игрок наиграл времени с момента запуска плагина
зы: без вывода куда-то, просто запись в бд
ЛР записывает наигранное время с момента добавлена плагина в активные.LR и так записывает это время, разве нет?
А еже ли она полная?Нужен плагин, который при нажатии на ПКМ будет мгновенно перезаряжать обойму (нужно для AWP сервера) CSS OB. SM 1.10
Видел такое, но только в продаже и для админов AdminReward. Как вариант, можно попробовать сделать подсчет времени для всех, а не только админов и убрать бонусы.ЛР записывает наигранное время с момента добавлена плагина в активные.
А мне нужно не затрагивая и не удаляя эти данные - записать в новую колонку или таблицу. Чтобы узнать, например: сколько опр. игрок наиграл часов за неделю
Ежели полная, соответственно, ничего не должно происходить)А еже ли она полная?
Столкнулся с такой же проблемой:C Выпавший дроп в лог пишет, а в телеграм не доходит. Хотя если добавить отправку тестового сообщения в телеграм, как в вашем примере, то это сообщение доходит. Есть варианты как это побороть?Проверьте еще, отсылает ли хоть что-то в телегу
C-подобный:#include <ripext> #include <telegram> public void OnPluginStart() { Telegram_SendMessage("Проверка запуска", "markdown"); }