搜索
查看: 5394|回复: 15

免費送炸彈和閃光彈問題

[复制链接]
发表于 2008-5-16 15:10:49 | 显示全部楼层 |阅读模式 来自 中国–香港
請問那里錯了

[PHP]#include <amxmodx>
#include <cstrike>
#include <fun>
#define PLUGIN_NAME "Free eq"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "ToKyo"
public plugin_init() {
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
    register_event("ResetHUD","eResetHUD","b")
    return PLUGIN_CONTINUE
}
public ResetHUD(id) {
if(!is_user_alive(id)) {
return PLUGIN_CONTINUE
}
if (cs_get_user_hasprim(id)){
return PLUGIN_CONTINUE
}
else {
if(get_user_flags(id)) {
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_hegrenade")
}
}
return PLUGIN_CONTINUE
}[/PHP]
发表于 2008-5-16 15:32:43 | 显示全部楼层 来自 中国–广东–深圳

回复: 免費送炸彈和閃光彈問題

这样试下!!!
[PHP]
#include <amxmodx>
#include <cstrike>
#include <fun>
#define PLUGIN_NAME "Free eq"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "ToKyo"
public plugin_init() {
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_event("ResetHUD","eResetHUD","be")
return PLUGIN_CONTINUE
}
public eResetHUD(id) {

if(is_user_connected(id)) //排除正在连接的
  return PLUGIN_CONTINUE

if (cs_get_user_hasprim(id))//排除有主武器的??
  return PLUGIN_CONTINUE

give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_hegrenade")
return PLUGIN_CONTINUE
}  

[/PHP]
回复

使用道具 举报

发表于 2008-5-16 16:02:26 | 显示全部楼层 来自 中国–北京–北京–海淀区

回复: 免費送炸彈和閃光彈問題

is_user_connected(id)
return

这样谁也得不到了,"e"标志是判断消息接收者是否是活着的,既然活着就肯定在服务器内,不用做多余检查,另外如果我没记错的话,如果有手雷的话你再给是没什么作用的,当然检查一下可以提高效率。
  1. 需要fakemeta,从我用的一个函数现改的。
  2. public give_user_nade(id)
  3. {
  4. static weapons
  5. weapons = pev(id, pev_weapons)
  6. if(weapons & (1<<CSW_HEGRENADE) <= 0)
  7.   give_item(id, "weapon_hegrenade")
  8. if(cs_get_user_bpammo(id, CSW_FLASHBANG) < 2)
  9. {
  10.   give_item(id, "weapon_flashbang")
  11.   cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
  12. }
  13. if(weapons & (1<<CSW_SMOKEGRENADE) <= 0)
  14.   give_item(id, "weapon_smokegrenade")
  15. }
复制代码
回复

使用道具 举报

发表于 2008-5-16 16:53:34 | 显示全部楼层 来自 中国–广东–深圳

回复: 免費送炸彈和閃光彈問題

嗯!
又学到了!!
谢谢
回复

使用道具 举报

 楼主| 发表于 2008-5-16 18:01:35 | 显示全部楼层 来自 中国–香港

回复: 免費送炸彈和閃光彈問題

Post by jim_yang
is_user_connected(id)
return

这样谁也得不到了,"e"标志是判断消息接收者是否是活着的,既然活着就肯定在服务器内,不用做多余检查,另外如果我没记错的话,如果有手雷的话你再给是没什么作用的,当然检查一下可以提高效率。

[code]
需要fakemeta,从我用的一个函数现改的。
public give_user_nade(id)
{
static weapons
weapons = pev(id, pev_weapons)
if(weapons & (1<<CSW_HEGRENADE) <= 0)
giv...

那整個應該怎樣寫???
回复

使用道具 举报

发表于 2008-5-16 18:18:02 | 显示全部楼层 来自 中国–广东–深圳

回复: 免費送炸彈和閃光彈問題

应该是这样的!!
不知道正确不
[PHP]#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#define PLUGIN_NAME "Free eq"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "ToKyo"
public plugin_init() {
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_event("ResetHUD","eResetHUD","b")
return PLUGIN_CONTINUE
}
public eResetHUD(id) {

if(is_user_connected(id)) //排除正在连接的
  return

if (cs_get_user_hasprim(id))//排除有主武器的??
  return PLUGIN_CONTINUE
  
give_user_nade(id)
return PLUGIN_CONTINUE
}  
public give_user_nade(id)
{
static weapons
weapons = pev(id, pev_weapons)
if(weapons & (1<<CSW_HEGRENADE) <= 0)
  give_item(id, "weapon_hegrenade")
if(cs_get_user_bpammo(id, CSW_FLASHBANG) < 2)
{
  give_item(id, "weapon_flashbang")
  cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
}
if(weapons & (1<<CSW_SMOKEGRENADE) <= 0)
  give_item(id, "weapon_smokegrenade")
}  
[/PHP]
回复

使用道具 举报

发表于 2008-5-17 01:57:13 | 显示全部楼层 来自 中国–福建–漳州

回复: 免費送炸彈和閃光彈問題

is_user_connected(id) 这个是已经连接了的。

正在连接的函数是:is_user_connecting(id)
回复

使用道具 举报

 楼主| 发表于 2008-5-17 10:10:56 | 显示全部楼层 来自 中国–香港

回复: 免費送炸彈和閃光彈問題

Post by Rulzy
is_user_connected(id) 这个是已经连接了的。

正在连接的函数是:is_user_connecting(...

這樣?

順道問一下...能不能教我排位?
[php]#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#define PLUGIN_NAME "Free eq"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "ToKyo"
public plugin_init() {
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_event("ResetHUD","eResetHUD","b")
return PLUGIN_CONTINUE
}
public eResetHUD(id) {
if (is_user_connecting(id)){
return PLUGIN_CONTINUE
}
else {
give_user_nade(id)
return PLUGIN_CONTINUE
    }
return PLUGIN_CONTINUE
}
public give_user_nade(id) {
static weapons
weapons = pev(id, pev_weapons)
if(weapons & (1<<CSW_HEGRENADE) <= 0)
give_item(id, "weapon_hegrenade")
if(cs_get_user_bpammo(id, CSW_FLASHBANG) < 2)
{
give_item(id, "weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
}
if(weapons & (1<<CSW_SMOKEGRENADE) <= 0)
give_item(id, "weapon_smokegrenade")
return PLUGIN_CONTINUE
}
[/php]
回复

使用道具 举报

发表于 2008-5-17 14:02:49 | 显示全部楼层 来自 中国–广东–深圳–福田区

回复: 免費送炸彈和閃光彈問題

不好意思!
我搞错了!!
谢谢版主
重新排了下
看看这样

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2008-5-19 14:45:01 | 显示全部楼层 来自 中国–广东–惠州–惠城区

回复: 免費送炸彈和閃光彈問題

Post by jim_yang
is_user_connected(id)
return

这样谁也得不到了,"e"标志是判断消息接收者是否是活着的,既然活着就肯定在服务器内,不用做多余检查,另外如果我没记错的话,如果有手雷的话你再给是没什么作用的,当然检查一下可以提高效率。

[code]
需要fakemeta,从我用的一个函数现改的。
public give_user_nade(id)
{
static weapons
weapons = pev(id, pev_weapons)
if(weapons & (1<<CSW_HEGRENADE) <= 0)
giv...
检查是否连接,还是需要的,在32人的混战服务器里,开局踢人的情况还是经常有的.不然对玩家执行某些命令会报错,出现"invalid player xx"之类的错误.
回复

使用道具 举报

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

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