x330122
Участник
- Сообщения
- 357
- Реакции
- 152
stock bool CheckAdminChar(int client, const char[] cflag)
{
if(GetUserAdmin(client)==INVALID_ADMIN_ID)
return false
new AdminFlag:flag
if(FindFlagByChar(cflag[0], flag))
return GetAdminFlag(GetUserAdmin(client), flag)
return false
}
Эм, и что мне с ним делать ?Спасибо WhitePHP:stock bool CheckAdminChar(int client, const char[] cflag) { if(GetUserAdmin(client)==INVALID_ADMIN_ID) return false new AdminFlag:flag if(FindFlagByChar(cflag[0], flag)) return GetAdminFlag(GetUserAdmin(client), flag) return false }
Вставить в конец плагина и в твоем эвенте пихнуть такую проверку:Эм, и что мне с ним делать ?
CheckAdminChar
stock bool CheckAdminFlags(int client, const char[] cflag)
{
return view_as<bool>(GetUserFlagBits(client) & ReadFlagString(cflag));
}
Флаги нужно получать при входе игрока и хранить результат в переменной!получением админ флага в событии "player_death"
Извиняюсь за ап старой темы, но не работает данный кусок кода, пишет tag mismatchPHP:stock bool CheckAdminFlags(int client, const char[] cflag) { return GetUserFlagBits(client) & ReadFlagString(cflag); }
Поправил. Либо просто можно было исправить bool на int.пишет tag mismatch
Битовое значение само выражается в int@Grey83, зачем? для функции задал тип bool и посмотрел на возврат в разных вариантах, в обоих было несоответствие тегов.
Короче я понял. туплю.
int & int = int
public OnClientPostAdminCheck(client)
{
if (enabled && !IsFakeClient(client))
{
adminid[client] = GetUserAdmin(client);
if (adminallow && adminid[client] != INVALID_ADMIN_ID)
{
decl String:steam_id[64];
decl String:player_ip[64];
GetClientIP(client, player_ip, sizeof(player_ip));
GetClientAuthString(client, steam_id, sizeof(steam_id));
if (announce)
PrintToChatAll("%t", "AdminJoined", 4, 3, client, 4, 3, player_ip, 4, 3, steam_id);
}
else if (Steam_IsConnected())
LookupPlayerGroups(client);
}
}
public OnClientPostAdminCheck(client)
{
if (enabled && !IsFakeClient(client))
{
adminid[client] = GetUserAdmin(client);
if (adminallow && (GetUserFlagBits(client) & ADMFLAG_GENERIC) == ADMFLAG_GENERIC)
{
decl String:steam_id[64];
decl String:player_ip[64];
GetClientIP(client, player_ip, sizeof(player_ip));
GetClientAuthString(client, steam_id, sizeof(steam_id));
if (announce)
PrintToChatAll("%t", "AdminJoined", 4, 3, client, 4, 3, player_ip, 4, 3, steam_id);
}
else if (Steam_IsConnected())
LookupPlayerGroups(client);
}
}
if(adminallow && adminid[client] != INVALID_ADMIN_ID && (GetAdminFlag(adminid[client], ADMFLAG_GENERIC) || GetAdminFlag(adminid[client], ADMFLAG_GENERIC, Access_Real))
PrintToChatAll("%t", "AdminJoined", 4, 3, client, 4, 3, player_ip, 4, 3, steam_id);
А разве не достаточно того, что GetUserFlagBits(client) & ADMFLAG_GENERIC не равно 0?if (adminallow && (GetUserFlagBits(client) & ADMFLAG_GENERIC) == ADMFLAG_GENERIC)
Не знаю, это задумка автора плагина, у меня это отключено.PrintToChatAll("%t", "AdminJoined", 4, 3, client, 4, 3, player_ip, 4, 3, steam_id);
Интересно, а нафига всем светить IP и SteamID админа?