搜索
查看: 2485|回复: 5

求助,本人一个奖励插件遇到了问题,求懂的朋友帮忙(代码)

[复制链接]
发表于 2011-6-27 17:27:00 | 显示全部楼层 |阅读模式 来自 中国–四川–凉山彝族自治州
本帖最后由 scsfqqssyy 于 2011-6-27 22:04 编辑

求助,本人一个奖励插件遇到了点问题,求懂的朋友帮忙
万分感谢,本人QQ182394553
目前的问题是:
1.当玩家的钱+奖励的钱有时超过10000W后会变为10000,我想把他去了
2.当玩家的钱+奖励的钱有时超过10000W会瞬间达到160000
希望能帮我看看,我上兆秒毫国外下在的,我把代码铁出来

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
 楼主| 发表于 2011-6-27 22:01:22 | 显示全部楼层 来自 中国–四川–凉山彝族自治州
本帖最后由 scsfqqssyy 于 2011-6-27 22:03 编辑
  1. /********************************************************************************

  2.                         Plugin name: Money All-in-One
  3.                        
  4.                         Version: 3.3
  5.                        
  6.                         Author: tomcash@263.net

  7. *********************************************************************************

  8. Cvars & default value
  9. ------------------------------

  10. Amx_startmoney 800 //Fully instead of mp_startmoney.

  11. Amx_maxmoney 30000 // Max money player can have.

  12. The format of 9 cvars below here: cvarname "<bonus> <0|1>"(2nd argument control show chat msg or not, put nothing=1)

  13. **NOTICE**
  14. 1. If set 2 arguments, double quotation is needed, even in console
  15. 2. DO NOT put too much blank between the two arguments, otherwise something bad will happen :D
  16. **********

  17. Amx_bonus_planter "500 1"// Bonus for C4 planter. Set 0 to disable.

  18. Amx_bonus_explode "500 1"// Bonus for the planter when C4 was exploded. Set 0 to disable.

  19. Amx_bonus_defuser "1000 1" // Bonus for who defused C4 bomb. Set 0 to disable.

  20. Amx_bonus_headshot "200 1"// Bonus for player who headshot someone. Set 0 to disable.

  21. Amx_bonus_o4killer "200 1"// Bonus for player who killed someone by grenade. Set 0 to disable.

  22. Amx_bonus_9fkiller "5000 1"// Bonus for player who killed someone by knife. Set 0 to disable.

  23. Amx_bonus_1stkiller "1000 1"// Bonus for the first killer in a round. Set 0 to disable as well as tow cvars followed.

  24. Amx_bonus_2ndkiller "500 1"// Bonus for the second killer in a round. Set 0 to disable.

  25. Amx_bonus_3rdkiller "300 1"// Bonus for the third killer in a round. Set 0 to disable.

  26. Amx_servertag "" // A tag displayed at the head of color message, Need restart to enable change.

  27. Amx_setgmnum 200 500 1000 2000 5000 10000 // See command explaination


  28. Commands
  29. -------------------------------
  30. Amx_moneymenu

  31. // Display Give Money to Player Menu.

  32. Amx_setgmnum <amount1> [amount2] [amount3] ...

  33. // Set the menu’s option amount.

  34. Amx_givemoney <target> <amount>

  35. //Give player money Command, <target> should be player name, or put a ‘@’ as prefix to group player.

  36. ********************************************************************************************/




  37. // Modules...
  38. #include <amxmodx>
  39. #include <amxmisc>
  40. #include <cstrike>
  41. #include <csx>
  42. #include <fakemeta>


  43. //Constants..

  44. #define MAX_CLIENTS         32 + 1



  45. // Globle variables...
  46. new g_client_connected[MAX_CLIENTS]
  47. new g_client_money[MAX_CLIENTS]
  48. new g_check_money[MAX_CLIENTS]

  49. new g_rankcounter               
  50. new g_restartround               
  51. new Array:g_moneysettings
  52. new g_tag[32]
  53. new g_money_msgid
  54. new g_saytext_msgid

  55. // Cvars........
  56. new amx_servertag
  57. new amx_startmoney
  58. new amx_maxmoney
  59. new amx_bonus_planter
  60. new amx_bonus_explode
  61. new amx_bonus_defuser
  62. new amx_bonus_1stkiller
  63. new amx_bonus_2ndkiller
  64. new amx_bonus_3rdkiller
  65. new amx_bonus_headshot
  66. new amx_bonus_9fkiller
  67. new amx_bonus_o4killer



  68. public plugin_init() {
  69.         register_plugin("Money All-in-One", "3.3", "tomcash@263.net")
  70.         register_dictionary("money_aio.txt")
  71.        
  72.         register_logevent("fn_restartround",2,"0=World triggered","1&Restart_Round_","1&Game_Commencing")
  73.         register_logevent("fn_roundstart",2,"0=World triggered","1&Round_Start")
  74.         register_logevent("fn_joinfromspec",3,"1=joined team")
  75.         register_event("RoundTime","fn_newround","bde")
  76.         register_event("Money","fn_event_money","b")
  77.        
  78.         register_srvcmd("amx_setgmnum", "fn_setgmnum")       
  79.         register_concmd("amx_givemoney", "fn_cmd_givemoney", ADMIN_USER, "<target> <amount>")
  80.         register_concmd("amx_moneymenu", "fn_cmdGM2PMenu", ADMIN_USER, "- displays Give Money to Player Menu")
  81.         register_menucmd(register_menuid("Give Money to Player Menu"), 1023, "fn_actionGM2PMenu")
  82.        
  83.         amx_servertag                = register_cvar("amx_bonus_servertag","")
  84.         amx_startmoney                = register_cvar("amx_startmoney", "800")
  85.         amx_maxmoney                = register_cvar("amx_maxmoney", "30000")
  86.         amx_bonus_planter        = register_cvar("amx_bonus_planter", "500 1")
  87.         amx_bonus_explode        = register_cvar("amx_bonus_explode", "500 1")
  88.         amx_bonus_defuser        = register_cvar("amx_bonus_defuser", "1000 1")
  89.         amx_bonus_1stkiller        = register_cvar("amx_bonus_1stkiller", "1000 1")
  90.         amx_bonus_2ndkiller        = register_cvar("amx_bonus_2ndkiller", "500 1")
  91.         amx_bonus_3rdkiller        = register_cvar("amx_bonus_3rdkiller", "300 1")
  92.         amx_bonus_headshot        = register_cvar("amx_bonus_headshot", "200 1")
  93.         amx_bonus_9fkiller        = register_cvar("amx_bonus_9fkiller", "5000 1")
  94.         amx_bonus_o4killer        = register_cvar("amx_bonus_o4killer", "200 1")
  95.        
  96.        
  97.         g_money_msgid = get_user_msgid("Money")
  98.         g_saytext_msgid = get_user_msgid("SayText")
  99.        
  100.         g_moneysettings = ArrayCreate()
  101.         ArrayPushCell(g_moneysettings, 200)
  102.         ArrayPushCell(g_moneysettings, 500)
  103.         ArrayPushCell(g_moneysettings, 1000)
  104.         ArrayPushCell(g_moneysettings, 2000)
  105.         ArrayPushCell(g_moneysettings, 5000)
  106.         ArrayPushCell(g_moneysettings, 10000)
  107.        
  108.         register_forward(FM_UpdateClientData,"fn_fwd_money")
  109.        
  110. }



  111. public plugin_cfg(){
  112.        
  113.         get_pcvar_string(amx_servertag,g_tag,31)
  114. }

  115. public client_connect(id){
  116.        
  117.         g_client_connected[id] = 1           

  118. }

  119. public fn_restartround(){
  120.        
  121.         g_restartround = 1
  122.        
  123. }

  124. public fn_newround(id){               

  125.         if(g_restartround)
  126.                 fn_resetmoney(id)

  127.         fn_breakmoney(id,0)
  128. }

  129. public fn_roundstart(){
  130.        
  131.         g_restartround         = 0
  132.         g_rankcounter          = 0
  133.        
  134. }



  135. public fn_joinfromspec(){
  136.        
  137.         new text[64],name[32],previous_team[8]
  138.        
  139.         read_logargv(0,text,63)
  140.        
  141.         parse_loguser(text,name,31,_,_,_,previous_team,7)
  142.        
  143.         if(previous_team[0] == 'S')
  144.                 fn_resetmoney(get_user_index(name))               
  145. }



  146. public fn_resetmoney(id){
  147.        
  148.         g_client_money[id] = get_pcvar_num(amx_startmoney)
  149.        
  150.         fn_breakmoney(id,g_client_money[id])         // fn_breakmoney(id,flash_offset), flash_offset:the value flashing on HUD...

  151. }



  152. public fn_fwd_money(id, sendweapons, cd_handle ){

  153.         if(!is_user_connected(id))
  154.                 return PLUGIN_HANDLED

  155.         new new_money = cs_get_user_money(id)
  156.        
  157.         if(new_money != g_check_money[id]){

  158.                 fn_event_money(id)
  159.                
  160.                 g_check_money[id] = new_money
  161.        
  162.         }

  163.         return PLUGIN_CONTINUE
  164. }
  165.        


  166. public fn_event_money(id){
  167.        
  168.         if(!is_user_connected(id))
  169.                 return PLUGIN_HANDLED       
  170.        
  171.         if(g_client_connected[id]){
  172.                
  173.                 fn_resetmoney(id)
  174.                 g_client_connected[id] = 0
  175.                
  176.                 return PLUGIN_HANDLED
  177.         }
  178.        
  179.         new current_money = cs_get_user_money(id)
  180.        
  181.         new money_offset = 0
  182.        
  183.         if(g_client_money[id]>=10000){                       
  184.                 money_offset = current_money - 10000
  185.         }
  186.         else{
  187.                 money_offset = current_money - g_client_money[id]
  188.         }
  189.        
  190.         if(money_offset)       
  191.                 fn_add_player_money(id,money_offset)        //fn_add_player_money(id,addtion), addtion:the value to add.
  192.        
  193.         return PLUGIN_CONTINUE
  194. }

  195. public fn_add_player_money(id,addtion){
  196.                
  197.         g_client_money[id]+= addtion
  198.        
  199.         fn_breakmoney(id,addtion)
  200. }

  201. public fn_breakmoney( id, flash_offset ){
  202.         if(!is_user_connected(id))
  203.                 return PLUGIN_HANDLED
  204.        
  205.         new maxmoney = get_pcvar_num(amx_maxmoney)
  206.        
  207.         g_client_money[id] = (g_client_money[id]>maxmoney)?maxmoney:g_client_money[id]
  208.        
  209.         g_client_money[id] = (g_client_money[id]<0)?0:g_client_money[id]       
  210.        
  211.         if(g_client_money[id]>=10000){// When I clear my brain, I found it is very simple....

  212.                 cs_set_user_money(id,10000,0)
  213.                
  214.         }
  215.         else{                       
  216.                
  217.                 cs_set_user_money(id, g_client_money[id], 0)
  218.                
  219.         }
  220.        
  221.         message_begin( MSG_ONE_UNRELIABLE,g_money_msgid,{0,0,0},id)  // Code from Ramono, very cute method :)
  222.         write_long(g_client_money[id]-flash_offset)
  223.         write_byte(0)
  224.         message_end()
  225.        
  226.         message_begin( MSG_ONE_UNRELIABLE,g_money_msgid,{0,0,0},id)
  227.         write_long(g_client_money[id])
  228.         write_byte(1)
  229.         message_end()
  230.        
  231.         return PLUGIN_CONTINUE
  232. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-6-27 22:02:16 | 显示全部楼层 来自 中国–四川–凉山彝族自治州
  1. //----------------------------Bonus----------------------------------------------


  2. public fn_parse_cvar(p_cvar, &arg1, &arg2){
  3.         new str_cvar[32], str_arg1[16], str_arg2[16]
  4.        
  5.         get_pcvar_string(p_cvar,str_cvar,32)
  6.        
  7.         parse(str_cvar,str_arg1,16,str_arg2,16)

  8.         arg1 = str_to_num(str_arg1)

  9.         if(strlen(str_arg2))
  10.                 arg2 = str_to_num(str_arg2)
  11.         else
  12.                 arg2 = 1
  13.        
  14. }





  15. public bomb_planted(planter){             //CSX native function...
  16.        
  17.         new bonus, chatmsg
  18.        
  19.         fn_parse_cvar(amx_bonus_planter,bonus,chatmsg)
  20.        
  21.         if(!bonus)
  22.                 return PLUGIN_HANDLED
  23.        
  24.         fn_add_player_money(planter,bonus)
  25.        
  26.        
  27.        
  28.         new name[32+2], s_bonus[8], msg[256]
  29.         get_user_name(planter,name,31)
  30.         format(name,33,"^x03%s^x01",name)
  31.         format(s_bonus,7,"^x04%d^x01",bonus)
  32.        
  33.         new i,players[32],player_num
  34.         get_players(players,player_num)
  35.        
  36.        
  37.         if(chatmsg){
  38.                 for(i=0;i<player_num;i++){
  39.                         format(msg,255,"^x01%s :: %L",g_tag,players[i],"BOMB_PLANTED",name,s_bonus)
  40.                         fn_colorprint(players[i],planter,msg)
  41.                 }
  42.         }
  43.         return PLUGIN_CONTINUE       
  44. }

  45. public bomb_defused(defuser){            //CSX native function...
  46.        
  47.         new bonus, chatmsg
  48.        
  49.         fn_parse_cvar(amx_bonus_defuser,bonus,chatmsg)
  50.        
  51.         if(!bonus)
  52.                 return PLUGIN_HANDLED
  53.        
  54.         fn_add_player_money(defuser,bonus)
  55.        
  56.         new name[32+2], s_bonus[8], msg[256]
  57.         get_user_name(defuser,name,31)
  58.         format(name,33,"^x03%s^x01",name)
  59.         format(s_bonus,7,"^x04%d^x01",bonus)
  60.        
  61.         new i,players[32],player_num
  62.         get_players(players,player_num)
  63.        
  64.         if(chatmsg){
  65.                 for(i=0;i<player_num;i++){
  66.                         format(msg,255,"^x01%s :: %L",g_tag,players[i],"BOMB_DEFUSED",name,s_bonus)
  67.                         fn_colorprint(players[i],defuser,msg)
  68.                 }
  69.         }
  70.         return PLUGIN_CONTINUE               
  71. }

  72. public bomb_explode(planter){    //CSX native function...
  73.        
  74.         new bonus, chatmsg
  75.        
  76.         fn_parse_cvar(amx_bonus_explode,bonus,chatmsg)
  77.        
  78.         if(!bonus)
  79.                 return PLUGIN_HANDLED
  80.        
  81.         fn_add_player_money(planter,bonus)
  82.        
  83.         new name[32+2], s_bonus[8], msg[256]
  84.         get_user_name(planter,name,31)
  85.         format(name,33,"^x03%s^x01",name)
  86.         format(s_bonus,7,"^x04%d^x01",bonus)
  87.        
  88.         new i,players[32],player_num
  89.         get_players(players,player_num)
  90.        
  91.         if(chatmsg){
  92.                 for(i=0;i<player_num;i++){
  93.                         format(msg,255,"^x01%s :: %L",g_tag,players[i],"BOMB_EXPLODE",name,s_bonus)
  94.                         fn_colorprint(players[i],planter,msg)
  95.                 }
  96.         }
  97.         return PLUGIN_CONTINUE
  98. }

  99. public client_death(killer,victim,wpnindex,hitplace,TK){ //CSX native function...
  100.        
  101.         if(TK || killer == victim)
  102.                 return PLUGIN_HANDLED
  103.        
  104.         new i,players[32],player_num
  105.         get_players(players,player_num)
  106.        
  107.         new name[32+2], s_bonus[8], msg[256]
  108.        
  109.         new bonus=0
  110.        
  111.         get_user_name(killer,name,31)
  112.        
  113.         format(name,33,"^x03%s^x01",name)
  114.        
  115.        
  116.         new hs_bonus, hs_msg
  117.         new o4_bonus, o4_msg
  118.         new kf_bonus, kf_msg
  119.         new r1_bonus, r1_msg
  120.         new r2_bonus, r2_msg
  121.         new r3_bonus, r3_msg
  122.        
  123.         fn_parse_cvar(amx_bonus_headshot,hs_bonus,hs_msg)
  124.         fn_parse_cvar(amx_bonus_o4killer,o4_bonus,o4_msg)
  125.         fn_parse_cvar(amx_bonus_9fkiller,kf_bonus,kf_msg)
  126.         fn_parse_cvar(amx_bonus_1stkiller,r1_bonus,r1_msg)
  127.         fn_parse_cvar(amx_bonus_2ndkiller,r2_bonus,r2_msg)
  128.         fn_parse_cvar(amx_bonus_3rdkiller,r3_bonus,r3_msg)
  129.        
  130.        
  131.         if(hs_bonus && hitplace==HIT_HEAD){                       
  132.                 bonus += hs_bonus
  133.                 format(s_bonus,7,"^x04%d^x01", hs_bonus)
  134.                
  135.                 if(hs_msg){
  136.                         for(i=0;i<player_num;i++){
  137.                                 format(msg,255,"^x01%s :: %L",g_tag,players[i],"HEAD_SHOT",name,s_bonus)
  138.                                 fn_colorprint(players[i],killer,msg)
  139.                         }
  140.                 }
  141.         }
  142.        
  143.         if(o4_bonus && wpnindex==CSW_HEGRENADE){
  144.                 bonus += o4_bonus
  145.                 format(s_bonus,7,"^x04%d^x01",o4_bonus)
  146.                
  147.                 if(o4_msg){
  148.                         for(i=0;i<player_num;i++){
  149.                                 format(msg,255,"^x01%s :: %L",g_tag,players[i],"GRENADE_KILL",name,s_bonus)
  150.                                 fn_colorprint(players[i],killer,msg)
  151.                         }
  152.                 }
  153.         }
  154.        
  155.        
  156.         if(kf_bonus && wpnindex==CSW_KNIFE){
  157.                 bonus += kf_bonus
  158.                 format(s_bonus,7,"^x04%d^x01",get_pcvar_num(amx_bonus_9fkiller))
  159.                
  160.                 if(kf_msg){
  161.                         for(i=0;i<player_num;i++){
  162.                                 format(msg,255,"^x01%s :: %L",g_tag,players[i],"KNIFE_KILL",name,s_bonus)
  163.                                 fn_colorprint(players[i],killer,msg)
  164.                         }
  165.                 }
  166.         }
  167.        
  168.         new rk_bonus
  169.        
  170.         if(r1_bonus && g_rankcounter<3){
  171.                
  172.                 switch(g_rankcounter){
  173.                         case 0:rk_bonus = r1_bonus
  174.                         case 1:rk_bonus = r2_bonus
  175.                         case 2:rk_bonus = r3_bonus
  176.                 }
  177.                
  178.                 bonus += rk_bonus
  179.                 format(s_bonus,7,"^x04%d^x01",rk_bonus)
  180.                
  181.                 if(r1_msg){
  182.                        
  183.                         for(i=0;i<player_num;i++){                               
  184.                                 format(msg,255,"^x01%s :: %L",g_tag,players[i],"RUSH_KILL",name,g_rankcounter+1,s_bonus)
  185.                                 fn_colorprint(players[i],killer,msg)
  186.                         }
  187.                 }
  188.         }
  189.         fn_add_player_money(killer,bonus)
  190.        
  191.         g_rankcounter++
  192.        
  193.         return PLUGIN_CONTINUE
  194. }

  195. public fn_colorprint(playerid, colorid, msg[]){                //the code from google...Thanks the origin author.
  196.        
  197.         message_begin(playerid?MSG_ONE_UNRELIABLE:MSG_ALL,g_saytext_msgid,_,playerid)
  198.         write_byte(colorid)
  199.         write_string(msg)
  200.         message_end()
  201. }

  202. public client_disconnect(id){
  203.         g_client_money[id] = 0
  204. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-6-27 22:03:48 | 显示全部楼层 来自 中国–四川–凉山彝族自治州
  1. //------------------------------------MENU-------------------------------------------------------
  2. /*
  3.         The idea from plmenu.sma, but modify the code was not a easy task.
  4.        
  5. */


  6. new g_menuPosition[33]
  7. new g_menuPlayers[33][32]
  8. new g_menuPlayersNum[33]
  9. new g_menuOption[33]
  10. new g_menuSettings[33]

  11. public fn_cmdGM2PMenu(id, level, cid){
  12.        
  13.         if (!cmd_access(id, level, cid, 1))
  14.                 return PLUGIN_HANDLED
  15.        
  16.         g_menuOption[id] = 0
  17.         if (ArraySize(g_moneysettings) > 0){
  18.                
  19.                 g_menuSettings[id] = ArrayGetCell(g_moneysettings, g_menuOption[id]);
  20.         }
  21.         else{
  22.                 g_menuSettings[id] = 0
  23.         }
  24.        
  25.         fn_displayGM2PMenu(id, g_menuPosition[id] = 0)
  26.        
  27.         return PLUGIN_CONTINUE
  28. }

  29. fn_displayGM2PMenu(id, pos){
  30.        
  31.         if (pos < 0)
  32.                 return
  33.        
  34.         get_players(g_menuPlayers[id], g_menuPlayersNum[id])
  35.        
  36.         new menuBody[512]
  37.         new b = 0
  38.         new i
  39.         new name[32]
  40.         new start = pos * 7
  41.        
  42.         if (start >= g_menuPlayersNum[id]+3)
  43.                 start = pos = g_menuPosition[id] = 0
  44.        
  45.         new end = start + 7
  46.        
  47.         if (end > g_menuPlayersNum[id]+3)
  48.                 end = g_menuPlayersNum[id]+3
  49.        
  50.         new keys = MENU_KEY_0|MENU_KEY_8
  51.         new len = format(menuBody, 511,"\y%L\R%d/%d^n\w^n",id,"MENU_NAME", pos + 1, ((g_menuPlayersNum[id]+3) / 7 + (((g_menuPlayersNum[id]+3) % 7) ? 1 : 0)))
  52.        
  53.         for (new a = start; a < end; ++a)
  54.         {
  55.                 keys |= (1<<b)
  56.                 if(a < g_menuPlayersNum[id]){
  57.                         i = g_menuPlayers[id][a]
  58.                         get_user_name(i, name, 31)
  59.                        
  60.                         if (is_user_admin(i)){
  61.                                 if(!access(id,ADMIN_KICK)){
  62.                                         len += format(menuBody[len], 511-len, "%d. %s \r*\y\R^n\w" , ++b, name)
  63.                                 }
  64.                                 else{
  65.                                         len += format(menuBody[len], 511-len, "%d. %s \r*\y\R%d$^n\w" , ++b, name,g_client_money[i])
  66.                                 }
  67.                         }
  68.                         else{
  69.                                 if(!access(id,ADMIN_KICK)){
  70.                                         len += format(menuBody[len], 511-len, "%d. %s\y\R^n\w" , ++b, name)
  71.                                 }
  72.                                 else{
  73.                                         len += format(menuBody[len], 511-len, "%d. %s\y\R%d$^n\w" , ++b, name,g_client_money[i])
  74.                                 }
  75.                         }
  76.                 }
  77.                
  78.                 if(a==g_menuPlayersNum[id])
  79.                         len += format(menuBody[len], 512-len, "^n%d. \y%L ^n\w" , ++b, id,"ALL_CTS")
  80.                
  81.                 if(a==g_menuPlayersNum[id]+1)
  82.                         len += format(menuBody[len], 512-len,  "%d. \y%L ^n\w" , ++b, id, "ALL_TS")
  83.                
  84.                 if(a==g_menuPlayersNum[id]+2)
  85.                         len += format(menuBody[len], 512-len,  "%d. \y%L ^n\w" , ++b, id,"ALL_PLAYERS")
  86.                
  87.                
  88.                
  89.                
  90.         }
  91.        
  92.        
  93.         len += format(menuBody[len], 511-len, "^n8. %L: %d^n", id,"MENU_AMOUNT", g_menuSettings[id])
  94.        
  95.         if (end != g_menuPlayersNum[id]+3){
  96.                 keys |= MENU_KEY_9
  97.                 format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MENU_MORE",id,  pos ? "MENU_BACK" : "MENU_EXIT")
  98.         }
  99.         else{
  100.                 format(menuBody[len], 511-len, "^n0. %L",id, pos ? "MENU_BACK" : "MENU_EXIT")
  101.         }
  102.        
  103.         show_menu(id, keys, menuBody, -1, "Give Money to Player Menu")
  104.        
  105. }




  106. public fn_actionGM2PMenu(id, key){
  107.        
  108.         switch (key)
  109.         {
  110.                 case 7:{
  111.                         ++g_menuOption[id]
  112.                        
  113.                         g_menuOption[id] %= ArraySize(g_moneysettings)
  114.                        
  115.                         g_menuSettings[id] = ArrayGetCell(g_moneysettings, g_menuOption[id])
  116.                        
  117.                         fn_displayGM2PMenu(id, g_menuPosition[id])
  118.                 }
  119.                
  120.                 case 8: fn_displayGM2PMenu(id, ++g_menuPosition[id])
  121.                        
  122.                 case 9: fn_displayGM2PMenu(id, --g_menuPosition[id])
  123.                        
  124.                 default:{
  125.                         if(g_menuPosition[id] * 7 + key < g_menuPlayersNum[id]){                       
  126.                                 new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
  127.                                
  128.                                 if(!access(id,ADMIN_KICK)){
  129.                                        
  130.                                         if(g_menuSettings[id]<0)
  131.                                                 return PLUGIN_HANDLED
  132.                                        
  133.                                         if(g_client_money[id]<g_menuSettings[id]){
  134.                                                 client_print(id,print_center,"You have insufficient fund!")
  135.                                                 return PLUGIN_HANDLED
  136.                                         }
  137.                                         fn_add_player_money(id,-g_menuSettings[id])
  138.                                 }

  139.                                 fn_add_player_money(player,g_menuSettings[id])
  140.                                
  141.                                 fn_displayGM2PMenu(id, g_menuPosition[id])

  142.                         }
  143.                        
  144.                         if(g_menuPosition[id] * 7 + key ==g_menuPlayersNum[id]){
  145.                                
  146.                                 for(new i=0;i<g_menuPlayersNum[id];i++){
  147.                                         if(get_user_team(g_menuPlayers[id][i])==2){
  148.                                                
  149.                                                 if(!access(id,ADMIN_KICK)){
  150.                                                                                        
  151.                                                         if(g_menuSettings[id]<0)
  152.                                                                 return PLUGIN_HANDLED
  153.                                                
  154.                                                         if(g_client_money[id]<g_menuSettings[id]){
  155.                                                                 client_print(id,print_center,"You have insufficient fund!")
  156.                                                                 return PLUGIN_HANDLED
  157.                                                         }
  158.                                                         fn_add_player_money(id,-g_menuSettings[id])
  159.                                                 }
  160.                                                                                
  161.                                                 fn_add_player_money(g_menuPlayers[id][i],g_menuSettings[id])
  162.                                         }
  163.                                 }                               
  164.                                 fn_displayGM2PMenu(id, g_menuPosition[id])
  165.                                 //add all CTs money
  166.                         }
  167.                        
  168.                         if(g_menuPosition[id] * 7 + key ==g_menuPlayersNum[id]+1){
  169.                                
  170.                                 for(new i=0;i<g_menuPlayersNum[id];i++){
  171.                                         if(get_user_team(g_menuPlayers[id][i])==1){
  172.                                                
  173.                                                 if(!access(id,ADMIN_KICK)){
  174.                                                        
  175.                                                         if(g_menuSettings[id]<0)
  176.                                                                 return PLUGIN_HANDLED
  177.                                                        
  178.                                                         if(g_client_money[id]<g_menuSettings[id]){
  179.                                                                 client_print(id,print_center,"You have insufficient fund!")
  180.                                                                 return PLUGIN_HANDLED
  181.                                                         }
  182.                                                         fn_add_player_money(id,-g_menuSettings[id])
  183.                                                 }                                               
  184.                                        
  185.                                                 fn_add_player_money(g_menuPlayers[id][i],g_menuSettings[id])
  186.                                         }
  187.                                 }
  188.                                 fn_displayGM2PMenu(id, g_menuPosition[id])
  189.                                 //add all Ts money
  190.                         }
  191.                        
  192.                         if(g_menuPosition[id] * 7 + key ==g_menuPlayersNum[id]+2){
  193.                                
  194.                                 for(new i=0;i<g_menuPlayersNum[id];i++){
  195.                                        
  196.                                         if(!access(id,ADMIN_KICK)){
  197.                                                                                        
  198.                                                 if(g_menuSettings[id]<0)
  199.                                                         return PLUGIN_HANDLED
  200.                                                
  201.                                                 if(g_client_money[id]<g_menuSettings[id]){
  202.                                                         client_print(id,print_center,"You have insufficient fund!")
  203.                                                         return PLUGIN_HANDLED
  204.                                                 }
  205.                                                 fn_add_player_money(id,-g_menuSettings[id])
  206.                                         }                                       
  207.                                        
  208.                                         fn_add_player_money(g_menuPlayers[id][i],g_menuSettings[id])
  209.                                        
  210.                                 }
  211.                                 fn_displayGM2PMenu(id, g_menuPosition[id])
  212.                                 //add all Players money
  213.                         }
  214.                        
  215.                 }
  216.         }
  217.         return PLUGIN_CONTINUE
  218. }

  219. public fn_setgmnum(){
  220.        
  221.         new buff[32]
  222.         new args = read_argc()
  223.        
  224.         if (args <= 1){
  225.                 server_print("usage: amx_setgmnum <num1> [num2] [num3] ...")       
  226.                 return PLUGIN_HANDLED
  227.         }
  228.        
  229.         ArrayClear(g_moneysettings)
  230.        
  231.         for (new i = 1; i < args; i++)        {
  232.                 read_argv(i, buff, charsmax(buff))
  233.                 ArrayPushCell(g_moneysettings, str_to_num(buff))
  234.         }
  235.         return PLUGIN_CONTINUE
  236. }

  237. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  238. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset134 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang2052\\ f0\\ fs16 \n\\ par }
  239. */
复制代码
回复

使用道具 举报

发表于 2011-6-28 01:23:16 | 显示全部楼层 来自 中国–广东–广州
if(g_client_money[id]>=10000){// When I clear my brain, I found it is very simple....



                cs_set_user_money(id,10000,0)
回复

使用道具 举报

发表于 2011-6-28 01:25:04 | 显示全部楼层 来自 中国–广东–广州
new maxmoney = get_pcvar_num(amx_maxmoney)

        

        g_client_money[id] = (g_client_money[id]>maxmoney)?maxmoney:g_client_money[id]

        

        g_client_money[id] = (g_client_money[id]<0)?0:g_client_money[id]        

      主要是这几句的关系,自己修改一下
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表