lhty 发表于 2007-5-28 15:46:49

Cs Source 里面的手雷用这个插件可以修改出来吗?


//#define USE_AMX
#if defined USE_AMX
#include <amxmod>
#include <VexdUM>
#else
#include <amxmodx>
#include <engine>
#endif
new gMsgScreenShake , gMsgScreenFade;
#define CVAR_STATUS "he_damage_effect"
public plugin_init() {
register_plugin("HE damage effect" , "0.2" , "v3x");
register_event("Damage" , "event_Damage" , "b" , "2>0");
register_cvar(CVAR_STATUS , "1");
gMsgScreenShake = get_user_msgid("ScreenShake");
gMsgScreenFade = get_user_msgid("ScreenFade");
}
#if defined USE_AMX
#define DEFAULT_VOLUME 0.8
#endif
#define PA_LOW25.0
#define PA_HIGH 50.0
#if !defined USE_AMX
new Float:gVolume;
public client_connect(id) {
if(!is_user_bot(id)) {
    query_client_cvar(id , "volume" , "cvar_result");
}
}
public cvar_result(id, const cvar[] , const value[]) {
gVolume = str_to_float(value);
}
#endif
public event_Damage(id) {
if(get_cvar_num(CVAR_STATUS) <= 0
|| !is_user_connected(id)
|| !is_user_alive(id)
|| is_user_bot(id)) return;
new iWeapID, attacker = get_user_attacker(id , iWeapID);
if(!is_user_connected(attacker)) return;
if(iWeapID == 4) {
    client_cmd(id , "volume 0");
    set_task(0.5 , "volume_up_1" , id);
    new Float:fVec;
    fVec = random_float(PA_LOW , PA_HIGH);
    fVec = random_float(PA_LOW , PA_HIGH);
    fVec = random_float(PA_LOW , PA_HIGH);
    entity_set_vector(id , EV_VEC_punchangle , fVec);
    message_begin(MSG_ONE , gMsgScreenShake , {0,0,0} ,id)
    write_short( 1<<14 );
    write_short( 1<<14 );
    write_short( 1<<14 );
    message_end();
    message_begin(MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , id);
    write_short( 1<<10 );
    write_short( 1<<10 );
    write_short( 1<<12 );
    write_byte( 225 );
    write_byte( 0 );
    write_byte( 0 );
    write_byte( 125 );
    message_end();
}
}
public volume_up_1(id) {
client_cmd(id , "volume 0.1");
set_task(0.2 , "volume_up_2" , id);
}
public volume_up_2(id) {
client_cmd(id , "volume 0.2");
set_task(0.2 , "volume_up_3" , id);
}
public volume_up_3(id) {
client_cmd(id , "volume 0.3");
set_task(0.2 , "volume_up_4" , id);
}
public volume_up_4(id) {
client_cmd(id , "volume 0.4");
set_task(0.2 , "volume_up_5" , id);
}
public volume_up_5(id) {
client_cmd(id , "volume 0.5");
set_task(0.2 , "volume_up_6" , id);
}
public volume_up_6(id) {
client_cmd(id , "volume 0.6");
set_task(0.2 , "volume_up_7" , id);
}
public volume_up_7(id) {
client_cmd(id , "volume 0.7");
set_task(0.2 , "volume_up_8" , id);
}
public volume_up_8(id) {
#if !defined USE_AMX
   client_cmd(id , "volume %f" , gVolume);
#else
   client_cmd(id , "volume %f" , float(DEFAULT_VOLUME));
#endif
}



玩家被手雷炸后,玩家 volume 是由0递增到1,而不是恢复原来玩家的volume 值。
还有如何将这个改变成被手雷炸后画面不震动,而是将玩家的速度变慢然后恢复成正常的行走速度

   高手来指点一下行吗,莪是看见Cs Source 里面的手雷 才想到这样的
   希望点通的哥哥来帮忙看看。

lhty 发表于 2007-5-28 16:00:37

回复: Cs Source 里面的手雷用这个插件可以修改出来吗?

//#define USE_AMX
#if defined USE_AMX
#include <amxmod>
#include <VexdUM>
#else
#include <amxmodx>
#include <engine>
#endif
new gMsgScreenShake , gMsgScreenFade;
#define CVAR_STATUS "he_damage_effect"
public plugin_init() {
register_plugin("HE damage effect" , "0.2" , "v3x");
register_event("Damage" , "event_Damage" , "b" , "2>0");
register_cvar(CVAR_STATUS , "1");
gMsgScreenShake = get_user_msgid("ScreenShake");
gMsgScreenFade = get_user_msgid("ScreenFade");
}
#if defined USE_AMX
#define DEFAULT_VOLUME 0.8
#endif
#define PA_LOW25.0
#define PA_HIGH 50.0
#if !defined USE_AMX
new Float:gVolume;
public client_connect(id) {
if(!is_user_bot(id)) {
    query_client_cvar(id , "volume" , "cvar_result");
}
}
public cvar_result(id, const cvar[] , const value[]) {
gVolume = str_to_float(value);
}
#endif
public event_Damage(id) {
if(get_cvar_num(CVAR_STATUS) <= 0
|| !is_user_connected(id)
|| !is_user_alive(id)
|| is_user_bot(id)) return;
new iWeapID, attacker = get_user_attacker(id , iWeapID);
if(!is_user_connected(attacker)) return;
if(iWeapID == 4) {
    client_cmd(id , "volume 0");
    set_task(0.5 , "volume_up_1" , id);
    new Float:fVec;
    fVec = random_float(PA_LOW , PA_HIGH);
    fVec = random_float(PA_LOW , PA_HIGH);
    fVec = random_float(PA_LOW , PA_HIGH);
    entity_set_vector(id , EV_VEC_punchangle , fVec);
    message_begin(MSG_ONE , gMsgScreenShake , {0,0,0} ,id)
    write_short( 1<<14 );
    write_short( 1<<14 );
    write_short( 1<<14 );
    message_end();
    message_begin(MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , id);
    write_short( 1<<10 );
    write_short( 1<<10 );
    write_short( 1<<12 );
    write_byte( 225 );
    write_byte( 0 );
    write_byte( 0 );
    write_byte( 125 );
    message_end();
}
}
public volume_up_1(id) {
client_cmd(id , "volume 0.1");
set_task(0.2 , "volume_up_2" , id);
}
public volume_up_2(id) {
client_cmd(id , "volume 0.2");
set_task(0.2 , "volume_up_3" , id);
}
public volume_up_3(id) {
client_cmd(id , "volume 0.3");
set_task(0.2 , "volume_up_4" , id);
}
public volume_up_4(id) {
client_cmd(id , "volume 0.4");
set_task(0.2 , "volume_up_5" , id);
}
public volume_up_5(id) {
client_cmd(id , "volume 0.5");
set_task(0.2 , "volume_up_6" , id);
}
public volume_up_6(id) {
client_cmd(id , "volume 0.6");
set_task(0.2 , "volume_up_7" , id);
}
public volume_up_7(id) {
client_cmd(id , "volume 0.7");
set_task(0.2 , "volume_up_8" , id);
}
public volume_up_8(id) {
#if !defined USE_AMX
   client_cmd(id , "volume %f" , gVolume);
#else
   client_cmd(id , "volume %f" , float(DEFAULT_VOLUME));
#endif
}

这里。。。。。。。。。。。。。。。。。。

douliang 发表于 2013-2-14 14:27:02

高手来指点一下行吗
页: [1]
查看完整版本: Cs Source 里面的手雷用这个插件可以修改出来吗?