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

  1. ThePhoenix

    Регистрация:
    08.03.15
    Сообщения:
    1.524
    Симпатии:
    151
    Пол:
    Мужской
    Telegram:
    ThePhoenix2017
    Skype:
    the.phoenix666
    Всем привет :)

    Ребят,нужно с VIP меню выпилить VIP в табе + добавить приветствие в чат Вип игрока,когда он заходит на сервер,можно и со звуком :)
    Код:
    #include <amxmodx>
    #include <cstrike>
    #include <fun>
    #include <fakemeta_util>
    
    #define VIP_FLAG ADMIN_LEVEL_D   // flag 'p'
    
    const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
    CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
    
    new giRoundCounter, pRound, giMenu
    
    new bool:gbDisableArmory   // whether VIP autoequipment and VIP armory are disabled for that map
    new bool:gbBombMap   // whether there is bomb objective on the map
    new giIsUsed    // whether player has used VIP menu in the current round
    
    // macro; %1 - variable being modified, %2 - player id
    #define CheckUsed(%1)   ( giIsUsed &   ( 1 << (%1-1) ) )
    #define SetUsed(%1)      ( giIsUsed |=  ( 1 << (%1-1) ) )
    
    #define VIP_TAG (1<<2)
    
    public plugin_init() {
       register_plugin( "Vip_weapon", "1.60", "7eVen / Safety1st" )
    
       register_event( "ResetHUD", "ResetHUD", "be" )
       register_event( "HLTV", "Event_NewRound", "a", "1=0", "2=0" )
       register_event( "TextMsg", "Event_NewGame", "a", "2=#Game_will_restart_in", "2=#Game_Commencing" )
       register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" )
    
       register_clcmd( "vip_menu", "vip_menu" )
       register_clcmd( "say /vm", "vip_menu" )
    
       pRound = register_cvar("amx_vip_give", "4")
    
       if( engfunc( EngFunc_FindEntityByString, -1, "classname", "func_bomb_target" ) )
          gbBombMap = true
       else if( engfunc( EngFunc_FindEntityByString, -1, "classname", "info_bomb_target" ) )
          gbBombMap = true
    
       new szMap[32]
       get_mapname( szMap, charsmax(szMap) )
       if( containi( szMap , "awp_" ) != -1 || containi( szMap , "35hp_" ) != -1 || containi( szMap , "aim_" ) != -1 || containi( szMap , "fy_" ) != -1 )
          gbDisableArmory = true
    
       // build menu
       giMenu = menu_create( "\yHighway To Hell \w[\r VIP \w]", "show_vipmenu" )
    
        menu_additem( giMenu, "\yВзять \w[\r Famas \w]\w", "1" )
        menu_additem( giMenu, "\yВзять \w[\r M4A1 \w]\w", "2" )
        menu_additem( giMenu, "\yВзять \w[\r AK47 \w]\w", "3" )
        menu_additem( giMenu, "\yВзять \w[\r AWP \w]\w", "4" )
    
        menu_setprop( giMenu, MPROP_NUMBER_COLOR, "\y" )
        menu_setprop( giMenu, MPROP_NEXTNAME, "Дальше" )
        menu_setprop( giMenu, MPROP_BACKNAME, "Назад" )
        menu_setprop( giMenu, MPROP_EXITNAME, "Выход" )
        menu_setprop( giMenu, MPROP_EXIT,MEXIT_ALL )
    }
    
    drop_weapon(id) {
       static weapons[32], i, num, weaponid, wname[32]
    
       num = 0
       get_user_weapons( id, weapons, num )
    
       for( i = 0; i < num; i++ ) {
          weaponid = weapons[i]
    
          if( ( (1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM ) ) {
             get_weaponname( weaponid, wname, 31 )
             engclient_cmd( id, "drop", wname )
          }
       }
    }
    
    public vip_menu(id) {
       if( !is_user_alive(id) )
          return PLUGIN_HANDLED
    
       if( !( get_user_flags(id) & VIP_FLAG ) ) {
          ChatColor( id, "^1[ ^4Premium VIP^1 ] Только для ^3[^4VIP^3]" )
          return PLUGIN_HANDLED
       } 
    
       if( gbDisableArmory ) {
          ChatColor( id, "^1[ ^4Premium VIP^1 ] На текущей карте оружейка отключена!" )
          return PLUGIN_HANDLED
       }
    
       if( CheckUsed(id) ) {
          ChatColor( id, "^1[ ^4Premium VIP^1 ] Вы уже использовали. Подождите..." )
          return PLUGIN_HANDLED
       }
    
       new iRound = get_pcvar_num(pRound)
       if( giRoundCounter < iRound ) {
          ChatColor( id, "^1[ ^4Premium VIP^1 ] Доступно с %d раунда!", iRound )
          return PLUGIN_HANDLED
       }
    
       menu_display( id, giMenu )
       return PLUGIN_HANDLED
    }
    
    public show_vipmenu( id, giMenu, item ) { 
       if( item == MENU_EXIT || !is_user_alive(id) )
          return PLUGIN_HANDLED
    
       drop_weapon(id)
    
       switch( ++item ) {
       case 1: {
             give_item( id, "weapon_famas" )
             cs_set_user_bpammo( id , CSW_FAMAS, 90 )
          }
       case 2: {
             give_item( id, "weapon_m4a1" )
             cs_set_user_bpammo( id , CSW_M4A1, 90 )
          }
       case 3: {
             give_item( id, "weapon_ak47" )
             cs_set_user_bpammo( id , CSW_AK47, 90 )
          }
       case 4: {
             give_item( id, "weapon_awp" )
             cs_set_user_bpammo( id , CSW_AWP, 30 )
          }
       case 5: {
             give_item( id, "weapon_deagle" )
             cs_set_user_bpammo( id , CSW_DEAGLE, 60 )
          }
       }
    
       SetUsed(id)
       return PLUGIN_HANDLED
    }
    
    public Event_NewRound() {
       giRoundCounter++
       giIsUsed = 0   // reset uses
    }
    
    public Event_NewGame() {
       giRoundCounter = 0
    }
    
    public ResetHUD(id) {
       if( gbDisableArmory )
          return
    
       if( giRoundCounter < 2 )
          return
    
       if( get_user_flags(id) & VIP_FLAG )
          set_task( 0.5, "EquipVIP", id )
    }
    
    public EquipVIP(id) {
        if( is_user_alive(id) ) {
            cs_set_user_armor( id, 100, CsArmorType:CS_ARMOR_VESTHELM )
            if( cs_get_user_team(id) == CS_TEAM_CT && gbBombMap && !cs_get_user_defuse(id) )
                cs_set_user_defuse( id, .defusekit = 1 )
    
            static const iPistols[] = { CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_USP, CSW_GLOCK18 }
            for( new i = 0; i < 5; i++ ) {
                if( fm_strip_user_gun( id, iPistols[i] ) )
                    break
            }
            give_item( id, "weapon_hegrenade" )
            give_item( id, "weapon_flashbang" )
            give_item( id, "weapon_flashbang" )
            give_item( id, "weapon_smokegrenade" )
    
            give_item( id, "weapon_deagle")
            give_item( id, "ammo_50ae" )
            give_item( id, "ammo_50ae" )
            give_item( id, "ammo_50ae" )
            give_item( id, "ammo_50ae" )
            give_item( id, "ammo_50ae" )
        }
    }
    
    public msgScoreAttrib(const MsgId, const MsgType, const MsgDest) { //xpaw's code
       if ( get_user_flags(get_msg_arg_int(1)) & VIP_FLAG && !get_msg_arg_int(2) )
          set_msg_arg_int( 2, ARG_BYTE, VIP_TAG )
    }
    
    ChatColor(const id, const input[], any:...) {
       new count = 1, players[32], iPlayer
       static msg[192], iMsgSayText
       vformat(msg, 191, input, 3)
    
       if ( !iMsgSayText )
          iMsgSayText = get_user_msgid("SayText")
    
       if (id)
          players[0] = id
       else
          get_players(players, count, "ch")
    
       for( new i = 0; i < count; i++ ) {
          iPlayer = players[i]
          message_begin(MSG_ONE_UNRELIABLE, iMsgSayText, _, iPlayer)
          write_byte(iPlayer)
          write_string(msg)
          message_end()
       }
    }
    С меня за помощь, Спасибо + Мне нравится :)
    p.s.Можно просто сказать,что удалить,что куда добавить :)
     

    Вложения:

    • premium_vip.sma
      Размер файла:
      6,4 КБ
      Просмотров:
      11
  2. sQula

    Регистрация:
    24.12.15
    Сообщения:
    206
    Симпатии:
    25
    Пол:
    Мужской
    VKcom:
    msc_project
    Skype:
    cs-msc.ru
    я не кодер, но думаю.
    Код:
    public msgScoreAttrib(const MsgId, const MsgType, const MsgDest) { //xpaw's code
       if ( get_user_flags(get_msg_arg_int(1)) & VIP_FLAG && !get_msg_arg_int(2) )
          set_msg_arg_int( 2, ARG_BYTE, VIP_TAG )
    }
    
    и отображения VIP в TAB не будет)
     
    ThePhoenix нравится это.
  3. ThePhoenix

    Регистрация:
    08.03.15
    Сообщения:
    1.524
    Симпатии:
    151
    Пол:
    Мужской
    Telegram:
    ThePhoenix2017
    Skype:
    the.phoenix666
    И только?
     
  4. pUzzlik

    Регистрация:
    06.05.15
    Сообщения:
    956
    Симпатии:
    323
    Пол:
    Мужской
    PHP:
    register_messageget_user_msgid"ScoreAttrib" ), "msgScoreAttrib" )
    Дерзай...
     
    ThePhoenix нравится это.
  5. HannibaL

    Регистрация:
    28.02.15
    Сообщения:
    1.082
    Симпатии:
    229
    Пол:
    Мужской
    Так попробуй.
    Не проверял.
     

    Вложения:

    • premium_vip.sma
      Размер файла:
      6,2 КБ
      Просмотров:
      4
    ThePhoenix нравится это.
  6. pUzzlik

    Регистрация:
    06.05.15
    Сообщения:
    956
    Симпатии:
    323
    Пол:
    Мужской
    но как по мне лучне выпилить не нужный функ. чем впиливать что новое тем более если ты новичек
     
  7. sQula

    Регистрация:
    24.12.15
    Сообщения:
    206
    Симпатии:
    25
    Пол:
    Мужской
    VKcom:
    msc_project
    Skype:
    cs-msc.ru
    Код:
    register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" )
    
    и вот это)
    --- добавлено 13.01.16 ---
    Полностью согласен.
    Выпилить нужно иметь логику, и мышку с клавиатурой...
    А вот Добавить новое, нужны знания)
     
  8. pUzzlik

    Регистрация:
    06.05.15
    Сообщения:
    956
    Симпатии:
    323
    Пол:
    Мужской
    удали вот это и в табе не будет но все же я бы не исп, даный плагин, код ужасен.
    PHP:
    #define VIP_TAG (1<<2)

    register_messageget_user_msgid"ScoreAttrib" ), "msgScoreAttrib" )

    public 
    msgScoreAttrib(const MsgId, const MsgType, const MsgDest) { //xpaw's code
       
    if ( get_user_flags(get_msg_arg_int(1)) & VIP_FLAG && !get_msg_arg_int(2) )
          
    set_msg_arg_int2ARG_BYTEVIP_TAG )
    }
     
    ThePhoenix нравится это.
  9. sQula

    Регистрация:
    24.12.15
    Сообщения:
    206
    Симпатии:
    25
    Пол:
    Мужской
    VKcom:
    msc_project
    Skype:
    cs-msc.ru
    ты соединил свое и мое сообщение?)
     
  10. ThePhoenix

    Регистрация:
    08.03.15
    Сообщения:
    1.524
    Симпатии:
    151
    Пол:
    Мужской
    Telegram:
    ThePhoenix2017
    Skype:
    the.phoenix666
    Я бы переписал меню с нуля,но потом как нибудь,ибо сейчас скриптеры заняты :)
    А вообще этот плагин переделывал сафа,я не думаю,что настолько всё плохо.
     
  11. sQula

    Регистрация:
    24.12.15
    Сообщения:
    206
    Симпатии:
    25
    Пол:
    Мужской
    VKcom:
    msc_project
    Skype:
    cs-msc.ru
    я тоже хочу новый плагин випа, кст, кто сколько берет за плагины?) такого рода..
     
  12. pUzzlik

    Регистрация:
    06.05.15
    Сообщения:
    956
    Симпатии:
    323
    Пол:
    Мужской
    Вроди как и да так и нет внимательно смотри что там, да и сообщения на тот момент твоего еще не видел.
     
  13. sQula

    Регистрация:
    24.12.15
    Сообщения:
    206
    Симпатии:
    25
    Пол:
    Мужской
    VKcom:
    msc_project
    Skype:
    cs-msc.ru
    ты добавил только
    #define VIP_TAG (1<<2)
     
  14. ThePhoenix

    Регистрация:
    08.03.15
    Сообщения:
    1.524
    Симпатии:
    151
    Пол:
    Мужской
    Telegram:
    ThePhoenix2017
    Skype:
    the.phoenix666
    Я тут подумал,может перепилить Ванин плагин,под себя :D
    Только дофига что-то нужно удалить и хз как добавить блок на картах,такой как в моём варианте
     
  15. sQula

    Регистрация:
    24.12.15
    Сообщения:
    206
    Симпатии:
    25
    Пол:
    Мужской
    VKcom:
    msc_project
    Skype:
    cs-msc.ru
    Блок я думаю можно запихать туда, попросить Ваню об этом, а все остальное можно вырезать)
     
  16. pUzzlik

    Регистрация:
    06.05.15
    Сообщения:
    956
    Симпатии:
    323
    Пол:
    Мужской
    НУ так говорю же что сообщения твоего еще не читал.
    [1.34] Vip System ну так в чем проблема немного ума терпения и гугл в помощь и будет тебе идеальная система, я даже вспомнил что еще обещал золотую емку и калаш был должен допилить.
    --- добавлено 13.01.16 ---
    взято из плагина
    PHP:
    new iMap_Name[32], iMap_Prefix[][] = { "awp_""aim_""35hp""fy_" };
    разве там такое не предусмотрено? :)
     
  17. sQula

    Регистрация:
    24.12.15
    Сообщения:
    206
    Симпатии:
    25
    Пол:
    Мужской
    VKcom:
    msc_project
    Skype:
    cs-msc.ru
    Хотя есть плагин специальный....
    Вот хороший плагин
    --- добавлено 13.01.16 ---
    Единственное что, это минус постоянно компилить плагин)) и помнить, что при добавлении карты, надо скомпилить VIP, было бы удобно в файл все вынести, и добавлять просто название карты)
     
  18. HannibaL

    Регистрация:
    28.02.15
    Сообщения:
    1.082
    Симпатии:
    229
    Пол:
    Мужской
    ThePhoenix, и этот не плох.
     
  19. ThePhoenix

    Регистрация:
    08.03.15
    Сообщения:
    1.524
    Симпатии:
    151
    Пол:
    Мужской
    Telegram:
    ThePhoenix2017
    Skype:
    the.phoenix666
    откуда эмку и калаш?
    Слушай,мб ты подскажешь,как добавить туда блок карты,как в моём варике,если знаешь :)
    --- добавлено 13.01.16 ---
    Я люблю компилить :crazy:
    Я душу топтал этих кваров :D
    Ну бесят они меня,хз чё,мб потому что иногда слетают или удаляю случайно :prankster:
     
  20. sQula

    Регистрация:
    24.12.15
    Сообщения:
    206
    Симпатии:
    25
    Пол:
    Мужской
    VKcom:
    msc_project
    Skype:
    cs-msc.ru
    Единственное что, это минус постоянно компилить плагин))
    PHP:
       new szMap[32]
       
    get_mapnameszMapcharsmax(szMap) )
       if( 
    containiszMap "awp_" ) != -|| containiszMap "35hp_" ) != -|| containiszMap "aim_" ) != -|| containiszMap "fy_" ) != -)
          
    gbDisableArmory true
    вот этот кусок отвечает за блок карт... вроде как)