Advertisement
mforce

Weap Kills

Feb 24th, 2016
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 34.82 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <engine>
  3. #include <hamsandwich>
  4. #include <cstrike>
  5. #include <sqlx>
  6.  
  7. #define PLUGIN "Weap kills"
  8. #define VERSION "1.666"
  9. #define AUTHOR "mforce"
  10.  
  11. // Modellek letöltése: https://mega.nz/#!nsoTQYDJ!Mkh1q1_EQBg790oyxdXNXb6amsm6yMgH3jSlAMI9XCQ
  12.  
  13. new const PREFIX[] = "WorldSniper";
  14.  
  15. #define KILL_POINT 1
  16. #define HEADSHOT_POINT 2
  17.  
  18. new const SQL_INFO[][] = {
  19.     "127.0.0.1",    // HOST
  20.     "username",     // USERNAME
  21.     "password",     // PASSWORD
  22.     "database"      // DATABASE
  23. }
  24.  
  25. new Handle:g_SqlTuple;
  26.  
  27. new const POINTS[] = {
  28.     500,        // Rusty Snipers,   0. elem
  29.     1000,       // Silver Snipers,  1.
  30.     2000,       // Gold Snipers,    2.
  31.     100,        // Rusty Pistols,   3.
  32.     200,        // Silver Pistols,  4.
  33.     300,        // Gold Pistols,    5.
  34.     50,     // Rusty Knife,     6.
  35.     100,        // Silver Knife,    7.
  36.     150     // Gold Knife,      8.
  37. };
  38.  
  39. enum _:PLAYER_DATABASE
  40. {
  41.     USERNAME[32],
  42.     AWP_KILLS,
  43.     SCOUT_KILLS,
  44.     DEAGLE_KILLS,
  45.     USP_KILLS,
  46.     GLOCK_KILLS,
  47.     KNIFE_KILLS,
  48.     AWP_MENU,
  49.     SCOUT_MENU,
  50.     DEAGLE_MENU,
  51.     USP_MENU,
  52.     GLOCK_MENU,
  53.     KNIFE_MENU
  54. }
  55.  
  56. new player_data[33][PLAYER_DATABASE];
  57.  
  58. public plugin_init() {
  59.     register_plugin(PLUGIN, VERSION, AUTHOR)
  60.     register_cvar("weap_kills", AUTHOR, FCVAR_SERVER | FCVAR_SPONLY);
  61.     register_clcmd("say /menu", "ShowMenu")
  62.     register_event("DeathMsg", "halal", "a")
  63.     new const WEAPONENTNAMES[][] = {"weapon_awp", "weapon_scout", "weapon_deagle", "weapon_usp", "weapon_glock18", "weapon_knife"};
  64.     for(new i; i < sizeof(WEAPONENTNAMES); i++) {
  65.         RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "OnItemDeployPost", 1);
  66.     }
  67.     set_task(172.0, "pontrendszerfut", 0, _, _, "b");
  68. }
  69.  
  70. new const fegyverek[][] = {
  71.     "models/weap_skins/p_rozsdas_awp.mdl",      // 0. elem
  72.     "models/weap_skins/v_rozsdas_awp.mdl",      // 1
  73.     "models/weap_skins/p_silver_awp.mdl",       // 2
  74.     "models/weap_skins/v_silver_awp.mdl",       // 3
  75.     "models/weap_skins/p_arany_awp.mdl",        // 4
  76.     "models/weap_skins/v_arany_awp.mdl",        // 5
  77.     "models/weap_skins/p_rozsdas_scout.mdl",    // 6
  78.     "models/weap_skins/v_rozsdas_scout.mdl",    // 7
  79.     "models/weap_skins/p_silver_scout.mdl",     // 8
  80.     "models/weap_skins/v_silver_scout.mdl",     // 9
  81.     "models/weap_skins/p_arany_scout.mdl",      // 10
  82.     "models/weap_skins/v_arany_scout.mdl",      // 11
  83.     "models/weap_skins/p_rozsdas_deagle.mdl",   // 12
  84.     "models/weap_skins/v_rozsdas_deagle.mdl",   // 13
  85.     "models/weap_skins/p_silver_deagle.mdl",    // 14
  86.     "models/weap_skins/v_silver_deagle.mdl",    // 15
  87.     "models/weap_skins/p_arany_deagle.mdl",     // 16
  88.     "models/weap_skins/v_arany_deagle.mdl",     // 17
  89.     "models/weap_skins/p_rozsdas_usp.mdl",      // 18
  90.     "models/weap_skins/v_rozsdas_usp.mdl",      // 19
  91.     "models/weap_skins/p_silver_usp.mdl",       // 20
  92.     "models/weap_skins/v_silver_usp.mdl",       // 21
  93.     "models/weap_skins/p_arany_usp.mdl",        // 22
  94.     "models/weap_skins/v_arany_usp.mdl",        // 23
  95.     "models/weap_skins/p_rozsdas_glock.mdl",    // 24
  96.     "models/weap_skins/v_rozsdas_glock.mdl",    // 25
  97.     "models/weap_skins/p_silver_glock.mdl",     // 26
  98.     "models/weap_skins/v_silver_glock.mdl",     // 27
  99.     "models/weap_skins/p_arany_glock.mdl",      // 28
  100.     "models/weap_skins/v_arany_glock.mdl",      // 29
  101.     "models/weap_skins/p_rozsdas_knife.mdl",    // 30
  102.     "models/weap_skins/v_rozsdas_knife.mdl",    // 31
  103.     "models/weap_skins/p_silver_knife.mdl",     // 32
  104.     "models/weap_skins/v_silver_knife.mdl",     // 33
  105.     "models/weap_skins/p_arany_knife.mdl",      // 34
  106.     "models/weap_skins/v_arany_knife.mdl"       // 35
  107. };
  108.  
  109. public OnItemDeployPost(ent) {
  110.     new id = entity_get_edict(ent, EV_ENT_owner);
  111.    
  112.     if(id) {
  113.         new weap = cs_get_weapon_id(ent);
  114.        
  115.         switch(weap) {
  116.             case CSW_AWP: {
  117.                 switch(player_data[id][AWP_MENU]) {
  118.                     case 1: {
  119.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[0])  // p_modell
  120.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[1])    // v_modell
  121.                     }
  122.                     case 2: {
  123.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[2])  // p_modell
  124.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[3])    // v_modell
  125.                     }
  126.                     case 3: {
  127.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[4])  // p_modell
  128.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[5])    // v_modell
  129.                     }
  130.                 }
  131.             }
  132.             case CSW_SCOUT: {
  133.                 switch(player_data[id][SCOUT_MENU]) {
  134.                     case 1: {
  135.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[6])  // p_modell
  136.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[7])    // v_modell
  137.                     }
  138.                     case 2: {
  139.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[8])  // p_modell
  140.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[9])    // v_modell
  141.                     }
  142.                     case 3: {
  143.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[10]) // p_modell
  144.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[11])   // v_modell
  145.                     }
  146.                 }
  147.             }
  148.             case CSW_DEAGLE: {
  149.                 switch(player_data[id][DEAGLE_MENU]) {
  150.                     case 1: {
  151.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[12]) // p_modell
  152.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[13])   // v_modell
  153.                     }
  154.                     case 2: {
  155.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[14]) // p_modell
  156.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[15])   // v_modell
  157.                     }
  158.                     case 3: {
  159.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[16]) // p_modell
  160.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[17])   // v_modell
  161.                     }
  162.                 }
  163.             }
  164.             case CSW_USP: {
  165.                 switch(player_data[id][USP_MENU]) {
  166.                     case 1: {
  167.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[18]) // p_modell
  168.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[19])   // v_modell
  169.                     }
  170.                     case 2: {
  171.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[20]) // p_modell
  172.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[21])   // v_modell
  173.                     }
  174.                     case 3: {
  175.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[22]) // p_modell
  176.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[23])   // v_modell
  177.                     }
  178.                 }
  179.             }
  180.             case CSW_GLOCK18: {
  181.                 switch(player_data[id][GLOCK_MENU]) {
  182.                     case 1: {
  183.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[24]) // p_modell
  184.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[25])   // v_modell
  185.                     }
  186.                     case 2: {
  187.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[26]) // p_modell
  188.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[27])   // v_modell
  189.                     }
  190.                     case 3: {
  191.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[28]) // p_modell
  192.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[29])   // v_modell
  193.                     }
  194.                 }
  195.             }
  196.             case CSW_KNIFE: {
  197.                 switch(player_data[id][KNIFE_MENU]) {
  198.                     case 1: {
  199.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[30]) // p_modell
  200.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[31])   // v_modell
  201.                     }
  202.                     case 2: {
  203.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[32]) // p_modell
  204.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[33])   // v_modell
  205.                     }
  206.                     case 3: {
  207.                         entity_set_string(id, EV_SZ_weaponmodel, fegyverek[34]) // p_modell
  208.                         entity_set_string(id, EV_SZ_viewmodel, fegyverek[35])   // v_modell
  209.                     }
  210.                 }
  211.             }
  212.         }
  213.     }
  214. }
  215.  
  216. public plugin_precache() {
  217.     for(new i; i<sizeof(fegyverek);i++) precache_model(fegyverek[i]);
  218. }
  219.  
  220. public halal() {
  221.     new killer = read_data(1);
  222.     new victim = read_data(2);
  223.     new headshot = read_data(3);
  224.  
  225.     if(killer != victim) {
  226.         new points = (headshot ? HEADSHOT_POINT:KILL_POINT);
  227.         new weapon[32]; read_data(4, weapon, charsmax(weapon));
  228.         format(weapon, charsmax(weapon), "weapon_%s", weapon);
  229.         new weapid = get_weaponid(weapon);
  230.        
  231.         switch(weapid) {
  232.             case CSW_AWP: player_data[killer][AWP_KILLS] += points;
  233.             case CSW_SCOUT: player_data[killer][SCOUT_KILLS] += points;
  234.             case CSW_DEAGLE: player_data[killer][DEAGLE_KILLS] += points;
  235.             case CSW_USP: player_data[killer][USP_KILLS] += points;
  236.             case CSW_GLOCK18:  player_data[killer][GLOCK_KILLS] += points;
  237.             case CSW_KNIFE: player_data[killer][KNIFE_KILLS] += points;
  238.         }
  239.        
  240.         set_hudmessage(0, 255, 0, -0.9, 0.15, 0, 6.0, 1.0);
  241.         show_hudmessage(killer, "+%i Ölés", points);
  242.     }
  243. }
  244.  
  245. public pontrendszerfut() ChatColor(0, "^4[%s]^1 Szerverünkön ^3Skincsomag Rendszer^1 fut, írd be: ^3/menu", PREFIX)
  246.  
  247. public ShowMenu(id) {
  248.     new temp[128];
  249.     formatex(temp, charsmax(temp), "\r[%s] \wFegyver Skinek", PREFIX);
  250.     new menu = menu_create(temp, "mh_MyMenu");
  251.  
  252.     formatex(temp, charsmax(temp), "AWP Skinek");
  253.     menu_additem(menu, temp, "0", 0);
  254.     formatex(temp, charsmax(temp), "Scout Skinek");
  255.     menu_additem(menu, temp, "1", 0);
  256.     formatex(temp, charsmax(temp), "Deagle Skinek");
  257.     menu_additem(menu, temp, "2", 0);
  258.     formatex(temp, charsmax(temp), "USP Skinek");
  259.     menu_additem(menu, temp, "3", 0);
  260.     formatex(temp, charsmax(temp), "Glock Skinek");
  261.     menu_additem(menu, temp, "4", 0);
  262.     formatex(temp, charsmax(temp), "Kés Skinek");
  263.     menu_additem(menu, temp, "5", 0);
  264.  
  265.  
  266.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  267.     menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  268.     menu_setprop(menu, MPROP_NEXTNAME, "Előre");
  269.     menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  270.  
  271.     menu_display(id, menu, 0);
  272.     return PLUGIN_HANDLED;
  273. }
  274.  
  275. public mh_MyMenu(id, menu, item) {
  276.     if(item == MENU_EXIT) {
  277.         menu_destroy(menu);
  278.         return PLUGIN_HANDLED;
  279.     }
  280.  
  281.     switch(item) {
  282.         case 0: awp_menu(id);
  283.         case 1: scout_menu(id);
  284.         case 2: deagle_menu(id);
  285.         case 3: usp_menu(id);
  286.         case 4: glock_menu(id);
  287.         case 5: knife_menu(id);
  288.     }
  289.    
  290.     menu_destroy(menu);
  291.     return PLUGIN_HANDLED;
  292. }
  293.  
  294. public awp_menu(id) {
  295.         new temp[128], temp2[64];
  296.         formatex(temp, charsmax(temp), "\r[%s] \wAWP Skinek ^nÖlések: \y%d", PREFIX, player_data[id][AWP_KILLS]);
  297.         new menu = menu_create(temp, "awp_handler");
  298.  
  299.         formatex(temp, charsmax(temp), "Alap AWP %s", player_data[id][AWP_MENU] == 0 ? "\y|AKTÍV|":"");
  300.         menu_additem(menu, temp, "0", 0);
  301.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[0]);
  302.         formatex(temp, charsmax(temp), "Rozsdás AWP %s", player_data[id][AWP_MENU] == 1 ? "\y|AKTÍV|":temp2);
  303.         menu_additem(menu, temp, "1", 0);
  304.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[1]);
  305.         formatex(temp, charsmax(temp), "Ezüst AWP %s", player_data[id][AWP_MENU] == 2 ? "\y|AKTÍV|":temp2);
  306.         menu_additem(menu, temp, "2", 0);
  307.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[2]);
  308.         formatex(temp, charsmax(temp), "Arany AWP %s", player_data[id][AWP_MENU] == 3 ? "\y|AKTÍV|":temp2);
  309.         menu_additem(menu, temp, "3", 0);
  310.  
  311.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  312.         menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  313.         menu_setprop(menu, MPROP_NEXTNAME, "Előre");
  314.         menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  315.  
  316.         menu_display(id, menu, 0);
  317.         return PLUGIN_HANDLED;
  318. }
  319. public awp_handler(id, menu, item) {
  320.         if(item == MENU_EXIT) {
  321.                 menu_destroy(menu);
  322.                 return PLUGIN_HANDLED;
  323.         }
  324.  
  325.         switch(item)
  326.         {
  327.                 case 0: {
  328.                         player_data[id][AWP_MENU] = 0;
  329.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  330.                 }
  331.                 case 1: {
  332.                         if(player_data[id][AWP_KILLS] >= POINTS[0]) {
  333.                         player_data[id][AWP_MENU] = 1;
  334.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  335.                         }
  336.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  337.                 }
  338.                 case 2: {
  339.                         if(player_data[id][AWP_KILLS] >= POINTS[1]) {
  340.                         player_data[id][AWP_MENU] = 2;
  341.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  342.                         }
  343.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  344.                 }
  345.                 case 3: {
  346.                         if(player_data[id][AWP_KILLS] >= POINTS[2]) {
  347.                         player_data[id][AWP_MENU] = 3;
  348.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  349.                         }
  350.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  351.                 }
  352.         }
  353.         menu_destroy(menu);
  354.         return PLUGIN_HANDLED;
  355. }
  356.  
  357. public scout_menu(id) {
  358.         new temp[128], temp2[64];
  359.         formatex(temp, charsmax(temp), "\r[%s] \wScout Skinek ^nÖlések: \y%d", PREFIX, player_data[id][SCOUT_KILLS]);
  360.         new menu = menu_create(temp, "scout_handler");
  361.  
  362.         formatex(temp, charsmax(temp), "Alap Scout %s", player_data[id][SCOUT_MENU] == 0 ? "\y|AKTÍV|":"");
  363.         menu_additem(menu, temp, "0", 0);
  364.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[0]);
  365.         formatex(temp, charsmax(temp), "Rozsdás Scout %s", player_data[id][SCOUT_MENU] == 1 ? "\y|AKTÍV|":temp2);
  366.         menu_additem(menu, temp, "1", 0);
  367.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[1]);
  368.         formatex(temp, charsmax(temp), "Ezüst Scout %s", player_data[id][SCOUT_MENU] == 2 ? "\y|AKTÍV|":temp2);
  369.         menu_additem(menu, temp, "2", 0);
  370.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[2]);
  371.         formatex(temp, charsmax(temp), "Arany Scout %s", player_data[id][SCOUT_MENU] == 3 ? "\y|AKTÍV|":temp2);
  372.         menu_additem(menu, temp, "3", 0);
  373.  
  374.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  375.         menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  376.         menu_setprop(menu, MPROP_NEXTNAME, "Előre");
  377.         menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  378.  
  379.         menu_display(id, menu, 0);
  380.         return PLUGIN_HANDLED;
  381. }
  382. public scout_handler(id, menu, item) {
  383.         if(item == MENU_EXIT)
  384.         {
  385.                 menu_destroy(menu);
  386.                 return PLUGIN_HANDLED;
  387.         }
  388.  
  389.         switch(item)
  390.         {
  391.                 case 0: {
  392.                         player_data[id][SCOUT_MENU] = 0;
  393.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  394.                 }
  395.                 case 1: {
  396.                         if(player_data[id][SCOUT_KILLS] >= POINTS[0]) {
  397.                         player_data[id][SCOUT_MENU] = 1;
  398.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  399.                         }
  400.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  401.                 }
  402.                 case 2: {
  403.                         if(player_data[id][SCOUT_KILLS] >= POINTS[1]) {
  404.                         player_data[id][SCOUT_MENU] = 2;
  405.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  406.                         }
  407.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  408.                 }
  409.                 case 3: {
  410.                         if(player_data[id][SCOUT_KILLS] >= POINTS[2]) {
  411.                         player_data[id][SCOUT_MENU] = 3;
  412.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  413.                         }
  414.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  415.                 }
  416.         }
  417.         menu_destroy(menu);
  418.         return PLUGIN_HANDLED;
  419. }
  420.  
  421. public deagle_menu(id) {
  422.         new temp[128], temp2[64];
  423.         formatex(temp, charsmax(temp), "\r[%s] \wDeagle Skinek ^nÖlések: \y%d", PREFIX, player_data[id][DEAGLE_KILLS]);
  424.         new menu = menu_create(temp, "deagle_handler");
  425.  
  426.         formatex(temp, charsmax(temp), "Alap Deagle %s", player_data[id][DEAGLE_MENU] == 0 ? "\y|AKTÍV|":"");
  427.         menu_additem(menu, temp, "0", 0);
  428.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[3]);
  429.         formatex(temp, charsmax(temp), "Rozsdás Deagle %s", player_data[id][DEAGLE_MENU] == 1 ? "\y|AKTÍV|":temp2);
  430.         menu_additem(menu, temp, "1", 0);
  431.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[4]);
  432.         formatex(temp, charsmax(temp), "Ezüst Deagle %s", player_data[id][DEAGLE_MENU] == 2 ? "\y|AKTÍV|":temp2);
  433.         menu_additem(menu, temp, "2", 0);
  434.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[5]);
  435.         formatex(temp, charsmax(temp), "Arany Deagle %s", player_data[id][DEAGLE_MENU] == 3 ? "\y|AKTÍV|":temp2);
  436.         menu_additem(menu, temp, "3", 0);
  437.  
  438.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  439.         menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  440.         menu_setprop(menu, MPROP_NEXTNAME, "Előre");
  441.         menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  442.  
  443.         menu_display(id, menu, 0);
  444.         return PLUGIN_HANDLED;
  445. }
  446. public deagle_handler(id, menu, item) {
  447.         if(item == MENU_EXIT)
  448.         {
  449.                 menu_destroy(menu);
  450.                 return PLUGIN_HANDLED;
  451.         }
  452.  
  453.         switch(item)
  454.         {
  455.                 case 0: {
  456.                         player_data[id][DEAGLE_MENU] = 0;
  457.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  458.                 }
  459.                 case 1: {
  460.                         if(player_data[id][DEAGLE_KILLS] >= POINTS[3]) {
  461.                         player_data[id][DEAGLE_MENU] = 1;
  462.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  463.                         }
  464.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  465.                 }
  466.                 case 2: {
  467.                         if(player_data[id][DEAGLE_KILLS] >= POINTS[4]) {
  468.                         player_data[id][DEAGLE_MENU] = 2;
  469.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  470.                         }
  471.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  472.                 }
  473.                 case 3: {
  474.                         if(player_data[id][DEAGLE_KILLS] >= POINTS[5]) {
  475.                         player_data[id][DEAGLE_MENU] = 3;
  476.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  477.                         }
  478.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  479.                 }
  480.         }
  481.         menu_destroy(menu);
  482.         return PLUGIN_HANDLED;
  483. }
  484.  
  485. public usp_menu(id) {
  486.         new temp[128], temp2[64];
  487.         formatex(temp, charsmax(temp), "\r[%s] \wUSP Skinek ^nÖlések: \y%d", PREFIX, player_data[id][USP_KILLS]);
  488.         new menu = menu_create(temp, "usp_handler");
  489.  
  490.         formatex(temp, charsmax(temp), "Alap USP %s", player_data[id][USP_MENU] == 0 ? "\y|AKTÍV|":"");
  491.         menu_additem(menu, temp, "0", 0);
  492.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[3]);
  493.         formatex(temp, charsmax(temp), "Rozsdás USP %s", player_data[id][USP_MENU] == 1 ? "\y|AKTÍV|":temp2);
  494.         menu_additem(menu, temp, "1", 0);
  495.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[4]);
  496.         formatex(temp, charsmax(temp), "Ezüst USP %s", player_data[id][USP_MENU] == 2 ? "\y|AKTÍV|":temp2);
  497.         menu_additem(menu, temp, "2", 0);
  498.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[5]);
  499.         formatex(temp, charsmax(temp), "Arany USP %s", player_data[id][USP_MENU] == 3 ? "\y|AKTÍV|":temp2);
  500.         menu_additem(menu, temp, "3", 0);
  501.  
  502.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  503.         menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  504.         menu_setprop(menu, MPROP_NEXTNAME, "Előre");
  505.         menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  506.  
  507.         menu_display(id, menu, 0);
  508.         return PLUGIN_HANDLED;
  509. }
  510. public usp_handler(id, menu, item) {
  511.         if(item == MENU_EXIT)
  512.         {
  513.                 menu_destroy(menu);
  514.                 return PLUGIN_HANDLED;
  515.         }
  516.  
  517.         switch(item)
  518.         {
  519.                 case 0: {
  520.                         player_data[id][USP_MENU] = 0;
  521.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  522.                 }
  523.                 case 1: {
  524.                         if(player_data[id][USP_KILLS] >= POINTS[3]) {
  525.                         player_data[id][USP_MENU] = 1;
  526.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  527.                         }
  528.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  529.                 }
  530.                 case 2: {
  531.                         if(player_data[id][USP_KILLS] >= POINTS[4]) {
  532.                         player_data[id][USP_MENU] = 2;
  533.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  534.                         }
  535.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  536.                 }
  537.                 case 3: {
  538.                         if(player_data[id][USP_KILLS] >= POINTS[5]) {
  539.                         player_data[id][USP_MENU] = 3;
  540.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  541.                         }
  542.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  543.                 }
  544.         }
  545.         menu_destroy(menu);
  546.         return PLUGIN_HANDLED;
  547. }
  548.  
  549. public glock_menu(id) {
  550.         new temp[128], temp2[64];
  551.         formatex(temp, charsmax(temp), "\r[%s] \wGlock Skinek ^nÖlések: \y%d", PREFIX, player_data[id][GLOCK_KILLS]);
  552.         new menu = menu_create(temp, "glock_handler");
  553.  
  554.         formatex(temp, charsmax(temp), "Alap Glock %s", player_data[id][GLOCK_MENU] == 0 ? "\y|AKTÍV|":"");
  555.         menu_additem(menu, temp, "0", 0);
  556.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[3]);
  557.         formatex(temp, charsmax(temp), "Rozsdás Glock %s", player_data[id][GLOCK_MENU] == 1 ? "\y|AKTÍV|":temp2);
  558.         menu_additem(menu, temp, "1", 0);
  559.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[4]);
  560.         formatex(temp, charsmax(temp), "Ezüst Glock %s", player_data[id][GLOCK_MENU] == 2 ? "\y|AKTÍV|":temp2);
  561.         menu_additem(menu, temp, "2", 0);
  562.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[5]);
  563.         formatex(temp, charsmax(temp), "Arany Glock %s", player_data[id][GLOCK_MENU] == 3 ? "\y|AKTÍV|":temp2);
  564.         menu_additem(menu, temp, "3", 0);
  565.  
  566.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  567.         menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  568.         menu_setprop(menu, MPROP_NEXTNAME, "Előre");
  569.         menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  570.  
  571.         menu_display(id, menu, 0);
  572.         return PLUGIN_HANDLED;
  573. }
  574. public glock_handler(id, menu, item) {
  575.         if(item == MENU_EXIT)
  576.         {
  577.                 menu_destroy(menu);
  578.                 return PLUGIN_HANDLED;
  579.         }
  580.  
  581.         switch(item)
  582.         {
  583.                 case 0: {
  584.                         player_data[id][GLOCK_MENU] = 0;
  585.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  586.                 }
  587.                 case 1: {
  588.                         if(player_data[id][GLOCK_KILLS] >= POINTS[3]) {
  589.                         player_data[id][GLOCK_MENU] = 1;
  590.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  591.                         }
  592.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  593.                 }
  594.                 case 2: {
  595.                         if(player_data[id][GLOCK_KILLS] >= POINTS[4]) {
  596.                         player_data[id][GLOCK_MENU] = 2;
  597.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  598.                         }
  599.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  600.                 }
  601.                 case 3: {
  602.                         if(player_data[id][GLOCK_KILLS] >= POINTS[5]) {
  603.                         player_data[id][GLOCK_MENU] = 3;
  604.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  605.                         }
  606.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  607.                 }
  608.         }
  609.         menu_destroy(menu);
  610.         return PLUGIN_HANDLED;
  611. }
  612.  
  613. public knife_menu(id) {
  614.         new temp[128], temp2[64];
  615.         formatex(temp, charsmax(temp), "\r[%s] \wKés Skinek ^nÖlések: \y%d", PREFIX, player_data[id][KNIFE_KILLS]);
  616.         new menu = menu_create(temp, "knife_handler");
  617.  
  618.         formatex(temp, charsmax(temp), "Alap Kés %s", player_data[id][KNIFE_MENU] == 0 ? "\y|AKTÍV|":"");
  619.         menu_additem(menu, temp, "0", 0);
  620.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[6]);
  621.         formatex(temp, charsmax(temp), "Rozsdás Kés %s", player_data[id][KNIFE_MENU] == 1 ? "\y|AKTÍV|":temp2);
  622.         menu_additem(menu, temp, "1", 0);
  623.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[7]);
  624.         formatex(temp, charsmax(temp), "Ezüst Kés %s", player_data[id][KNIFE_MENU] == 2 ? "\y|AKTÍV|":temp2);
  625.         menu_additem(menu, temp, "2", 0);
  626.         formatex(temp2, charsmax(temp2), "\r|%i| Ölés", POINTS[8]);
  627.         formatex(temp, charsmax(temp), "Arany Kés %s", player_data[id][KNIFE_MENU] == 3 ? "\y|AKTÍV|":temp2);
  628.         menu_additem(menu, temp, "3", 0);
  629.  
  630.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  631.         menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  632.         menu_setprop(menu, MPROP_NEXTNAME, "Előre");
  633.         menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  634.  
  635.         menu_display(id, menu, 0);
  636.         return PLUGIN_HANDLED;
  637. }
  638. public knife_handler(id, menu, item) {
  639.         if(item == MENU_EXIT)
  640.         {
  641.                 menu_destroy(menu);
  642.                 return PLUGIN_HANDLED;
  643.         }
  644.  
  645.         switch(item)
  646.         {
  647.                 case 0: {
  648.                         player_data[id][KNIFE_MENU] = 0;
  649.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  650.                 }
  651.                 case 1: {
  652.                         if(player_data[id][KNIFE_KILLS] >= POINTS[6]) {
  653.                         player_data[id][KNIFE_MENU] = 1;
  654.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  655.                         }
  656.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  657.                 }
  658.                 case 2: {
  659.                         if(player_data[id][KNIFE_KILLS] >= POINTS[7]) {
  660.                         player_data[id][KNIFE_MENU] = 2;
  661.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  662.                         }
  663.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  664.                 }
  665.                 case 3: {
  666.                         if(player_data[id][KNIFE_KILLS] >= POINTS[8]) {
  667.                         player_data[id][KNIFE_MENU] = 3;
  668.                         ChatColor(id, "^4[%s]^1 Sikeresen aktiváltad a skint.", PREFIX)
  669.                         }
  670.                         else ChatColor(id, "^4[%s]^1 Nincs elég Ölésed az aktiváláshoz.", PREFIX)
  671.                 }
  672.         }
  673.         menu_destroy(menu);
  674.         return PLUGIN_HANDLED;
  675. }
  676.  
  677. public plugin_cfg() {
  678.     new Query[512], Len;
  679.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  680.  
  681.     Len += formatex(Query[Len], charsmax(Query)-Len, "CREATE TABLE IF NOT EXISTS `worldsniper` (`username` varchar(32) NOT NULL,`AWP_KILLS` int(11) NOT NULL,`SCOUT_KILLS` int(11) NOT NULL,`DEAGLE_KILLS` int(11) NOT NULL,`USP_KILLS` int(11) NOT NULL,`GLOCK_KILLS` int(11) NOT NULL,`KNIFE_KILLS` int(11) NOT NULL, ")
  682.     Len += formatex(Query[Len], charsmax(Query)-Len, "`AWP_MENU` int(11) NOT NULL,`SCOUT_MENU` int(11) NOT NULL,`DEAGLE_MENU` int(11) NOT NULL,`USP_MENU` int(11) NOT NULL,`GLOCK_MENU` int(11) NOT NULL,`KNIFE_MENU` int(11) NOT NULL,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  683.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  684. }
  685.  
  686. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  687.     if(FailState == TQUERY_CONNECT_FAILED)
  688.         set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
  689.     else if(FailState == TQUERY_QUERY_FAILED)
  690.         set_fail_state("Query Error");
  691.     if(Errcode)
  692.         log_amx("Hibat dobtam: %s",Error);
  693. }
  694.  
  695. public client_putinserver(id) {
  696.     if(!is_user_bot(id)) {
  697.         get_user_name(id, player_data[id][USERNAME], 31)
  698.         load(id);
  699.     }
  700. }
  701.  
  702. public load(id) {
  703.     new Query[512], Data[1];
  704.     Data[0] = id;
  705.     formatex(Query, charsmax(Query), "SELECT * FROM `worldsniper` WHERE username = ^"%s^";", player_data[id][USERNAME])
  706.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
  707. }
  708.  
  709. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  710.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  711.         log_amx("%s", Error)
  712.         return
  713.     }
  714.     else {
  715.         new id = Data[0];
  716.  
  717.         if(SQL_NumRows(Query) > 0) {
  718.             player_data[id][AWP_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AWP_KILLS"));
  719.             player_data[id][SCOUT_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "SCOUT_KILLS"));
  720.             player_data[id][DEAGLE_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "DEAGLE_KILLS"))
  721.             player_data[id][USP_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "USP_KILLS"))
  722.             player_data[id][GLOCK_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "GLOCK_KILLS"))
  723.             player_data[id][KNIFE_KILLS] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "KNIFE_KILLS"))
  724.             player_data[id][AWP_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AWP_MENU"))
  725.             player_data[id][SCOUT_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "SCOUT_MENU"))
  726.             player_data[id][DEAGLE_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "DEAGLE_MENU"))
  727.             player_data[id][USP_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "USP_MENU"))
  728.             player_data[id][GLOCK_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "GLOCK_MENU"))
  729.             player_data[id][KNIFE_MENU] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "KNIFE_MENU"))
  730.         }
  731.         else {
  732.             save(id)
  733.         }
  734.     }
  735. }
  736.  
  737. public save(id) {
  738.     new text[512];
  739.     formatex(text, charsmax(text), "INSERT INTO `worldsniper` (`username`, `AWP_KILLS`, `SCOUT_KILLS`, `DEAGLE_KILLS`, `USP_KILLS`, `GLOCK_KILLS`, `KNIFE_KILLS`, `AWP_MENU`, `SCOUT_MENU`, `DEAGLE_MENU`, `USP_MENU`, `GLOCK_MENU`, `KNIFE_MENU`) VALUES (^"%s^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^");", player_data[id][USERNAME])
  740.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  741. }
  742.  
  743. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  744.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  745.         log_amx("%s", Error)
  746.         return
  747.     }
  748. }
  749.  
  750. public update(id) {
  751.     new text[1024], Len;
  752.     Len += formatex(text[Len], charsmax(text)-Len, "UPDATE `worldsniper` SET AWP_KILLS = ^"%i^", SCOUT_KILLS = ^"%i^", DEAGLE_KILLS = ^"%i^", USP_KILLS = ^"%i^", GLOCK_KILLS = ^"%i^", KNIFE_KILLS = ^"%i^", ", player_data[id][AWP_KILLS], player_data[id][SCOUT_KILLS], player_data[id][DEAGLE_KILLS], player_data[id][USP_KILLS], player_data[id][GLOCK_KILLS], player_data[id][KNIFE_KILLS])
  753.     Len += formatex(text[Len], charsmax(text)-Len, "AWP_MENU = ^"%i^", SCOUT_MENU = ^"%i^", DEAGLE_MENU = ^"%i^", USP_MENU = ^"%i^", GLOCK_MENU = ^"%i^", KNIFE_MENU = ^"%i^" WHERE username = ^"%s^";", player_data[id][AWP_MENU], player_data[id][SCOUT_MENU], player_data[id][DEAGLE_MENU], player_data[id][USP_MENU], player_data[id][GLOCK_MENU], player_data[id][KNIFE_MENU], player_data[id][USERNAME])
  754.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  755. }
  756.  
  757. public client_disconnect(id) {
  758.     if(!is_user_bot(id)) {
  759.         update(id)
  760.     }
  761.     arrayset(player_data[id], 0, 12);
  762. }
  763.  
  764. public plugin_end() {
  765.     SQL_FreeHandle(g_SqlTuple);
  766. }
  767. stock ChatColor(const id, const szMessage[], any:...) {
  768.         static pnum, players[32], szMsg[190], IdMsg;
  769.         vformat(szMsg, charsmax(szMsg), szMessage, 3);
  770.        
  771.         if(!IdMsg) IdMsg = get_user_msgid("SayText");
  772.        
  773.         if(id) {
  774.                 if(!is_user_connected(id)) return;
  775.                 players[0] = id;
  776.                 pnum = 1;
  777.         }
  778.         else get_players(players, pnum, "ch");
  779.        
  780.         for(new i; i < pnum; i++) {
  781.                 message_begin(MSG_ONE, IdMsg, .player = players[i]);
  782.                 write_byte(players[i]);
  783.                 write_string(szMsg);
  784.                 message_end();
  785.         }
  786. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement