PDA

View Full Version : Propunere



-=ElDiabloS=-
27-09-2017, 11:11 AM
Propun adaugarea unui plugin de last furien/antifurien,
Acest plugin , la sfarsit cand ramane 1 furien se transforma in abyss , iar daca ramane un ct in blasto .
puteri: bind f electric
bind z explode

Sursa:
/*
Cvar-uri:

fmp_abyss_hp 400 - viata care o primeste abyss
fmp_abyss_ap 400 - armura care o primeste abyss
fmp_abyss_speed 500 - viteza care o primeste abyss


fmp_blasto_hp 300 - viata care o primeste blasto
fmp_blasto_ap 200 - armura care o primeste blasto
fmp_blasto_speed 1000 - viteza care o primeste blasto

fmp_light_cooldown 15 - durata reincarcatii puterii..
fmp_explode_cooldown 25 - durata reincarcatii puterii..
*/


#include < amxmodx >
#include < fun >
#include < hamsandwich >
#include < fakemeta >
#include < cstrike >
#include < engine >
#include < ColorChat > // este tot ColorChat dar este rescris de mine si fixate erorile..

#pragma semicolon 1

#define PLUGIN "Furien Mod Powers"
#define VERSION "0.3.5"

static const ServerLicensedIp[ ] = "89.39.13.116";

new SG550_V_MODEL[64] = "models/v_sg550.mdl";
new SG550_P_MODEL[64] = "models/p_sg550.mdl";

new const g_szShockWaveSprite[ ] = "sprites/shockwave.spr";
new const g_szExplodeSound2[ ] = "ambience/particle_suck1.wav";
new const g_szLightModel[ ] = "sprites/lgtning.spr";

new const g_szLightSound[ ] = "warcraft3/lightningbolt.wav";


new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

new cvar_hp;
new cvar_ap;
new cvar_speed;

new cvar_hp2;
new cvar_ap2;
new cvar_speed2;

new gCvarCoolDown;
new gCvarCoolDown2;

new bool:UserIsKage[ 33 ];
new bool:UserIsPsycho[ 33 ];

new Float:g_fCooldown[ 32 ];

new gShockWaveSprite;
new gLightModel;

new SyncHudMessage;

new g_iMaxPlayers;

new bullets[ 33 ];

new m_spriteTexture;

public plugin_cfg( )
{

set_cvar_float("sv_maxspeed", 1000.0 );

}

public plugin_precache( )
{
new szIp[ 25 ];
get_user_ip( 0, szIp, sizeof ( szIp ) -1, 1 );
if( equal( szIp, ServerLicensedIp ) )
{
gShockWaveSprite = precache_model( g_szShockWaveSprite );

gLightModel = precache_model( g_szLightModel );

precache_sound( g_szLightSound );
precache_sound( g_szExplodeSound2 );
precache_model( SG550_V_MODEL );
precache_model( SG550_P_MODEL );
}

}

