设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1548|回复: 12

【求助】爆炸光坏的代码怎么写? [复制链接]

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
379
精华
0
声望
3092 点
金币
371 Mold
被赞许
10 次
注册时间
2007-5-2
发表于 2011-7-22 22:16:22 |显示全部楼层
本帖最后由 Osker Lee 于 2011-7-24 00:12 编辑

其实也不是什么新鲜玩意,就是想在手雷拖尾插件的基础上再增加点东西,即手雷爆炸的时候,附带产生一个红色的光坏(如图示)。插件的代码写完了,但是无法运行,希望能有高人帮忙修改一下。谢谢!(运行环境:CS1.6 V4554 + AMXX1.8.1 + Metamod1.19)
  1. #include <amxmodx>

  2. #include <fakemeta>

  3. #include <hamsandwich>
  4. const m_fGrenadeState = 114;
  5. new exp;

  6. new cvar_radius;
  7. public plugin_init()

  8. {

  9.         register_plugin("GrenadeEffect", "1.0", "xxx");

  10.         cvar_radius = register_cvar("explosion_radius", "200");

  11.         RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade");

  12. }
  13. public plugin_precache()

  14.         exp = precache_model("sprites/shockwave.spr");
  15. public fw_ThinkGrenade(ent)

  16. {

  17.         // Invalid entity

  18.         if (!pev_valid(ent))

  19.                 return HAM_IGNORED;

  20.         

  21.         if (get_pdata_int(ent, m_fGrenadeState) & (1<<0))

  22.         {

  23.                 blastcircles(ent);

  24.         }

  25.         return HAM_IGNORED;

  26. }
  27. public blastcircles(id)

  28. {

  29.         client_print(0,print_chat,"blastcircles");

  30.         new Float:forigin[3];

  31.         pev(id, pev_origin, forigin);

  32.         new blast = get_pcvar_num(cvar_radius);

  33.         

  34.         engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, forigin)

  35.         write_byte(TE_BEAMCYLINDER)

  36.         engfunc(EngFunc_WriteCoord,forigin[0])

  37.         engfunc(EngFunc_WriteCoord,forigin[1])

  38.         engfunc(EngFunc_WriteCoord,forigin[2] - 16)

  39.         engfunc(EngFunc_WriteCoord,forigin[0])

  40.         engfunc(EngFunc_WriteCoord,forigin[1])

  41.         engfunc(EngFunc_WriteCoord,forigin[2] - 16 + blast)

  42.         write_short(exp)

  43.         write_byte(6)
  44.         write_byte(2)
  45.         write_byte(6)
  46.         write_byte(90)  //

  47.         write_byte(4)   //

  48.         write_byte(238) //

  49.         write_byte(130) //

  50.         write_byte(238)
  51.         write_byte(250)
  52.         write_byte(5)
  53.         message_end()
  54.          engfunc(EngFunc_MessageBegin, MSG_PVS,SVC_TEMPENTITY,forigin)

  55.         write_byte(TE_PARTICLEBURST) // TE id

  56.         engfunc(EngFunc_WriteCoord,forigin[0]) // x

  57.         engfunc(EngFunc_WriteCoord,forigin[1]) // y

  58.         engfunc(EngFunc_WriteCoord,forigin[2]) // z

  59.         write_short(240) //
  60.         write_byte(140) //
  61.         write_byte(2) //
  62.         message_end()
  63.          engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, forigin)

  64.         write_byte(TE_BEAMCYLINDER)

  65.         engfunc(EngFunc_WriteCoord,forigin[0])

  66.         engfunc(EngFunc_WriteCoord,forigin[1])

  67.         engfunc(EngFunc_WriteCoord,forigin[2] - 16)

  68.         engfunc(EngFunc_WriteCoord,forigin[0])

  69.         engfunc(EngFunc_WriteCoord,forigin[1])

  70.         engfunc(EngFunc_WriteCoord,forigin[2] - 2936 + blast /2)

  71.         write_short(exp)

  72.         write_byte(1)
  73.         write_byte(2)
  74.         write_byte(4)
  75.         write_byte(6)

  76.         write_byte(255)
  77.         write_byte(255)

  78.         write_byte(255)

  79.         write_byte(255)

  80.         write_byte(255)  

  81.         write_byte(5)
  82.         message_end()
  83.          engfunc(EngFunc_MessageBegin, MSG_PVS,SVC_TEMPENTITY,forigin)

  84.         write_byte(TE_PARTICLEBURST) // TE id

  85.         engfunc(EngFunc_WriteCoord,forigin[0]) // x

  86.         engfunc(EngFunc_WriteCoord,forigin[1]) // y

  87.         engfunc(EngFunc_WriteCoord,forigin[2]) // z

  88.         write_short(200) //
  89.         write_byte(100) //
  90.         write_byte(4) //
  91.         message_end()
  92. }
