搜索
楼主: 清心阁

求武器落地自动消失插件

[复制链接]
 楼主| 发表于 2009-10-23 13:38:00 | 显示全部楼层 来自 中国–河南–郑州
KZ服务器要C4干啥 -。- 对了 那个USP默认就是加消音器的怎么写啊 那个不能自杀的是从高处摔不死了 我用的是97的KZ插件 在F1菜单里有切换到观察者 然后在F1里切换到CT 这样一直切换还是能自杀 -。-! 但是昨天我用这个插件一直切换了23次服务器没爆 不知道这样切多了会不会爆 哈哈 感谢2楼发的源码
回复

使用道具 举报

发表于 2009-10-24 06:31:46 | 显示全部楼层 来自 中国–香港
  1. #include <amxmodx>
  2. #include <amxmisc>

  3. #define WBOX "models/w_weaponbox.mdl"
  4. #define BOMB "models/w_backpack.mdl"
  5. #define SHLD "models/w_shield.mdl"

  6. #define MAX_PLAYERS 32
  7. new g_entid[MAX_PLAYERS + 1]
  8. new g_maxents

  9. #define PLUGIN "All in one"
  10. #define VERSION "1.0"
  11. #define AUTHOR "ToKyo"

  12. public plugin_init()
  13. {
  14.         register_plugin(PLUGIN, VERSION, AUTHOR)
  15.         register_forward(FM_SetModel, "forward_set_model")
  16.         g_maxents = get_global_int(GL_maxEntities)
  17. }

  18. public forward_set_model(entid, model[]) {
  19.         if (!is_valid_ent(entid) || !equal(model, WBOX, 9))
  20.                 return FMRES_IGNORED

  21.         new id = entity_get_edict(entid, EV_ENT_owner)
  22.         if (!id || !is_user_connected(id) || is_user_alive(id))
  23.                 return FMRES_IGNORED

  24.         if (equal(model, SHLD)) {
  25.                 kill_entity(entid)
  26.                 return FMRES_IGNORED
  27.         }

  28.         if (equal(model, WBOX)) {
  29.                 g_entid[id] = entid
  30.                 return FMRES_IGNORED
  31.         }

  32.         if (entid != g_entid[id])
  33.                 return FMRES_IGNORED

  34.         g_entid[id] = 0

  35.         if (equal(model, BOMB))
  36.                 return FMRES_IGNORED

  37.         for (new i = 1; i <= g_maxents; ++i) {
  38.                 if (is_valid_ent(i) && entid == entity_get_edict(i, EV_ENT_owner)) {
  39.                         kill_entity(entid)
  40.                         kill_entity(i)
  41.                 }
  42.         }

  43.         return FMRES_IGNORED
  44. }

  45. stock kill_entity(id) {
  46.         entity_set_int(id, EV_INT_flags, entity_get_int(id, EV_INT_flags)|FL_KILLME)
  47. }
复制代码
回复

使用道具 举报

发表于 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
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <hamsandwich>
  5. #include <fakemeta>


  6. #define PLUGIN_NAME        "New Plug-In"
  7. #define PLUGIN_VERSION        "1.0"
  8. #define PLUGIN_AUTHOR        "zwfgdlc"



  9. public plugin_init()
  10. {
  11.         register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  12.         RegisterHam(Ham_Spawn,"weaponbox","fwd_WboxSpawn",1);
  13.         RegisterHam(Ham_Item_Deploy,"weapon_usp","fwd_Item_Deploy");
  14. }

  15. public fwd_WboxSpawn(ent)
  16. {
  17.         set_pev(ent,pev_flags,pev(ent,pev_flags)|FL_KILLME);
  18.         dllfunc(DLLFunc_Think,ent);
  19. }

  20. public client_command(id)
  21. {
  22.         static cmd[32];
  23.        
  24.         if(read_argc()>1)
  25.                 return PLUGIN_CONTINUE;
  26.        
  27.         read_argv(0,cmd,32);
  28.        
  29.         if(equali(cmd,"kill"))
  30.                 return PLUGIN_HANDLED;
  31.               return PLUGIN_CONTINUE;
  32. }

  33. public fwd_Item_Deploy(ent)
  34. {
  35.         if(!cs_get_weapon_silen(ent))
  36.                 cs_set_weapon_silen(ent);
  37. }
