搜索
查看: 4621|回复: 6

高手帮忙看看VIP插件

[复制链接]
发表于 2009-10-16 14:07:47 | 显示全部楼层 |阅读模式 来自 中国–山东–威海
高手帮忙看看这是个VIP插件,用在魔兽2.3.2的时候猎手用无敌杀人的话就会自杀,高手帮忙看看怎么才能不死?



#define DAMAGE_RECIEVED

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

new mpd, mkb, mhb
new maxplayers
new g_MsgSync
new health_add
new health_hs_add
new health_max
new nKiller
new nKiller_hp
new nHp_add
new nHp_max

#if defined DAMAGE_RECIEVED
        new g_MsgSync2
#endif

public plugin_init()
{
        register_plugin("VIP part1", "2.0", "Dunno")
        mpd = register_cvar("money_per_damage","3")
        mkb = register_cvar("money_kill_bonus","500")
        mhb = register_cvar("money_hs_bonus","200")
        health_add = register_cvar("amx_vip_hp", "15")
        health_hs_add = register_cvar("amx_vip_hp_hs", "30")
        health_max = register_cvar("amx_vip_max_hp", "100")

        register_event("Damage","Damage","b")
        register_event("DeathMsg","death_msg","a")
        register_logevent("logevent_Round_Start", 2, "1=Round_Start");
        register_event("DeathMsg", "hook_death", "a", "1>0")

        maxplayers = get_maxplayers()

        register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")

        g_MsgSync = CreateHudSyncObj()

#if defined DAMAGE_RECIEVED
        g_MsgSync2 = CreateHudSyncObj()
#endif
}

