搜索
查看: 4967|回复: 18

求助:玩家埋包或拆包时进入无敌状态插件

[复制链接]
发表于 2007-12-18 21:41:24 | 显示全部楼层 |阅读模式 来自 中国–甘肃–兰州
最近在Super Hero超级英雄的官方网上找到了一个叫sh_bombsquad.amxx(爆破专家)的英雄,我把他修改成了普通的共享插件(bomb_godmode.amxx), 插件的功能如下:

1. 如果你是T,那么你在埋C4的时候会进入上帝模式(即无敌状态),并且上帝模式会持续5秒钟(默认是5秒钟),当你埋完C4后,上帝模式消失,玩家这时恢复正常模式.

2. 如果你是CT,那么当你拆C4的时候将进入上帝模式,直到你把C4拆除了才恢复正常状态.

3. 玩家进入上帝模式时,T的身体会发红光,CT的身体会发蓝光.

这个插件的主要作用就是为了防止别人趁埋包的T或拆包的CT不注意时在背后放冷箭!这种情况相信大家都遇到过吧?那感觉可能就两个字 --- 郁闷!!! :spiderman

我对插件做了修改,增加了以下控制命令:
bomb_godmode 1 // 插件的开关
bomb_godtime 5 // 上帝模式的持续时间


插件编译完后可以在服务器运行,但有BUG:

1. 编译过程中源代码的第27行出现了一个错误提示: function "newspawn" should return a value.

2. bomb_godmode 1 这个命令完全不管用,无法控制插件的开关.

3. 只要玩家一旦实施了埋包或拆包的事件,那么他就会一直处在上帝模式,直到下局开始时无敌状态才消失,完全不受bomb_godtime 5的影响,该命令也完全无效.

希望高手帮忙修正一下这三个BUG,不胜感激!

本帖子中包含更多资源

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

×
发表于 2007-12-19 02:27:39 | 显示全部楼层 来自 中国–福建–漳州

回复: 求助:玩家埋包或拆包时进入无敌状态插件

呵呵,如果拆包的时候CT无敌,那T还怎么玩?如果设置成5秒钟,CT又有拆弹器,则一拆准成功。
回复

使用道具 举报

发表于 2007-12-19 02:32:24 | 显示全部楼层 来自 中国–福建–漳州

回复: 求助:玩家埋包或拆包时进入无敌状态插件

  1. register_event("BarTime", "SetGodmode", "be", "1=3", "1=5", "1=10")
  2. register_event("BarTime", "UnSetGodmode", "be", "1=0")
  3. public SetGodemode(id)
  4. {
  5.     set_user_godmode(id, 1)
  6. }
  7. public UnSetGodemode(id)
  8. {
  9.     set_user_godmode(id, 0)
  10. }
复制代码

未测试!!
回复

使用道具 举报

发表于 2007-12-19 03:30:22 | 显示全部楼层 来自 中国–广东

回复: 求助:玩家埋包或拆包时进入无敌状态插件

修改了下,当玩家在拆C4或放C4时无敌但是也无法杀人,以防有人利用拆C4或放C4没完成时,利用无敌状态去杀人.没试过.自己测试下,
[php]
#include <amxmodx>
#include <fun>
#include <csx>
new bool:g_restart_attempt[33]
//----------------------------------------------------------------------------------------------
public plugin_init()
{
// Plugin Info
register_plugin("Bomb Godmode","1.1","Emp & X-man")
register_event("ResetHUD","eResetHUD","be")
register_clcmd("fullupdate", "cmd_fullupdate")
}
//----------------------------------------------------------------------------------------------
public cmd_fullupdate()
{
return PLUGIN_HANDLED
}
public eResetHUD(id)
{
if (g_restart_attempt[id])
{
g_restart_attempt[id] = false
return PLUGIN_CONTINUE
}
ePlayerSpawn(id)
return PLUGIN_CONTINUE
}
public ePlayerSpawn(id)
{
if(get_user_godmode(id))
set_user_godmode(id)
}
//----------------------------------------------------------------------------------------------
public bomb_planting(id)
{

if ( is_user_alive(id) )
{
set_user_godmode(id, 1)
set_user_hitzones(id,0,0)
set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 255)
client_print(id, print_chat, "[Bomb Godmode] You have 5 seconds of godmode for attempting to plant.")
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------------
public bomb_defusing(id)
{

if ( is_user_alive(id) )
{
set_user_godmode(id, 1)
set_user_hitzones(id,0,0)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 255)
client_print(id, print_chat, "[Bomb Godmode] You have 5 seconds of godmode for attempting to defuse." )
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------------
public bomb_defused(id)
{
if(get_user_godmode(id))
set_user_godmode(id)
set_user_hitzones(id,0,255)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0)
}
public bomb_planted(id)
{
if(get_user_godmode(id))
set_user_godmode(id)
set_user_hitzones(id,0,255)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0)
}

