1. ThePhoenix Пользователь

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

    Ребят,нужно с VIP меню выпилить VIP в табе + добавить приветствие в чат Вип игрока,когда он заходит на сервер,можно и со звуком :)
    Код (Unknown Language):
    1. #include <amxmodx>
    2. #include <cstrike>
    3. #include <fun>
    4. #include <fakemeta_util>
    5.  
    6. #define VIP_FLAG ADMIN_LEVEL_D   // flag 'p'
    7.  
    8. 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<<
    9. 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)
    10.  
    11. new giRoundCounter, pRound, giMenu
    12.  
    13. new bool:gbDisableArmory   // whether VIP autoequipment and VIP armory are disabled for that map
    14. new bool:gbBombMap   // whether there is bomb objective on the map
    15. new giIsUsed    // whether player has used VIP menu in the current round
    16.  
    17. // macro; %1 - variable being modified, %2 - player id
    18. #define CheckUsed(%1)   ( giIsUsed &   ( 1 << (%1-1) ) )
    19. #define SetUsed(%1)      ( giIsUsed |=  ( 1 << (%1-1) ) )
    20.  
    21. #define VIP_TAG (1<<2)
    22.  
    23. public plugin_init() {
    24.    register_plugin( "Vip_weapon", "1.60", "7eVen / Safety1st" )
    25.  
    26.    register_event( "ResetHUD", "ResetHUD", "be" )
    27.    register_event( "HLTV", "Event_NewRound", "a", "1=0", "2=0" )
    28.    register_event( "TextMsg", "Event_NewGame", "a", "2=#Game_will_restart_in", "2=#Game_Commencing" )
    29.    register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" )
    30.  
    31.    register_clcmd( "vip_menu", "vip_menu" )
    32.    register_clcmd( "say /vm", "vip_menu" )
    33.  
    34.    pRound = register_cvar("amx_vip_give", "4")
    35.  
    36.    if( engfunc( EngFunc_FindEntityByString, -1, "classname", "func_bomb_target" ) )
    37.       gbBombMap = true
    38.    else if( engfunc( EngFunc_FindEntityByString, -1, "classname", "info_bomb_target" ) )
    39.       gbBombMap = true
    40.  
    41.    new szMap[32]
    42.    get_mapname( szMap, charsmax(szMap) )
    43.    if( containi( szMap , "awp_" ) != -1 || containi( szMap , "35hp_" ) != -1 || containi( szMap , "aim_" ) != -1 || containi( szMap , "fy_" ) != -1 )
    44.       gbDisableArmory = true
    45.  
    46.    // build menu
    47.    giMenu = menu_create( "\yHighway To Hell \w[\r VIP \w]", "show_vipmenu" )
    48.  
    49.     menu_additem( giMenu, "\yВзять \w[\r Famas \w]\w", "1" )
    50.     menu_additem( giMenu, "\yВзять \w[\r M4A1 \w]\w", "2" )
    51.     menu_additem( giMenu, "\yВзять \w[\r AK47 \w]\w", "3" )
    52.     menu_additem( giMenu, "\yВзять \w[\r AWP \w]\w", "4" )
    53.  
    54.     menu_setprop( giMenu, MPROP_NUMBER_COLOR, "\y" )
    55.     menu_setprop( giMenu, MPROP_NEXTNAME, "Дальше" )
    56.     menu_setprop( giMenu, MPROP_BACKNAME, "Назад" )
    57.     menu_setprop( giMenu, MPROP_EXITNAME, "Выход" )
    58.     menu_setprop( giMenu, MPROP_EXIT,MEXIT_ALL )
    59. }
    60.  
    61. drop_weapon(id) {
    62.    static weapons[32], i, num, weaponid, wname[32]
    63.  
    64.    num = 0
    65.    get_user_weapons( id, weapons, num )
    66.  
    67.    for( i = 0; i < num; i++ ) {
    68.       weaponid = weapons[i]
    69.  
    70.       if( ( (1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM ) ) {
    71.          get_weaponname( weaponid, wname, 31 )
    72.          engclient_cmd( id, "drop", wname )
    73.       }
    74.    }
    75. }
    76.  
    77. public vip_menu(id) {
    78.    if( !is_user_alive(id) )
    79.       return PLUGIN_HANDLED
    80.  
    81.    if( !( get_user_flags(id) & VIP_FLAG ) ) {
    82.       ChatColor( id, "^1[ ^4Premium VIP^1 ] Только для ^3[^4VIP^3]" )
    83.       return PLUGIN_HANDLED
    84.    }
    85.  
    86.    if( gbDisableArmory ) {
    87.       ChatColor( id, "^1[ ^4Premium VIP^1 ] На текущей карте оружейка отключена!" )
    88.       return PLUGIN_HANDLED
    89.    }
    90.  
    91.    if( CheckUsed(id) ) {
    92.       ChatColor( id, "^1[ ^4Premium VIP^1 ] Вы уже использовали. Подождите..." )
    93.       return PLUGIN_HANDLED
    94.    }
    95.  
    96.    new iRound = get_pcvar_num(pRound)
    97.    if( giRoundCounter < iRound ) {
    98.       ChatColor( id, "^1[ ^4Premium VIP^1 ] Доступно с %d раунда!", iRound )
    99.       return PLUGIN_HANDLED
    100.    }
    101.  
    102.    menu_display( id, giMenu )
    103.    return PLUGIN_HANDLED
    104. }
    105.  
    106. public show_vipmenu( id, giMenu, item ) {
    107.    if( item == MENU_EXIT || !is_user_alive(id) )
    108.       return PLUGIN_HANDLED
    109.  
    110.    drop_weapon(id)
    111.  
    112.    switch( ++item ) {
    113.    case 1: {
    114.          give_item( id, "weapon_famas" )
    115.          cs_set_user_bpammo( id , CSW_FAMAS, 90 )
    116.       }
    117.    case 2: {
    118.          give_item( id, "weapon_m4a1" )
    119.          cs_set_user_bpammo( id , CSW_M4A1, 90 )
    120.       }
    121.    case 3: {
    122.          give_item( id, "weapon_ak47" )
    123.          cs_set_user_bpammo( id , CSW_AK47, 90 )
    124.       }
    125.    case 4: {
    126.          give_item( id, "weapon_awp" )
    127.          cs_set_user_bpammo( id , CSW_AWP, 30 )
    128.       }
    129.    case 5: {
    130.          give_item( id, "weapon_deagle" )
    131.          cs_set_user_bpammo( id , CSW_DEAGLE, 60 )
    132.       }
    133.    }
    134.  
    135.    SetUsed(id)
    136.    return PLUGIN_HANDLED
    137. }
    138.  
    139. public Event_NewRound() {
    140.    giRoundCounter++
    141.    giIsUsed = 0   // reset uses
    142. }
    143.  
    144. public Event_NewGame() {
    145.    giRoundCounter = 0
    146. }
    147.  
    148. public ResetHUD(id) {
    149.    if( gbDisableArmory )
    150.       return
    151.  
    152.    if( giRoundCounter < 2 )
    153.       return
    154.  
    155.    if( get_user_flags(id) & VIP_FLAG )
    156.       set_task( 0.5, "EquipVIP", id )
    157. }
    158.  
    159. public EquipVIP(id) {
    160.     if( is_user_alive(id) ) {
    161.         cs_set_user_armor( id, 100, CsArmorType:CS_ARMOR_VESTHELM )
    162.         if( cs_get_user_team(id) == CS_TEAM_CT && gbBombMap && !cs_get_user_defuse(id) )
    163.             cs_set_user_defuse( id, .defusekit = 1 )
    164.  
    165.         static const iPistols[] = { CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_USP, CSW_GLOCK18 }
    166.         for( new i = 0; i < 5; i++ ) {
    167.             if( fm_strip_user_gun( id, iPistols[i] ) )
    168.                 break
    169.         }
    170.         give_item( id, "weapon_hegrenade" )
    171.         give_item( id, "weapon_flashbang" )
    172.         give_item( id, "weapon_flashbang" )
    173.         give_item( id, "weapon_smokegrenade" )
    174.  
    175.         give_item( id, "weapon_deagle")
    176.         give_item( id, "ammo_50ae" )
    177.         give_item( id, "ammo_50ae" )
    178.         give_item( id, "ammo_50ae" )
    179.         give_item( id, "ammo_50ae" )
    180.         give_item( id, "ammo_50ae" )
    181.     }
    182. }
    183.  
    184. public msgScoreAttrib(const MsgId, const MsgType, const MsgDest) { //xpaw's code
    185.    if ( get_user_flags(get_msg_arg_int(1)) & VIP_FLAG && !get_msg_arg_int(2) )
    186.       set_msg_arg_int( 2, ARG_BYTE, VIP_TAG )
    187. }
    188.  
    189. ChatColor(const id, const input[], any:...) {
    190.    new count = 1, players[32], iPlayer
    191.    static msg[192], iMsgSayText
    192.    vformat(msg, 191, input, 3)
    193.  
    194.    if ( !iMsgSayText )
    195.       iMsgSayText = get_user_msgid("SayText")
    196.  
    197.    if (id)
    198.       players[0] = id
    199.    else
    200.       get_players(players, count, "ch")
    201.  
    202.    for( new i = 0; i < count; i++ ) {
    203.       iPlayer = players[i]
    204.       message_begin(MSG_ONE_UNRELIABLE, iMsgSayText, _, iPlayer)
    205.       write_byte(iPlayer)
    206.       write_string(msg)
    207.       message_end()
    208.    }
    209. }
    С меня за помощь, Спасибо + Мне нравится :)
    p.s.Можно просто сказать,что удалить,что куда добавить :)
     

    Вложения:

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

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

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

    Регистрация:
    06.05.15
    Сообщения:
    846
    Симпатии:
    286
    Пол:
    Мужской
    PHP:
    1. register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" )
    Дерзай...
     
    ThePhoenix нравится это.
  5. HannibaL Команда форума

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

    Вложения:

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

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

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

    Регистрация:
    06.05.15
    Сообщения:
    846
    Симпатии:
    286
    Пол:
    Мужской
    удали вот это и в табе не будет но все же я бы не исп, даный плагин, код ужасен.
    PHP:
    1. #define VIP_TAG (1<<2)
    2.  
    3. register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" )
    4.  
    5. public msgScoreAttrib(const MsgId, const MsgType, const MsgDest) { //xpaw's code
    6.    if ( get_user_flags(get_msg_arg_int(1)) & VIP_FLAG && !get_msg_arg_int(2) )
    7.       set_msg_arg_int( 2, ARG_BYTE, VIP_TAG )
    8. }
     
    ThePhoenix нравится это.
  9. sQula Пользователь

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

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

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

    Регистрация:
    06.05.15
    Сообщения:
    846
    Симпатии:
    286
    Пол:
    Мужской
    Вроди как и да так и нет внимательно смотри что там, да и сообщения на тот момент твоего еще не видел.
     
  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.423
    Симпатии:
    136
    Пол:
    Мужской
    Skype:
    the.phoenix666
    Я тут подумал,может перепилить Ванин плагин,под себя :D
    Только дофига что-то нужно удалить и хз как добавить блок на картах,такой как в моём варианте
     
  15. sQula Пользователь

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

    Регистрация:
    06.05.15
    Сообщения:
    846
    Симпатии:
    286
    Пол:
    Мужской
    НУ так говорю же что сообщения твоего еще не читал.
    [1.34] Vip System ну так в чем проблема немного ума терпения и гугл в помощь и будет тебе идеальная система, я даже вспомнил что еще обещал золотую емку и калаш был должен допилить.
    --- добавлено 13.01.16 ---
    взято из плагина
    PHP:
    1. 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.057
    Симпатии:
    216
    Пол:
    Мужской
    ThePhoenix, и этот не плох.
     
  19. ThePhoenix Пользователь

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

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