Advertisement
Guest User

Untitled

a guest
Feb 15th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.87 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <cod>
  3.  
  4. #define PLUGIN  "CoD Admin Menu"
  5. #define VERSION "1.0.0"
  6. #define AUTHOR  "O'Zone"
  7.  
  8. #define ACCESS_FLAG ADMIN_CVAR
  9.  
  10. new const commandMenu[][] = { "codadmin", "say /codadmin", "say_team /codadmin" };
  11. new const menuOptions[][] = {
  12.     "Daj \rPrzedmiot",
  13.     "Ustaw \rPoziom",
  14.     "Dodaj \rPoziom",
  15.     "Dodaj \rDoswiadczenie",
  16.     "Zamien \rDoswiadczenie",
  17.     "Przenies \rDoswiadczenie",
  18.     "Dodaj \rRPG"
  19. };
  20. enum _:options { GIVE_ITEM, SET_LEVEL, ADD_LEVEL, ADD_EXP, EXCHANGE_EXP, TRANSFER_EXP, ADD_RPG };
  21.  
  22. new selectedOption[MAX_PLAYERS + 1], selectedPlayer[MAX_PLAYERS + 1];
  23.  
  24. public plugin_init()
  25. {
  26.     register_plugin(PLUGIN, VERSION, AUTHOR);
  27.  
  28.     for (new i; i < sizeof(commandMenu); i++) register_clcmd(commandMenu[i], "admin_menu");
  29.  
  30.     register_clcmd("WPISZ_ILOSC", "amount_handle");
  31. }
  32.  
  33. public admin_menu(id)
  34. {
  35.     if (!(get_user_flags(id) & ACCESS_FLAG)) return PLUGIN_HANDLED;
  36.  
  37.     new menu = menu_create("\r[CoD \yMenu \rAdmina\w:", "admin_menu_handle");
  38.  
  39.     for (new i; i < sizeof(menuOptions); i++) menu_additem(menu, menuOptions[i]);
  40.  
  41.     menu_display(id, menu);
  42.  
  43.     return PLUGIN_HANDLED;
  44. }
  45.  
  46. public admin_menu_handle(id, menu, item)
  47. {
  48.     if (!is_user_connected(id)) return PLUGIN_HANDLED;
  49.  
  50.     if (item == MENU_EXIT) {
  51.         client_cmd(id, "spk %s", codSounds[SOUND_EXIT]);
  52.  
  53.         menu_destroy(menu);
  54.  
  55.         return PLUGIN_HANDLED;
  56.     }
  57.  
  58.     client_cmd(id, "spk %s", codSounds[SOUND_SELECT]);
  59.  
  60.     selectedOption[id] = item;
  61.  
  62.     menu_destroy(menu);
  63.  
  64.     player_menu(id);
  65.  
  66.     return PLUGIN_HANDLED;
  67. }
  68.  
  69. public player_menu(id)
  70. {
  71.     if (!is_user_connected(id)) return PLUGIN_HANDLED;
  72.  
  73.     new playerName[MAX_NAME], playerId[6], menu = menu_create("\r[CoD] \yWybierz \rGracza\w:", "player_menu_handle");
  74.  
  75.     for (new player = 1; player <= MAX_PLAYERS; player++) {
  76.         if (!is_user_connected(player) || is_user_hltv(player)) continue;
  77.  
  78.         get_user_name(player, playerName, charsmax(playerName));
  79.  
  80.         num_to_str(player, playerId, charsmax(playerId));
  81.  
  82.         menu_additem(menu, playerName, playerId);
  83.  
  84.        
  85.     }
  86.  
  87.     menu_setprop(menu, MPROP_BACKNAME, "Poprzednie");
  88.     menu_setprop(menu, MPROP_NEXTNAME, "Nastepne");
  89.     menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
  90.  
  91.     menu_display(id, menu);
  92.  
  93.     return PLUGIN_HANDLED;
  94. }
  95.  
  96. public player_menu_handle(id, menu, item)
  97. {
  98.     if (!is_user_connected(id)) return PLUGIN_HANDLED;
  99.  
  100.     if (item == MENU_EXIT) {
  101.         client_cmd(id, "spk %s", codSounds[SOUND_EXIT]);
  102.  
  103.         menu_destroy(menu);
  104.  
  105.         return PLUGIN_HANDLED;
  106.     }
  107.  
  108.     client_cmd(id, "spk %s", codSounds[SOUND_SELECT]);
  109.  
  110.     new itemData[6], itemAccess, itemCallback;
  111.  
  112.     menu_item_getinfo(menu, item, itemAccess, itemData, charsmax(itemData), _, _, itemCallback);
  113.  
  114.     menu_destroy(menu);
  115.  
  116.     new player = str_to_num(itemData);
  117.  
  118.     if (!is_user_connected(player)) {
  119.         cod_print_chat(id, "Wybranego gracza nie ma juz na serwerze.");
  120.  
  121.         return PLUGIN_HANDLED;
  122.     }
  123.  
  124.     selectedPlayer[id] = player;
  125.  
  126.     switch (selectedOption[id]) {
  127.         case GIVE_ITEM: select_item_menu(id);
  128.         case EXCHANGE_EXP, TRANSFER_EXP: select_class_menu(id);
  129.         case SET_LEVEL: {
  130.             client_cmd(id, "messagemode WPISZ_ILOSC");
  131.  
  132.             client_print(id, print_center, "Wpisz, ktory poziom chcesz ustawic graczowi.");
  133.             cod_print_chat(id, "Wpisz, ktory poziom chcesz ustawic graczowi.");
  134.         } case ADD_LEVEL: {
  135.             client_cmd(id, "messagemode WPISZ_ILOSC");
  136.  
  137.             client_print(id, print_center, "Wpisz ile poziomow chcesz dodac graczowi.");
  138.             cod_print_chat(id, "Wpisz ile poziomow chcesz dodac graczowi.");
  139.         } case ADD_EXP: {
  140.             client_cmd(id, "messagemode WPISZ_ILOSC");
  141.  
  142.             client_print(id, print_center, "Wpisz ile doswiadczenia chcesz dodac graczowi.");
  143.             cod_print_chat(id, "Wpisz ile doswiadczenia chcesz dodac graczowi.");
  144.         } case ADD_RPG: {
  145.             client_cmd(id, "messagemode WPISZ_ILOSC");
  146.             client_print(id, print_center, "Wpisz ile RPG chcesz dodac graczowi.");
  147.             cod_print_chat(id, "Wpisz ile RPG chcesz dodac graczowi.");
  148.         }
  149.     }
  150.  
  151.     return PLUGIN_HANDLED;
  152. }
  153.  
  154. public select_item_menu(id)
  155. {
  156.     if (!is_user_connected(id)) return PLUGIN_HANDLED;
  157.  
  158.     if (!is_user_connected(selectedPlayer[id])) {
  159.         client_cmd(id, "spk %s", codSounds[SOUND_EXIT]);
  160.  
  161.         cod_print_chat(id, "Wybranego gracza nie ma juz na serwerze.");
  162.  
  163.         return PLUGIN_HANDLED;
  164.     }
  165.  
  166.     new menuData[128], itemName[MAX_NAME], itemId[6], menu = menu_create("\yWybierz \rPrzedmiot\w:", "select_menu_handle");
  167.  
  168.     for (new i = 1; i < cod_get_items_num(); i++) {
  169.         cod_get_item_name(i, itemName, charsmax(itemName));
  170.  
  171.         formatex(menuData,charsmax(menuData), itemName);
  172.  
  173.         num_to_str(i, itemId, charsmax(itemId));
  174.  
  175.         menu_additem(menu, menuData, itemId);
  176.     }
  177.  
  178.     menu_setprop(menu, MPROP_BACKNAME, "Poprzednie");
  179.     menu_setprop(menu, MPROP_NEXTNAME, "Nastepne");
  180.     menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
  181.  
  182.     menu_display(id, menu);
  183.  
  184.     return PLUGIN_HANDLED;
  185. }
  186.  
  187. public select_class_menu(id)
  188. {
  189.     if (!is_user_connected(id)) return PLUGIN_HANDLED;
  190.  
  191.     if (!is_user_connected(selectedPlayer[id])) {
  192.         client_cmd(id, "spk %s", codSounds[SOUND_EXIT]);
  193.  
  194.         cod_print_chat(id, "Wybranego gracza nie ma juz na serwerze.");
  195.  
  196.         return PLUGIN_HANDLED;
  197.     }
  198.  
  199.     new menuData[128], className[MAX_NAME], classId[6], menu = menu_create("\yWybierz \rKlase\w:", "select_menu_handle");
  200.  
  201.     for (new i = 1; i < cod_get_classes_num(); i++) {
  202.         if (cod_get_user_class(selectedPlayer[id]) == i) continue;
  203.  
  204.         cod_get_class_name(i, _, className, charsmax(className));
  205.  
  206.         formatex(menuData,charsmax(menuData), className);
  207.  
  208.         num_to_str(i, classId, charsmax(classId));
  209.  
  210.         menu_additem(menu, menuData, classId);
  211.     }
  212.  
  213.     menu_setprop(menu, MPROP_BACKNAME, "Poprzednie");
  214.     menu_setprop(menu, MPROP_NEXTNAME, "Nastepne");
  215.     menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
  216.  
  217.     menu_display(id, menu);
  218.  
  219.     return PLUGIN_HANDLED;
  220. }
  221.  
  222. public select_menu_handle(id, menu, item)
  223. {
  224.     if (!is_user_connected(id)) return PLUGIN_HANDLED;
  225.  
  226.     if (item == MENU_EXIT) {
  227.         client_cmd(id, "spk %s", codSounds[SOUND_EXIT]);
  228.  
  229.         menu_destroy(menu);
  230.  
  231.         return PLUGIN_HANDLED;
  232.     }
  233.  
  234.     if (!is_user_connected(selectedPlayer[id])) {
  235.         client_cmd(id, "spk %s", codSounds[SOUND_EXIT]);
  236.  
  237.         cod_print_chat(id, "Wybranego gracza nie ma juz na serwerze.");
  238.  
  239.         return PLUGIN_HANDLED;
  240.     }
  241.  
  242.     client_cmd(id, "spk %s", codSounds[SOUND_SELECT]);
  243.  
  244.     new itemData[6], itemName[MAX_NAME], playerName[MAX_NAME], itemAccess, itemCallback;
  245.  
  246.     menu_item_getinfo(menu, item, itemAccess, itemData, charsmax(itemData), itemName, charsmax(itemName), itemCallback);
  247.  
  248.     menu_destroy(menu);
  249.  
  250.     get_user_name(selectedPlayer[id], playerName, charsmax(playerName));
  251.  
  252.     new selected = str_to_num(itemData);
  253.  
  254.     switch (selectedOption[id]) {
  255.         case GIVE_ITEM: {
  256.             cod_set_user_item(selectedPlayer[id], selected, RANDOM);
  257.  
  258.             cod_print_chat(id, "Dales przedmiot^x04 %s^x01 graczowi^x03 %s^x01.", itemName, playerName);
  259.         } case EXCHANGE_EXP: {
  260.             new firstClassName[MAX_NAME], secondClassName[MAX_NAME],
  261.                 firstClassExp = cod_get_user_exp(selectedPlayer[id]),
  262.                 firstClass = cod_get_user_class(selectedPlayer[id]);
  263.  
  264.             cod_get_class_name(firstClass, _, firstClassName, charsmax(firstClassName));
  265.             cod_get_class_name(selected, _, secondClassName, charsmax(secondClassName));
  266.  
  267.             cod_set_user_class(selectedPlayer[id], selected, 1);
  268.  
  269.             new secondClassExp = cod_get_user_exp(selectedPlayer[id]);
  270.  
  271.             cod_set_user_exp(selectedPlayer[id], -secondClassExp + firstClassExp);
  272.             cod_set_user_class(selectedPlayer[id], firstClass, 1);
  273.             cod_set_user_exp(selectedPlayer[id], -firstClassExp + secondClassExp);
  274.  
  275.             if (secondClassExp < firstClassExp) {
  276.                 cod_set_user_class(selectedPlayer[id], selected, 1);
  277.             }
  278.  
  279.             cod_print_chat(id, "Zamieniles doswiadczenie miedzy klasami^x04 %s^x01 i^x04 %s^x01 graczowi^x03 %s^x01.", firstClassName, secondClassName, playerName);
  280.         } case TRANSFER_EXP: {
  281.             new firstClassName[MAX_NAME], secondClassName[MAX_NAME],
  282.                 firstClassExp = cod_get_user_exp(selectedPlayer[id]),
  283.                 firstClass = cod_get_user_class(selectedPlayer[id]);
  284.  
  285.             cod_get_class_name(firstClass, _, firstClassName, charsmax(firstClassName));
  286.             cod_get_class_name(selected, _, secondClassName, charsmax(secondClassName));
  287.  
  288.             cod_set_user_exp(selectedPlayer[id], -firstClassExp);
  289.             cod_set_user_class(selectedPlayer[id], selected, 1);
  290.             cod_set_user_exp(selectedPlayer[id], firstClassExp);
  291.  
  292.             cod_print_chat(id, "Przeniosles doswiadczenie z klasy^x04 %s^x01 na klase^x04 %s^x01 graczowi^x03 %s^x01.", firstClassName, secondClassName, playerName);
  293.         }
  294.     }
  295.  
  296.     return PLUGIN_HANDLED;
  297. }
  298.  
  299. public amount_handle(id)
  300. {
  301.     if (!is_user_connected(id) || !(get_user_flags(id) & ACCESS_FLAG)) return PLUGIN_HANDLED;
  302.  
  303.     if (!is_user_connected(selectedPlayer[id])) {
  304.         cod_print_chat(id, "Wybranego gracza nie ma juz na serwerze.");
  305.  
  306.         return PLUGIN_HANDLED;
  307.     }
  308.  
  309.     client_cmd(id, "spk %s", codSounds[SOUND_EXIT]);
  310.  
  311.     new amountData[16], amount;
  312.  
  313.     read_args(amountData, charsmax(amountData));
  314.     remove_quotes(amountData);
  315.  
  316.     amount = str_to_num(amountData);
  317.  
  318.  
  319.     new playerName[MAX_NAME];
  320.  
  321.     get_user_name(selectedPlayer[id], playerName, charsmax(playerName));
  322.  
  323.     switch (selectedOption[id]) {
  324.         case SET_LEVEL: {
  325.             cod_set_user_exp(selectedPlayer[id], -cod_get_user_exp(selectedPlayer[id]) + cod_get_level_exp(amount - 1));
  326.  
  327.             cod_print_chat(id, "Ustawiles^x04 %i^x01 poziom graczowi^x03 %s^x01.", amount, playerName);
  328.         } case ADD_LEVEL: {
  329.             cod_set_user_exp(selectedPlayer[id], cod_get_level_exp(cod_get_user_level(selectedPlayer[id]) + amount - 1) - cod_get_user_exp(selectedPlayer[id]));
  330.  
  331.             cod_print_chat(id, "Dodales^x04 %i^x01 poziomow graczowi^x03 %s^x01.", amount, playerName);
  332.         } case ADD_EXP: {
  333.             cod_set_user_exp(selectedPlayer[id], amount);
  334.  
  335.             cod_print_chat(id, "Dodales^x04 %i^x01 doswiadczenia graczowi^x03 %s^x01.", amount, playerName);
  336.         } case ADD_RPG: {
  337.             cod_set_user_honor(selectedPlayer[id], cod_get_user_honor(id) + amount);
  338.             cod_print_chat(id, "Dodales^x04 %i^x01 RPG graczowi^x03 %s^x01.", amount, playerName);
  339.         }
  340.  
  341.     }
  342.  
  343.     return PLUGIN_HANDLED;
  344. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement