0920357689 发表于 2008-5-16 15:10:49

免費送炸彈和閃光彈問題

請問那里錯了

#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
}

baili1258 发表于 2008-5-16 15:32:43

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

这样试下!!!

#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
}

jim_yang 发表于 2008-5-16 16:02:26

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

is_user_connected(id)
return

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


需要fakemeta,从我用的一个函数现改的。
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")
}

baili1258 发表于 2008-5-16 16:53:34

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

嗯!
又学到了!!
谢谢

0920357689 发表于 2008-5-16 18:01:35

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

Post by jim_yang
is_user_connected(id)
return

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


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

那整個應該怎樣寫???

baili1258 发表于 2008-5-16 18:18:02

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

应该是这样的!!
不知道正确不
#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")
}

Rulzy 发表于 2008-5-17 01:57:13

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

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

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

0920357689 发表于 2008-5-17 10:10:56

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

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

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

這樣?

順道問一下...能不能教我排位?
#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
}

baili1258 发表于 2008-5-17 14:02:49

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

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

zwfgdlc 发表于 2008-5-19 14:45:01

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

Post by jim_yang
is_user_connected(id)
return

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


需要fakemeta,从我用的一个函数现改的。
public give_user_nade(id)
{
static weapons
weapons = pev(id, pev_weapons)
if(weapons & (1<<CSW_HEGRENADE) <= 0)
giv...
检查是否连接,还是需要的,在32人的混战服务器里,开局踢人的情况还是经常有的.不然对玩家执行某些命令会报错,出现"invalid player xx"之类的错误.
页: [1] 2
查看完整版本: 免費送炸彈和閃光彈問題