搜索
查看: 9893|回复: 14

sakulekingz请教一下.关于write_byte的用法

[复制链接]
发表于 2010-2-28 04:02:16 | 显示全部楼层 |阅读模式 来自 中国–广东–广州
deagle_explode(vec1[3])
{
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
        write_byte(12); 
        write_coord(vec1[0]); 
        write_coord(vec1[1]); 
        write_coord(vec1[2]); 
        write_byte(200); 
        write_byte(10); 
        message_end();
        
}
 楼主| 发表于 2010-2-28 04:04:24 | 显示全部楼层 来自 中国–广东–广州
我在闪亮出场代码结尾部份加了
上面这代码以后.就出现了这个效果
看图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

 楼主| 发表于 2010-2-28 04:09:01 | 显示全部楼层 来自 中国–广东–广州
但这像烟花的爆炸特效一出.就有一声似手雷的爆炸声
想问一下怎样把他去掉.又可保留这个特效
我最后所希望做出的效果想和这视频一样

闪亮登场视频
http://www.tudou.com/programs/view/_FUcYG-P-Ks/
回复

使用道具 举报

发表于 2010-2-28 14:23:45 | 显示全部楼层 来自 中国–广东–深圳
create_explo2(const Float:originF[3])
{

 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
 write_byte(TE_EXPLOSION2) // TE id: 12
 engfunc(EngFunc_WriteCoord, originF[0]) // x
 engfunc(EngFunc_WriteCoord, originF[1]) // y
 engfunc(EngFunc_WriteCoord, originF[2]) // z
 write_byte(1) // starting color
 write_byte(10) // num colors
 message_end()
}
#define TE_EXPLOSION2               12       // Quake1 colormaped (base palette) particle explosion with sound
// write_byte(TE_EXPLOSION2)
// write_coord(position.x)
// write_coord(position.y)
// write_coord(position.z)
// write_byte(starting color)
// write_byte(num colors)

这个特效本身都带声音的,应该是无法去掉!
回复

使用道具 举报

发表于 2010-2-28 19:55:06 | 显示全部楼层 来自 中国–广东–韶关

  1.         message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  2.         write_byte(TE_EXPLOSION)
  3.         write_coord(pos[0])
  4.         write_coord(pos[1])
  5.         write_coord(pos[2])
  6.         write_short(spr)
  7.         write_byte(scale)                                        // scale in 0.1's
  8.         write_byte(framerate)                                // framerate
  9.         write_byte(4)                                                // Do not play the explosion sound
  10.         message_end()
  11. 试一下
复制代码
回复

使用道具 举报

发表于 2010-2-28 20:28:36 | 显示全部楼层 来自 中国–广东–汕尾
  1. deagle_explode(vec1[3])
  2. {
  3.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  4.         write_byte(TE_EXPLOSION);
  5.         write_coord(vec1[0]);
  6.         write_coord(vec1[1]);
  7.         write_coord(vec1[2]);
  8.         write_short(要显示的SPR);
  9.         write_byte(时间);
  10.         write_byte(帧速);
  11.         write_byte(TE_EXPLFLAG_NOSOUND);//关键代码,这样就没有爆炸声了
  12.         message_end();
  13. }
复制代码
你可以把火星效果做成SPR,然后使用上面的代码

你用的代码是没法设置发声的
回复

使用道具 举报

 楼主| 发表于 2010-2-28 20:37:15 | 显示全部楼层 来自 中国–广东–广州
本帖最后由 点通粉丝 于 2010-2-28 20:55 编辑

deagle_explode(vec1[3])

{

        message_begin(MSG_BROADCAST,SVC_TEMPENTITY);

        write_byte(TE_EXPLOSION);

        write_coord(vec1[0]);

        write_coord(vec1[1]);

        write_coord(vec1[2]);

        write_short(要显示的SPR);

        write_byte(时间);

        write_byte(帧速);

        write_byte(TE_EXPLFLAG_NOSOUND);//关键代码,这样就没有爆炸声了

        message_end();

}楼上的代码..己在我总代码上有的一个效果了
而就算用了这代码也做不出我想要的效果.知不

下面这代码才是我想要的效果知不
deagle_explode(vec1[3])
{
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
        write_byte(12);
        write_coord(vec1[0]);
        write_coord(vec1[1]);
        write_coord(vec1[2]);
        write_byte(200);
        write_byte(10);
        message_end();
        
}

==========================

在我原来的总代码的结尾部份是这样的
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
        write_byte(TE_EXPLOSION)
        write_coord(vec1[0])
        write_coord(vec1[1])
        write_coord(vec1[2])
        write_short(g_lightning)
        write_byte(250)
        write_byte(180)
        write_byte(TE_EXPLFLAG_NOSOUND)
        message_end();

}