复制代码


00.jpg

使用道具 举报

Modchina声望-崇敬

妹纸什么的都是浮云

Rank: 10Rank: 10Rank: 10

帖子
705
精华
1
声望
4405 点
金币
256 Mold
被赞许
31 次
注册时间
2010-9-8

懒人勋章 可爱小猫

发表于 2011-7-22 22:25:12 |显示全部楼层
有点像豆客平台上的炫雷卡,用了之后也想这样有手雷拖尾,爆炸后有爆炸光环,“还有 炸死 你丫的” 这几个字

使用道具 举报

Rank: 2

帖子
39
精华
0
声望
330 点
金币
67 Mold
被赞许
-1 次
注册时间
2011-6-23
发表于 2011-7-22 23:49:36 |显示全部楼层
好啊啊啊啊,希望成功啊

点评

mmbnjh  警告!下次别灌水了  发表于 2011-7-23 10:55:29

使用道具 举报

Rank: 5Rank: 5

帖子
361
精华
0
声望
1021 点
金币
493 Mold
被赞许
35 次
注册时间
2011-7-4
发表于 2011-7-23 02:30:09 |显示全部楼层
public HE_explode(ent)

{

if(!pev_valid(ent))

  return;



new origin[3], FloatriginG[3]

pev(ent, pev_origin, originG)

fm_FVecIVec(originG,origin)

  

HE_Explosion(origin)

}


仔细检查下你的代码
再看看你少用了哪个头文件(fakemeta在哪?)

使用道具 举报

Rank: 10Rank: 10Rank: 10

帖子
1250
精华
0
声望
3577 点
金币
470 Mold
被赞许
45 次
注册时间
2010-7-13

可爱小猫

发表于 2011-7-23 10:35:52 |显示全部楼层
本帖最后由 水蛭 于 2011-7-23 10:37 编辑

  • message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  • write_byte(21)
  • write_coord(origin[0])
  • write_coord(origin)
  • write_coord(origin[2])
  • write_coord(origin[0])
  • write_coord(origin)
  • write_coord(origin[2] + 385)
  • write_short(ExSpr)
  • write_byte(0)
  • write_byte(0)
  • write_byte(5)
  • write_byte(80)
  • write_byte(0)
  • write_byte(225)
  • write_byte(0)
  • write_byte(0)
  • write_byte(192)
  • write_byte(0)
  • message_end()
  • message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  • write_byte(21)
  • write_coord(origin[0])
  • write_coord(origin)
  • write_coord(origin[2])
  • write_coord(origin[0])
  • write_coord(origin[1])
  • write_coord(origin[2] + 470)
  • write_short(ExSpr)
  • write_byte(0)
  • write_byte(0)
  • write_byte(5)
  • write_byte(80)
  • write_byte(0)
  • write_byte(225)
  • write_byte(0)
  • write_byte(0)
  • write_byte(192)
  • write_byte(0)
  • message_end()
  • message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  • write_byte(21)
  • write_coord(origin[0])
  • write_coord(origin[1])
  • write_coord(origin[2])
  • write_coord(origin[0])
  • write_coord(origin[1])
  • write_coord(origin[2] + 555)
  • write_short(ExSpr)
  • write_byte(0)
  • write_byte(0)
  • write_byte(5)
  • write_byte(80)
  • write_byte(0)
  • write_byte(225)
  • write_byte(0)
  • write_byte(0)
  • write_byte(192)
  • write_byte(0)
  • message_end()
三个光环,分别以message_begin开头和message_end结尾。