复制代码
未测试,自己试下。
回复

使用道具 举报

 楼主| 发表于 2009-10-24 20:32:54 | 显示全部楼层 来自 中国–河南–郑州
编译成功 但有一处警告 <38> 217 loose indentation
回复

使用道具 举报

 楼主| 发表于 2009-10-24 20:45:02 | 显示全部楼层 来自 中国–河南–郑州
报告 消音器不好使 -。- 不自己带...
回复

使用道具 举报

发表于 2009-10-26 12:56:59 | 显示全部楼层 来自 中国–广东–肇庆
本帖最后由 zwfgdlc 于 2009-11-11 18:39 编辑

理论上应该是没问题了,默认限制自杀次数为5,大于则踢出服务器.
另外禁用了快速切换刀,因为与自动给USP加消声器有冲突,是hamsandwich模块的问题

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <hamsandwich>
  5. #include <fakemeta>

  6. #define PLUGIN_NAME        "New Plug-In"
  7. #define PLUGIN_VERSION        "1.0"
  8. #define PLUGIN_AUTHOR        "zwfgdlc"

  9. new SuicidecCount[33];
  10. new pcvar_SuicedecLimit;

  11. public plugin_init()
  12. {
  13.         register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  14.         RegisterHam(Ham_Spawn,"weaponbox","fwd_WboxSpawn",1);
  15.         RegisterHam(Ham_Item_Deploy,"weapon_usp","fwd_Item_Deploy");
  16.         RegisterHam(Ham_Item_Deploy,"weapon_glock18","fwd_Item_Deploy");
  17.         RegisterHam(Ham_Killed,"player","fwd_PlayerKilled");
  18.         RegisterHam(Ham_Item_CanHolster,"weapon_knife","fwd_Item_CanHolster");
  19.         pcvar_SuicedecLimit = register_cvar("amx_SuicedecLimit","5"); //自杀次数限制,默认为5
  20. }

  21. public fwd_WboxSpawn(ent)
  22. {
  23.         set_pev(ent,pev_flags,pev(ent,pev_flags)|FL_KILLME);
  24.         dllfunc(DLLFunc_Think,ent);
  25. }

  26. public fwd_Item_Deploy(ent)
  27. {
  28.         if(!cs_get_weapon_silen(ent))
  29.                 cs_set_weapon_silen(ent);
  30. }
  31. public fwd_PlayerKilled(victim, killer, shouldgib)
  32. {
  33.         if(victim == killer)
  34.         SuicidecCount[victim]++;
  35.         
  36.         if(SuicidecCount[victim] > get_pcvar_num(pcvar_SuicedecLimit))
  37.         server_cmd("kick #%d ^"%s^"",get_user_userid(victim),"因你自杀次数达到上限,已被服务器踢出");
  38.         
  39.         return HAM_IGNORED;
  40. }

  41. public fwd_Item_CanHolster(ent)
  42. {
  43.         return HAM_SUPERCEDE;
  44. }

  45. public client_putinserver(id)
  46. {
  47.         SuicidecCount[id]=0;
  48. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2009-10-26 14:56:32 | 显示全部楼层 来自 中国–河南–郑州–金水区
自杀5次服务器不自动kick -。- USP消音器问题解决 Thank you~ 服务器IP 123.15.51.125:27018
回复

使用道具 举报

发表于 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.amxx  debug     ; 97跳跃插件
high_ping_kicker.amxx        ; 踢高Ping
kz_ljs_xm.amxx          ; LJ CJ测量
key_bind.amxx           ; 按键绑定
mpbhops.amxx            ; 连跳
specinfo.amxx           ; 观察
kill.amxx               ; 楼主插件
回复

使用道具 举报

发表于 2009-10-27 10:05:55 | 显示全部楼层 来自 中国–广东–佛山
逐一去掉其他插件,看跟哪个插件冲突了.
回复

使用道具 举报

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

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