Multi-Jump (mj)

Multi-Jump (mj) 1.6.1

Нет прав для скачивания
Сообщения
2,720
Реакции
2,997
Помог
60 раз(а)
Сообщения
453
Реакции
79
Помог
4 раз(а)
wopox1337, а что там не понятного? Было дело я поинтересовался про такую оптимизацию, на что получил соответствующий ответ. Я не утверждаю, что меня верно направили, просто говорю то, чему меня "обучили". Учту на будущее, благодарю :ok:
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Еще раз повторюсь, код был написан давно, с той логикой, которую вкладывал на тот момент написания..

Возможно в следующих версиях будет уже по другому.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
WILL_BE,

Вы писали:

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      // Установка кол-ва прыжков для Юзеров
    }
Что если, игрок имеет оба флага?
А, Вы правы, возможно будут косяки, в следующем обновлении поправлю.

Необходимо сделать выход, если флаг игрока будет равняться флага в коде, а не идти дальше искать флаги. Ну и динамичности (гибкости) добавить.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Tranquillity, по ошибке закинул, там другой актуальный. А пересоздавать сразу версию не стал..
11 Апр 2019
Tranquillity, пересоздал обновление с учетом Ваших замечаний!
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Tranquillity, спасибо, учту в следующих (обновлениях) работах..
 
Сообщения
658
Реакции
230
Помог
11 раз(а)
Код:
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
    }
}
Собственно зачем выдавать mj для отключившийся?
===>

Код:
public client_disconnect(id)
{
    jumpnum[id] = 0
    dojump[id] = false
    activate[id] = 0
    CheckProtect[id] = 0
}
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Limbooc, с половиной не согласен, вы не поняли моей сути в некоторых моментах, остальное переделаю в глобальной обнове, спасибо за критику.
11 Апр 2019
Код:
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      //  Установка кол-ва прыжков для Админов
}
Смотрите, здесь просто заводятся счетчики! Тут нету выполнительных действий. Тут неважно. Т.е если флаг админа завдится счетчик на 100, если еще и вип о заведется и на 50 например, т.е 2 счетчика для игрока будут заведены, но дальше при проверки в других функциях будет фигурировать лишь один массив с данными и выход их функции будет осуществлен. Короче когда я писал - зложил тот смысл который был. Возможно он ошибочен)) Но на тот момент показался наиболее почему-то логичным.

11 Апр 2019
Вот в этой части кода:

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;
}

, после проверки на админа и выполнения, будет произведен выход (return PLUGIN_HANDLED;), по этому оно будет функционировать.
 
Последнее редактирование:

d3m37r4

111111
Сообщения
1,428
Реакции
1,169
Помог
10 раз(а)
Флаги мб один раз лучше получить, а не для каждого условия заного?)
 
Сообщения
658
Реакции
230
Помог
11 раз(а)
wellasgood, так ведь если игрок не админ и игрок не вип то код проверки выполняется в любом случая
другими словами простой игрок выполняет две лишних проверок:
Код:
if(AdminCheck = ложь)
иначе
if(VipCheck = ложь)
иначе
if(UserCheck = истина)
продолжаем
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Limbooc, ну, с точки зрения оптимизации, Вы правы.
12 Апр 2019
d3m37r4, если честно, писал давненько сложные моменты эти, и залезать в свои старые дебри, какой я там смысл закладывал, сложно вспоминать. Тут неоднозначно.. Можно сказать что правильно, а что нет.
 
Сообщения
1,668
Реакции
1,495
Помог
24 раз(а)
Что-то у вас версия 1.6, а код как был говном, так и остался.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
fl0wer, просто так правильней из сообразительности.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу