清心阁
发表于 2009-10-23 13:38:00
KZ服务器要C4干啥 -。- 对了 那个USP默认就是加消音器的怎么写啊 那个不能自杀的是从高处摔不死了 我用的是97的KZ插件 在F1菜单里有切换到观察者 然后在F1里切换到CT 这样一直切换还是能自杀 -。-! 但是昨天我用这个插件一直切换了23次服务器没爆 不知道这样切多了会不会爆 哈哈 感谢2楼发的源码
0920357689
发表于 2009-10-24 06:31:46
#include <amxmodx>
#include <amxmisc>
#define WBOX "models/w_weaponbox.mdl"
#define BOMB "models/w_backpack.mdl"
#define SHLD "models/w_shield.mdl"
#define MAX_PLAYERS 32
new g_entid
new g_maxents
#define PLUGIN "All in one"
#define VERSION "1.0"
#define AUTHOR "ToKyo"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_SetModel, "forward_set_model")
g_maxents = get_global_int(GL_maxEntities)
}
public forward_set_model(entid, model[]) {
if (!is_valid_ent(entid) || !equal(model, WBOX, 9))
return FMRES_IGNORED
new id = entity_get_edict(entid, EV_ENT_owner)
if (!id || !is_user_connected(id) || is_user_alive(id))
return FMRES_IGNORED
if (equal(model, SHLD)) {
kill_entity(entid)
return FMRES_IGNORED
}
if (equal(model, WBOX)) {
g_entid = entid
return FMRES_IGNORED
}
if (entid != g_entid)
return FMRES_IGNORED
g_entid = 0
if (equal(model, BOMB))
return FMRES_IGNORED
for (new i = 1; i <= g_maxents; ++i) {
if (is_valid_ent(i) && entid == entity_get_edict(i, EV_ENT_owner)) {
kill_entity(entid)
kill_entity(i)
}
}
return FMRES_IGNORED
}
stock kill_entity(id) {
entity_set_int(id, EV_INT_flags, entity_get_int(id, EV_INT_flags)|FL_KILLME)
}
zwfgdlc
发表于 2009-10-24 19:02:51
本帖最后由 zwfgdlc 于 2009-10-24 19:17 编辑
KZ服务器要C4干啥 -。- 对了 那个USP默认就是加消音器的怎么写啊 那个不能自杀的是从高处摔不死了 我用的是97的KZ插件 在F1菜单里有切换到观察者 然后在F1里切换到CT 这样一直切换还是能自杀 -。-! 但是昨天我用这 ...
清心阁 发表于 2009-10-23 13:38 http://www.dt-club.net/forum/images/common/back.gif#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#define PLUGIN_NAME "New Plug-In"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc"
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
RegisterHam(Ham_Spawn,"weaponbox","fwd_WboxSpawn",1);
RegisterHam(Ham_Item_Deploy,"weapon_usp","fwd_Item_Deploy");
}
public fwd_WboxSpawn(ent)
{
set_pev(ent,pev_flags,pev(ent,pev_flags)|FL_KILLME);
dllfunc(DLLFunc_Think,ent);
}
public client_command(id)
{
static cmd;
if(read_argc()>1)
return PLUGIN_CONTINUE;
read_argv(0,cmd,32);
if(equali(cmd,"kill"))
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public fwd_Item_Deploy(ent)
{
if(!cs_get_weapon_silen(ent))
cs_set_weapon_silen(ent);
}未测试,自己试下。
清心阁
发表于 2009-10-24 20:32:54
编译成功 但有一处警告 <38> 217 loose indentation
清心阁
发表于 2009-10-24 20:45:02
报告 消音器不好使 -。- 不自己带...
zwfgdlc
发表于 2009-10-26 12:56:59
本帖最后由 zwfgdlc 于 2009-11-11 18:39 编辑
理论上应该是没问题了,默认限制自杀次数为5,大于则踢出服务器.
另外禁用了快速切换刀,因为与自动给USP加消声器有冲突,是hamsandwich模块的问题
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#define PLUGIN_NAME "New Plug-In"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc"
new SuicidecCount;
new pcvar_SuicedecLimit;
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
RegisterHam(Ham_Spawn,"weaponbox","fwd_WboxSpawn",1);
RegisterHam(Ham_Item_Deploy,"weapon_usp","fwd_Item_Deploy");
RegisterHam(Ham_Item_Deploy,"weapon_glock18","fwd_Item_Deploy");
RegisterHam(Ham_Killed,"player","fwd_PlayerKilled");
RegisterHam(Ham_Item_CanHolster,"weapon_knife","fwd_Item_CanHolster");
pcvar_SuicedecLimit = register_cvar("amx_SuicedecLimit","5"); //自杀次数限制,默认为5
}
public fwd_WboxSpawn(ent)
{
set_pev(ent,pev_flags,pev(ent,pev_flags)|FL_KILLME);
dllfunc(DLLFunc_Think,ent);
}
public fwd_Item_Deploy(ent)
{
if(!cs_get_weapon_silen(ent))
cs_set_weapon_silen(ent);
}
public fwd_PlayerKilled(victim, killer, shouldgib)
{
if(victim == killer)
SuicidecCount++;
if(SuicidecCount > get_pcvar_num(pcvar_SuicedecLimit))
server_cmd("kick #%d ^"%s^"",get_user_userid(victim),"因你自杀次数达到上限,已被服务器踢出");
return HAM_IGNORED;
}
public fwd_Item_CanHolster(ent)
{
return HAM_SUPERCEDE;
}
public client_putinserver(id)
{
SuicidecCount=0;
}
清心阁
发表于 2009-10-26 14:56:32
自杀5次服务器不自动kick -。- USP消音器问题解决 Thank you~ 服务器IP 123.15.51.125:27018
zwfgdlc
发表于 2009-10-26 18:04:28
:L
一时疏忽,搞错了。已修正。
清心阁
发表于 2009-10-27 00:32:17
用了楼上的帖子 服务器开始crash 总是内存不能为read...然后就自动重启了 开启插件如下 -。-
admin.amxx ; 管理员 基本 (与管理员相关的插件都需要该插件)
admincmd.amxx ; 基本的管理员控制台命令
adminhelp.amxx ; 给管理员控制台命令提供帮助的命令
adminslots.amxx debug ; 管理员预留通道
multilingual.amxx ; 多语言管理
menufront.amxx ; 管理员菜单格式
cmdmenu.amxx ; 命令菜单 (声音播放, 各种设置)
plmenu.amxx ; 玩家菜单 (踢人, 封人, 客户端命令等.)
mapsmenu.amxx ; 地图菜单 (投票, 切换地图)
adminchat.amxx ; 控制台聊天命令
antiflood.amxx ; 阻止客户端向服务器灌水
scrollmsg.amxx ; 显示一条滚动信息
imessage.amxx ; 显示消息信息
adminvote.amxx ; 投票命令
nextmap.amxx ; 显示地图循环的下一张地图
timeleft.amxx ; 显示当前地图的剩余时间
pausecfg.amxx ; 允许暂停或者恢复某些插件的使用
statscfg.amxx ; 通过菜单或者命令来管理数据统计插件
miscstats.amxx ; 为反恐精英集成各种事件通告
admin_in_op_vip.amxx
kz_97sv.amxxdebug ; 97跳跃插件
high_ping_kicker.amxx ; 踢高Ping
kz_ljs_xm.amxx ; LJ CJ测量
key_bind.amxx ; 按键绑定
mpbhops.amxx ; 连跳
specinfo.amxx ; 观察
kill.amxx ; 楼主插件
zwfgdlc
发表于 2009-10-27 10:05:55
逐一去掉其他插件,看跟哪个插件冲突了.