Advertisement
Hirsw0w

Advanced Buy Admin v1.0

Jun 8th, 2014
910
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.64 KB | None | 0 0
  1. /* Buy admin mod. */
  2.  
  3.  
  4. ///////// AMXX Mod X
  5.  
  6. #include <amxmodx>
  7. #include <amxmisc>
  8.  
  9. #define PLUGIN "Buy Admin"
  10. #define VERSION "1.0"
  11. #define AUTHOR "Hirsw0w"
  12.  
  13. //////// Buy Admin
  14.  
  15. #define PREFIX "[Buy Admin]"
  16.  
  17.  
  18. new Array:AccessN;
  19. new Array:Paypal;
  20. new Array:Paycall;
  21.  
  22. new AccessAmount
  23.  
  24.  
  25. new acnum[33],month[33],bool:ispaypal[33] // Menu things.
  26. new skypeuser[33][33]
  27. new comment[33][100]
  28.  
  29. new newaccess[33][20]
  30. new newpp[33]
  31. new newpc[33]
  32.  
  33. new taskcvar
  34. new taskcvartime
  35.  
  36. new BuyAdminFile[100] = "addons/amxmodx/BuyAdmin.ini" // Buy Admin File.
  37. new OrderFile[100] = "addons/amxmodx/AdminOrders.ini" // Order File
  38.  
  39. public plugin_init() {
  40.     register_plugin(PLUGIN, VERSION, AUTHOR)
  41.    
  42.     taskcvar = register_cvar("buyadmin_task_enabled","1")
  43.     taskcvartime = register_cvar("buyadmin_task_time","60.0")
  44.    
  45.     AccessN = ArrayCreate(20)
  46.     Paypal = ArrayCreate()
  47.     Paycall = ArrayCreate()
  48.    
  49.    
  50.     register_clcmd("say /buyadmin","BuyAdmin")
  51.     register_clcmd("skype_user","SkypeUser")
  52.     register_clcmd("buy_comment","BuyComment")
  53.    
  54.     register_clcmd("new_access","NewAcc")
  55.     register_clcmd("new_paypal","NewPaypal")
  56.     register_clcmd("new_paycall","NewPaycall")
  57.    
  58.     set_task(get_pcvar_float(taskcvartime),"buyadmin_task")
  59.    
  60. }
  61.  
  62. public buyadmin_task() {
  63.     if(get_pcvar_num(taskcvar) == 0) {
  64.         set_task(get_pcvar_float(taskcvartime),"buyadmin_task")
  65.         return 1;
  66.     }
  67.    
  68.     client_print(0,print_chat,"%sWant to buy a admin in this server? order now: /buyadmin",PREFIX)
  69.     return 1;
  70. }
  71.  
  72. public plugin_cfg() {
  73.     if(!file_exists(BuyAdminFile)) {
  74.         write_file(BuyAdminFile,"// Buy Admin Settings File.");
  75.         write_file(BuyAdminFile,"// ")
  76.         write_file(BuyAdminFile,"// how to add new access:")
  77.         write_file(BuyAdminFile,"// [Access Name] [Paypal Price] [Paycall Price]")
  78.         write_file(BuyAdminFile,"// ")
  79.         write_file(BuyAdminFile,"// example:")
  80.         write_file(BuyAdminFile,"// Super-Admin 30 60")
  81.         write_file(BuyAdminFile,"// ")
  82.         write_file(BuyAdminFile,"// Comment: ")
  83.         write_file(BuyAdminFile,"// ")
  84.         write_file(BuyAdminFile,"// * if the paypal price or the paycall price is 0 the payment method is disable.")
  85.     }
  86.    
  87.     if(!file_exists(OrderFile))
  88.         write_file(OrderFile,"// Admin Orders File.")
  89.        
  90.     LoadAccess();
  91. }
  92.  
  93. public LoadAccess() {
  94.     new File = fopen(BuyAdminFile,"rt")
  95.     new sBuffer[128],Acces[20],PP[4],PC[4];
  96.     while(!feof(File))
  97.     {
  98.         fgets(File, sBuffer, charsmax(sBuffer));
  99.         if(!strlen(sBuffer) || sBuffer[0] == '/' && sBuffer[1] == '/')
  100.             continue;
  101.            
  102.         parse(sBuffer,Acces,charsmax(Acces),PP,charsmax(PP),PC,charsmax(PC));
  103.        
  104.         AccessAmount++
  105.        
  106.         ArrayPushString(AccessN,Acces)
  107.         ArrayPushCell(Paypal,str_to_num(PP))
  108.         ArrayPushCell(Paycall,str_to_num(PC))
  109.  
  110.     }
  111.     fclose(File)
  112. }
  113.  
  114. public SkypeUser(id) {
  115.     new message[192];
  116.     read_argv(1, message, sizeof(message));
  117.  
  118.     formatex(skypeuser[id],32,"%s",message)
  119.        
  120.     OrderMenu(id)
  121.     return 1;
  122. }
  123.  
  124. public BuyComment(id) {
  125.     new message[192];
  126.     read_argv(1, message, sizeof(message));
  127.  
  128.     formatex(comment[id],99,"%s",message)
  129.    
  130.     OrderMenu(id)
  131.     return 1;
  132. }
  133.  
  134. public NewAcc(id) {
  135.     new message[192];
  136.     read_argv(1, message, sizeof(message));
  137.  
  138.     formatex(newaccess[id],19,"%s",message)
  139.    
  140.     AddAccess(id)
  141.     return 1;
  142. }
  143.  
  144. public NewPaypal(id) {
  145.     new message[192];
  146.     read_argv(1, message, sizeof(message));
  147.  
  148.     newpp[id] = str_to_num(message)
  149.    
  150.     AddAccess(id)
  151.     return 1;
  152. }
  153.  
  154. public NewPaycall(id) {
  155.     new message[192];
  156.     read_argv(1, message, sizeof(message));
  157.  
  158.     newpc[id] = str_to_num(message)
  159.    
  160.     AddAccess(id)
  161.     return 1;
  162. }
  163.  
  164.  
  165.  
  166.  
  167. public BuyAdmin(id) {
  168.     new Item[80],Title[80],Name[20];
  169.    
  170.     new paypalprice = ArrayGetCell(Paypal,acnum[id])
  171.     new paycallprice = ArrayGetCell(Paycall,acnum[id])
  172.    
  173.     ArrayGetString(AccessN,acnum[id],Name,19)
  174.    
  175.    
  176.     if(paypalprice == 0)
  177.         ispaypal[id] = false
  178.     else if(paycallprice == 0)
  179.         ispaypal[id] = true
  180.    
  181.     formatex(Title,79,"%s Buy Admin Menu: ",PREFIX)
  182.     new menu = menu_create(Title,"sub_menu");
  183.    
  184.     formatex(Item,79,"Access - [ \r%s\w ]",Name)
  185.     menu_additem(menu,Item, "0")
  186.    
  187.     formatex(Item,79,"Payment Method - [ \r%s\w ]",ispaypal[id] ? "Paypal":"Paycall")
  188.     menu_additem(menu,Item,"1")
  189.    
  190.     formatex(Item,79,"Month - [ \r%d\w ]",month[id])
  191.     menu_additem(menu,Item,"2")
  192.    
  193.     formatex(Item,79,"\dPrice - [ \r%d\d ]", month[id] * (ispaypal[id] ? paypalprice:paycallprice))
  194.     menu_additem(menu,Item,"",_,menu_makecallback("BlockItem"))
  195.    
  196.     menu_additem(menu,"Order this access.","3")
  197.    
  198.     if(get_user_flags(id) & ADMIN_IMMUNITY)
  199.         menu_additem(menu,"\yOwner Option: \wAdd Access","4")
  200.    
  201.     menu_display(id,menu)
  202. }
  203.  
  204. public BlockItem(id,menu,item)
  205.     return ITEM_DISABLED;
  206.    
  207. public sub_menu(id,menu,item) {
  208.     if(item == MENU_EXIT) {
  209.         menu_destroy(menu);
  210.         return 1;
  211.     }
  212.    
  213.     new Data[7], Name[64];
  214.          new access, callback;
  215.          menu_item_getinfo(menu, item, access, Data,5, Name, 63, callback);
  216.        
  217.          new key = str_to_num(Data);
  218.    
  219.     switch(key) {
  220.         case 0: {
  221.             if(acnum[id] >= AccessAmount - 1)
  222.                 acnum[id] = 0
  223.             else
  224.                 acnum[id]++
  225.         }
  226.         case 1: ispaypal[id] = ispaypal[id] ? false:true;
  227.         case 2: {
  228.             if(month[id] == 12)
  229.                 month[id] = 1
  230.             else
  231.                 month[id]++
  232.         }
  233.         case 3: {
  234.             OrderMenu(id)
  235.             return 1;
  236.         }
  237.         case 4: {
  238.             AddAccess(id)
  239.             return 1;
  240.         }
  241.     }
  242.     BuyAdmin(id)
  243.     return 1;
  244. }
  245.  
  246. public AddAccess(id) {
  247.     if(!get_user_flags(id) & ADMIN_IMMUNITY) {
  248.         client_print(id,print_chat,"%s you dont have access to this menu.",PREFIX)
  249.         return 1;
  250.     }
  251.    
  252.     new Item[100]
  253.     new menu = menu_create("Add new buy admin access","sub_addaccessmenu");
  254.    
  255.     formatex(Item,99,"Access Name: \y%s",newaccess[id])
  256.     menu_additem(menu,Item,"1")
  257.    
  258.     formatex(Item,99,"Paypal Price: \y%d",newpp[id])
  259.     menu_additem(menu,Item,"2")
  260.    
  261.     formatex(Item,99,"Paycall Price: \y%d",newpc[id])
  262.     menu_additem(menu,Item,"3")
  263.  
  264.     menu_additem(menu,"\rAdd Access Now!!!","4")
  265.    
  266.     menu_display(id,menu)
  267.     return 1;
  268. }
  269.  
  270. public sub_addaccessmenu(id,menu,item) {
  271.     if(item == MENU_EXIT) {
  272.         BuyAdmin(id)
  273.         return 1;
  274.     }
  275.    
  276.     new Data[7], Name[64];
  277.          new access, callback;
  278.          menu_item_getinfo(menu, item, access, Data,5, Name, 63, callback);
  279.        
  280.          new key = str_to_num(Data);
  281.  
  282.     switch(key) {
  283.         case 1: client_cmd(id,"messagemode new_access")
  284.         case 2: client_cmd(id,"messagemode new_paypal")
  285.         case 3: client_cmd(id,"messagemode new_paycall")
  286.         case 4: {
  287.             new Item[60]
  288.            
  289.             formatex(Item,59,"^n%s %d %d",newaccess[id],newpp[id],newpc[id])
  290.             write_file(BuyAdminFile,Item)
  291.             client_print(id,print_chat,"%s The new access has been added!",PREFIX)
  292.            
  293.             ArrayClear(AccessN)
  294.             ArrayClear(Paypal)
  295.             ArrayClear(Paycall)
  296.             AccessAmount = 0
  297.             LoadAccess();          
  298.         }
  299.     }
  300. }
  301.  
  302. public OrderMenu(id) {
  303.     new Item[80],Title[150],Name[20];
  304.    
  305.     ArrayGetString(AccessN,acnum[id],Name,19);
  306.    
  307.     formatex(Title,149,"%s Order Admin Menu^nThe Order:^nAccess:%s^nMonth:%d^nPayment Method:%s^nPrice:%d^n",PREFIX,Name,month[id],ispaypal[id] ? "Paypall":"Paycall",month[id] * (ispaypal[id] ? ArrayGetCell(Paypal,acnum[id]):ArrayGetCell(Paycall,acnum[id])))
  308.     new menu = menu_create(Title,"sub_ordermenu");
  309.    
  310.    
  311.     formatex(Item,79,"Skype user: \y%s",skypeuser[id])
  312.     menu_additem(menu,Item,"1")
  313.    
  314.     formatex(Item,79,"Comment: \y%s", comment[id])
  315.     menu_additem(menu,Item,"2")
  316.    
  317.     menu_additem(menu,"\rSend Order.","3")
  318.    
  319.     menu_setprop(menu,MPROP_EXITNAME,"Back Change Order")
  320.     menu_display(id,menu)
  321. }
  322.  
  323. public sub_ordermenu(id,menu,item) {
  324.     if(item == MENU_EXIT) {
  325.         BuyAdmin(id)
  326.         return 1;
  327.     }
  328.    
  329.     new Data[7], Name[64];
  330.          new access, callback;
  331.          menu_item_getinfo(menu, item, access, Data,5, Name, 63, callback);
  332.        
  333.          new key = str_to_num(Data);
  334.      
  335.     switch(key) {
  336.         case 1: client_cmd(id,"messagemode skype_user")
  337.         case 2: client_cmd(id,"messagemode buy_comment")
  338.         case 3: {
  339.    
  340.             new Item[ 100 ],acname[20];
  341.            
  342.             ArrayGetString(AccessN,acnum[id],acname,19);
  343.            
  344.             write_file(OrderFile,"New Order: ");
  345.            
  346.             formatex(Item,99,"Name: %s",get_name(id))
  347.             write_file(OrderFile,Item);
  348.            
  349.             formatex(Item,99,"Skype User: %s",skypeuser[id])
  350.             write_file(OrderFile,Item)
  351.            
  352.             formatex(Item,99,"Comment: %s",comment[id])
  353.             write_file(OrderFile,Item)
  354.            
  355.             formatex(Item,99,"The Order: Accsess: %s, Month: %d, Payment Method: %s, Price: %d",acname,month[id],ispaypal[id] ? "Paypall":"Paycall",month[id] * (ispaypal[id] ? ArrayGetCell(Paypal,acnum[id]):ArrayGetCell(Paycall,acnum[id])))
  356.             write_file(OrderFile,Item)
  357.            
  358.             write_file(OrderFile," ")
  359.            
  360.             client_print(id,print_chat,"%sYou order now a %s for %d months!",PREFIX,acname,month[id])
  361.            
  362.             return 1;
  363.         }
  364.     }
  365.     return 1;
  366. }
  367.    
  368. stock get_name(const index) {
  369.     new szName[32]
  370.     get_user_name(index,szName,31)
  371.     return szName
  372. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement