搜索
查看: 2023|回复: 6

[AMXX 带源码] 求教

[复制链接]
发表于 2009-9-2 22:35:26 | 显示全部楼层 |阅读模式 来自 中国–山东–威海
这是花钱回血插件求教如何让他只用于OP和VIP,或者只用于OP或VIP?
/*
*    Title:    Repair Damage
*    Author:   v3x & FoX Rider
*    Created:  March 11th, 2005
*
*    Desc:     Allows you to "repair" lost damage
*              by taking a certain amount of cash
*              out depending on your condition
*
*
*
*    Cvars:
*              repair_active <1|0> (default 1)
*              _Activate the plugin
*              -------------------------------
*              repair_armor <1|0> (default 1)
*              _Repair armor also
*              -------------------------------
*              repair_msg <1|0> (default 1)
*              _Show the message
*              -------------------------------
*              repair_msg_time <10-180> (default 180)
*              _Show the message every 180 seconds
      
      Commands:        say repair
*              say_team repair
*
*
*
*    To do:
*              Add a limit for repairs
*
*
*    Credits: Fox Rider for the idea
*
*
*/

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

public plugin_init() {
        register_plugin("Repair Damage","0.1","v3x & FoX Rider")
        register_concmd("say repair","doRepair")
        register_concmd("say_team repair","doRepair")
        register_clcmd("repair","doRepair")
        register_cvar("repair_active","1")
        register_cvar("repair_armor","1")
        register_cvar("repair_msg","1")
        register_cvar("repair_msg_time","180")
        register_logevent("sayMsg",2,"0=World triggered","1=Round_Start")
}

public client_putinserver(id) {
        if(is_user_bot(id))
                return PLUGIN_HANDLED

        set_task(20.0, "sayMsg", id)
        return PLUGIN_CONTINUE
}