public on_damage(id)
{
        new attacker = get_user_attacker(id)

#if defined DAMAGE_RECIEVED
        // id should be connected if this message is sent, but lets check anyway
        if ( is_user_connected(id) && is_user_connected(attacker) )
        if (get_user_flags(attacker) & ADMIN_LEVEL_H)
        {
                new damage = read_data(2)

                set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
                ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
#else
        if ( is_user_connected(attacker) && if (get_user_flags(attacker) & ADMIN_LEVEL_H) )
        {
                new damage = read_data(2)
#endif
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
                ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
        }
}

public Damage(id)
{
        new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
        if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
        if (get_user_flags(attacker) & ADMIN_LEVEL_H)
        {
                new money = read_data(2) * get_pcvar_num(mpd)
                if(hitpoint==1) money += get_pcvar_num(mhb)
                cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
        }
}

public death_msg()
{
        if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
}

public logevent_Round_Start()
{
    new players[32], player, pnum;
    get_players(players, pnum, "a");
    for(new i = 0; i < pnum; i++)
    {
        player = players;
        if(get_user_flags(player) & ADMIN_LEVEL_H)
        {
            give_item(player, "weapon_hegrenade");
            give_item(player, "weapon_flashbang");
            give_item(player, "weapon_flashbang");
            give_item(player, "weapon_smokegrenade");
            give_item(player, "item_kevlar");
           give_item(player, "item_assaultsuit");
           give_item(player, "item_thighpack");
        }
    }
}

public hook_death()
{
   // Killer id
   nKiller = read_data(1)
   
   if ( (read_data(3) == 1) && (read_data(5) == 0) )
   {
      nHp_add = get_pcvar_num (health_hs_add)
   }
   else
      nHp_add = get_pcvar_num (health_add)
   nHp_max = get_pcvar_num (health_max)
   // Updating Killer HP
   if(!(get_user_flags(nKiller) & ADMIN_LEVEL_H))
   return;

   nKiller_hp = get_user_health(nKiller)
   nKiller_hp += nHp_add
   // Maximum HP check
   if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
   set_user_health(nKiller, nKiller_hp)
   // Hud message "Healed +15/+30 hp"
   set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
   show_hudmessage(nKiller, "Healed +%d hp", nHp_add)
   // Screen fading
   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
   write_short(1<<10)
   write_short(1<<10)
   write_short(0x0000)
   write_byte(0)
   write_byte(0)
   write_byte(200)
   write_byte(75)
   message_end()

}
 楼主| 发表于 2009-10-17 07:38:37 | 显示全部楼层 来自 中国–山东–威海
谁能帮我把杀敌加血去掉啊。。。我把加的血改成0还是会死。。。。
回复

使用道具 举报

发表于 2009-10-20 00:41:43 | 显示全部楼层 来自 中国–四川–内江
  1. #define DAMAGE_RECIEVED

  2. #include <amxmodx>
  3. #include <amxmisc>
  4. #include <cstrike>
  5. #include <fun>

  6. new mpd, mkb, mhb
  7. new maxplayers
  8. new g_MsgSync

  9. #if defined DAMAGE_RECIEVED
  10.         new g_MsgSync2
  11. #endif

  12. public plugin_init()
  13. {
  14.         register_plugin("VIP part1", "2.0", "Dunno")
  15.         mpd = register_cvar("money_per_damage","3")
  16.         mkb = register_cvar("money_kill_bonus","500")
  17.         mhb = register_cvar("money_hs_bonus","200")
  18.        
  19.         register_event("Damage","Damage","b")
  20.         register_event("DeathMsg","death_msg","a")
  21.         register_logevent("logevent_Round_Start", 2, "1=Round_Start");
  22.        
  23.         maxplayers = get_maxplayers()
  24.        
  25.         register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
  26.        
  27.         g_MsgSync = CreateHudSyncObj()
  28.        
  29. #if defined DAMAGE_RECIEVED
  30.         g_MsgSync2 = CreateHudSyncObj()
  31. #endif
  32. }

  33. public on_damage(id)
  34. {
  35.         new attacker = get_user_attacker(id)
  36.        
  37. #if defined DAMAGE_RECIEVED
  38.         // id should be connected if this message is sent, but lets check anyway
  39.         if ( is_user_connected(id) && is_user_connected(attacker) )
  40.         if (get_user_flags(attacker) & ADMIN_LEVEL_H)
  41.         {
  42.                 new damage = read_data(2)
  43.        
  44.                 set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
  45.                 ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
  46. #else
  47.         if ( is_user_connected(attacker) && if (get_user_flags(attacker) & ADMIN_LEVEL_H) )
  48.         {
  49.                 new damage = read_data(2)
  50. #endif
  51.                 set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
  52.                 ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
  53.         }
  54. }

  55. public Damage(id)
  56. {
  57.         new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
  58.         if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
  59.         if (get_user_flags(attacker) & ADMIN_LEVEL_H)
  60.         {
  61.                 new money = read_data(2) * get_pcvar_num(mpd)
  62.                 if(hitpoint==1) money += get_pcvar_num(mhb)
  63.                 cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
  64.         }
  65. }

  66. public death_msg()
  67. {
  68.         if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
  69. }

  70. public logevent_Round_Start()
  71. {
  72.         new players[32], pnum;
  73.         get_players(players, pnum, "a");
  74.         for(new i = 0; i < pnum; i++)
  75.         {
  76.                 if(get_user_flags(players[i]) & ADMIN_LEVEL_H)
  77.                 {
  78.                         give_item(players[i], "weapon_hegrenade");
  79.                         give_item(players[i], "weapon_flashbang");
  80.                         give_item(players[i], "weapon_flashbang");
  81.                         give_item(players[i], "weapon_smokegrenade");
  82.                         give_item(players[i], "item_kevlar");
  83.                         give_item(players[i], "item_assaultsuit");
  84.                         give_item(players[i], "item_thighpack");
  85.                 }
  86.         }
  87. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2009-10-24 13:26:55 | 显示全部楼层 来自 中国–山东–威海
谢谢LS不过我已经走了个迂回的路线。。。把血上限改成3000,杀敌+血改成5,爆头改成10
回复

使用道具 举报

发表于 2010-4-11 00:55:47 | 显示全部楼层 来自 中国–陕西–渭南
好东西,绝对的支持一下!!!
回复

使用道具 举报

发表于 2010-5-4 01:56:23 | 显示全部楼层 来自 中国–广东–佛山–南海区
5# liangxiaomao


不会
回复

使用道具 举报

发表于 2010-5-17 22:23:06 | 显示全部楼层 来自 中国–新疆–巴音郭楞蒙古自治州
不错哦~~~
回复

使用道具 举报

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

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