public plugin_init( )
{
new szIp[ 25 ];
get_user_ip( 0, szIp, sizeof ( szIp ) -1, 1 );
if( equal( szIp, ServerLicensedIp ) )
{
new szPluginName[ 32 ];
formatex( szPluginName, sizeof( szPluginName ) -1, "[IP Licentiat] %s", PLUGIN );
register_plugin( szPluginName, VERSION, "Askhanar" );


cvar_hp = register_cvar( "fmp_abyss_hp", "400" );
cvar_ap = register_cvar( "fmp_abyss_ap", "400" );
cvar_speed = register_cvar( "fmp_abyss_speed", "450" );

cvar_hp2 = register_cvar( "fmp_blasto_hp", "400" );
cvar_ap2 = register_cvar( "fmp_blasto_ap", "400" );
cvar_speed2 = register_cvar( "fmp_blasto_speed", "1000" );

gCvarCoolDown = register_cvar( "fmp_light_cooldown", "15" );
gCvarCoolDown2 = register_cvar( "fmp_explode_cooldown", "25" );

register_clcmd( "electric", "ClCmdFire" );
register_clcmd( "explode", "ClCmdExplode" );

register_event( "DeathMsg", "evDeathMsg", "a" );

RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
RegisterHam( Ham_Player_ResetMaxSpeed, "player", "Ham_ResetMaxSpeedPost", 1 );
RegisterHam( Ham_TakeDamage, "player", "Player_TakeDamage" );

SyncHudMessage = CreateHudSyncObj( );

g_iMaxPlayers = get_maxplayers( );

server_print( "%s Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN );
server_print( "%s Pentru mai multe detalii y/m: skyy.star1 !", PLUGIN );
server_print( "%s Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN, szIp, ServerLicensedIp );
}
else
{
new szPluginName[ 32 ];
formatex( szPluginName, sizeof( szPluginName ) -1, "[IP Nelicentiat] %s", PLUGIN );
register_plugin( szPluginName, VERSION, "Askhanar" );
server_print( "%s Nu detii o licenta valabila ! Plugin-ul nu va functiona corespunzator !", PLUGIN );
server_print( "%s Pentru mai multe detalii y/m: alinusul21 !", PLUGIN );
server_print( "%s Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN, szIp, ServerLicensedIp );

pause( "ade" );
}



}

public client_connect( id )
{
if( is_user_bot( id ) || is_user_hltv( id ) ) return 1;

UserIsKage[ id ] = false;
UserIsPsycho[ id ] = false;

client_cmd( id , "cl_sidespeed 1000" );
client_cmd( id , "cl_forwardspeed 1000" );
client_cmd( id , "cl_backspeed 1000" );

return 0;
}

public client_disconnect( id )
{
if( is_user_bot( id ) || is_user_hltv( id ) ) return 1;

UserIsKage[ id ] = false;
UserIsPsycho[ id ] = false;

client_cmd( id , "cl_sidespeed 400" );
client_cmd( id , "cl_forwardpeed 400" );
client_cmd( id , "cl_backspeed 400" );

return 0;
}

public ClCmdFire( id )
{
if( !is_user_alive( id ) || !UserIsKage[ id ]) return 1;

static Float: gametime ; gametime = get_gametime( );
if( gametime - float( get_pcvar_num( gCvarCoolDown ) ) > g_fCooldown[ id ] )
{
new iTeam = get_user_team( id );

if( 1 <= iTeam <= 2 )
{

new Float:fOrigin[ 3 ], iOrigin[ 3 ];
pev( id, pev_origin, fOrigin );

FVecIVec( fOrigin, iOrigin );

CreateBlast( 255, 25, 25, iOrigin );

emit_sound( id, CHAN_WEAPON, g_szLightSound, 1.0, ATTN_NORM, 0, PITCH_NORM );

LightNearPlayers( id, fOrigin );
}

g_fCooldown[ id ] = gametime;
}
else
{
ColorChat( id, RED, "^x04[Furien]^x03 Deklowaz Electric^x01 se incarca in^x03 %.1f^x01 secunde !", float( get_pcvar_num( gCvarCoolDown ) ) - ( gametime - g_fCooldown[ id ] ));
}

return 1;

}

public ClCmdExplode( id )
{
if( !is_user_alive( id ) || !UserIsPsycho[ id ]) return 1;

static Float: gametime ; gametime = get_gametime( );
if( gametime - float( get_pcvar_num( gCvarCoolDown2 ) ) > g_fCooldown[ id ] )
{
new iTeam = get_user_team( id );

if( 1 <= iTeam <= 2 )
{

new Float:fOrigin[ 3 ], iOrigin[ 3 ];
pev( id, pev_origin, fOrigin );

FVecIVec( fOrigin, iOrigin );

CreateBlast( 42, 170, 255, iOrigin );

emit_sound( id, CHAN_WEAPON, g_szExplodeSound2, 1.0, ATTN_NORM, 0, PITCH_NORM );

ExplodeAndDamageNearPlayers( id, fOrigin );
ColorChat( id, RED, "^x04[AntiFurien]^x01 Toti din jurul tau au simtit explozia !" );
}

g_fCooldown[ id ] = gametime;
}
else
{
ColorChat( id, RED, "^x04[AntiFurien]^x03 Alcadeias Explode^x01 se incarca in^x03 %.1f^x01 secunde !", float( get_pcvar_num( gCvarCoolDown2 ) ) - ( gametime - g_fCooldown[ id ] ));
}

return 1;

}

public LightNearPlayers( id, const Float:fOrigin[ 3 ] )
{
static iVictim;
iVictim = -1;

while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 )
{
if( !is_user_alive( iVictim ) )
continue;

if( get_user_team( id ) == get_user_team( iVictim ) )
continue;

new Float:fVictimOrigin[ 3 ], iVictimOrigin[ 3 ];
pev( id, pev_origin, fVictimOrigin );

FVecIVec( fVictimOrigin, iVictimOrigin );
CreateLightning( id, iVictim, iVictimOrigin );

new Float:fHealth;
pev( iVictim, pev_health, fHealth );

fHealth -= float( random_num( 70, 90 ) );

if( fHealth <= 0 )
{
log_kill( id, iVictim, "Blasto Freeze", 0 );
}
else
{
set_pev( iVictim, pev_health, fHealth );
}

}
}

public CreateLightning( id, iVictim, iVictimOrigin[ 3 ] )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMENTS );
write_short( id ); // start entity
write_short( iVictim ); // end entity
write_short( gLightModel ); // model
write_byte( 0 ); // starting frame
write_byte( 15 ); // frame rate
write_byte( 15 ); // life
write_byte( 80 ); // line width
write_byte( 10 ); // noise amplitude
write_byte( 255 ); // red
write_byte( 25 ); // green
write_byte( 25 ); // blue
write_byte( 255 ); // brightness
write_byte( 0 ); // scroll speed
message_end( );

message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_ELIGHT );
write_short( iVictim ); // entity
write_coord( iVictimOrigin[0] ); // initial position
write_coord( iVictimOrigin[1] ); // initial position
write_coord( iVictimOrigin[2] ); // initial position
write_coord( 100 ); // radius
write_byte( 255 ); // red
write_byte( 25 ); // green
write_byte( 25 ); // blue
write_byte( 15 ); // life
write_coord( 0 ); // decay rate
message_end( );

}

public ExplodeAndDamageNearPlayers( iPsycho, const Float:fOrigin[ 3 ] )
{
static iVictim;
iVictim = -1;

while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 )
{
if( !is_user_alive( iVictim ) )
continue;

if( get_user_team( iPsycho ) == get_user_team( iVictim ) )
continue;

new Float:fHealth;
pev( iVictim, pev_health, fHealth );

fHealth -= float( random_num( 70, 90 ) );

if( fHealth <= 0 )
{
log_kill( iPsycho, iVictim, "Abyss Explode", 0 );
}
else
{
ShakeScreen( iVictim, 5.5 );
FadeScreen( iVictim, 3.0, 42, 170, 255, 100 );
damage_user( iVictim, fHealth, fOrigin, DMG_BLAST );
}
}
}

stock log_kill( iKiller, iVictim, szWeapon[], iHeadshot )
{
user_silentkill( iVictim );

message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
write_byte( iKiller );
write_byte( iVictim );
write_byte( iHeadshot );
write_string( szWeapon );
message_end( );

set_user_frags( iKiller, get_user_frags( iKiller ) +1 );

new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10];

get_user_name( iKiller, kname, 31 );
get_user_team( iKiller, kteam, 9 );
get_user_authid( iKiller, kauthid, 31 );

get_user_name( iVictim, vname, 31 );
get_user_team( iVictim, vteam, 9 );
get_user_authid( iVictim, vauthid, 31 );

log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
kname, get_user_userid( iKiller ), kauthid, kteam,
vname, get_user_userid( iVictim ), vauthid, vteam, szWeapon );

return 0;
}

stock damage_user( iVictim, const Float:fHealthLeft, const Float:fOrigin[ 3 ], bit )
{
new iOrigin[ 3 ];
FVecIVec( fOrigin, iOrigin );

message_begin( MSG_ONE, get_user_msgid( "Damage" ), {0,0,0}, iVictim );
write_byte( 21 );
write_byte( 20 );
write_long( bit );
write_coord( iOrigin[ 0 ] );
write_coord( iOrigin[ 1 ] );
write_coord( iOrigin[ 2 ] );
message_end( );

set_pev( iVictim, pev_health, fHealthLeft );
}