public doRepair(id) {

        if(get_cvar_num("repair_active") == 0) {
                return PLUGIN_HANDLED
        }
        if(!is_user_alive(id))
        {
                client_print(id,print_chat,"[Repair Health] 浣犲凡缁忛樀浜?鍥犳鏃犳硶涔拌浜?")
                return PLUGIN_HANDLED;
        }

        new hp = get_user_health(id)
        new cost

        // If there's a better way to do this, please tell me!
        if(hp <= 10) {
                cost = 5000
        }
        else if(hp <= 20) {
                cost = 4500
        }
        else if(hp <= 30) {
                cost = 4000
        }
        else if(hp <= 40) {
                cost = 3500
        }
        else if(hp <= 50) {
                cost = 3000
        }
        else if(hp <= 60) {
                cost = 2500
        }
        else if(hp <= 70) {
                cost = 2000
        }
        else if(hp <= 80) {
                cost = 1500
        }
        else if(hp <= 90) {
                cost = 1000
        }
        else if(hp <= 99) {
                cost = 250
        }
        else if(hp == 100) {
               client_print(id,print_chat,"[Repair Health] 浣犲苟娌℃湁鍙椾激,鍥犳鏃犻』涔拌.")
               
               return PLUGIN_HANDLED

        }

        new Money = cs_get_user_money(id)

        if(Money < cost) {
                client_print(id,print_chat,"[Repair Health] 浣犳病鏈夎冻澶熺殑璧勯噾鏉ヤ拱琛€.")

                return PLUGIN_HANDLED
        }

        if(Money >= cost) {

                if(get_cvar_num("repair_armor") == 1) {
                        cs_set_user_armor(id,100,CS_ARMOR_VESTHELM)
                }

                new newMoney = cs_get_user_money(id) - cost
                cs_set_user_money(id,newMoney,1)

                set_user_health(id,100)

                client_print(id,print_chat,"[Repair Health] 浣犲洜涓轰拱琛€鑰岃姳璐逛簡 $%d.",cost)
               
                emit_sound(id,CHAN_VOICE,"items/ammopickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
               
                return PLUGIN_HANDLED
        }

        return PLUGIN_HANDLED
}

public sayMsg(id) {
        if (!get_cvar_num("repair_active") || !get_cvar_num("repair_msg"))
                return PLUGIN_HANDLED

        if(get_cvar_num("repair_msg_time") < 10)
        {
                server_cmd ("repair_msg_time 10")
                return PLUGIN_CONTINUE
        }

        if(is_user_connected(id)) client_print(id, print_chat, "[Repair Health] 浣犲彲浠ラ€氳繃say 'repair'鏉ヤ拱琛€.")
        set_task(get_cvar_float("repair_msg_time"), "sayMsg", id)
        return PLUGIN_HANDLED
}
 楼主| 发表于 2009-9-2 22:36:52 | 显示全部楼层 来自 中国–山东–威海
还有如何让回hp和回ap分开
回复

使用道具 举报

发表于 2009-9-3 08:34:14 | 显示全部楼层 来自 中国–台湾
我不知道...這裡不是詢問的~你去詢問的地方問吧~
回复

使用道具 举报

 楼主| 发表于 2009-9-3 09:50:53 | 显示全部楼层 来自 中国–山东–威海
我倒想去可咱潜力选手只能在这混啊
回复

使用道具 举报

发表于 2009-9-3 13:30:20 | 显示全部楼层 来自 中国–广东–广州
LZ我想这个应该不是很难,把你的代码整理一下吧,看得我头晕!你用[CODE][/CODE]整理一下!
回复

使用道具 举报

发表于 2009-9-3 13:32:07 | 显示全部楼层 来自 中国–四川–遂宁
还是建议LZ弄一个专业的文字编辑工具
回复

使用道具 举报

发表于 2009-9-3 13:45:17 | 显示全部楼层 来自 中国–四川–遂宁
  1. /*
  2. *    Title:    Repair Damage
  3. *    Author:   v3x & FoX Rider
  4. *    Created:  March 11th, 2005
  5. *
  6. *    Desc:     Allows you to "repair" lost damage
  7. *              by taking a certain amount of cash
  8. *              out depending on your condition
  9. *
  10. *
  11. *
  12. *    Cvars:
  13. *              repair_active <1|0> (default 1)
  14. *              _Activate the plugin
  15. *              -------------------------------
  16. *              repair_armor <1|0> (default 1)
  17. *              _Repair armor also
  18. *              -------------------------------
  19. *              repair_msg <1|0> (default 1)
  20. *              _Show the message
  21. *              -------------------------------
  22. *              repair_msg_time <10-180> (default 180)
  23. *              _Show the message every 180 seconds
  24.       
  25.       Commands:        say repair
  26. *              say_team repair
  27. *
  28. *
  29. *
  30. *    To do:
  31. *              Add a limit for repairs
  32. *
  33. *
  34. *    Credits: Fox Rider for the idea
  35. *
  36. *
  37. */

  38. #include <amxmodx>
  39. #include <amxmisc>
  40. #include <cstrike>
  41. #include <fun>

  42. public plugin_init() {
  43.         register_plugin("Repair Damage","0.1","v3x & FoX Rider")
  44.         register_concmd("say repair","doRepair",ADMIN_RESERVATION,"- vip damage") // ADMIN_RESERVATION为玩家权限
  45.         register_concmd("say_team repair","doRepair",ADMIN_RESERVATION,"- vip damage") // ADMIN_RESERVATION为玩家权限
  46.         register_clcmd("repair","doRepair")
  47.         register_cvar("repair_active","1")
  48.         register_cvar("repair_armor","1")
  49.         register_cvar("repair_msg","1")
  50.         register_cvar("repair_msg_time","180")
  51.         register_logevent("sayMsg",2,"0=World triggered","1=Round_Start")
  52. }

  53. public client_putinserver(id) {
  54.         if(is_user_bot(id))
  55.                 return PLUGIN_HANDLED
  56.                
  57.         set_task(20.0, "sayMsg", id)
  58.                 return PLUGIN_CONTINUE
  59. }

  60. public doRepair(id,level) {
  61.         if(get_cvar_num("repair_active") == 0) {
  62.                 return PLUGIN_HANDLED
  63.         }
  64.         if (!access(id,level)){
  65.                 client_print(id,print_chat,"[Repair Health] 你不是会员无法购买HP。")
  66.                 return PLUGIN_HANDLED;
  67.         }
  68.         if(!is_user_alive(id))
  69.         {
  70.                 client_print(id,print_chat,"[Repair Health] 你已经死亡、不能购买HP。")
  71.                 return PLUGIN_HANDLED;
  72.         }
  73.        
  74.         new hp = get_user_health(id)
  75.         new cost
  76.        
  77.         // If there's a better way to do this, please tell me!
  78.         if(hp <= 10) {
  79.                 cost = 5000
  80.         }
  81.         else if(hp <= 20) {
  82.                 cost = 4500
  83.         }
  84.         else if(hp <= 30) {
  85.                 cost = 4000
  86.         }
  87.         else if(hp <= 40) {
  88.                 cost = 3500
  89.         }
  90.         else if(hp <= 50) {
  91.                 cost = 3000
  92.         }
  93.         else if(hp <= 60) {
  94.                 cost = 2500
  95.         }
  96.         else if(hp <= 70) {
  97.                 cost = 2000
  98.         }
  99.         else if(hp <= 80) {
  100.                 cost = 1500
  101.         }
  102.         else if(hp <= 90) {
  103.                 cost = 1000
  104.         }
  105.         else if(hp <= 99) {
  106.                 cost = 250
  107.         }
  108.         else if(hp == 100) {
  109.                 client_print(id,print_chat,"[Repair Health] 你不需要购买HP。")
  110.                         return PLUGIN_HANDLED
  111.         }
  112.         new Money = cs_get_user_money(id)
  113.         if(Money < cost) {
  114.                 client_print(id,print_chat,"[Repair Health] 你的金钱不足以你购买HP。")
  115.                 return PLUGIN_HANDLED
  116.         }
  117.        
  118.         if(Money >= cost) {
  119.                 if(get_cvar_num("repair_armor") == 1) {
  120.                   cs_set_user_armor(id,100,CS_ARMOR_VESTHELM)
  121.         }
  122.         new newMoney = cs_get_user_money(id) - cost
  123.         cs_set_user_money(id,newMoney,1)
  124.         set_user_health(id,100)
  125.         client_print(id,print_chat,"[Repair Health] 购买成功、花掉你 $%d.",cost)
  126.         emit_sound(id,CHAN_VOICE,"items/ammopickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  127.         return PLUGIN_HANDLED
  128.         }
  129.         return PLUGIN_HANDLED
  130. }

  131. public sayMsg(id) {
  132.         if (!get_cvar_num("repair_active") || !get_cvar_num("repair_msg"))
  133.                 return PLUGIN_HANDLED
  134.        
  135.         if(get_cvar_num("repair_msg_time") < 10)
  136.         {
  137.                 server_cmd ("repair_msg_time 10")
  138.                 return PLUGIN_CONTINUE
  139.         }
  140.         if(is_user_connected(id)) client_print(id, print_chat, "[Repair Health] 会员可使用 say 'repair' 购买HP。")
  141.                 set_task(get_cvar_float("repair_msg_time"), "sayMsg", id)
  142.                 return PLUGIN_HANDLED
  143. }
复制代码
回复

使用道具 举报

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

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