使用道具 举报

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
379
精华
0
声望
3092 点
金币
371 Mold
被赞许
10 次
注册时间
2007-5-2
发表于 2011-7-23 18:16:08 |显示全部楼层
重写了一下代码,结果发现CS1.5能用,CS1.6用了一扔手雷就当机,游戏会被弹出,很困惑啊,希望高人继续来帮忙。
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <hamsandwich>

  4. const m_fGrenadeState = 114;

  5. new exp;
  6. new cvar_radius;

  7. public plugin_init()
  8. {
  9.         register_plugin("GrenadeEffect", "1.0", "xxx");
  10.         cvar_radius = register_cvar("explosion_radius", "200");
  11.         RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade");
  12. }

  13. public plugin_precache()
  14.         exp = precache_model("sprites/shockwave.spr");

  15. public fw_ThinkGrenade(ent)
  16. {
  17.         // Invalid entity
  18.         if (!pev_valid(ent))
  19.                 return HAM_IGNORED;
  20.         
  21.         if (get_pdata_int(ent, m_fGrenadeState) & (1<<0))
  22.         {
  23.                 blastcircles(ent);
  24.         }
  25.         return HAM_IGNORED;
  26. }

  27. public blastcircles(id)
  28. {
  29.         client_print(0,print_chat,"blastcircles");
  30.         new Float:forigin[3];
  31.         pev(id, pev_origin, forigin);
  32.         new blast = get_pcvar_num(cvar_radius);
  33.         
  34.         engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, forigin)
  35.         write_byte(TE_BEAMCYLINDER)
  36.         engfunc(EngFunc_WriteCoord,forigin[0])
  37.         engfunc(EngFunc_WriteCoord,forigin[1])
  38.         engfunc(EngFunc_WriteCoord,forigin[2] - 16)
  39.         engfunc(EngFunc_WriteCoord,forigin[0])
  40.         engfunc(EngFunc_WriteCoord,forigin[1])
  41.         engfunc(EngFunc_WriteCoord,forigin[2] - 16 + blast)
  42.         write_short(exp)
  43.         write_byte(6)
  44.         write_byte(2)
  45.         write_byte(6)
  46.         write_byte(90)  //
  47.         write_byte(4)   //
  48.         write_byte(238) //
  49.         write_byte(130) //
  50.         write_byte(238)
  51.         write_byte(250)
  52.         write_byte(5)
  53.         message_end()

  54.         engfunc(EngFunc_MessageBegin, MSG_PVS,SVC_TEMPENTITY,forigin)
  55.         write_byte(TE_PARTICLEBURST) // TE id
  56.         engfunc(EngFunc_WriteCoord,forigin[0]) // x
  57.         engfunc(EngFunc_WriteCoord,forigin[1]) // y
  58.         engfunc(EngFunc_WriteCoord,forigin[2]) // z
  59.         write_short(240) //
  60.         write_byte(140) //
  61.         write_byte(2) //
  62.         message_end()

  63.         engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, forigin)
  64.         write_byte(TE_BEAMCYLINDER)
  65.         engfunc(EngFunc_WriteCoord,forigin[0])
  66.         engfunc(EngFunc_WriteCoord,forigin[1])
  67.         engfunc(EngFunc_WriteCoord,forigin[2] - 16)
  68.         engfunc(EngFunc_WriteCoord,forigin[0])
  69.         engfunc(EngFunc_WriteCoord,forigin[1])
  70.         engfunc(EngFunc_WriteCoord,forigin[2] - 2936 + blast /2)
  71.         write_short(exp)
  72.         write_byte(1)
  73.         write_byte(2)
  74.         write_byte(4)
  75.         write_byte(6)
  76.         write_byte(255)
  77.         write_byte(255)
  78.         write_byte(255)
  79.         write_byte(255)
  80.         write_byte(255)  
  81.         write_byte(5)
  82.         message_end()

  83.         engfunc(EngFunc_MessageBegin, MSG_PVS,SVC_TEMPENTITY,forigin)
  84.         write_byte(TE_PARTICLEBURST) // TE id
  85.         engfunc(EngFunc_WriteCoord,forigin[0]) // x
  86.         engfunc(EngFunc_WriteCoord,forigin[1]) // y
  87.         engfunc(EngFunc_WriteCoord,forigin[2]) // z
  88.         write_short(200) //
  89.         write_byte(100) //
  90.         write_byte(4) //
  91.         message_end()

  92. }
复制代码

使用道具 举报

Rank: 10Rank: 10Rank: 10

帖子
483
精华
1
声望
3727 点
金币
607 Mold
被赞许
11 次
注册时间
2009-7-15
发表于 2011-7-23 21:53:58 |显示全部楼层
本帖最后由 Ethan 于 2011-7-23 22:01 编辑

代码没问题,我在cs1.6 3248 和3266 在 amxx 1.81 测试通过
http://hi.baidu.com/ethan_xue 博客 cs修改教程

使用道具 举报

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
379
精华
0
声望
3092 点
金币
371 Mold
被赞许
10 次
注册时间
2007-5-2
发表于 2011-7-23 22:21:38 |显示全部楼层
可是为什么我的就不行呢,我的是CS1.6 V4554 + AMXX1.8.1 + Metamod1.19,难道是我的CS1.6版本问题?

使用道具 举报

Rank: 1

帖子
8
精华
0
声望
59 点
金币
15 Mold
被赞许
0 次
注册时间
2011-7-20
发表于 2011-7-23 22:50:56 |显示全部楼层
参考下ZP吧,不解释.根本不需要#include <engine> #include <csx>这两个渣货

使用道具 举报

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
379
精华
0
声望
3092 点
金币
371 Mold
被赞许
10 次
注册时间
2007-5-2
发表于 2011-7-24 04:28:18 |显示全部楼层
解决了,原来是插件冲突,关闭了一些其他插件后就正常了。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部