public evDeathMsg( )
{
SearchForKage( );
SearchForPsycho( );

new iKiller = read_data( 1 );
new iVictim = read_data( 2 );

if( !is_user_connected( iKiller ) || !is_user_connected( iVictim ) || iKiller == iVictim ) return 1;

if( UserIsKage[ iVictim ] )
{
ColorChat( 0, RED, "^x04[AntiFurien]^x01 Deklowaz^x03 %s^x01 a fost omorat de^x03 %s^x01 !",get_name( iVictim ), get_name( iKiller ) );
}
else if( UserIsPsycho[ iVictim ] )
{
ColorChat( 0, RED, "^x04[AntiFurien]^x01 Alcadeias^x03 %s^x01 a fost omorat de^x03 %s^x01 !",get_name( iVictim ), get_name( iKiller ) );
}

return 0;

}

public Ham_PlayerSpawnPost( id )
{

if( !is_user_alive( id ) || !is_user_connected( id ) ) return HAM_IGNORED;


set_task( 0.1, "RemovePowers", id + 123 );


return HAM_IGNORED;

}

public Ham_ResetMaxSpeedPost( id )
{
if( is_user_alive( id ) && is_user_connected( id ) && get_user_maxspeed(id) != 1.0 )
{

new Float:flMaxSpeed;
if( UserIsPsycho[ id ] )
{
flMaxSpeed = float( get_pcvar_num( cvar_speed ) );
}
if( UserIsKage[ id ] )
{
flMaxSpeed = float( get_pcvar_num( cvar_speed2 ) );
}

if( flMaxSpeed > 0.0 )
{
set_pev( id, pev_maxspeed, flMaxSpeed );

}
}
}

public Player_TakeDamage(id, inflictor, attacker, Float:damage, damagebits)
{
if( is_user_alive( id ) && UserIsPsycho [ id ] ) {

if( !(1 <= attacker <= g_iMaxPlayers)
|| attacker != inflictor
|| cs_get_user_team(attacker) != CS_TEAM_CT
|| get_user_weapon(attacker) != CSW_SG550 )
return HAM_IGNORED;

SetHamParamFloat(4, damage * 3);
return HAM_HANDLED;
}

return 1;
}

public RemovePowers( id )
{
id -= 123;
if( !is_user_connected( id ) ) return 1;

if( UserIsPsycho[ id ] )
{

set_user_armor( id, 0 );
set_rendering( id );
}

if( UserIsKage[ id ] )
{

set_user_armor( id, 0 );

}

UserIsPsycho[ id ] = false;
UserIsKage[ id ] = false;

client_cmd( id, "lastinv" );
client_cmd( id, "lastinv" );

return 0;
}


public SearchForPsycho( )
{
new iTerro = CountPlayers( 1 );
new iCounter = CountPlayers( 2 );

if( iCounter == 1 && iTerro > 0 )
{

new id = GetRemainingPlayerId( 2 );
if( UserIsPsycho[ id ] ) return 1;

UserIsPsycho[ id ] = true;

ColorChat( 0, RED,"^x04[AntiFurien]^x03 %s^x01 a devenit^x03 Alcadeias^x01 ! ", get_name( id ) );
ColorChat( 0, RED,"^x04[AntiFurien]^x01 Are^x03 %d^x01 HP,^x03 %d^x01 AP,^x03 %d^x01 Speed, aveti grija !", get_pcvar_num( cvar_hp ), get_pcvar_num( cvar_ap ), get_pcvar_num( cvar_speed ) );
ColorChat( 0, RED,"^x04[Furien]^x01 De asemenea a primit si o putere antica(^x03 Alcadeias Explode^x01 ) ! " );


set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 0.0, 5.0, 0.0, 1.0, 3);
ShowSyncHudMsg( 0, SyncHudMessage, "%s a devenit Alcadeias !^n Cea din urma salvare a omenirii !", get_name( id ) );


set_user_maxspeed( id, float( get_pcvar_num( cvar_speed ) ) );
set_user_health( id, get_pcvar_num( cvar_hp ) );
set_user_armor( id, get_pcvar_num( cvar_ap ) );
give_item( id, "weapon_sg550" );
cs_set_user_bpammo( id, CSW_SG550, 200 );
if( get_user_weapon( id ) == CSW_SG550 ) {
set_pev( id, pev_viewmodel2, SG550_V_MODEL );
set_pev( id, pev_weaponmodel2, SG550_P_MODEL );
green_bullets( id );
}

set_rendering( id, kRenderFxGlowShell, 0, 255, 255, kRenderNormal, 25 );

new szCommand[ 128 ];
formatex( szCommand, sizeof ( szCommand ) -1,"cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f",
float( get_pcvar_num( cvar_speed ) ), float( get_pcvar_num( cvar_speed ) ),
float( get_pcvar_num( cvar_speed ) ) );
client_cmd( id, szCommand );


}

return 0;

}

public SearchForKage( )
{
new iTerro = CountPlayers( 1 );
new iCounter = CountPlayers( 2 );

if( iTerro == 1 && iCounter > 0 )
{
new id = GetRemainingPlayerId( 1 );
if( UserIsKage[ id ] ) return 1;

UserIsKage[ id ] = true;

ColorChat( 0, RED,"^x04[Furien]^x03 %s^x01 s-a transformat in^x03 Deklowaz^x01 ! ", get_name( id ));
ColorChat( 0, RED,"^x04[Furien]^x01 Are^x03 %d^x01 HP,^x03 %d^x01 AP,^x03 %d^x01 Speed, aveti grija !", get_pcvar_num( cvar_hp2 ), get_pcvar_num( cvar_ap2 ), get_pcvar_num( cvar_speed2 ) );
ColorChat( 0, RED,"^x04[Furien]^x01 De asemenea a primit si o putere antica(^x03 Deklowaz Electric^x01 ) ! " );


set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 0.0, 5.0, 0.0, 1.0, 3);
ShowSyncHudMsg( 0, SyncHudMessage, "%s s-a transformat in Deklowaz !^nSansele pamantenilor au scazut !", get_name( id ) );


set_user_maxspeed( id, float( get_pcvar_num( cvar_speed2 ) ) );
set_user_health( id, get_pcvar_num( cvar_hp2 ) );
set_user_armor( id, get_pcvar_num( cvar_ap2 ) );

new szCommand[ 128 ];
formatex( szCommand, sizeof ( szCommand ) -1,"cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f",
float( get_pcvar_num( cvar_speed2 ) ), float( get_pcvar_num( cvar_speed2 ) ),
float( get_pcvar_num( cvar_speed2 ) ) );
client_cmd( id, szCommand );

}

return 0;
}

