Facebook
From Hot Hog, 11 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 107
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <fun>
  5.  
  6. #define DAMAGE_RECIEVED
  7.  
  8. static const COLOR[] = "^x04" //green
  9. static const COLOR1[] = "^x03" //green
  10. static const CONTACT[] = ""
  11.  
  12. new maxplayers
  13. new gmsgSayText
  14. new mpd, mkb, mhb
  15. new g_MsgSync
  16. new health_add
  17. new health_hs_add
  18. new health_max
  19. new nKiller
  20. new nKiller_hp
  21. new nHp_add
  22. new nHp_max
  23. new g_awp_active
  24. new g_menu_active
  25. new CurrentRound
  26. new bool:HasC4[33]
  27.  
  28. #define Keysrod (1<<0)|(1<<1)|(1<<2)|(1<<9) // Keys: 1234567890
  29.  
  30. #if defined DAMAGE_RECIEVED
  31.         new g_MsgSync2
  32. #endif
  33.  
  34.  
  35. new const g_szFileName [ ] = "GOLD.ini"
  36. new g_szFile[ 128 ]
  37. new Trie: g_tVipList
  38. new bool: g_bIsVip[ 33 ]
  39.  
  40.  
  41. public plugin_init()
  42. {
  43.         register_plugin("VIP Eng Version", "3.0", "Dunno")
  44.         mpd = register_cvar("money_per_damage","3")
  45.         mkb = register_cvar("money_kill_bonus","500")
  46.         mhb = register_cvar("money_hs_bonus","1000")
  47.         health_add = register_cvar("amx_vip_hp", "15")
  48.         health_hs_add = register_cvar("amx_vip_hp_hs", "20")
  49.         health_max = register_cvar("amx_vip_max_hp", "100")
  50.         g_awp_active = register_cvar("awp_active", "0")
  51.         g_menu_active = register_cvar("menu_active", "1")
  52.         register_event("Damage","Damage","b")
  53.         register_event("DeathMsg","death_msg","a")
  54.         register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")
  55.         register_clcmd("awp","HandleCmd")
  56.         register_clcmd("sg550","HandleCmd")
  57.         register_clcmd("g3sg1","HandleCmd")
  58.         register_clcmd("say /wantvip","ShowMotd")
  59.         maxplayers = get_maxplayers()
  60.         gmsgSayText = get_user_msgid("SayText")
  61.         register_clcmd("say", "handle_say")
  62.         register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
  63.         register_logevent("LogEvent_RoundStart", 2, "1=Round_Start" );
  64.         register_event("TextMsg","Event_RoundRestart","a","2&#Game_w")
  65.         register_event("TextMsg","Event_RoundRestart","a","2&#Game_C");
  66.         register_event("DeathMsg", "hook_death", "a", "1>0")
  67.         register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
  68.         g_MsgSync = CreateHudSyncObj()
  69.  
  70. #if defined DAMAGE_RECIEVED
  71.         g_MsgSync2 = CreateHudSyncObj()
  72. #endif 
  73. }
  74.  
  75.  
  76. public plugin_precache( )
  77. {
  78.    g_tVipList = TrieCreate( )
  79. }
  80.  
  81. public plugin_cfg( )
  82. {
  83.    new szDir[ 128  ];
  84.    get_configsdir( szDir, charsmax( szDir ) );
  85.    
  86.     formatex( g_szFile, 127, "%s/%s", g_szFile, g_szFileName );
  87.    
  88.    if ( !file_exists( g_szFile ) )
  89.    {
  90.       new fp = fopen( g_szFile, "a+" );
  91.       if( fp )
  92.       {
  93.          fputs( fp, "; ===========================================================^n" );
  94.          fputs( fp, "; --------------------- VIP LIST ----------------------------^n" );
  95.          fputs( fp, "; ===========================================================^n" );
  96.          fputs( fp, "; Nota: Incepe randul cu ^";^" pentru a dezactiva un VIP^n" );
  97.          fputs( fp, "^b" );
  98.       }
  99.      
  100.       fclose( fp );
  101.    }
  102.    
  103.    ReadIniFile( )
  104. }
  105.  
  106. public plugin_end( )
  107. {
  108.    TrieDestroy( g_tVipList )
  109. }
  110.  
  111. ReadIniFile( )
  112. {
  113.    new fp = fopen( g_szFile , "rt" );
  114.    if( !fp )
  115.    {
  116.       return 0;
  117.    }
  118.    
  119.    new szData[ 256 ], i;
  120.    
  121.    while( !feof( fp ) )
  122.    {
  123.       fgets( fp, szData, charsmax( szData ) );
  124.       trim( szData );
  125.      
  126.       if( !szData[ 0 ] || szData[ 0 ] == ';' || szData[ 0 ] == '#' || (szData[ 0 ] == '/' && szData[ 1 ] == '/'))
  127.       {
  128.          continue;
  129.       }
  130.      
  131.       TrieSetCell( g_tVipList, szData, i )
  132.       i ++
  133.    }
  134.    
  135.    return 0
  136. }
  137.  
  138. public client_putinserver( id )
  139. {
  140.    new szName[ 32 ]; get_user_name( id, szName, charsmax( szName ) )
  141.    if( TrieKeyExists( g_tVipList, szName ) )
  142.    {
  143.       g_bIsVip[ id ] = true
  144.    }
  145. }
  146.  
  147.  
  148. public on_damage(id)
  149. {
  150.         new attacker = get_user_attacker(id)
  151.  
  152. #if defined DAMAGE_RECIEVED
  153.         // id should be connected if this message is sent, but lets check anyway
  154.         if ( is_user_connected(id) && is_user_connected(attacker) )
  155.         if (g_bIsVip[attacker])
  156.         {
  157.                 new damage = read_data(2)
  158.  
  159.                 set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
  160.                 ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
  161. #else
  162.         if ( is_user_connected(attacker) && g_bIsVip[attacker] )
  163.         {
  164.                 new damage = read_data(2)
  165. #endif
  166.                 set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
  167.                 ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
  168.         }
  169. }
  170.  
  171. public Damage(id)
  172. {
  173.         new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
  174.         if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
  175.         if (g_bIsVip[attacker])
  176.         {
  177.                 new money = read_data(2) * get_pcvar_num(mpd)
  178.                 if(hitpoint==1) money += get_pcvar_num(mhb)
  179.                 cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
  180.         }
  181. }
  182.  
  183. public death_msg()
  184. {
  185.         if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)&&g_bIsVip[read_data(1)]) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
  186. }
  187.  
  188. public LogEvent_RoundStart()
  189. {
  190.         CurrentRound++;
  191.         new players[32], player, pnum;
  192.         get_players(players, pnum, "a");
  193.         for(new i = 0; i < pnum; i++)
  194.         {
  195.                 player = players[i];
  196.                 if(is_user_alive(player) && g_bIsVip[player])
  197.                 {
  198.                         give_item(player, "weapon_hegrenade")
  199.                         give_item(player, "weapon_flashbang")
  200.                         give_item(player, "weapon_flashbang")
  201.                         give_item(player, "item_assaultsuit")
  202.                         give_item(player, "item_thighpack")
  203.                         give_item(player,"weapon_deagle")
  204.                         give_item(player,"ammo_50ae")
  205.                         give_item(player,"ammo_50ae")
  206.                         give_item(player,"ammo_50ae")
  207.                         give_item(player,"ammo_50ae")
  208.                         give_item(player,"ammo_50ae")
  209.                         give_item(player,"ammo_50ae")
  210.                         give_item(player,"ammo_50ae")
  211.                        
  212.                         if (!get_pcvar_num(g_menu_active))
  213.                                 return PLUGIN_CONTINUE
  214.                        
  215.                         if(CurrentRound >= 2)
  216.                         {
  217.                                 Showrod(player);
  218.                         }
  219.                 }
  220.         }
  221.         return PLUGIN_HANDLED
  222. }
  223.  
  224. public Event_RoundRestart()
  225. {
  226.         CurrentRound=0;
  227. }
  228.  
  229. public hook_death()
  230. {
  231.    // Killer id
  232.    nKiller = read_data(1)
  233.    
  234.    if ( (read_data(3) == 1) && (read_data(5) == 0) )
  235.    {
  236.       nHp_add = get_pcvar_num (health_hs_add)
  237.    }
  238.    else
  239.       nHp_add = get_pcvar_num (health_add)
  240.    nHp_max = get_pcvar_num (health_max)
  241.    // Updating Killer HP
  242.    if(!g_bIsVip[nKiller])
  243.    return;
  244.  
  245.    nKiller_hp = get_user_health(nKiller)
  246.    nKiller_hp += nHp_add
  247.    // Maximum HP check
  248.    if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
  249.    set_user_health(nKiller, nKiller_hp)
  250.    // Hud message "Healed +15/+30 hp"
  251.    set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
  252.    show_hudmessage(nKiller, "Healed +%d hp", nHp_add)
  253.    // Screen fading
  254.    message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
  255.    write_short(1<<10)
  256.    write_short(1<<10)
  257.    write_short(0x0000)
  258.    write_byte(0)
  259.    write_byte(0)
  260.    write_byte(200)
  261.    write_byte(75)
  262.    message_end()
  263.  
  264. }
  265.  
  266. public Showrod(id) {
  267.         show_menu(id, Keysrod, "GOLD VIP^n\w1. Get M4A1+Deagle^n\w2. Get AK47+Deagle^n\w3. Get AWP+Deagle^n0. Exit^n", -1, "rod") // Display menu
  268. }
  269.  
  270. public Pressedrod(id, key) {
  271.         /* Menu:
  272.         * VIP Menu
  273.         * 1. Get M4A1+Deagle
  274.         * 2. Get AK47+Deagle
  275.         * 3. Get AWP+Deagle
  276.         * 0. Exit
  277.         */
  278.         switch (key) {
  279.                 case 0: {
  280.                         if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
  281.                                 HasC4[id] = true;
  282.                         else
  283.                                 HasC4[id] = false;
  284.            
  285.                         strip_user_weapons (id)
  286.                         give_item(id,"weapon_m4a1")
  287.                         give_item(id,"ammo_556nato")
  288.                         give_item(id,"ammo_556nato")
  289.                         give_item(id,"ammo_556nato")
  290.                         give_item(id,"weapon_deagle")
  291.                         give_item(id,"ammo_50ae")
  292.                         give_item(id,"ammo_50ae")
  293.                         give_item(id,"ammo_50ae")
  294.                         give_item(id,"ammo_50ae")
  295.                         give_item(id,"ammo_50ae")
  296.                         give_item(id,"ammo_50ae")
  297.                         give_item(id,"ammo_50ae")
  298.                         give_item(id,"weapon_knife")
  299.                         give_item(id,"weapon_hegrenade")
  300.                         give_item(id, "weapon_flashbang");
  301.                         give_item(id, "weapon_flashbang");
  302.                         give_item(id, "item_assaultsuit");
  303.                         give_item(id, "item_thighpack");
  304.                         client_print(id, print_center, "You Taked Free M4A1 and Deagle")
  305.                        
  306.                         if (HasC4[id])
  307.                         {
  308.                                 give_item(id, "weapon_c4");
  309.                                 cs_set_user_plant( id );
  310.                         }
  311.                         }
  312.                 case 1: {
  313.                         if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
  314.                                 HasC4[id] = true;
  315.                         else
  316.                                 HasC4[id] = false;
  317.            
  318.                         strip_user_weapons (id)
  319.                         give_item(id,"weapon_ak47")
  320.                         give_item(id,"ammo_762nato")
  321.                         give_item(id,"ammo_762nato")
  322.                         give_item(id,"ammo_762nato")
  323.                         give_item(id,"weapon_deagle")
  324.                         give_item(id,"ammo_50ae")
  325.                         give_item(id,"ammo_50ae")
  326.                         give_item(id,"ammo_50ae")
  327.                         give_item(id,"ammo_50ae")
  328.                         give_item(id,"ammo_50ae")
  329.                         give_item(id,"ammo_50ae")
  330.                         give_item(id,"ammo_50ae")
  331.                         give_item(id,"weapon_knife")
  332.                         give_item(id,"weapon_hegrenade")
  333.                         give_item(id, "weapon_flashbang");
  334.                         give_item(id, "weapon_flashbang");
  335.                         give_item(id, "item_assaultsuit");
  336.                         give_item(id, "item_thighpack");
  337.                         client_print(id, print_center, "You Taked Free AK47 and Deagle")
  338.                        
  339.                         if (HasC4[id])
  340.                         {
  341.                                 give_item(id, "weapon_c4");
  342.                                 cs_set_user_plant( id );
  343.                         }
  344.                         }
  345.                 case 2: {
  346.                         if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
  347.                                 HasC4[id] = true;
  348.                         else
  349.                                 HasC4[id] = false;
  350.            
  351.                         strip_user_weapons (id)
  352.                         give_item(id,"weapon_awp")
  353.                         give_item(id,"ammo_338magnum")
  354.                         give_item(id,"ammo_338magnum")
  355.                         give_item(id,"ammo_338magnum")
  356.                         give_item(id,"weapon_deagle")
  357.                         give_item(id,"ammo_50ae")
  358.                         give_item(id,"ammo_50ae")
  359.                         give_item(id,"ammo_50ae")
  360.                         give_item(id,"ammo_50ae")
  361.                         give_item(id,"ammo_50ae")
  362.                         give_item(id,"ammo_50ae")
  363.                         give_item(id,"ammo_50ae")
  364.                         give_item(id,"weapon_knife")
  365.                         give_item(id,"weapon_hegrenade")
  366.                         give_item(id, "weapon_flashbang");
  367.                         give_item(id, "weapon_flashbang");
  368.                         give_item(id, "item_assaultsuit");
  369.                         give_item(id, "item_thighpack");
  370.                         client_print(id, print_center, "You Taked Free AWP and Deagle")
  371.                        
  372.                         if (HasC4[id])
  373.                         {
  374.                                 give_item(id, "weapon_c4");
  375.                                 cs_set_user_plant( id );
  376.                         }
  377.                         }
  378.                 case 9: {                      
  379.                 }
  380.         }
  381.         return PLUGIN_CONTINUE
  382. }
  383.  
  384. public HandleCmd(id){
  385.         if (!get_pcvar_num(g_awp_active))
  386.       return PLUGIN_CONTINUE
  387.         if(!g_bIsVip[id])
  388.                 return PLUGIN_HANDLED
  389.         client_print(id, print_center, "Sniper's Only For VIP's")
  390.         return PLUGIN_HANDLED
  391. }
  392.  
  393. public ShowMotd(id)
  394. {
  395.  show_motd(id, "vip.txt")
  396. }
  397. public client_authorized(id)
  398. {
  399.  set_task(30.0, "PrintText" ,id)
  400. }
  401. public PrintText(id)
  402. {
  403.  client_print(id, print_chat, "[VIP] write /wantvip and u will see how get VIP and VIP privilegies.")
  404. }
  405.  
  406. public handle_say(id) {
  407.         new said[192]
  408.         read_args(said,192)
  409.         if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
  410.                 set_task(0.1,"print_adminlist",id)
  411.         return PLUGIN_CONTINUE
  412. }
  413.  
  414. public print_adminlist(user)
  415. {
  416.         new adminnames[33][32]
  417.         new message[256]
  418.         new contactinfo[256], contact[112]
  419.         new id, count, x, len
  420.        
  421.         for(id = 1 ; id <= maxplayers ; id++)
  422.                 if(is_user_connected(id))
  423.                         if(g_bIsVip[id])
  424.                                 get_user_name(id, adminnames[count++], 31)
  425.  
  426.         len = format(message, 255, "%s GOLD V.I.P: ",COLOR)
  427.         if(count > 0) {
  428.                 for(x = 0 ; x < count ; x++) {
  429.                         len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
  430.                         if(len > 96 ) {
  431.                                 print_message(user, message)
  432.                                 len = format(message, 255, "%s ",COLOR1)
  433.                         }
  434.                 }
  435.                 print_message(user, message)
  436.         }
  437.         else {
  438.                 len += format(message[len], 255-len, "No VIP online.")
  439.                 print_message(user, message)
  440.         }
  441.        
  442.         get_cvar_string("amx_contactinfo", contact, 63)
  443.         if(contact[0])  {
  444.                 format(contactinfo, 111, "%s Contact Server Admin -- %s", COLOR, contact)
  445.                 print_message(user, contactinfo)
  446.         }
  447. }
  448.  
  449. print_message(id, msg[]) {
  450.         message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  451.         write_byte(id)
  452.         write_string(msg)
  453.         message_end()
  454. }
  455.  
  456.  
  457. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  458. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1063\\ f0\\ fs16 \n\\ par }
  459. */
  460.