搜索
查看: 1814|回复: 0

连续杀人踢出代码求教

[复制链接]
发表于 2008-2-21 11:00:32 | 显示全部楼层 |阅读模式 来自 中国–浙江–温州
使用老友记的一个连续杀人语音奖励修改成几秒内连续杀人KICK的插件,插件正常杀人下可以正常执行插件功能,但对于1.5魔兽下一个BUG虚假的杀人信息他不统计进去,如果将虚拟杀人用get_user_frags统计到插件中[PHP]#define PLUGIN  "Consecutive Killer"
#define VERSION "0.3.16"
#define AUTHOR  "iG_os"

#include <amxmodx>
#include <cstrike>

new g_KillSum[33]         //连续杀人数量记录
new g_HeatshotSum[33]     //爆头记录
new Float:g_Time[33][2]   //保存杀人开始,结束时间

public plugin_init()
{
   register_plugin(PLUGIN,VERSION,AUTHOR)
   register_event("DeathMsg","DeathEven","a")
}

public DeathEven()
{
   new victimId = read_data(2)   //被杀者

   //ID死亡,结束已经开始计时的连杀计数//
   /*if (task_exists(2006+victimId)){
      remove_task(2006+victimId)
      new param[1]
      param[0] = victimId
      TimeEnd(param)
   }*/

   new killerId = read_data(1)   //杀人者
   if (!killerId || killerId==victimId)
      return PLUGIN_CONTINUE  //排除自杀
   if (get_user_team(killerId)==get_user_team(victimId))
      return PLUGIN_CONTINUE //排除队友伤害

   g_HeatshotSum[killerId] += read_data(3)   //爆头记录
   if (task_exists(2006+killerId))
      remove_task(2006+killerId)

   Killer_Count(killerId)

   return PLUGIN_CONTINUE
}

//杀人计数,计时
public Killer_Count(id)
{
   //执行保存时间,数量.//
   new Float:TimeNow = get_gametime()
   if (g_KillSum[id]<=0){
      g_Time[id][0] = TimeNow
      g_Time[id][1] = TimeNow
   }
   else g_Time[id][1] = TimeNow

   g_KillSum[id]++ //杀人数加1//

   new param[1]
   param[0] = id
   set_task(15.0, "TimeEnd", 2006+id, param, 1)  //设定间隔时间5s//
}

//计时结束,执行显示数据//
public TimeEnd(param[])
{
   new id = param[0]

   if (g_KillSum[id]>2)  //连续杀人超过3个才执行奖励
   {
      //计算时间//
      new time_total = floatround(g_Time[id][1] - g_Time[id][0])
      if (time_total<1) //预防time_total小于0
         time_total = 1
      server_cmd("kick #%d", get_user_userid(id));
   }

   client_connected(id)   
}

//数据初始化//
public client_connected(id)
{
   g_KillSum[id] = 0
   g_HeatshotSum[id] = 0
   g_Time[id][0] = 0.0
   g_Time[id][1] = 0.0

   return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
   if (task_exists(2006+id))
      remove_task(2006+id)
}

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

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