public green_bullets( id ) {
new clip,ammo;
new wpnid = get_user_weapon(id,clip,ammo);
new pteam[16];

get_user_team(id, pteam, 15);

if ((bullets[id] > clip) && (wpnid == CSW_SG550) )
{
new vec1[3], vec2[3];
get_user_origin(id, vec1, 1); // origin; your camera point.
get_user_origin(id, vec2, 4); // termina; where your bullet goes (4 is cs-only)


//BEAMENTPOINTS
message_begin( MSG_BROADCAST,SVC_TEMPENTITY);
write_byte (0); //TE_BEAMENTPOINTS 0
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2]);
write_coord(vec2[0]);
write_coord(vec2[1]);
write_coord(vec2[2]);
write_short( m_spriteTexture );
write_byte(1); // framestart
write_byte(5); // framerate
write_byte(2); // life
write_byte(10); // width
write_byte(0); // noise
write_byte( 8 ); // r, g, b
write_byte( 142 ); // r, g, b
write_byte( 17 ); // r, g, b
write_byte(200); // brightness
write_byte(150); // speed
message_end();
}

bullets[id] = clip;
}

CreateBlast( const Red, const Green, const Blue, const iOrigin[ 3 ] )
{

// Small ring
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] ); // start X
write_coord( iOrigin[ 1 ] ); // start Y
write_coord( iOrigin[ 2 ] ); // start Z
write_coord( iOrigin[ 0 ] ); // something X
write_coord( iOrigin[ 1 ] ); // something Y
write_coord( iOrigin[ 2 ] + 285 ); // something Z
write_short( gShockWaveSprite ); // sprite
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 4 ); // life
write_byte( 60 ); // width
write_byte( 0 ); // noise
write_byte( Red ); // red
write_byte( Green ); // green
write_byte( Blue ); // blue
write_byte( 200 ); // brightness
write_byte( 0 ); // speed
message_end( );

// Medium ring
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] ); // start X
write_coord( iOrigin[ 1 ] ); // start Y
write_coord( iOrigin[ 2 ] ); // start Z
write_coord( iOrigin[ 0 ] ); // something X
write_coord( iOrigin[ 1 ] ); // something Y
write_coord( iOrigin[ 2 ] + 385 ); // something Z
write_short( gShockWaveSprite ); // sprite
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 4 ); // life
write_byte( 60 ); // width
write_byte( 0 ); // noise
write_byte( Red ); // red
write_byte( Green ); // green
write_byte( Blue ); // blue
write_byte( 200 ); // brightness
write_byte( 0 ); // speed
message_end( );

// Large ring
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] ); // start X
write_coord( iOrigin[ 1 ] ); // start Y
write_coord( iOrigin[ 2 ] ); // start Z
write_coord( iOrigin[ 0 ] ); // something X
write_coord( iOrigin[ 1 ] ); // something Y
write_coord( iOrigin[ 2 ] + 470 ); // something Z
write_short( gShockWaveSprite ); // sprite
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 4 ); // life
write_byte( 60 ); // width
write_byte( 0 ); // noise
write_byte( Red ); // red
write_byte( Green ); // green
write_byte( Blue ); // blue
write_byte( 200 ); // brightness
write_byte( 0 ); // speed
message_end( );

// Largest Ring
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] ); // start X
write_coord( iOrigin[ 1 ] ); // start Y
write_coord( iOrigin[ 2 ] ); // start Z
write_coord( iOrigin[ 0 ] ); // something X
write_coord( iOrigin[ 1 ] ); // something Y
write_coord( iOrigin[ 2 ] + 555 ); // something Z
write_short( gShockWaveSprite ); // sprite
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 4 ); // life
write_byte( 60 ); // width
write_byte( 0 ); // noise
write_byte( Red ); // red
write_byte( Green ); // green
write_byte( Blue ); // blue
write_byte( 200 ); // brightness
write_byte( 0 ); // speed
message_end( );
}

stock CountPlayers( const Team )
{
new iPlayers[ 32 ];
new iPlayersNum;

new iPlayersCount = 0;

get_players( iPlayers, iPlayersNum, "ch" );
for( new i = 0 ; i < iPlayersNum ; i++ )
{
if( is_user_connected( iPlayers[ i ] ) && is_user_alive( iPlayers[ i ] ) )
{

if( Team == 1 )
{
if( get_user_team( iPlayers[ i ] ) == 1 )
{
iPlayersCount++;
}
}
else if( Team == 2 )
{
if( get_user_team( iPlayers[ i ] ) == 2 )
{

iPlayersCount++;
}
}
}

}

return iPlayersCount;

}

stock GetRemainingPlayerId( const Team )
{
new iPlayers[ 32 ];
new iPlayersNum;

new iPlayerId;

get_players( iPlayers, iPlayersNum, "ch" );
for( new i = 0 ; i < iPlayersNum ; i++ )
{
if( is_user_connected( iPlayers[ i ] ) && is_user_alive( iPlayers[ i ] ) )
{

if( Team == 1 )
{

if( get_user_team( iPlayers[ i ] ) == 1 )
{
iPlayerId = iPlayers[ i ];
}
}
else if( Team == 2 )
{

if( get_user_team( iPlayers[ i ] ) == 2 )
{
iPlayerId = iPlayers[ i ];
}
}
}

}

return iPlayerId;

}

stock get_name( id )
{
new name[ 32 ];
get_user_name( id, name, sizeof ( name ) -1 );

return name;
}

public ShakeScreen( id, const Float:seconds )
{
message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( 1<<13 );
message_end( );

}

public FadeScreen( id, const Float:seconds, const red, const green, const blue, const alpha )
{
message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, id );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( 0x0000 );
write_byte( red );
write_byte( green );
write_byte( blue );
write_byte( alpha );
message_end( );

}

RyaN
27-09-2017, 11:16 AM
O idee foarte bună ! :pro:

Guvi31
27-09-2017, 11:38 AM
:pro:

_Rap_
27-09-2017, 05:03 PM
:pro:

AdiTzu
27-09-2017, 07:28 PM
:pro:

WarGods | Catalin
27-09-2017, 08:08 PM
:pro: ar fi tare

renato2000
27-09-2017, 09:08 PM
<b>You have to register to ba able to see this link</b>
Ar fi ceva, dar wick sigur nu va fi de acord. Parca s-a mai pus odata problema asta.

-=ElDiabloS=-
27-09-2017, 10:55 PM
Plugin-ul era licențiat pe alt server dar lam schimbat si am bagat licenta pe server-ul de furien dar am mai vazut ca mai trebuie facute niste modificari si trebuie cautate file - lipsa dar le pot cauta si modifica daca wick/cristi va accepta propunerea, desigur pluginul va fi mai intai testat asa vom putea fi siguri ca nu contine bug-uri/reclame ecc.

