狂龙骑士 发表于 2009-10-16 14:07:47

高手帮忙看看VIP插件

高手帮忙看看这是个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, 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还是会死。。。。

sakulekingz 发表于 2009-10-20 00:41:43

#define DAMAGE_RECIEVED

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

new mpd, mkb, mhb
new maxplayers
new g_MsgSync

#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")
       
        register_event("Damage","Damage","b")
        register_event("DeathMsg","death_msg","a")
        register_logevent("logevent_Round_Start", 2, "1=Round_Start");
       
        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, pnum;
        get_players(players, pnum, "a");
        for(new i = 0; i < pnum; i++)
        {
                if(get_user_flags(players) & ADMIN_LEVEL_H)
                {
                        give_item(players, "weapon_hegrenade");
                        give_item(players, "weapon_flashbang");
                        give_item(players, "weapon_flashbang");
                        give_item(players, "weapon_smokegrenade");
                        give_item(players, "item_kevlar");
                        give_item(players, "item_assaultsuit");
                        give_item(players, "item_thighpack");
                }
        }
}

狂龙骑士 发表于 2009-10-24 13:26:55

谢谢LS不过我已经走了个迂回的路线。。。把血上限改成3000,杀敌+血改成5,爆头改成10

liangxiaomao 发表于 2010-4-11 00:55:47

好东西,绝对的支持一下!!!

safelanding 发表于 2010-5-4 01:56:23

5# liangxiaomao


不会

tingshow163 发表于 2010-5-17 22:23:06

不错哦~~~
页: [1]
查看完整版本: 高手帮忙看看VIP插件