1. pr0.JeR Пользователь

    Регистрация:
    10.06.15
    Сообщения:
    347
    Симпатии:
    29
    Пол:
    Мужской
    Вообщем есть плагин, хочу добавить чтоб он был в меню amxmodmenu. Смотрел принип реализации Plugin Cvars что то та и не допер как сделать. Если кто может подскажите.
    PHP:
    #include <amxmodx>
    #include <hamsandwich>

    #define PLUGIN    "Screen Shot Menu"
    #define AUTHOR    "trofian"
    #define VERSION    "1.2"

    #define is_entity_player(%1) 1<=%1<=g_maxplayers
    #define ACCESSFLAG ADMIN_KICK

    #define LOG_PATH "!screen_shot_admins_log.txt" // ыы пути не поддерживаются

    const Float:c_hudtime 4.5
    const c_killstoscreen 5

    new g_KillsInOneLife[33]
    new 
    g_szMapname[128]
    new 
    g_maxplayers

    public plugin_init()
    {
        
    register_plugin(PLUGINVERSIONAUTHOR)
       
        
    register_clcmd("say /smenu""dysplay_menu")
        
    register_clcmd("say_team /smenu""dysplay_menu")
        
    register_clcmd("smenu""dysplay_menu")
       
        
    register_event("ResetHUD""ResetHUD""be")
       
        
    register_logevent("RoundEnded",2,"1=Round_End")
       
        
    RegisterHam(Ham_Killed"player""kills_counter"1)
       
        
    get_mapname(g_szMapnamecharsmax(g_szMapname))
        
    g_maxplayers get_maxplayers()
    }

    public 
    dysplay_menu(id)
    {
        if(!(
    get_user_flags(id) & ACCESSFLAG))
            return 
    PLUGIN_CONTINUE
       
        
    new Menu menu_create("\yScreen Shots Menu \r:3""menu_handler")
       
        new 
    Player
        
    new sPlayerName[128]
        new 
    sPlayerId[11]
       
        new 
    playersListAlive[32]
        new 
    playersnumAlive
        get_players
    (playersListAliveplayersnumAlive"ach")
       
        for(new 
    ii<playersnumAlivei++)
        {
            
    Player playersListAlive[i]
            
    get_user_name(PlayersPlayerNamecharsmax(sPlayerName))
            
    num_to_str(PlayersPlayerIdcharsmax(sPlayerId))
            
    menu_additem(MenusPlayerNamesPlayerId0)
        }
       
        new 
    playersListDead[32]
        new 
    playersnumDead
        get_players
    (playersListDeadplayersnumDead"bch")
       
        for(new 
    ii<playersnumDeadi++)
        {
            
    Player playersListDead[i]
            
    get_user_name(PlayersPlayerNamecharsmax(sPlayerName))
            
    format(sPlayerNamecharsmax(sPlayerName), "%s \r[Dead]"sPlayerName)
            
    num_to_str(PlayersPlayerIdcharsmax(sPlayerId))
            
    menu_additem(MenusPlayerNamesPlayerId0)
        }
       
        
    menu_display(idMenu0)
       
        return 
    PLUGIN_HANDLED
    }

    public 
    menu_handler(idmenuitem)
    {
        if (
    item == MENU_EXIT)
        {
            
    menu_destroy(menu)
            return 
    PLUGIN_HANDLED
        
    }
       
        new 
    s_Data[6], s_Name[64], i_Accessi_Callback
        menu_item_getinfo
    (menuitemi_Accesss_Datacharsmax(s_Data), s_Namecharsmax(s_Name), i_Callback)
       
        new 
    Player str_to_num(s_Data)
       
        if(!
    is_user_connected(Player))
        {
            
    print_col_chat(id"!g[%s] !yPlayer is not connected. We can't make a screenshot."PLUGIN)
            
    dysplay_menu(id)
            return 
    PLUGIN_HANDLED
        
    }
       
        
    dysplay_menu(id)
        
    dysplay_hud(Playerid)
        
    set_task(0.5"take_screenshot"Player)
       
        return 
    PLUGIN_CONTINUE
    }

    public 
    ResetHUD(id)
    {
        if(!
    is_user_alive(id)) // omfg, да пох
            
    return PLUGIN_CONTINUE
       
        g_KillsInOneLife
    [id] = 0

        
    return PLUGIN_CONTINUE
    }

    public 
    RoundEnded()
    {
        for(new 
    1i<=g_maxplayersi++)
        {
            if(
    is_user_connected(i) && !is_user_bot(i) && g_KillsInOneLife[i] >= c_killstoscreen)
            {
                
    dysplay_hud(i, -1)
                
    set_task(0.5"take_screenshot"i)
            }
        }
    }

    public 
    kills_counter(victimattackercorpse)
        if(
    is_entity_player(attacker))
            
    g_KillsInOneLife[attacker]++


    dysplay_hud(idadmin)
    {   
        new 
    szIP[32]
        new 
    szSteamId[32]
        new 
    szPlayername[128]
       
        
    get_user_ip(idszIPcharsmax(g_szMapname), 1)
        
    get_user_authid(idszSteamIdcharsmax(g_szMapname))
        
    get_user_name(idszPlayernamecharsmax(szPlayername))
       
        new 
    szSteam[32]
        if(
    is_user_steam(id)) format(szSteamcharsmax(szSteam), "true steam")
        else 
    format(szSteamcharsmax(szSteam), "Not true steam")
       
        new 
    szCurrTime[21]
        
    get_time("%c"szCurrTimecharsmax(szCurrTime))
       
        if(
    admin == -1)
        {
            
    log_to_file(LOG_PATH"Automatic has created a screenshot (%d or more kills in round) at %s; INFO: [Mapname] %s; [Steam Id] %s (%s); [IP] %s; [Playername] %s",
                
    c_killstoscreenszCurrTimeg_szMapnameszSteamIdszSteamszIPszPlayername)
        }
        else
        {
            new 
    szAdminAuth[32]
            new 
    szAdminname[128]
           
            
    get_user_authid(idszAdminAuthcharsmax(szAdminAuth))
            
    get_user_name(idszAdminnamecharsmax(szAdminname))
           
            
    log_to_file(LOG_PATH"Admin [Steam: %s; Name: %s] has created a screenshot at %s; INFO: [Mapname] %s; [Steam Id] %s (%s); [IP] %s; [Playername] %s",
                
    szAdminAuthszAdminnameszCurrTimeg_szMapnameszSteamIdszSteamszIPszPlayername)
        }
       
        
    set_hudmessage(0140240, -0.700.2000.0c_hudtime0.00.0, -1// любой канал
        
    show_hudmessage(id"[Mapname] %s^n[Steam Id] %s (%s)^n[IP] %s^n[Playername] %s^nThe screenshot has been made at %s",g_szMapnameszSteamIdszSteamszIPszPlayernameszCurrTime)
    }   

    public 
    take_screenshot(idclient_cmd(id"snapshot")

    stock print_col_chat(const id, const input[], any:...)
    {
        new 
    count 1players[32]
        static 
    msg[191]
        
    vformat(msg190input3)
        
    replace_all(msg190"!g""^4"// Green Color
        
    replace_all(msg190"!y""^1"// Default Color
        
    replace_all(msg190"!t""^3"// Team Color
       
        
    if (id)
            
    players[0] = id
        
    else
            
    get_players(playerscount"ch")
       
        {
            for ( new 
    0counti++ )
            {
                if (
    is_user_connected(players[i]))
                {
                    
    message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                    
    write_byte(players[i])
                    
    write_string(msg)
                    
    message_end()
                }
            }
        }
    }

    stock bool:is_user_steam(id)
    {
        static 
    dp_pointer
        
    if(dp_pointer || (dp_pointer get_cvar_pointer("dp_r_id_provider")))
        {
            
    server_cmd("dp_clientinfo %d"id)
            
    server_exec()
            return (
    get_pcvar_num(dp_pointer) == 2) ? true false
        
    }
        return 
    false
    }
     
  2. HannibaL Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    1.058
    Симпатии:
    224
    Пол:
    Мужской
    в menufront просто добавь еще одну строчку с smenu
     
  3. pr0.JeR Пользователь

    Регистрация:
    10.06.15
    Сообщения:
    347
    Симпатии:
    29
    Пол:
    Мужской
    HannibaL, пробовал, он становиться 9, а на цифре 9 у меня следующаяя страница в результате *ОПА =)
    [​IMG]
     
  4. ThePhoenix Пользователь

    Регистрация:
    08.03.15
    Сообщения:
    1.485
    Симпатии:
    144
    Пол:
    Мужской
    Telegram:
    ThePhoenix2017
    Skype:
    the.phoenix666
    pr0.JeR, у меня добавлена 9ая кнопка и всё адекватно :)
    щас в код загляну.
     
  5. dimka198 Пользователь

    Регистрация:
    21.04.15
    Сообщения:
    258
    Симпатии:
    30
    Пол:
    Мужской
    pr0.JeR, скинь строку которую добавляешь.
     
  6. pr0.JeR Пользователь

    Регистрация:
    10.06.15
    Сообщения:
    347
    Симпатии:
    29
    Пол:
    Мужской
    PHP:
    AddDefaultMenus()
    {
        new 
    flags;

        
    AddMenuLang("KICK_PLAYER""amx_kickmenu"get_clcmd_flags("amx_kickmenu"flags) ? flags ADMIN_KICK "Players Menu")
        
    AddMenuLang("BAN_PLAYER""amx_banmenu"get_clcmd_flags("amx_banmenu"flags) ? flags ADMIN_BAN"Players Menu")
        
    AddMenuLang("SPECH_STUFF""amx_nicksmenu"get_clcmd_flags("amx_nicksmenu"flags) ? flags ADMIN_KICK"Players Menu")
        
    AddMenuLang("TEAM_PLAYER""amx_teammenu"get_clcmd_flags("amx_teammenu"flags) ? flags ADMIN_BAN"Players Menu")
        
    AddMenuLang("SLAP_SLAY""amx_slapmenu"get_clcmd_flags("amx_slapmenu"flags) ? flags ADMIN_BAN"Players Menu")
        
    AddMenuLang("VOTE_MAPS""amx_votemapmenu"get_clcmd_flags("amx_votemapmenu"flags) ? flags ADMIN_VOTE"Maps Menu")
        
    AddMenuLang("CHANGEL""amx_mapmenu"get_clcmd_flags("amx_mapmenu"flags) ? flags ADMIN_MAP"Maps Menu")
        
    AddMenuLang("SERVER_COM""amx_cmdmenu"get_clcmd_flags("amx_cmdmenu"flags) ? flags ADMIN_MENU"Commands Menu")
        
    AddMenuLang("SCREEN_MENU""smenu"get_clcmd_flags("smenu"flags) ? flags ADMIN_KICK"Players Menu")

    }
    моя последняя строка
     
  7. HannibaL Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    1.058
    Симпатии:
    224
    Пол:
    Мужской
    pr0.JeR, убирай кнопку "Дальше", либо на вторую станицу сделай
     
    pr0.JeR нравится это.
  8. HoBu4oK VIP user

    Регистрация:
    28.02.15
    Сообщения:
    382
    Симпатии:
    57
    Светофор в меню - это сейчас мода такая? Хотя, у школоты это всегда в моде)
     
  9. pr0.JeR Пользователь

    Регистрация:
    10.06.15
    Сообщения:
    347
    Симпатии:
    29
    Пол:
    Мужской
    если не сложно можно по подробнее :oops:
     

    Вложения:

    • menufront.sma
      Размер файла:
      12,4 КБ
      Просмотров:
      10
  10. Gliden Пользователь

    Регистрация:
    29.06.15
    Сообщения:
    93
    Симпатии:
    34
    Пол:
    Мужской
    pr0.JeR, Тестируй ! :)
     

    Вложения:

    • menufront.sma
      Размер файла:
      12,4 КБ
      Просмотров:
      5
  11. pr0.JeR Пользователь

    Регистрация:
    10.06.15
    Сообщения:
    347
    Симпатии:
    29
    Пол:
    Мужской
    Gliden, Там ни чего не добавилось, я сравнил с постом выше.
     
  12. Sly Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    53
    Симпатии:
    24
    Пол:
    Мужской
    #define MENUITEMSPERPAGE 8
    сделай так и 9 строка будет на следущей странице
     
    x00peR нравится это.
  13. Sly Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    53
    Симпатии:
    24
    Пол:
    Мужской
    И вместо
    Players Menu можно Commands Menu
     
    x00peR нравится это.
  14. pr0.JeR Пользователь

    Регистрация:
    10.06.15
    Сообщения:
    347
    Симпатии:
    29
    Пол:
    Мужской
    Sly, все спасибо работает
     
  15. nazar Пользователь

    Регистрация:
    07.07.15
    Сообщения:
    56
    Симпатии:
    26
    Пол:
    Мужской
    Skype:
    servercs69
    ICQ:
    595543687
    это ведь дефолтный menufront?