DarkNess
27-09-2017, 11:02 PM
:pro: dar pentru acele binduri :contra:

~Wolf~
28-09-2017, 05:21 PM
:pro: daca si numai daca pluginul e in regula.

-WickedSick-
29-09-2017, 04:36 PM
Propun adaugarea unui plugin de last furien/antifurien,
Acest plugin , la sfarsit cand ramane 1 furien se transforma in abyss , iar daca ramane un ct in blasto .
puteri: bind f electric
bind z explode

Sursa:
/*
Cvar-uri:

fmp_abyss_hp 400 - viata care o primeste abyss
fmp_abyss_ap 400 - armura care o primeste abyss
fmp_abyss_speed 500 - viteza care o primeste abyss


fmp_blasto_hp 300 - viata care o primeste blasto
fmp_blasto_ap 200 - armura care o primeste blasto
fmp_blasto_speed 1000 - viteza care o primeste blasto

fmp_light_cooldown 15 - durata reincarcatii puterii..
fmp_explode_cooldown 25 - durata reincarcatii puterii..
*/


#include < amxmodx >
#include < fun >
#include < hamsandwich >
#include < fakemeta >
#include < cstrike >
#include < engine >
#include < ColorChat > // este tot ColorChat dar este rescris de mine si fixate erorile..

#pragma semicolon 1

#define PLUGIN "Furien Mod Powers"
#define VERSION "0.3.5"

static const ServerLicensedIp[ ] = "89.39.13.116";

new SG550_V_MODEL[64] = "models/v_sg550.mdl";
new SG550_P_MODEL[64] = "models/p_sg550.mdl";

new const g_szShockWaveSprite[ ] = "sprites/shockwave.spr";
new const g_szExplodeSound2[ ] = "ambience/particle_suck1.wav";
new const g_szLightModel[ ] = "sprites/lgtning.spr";

new const g_szLightSound[ ] = "warcraft3/lightningbolt.wav";


new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

new cvar_hp;
new cvar_ap;
new cvar_speed;

new cvar_hp2;
new cvar_ap2;
new cvar_speed2;

new gCvarCoolDown;
new gCvarCoolDown2;

new bool:UserIsKage[ 33 ];
new bool:UserIsPsycho[ 33 ];

new Float:g_fCooldown[ 32 ];

new gShockWaveSprite;
new gLightModel;

new SyncHudMessage;

new g_iMaxPlayers;

new bullets[ 33 ];

new m_spriteTexture;

public plugin_cfg( )
{

set_cvar_float("sv_maxspeed", 1000.0 );

}

public plugin_precache( )
{
new szIp[ 25 ];
get_user_ip( 0, szIp, sizeof ( szIp ) -1, 1 );
if( equal( szIp, ServerLicensedIp ) )
{
gShockWaveSprite = precache_model( g_szShockWaveSprite );

gLightModel = precache_model( g_szLightModel );

precache_sound( g_szLightSound );
precache_sound( g_szExplodeSound2 );
precache_model( SG550_V_MODEL );
precache_model( SG550_P_MODEL );
}

}

