#include < amxx/amxmodx >
#include < amxx/esf >
#include < amxx/fakemeta >
#pragma semicolon 1
#define IS_PLAYER(%1) ( 1 <= %1 <= gMaxPlayers )
enum
{
CLASS_NONE = 0,
CLASS_BUU,
CLASS_GOKU,
CLASS_GOHAN,
CLASS_KRILLIN,
CLASS_FRIEZA,
CLASS_PICCOLO,
CLASS_TRUNKS,
CLASS_VEGETA,
CLASS_CELL
};
new hidepl[33];
new Float:gettime[33];
new gMaxPlayers;
new gMessagePowerUp;
new gMessageStopPowerup;
new gpowerup;
new gSpriteShockwave;
new iOrigin[3];
public plugin_init( )
{
register_plugin( "E+T ReleaseThePotential", "4.0.0", "Jerry(XiaoHuai)" );
register_forward( FM_EmitSound, "forward_EmitSound" );
register_event("ResetHUD","sethidepl","be");
gMessagePowerUp = get_user_msgid( "Powerup" );
gMessageStopPowerup = get_user_msgid( "StopPowerup" );
register_message( gMessagePowerUp, "Message_Powerup" );
register_message( gMessageStopPowerup, "Message_StopPowerup" );
gMaxPlayers = get_maxplayers( );
}
public sethidepl(player)
{
hidepl[player] = 1200000;
}
public client_PostThink(player)
{
set_hudmessage(255, 0, 0, 0.0, 0.79, 0, 6.0, 12.0);
show_hudmessage(player, "Hidden Powerlevel: %d", hidepl[player]);
}
public plugin_precache()
{
gSpriteShockwave = precache_model( "sprites/swoop_trail.spr" );
precache_sound("buu/pscream.wav");
precache_sound("goku/scream.wav");
precache_sound("gohan/trans.wav");
precache_sound("krillin/trans.wav");
precache_sound("frieza/trans2.wav");
precache_sound("piccolo/trans.wav");
precache_sound("trunks/trans.wav");
precache_sound("vegeta/scream.wav");
precache_sound("cell/scream.wav");
}
public Message_Powerup( )
{
gpowerup = 1 ;
}
public Message_StopPowerup( )
{
gpowerup = 0 ;
}
public forward_EmitSound( id, iChannel, const szSample[ ] )
{
if( IS_PLAYER( id )
&& ( equal( szSample, "weapons/aura.wav" ) ) )
{
new iEnt = FM_NULLENT;
while( ( iEnt = engfunc( EngFunc_FindEntityByString, iEnt, "model", "models/aura.mdl" ) ) > 0 )
{
if( pev( iEnt, pev_owner ) == id )
{
if(gpowerup == 1)
{
if(get_gametime( ) - gettime[id] >= 5.0)
{
if(pev( id, pev_playerclass ) == 1 )
{
emit_sound(id,CHAN_STATIC, "buu/pscream.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(pev( id, pev_playerclass ) == 2 )
{
emit_sound(id,CHAN_STATIC, "goku/scream.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(pev( id, pev_playerclass ) == 3 )
{
emit_sound(id,CHAN_STATIC, "gohan/trans.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(pev( id, pev_playerclass ) == 4 )
{
emit_sound(id,CHAN_STATIC, "krillin/trans.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(pev( id, pev_playerclass ) == 5 )
{
emit_sound(id,CHAN_STATIC, "frieza/trans2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(pev( id, pev_playerclass ) == 6 )
{
emit_sound(id,CHAN_STATIC, "piccolo/trans.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(pev( id, pev_playerclass ) == 7 )
{
emit_sound(id,CHAN_STATIC, "trunks/trans.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(pev( id, pev_playerclass ) == 8 )
{
emit_sound(id,CHAN_STATIC, "vegeta/scream.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(pev( id, pev_playerclass ) == 9 )
{
emit_sound(id,CHAN_STATIC, "cell/scream.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
gettime[id] = get_gametime( );
ifpowerup(id);
get_user_origin( id, iOrigin );
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
write_byte(TE_LAVASPLASH); //全屏喷洒红点
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
message_end( );
new vec1[3];
get_user_origin(id,vec1);
message_begin( MSG_BROADCAST,SVC_TEMPENTITY,vec1);
write_byte( 21 );
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2] + 20);
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2] + 2000);
write_short( gSpriteShockwave );
write_byte( 0 );
write_byte( 0 );
write_byte( 24 );
write_byte( 128 );
write_byte( 0 );
write_byte( 180 );
write_byte( 255 );
write_byte( 255 );
write_byte( 255 );
write_byte( 0 );
message_end();
}
}
}
}
}
return FMRES_IGNORED;
}
public ifpowerup(id)
{
if(gpowerup == 1)
{
screen_shake(id, 25, 1, 23);
if(hidepl[id]>12132)
{
hidepl[id] = hidepl[id] - 12132;
setClientPL(id,getClientPL(id)+12132);
set_task(0.1, "ifpowerup",id,_,_,"a",1);
}
else
{
setClientPL(id,getClientPL(id)+hidepl[id]);
hidepl[id] = 0;
}
}
}
public client_infochanged(player)
{
hidepl[player] = 1200000;
}
stock screen_shake(id, amplitude = 4, duration = 2, frequency = 10)
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenShake"), _, id);
write_short((1<<12)*amplitude); // 振幅
write_short((1<<12)*duration); // 时间
write_short((1<<12)*frequency); // 频率
message_end();
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg936\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset134 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang2052\\ f0\\ fs16 \n\\ par }
*/