daily pastebin goal
20%
SHARE
TWEET

Untitled

a guest Dec 1st, 2015 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include < amxmodx >
  2. #include < amxmisc >
  3. #include < hamsandwich >
  4. #include < cstrike >
  5. #include < fakemeta >
  6. #include < engine >
  7. #include < fun >
  8. #include < CC_ColorChat >
  9. #include < message_const >
  10.  
  11. //#define USING_SQL
  12.  
  13. #if defined USING_SQL
  14. #include < sqlx >
  15. #endif
  16.  
  17. // Toate aceste date vor fi trecute in fisierul "users.ini" !
  18. #define VIP_FLAGS               "bit"   // Flagurile VIP-ului( Nu schimba )
  19. #define VIP_FLAGS_TYPE          "a"     // a - deconecteaza VIP-ii cu parola invalida( Alte flaguri gasiti in "users.ini" )
  20. #define VIP_PASSWORD            "parola"        // Aici setati parola oricarui VIP
  21.  
  22. #define is_user_player(%1) ( 1 <= %1 <= g_iMaxPlayers )
  23.  
  24. #define TASK_SECRET_MSG         216439
  25.  
  26.  
  27. // Stuff
  28.  
  29. new maxplayers
  30. new gmsgSayText
  31.  
  32.  
  33. // Aici schimbati orele cand jucatorii pot avea VIP free( pentru a dezactiva setati caloarea 0 cvar-ului "vip_enable_vip_event" )
  34. #define FIRST_HOUR      20
  35. #define LAST_HOUR       10
  36.  
  37. new const PLUGIN_VERSION[  ] = "1.0.2",
  38.          PLUGIN_AUTHOR[  ] = "YONTU";
  39.  
  40. #if defined USING_SQL
  41. new const PLUGIN_NAME_SQL[  ] = "VIP System( SQL )";
  42. #else
  43. new const PLUGIN_NAME[  ] = "VIP System";
  44. #endif
  45.  
  46. new const g_szTag[  ] = "[VIP System]"; // TAG
  47. new const g_szVipFlags[  ] =    "t";            // flagul vip-ului( ADMIN_LEVEL_H )
  48.  
  49. // Aici iti pui numele cu care joci pe server si adresa ta( pluginul va afisa un mesaj la inceput de runda cu datele tale daca jucatorii sunt interesati sa cumpere vip );
  50. new const YourNick[  ] = "d3v1L",
  51.          YourMessenger[  ] = "zdubz0r@yahoo.com";
  52.  
  53. static const COLORG[  ] = "^x04", COLORD[  ] = "^x01", COLORT[  ] = "^x03";
  54.  
  55. static const COLOR[] = "^x04" //green
  56. static const CONTACT[] = "zdubz0r@yahoo.com"
  57.  
  58. // Refil Ammo on headshot
  59. new const g_Weapons[  ] = {
  60.  
  61.         CSW_M4A1,
  62.         CSW_AK47,
  63.         CSW_DEAGLE,
  64.         CSW_USP
  65. };
  66.  
  67. new const g_szWeapons[  ][  ] = {
  68.  
  69.         "weapon_m4a1",
  70.         "weapon_ak47",
  71.         "weapon_deagle",
  72.         "weapon_usp"
  73. };
  74.  
  75. new const g_iWeaponsAmmo[  ] = {
  76.  
  77.         30,
  78.         30,
  79.         7,
  80.         12
  81. };
  82.  
  83. enum {
  84.  
  85.         SCOREATTRIB_ARG_PLAYERID = 1,
  86.         SCOREATTRIB_ARG_FLAGS
  87. };
  88.  
  89. enum ( <<= 1 ) {
  90.  
  91.         SCOREATTRIB_FLAG_NONE = 0,
  92.         SCOREATTRIB_FLAG_DEAD = 1,
  93.         SCOREATTRIB_FLAG_BOMB,
  94.         SCOREATTRIB_FLAG_VIP
  95. };
  96.  
  97. enum _:WhatUserHas {
  98.  
  99.         Speed,
  100.         Jump,
  101. }
  102. new bool:g_bUserHas[ 33 ][ WhatUserHas ];
  103.  
  104. new     g_cvar_speed_spawn,
  105.         g_cvar_health_spawn,
  106.         g_cvar_armor_spawn,
  107.         g_cvar_gravity_spawn,
  108.         g_cvar_multidmg,
  109.         g_cvar_health_kill_reward,
  110.         g_cvar_health_hs_reward,
  111.         g_cvar_maxhealth,
  112.         g_cvar_kill_money_reward,
  113.         g_cvar_show_msgs,
  114.         g_cvar_enable_show_dmg,
  115.         g_cvar_ebable_vip_scoreboard,
  116.         g_cvar_enable_vip_noflash,
  117.         g_cvar_enable_vip_multijump,
  118.         g_cvar_enable_vip_event,
  119.         g_cvar_enable_vip_model;
  120.  
  121. new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
  122.  
  123. new bool:VipEvent;
  124.  
  125. new iJumpNum[ 33 ] = 0;
  126. new g_iMultiJumps[ 33 ] = 0;
  127. new g_iMaxJumps = 0;
  128.  
  129. new g_iMaxPlayers;
  130. new SyncHudMessage;
  131.  
  132. public plugin_init(  ) {
  133.  
  134.         #if defined USING_SQL
  135.         register_plugin( PLUGIN_NAME_SQL,
  136.                         PLUGIN_VERSION,
  137.                         PLUGIN_AUTHOR );
  138.         #else
  139.         register_plugin( PLUGIN_NAME,
  140.                         PLUGIN_VERSION,
  141.                         PLUGIN_AUTHOR );
  142.         #endif
  143.  
  144.         register_clcmd( "say /vip", "ShowAbilityForVip" );
  145.         register_clcmd( "say_team /vip", "ShowAbilityForVip" );
  146.  
  147.         register_concmd( "amx_addvips", "ClCmdAddVips", ADMIN_RCON, "< nume >" );
  148.  
  149.         register_event( "ResetHUD", "event_ResetModel", "b" );
  150.         register_event( "DeathMsg", "event_DeathMsg", "a" );
  151.         register_event( "DeathMsg", "event_DeathMsg2", "ae" );
  152.         register_event( "Damage", "event_Damage", "b", "2!0", "3=0", "4!0" );
  153.  
  154.         register_logevent( "logevent_RoundStart", 2 , "1=Round_Start" );
  155.         register_logevent( "logevent_RoundEnd", 2, "1=Round_End" );
  156.  
  157.         register_forward( FM_PlayerPreThink, "forward_PlayerPreThink" );
  158.         register_forward( FM_PlayerPostThink, "forward_PlayerPostThink" );
  159.  
  160.         RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
  161.         RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamagePre" );
  162.         RegisterHam( Ham_Player_ResetMaxSpeed, "player", "Ham_ResetMaxSpeedPost", 1 );
  163.  
  164.         register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  165.         register_message( get_user_msgid( "ScreenFade" ), "MessageScreenFade" );
  166.  
  167.         //Check Online
  168.         maxplayers = get_maxplayers()
  169.         gmsgSayText = get_user_msgid("SayText")
  170.         register_clcmd("say", "handle_say")
  171.         register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
  172.  
  173.         //Cvars
  174.         g_cvar_speed_spawn = register_cvar( "vip_speed_spawn", "400.0" );               // viteza pe care o primeste vip-ul la spawn( sa fie cu zecimala.0 )
  175.         g_cvar_health_spawn = register_cvar( "vip_health_spawn", "200" );               // viata pe care o primeste vip-ul la spawn
  176.         g_cvar_armor_spawn = register_cvar( "vip_armor_spawn", "150" );         // armura pe care o primeste vip-ul la spawn
  177.         g_cvar_gravity_spawn = register_cvar( "vip_gravity_spawn", "0.85" );    // gravitatea pe care o primeste vip-ul la spawn
  178.         g_cvar_multidmg = register_cvar( "vip_multi_dmg", "2.0" );              // vip-ul are dmg mai mare la toate armele
  179.         g_cvar_health_kill_reward = register_cvar( "vip_hp_kill_reward", "15" );        // cata viata sa primeasca vip-ul cand face un kill
  180.         g_cvar_health_hs_reward = register_cvar( "vip_hp_hs_reward", "25" );    // cata viata sa primeasca vip-ul cand face un headshot
  181.         g_cvar_maxhealth = register_cvar( "vip_maxhealth", "300" );             // viata maxima a vip-ului
  182.         g_cvar_kill_money_reward = register_cvar( "vip_kill_money", "1000" );   // Cati bani sa primeasca Vip-ul pe un frag
  183.         g_cvar_show_msgs = register_cvar( "vip_show_messages", "30.0" );                // la ce interval de timp.0 sa apara mesajele in chat despre VIP
  184.         g_cvar_enable_show_dmg = register_cvar( "vip_show_dmg", "1" );          // afiseaza vip-ului dmg-ul facut de victima si dmg-ul pe care i la facut victimei
  185.         g_cvar_ebable_vip_scoreboard = register_cvar( "vip_on_scoreboard", "1" );       // 1 - vip-ii apar in scoreboard ca "VIP" | 0 - dezactivat
  186.         g_cvar_enable_vip_noflash = register_cvar( "vip_imune_flashbang", "1" );        // 1 - Vip-ul este imun la flash-uri | 0 - Nu este
  187.         g_cvar_enable_vip_multijump = register_cvar( "vip_enable_multijump", "1" );     // 1 - Vip-ul beneficiaza de multi jump | 0 - Nu beneficiaza
  188.         g_cvar_enable_vip_event = register_cvar( "vip_enable_vip_event", "1" ); // 1 - Intre anumite ore toti jucatorii au VIP | 0 dezactivat
  189.         g_cvar_enable_vip_model = register_cvar( "vip_enable_model", "1" );     // 1 - VIP-ul are alt model pe server | 0 - Nu are
  190.  
  191.         if( get_pcvar_num( g_cvar_enable_vip_event ) > 0 ) {
  192.  
  193.                 check_time(  );
  194.                 set_task( 60.0, "check_time", _, _, _, "b" );
  195.                 set_task( 1.0, "hud_mess", _, _, _, "b" );
  196.         }
  197.  
  198.         new szFile[ 64 ]
  199.         get_configsdir( szFile, 63 );
  200.         format( szFile, 63, "%s/vip_system.cfg", szFile );
  201.        
  202.         if( file_exists( szFile ) )
  203.                 server_cmd( "exec %s", szFile );
  204.  
  205.         g_iMaxPlayers = get_maxplayers(  );
  206.         SyncHudMessage = CreateHudSyncObj(  );
  207. }
  208.  
  209. public handle_say(id) {
  210.         new said[192]
  211.         read_args(said,192)
  212.         if( ( containi(said, "vip") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 )
  213.                 set_task(0.1,"print_adminlist",id)
  214.         return PLUGIN_CONTINUE
  215. }
  216.  
  217. public print_adminlist(user)
  218. {
  219.         new adminnames[33][32]
  220.         new message[256]
  221.         new contactinfo[256], contact[112]
  222.         new id, count, x, len
  223.        
  224.         for(id = 1 ; id <= maxplayers ; id++)
  225.                 if(is_user_connected(id))
  226.                         if(get_user_flags(id) & ADMIN_LEVEL_H )
  227.                                 get_user_name(id, adminnames[count++], 31)
  228.  
  229.         len = format(message, 255, "%s V.I.P Online: ",COLOR)
  230.         if(count > 0) {
  231.                 for(x = 0 ; x < count ; x++) {
  232.                         len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
  233.                         if(len > 96 ) {
  234.                                 print_message(user, message)
  235.                                 len = format(message, 255, "%s ",COLOR)
  236.                         }
  237.                 }
  238.                 print_message(user, message)
  239.         }
  240.         else {
  241.                 len += format(message[len], 255-len, "There are no V.I.P ONLINE.")
  242.                 print_message(user, message)
  243.         }
  244.        
  245.         get_cvar_string("amx_contactinfo", contact, 63)
  246.         if(contact[0])  {
  247.                 format(contactinfo, 111, "%s Contact Server Founder -- %s", COLOR, contact)
  248.                 print_message(user, contactinfo)
  249.         }
  250. }
  251.  
  252. print_message(id, msg[]) {
  253.         message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  254.         write_byte(id)
  255.         write_string(msg)
  256.         message_end()
  257. }
  258.  
  259. public plugin_cfg(  )
  260.         set_cvar_float( "sv_maxspeed", 1000.0 );
  261.  
  262. public plugin_precache(  ) {
  263.  
  264.         precache_model( "models/player/vip-out/vip-out.mdl" );
  265. }
  266.  
  267. public client_putinserver( id ) {
  268.  
  269.         g_iMultiJumps[ id ] = 0;
  270.         iJumpNum[ id ] = 0;
  271.         g_bUserHas[ id ][ Jump ] = false;
  272.         g_bUserHas[ id ][ Speed ] = false;
  273. }
  274.  
  275. public client_disconnect( id ) {
  276.  
  277.         g_iMultiJumps[ id ] = 0;
  278.         iJumpNum[ id ] = 0;
  279.         g_bUserHas[ id ][ Jump ] = false;
  280.         g_bUserHas[ id ][ Speed ] = false;
  281. }
  282.  
  283. public event_ResetModel( id ) {
  284.  
  285.         if( get_pcvar_num( g_cvar_enable_vip_model ) ) {
  286.  
  287.                 if( is_user_vip( id ) ) {
  288.  
  289.                         new CsTeams:userTeam = cs_get_user_team( id );
  290.  
  291.                         if( userTeam == CS_TEAM_T ) {
  292.  
  293.                                 cs_set_user_model( id, "vip-out" );
  294.  
  295.                                 return 1;
  296.                         }
  297.  
  298.                         else if( userTeam == CS_TEAM_CT ) {
  299.  
  300.                                 cs_set_user_model( id, "vip-out" );
  301.  
  302.                                 return 1;
  303.                         }
  304.                 } else
  305.                         cs_reset_user_model( id );
  306.         } else
  307.                 return 0;
  308.  
  309.         return 0;
  310. }
  311.  
  312. public event_DeathMsg(  ) {
  313.  
  314.         new iAttacker = read_data( 1 );
  315.         new iVictim = read_data( 2 );
  316.         new iHeadshot = read_data( 3 );
  317.        
  318.         new HealthOnHeadShot = get_pcvar_num( g_cvar_health_hs_reward );
  319.         new MaxHealth = get_pcvar_num( g_cvar_maxhealth );
  320.         new HealthOnKill = get_pcvar_num( g_cvar_health_kill_reward );
  321.  
  322.         if( iAttacker == iVictim )
  323.                 return 0;
  324.  
  325.         if( is_user_vip( iAttacker ) && iAttacker != iVictim ) {
  326.                
  327.                 if( get_user_health( iAttacker ) <= MaxHealth ) {
  328.  
  329.                         if( iHeadshot ) {
  330.  
  331.                                 set_user_health( iAttacker, get_user_health( iAttacker ) + HealthOnHeadShot );
  332.  
  333.                                 set_hudmessage( 0, 250, 0, 0.85, 0.7, 0, 6.0, 5.0 );
  334.                                 ShowSyncHudMsg( iAttacker, SyncHudMessage, "+ %i HP", HealthOnHeadShot );
  335.                         } else {
  336.  
  337.                                 set_user_health( iAttacker, get_user_health( iAttacker ) + HealthOnKill );
  338.  
  339.                                 set_hudmessage( 200, 200, 0, 0.85, 0.7, 0, 6.0, 5.0 );
  340.                                 ShowSyncHudMsg( iAttacker, SyncHudMessage, "+ %i HP", HealthOnKill );
  341.                         }
  342.                 }
  343.  
  344.                 if( is_user_alive( iAttacker ) && !is_user_bot( iAttacker ) )
  345.                         if( read_data( 3 ) )
  346.                                 for( new w = 0; w < sizeof( g_Weapons ); w++ )
  347.                                         if( get_user_weapon( iAttacker ) == g_Weapons[ w ] )
  348.                                                 if( find_ent_by_owner( -1, g_szWeapons[ w ], iAttacker ) )
  349.                                                         cs_set_weapon_ammo( find_ent_by_owner( -1, g_szWeapons[ w ], iAttacker ), g_iWeaponsAmmo[ w ] );
  350.         }
  351.  
  352.         return 0;
  353. }
  354.  
  355. public event_DeathMsg2(  ) {
  356.  
  357.         new iAttacker = read_data( 1 );
  358.         new iVictim = read_data( 2 );
  359.  
  360.         new BonusMoney = get_pcvar_num( g_cvar_kill_money_reward );
  361.        
  362.         if( iAttacker == iVictim )
  363.                 return 0;
  364.  
  365.         if( is_user_vip( iAttacker ) )
  366.                 if( iAttacker && is_user_alive( iAttacker ) )
  367.                         if( cs_get_user_team( iVictim ) == CS_TEAM_T || cs_get_user_team( iVictim ) == CS_TEAM_CT )
  368.                                 if( cs_get_user_money( iAttacker ) < 16000 - BonusMoney - 300 )
  369.                                         cs_set_user_money( iAttacker, cs_get_user_money( iAttacker ) + BonusMoney - 300 );
  370.  
  371.         return 0;
  372. }
  373.  
  374. public event_Damage( id ) {
  375.  
  376.         if( get_pcvar_num( g_cvar_enable_show_dmg ) > 0 ) {
  377.  
  378.                 static iAttacker;
  379.                 static fDamage;
  380.        
  381.                 iAttacker = get_user_attacker( id );
  382.                 fDamage = read_data( 2 );
  383.  
  384.                 if( is_user_alive( id ) && is_user_vip( id ) ) {
  385.                        
  386.                         set_hudmessage( 255, 0, 0, 0.45, 0.50, 2, 0.1, 1.0, 0.1, 0.1, -1 );
  387.                         ShowSyncHudMsg( id, SyncHudMessage, "%i^n", fDamage ); 
  388.                 }
  389.  
  390.                 if( is_user_alive( iAttacker ) && is_user_vip( iAttacker ) ) {
  391.  
  392.                         set_hudmessage( 0, 255, 15, -1.0, 0.55, 2, 0.1, 1.0, 0.02, 0.02, -1 );
  393.                         ShowSyncHudMsg( iAttacker, SyncHudMessage, "%i^n^n", fDamage );
  394.                 }
  395.         }
  396. }
  397.  
  398. public logevent_RoundStart(  ) {
  399.        
  400.         new szPlayers[ 32 ], iNum;
  401.         get_players( szPlayers, iNum, "ch" );
  402.        
  403.         for( new i = 0; i < iNum; i++)  {
  404.  
  405.                 g_bUserHas[ szPlayers[ i ] ][ Speed ] = false;
  406.                 g_bUserHas[ szPlayers[ i ] ][ Jump ] = false;
  407.                 g_iMultiJumps[ szPlayers[ i ] ] = 0;
  408.                 iJumpNum[ szPlayers[ i ] ] = 0;
  409.  
  410.                 if( task_exists( szPlayers[ i ] + TASK_SECRET_MSG ) )
  411.                         remove_task( szPlayers[ i ] + TASK_SECRET_MSG );
  412.                
  413.                 set_task( get_pcvar_float( g_cvar_show_msgs ), "task_ShowMessage", szPlayers[ i ] + TASK_SECRET_MSG );
  414.         }
  415. }
  416.  
  417. public logevent_RoundEnd(  ) {
  418.        
  419.         new szPlayers[ 32 ], iNum;
  420.         get_players( szPlayers, iNum, "ch" );
  421.        
  422.         for( new i = 0; i < iNum; i++ )
  423.                 remove_task( szPlayers[ i ] );
  424. }
  425.  
  426. public forward_PlayerPreThink( id ) {
  427.  
  428.         if( !is_user_alive( id ) || !g_iMultiJumps[ id ] )
  429.                 return 0;
  430.  
  431.         if( ( pev( id, pev_button ) & IN_JUMP ) && !( pev( id, pev_flags ) & FL_ONGROUND ) && !( pev( id, pev_oldbuttons ) & IN_JUMP ) ) {
  432.  
  433.                 if( iJumpNum[ id ] < g_iMultiJumps[ id ] ) {
  434.  
  435.                         g_bUserHas[ id ][ Jump ] = true;
  436.                         iJumpNum[ id ]++;
  437.  
  438.                         return 0;
  439.                 }
  440.         }
  441.  
  442.         if( ( pev( id, pev_button ) & IN_JUMP ) && ( pev( id, pev_flags ) & FL_ONGROUND ) ) {
  443.  
  444.                 iJumpNum[ id ] = 0;
  445.                 return 0;
  446.         }
  447.  
  448.         return 0;
  449. }
  450.  
  451. public forward_PlayerPostThink( id ) {
  452.  
  453.         if( !is_user_alive( id ) || !g_iMultiJumps[ id ] )
  454.                 return 0;
  455.  
  456.         if( g_bUserHas[ id ][ Jump ] ) {
  457.  
  458.                 new Float:fVelocity[ 3 ];
  459.  
  460.                 pev( id, pev_velocity, fVelocity );
  461.  
  462.                 fVelocity[ 2 ] = random_float( 265.0, 285.0 );
  463.  
  464.                 set_pev( id, pev_velocity, fVelocity );
  465.  
  466.                 g_bUserHas[ id ][ Jump ] = false;
  467.                 return 0;
  468.         }
  469.  
  470.         return 0;
  471. }
  472.  
  473. public Ham_PlayerSpawnPost( id ) {
  474.        
  475.         if( !is_user_alive( id ) && !is_user_vip( id ) )
  476.                 return HAM_IGNORED;
  477.        
  478.         if( is_user_vip( id ) && !is_user_bot( id ) )
  479.                 set_task( 1.0, "task_GiveSkillsAllVips", id );
  480.        
  481.         return HAM_IGNORED;
  482. }
  483.  
  484. public task_GiveSkillsAllVips( id ) {
  485.  
  486.         //drop_prim( id );
  487.  
  488.         g_bUserHas[ id ][ Speed ] = true;
  489.         fm_set_user_maxspeed( id, get_pcvar_float( g_cvar_speed_spawn ) );
  490.  
  491.         new szCommand[ 128 ];
  492.         formatex( szCommand, sizeof( szCommand ) - 1, "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", get_pcvar_float( g_cvar_speed_spawn ), get_pcvar_float( g_cvar_speed_spawn ), get_pcvar_float( g_cvar_speed_spawn ) );
  493.         client_cmd( id, szCommand );
  494.  
  495.         if( get_pcvar_num( g_cvar_enable_vip_multijump ) > 0 )
  496.                 if( g_iMultiJumps[ id ] < g_iMaxJumps || !g_iMaxJumps )
  497.                         g_iMultiJumps[ id ]++;
  498.  
  499.         set_user_health( id, get_pcvar_num( g_cvar_health_spawn ) );
  500.         set_user_armor( id, get_pcvar_num( g_cvar_armor_spawn ) );
  501.         set_user_gravity( id, get_pcvar_float( g_cvar_gravity_spawn ) );
  502.  
  503.         fm_give_item( id, "weapon_hegrenade" );
  504.         fm_give_item( id, "weapon_flashbang" );
  505.         fm_give_item( id, "weapon_flashbang" );
  506.         fm_give_item( id, "weapon_smokegrenade" );
  507.  
  508.         //GiveRifle( id );
  509. }
  510.  
  511. public GiveRifle( id ) {
  512.  
  513.         fm_give_item( id, "weapon_m4a1" );
  514.         cs_set_user_bpammo( id, CSW_M4A1, 300 );
  515.  
  516.         fm_give_item( id, "weapon_ak47" );
  517.         cs_set_user_bpammo( id, CSW_AK47, 300 );
  518.  
  519.         fm_give_item( id, "weapon_awp" );
  520.         cs_set_user_bpammo( id, CSW_AWP, 100 );
  521.  
  522.         fm_give_item( id, "weapon_deagle" );
  523.         cs_set_user_bpammo( id, CSW_DEAGLE, 70 );
  524. }
  525.  
  526. public task_ShowMessage( taskid ) {
  527.  
  528.         new id = taskid - TASK_SECRET_MSG;
  529.  
  530.         ColorChat( id, GREEN, "%s^x01 Vrei sa cumperi si tu^x03 Membru V.I.P^x01? Contacteaza-l pe^x03 %s^x01 la^x03 %s^x01 !!!", g_szTag, YourNick, YourMessenger );
  531.  
  532.         set_task( get_pcvar_float( g_cvar_show_msgs ) * 0.5, "task_ShowMessage2", id );
  533.  
  534.         if( task_exists( taskid ) )
  535.                 remove_task( taskid );
  536. }
  537.  
  538. public task_ShowMessage2( id ) {
  539.  
  540.         ColorChat( id, GREEN, "%s^x01 Vrei sa faci rost de^x03 Membru VIP^x01 si nu stii cum? Tasteaza^x03 /wantvip^x01 !!!", g_szTag );
  541.  
  542.         set_task( get_pcvar_float( g_cvar_show_msgs ) * 1.2, "task_PrintVipList", id );
  543. }
  544.  
  545. public task_PrintVipList( user ) {
  546.  
  547.         new szAdminNames[ 33 ][ 32 ];
  548.         new szMessage[ 256 ];
  549.         new iCount, iLen;
  550.        
  551.         for( new id = 1 ; id <= g_iMaxPlayers ; id++ )
  552.                 if( is_user_connected( id ) )
  553.                         if( is_user_vip( id ) )
  554.                                 get_user_name( id, szAdminNames[ iCount++ ], 31 );
  555.  
  556.         iLen = format( szMessage, 255, "%sVIP's Online: ", COLORG );
  557.  
  558.         if( iCount > 0 ) {
  559.  
  560.                 for( new i = 0 ; i < iCount ; i++ ) {
  561.  
  562.                         iLen += format( szMessage[ iLen ], 255 - iLen, "^x03%s^x01 | ", szAdminNames[ i ], COLORT, COLORD );
  563.  
  564.                         if( iLen > 96 ) {
  565.  
  566.                                 print_message( user, szMessage );
  567.                                 iLen = format( szMessage, 255, "%s", COLORG );
  568.                         }
  569.                 }
  570.  
  571.                 print_message( user, szMessage );
  572.         } else {
  573.  
  574.                 iLen += format( szMessage[ iLen ], 255 - iLen, "^x01Nu sunt VIP-i online.", COLORD );
  575.                 print_message( user, szMessage );
  576.         }
  577. }
  578.  
  579. public Ham_ResetMaxSpeedPost( id ) {
  580.  
  581.         if( is_user_alive( id ) && is_user_vip( id ) && get_user_maxspeed( id ) != 1.0 ) {
  582.  
  583.                 new Float:flMaxSpeed;
  584.  
  585.                 if( g_bUserHas[ id ][ Speed ] )
  586.                         flMaxSpeed = float( get_pcvar_num( g_cvar_speed_spawn ) );
  587.  
  588.                 if( flMaxSpeed > 0.0 )
  589.                         set_pev( id, pev_maxspeed, flMaxSpeed );
  590.         }
  591. }
  592.  
  593. public Ham_TakeDamagePre( iVictim, iInflictor, iAttacker, Float:fDamage ) {
  594.  
  595.         if( iVictim == iAttacker || !is_user_player( iAttacker ) || !is_user_alive( iAttacker ) || is_user_bot( iAttacker ) )
  596.                 return HAM_HANDLED;
  597.  
  598.         if( is_user_vip( iAttacker ) && is_user_player( iAttacker ) )
  599.                 SetHamParamFloat( 4, fDamage * get_pcvar_float( g_cvar_multidmg ) );
  600.  
  601.         return HAM_IGNORED;
  602. }
  603.  
  604. public MessageScoreAttrib( iMsgId, iMsgDest, id ) {
  605.  
  606.         if( get_pcvar_num( g_cvar_ebable_vip_scoreboard ) > 0 ) {
  607.  
  608.                 new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
  609.        
  610.                 if( access( iPlayer, read_flags( g_szVipFlags ) ) )
  611.                         set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
  612.         }
  613. }
  614.  
  615. public MessageScreenFade( iMsgId, iMsgDest, id ) {
  616.  
  617.         if( is_user_vip( id ) && is_user_alive( id ) && get_pcvar_num( g_cvar_enable_vip_noflash ) ) {
  618.  
  619.                 static szData[ 4 ];
  620.  
  621.                 szData[ 0 ] = get_msg_arg_int( 4 );
  622.                 szData[ 1 ] = get_msg_arg_int( 5 );
  623.                 szData[ 2 ] = get_msg_arg_int( 6 );
  624.                 szData[ 3 ] = get_msg_arg_int( 7 );
  625.                
  626.                 if( szData[ 0 ] == 255 && szData[ 1 ] == 255 && szData[ 2 ] == 255 && szData[ 3] > 199 )
  627.                         return 1;
  628.         }
  629.  
  630.         return 0;
  631. }
  632.  
  633. public check_time(  ) {
  634.  
  635.         static preluare_ora[ 3 ], ora;
  636.         get_time( "%H", preluare_ora, 2 );
  637.  
  638.         ora = str_to_num( preluare_ora );
  639.  
  640.         if( FIRST_HOUR >= ora || ora < LAST_HOUR ) {
  641.  
  642.                 if( !VipEvent )
  643.                         ColorChat( 0, GREEN, "^x04%s^x01 The event^x03 Free VIP^x01 has been activated!", g_szTag );
  644.  
  645.                 VipEvent = true;
  646.                 server_cmd( "amx_default_access ^"t^"" );
  647.         } else {
  648.  
  649.                 if( VipEvent )
  650.                         ColorChat( 0, GREEN, "^x04%s^x01 The event^x03 Free VIP^x01 has been activated!", g_szTag );
  651.  
  652.                 VipEvent = false;
  653.                 server_cmd( "amx_default_access ^"z^"" );
  654.         }
  655.  
  656.         server_cmd( "amx_reloadadmins" );
  657. }
  658.  
  659. public hud_mess(  ) {
  660.  
  661.         if( VipEvent ) {
  662.  
  663.                 set_hudmessage( 200, 200, 10, -1.0, 0.0, 1, 1.0, 1.0, 0.1, 0.1 );
  664.                 show_hudmessage( 0, "FREE V.I.P EVENT IS ONLINE UNTILL 10 AM !!!" );
  665.         }
  666. }
  667.  
  668. public ShowAbilityForVip( id ) {
  669.  
  670.         new iCfgDir[ 32 ], iFile[ 192 ];
  671.        
  672.         get_configsdir( iCfgDir, charsmax( iCfgDir ) );
  673.         formatex( iFile, charsmax( iFile ), "%s/vip.html", iCfgDir );
  674.  
  675.         show_motd( id, iFile );
  676. }
  677.  
  678. public ClCmdAddVips( id, level, cid ) {
  679.  
  680.         if( !cmd_access( id, level, cid, 2 ) )
  681.                 return 1;
  682.  
  683.         new szTarget[ 32 ];
  684.         read_argv( 1, szTarget, 31 );
  685.  
  686.         new iPlayer = cmd_target( id, szTarget, 8 );
  687.  
  688.         if( !iPlayer )
  689.                 return 1;
  690.  
  691.         new szPlayerName[ 32 ], szAdminName[ 32 ];
  692.         get_user_name( iPlayer, szPlayerName, charsmax( szPlayerName ) );
  693.         get_user_name( id, szAdminName, charsmax( szAdminName ) );
  694.  
  695.         AddVIP( id, szPlayerName, VIP_FLAGS, VIP_PASSWORD, VIP_FLAGS_TYPE, szAdminName );
  696.         server_cmd( "amx_reloadadmins" );
  697.  
  698.         console_print( id, "%s Vip-ul a fost adaugat in lista!", g_szTag );
  699.         ColorChat( 0, GREEN, "^x04%s^x01 Adminul^x03 %s^x01 l-a adaugat ca VIP pe^x03 %s^x01 !", g_szTag, szAdminName, iPlayer );
  700.         ColorChat( iPlayer, GREEN, "^x04%s^x01 Felicitari! Ai fost adaugat ca membru^x03 VIP^x01! VIP-ul se va activa harta viitoare!", g_szTag );
  701.  
  702.         return 1;
  703. }
  704.  
  705. stock bool:is_user_vip( id ) {
  706.  
  707.         if( get_user_flags( id ) & read_flags( g_szVipFlags ) )
  708.                 return true;
  709.        
  710.         return false;
  711. }
  712.  
  713. // stocks from "fakemeta_util"
  714. stock fm_give_item( index, const item[  ] ) {
  715.  
  716.         if( !equal( item, "weapon_", 7 ) && !equal( item, "ammo_", 5 ) && !equal( item, "item_", 5 ) && !equal( item, "tf_weapon_", 10 ) )
  717.                 return 0;
  718.  
  719.         new ent = fm_create_entity( item );
  720.  
  721.         if( !pev_valid( ent ) )
  722.                 return 0;
  723.  
  724.         new Float:fOrigin[ 3 ];
  725.         pev( index, pev_origin, fOrigin );
  726.  
  727.         set_pev( ent, pev_origin, fOrigin );
  728.         set_pev( ent, pev_spawnflags, pev( ent, pev_spawnflags ) | SF_NORESPAWN );
  729.  
  730.         dllfunc( DLLFunc_Spawn, ent );
  731.  
  732.         new save = pev( ent, pev_solid );
  733.  
  734.         dllfunc( DLLFunc_Touch, ent, index );
  735.  
  736.         if( pev( ent, pev_solid ) != save )
  737.                 return ent;
  738.  
  739.         engfunc( EngFunc_RemoveEntity, ent );
  740.  
  741.         return -1;
  742. }
  743.  
  744. stock fm_set_user_maxspeed( index, Float:speed = -1.0 ) {
  745.  
  746.         engfunc( EngFunc_SetClientMaxspeed, index, speed );
  747.  
  748.         set_pev( index, pev_maxspeed, speed );
  749.  
  750.         return 1;
  751. }
  752.  
  753. stock Float:fm_get_user_maxspeed( index ) {
  754.  
  755.         new Float:speed;
  756.         pev( index, pev_maxspeed, speed );
  757.  
  758.         return speed;
  759. }
  760.  
  761. stock fm_set_rendering( entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16 ) {
  762.  
  763.         new Float:RenderColor[ 3 ];
  764.         RenderColor[ 0 ] = float( r );
  765.         RenderColor[ 1 ] = float( g );
  766.         RenderColor[ 2 ] = float( b );
  767.  
  768.         set_pev( entity, pev_renderfx, fx );
  769.         set_pev( entity, pev_rendercolor, RenderColor );
  770.         set_pev( entity, pev_rendermode, render );
  771.         set_pev( entity, pev_renderamt, float( amount ) );
  772.  
  773.         return 1;
  774. }
  775.  
  776. stock fm_create_entity( const classname[  ] )
  777.         return engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, classname ) );
  778.  
  779. AddVIP( id, name[  ], accessflags[  ], password[  ], flags[  ], comment[  ]="" ) {
  780.  
  781. #if defined USING_SQL
  782.         new error[ 128 ], errno;
  783.  
  784.         new Handle:info = SQL_MakeStdTuple(  );
  785.         new Handle:sql = SQL_Connect( info, errno, error, 127 );
  786.  
  787.         if( sql == Empty_Handle ) {
  788.  
  789.                 server_print( "[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error );
  790. #endif
  791.                 // Make sure that the users.ini file exists.
  792.                 new configsDir[ 64 ];
  793.                 get_configsdir( configsDir, 63 );
  794.                 format( configsDir, 63, "%s/users.ini", configsDir );
  795.  
  796.                 if( !file_exists( configsDir ) ) {
  797.  
  798.                         console_print( id, "%s File ^"%s^" doesn't exist.", g_szTag, configsDir );
  799.                         return;
  800.                 }
  801.  
  802.                 // Make sure steamid isn't already in file.
  803.                 new line = 0, textline[ 256 ], len;
  804.                 const SIZE = 63;
  805.                 new line_steamid[ SIZE + 1 ], line_password[ SIZE + 1 ], line_accessflags[ SIZE + 1 ], line_flags[ SIZE + 1 ], parsedParams;
  806.  
  807.                 // <name|ip|steamid> <password> <access flags> <account flags>
  808.                 while( ( line = read_file( configsDir, line, textline, 255, len ) ) ) {
  809.  
  810.                         if ( len == 0 || equal( textline, ";", 1 ) )
  811.                                 continue; // comment line
  812.  
  813.                         parsedParams = parse( textline, line_steamid, SIZE, line_password, SIZE, line_accessflags, SIZE, line_flags, SIZE );
  814.  
  815.                         if( parsedParams != 4 )
  816.                                 continue;       // Send warning/error?
  817.                        
  818.                         if( containi( line_flags, flags ) != -1 && equal( line_steamid, name ) ) {
  819.  
  820.                                 console_print( id, "%s %s already exists!", g_szTag, name );
  821.                                 return;
  822.                         }
  823.                 }
  824.        
  825.                 // If we came here, steamid doesn't exist in users.ini. Add it.
  826.                 new linetoadd[ 512 ];
  827.                
  828.                 if( comment[ 0 ]==0 )
  829.                         formatex( linetoadd, 511, "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", name, password, accessflags, flags );
  830.  
  831.                 else
  832.                         formatex( linetoadd, 511, "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^" ; %s", name, password, accessflags, flags, comment );
  833.  
  834.                 console_print( id, "Adding:^n%s", linetoadd );
  835.                
  836.                 if( !write_file( configsDir, linetoadd ) )
  837.                         console_print( id, "%s Failed writing to %s!", g_szTag, configsDir );
  838. #if defined USING_SQL
  839.         }
  840.        
  841.         new table[ 32 ];
  842.  
  843.         get_cvar_string( "amx_sql_table", table, 31 );
  844.  
  845.         new Handle:query = SQL_PrepareQuery( sql, "SELECT * FROM `%s` WHERE (`auth` = '%s')", table, name );
  846.        
  847.         if( !SQL_Execute( query ) ) {
  848.  
  849.                 SQL_QueryError( query, error, 127 );
  850.                 server_print( "[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error );
  851.                 console_print( id, "[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error );
  852.         }
  853.                
  854.         else if( SQL_NumResults( query ) )
  855.                 console_print( id, "%s %s already exists!", g_szTag, name );
  856.  
  857.         else {
  858.  
  859.                 console_print( id, "Adding to database:^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", name, password, accessflags, flags );
  860.  
  861.                 SQL_QueryAndIgnore( sql, "REPLACE INTO `%s` (`name`, `password`, `access`, `flags`) VALUES ('%s', '%s', '%s', '%s')", table, name, password, accessflags, flags );
  862.         }
  863.  
  864.         SQL_FreeHandle( query );
  865.         SQL_FreeHandle( sql);
  866.         SQL_FreeHandle( info );
  867. #endif
  868. }
  869.  
  870. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  871. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
  872. */
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top