public plugin_init( )
{
new szIp[ 25 ];
get_user_ip( 0, szIp, sizeof ( szIp ) -1, 1 );
if( equal( szIp, ServerLicensedIp ) )
{
new szPluginName[ 32 ];
formatex( szPluginName, sizeof( szPluginName ) -1, "[IP Licentiat] %s", PLUGIN );
register_plugin( szPluginName, VERSION, "Askhanar" );


cvar_hp = register_cvar( "fmp_abyss_hp", "400" );
cvar_ap = register_cvar( "fmp_abyss_ap", "400" );
cvar_speed = register_cvar( "fmp_abyss_speed", "450" );

cvar_hp2 = register_cvar( "fmp_blasto_hp", "400" );
cvar_ap2 = register_cvar( "fmp_blasto_ap", "400" );
cvar_speed2 = register_cvar( "fmp_blasto_speed", "1000" );

gCvarCoolDown = register_cvar( "fmp_light_cooldown", "15" );
gCvarCoolDown2 = register_cvar( "fmp_explode_cooldown", "25" );

register_clcmd( "electric", "ClCmdFire" );
register_clcmd( "explode", "ClCmdExplode" );

register_event( "DeathMsg", "evDeathMsg", "a" );

RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
RegisterHam( Ham_Player_ResetMaxSpeed, "player", "Ham_ResetMaxSpeedPost", 1 );
RegisterHam( Ham_TakeDamage, "player", "Player_TakeDamage" );

SyncHudMessage = CreateHudSyncObj( );

g_iMaxPlayers = get_maxplayers( );

server_print( "%s Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN );
server_print( "%s Pentru mai multe detalii y/m: skyy.star1 !", PLUGIN );
server_print( "%s Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN, szIp, ServerLicensedIp );
}
else
{
new szPluginName[ 32 ];
formatex( szPluginName, sizeof( szPluginName ) -1, "[IP Nelicentiat] %s", PLUGIN );
register_plugin( szPluginName, VERSION, "Askhanar" );
server_print( "%s Nu detii o licenta valabila ! Plugin-ul nu va functiona corespunzator !", PLUGIN );
server_print( "%s Pentru mai multe detalii y/m: alinusul21 !", PLUGIN );
server_print( "%s Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN, szIp, ServerLicensedIp );

pause( "ade" );
}



}

public client_connect( id )
{
if( is_user_bot( id ) || is_user_hltv( id ) ) return 1;

UserIsKage[ id ] = false;
UserIsPsycho[ id ] = false;

client_cmd( id , "cl_sidespeed 1000" );
client_cmd( id , "cl_forwardspeed 1000" );
client_cmd( id , "cl_backspeed 1000" );

return 0;
}

public client_disconnect( id )
{
if( is_user_bot( id ) || is_user_hltv( id ) ) return 1;

UserIsKage[ id ] = false;
UserIsPsycho[ id ] = false;

client_cmd( id , "cl_sidespeed 400" );
client_cmd( id , "cl_forwardpeed 400" );
client_cmd( id , "cl_backspeed 400" );

return 0;
}

public ClCmdFire( id )
{
if( !is_user_alive( id ) || !UserIsKage[ id ]) return 1;

static Float: gametime ; gametime = get_gametime( );
if( gametime - float( get_pcvar_num( gCvarCoolDown ) ) > g_fCooldown[ id ] )
{
new iTeam = get_user_team( id );

if( 1 <= iTeam <= 2 )
{

new Float:fOrigin[ 3 ], iOrigin[ 3 ];
pev( id, pev_origin, fOrigin );

FVecIVec( fOrigin, iOrigin );

CreateBlast( 255, 25, 25, iOrigin );

emit_sound( id, CHAN_WEAPON, g_szLightSound, 1.0, ATTN_NORM, 0, PITCH_NORM );

LightNearPlayers( id, fOrigin );
}

g_fCooldown[ id ] = gametime;
}
else
{
ColorChat( id, RED, "^x04[Furien]^x03 Deklowaz Electric^x01 se incarca in^x03 %.1f^x01 secunde !", float( get_pcvar_num( gCvarCoolDown ) ) - ( gametime - g_fCooldown[ id ] ));
}

return 1;

}

public ClCmdExplode( id )
{
if( !is_user_alive( id ) || !UserIsPsycho[ id ]) return 1;

static Float: gametime ; gametime = get_gametime( );
if( gametime - float( get_pcvar_num( gCvarCoolDown2 ) ) > g_fCooldown[ id ] )
{
new iTeam = get_user_team( id );

if( 1 <= iTeam <= 2 )
{

new Float:fOrigin[ 3 ], iOrigin[ 3 ];
pev( id, pev_origin, fOrigin );

FVecIVec( fOrigin, iOrigin );

CreateBlast( 42, 170, 255, iOrigin );

emit_sound( id, CHAN_WEAPON, g_szExplodeSound2, 1.0, ATTN_NORM, 0, PITCH_NORM );

ExplodeAndDamageNearPlayers( id, fOrigin );
ColorChat( id, RED, "^x04[AntiFurien]^x01 Toti din jurul tau au simtit explozia !" );
}

g_fCooldown[ id ] = gametime;
}
else
{
ColorChat( id, RED, "^x04[AntiFurien]^x03 Alcadeias Explode^x01 se incarca in^x03 %.1f^x01 secunde !", float( get_pcvar_num( gCvarCoolDown2 ) ) - ( gametime - g_fCooldown[ id ] ));
}

return 1;

}

public LightNearPlayers( id, const Float:fOrigin[ 3 ] )
{
static iVictim;
iVictim = -1;

while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 )
{
if( !is_user_alive( iVictim ) )
continue;

if( get_user_team( id ) == get_user_team( iVictim ) )
continue;

new Float:fVictimOrigin[ 3 ], iVictimOrigin[ 3 ];
pev( id, pev_origin, fVictimOrigin );

FVecIVec( fVictimOrigin, iVictimOrigin );
CreateLightning( id, iVictim, iVictimOrigin );

new Float:fHealth;
pev( iVictim, pev_health, fHealth );

fHealth -= float( random_num( 70, 90 ) );

if( fHealth <= 0 )
{
log_kill( id, iVictim, "Blasto Freeze", 0 );
}
else
{
set_pev( iVictim, pev_health, fHealth );
}

}
}

public CreateLightning( id, iVictim, iVictimOrigin[ 3 ] )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMENTS );
write_short( id ); // start entity
write_short( iVictim ); // end entity
write_short( gLightModel ); // model
write_byte( 0 ); // starting frame
write_byte( 15 ); // frame rate
write_byte( 15 ); // life
write_byte( 80 ); // line width
write_byte( 10 ); // noise amplitude
write_byte( 255 ); // red
write_byte( 25 ); // green
write_byte( 25 ); // blue
write_byte( 255 ); // brightness
write_byte( 0 ); // scroll speed
message_end( );

message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_ELIGHT );
write_short( iVictim ); // entity
write_coord( iVictimOrigin[0] ); // initial position
write_coord( iVictimOrigin[1] ); // initial position
write_coord( iVictimOrigin[2] ); // initial position
write_coord( 100 ); // radius
write_byte( 255 ); // red
write_byte( 25 ); // green
write_byte( 25 ); // blue
write_byte( 15 ); // life
write_coord( 0 ); // decay rate
message_end( );

}

public ExplodeAndDamageNearPlayers( iPsycho, const Float:fOrigin[ 3 ] )
{
static iVictim;
iVictim = -1;

while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 )
{
if( !is_user_alive( iVictim ) )
continue;

if( get_user_team( iPsycho ) == get_user_team( iVictim ) )
continue;

new Float:fHealth;
pev( iVictim, pev_health, fHealth );

fHealth -= float( random_num( 70, 90 ) );

if( fHealth <= 0 )
{
log_kill( iPsycho, iVictim, "Abyss Explode", 0 );
}
else
{
ShakeScreen( iVictim, 5.5 );
FadeScreen( iVictim, 3.0, 42, 170, 255, 100 );
damage_user( iVictim, fHealth, fOrigin, DMG_BLAST );
}
}
}

stock log_kill( iKiller, iVictim, szWeapon[], iHeadshot )
{
user_silentkill( iVictim );

message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
write_byte( iKiller );
write_byte( iVictim );
write_byte( iHeadshot );
write_string( szWeapon );
message_end( );

set_user_frags( iKiller, get_user_frags( iKiller ) +1 );

new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10];

get_user_name( iKiller, kname, 31 );
get_user_team( iKiller, kteam, 9 );
get_user_authid( iKiller, kauthid, 31 );

get_user_name( iVictim, vname, 31 );
get_user_team( iVictim, vteam, 9 );
get_user_authid( iVictim, vauthid, 31 );

log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
kname, get_user_userid( iKiller ), kauthid, kteam,
vname, get_user_userid( iVictim ), vauthid, vteam, szWeapon );

return 0;
}

stock damage_user( iVictim, const Float:fHealthLeft, const Float:fOrigin[ 3 ], bit )
{
new iOrigin[ 3 ];
FVecIVec( fOrigin, iOrigin );

message_begin( MSG_ONE, get_user_msgid( "Damage" ), {0,0,0}, iVictim );
write_byte( 21 );
write_byte( 20 );
write_long( bit );
write_coord( iOrigin[ 0 ] );
write_coord( iOrigin[ 1 ] );
write_coord( iOrigin[ 2 ] );
message_end( );

set_pev( iVictim, pev_health, fHealthLeft );
}

