А, Вы правы, возможно будут косяки, в следующем обновлении поправлю.wellasgood, и по поводу куска:
Что если, игрок имеет оба флага?Код:if(get_user_flags(id) & ADMINCHECK){ CheckProtectADMIN[id] = 500 // Установка кол-ва прыжков для Админов } if(get_user_flags(id) & VIPCHECK){ CheckProtectVIP[id] = 250 // Установка кол-ва прыжков для Вип } if(get_user_flags(id) & USERCHECK){ CheckProtectUSER[id] = 100 // Установка кол-ва прыжков для Юзеров }
if(get_user_flags(id) & ADMINCHECK){
CheckProtectADMIN[id] = 100 // Установка кол-ва прыжков для Админов
}
if(get_user_flags(id) & VIPCHECK){
CheckProtectVIP[id] = 50 // Установка кол-ва прыжков для Вип
}
if(get_user_flags(id) & USERCHECK){
CheckProtectUSER[id] = 20 // Установка кол-ва прыжков для Юзеров
}
if(get_user_flags(id) & USERCHECK)
{
CheckProtect[id] = 20 // Установка кол-ва прыжков для Юзеров
}
else
if(get_user_flags(id) & VIPCHECK)
{
CheckProtect[id] = 50 // Установка кол-ва прыжков для Вип
}
else
if(get_user_flags(id) & ADMINCHECK
{
CheckProtect[id] = 100 // Установка кол-ва прыжков для Админов
}
if(get_user_flags(id) & ADMINCHECK)
{
if(CheckProtectADMIN[id] == 0){
client_print_color(id, print_team_default, "%L", id, "MJ_STOP_ADMIN")
set_task(30.0,"func_info")
return PLUGIN_HANDLED;
}
if(OLDzq != NEWzq){
client_print_color(id, print_team_default, "%L", id, "MJ_ALREADY_ACTIVE")
return PLUGIN_HANDLED;
}else if(OLDzq == NEWzq){
client_print_color(id, print_team_default, "%L", id, "MJ_ACTIVE_1", zName)
client_print_color(id, print_team_default, "%L", id, "MJ_ACTIVE_2", CheckProtectADMIN[id])
activate[id] = 1
qq++;
NEWzq = qq
set_task(30.0,"func_info")
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
if(get_user_flags(id) & VIPCHECK)
{
if(CheckProtectVIP[id] == 0){
client_print_color(id, print_team_default, "%L", id, "MJ_STOP_VIP_1")
client_print_color(id, print_team_default, "%L", id, "MJ_STOP_VIP_2")
set_task(30.0,"func_info")
return PLUGIN_HANDLED;
}
if(OLDzq != NEWzq){
client_print_color(id, print_team_default, "%L", id, "MJ_ALREADY_ACTIVE")
return PLUGIN_HANDLED;
}else if(OLDzq == NEWzq){
client_print_color(id, print_team_default, "%L", id, "MJ_ACTIVE_1", zName)
client_print_color(id, print_team_default, "%L", id, "MJ_ACTIVE_2", CheckProtectVIP[id])
activate[id] = 1
qq++;
NEWzq = qq
set_task(30.0,"func_info")
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
if(get_user_flags(id) & USERCHECK)
{
if(CheckProtectUSER[id] == 0){
client_print_color(id, print_team_default, "%L", id, "MJ_STOP_USER_1")
client_print_color(id, print_team_default, "%L", id, "MJ_STOP_USER_2")
set_task(30.0,"func_info")
return PLUGIN_HANDLED;
}
if(OLDzq != NEWzq){
client_print_color(id, print_team_default, "%L", id, "MJ_ALREADY_ACTIVE")
return PLUGIN_HANDLED;
}else if(OLDzq == NEWzq){
client_print_color(id, print_team_default, "%L", id, "MJ_ACTIVE_1", zName)
client_print_color(id, print_team_default, "%L", id, "MJ_ACTIVE_2", CheckProtectUSER[id])
activate[id] = 1
qq++;
NEWzq = qq
set_task(30.0,"func_info")
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
if(CheckProtect[id] == 0)
{
client_print_color(id, print_team_default, "%L", id, "MJ_STOP_VIP_1")
client_print_color(id, print_team_default, "%L", id, "MJ_STOP_VIP_2")
set_task(30.0,"func_info")
return PLUGIN_HANDLED;
}
if(OLDzq != NEWzq)
{
client_print_color(id, print_team_default, "%L", id, "MJ_ALREADY_ACTIVE")
return PLUGIN_HANDLED;
}else if(OLDzq == NEWzq){
client_print_color(id, print_team_default, "%L", id, "MJ_ACTIVE_1", zName)
client_print_color(id, print_team_default, "%L", id, "MJ_ACTIVE_2", CheckProtect[id])
activate[id] = 1
qq++;
NEWzq = qq
set_task(30.0,"func_info")
return PLUGIN_HANDLED;
}
public client_disconnect(id)
{
jumpnum[id] = 0
dojump[id] = false
activate[id] = 0
if(get_user_flags(id) & ADMINCHECK)
{
CheckProtectADMIN[id] = 100
}
if(get_user_flags(id) & VIPCHECK)
{
CheckProtectVIP[id] = 50
}
if(get_user_flags(id) & USERCHECK)
{
CheckProtectUSER[id] = 20
}
}
public client_disconnect(id)
{
jumpnum[id] = 0
dojump[id] = false
activate[id] = 0
CheckProtect[id] = 0
}
Смотрите, здесь просто заводятся счетчики! Тут нету выполнительных действий. Тут неважно. Т.е если флаг админа завдится счетчик на 100, если еще и вип о заведется и на 50 например, т.е 2 счетчика для игрока будут заведены, но дальше при проверки в других функциях будет фигурировать лишь один массив с данными и выход их функции будет осуществлен. Короче когда я писал - зложил тот смысл который был. Возможно он ошибочен)) Но на тот момент показался наиболее почему-то логичным.===>Код:if(get_user_flags(id) & ADMINCHECK){ CheckProtectADMIN[id] = 100 // Установка кол-ва прыжков для Админов } if(get_user_flags(id) & VIPCHECK){ CheckProtectVIP[id] = 50 // Установка кол-ва прыжков для Вип } if(get_user_flags(id) & USERCHECK){ CheckProtectUSER[id] = 20 // Установка кол-ва прыжков для Юзеров }
Код:if(get_user_flags(id) & USERCHECK) { CheckProtect[id] = 20 // Установка кол-ва прыжков для Юзеров } else if(get_user_flags(id) & VIPCHECK) { CheckProtect[id] = 50 // Установка кол-ва прыжков для Вип } else if(get_user_flags(id) & ADMINCHECK { CheckProtect[id] = 100 // Установка кол-ва прыжков для Админов }
if(AdminCheck = ложь)
иначе
if(VipCheck = ложь)
иначе
if(UserCheck = истина)
продолжаем
ну эт, маленькое обновлениеЧто-то у вас версия 1.6, а код как был говном, так и остался.
А что, в двухзначной цифр не хватило?)0))Переход на 3-х значную версию