清心阁 发表于 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

逐一去掉其他插件,看跟哪个插件冲突了.
页: 1 [2] 3
查看完整版本: 求武器落地自动消失插件