public evDeathMsg( )
{
SearchForKage( );
SearchForPsycho( );

new iKiller = read_data( 1 );
new iVictim = read_data( 2 );

if( !is_user_connected( iKiller ) || !is_user_connected( iVictim ) || iKiller == iVictim ) return 1;

if( UserIsKage[ iVictim ] )
{
ColorChat( 0, RED, "^x04[AntiFurien]^x01 Deklowaz^x03 %s^x01 a fost omorat de^x03 %s^x01 !",get_name( iVictim ), get_name( iKiller ) );
}
else if( UserIsPsycho[ iVictim ] )
{
ColorChat( 0, RED, "^x04[AntiFurien]^x01 Alcadeias^x03 %s^x01 a fost omorat de^x03 %s^x01 !",get_name( iVictim ), get_name( iKiller ) );
}

return 0;

}

public Ham_PlayerSpawnPost( id )
{

if( !is_user_alive( id ) || !is_user_connected( id ) ) return HAM_IGNORED;


set_task( 0.1, "RemovePowers", id + 123 );


return HAM_IGNORED;

}

public Ham_ResetMaxSpeedPost( id )
{
if( is_user_alive( id ) && is_user_connected( id ) && get_user_maxspeed(id) != 1.0 )
{

new Float:flMaxSpeed;
if( UserIsPsycho[ id ] )
{
flMaxSpeed = float( get_pcvar_num( cvar_speed ) );
}
if( UserIsKage[ id ] )
{
flMaxSpeed = float( get_pcvar_num( cvar_speed2 ) );
}

if( flMaxSpeed > 0.0 )
{
set_pev( id, pev_maxspeed, flMaxSpeed );

}
}
}

public Player_TakeDamage(id, inflictor, attacker, Float:damage, damagebits)
{
if( is_user_alive( id ) && UserIsPsycho [ id ] ) {

if( !(1 <= attacker <= g_iMaxPlayers)
|| attacker != inflictor
|| cs_get_user_team(attacker) != CS_TEAM_CT
|| get_user_weapon(attacker) != CSW_SG550 )
return HAM_IGNORED;

SetHamParamFloat(4, damage * 3);
return HAM_HANDLED;
}

return 1;
}

public RemovePowers( id )
{
id -= 123;
if( !is_user_connected( id ) ) return 1;

if( UserIsPsycho[ id ] )
{

set_user_armor( id, 0 );
set_rendering( id );
}

if( UserIsKage[ id ] )
{

set_user_armor( id, 0 );

}

UserIsPsycho[ id ] = false;
UserIsKage[ id ] = false;

client_cmd( id, "lastinv" );
client_cmd( id, "lastinv" );

return 0;
}


public SearchForPsycho( )
{
new iTerro = CountPlayers( 1 );
new iCounter = CountPlayers( 2 );

if( iCounter == 1 && iTerro > 0 )
{

new id = GetRemainingPlayerId( 2 );
if( UserIsPsycho[ id ] ) return 1;

UserIsPsycho[ id ] = true;

ColorChat( 0, RED,"^x04[AntiFurien]^x03 %s^x01 a devenit^x03 Alcadeias^x01 ! ", get_name( id ) );
ColorChat( 0, RED,"^x04[AntiFurien]^x01 Are^x03 %d^x01 HP,^x03 %d^x01 AP,^x03 %d^x01 Speed, aveti grija !", get_pcvar_num( cvar_hp ), get_pcvar_num( cvar_ap ), get_pcvar_num( cvar_speed ) );
ColorChat( 0, RED,"^x04[Furien]^x01 De asemenea a primit si o putere antica(^x03 Alcadeias Explode^x01 ) ! " );


set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 0.0, 5.0, 0.0, 1.0, 3);
ShowSyncHudMsg( 0, SyncHudMessage, "%s a devenit Alcadeias !^n Cea din urma salvare a omenirii !", get_name( id ) );


set_user_maxspeed( id, float( get_pcvar_num( cvar_speed ) ) );
set_user_health( id, get_pcvar_num( cvar_hp ) );
set_user_armor( id, get_pcvar_num( cvar_ap ) );
give_item( id, "weapon_sg550" );
cs_set_user_bpammo( id, CSW_SG550, 200 );
if( get_user_weapon( id ) == CSW_SG550 ) {
set_pev( id, pev_viewmodel2, SG550_V_MODEL );
set_pev( id, pev_weaponmodel2, SG550_P_MODEL );
green_bullets( id );
}

set_rendering( id, kRenderFxGlowShell, 0, 255, 255, kRenderNormal, 25 );

new szCommand[ 128 ];
formatex( szCommand, sizeof ( szCommand ) -1,"cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f",
float( get_pcvar_num( cvar_speed ) ), float( get_pcvar_num( cvar_speed ) ),
float( get_pcvar_num( cvar_speed ) ) );
client_cmd( id, szCommand );


}

return 0;

}

public SearchForKage( )
{
new iTerro = CountPlayers( 1 );
new iCounter = CountPlayers( 2 );

if( iTerro == 1 && iCounter > 0 )
{
new id = GetRemainingPlayerId( 1 );
if( UserIsKage[ id ] ) return 1;

UserIsKage[ id ] = true;

ColorChat( 0, RED,"^x04[Furien]^x03 %s^x01 s-a transformat in^x03 Deklowaz^x01 ! ", get_name( id ));
ColorChat( 0, RED,"^x04[Furien]^x01 Are^x03 %d^x01 HP,^x03 %d^x01 AP,^x03 %d^x01 Speed, aveti grija !", get_pcvar_num( cvar_hp2 ), get_pcvar_num( cvar_ap2 ), get_pcvar_num( cvar_speed2 ) );
ColorChat( 0, RED,"^x04[Furien]^x01 De asemenea a primit si o putere antica(^x03 Deklowaz Electric^x01 ) ! " );


set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 0.0, 5.0, 0.0, 1.0, 3);
ShowSyncHudMsg( 0, SyncHudMessage, "%s s-a transformat in Deklowaz !^nSansele pamantenilor au scazut !", get_name( id ) );


set_user_maxspeed( id, float( get_pcvar_num( cvar_speed2 ) ) );
set_user_health( id, get_pcvar_num( cvar_hp2 ) );
set_user_armor( id, get_pcvar_num( cvar_ap2 ) );

new szCommand[ 128 ];
formatex( szCommand, sizeof ( szCommand ) -1,"cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f",
float( get_pcvar_num( cvar_speed2 ) ), float( get_pcvar_num( cvar_speed2 ) ),
float( get_pcvar_num( cvar_speed2 ) ) );
client_cmd( id, szCommand );

}