所以楼上的那段代码上..跟本做不出我所说的烟花爆炸效果
这我也知可运用cs中的spr来做一个        write_short(g_lightning)烟花爆炸效果
但效果不理想...跟视频上那效果差远了
回复

使用道具 举报

 楼主| 发表于 2010-2-28 20:46:21 | 显示全部楼层 来自 中国–广东–广州
再发个列子代码.让大家帮忙看一下
这是B13手枪杀敌效果.他里面就有一段这样的代码

deagle_explode(vec1[3])
{
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
        write_byte(12);
        write_coord(vec1[0]);
        write_coord(vec1[1]);
        write_coord(vec1[2]);
        write_byte(200);
        write_byte(10);
        message_end();
        
}

但问是下面的代码里.他杀人后也会有这像烟花的爆炸效果
但他不会有爆炸声呀.............
我就想问一下他是怎做到的.情形就是这样了
  1.         MODULES required: Fakemeta
  2. */
  3. #include <amxmodx>
  4. #include <fakemeta>

  5. #define V_MODEL                 "models/v_deagle.mdl"
  6. #define W_MODEL                        "models/w_357.mdl"
  7. #define P_MODEL                 "models/p_357.mdl"
  8. #define DEAGLE_W_MODEL                 "models/w_357.mdl"
  9. new
  10. toggle,toggle_icon,toggle_shake,
  11. toggle_fade,toggle_explode, toggle_mdl,
  12. toggle_light,toggle_dur,p_dur,toggle_hs,p_hs;
  13. new
  14. shake,atack,
  15. iconstatus,screenfade;
  16. new bool:g_Icon[33];
  17. new white,lightning,g_sModelIndexSmoke;
  18. new g_Hs[33];

  19. public plugin_init()
  20. {
  21.         register_plugin("Deagle Power","2.1.1","anakin_cstrike");
  22.         register_forward(FM_SetModel,"fw_setmodel"/*,1*/);
  23.         register_event("CurWeapon", "event_curw", "be","1=1");
  24.         register_event("DeathMsg","hook_death","a");
  25.        
  26.         toggle = register_cvar("deagle_power","1");
  27.         toggle_shake = register_cvar("deagle_power_shake","0");
  28.         toggle_icon = register_cvar("deagle_power_icon","1");
  29.         toggle_fade = register_cvar("deagle_power_screenflash","0");
  30.         toggle_explode = register_cvar("deagle_power_explode","1");
  31.         toggle_light = register_cvar("deagle_power_light","1");
  32.         toggle_dur = register_cvar("deagle_power_lightduration","6");
  33.         toggle_hs = register_cvar("deagle_power_hs","6");
  34.         toggle_mdl = register_cvar("deagle_power_model","1");
  35.        
  36.         p_dur = get_pcvar_num(toggle_dur);
  37.         p_hs = get_pcvar_num(toggle_hs);
  38.        
  39.         shake = get_user_msgid("ScreenShake");
  40.         iconstatus = get_user_msgid("StatusIcon");
  41.         screenfade = get_user_msgid("ScreenFade");
  42. }
  43. public client_connect(id) {g_Hs[id] = 0;g_Icon[id] = false;}
  44. public client_disconnect(id) {g_Hs[id] = 0;g_Icon[id] = false;}
  45. public plugin_precache()
  46. {
  47.         engfunc(EngFunc_PrecacheModel,V_MODEL);
  48.         engfunc(EngFunc_PrecacheModel,P_MODEL);
  49.         engfunc(EngFunc_PrecacheModel,W_MODEL);
  50.         precache_sound( "ambience/mgun_burst4.wav");
  51.         precache_sound( "weapons/headshot2.wav");
  52.         precache_sound( "weapons/flashbang-2.wav");
  53.        
  54.         g_sModelIndexSmoke = precache_model("sprites/steam1.spr");
  55.         lightning = precache_model("sprites/xenobeam.spr");
  56.         white = precache_model("sprites/white.spr");
  57.         return PLUGIN_CONTINUE
  58. }
  59. public fw_setmodel(ent,const model[])
  60. {
  61.         if(get_pcvar_num(toggle) != 1)
  62.                 return FMRES_IGNORED;
  63.         if(get_pcvar_num(toggle_mdl) != 1)
  64.                 return FMRES_IGNORED;
  65.                
  66.         if(strcmp(DEAGLE_W_MODEL,model))
  67.                 return FMRES_IGNORED;
  68.                
  69.         static classname[32]
  70.         pev(ent,pev_classname,classname,31);
  71.        
  72.         if(!strcmp(classname, "weaponbox") || !strcmp(classname, "armoury_entity") || !strcmp(classname, "grenade"))
  73.         {
  74.                 engfunc(EngFunc_SetModel,ent,W_MODEL);
  75.                 return FMRES_SUPERCEDE;
  76.         }
  77.         return FMRES_IGNORED;
  78. }

  79. public event_curw(id)
  80. {
  81.         if(get_pcvar_num(toggle) != 1)
  82.                 return PLUGIN_CONTINUE;
  83.         if(!is_user_alive(id))
  84.                 return PLUGIN_CONTINUE;
  85.         new wID = read_data(2);
  86.         if(wID != CSW_DEAGLE)
  87.                 return PLUGIN_CONTINUE;
  88.                
  89.         set_pev(id,pev_viewmodel2,V_MODEL);
  90.         set_pev(id,pev_weaponmodel2,P_MODEL);
  91.        
  92.         atack = pev(id,pev_button)
  93.         if(wID == CSW_DEAGLE && get_pcvar_num(toggle_shake) == 1 && atack & IN_ATTACK)
  94.         {
  95.                 message_begin(MSG_ONE,shake,{0,0,0},id);
  96.                 write_short(1<<13);
  97.                 write_short(1<<13);
  98.                 write_short(1<<13);
  99.                 message_end();
  100.         }
  101.         return PLUGIN_CONTINUE;
  102. }

  103. public hook_death()
  104. {
  105.         if(get_pcvar_num(toggle) != 1)
  106.                 return PLUGIN_CONTINUE;
  107.         static weapon[2];
  108.         read_data(4,weapon,1);
  109.         if(weapon[0] != 'd')
  110.                 return PLUGIN_CONTINUE;
  111.                
  112.         static killer,victim,kname[32];
  113.         killer = read_data(1);
  114.         victim = read_data(2);
  115.         get_user_name(killer,kname,31);
  116.         g_Hs[victim] = 0;
  117.         if(read_data(3))
  118.         {
  119.                 g_Hs[killer]++;
  120.                 if(get_pcvar_num(toggle_icon) == 1)
  121.                 {
  122.                         g_Icon[killer] = true;
  123.                         message_begin(MSG_ONE,iconstatus,{0,0,0},killer);
  124.                         write_byte(2);
  125.                         write_string("dmg_shock");
  126.                         write_byte(255);
  127.                         write_byte(0);
  128.                         write_byte(0);
  129.                         message_end();
  130.                         set_task(3.0,"reset_icon",killer);
  131.                 }
  132.                 if(get_pcvar_num(toggle_explode) == 1)
  133.                 {
  134.                         new vorigin[3],srco[3];
  135.                         get_user_origin(victim,vorigin);
  136.                         vorigin[2] -= 26
  137.                         srco[0] = vorigin[0] + 30
  138.                         srco[1] = vorigin[1] + 40
  139.                         srco[2] = vorigin[2] + 120
  140.                
  141.                         switch(random_num(1,3))
  142.                         {
  143.                                 case 1:
  144.                                 {
  145.                                         emit_sound(0,CHAN_ITEM, "ambience/mgun_burst4.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
  146.                                         deagle_thunder(srco,vorigin);
  147.                                 }
  148.                                 case 2:
  149.                                 {
  150.                                         emit_sound(0,CHAN_ITEM, "weapons/headshot2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
  151.                                         deagle_blood(vorigin);
  152.                                 }
  153.                                 case 3:
  154.                                 {
  155.                                         emit_sound(0,CHAN_ITEM, "weapons/flashbang-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
  156.                                         deagle_explode(vorigin);
  157.                                 }
  158.                         }
  159.                 }
  160.                 if(!is_user_alive(victim) && !is_user_bot(victim) && get_pcvar_num(toggle_fade) == 1)
  161.                 {
  162.                         message_begin(MSG_ONE_UNRELIABLE,screenfade,{0,0,0},victim);
  163.                         write_short(6<<10);
  164.                         write_short(5<<10);
  165.                         write_short(1<<12);
  166.                         write_byte(255);
  167.                         write_byte(0);
  168.                         write_byte(0);
  169.                         write_byte(170);
  170.                         message_end();
  171.                 }
  172.                 if(g_Hs[killer] == p_hs)
  173.                 {
  174.                         set_hudmessage(85, 215, 255, 0.1, 0.20, 0, 6.0, 5.0);
  175.                         show_hudmessage(0, "%s: Deagle Warrior !",kname);
  176.                         if(get_pcvar_num(toggle_light) == 1)
  177.                         {
  178.                                 lights("d");
  179.                                 set_task(float(p_dur),"relights");
  180.                         }
  181.                         g_Hs[killer] = 0;
  182.                 }
  183.         }
  184.         if(g_Icon[victim])
  185.         {
  186.                 g_Icon[victim] = false;
  187.                 message_begin(MSG_ONE,iconstatus,{0,0,0},victim);
  188.                 write_byte(0);
  189.                 write_string("dmg_shock");
  190.                 message_end();
  191.         }
  192.         return PLUGIN_CONTINUE;
  193. }

  194. deagle_explode(vec1[3])
  195. {
  196.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec1);
  197.         write_byte(21);
  198.         write_coord(vec1[0]);
  199.         write_coord(vec1[1]);
  200.         write_coord(vec1[2] + 16);
  201.         write_coord(vec1[0]);
  202.         write_coord(vec1[1]);
  203.         write_coord(vec1[2] + 1936);
  204.         write_short(white);
  205.         write_byte(0);
  206.         write_byte(0);
  207.         write_byte(2);
  208.         write_byte(80);
  209.         write_byte(0);
  210.         write_byte(188);
  211.         write_byte(220);
  212.         write_byte(205);
  213.         write_byte(60);
  214.         write_byte(0);
  215.         message_end();

  216.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  217.         write_byte(12);
  218.         write_coord(vec1[0]);
  219.         write_coord(vec1[1]);
  220.         write_coord(vec1[2]);
  221.         write_byte(120);
  222.         write_byte(10);
  223.         message_end();
  224.        
  225.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec1);
  226.         write_byte(5);
  227.         write_coord(vec1[0]);
  228.         write_coord(vec1[1]);
  229.         write_coord(vec1[2]);
  230.         write_short(g_sModelIndexSmoke);
  231.         write_byte(2);  
  232.         write_byte(10);  
  233.         message_end();
  234. }
  235. deagle_thunder(vec1[3],vec2[3])
  236. {
  237.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  238.         write_byte(0);
  239.         write_coord(vec1[0]);
  240.         write_coord(vec1[1]);
  241.         write_coord(vec1[2]);
  242.         write_coord(vec2[0]);
  243.         write_coord(vec2[1]);
  244.         write_coord(vec2[2]);
  245.         write_short(lightning);
  246.         write_byte(1);
  247.         write_byte(5);
  248.         write_byte(2);
  249.         write_byte(30);
  250.         write_byte(250);
  251.         write_byte(200);
  252.         write_byte(200);
  253.         write_byte(200);
  254.         write_byte(200);
  255.         write_byte(250);
  256.         message_end();

  257.         message_begin( MSG_PVS, SVC_TEMPENTITY,vec2);
  258.         write_byte(9);
  259.         write_coord(vec2[0]);
  260.         write_coord(vec2[1]);
  261.         write_coord(vec2[2]);
  262.         message_end();
  263.        
  264.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec2);
  265.         write_byte(5);
  266.         write_coord(vec2[0]);
  267.         write_coord(vec2[1]);
  268.         write_coord(vec2[2]);
  269.         write_short(g_sModelIndexSmoke);
  270.         write_byte(10);  
  271.         write_byte(10)  
  272.         message_end();
  273. }
  274. deagle_blood(vec1[3])
  275. {
  276.         message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  277.         write_byte(10);
  278.         write_coord(vec1[0]);
  279.         write_coord(vec1[1]);
  280.         write_coord(vec1[2]);
  281.         message_end();
  282. }
  283. public reset_icon(id)
  284. {
  285.         message_begin(MSG_ONE,iconstatus,{0,0,0},id);
  286.         write_byte(0);
  287.         write_string("dmg_shock");
  288.         message_end();
  289. }
  290. public relights() lights("n");
  291. stock lights(const light[]) return engfunc(EngFunc_LightStyle,0,light);
复制代码
7# 点通粉丝
回复

使用道具 举报

 楼主| 发表于 2010-2-28 20:47:14 | 显示全部楼层 来自 中国–广东–广州
等待回答中..........
回复

使用道具 举报

发表于 2010-2-28 23:52:14 | 显示全部楼层 来自 中国–四川–遂宁
  1. deagle_explode(vec1[3])
  2. {
  3.         message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  4.         write_byte(TE_LAVASPLASH);
  5.         write_coord(vec1[0]);
  6.         write_coord(vec1[1]);
  7.         write_coord(vec1[2]);
  8.         message_end();
  9. }
复制代码
试试这个
回复

使用道具 举报

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

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