[/php]

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2007-12-19 11:01:53 | 显示全部楼层 来自 中国–广东–广州–天河区

回复: 求助:玩家埋包或拆包时进入无敌状态插件

楼主,这样不合理啊!一接近C4就必成功哦!
回复

使用道具 举报

 楼主| 发表于 2007-12-19 14:48:09 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 求助:玩家埋包或拆包时进入无敌状态插件

zwfgdlc楼主,我刚才测试了一下,基本上可以了.不过还是有个BUG:

当正在埋包或拆包的玩家如果中途停止的话(即在还没有完全埋好C4或者拆除C4的情况下就停止实施这个行为),那么玩家的身体会一直持续发光,即仍然会保持着无敌状态,直到下一局开始为止,除非他重新实施完上述的行为,才会退出无敌模式从而恢复正常的状态.
回复

使用道具 举报

 楼主| 发表于 2007-12-20 13:13:16 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 求助:玩家埋包或拆包时进入无敌状态插件

zwfgdlc楼主,我刚才测试了一下,基本上可以了.不过还是有个BUG:

当正在埋包或拆包的玩家如果中途停止的话(即在还没有完全埋好C4或者拆除C4的情况下就停止实施这个行为),那么玩家的身体会一直持续发光,即仍然会保持着无敌状态,直到下一局开始为止,除非他重新实施完上述的行为,才会退出无敌模式从而恢复正常的状态.

所以,当正在埋包或拆包的玩家如果中途停止的话,如何定义让他们退出无敌状态的代码?
回复

使用道具 举报

发表于 2007-12-20 17:40:24 | 显示全部楼层 来自 中国–福建–漳州

回复: 求助:玩家埋包或拆包时进入无敌状态插件

Post by Osker Lee
zwfgdlc楼主,我刚才测试了一下,基本上可以了.不过还是有个BUG:

当正在埋包或拆包的玩家如果中途停止的话(即在还没有完全埋好C4或者拆除C4的情况下就停止实施这个行为),那么玩家的身体会一直持续发光,即仍然会保持着无敌状态,直到下一局开始为止,除非他重新实施完上述的行为,才会退出无敌模式从而恢复正常的状态.

所以,当正在埋包或拆包的玩家如果中途停止的话,如何定义让他们退出无敌状态的代码?
register_event("BarTime", "UnSetGodmode", "be", "1=0")
回复

使用道具 举报

 楼主| 发表于 2007-12-20 21:32:09 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 求助:玩家埋包或拆包时进入无敌状态插件

register_plugin("Bomb Godmode","1.1","Emp & X-man")
register_event("ResetHUD","eResetHUD","be")
register_clcmd("fullupdate", "cmd_fullupdate")
register_event("BarTime", "UnSetGodmode", "be", "1=0")
Rulzy版主,我按照你的要求在bomb_godmode.sma的注册事件里添加了红色的这句代码,但还是没能测试成功,为什么会这样啊?:cry:
回复

使用道具 举报

发表于 2007-12-20 21:49:57 | 显示全部楼层 来自 中国–广东–惠州

回复: 求助:玩家埋包或拆包时进入无敌状态插件

[php]
#include <amxmodx>
#include <fun>
#include <csx>
new bool:g_restart_attempt[33]
//----------------------------------------------------------------------------------------------
public plugin_init()
{
// Plugin Info
register_plugin("Bomb Godmode","1.1","Emp & X-man")
register_event("ResetHUD","eResetHUD","be")
register_clcmd("fullupdate", "cmd_fullupdate")
register_event("BarTime", "UnSetGodmode", "be", "1=0")  
}
//----------------------------------------------------------------------------------------------
public cmd_fullupdate()
{
return PLUGIN_HANDLED
}
public eResetHUD(id)
{
if (g_restart_attempt[id])
{
  g_restart_attempt[id] = false
  return PLUGIN_CONTINUE
}
ePlayerSpawn(id)
return PLUGIN_CONTINUE
}
public ePlayerSpawn(id)
{
if(get_user_godmode(id))
  set_user_godmode(id)
}
//----------------------------------------------------------------------------------------------
public bomb_planting(id)
{

if ( is_user_alive(id) )
{
  set_user_godmode(id, 1)
  set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 255)
  client_print(id, print_chat, "[Bomb Godmode] You have 5 seconds of godmode for attempting to plant.")
  return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------------
public bomb_defusing(id)
{

if ( is_user_alive(id) )
{
  set_user_godmode(id, 1)
  set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 255)
  client_print(id, print_chat, "[Bomb Godmode] You have 5 seconds of godmode for attempting to defuse." )
  return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------------
public UnSetGodmode(id)
{
if(get_user_godmode(id))
  set_user_godmode(id)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0)
}


[/php]
回复

使用道具 举报

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

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