return 0;
}

public green_bullets( id ) {
new clip,ammo;
new wpnid = get_user_weapon(id,clip,ammo);
new pteam[16];

get_user_team(id, pteam, 15);

if ((bullets[id] > clip) && (wpnid == CSW_SG550) )
{
new vec1[3], vec2[3];
get_user_origin(id, vec1, 1); // origin; your camera point.
get_user_origin(id, vec2, 4); // termina; where your bullet goes (4 is cs-only)


//BEAMENTPOINTS
message_begin( MSG_BROADCAST,SVC_TEMPENTITY);
write_byte (0); //TE_BEAMENTPOINTS 0
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2]);
write_coord(vec2[0]);
write_coord(vec2[1]);
write_coord(vec2[2]);
write_short( m_spriteTexture );
write_byte(1); // framestart
write_byte(5); // framerate
write_byte(2); // life
write_byte(10); // width
write_byte(0); // noise
write_byte( 8 ); // r, g, b
write_byte( 142 ); // r, g, b
write_byte( 17 ); // r, g, b
write_byte(200); // brightness
write_byte(150); // speed
message_end();
}

bullets[id] = clip;
}

CreateBlast( const Red, const Green, const Blue, const iOrigin[ 3 ] )
{

// Small ring
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] ); // start X
write_coord( iOrigin[ 1 ] ); // start Y
write_coord( iOrigin[ 2 ] ); // start Z
write_coord( iOrigin[ 0 ] ); // something X
write_coord( iOrigin[ 1 ] ); // something Y
write_coord( iOrigin[ 2 ] + 285 ); // something Z
write_short( gShockWaveSprite ); // sprite
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 4 ); // life
write_byte( 60 ); // width
write_byte( 0 ); // noise
write_byte( Red ); // red
write_byte( Green ); // green
write_byte( Blue ); // blue
write_byte( 200 ); // brightness
write_byte( 0 ); // speed
message_end( );

// Medium ring
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] ); // start X
write_coord( iOrigin[ 1 ] ); // start Y
write_coord( iOrigin[ 2 ] ); // start Z
write_coord( iOrigin[ 0 ] ); // something X
write_coord( iOrigin[ 1 ] ); // something Y
write_coord( iOrigin[ 2 ] + 385 ); // something Z
write_short( gShockWaveSprite ); // sprite
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 4 ); // life
write_byte( 60 ); // width
write_byte( 0 ); // noise
write_byte( Red ); // red
write_byte( Green ); // green
write_byte( Blue ); // blue
write_byte( 200 ); // brightness
write_byte( 0 ); // speed
message_end( );

// Large ring
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] ); // start X
write_coord( iOrigin[ 1 ] ); // start Y
write_coord( iOrigin[ 2 ] ); // start Z
write_coord( iOrigin[ 0 ] ); // something X
write_coord( iOrigin[ 1 ] ); // something Y
write_coord( iOrigin[ 2 ] + 470 ); // something Z
write_short( gShockWaveSprite ); // sprite
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 4 ); // life
write_byte( 60 ); // width
write_byte( 0 ); // noise
write_byte( Red ); // red
write_byte( Green ); // green
write_byte( Blue ); // blue
write_byte( 200 ); // brightness
write_byte( 0 ); // speed
message_end( );

// Largest Ring
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] ); // start X
write_coord( iOrigin[ 1 ] ); // start Y
write_coord( iOrigin[ 2 ] ); // start Z
write_coord( iOrigin[ 0 ] ); // something X
write_coord( iOrigin[ 1 ] ); // something Y
write_coord( iOrigin[ 2 ] + 555 ); // something Z
write_short( gShockWaveSprite ); // sprite
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 4 ); // life
write_byte( 60 ); // width
write_byte( 0 ); // noise
write_byte( Red ); // red
write_byte( Green ); // green
write_byte( Blue ); // blue
write_byte( 200 ); // brightness
write_byte( 0 ); // speed
message_end( );
}

stock CountPlayers( const Team )
{
new iPlayers[ 32 ];
new iPlayersNum;

new iPlayersCount = 0;

get_players( iPlayers, iPlayersNum, "ch" );
for( new i = 0 ; i < iPlayersNum ; i++ )
{
if( is_user_connected( iPlayers[ i ] ) && is_user_alive( iPlayers[ i ] ) )
{

if( Team == 1 )
{
if( get_user_team( iPlayers[ i ] ) == 1 )
{
iPlayersCount++;
}
}
else if( Team == 2 )
{
if( get_user_team( iPlayers[ i ] ) == 2 )
{

iPlayersCount++;
}
}
}

}

return iPlayersCount;

}

stock GetRemainingPlayerId( const Team )
{
new iPlayers[ 32 ];
new iPlayersNum;

new iPlayerId;

get_players( iPlayers, iPlayersNum, "ch" );
for( new i = 0 ; i < iPlayersNum ; i++ )
{
if( is_user_connected( iPlayers[ i ] ) && is_user_alive( iPlayers[ i ] ) )
{

if( Team == 1 )
{

if( get_user_team( iPlayers[ i ] ) == 1 )
{
iPlayerId = iPlayers[ i ];
}
}
else if( Team == 2 )
{

if( get_user_team( iPlayers[ i ] ) == 2 )
{
iPlayerId = iPlayers[ i ];
}
}
}

}

return iPlayerId;

}

stock get_name( id )
{
new name[ 32 ];
get_user_name( id, name, sizeof ( name ) -1 );

return name;
}

public ShakeScreen( id, const Float:seconds )
{
message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( 1<<13 );
message_end( );

}

public FadeScreen( id, const Float:seconds, const red, const green, const blue, const alpha )
{
message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, id );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( 0x0000 );
write_byte( red );
write_byte( green );
write_byte( blue );
write_byte( alpha );
message_end( );

}

Nu văd de ce aș introduce acest plugin pe server avānd īn vedere faptul că a mai fost ceva foarte asemănător pe server " Kage vs Psycho " la scurt timp de la introducerea acestuia pe server au īnceput și plāngerile atāt din partea playerilor cāt și a membrilor din staff. Acesta este un server de Furien Clasic , nu Xp & Class sau altele , așadar nu se va introduce acest plugin !
Propunere respinsă !
:locked: