P1xeL

Trade Money For "Ben9513"

Jul 27th, 2012
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.61 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <hamsandwich>
  3. #include <cstrike>
  4.  
  5. #define PLUGIN "Trade Money"
  6. #define VERSION "1.3"
  7. #define AUTHOR "GlaDiuS"
  8.  
  9. new gidPlayer[33]
  10. new bool:openmenu[33]
  11. new maxreqmenu[33], maxgivemenu[33]
  12. new g_maxplayers
  13. new g_msgSayText
  14. new Item[900]
  15.  
  16. new Enable, maxreq, maxgive
  17.  
  18. public plugin_init() {
  19.     register_plugin(PLUGIN, VERSION, AUTHOR)
  20.    
  21.     RegisterHam( Ham_Spawn, "player", "fwSpawn", 1)
  22.    
  23.     register_clcmd("say /money", "MainMenu")
  24.     register_clcmd("say .money", "MainMenu")
  25.     register_clcmd("say !money", "MainMenu")
  26.     register_clcmd("playermoney", "player")
  27.    
  28.     register_dictionary("TradeMoney.txt")
  29.    
  30.     Enable = register_cvar("money_enable", "1")
  31.     maxreq = register_cvar("money_maxrequest", "5")
  32.     maxgive = register_cvar("money_maxgive", "5")
  33.    
  34.     g_maxplayers = get_maxplayers()
  35.     g_msgSayText = get_user_msgid("SayText")
  36. }
  37.  
  38. public client_putinserver(id) {
  39.     openmenu[id] = false
  40.     maxreqmenu[id] = 0
  41.     maxgivemenu[id] = 0
  42. }
  43.  
  44. public fwSpawn(id) {
  45.     openmenu[id] = false
  46.     maxreqmenu[id] = 0
  47.     maxgivemenu[id] = 0
  48.     ChatColor(id, "%L %L",id, "PREFIX", id, "SPAWNMSG")
  49. }
  50.  
  51. public MainMenu(id) {
  52.     if(get_pcvar_num(Enable))
  53.     {
  54.         if(!openmenu[id]) {
  55.            
  56.             formatex(Item, charsmax(Item), "%L", id, "MAINMENUTITLE")
  57.             new Menu = menu_create(Item, "MainHandler")
  58.            
  59.             formatex(Item, charsmax(Item), "%L", id, "MAINMENUITEM1")
  60.             menu_additem(Menu, Item, "1")
  61.             formatex(Item, charsmax(Item), "%L", id, "MAINMENUITEM2")
  62.             menu_additem(Menu, Item, "2")
  63.            
  64.             formatex(Item, charsmax(Item), "%L", id, "EXIT")
  65.             menu_setprop(Menu, MPROP_EXITNAME, Item)
  66.             menu_display(id, Menu, 0)
  67.            
  68.             openmenu[id] = true
  69.         }  
  70.     }
  71.     return PLUGIN_HANDLED
  72. }
  73.  
  74. public MainHandler(id, Menu, item)
  75. {
  76.     if (item == MENU_EXIT)
  77.     {
  78.         menu_destroy(Menu)
  79.         openmenu[id] = false
  80.         return PLUGIN_HANDLED
  81.     }
  82.    
  83.     new data[6], iName[64]
  84.     new access, callback
  85.     menu_item_getinfo(Menu, item, access, data,5, iName, 63, callback)
  86.    
  87.    
  88.     new key = str_to_num(data)
  89.     switch (key)
  90.     {
  91.         case 1:
  92.         {
  93.             GiveMoneyMenu(id)
  94.         }
  95.         case 2:
  96.         {
  97.             RequestMoneyMenu(id)
  98.         }
  99.     }
  100.     menu_destroy(Menu)
  101.     return PLUGIN_HANDLED
  102. }
  103.  
  104. public GiveMoneyMenu(id)
  105. {
  106.     if(maxgivemenu[id] <= get_pcvar_num(maxgive))
  107.     {
  108.         formatex(Item, charsmax(Item), "%L", id, "GIVEMENUTITLE")
  109.         new wMenu = menu_create(Item, "GiveMoneyHandler")
  110.         new Pos[3], Name[32]
  111.        
  112.         for (new i = 1; i <= g_maxplayers; i++)
  113.         {
  114.             if (!is_user_connected(i) || i == id)
  115.             {
  116.                 openmenu[id] = false
  117.                 continue
  118.             }
  119.             num_to_str(i, Pos, sizeof(Pos)-1)
  120.             get_user_name(i, Name, sizeof(Name)-1)
  121.             formatex(Item, charsmax(Item), "\w%s \r$%d", Name, cs_get_user_money(i))
  122.             menu_additem(wMenu, Item, Pos)
  123.         }
  124.         formatex(Item, charsmax(Item), "%L", id, "EXIT")
  125.         menu_setprop(wMenu, MPROP_EXITNAME, Item)
  126.         menu_display(id, wMenu, 0)
  127.     }
  128.     else
  129.     {
  130.         ChatColor(id, "%L %L",id, "PREFIX", id, "LIMITOPEN", maxgivemenu[id])
  131.     }
  132. }
  133.  
  134. public GiveMoneyHandler(id, wMenu, item)
  135. {
  136.     if (item == MENU_EXIT)
  137.     {
  138.         menu_destroy(wMenu)
  139.         openmenu[id] = false
  140.         return PLUGIN_HANDLED
  141.     }
  142.    
  143.     new Data[6], Name[64]
  144.     new Access, Callback
  145.     menu_item_getinfo(wMenu, item, Access, Data, sizeof(Data)-1, Name, sizeof(Name)-1, Callback)
  146.    
  147.     new key = str_to_num(Data)
  148.     gidPlayer[key] = id
  149.     client_cmd(id, "messagemode playermoney")
  150.     maxgivemenu[id]++
  151.    
  152.     menu_destroy(wMenu)
  153.     return PLUGIN_HANDLED
  154. }
  155.  
  156. public RequestMoneyMenu(id)
  157. {
  158.     if(maxreqmenu[id] <= get_pcvar_num(maxreq))
  159.     {
  160.         formatex(Item, charsmax(Item), "%L", id, "REQMENUTITLE")
  161.         new wMenu = menu_create(Item, "RequestMoneyHandler")
  162.         new Pos[3], Name[32]
  163.        
  164.         for (new i = 1; i <= g_maxplayers; i++)
  165.         {
  166.             if (!is_user_connected(i) || i == id)
  167.             {
  168.                 openmenu[id] = false
  169.                 continue
  170.             }
  171.             num_to_str(i, Pos, sizeof(Pos)-1)
  172.             get_user_name(i, Name, sizeof(Name)-1)
  173.             formatex(Item, charsmax(Item), "\w%s \r$%d", Name, cs_get_user_money(i))
  174.             menu_additem(wMenu, Item, Pos)
  175.         }
  176.         formatex(Item, charsmax(Item), "%L", id, "EXIT")
  177.         menu_setprop(wMenu, MPROP_EXITNAME, Item)
  178.         menu_display(id, wMenu, 0)
  179.     }
  180.     else
  181.     {
  182.         ChatColor(id, "%L %L",id, "PREFIX", id, "LIMITOPEN", maxreqmenu[id])
  183.     }
  184. }
  185.  
  186. public RequestMoneyHandler(id, wMenu, item)
  187. {
  188.     if (item == MENU_EXIT)
  189.     {
  190.         menu_destroy(wMenu)
  191.         openmenu[id] = false
  192.         return PLUGIN_HANDLED
  193.     }
  194.    
  195.     new Data[6], Name[64]
  196.     new Access, Callback
  197.     menu_item_getinfo(wMenu, item, Access, Data, sizeof(Data)-1, Name, sizeof(Name)-1, Callback)
  198.    
  199.     new key = str_to_num(Data)
  200.     gidPlayer[key] = id
  201.     ConfirmationMenu(key)
  202.    
  203.     menu_destroy(wMenu)
  204.     return PLUGIN_HANDLED
  205. }
  206.  
  207. public ConfirmationMenu(id) {  
  208.     new Name[32];get_user_name(gidPlayer[id], Name, 31)
  209.     formatex(Item, charsmax(Item), "%L", id, "CONFMENUTITLE", Name)
  210.     new Menu = menu_create(Item, "ConfirmationHandler")
  211.    
  212.     formatex(Item, charsmax(Item), "%L", id, "CONFMENUITEM1")
  213.     menu_additem(Menu, Item, "1")
  214.     formatex(Item, charsmax(Item), "%L", id, "CONFMENUITEM2")
  215.     menu_additem(Menu, Item, "2")
  216.    
  217.     formatex(Item, charsmax(Item), "%L", id, "EXIT")
  218.     menu_setprop(Menu, MPROP_EXITNAME, Item)
  219.     menu_display(id, Menu, 0)
  220.    
  221.     return PLUGIN_HANDLED
  222. }
  223.  
  224. public ConfirmationHandler(id, Menu, item)
  225. {
  226.     if (item == MENU_EXIT)
  227.     {
  228.         ConfirmationMenu(id)
  229.         return PLUGIN_HANDLED
  230.     }
  231.    
  232.     new data[6], iName[33]
  233.     new access, callback
  234.     menu_item_getinfo(Menu, item, access, data,5, iName, 63, callback)
  235.    
  236.     new Name[32]
  237.     get_user_name(id,Name,31)
  238.     get_user_name(gidPlayer[id], iName, 31)
  239.    
  240.     new key = str_to_num(data)
  241.     switch (key)
  242.     {
  243.         case 1:
  244.         {
  245.             ChatColor(id, "%L %L",id, "PREFIX",id, "PLAYERACCEPT", iName)
  246.             ChatColor(gidPlayer[id], "%L %L",id, "PREFIX", id, "TARGETACCEPT", Name)
  247.             client_cmd(id, "messagemode playermoney")
  248.             maxreqmenu[id]++
  249.         }
  250.         case 2:
  251.         {
  252.             ChatColor(id, "%L %L",id, "PREFIX",id, "PLAYERREFUSE")
  253.             ChatColor(gidPlayer[id], "%L %L",id, "PREFIX",id, "TARGETREFUSE", Name)
  254.             openmenu[id] = false
  255.         }
  256.     }
  257.     menu_destroy(Menu)
  258.     return PLUGIN_HANDLED
  259. }
  260.  
  261. public player(id)
  262. {
  263.     if(get_pcvar_num(Enable))
  264.     {
  265.         new say[300]
  266.         read_args(say, charsmax(say))
  267.        
  268.         remove_quotes(say)
  269.        
  270.         if(!is_str_num(say) || equal(say, ""))
  271.             return PLUGIN_HANDLED
  272.        
  273.         money(id, say)
  274.     }
  275.     return PLUGIN_CONTINUE
  276. }
  277.  
  278. money(id, say[]) {
  279.     new amount = str_to_num(say)
  280.     new victim = gidPlayer[id]
  281.    
  282.     if( victim > 0 ) {
  283.         new name[32], vname[32]
  284.         new idMoney = cs_get_user_money(id)
  285.         new vMoney = cs_get_user_money(victim)
  286.        
  287.         get_user_name(id, name, charsmax(name))
  288.         get_user_name(victim, vname, 31)
  289.        
  290.         if(amount > idMoney)
  291.         {
  292.             ChatColor(id, "%L %L",id, "PREFIX",id, "ENOUGHMONEY")
  293.             client_cmd(id, "messagemode playermoney")
  294.             return PLUGIN_HANDLED
  295.         }
  296.        
  297.         else {
  298.             cs_set_user_money(id, cs_get_user_money(id) - amount)
  299.             cs_set_user_money(victim, cs_get_user_money(victim) + amount)
  300.            
  301.             if(vMoney > 16000)
  302.             {
  303.                 cs_set_user_money(victim, 16000)
  304.             }
  305.            
  306.             ChatColor(id, "%L %L",id, "PREFIX", id, "AMOUNTGIVE", amount, vname)
  307.             ChatColor(victim, "%L %L",id, "PREFIX", id, "AMOUNTRECEIVE", name, amount)
  308.         }
  309.         openmenu[id] = false
  310.     }
  311.     else {
  312.         return PLUGIN_HANDLED
  313.     }
  314.     return PLUGIN_HANDLED
  315. }
  316.  
  317. stock ChatColor(const id, const input[], any:...)
  318. {
  319.     new count = 1, players[32]
  320.     static msg[191]
  321.     vformat(msg, 190, input, 3)
  322.    
  323.     replace_all(msg, 190, "!g", "^4")
  324.     replace_all(msg, 190, "!y", "^1")
  325.     replace_all(msg, 190, "!t", "^3")
  326.    
  327.     if (id) players[0] = id
  328.     else get_players(players, count, "ch")
  329.     for (new i = 0; i < count; i++)
  330.     {
  331.         if (is_user_connected(players[i]))
  332.         {
  333.             message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, players[i])
  334.             write_byte(players[i])
  335.             write_string(msg)
  336.             message_end()
  337.         }
  338.     }
  339. }
Add Comment
Please, Sign In to add comment