Пользователи, просматривающие тему (Пользователей: 0, Гостей: 0)

  1. maFFyoZZyk

    Регистрация:
    14.01.16
    Сообщения:
    1.415
    Симпатии:
    620
    Пол:
    Мужской
    Доброго времени суток ув.форумчане, много было по этому постов, и тут попросил Le$hiy сделать такой урок.
    Ну что, давайте попробуем

    Для начала, нужно иметь хоть какое-нить видение кода, а именно
    Понимать за что примерно отвечает код!
    Если вы не имеете понятия, увы данный урок не для вас.

    Нам нужна команда is_user_admin ( id ) - она в свою очередь отвечает за проверку игрока, админ он или нет, id - id проверяемого игрока

    То есть к примеру

    PHP:
        if(is_user_admin(id)){ //Если админ то выполняем код ниже
        
    client_print(idprint_chat"Вы админ")
            
        }else{ 
    // Если это простой игрок, то выполняем этот код:
          
    client_print(idprint_chat"Вы простой юзверь")
            
        }
    т.е. к примеру можно делать данную проверку во многих плагинах, например если ты админ, то вот тебе парашют, если же нет, то выводим в чат купи себе вип

    если же вы хотите определенному админу это сделать, то тут вам понадобится команда get_user_flag

    То есть к примеру

    PHP:
        if( get_user_flag(id) & ADMIN_LEVEL_H){ //Если админ то выполняем код ниже
        
    client_print(idprint_chat"у вас есть вип и вы можете взять оружие")
            
        }else{ 
    // Если это простой игрок, то выполняем этот код:

          
    client_print(idprint_chat"Вы простой юзверь, а команда только для випов")
            
        }
    ну вот в принципе и все, ни чего сложного, просто нужно понять, куда эту проверку запилить в плагин и все.
    На этом все, как всегда с вами был maFFyoZZyk, специально для neugomon.ru

    P.S. Флаги для Админов тут вы узнаете какие есть флаги
     
    NinTenDo, Le$hiy, windranger1337 и ещё 1-му нравится это.
  2. maFFyoZZyk

    Регистрация:
    14.01.16
    Сообщения:
    1.415
    Симпатии:
    620
    Пол:
    Мужской
    Забыл упомянуть, есть проверки если пользователь к примеру не админ, выглядит она примерно вот так

    PHP:
       if(!( get_user_flag(id) & ADMIN_LEVEL_H)){
     
    client_print(idprint_chat"Вы простой юзверь, а команда только для випов")
     }else{ 
     
    client_print(idprint_chat"у вас есть вип и вы можете взять оружие")
     }
    Но Ваня посоветовал делать немного по другому, данный код он сказал, легче на много и так, давайте посмотрим
    PHP:
    new flags get_user_flags(id);
    if(
    flags && ~flags ADMIN_USER){ //Если админ то выполняем код ниже
     
    client_print(idprint_chat"у вас есть вип и вы можете взять оружие")
     }else{ 
    // Если это простой игрок, то выполняем этот код: 
    client_print(idprint_chat"Вы простой юзверь, а команда только для випов")
     }
    В данной проверке показано, если игрок не пользователь, значит он админ, иначе он просто юзверь

    Как всегда спасибо neugomon за подсказку
     
    HannibaL, neygomon и windranger1337 нравится это.
  3. pUzzlik

    Регистрация:
    06.05.15
    Сообщения:
    955
    Симпатии:
    321
    Пол:
    Мужской
    Вопрос неугомону, && ~flags как это понять?
    Либо урок напутан либо что то не то.
    Янен пень что
    PHP:
    if(!( get_user_flag(id) & ADMIN_LEVEL_H)){

    client_print(idprint_chat"Вы простой юзверь, а команда только для випов")
    }else{
    client_print(idprint_chat"у вас есть вип и вы можете взять оружие")
    }
    лучше переписать так в целях оптимизации
    PHP:
    new flags get_user_flags(id);
    if(!(
    flags ADMIN_USER)){ //Если админ то выполняем код ниже
    client_print(idprint_chat"у вас есть вип и вы можете взять оружие")
    }else{ 
    // Если это простой игрок, то выполняем этот код:
    client_print(idprint_chat"Вы простой юзверь, а команда только для випов")
    }
    Но не могу понять чем ! отличаеться от этого && ~
    т.к. в первом примере админ простой юзер тоесть проверка на то что игрок не админ, а во втором отличаеться && ~ "//Если админ то выполняем код ниже"
    И к посту, очень понравилось объяснение :)
    Лучше чтобы дополнить статтю объяснить азы в самом начале что такое if, else, else if и операторы !, &, && и т.д. иначе у новычков возникнут вопросы в начале. Вангую т.к. сам аматор и когда начинал толком сам не разбирался как правильно читать код и как составлять алгоритм, пока в универе не начали изучать С++ и там я понял чё по чём :)
     
    Адель нравится это.
  4. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.977
    Симпатии:
    943
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    pUzzlik,
    && - и
    || - или
    ! - не
    С if и else, думаю, и так понятно все
     
  5. maFFyoZZyk

    Регистрация:
    14.01.16
    Сообщения:
    1.415
    Симпатии:
    620
    Пол:
    Мужской
    if - если
    else - или/иначе
    else if - или если

    это в 7 классе на информатике учат
     
  6. pUzzlik

    Регистрация:
    06.05.15
    Сообщения:
    955
    Симпатии:
    321
    Пол:
    Мужской
    Ну так не мне писать надо, я про статтю говорю что она не полная.
    На информатике меня такому не учили Paint, Exel, Word и другие офисные проги, глубже языки уже в универе изучать начал :)
     
  7. maFFyoZZyk

    Регистрация:
    14.01.16
    Сообщения:
    1.415
    Симпатии:
    620
    Пол:
    Мужской
    а как же паскаль, этому в школе учат
     
  8. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.977
    Симпатии:
    943
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    maFFyoZZyk, паскаль - язык будущего
     
  9. pUzzlik

    Регистрация:
    06.05.15
    Сообщения:
    955
    Симпатии:
    321
    Пол:
    Мужской
    И вообще то я просил разяснить строку if(flags && ~flags & ADMIN_USER) а то совета послушал, а понять что за чем? :)
    От знаешь что значит оператор ~ ? а мне интересно стало, для себя теперь загуглил и понял, и почему так лучше неугомон сказал сделать.
    Паскаль как базу закладают на первых курсах в универе, либо в старшых классах но увы у меня не было этого :( но никак не в 7-м классе.
     
    Izmayl7 нравится это.
  10. ReHldsPerec

    Регистрация:
    13.12.16
    Сообщения:
    58
    Симпатии:
    3
    Пол:
    Мужской
    как добавить проверку игрока на вывод сообщения один раз (при первом заходе на сервер)?
    public plugin_init()
    {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    pcvar_night_start_hour = register_cvar("night_start_hour", "00");
    pcvar_night_end_hour = register_cvar("night_end_hour", "12");
    }

    public client_putinserver(id)
    {
    time(hour, minute, second)
    if (hour >= get_pcvar_num(pcvar_night_start_hour) &&
    hour < get_pcvar_num(pcvar_night_end_hour) && (!(get_user_flags(id) & ADMIN_ALL)))
    {
    new flags = read_flags("ts") //тут ставим свой флаг по усмотрению
    new name[32]
    get_user_name(id, name, 31)
    set_user_flags(id,flags)
    }
    }
    new round

    public plugin_init()
    {
    register_event("TextMsg", "Hook_Restart", "a", "2&#Game_C", "2&#Game_w")
    register_event("HLTV", "Hook_RoundStart", "a", "1=0", "2=0")
    }

    public Hook_RoundStart()
    {
    round++

    client_print(0, print_chat, "Текущий раунд: %d", round)
    }
    public Hook_Restart()
    {
    round = 0

    client_print(0, print_chat, "Рестарт раунда")
    }

    {
    if( get_user_flag(id) & ADMIN_LEVEL_H){ //Если админ то выполняем код ниже
    client_print(id,print_center, "У вас VIP GOLD привилегия!Меню VIP /vipmenu")
    }