/* Plugin Created by lucy
NU MODIFICA NIMIC Altfel iei Crash la server !
Do Not Modify anithyng
*/
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta_util>
#define PLUGIN "Clase Furien"
#define VERSION "0.1"
#define ViewMaxModels 5
#define PlayerMaxModels 5
new ViewModels [ ViewMaxModels + 1 ] [ ] =
{
"models/v_balance.mdl",
"models/v_support.mdl",
"models/v_crow.mdl",
"models/v_roller.mdl",
"models/v_ripper.mdl",
""
};
enum _:PlayerWeap {
balance,
support,
crow,
roller,
ripper
}
new bool: l_HasOnelucyRound[ 33 ];
new g_PlayerWeap [ 33 ] [ PlayerWeap ];
public plugin_init( ) {
register_plugin( PLUGIN, VERSION, "lucy" ); // credite Hades Ownage, modified FaTzZu
RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", true);
register_event ( "CurWeapon", "CurrentWeapon", "be", "1=1" );
register_forward(FM_AlertMessage, "fn_alertmessage", 0)
register_event("ResetHUD", "newRound", "b");
register_clcmd( "say fclass", "ShowlucyMenu", -1 );
register_clcmd( "say /fclass", "ShowlucyMenu", -1 );
register_clcmd( "say_team /fclas", "ShowlucyMenu", -1 );
register_clcmd( "say /fclas", "ShowlucyMenu", -1 );
register_clcmd( "say_team /fclass", "ShowlucyMenu", -1 );
}
public plugin_precache( ) {
new vm;
for ( vm = 0; vm < sizeof ( ViewModels ); vm++ )
engfunc ( EngFunc_PrecacheModel, ViewModels [ vm ] );
}
public fn_alertmessage(at_type, const message[])
{
server_print("by Lucy")
server_print("Furien Models by lucy, Loading... To reset Models... %i", at_type)
server_print("Reset Models Loading Succesfully ! %s", message)
server_print("SERVER : Acest plugin Functioneaza perfect nu am bug si nici crash ! %s", message)
}
public client_connect( id ) {
g_PlayerWeap [ id ] [ balance ] = false;
g_PlayerWeap [ id ] [ support ] = false;
g_PlayerWeap [ id ] [ crow ] = false;
g_PlayerWeap [ id ] [ ripper ] = false;
g_PlayerWeap [ id ] [ roller ] = false;
}
public newRound( id ) {
if( get_user_team ( id ) == 2 ) {
l_HasOnelucyRound[ id ] = false;
}
l_HasOnelucyRound[ id ] = false;
g_PlayerWeap [ id ] [ balance ] = false;
g_PlayerWeap [ id ] [ support ] = false;
g_PlayerWeap [ id ] [ crow ] = false;
g_PlayerWeap [ id ] [ ripper ] = false;
g_PlayerWeap [ id ] [ roller ] = false;
}
public fwHamPlayerSpawnPost(iPlayer, id) {
if (is_user_alive(iPlayer)) {
l_HasOnelucyRound[ id ] = false;
return 1;
}
if( get_user_team ( id ) == 2 ) {
l_HasOnelucyRound[ id ] = false;
g_PlayerWeap [ id ] [ balance ] = false;
g_PlayerWeap [ id ] [ support ] = false;
g_PlayerWeap [ id ] [ crow ] = false;
g_PlayerWeap [ id ] [ ripper ] = false;
g_PlayerWeap [ id ] [ roller ] = false;
}
return 1;
}
public CurrentWeapon ( id ) {
new szWeapon = get_user_weapon ( id );
if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ balance ] )
set_pev ( id, pev_viewmodel2, ViewModels [ 0 ] );
if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ support ] )
set_pev ( id, pev_viewmodel2, ViewModels [ 1 ] );
if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ crow ] )
set_pev ( id, pev_viewmodel2, ViewModels [ 2 ] );
if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ roller ] )
set_pev ( id, pev_viewmodel2, ViewModels [ 3 ] );
if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ ripper ] )
set_pev ( id, pev_viewmodel2, ViewModels [ 4 ] );
}
public ShowlucyMenu( id ) {
if( !is_user_alive( id ) ) {
set_hudmessage(0, 255, 0, 0.02, 0.26, 0, 6.0, 12.0)
show_hudmessage(id, "[Furien Models by lucy]^nTrebuie sa fi in Viata pentru ^na alege o Clasa !")
return 1;
}
if( l_HasOnelucyRound[ id ] ) {
Color( id, "^4[Furien Models]^3 Ti-ai ales deja O clasa Runda Aceasta .^4 Poti alege din nou Runda Urmatoare !" );
return 1;
}
if ( get_user_team ( id ) == 1 ) {
set_task( 0.1, "ShowClassFurien", id );
}
if ( get_user_team ( id ) == 2 ) {
l_HasOnelucyRound[ id ] = false;
return 1;
}
return 1;
}
public ShowClassFurien ( id, level, cid ) {
new menu = menu_create ( "\wMenu Clase \rFurien", "ShowerClass" );
menu_additem ( menu, "\wBalance \r[balanced] \w[FurienMod]", "1", 0);
menu_additem ( menu, "\wSupport \r[HP++AP+++] \w[mdx_support]", "2", 0);
menu_additem ( menu, "\wCrow \r[Gravity--] \w[mdx_crow]", "3", 0);
menu_additem ( menu, "\wRolleR \r[Speed++] \w[mdx_roller]", "4", 0);
menu_additem ( menu, "\wRippeR \r[Damage+++] \w[mdx_ripper]", "5", 0);
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
return 1;
}
public ShowerClass ( id, menu, item ) {
if( item == MENU_EXIT )
{
return 1;
}
new data [ 6 ], szName [ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
new key = str_to_num ( data );
switch(key)
{
case 1:
{
set_pev ( id, pev_viewmodel2, ViewModels [ 0 ] );
set_hudmessage(127, 255, 127, 0.0, -1.0, 0, 6.0, 6.0);
show_hudmessage(id, "Info Clasa :^n [Ballance]");
Color( id, "^4Ai Ales Clasa^3 Balance !" );
l_HasOnelucyRound[ id ] = true;
g_PlayerWeap [ id ] [ balance ] = true;
g_PlayerWeap [ id ] [ support ] = false;
g_PlayerWeap [ id ] [ crow ] = false;
g_PlayerWeap [ id ] [ ripper ] = false;
g_PlayerWeap [ id ] [ roller ] = false;
return 1;
}
case 2:
{
set_pev ( id, pev_viewmodel2, ViewModels [ 1 ] );
Color( id, "^4Ai Ales Clasa ^3Support !" );
set_hudmessage(127, 255, 127, 0.0, -1.0, 0, 6.0, 6.0);
show_hudmessage(id, "Info Clasa :^n [Support]^n30HP + 50AP");
fm_set_user_health( id, get_user_health( id ) + 30 );
fm_set_user_armor( id, get_user_armor( id ) + 50 );
l_HasOnelucyRound[ id ] = true;
g_PlayerWeap [ id ] [ balance ] = false;
g_PlayerWeap [ id ] [ support ] = true;
g_PlayerWeap [ id ] [ crow ] = false;
g_PlayerWeap [ id ] [ ripper ] = false;
g_PlayerWeap [ id ] [ roller ] = false;
return 1;
}
case 3:
{
set_pev ( id, pev_viewmodel2, ViewModels [ 2 ] );
Color( id, "^4Ai Ales Clasa ^3Crow !" );
set_hudmessage(127, 255, 127, 0.0, -1.0, 0, 6.0, 6.0);
show_hudmessage(id, "Info Clasa :^n [Crow]^nGravity 1.0");
set_user_gravity( id, 1.0 );
l_HasOnelucyRound[ id ] = true;
g_PlayerWeap [ id ] [ balance ] = false;
g_PlayerWeap [ id ] [ support ] = false;
g_PlayerWeap [ id ] [ crow ] = true;
g_PlayerWeap [ id ] [ ripper ] = false;
g_PlayerWeap [ id ] [ roller ] = false;
return 1;
}
case 4:
{
set_pev ( id, pev_viewmodel2, ViewModels [ 3 ] );
Color( id, "^4Ai Ales Clasa ^3RolleR !" );
set_hudmessage(127, 255, 127, 0.0, -1.0, 0, 6.0, 6.0);
show_hudmessage(id, "Info Clasa :^n [RolleR]^n1000 Speed");
set_user_maxspeed( id, 1000.0 );
l_HasOnelucyRound[ id ] = true;
g_PlayerWeap [ id ] [ balance ] = false;
g_PlayerWeap [ id ] [ support ] = false;
g_PlayerWeap [ id ] [ crow ] = false;
g_PlayerWeap [ id ] [ ripper ] = false;
g_PlayerWeap [ id ] [ roller ] = true;
return 1;
}
case 5:
{
set_pev ( id, pev_viewmodel2, ViewModels [ 4 ] );
Color( id, "^4Ai Ales Clasa ^3RippeR !" );
set_hudmessage(170, 255, 127, 0.0, -1.0, 0, 6.0, 6.0);
show_hudmessage(id, "Info Clasa :^n [RippeR]^n Damage X3");
l_HasOnelucyRound[ id ] = true;
g_PlayerWeap [ id ] [ balance ] = false;
g_PlayerWeap [ id ] [ support ] = false;
g_PlayerWeap [ id ] [ crow ] = false;
g_PlayerWeap [ id ] [ ripper ] = true;
g_PlayerWeap [ id ] [ roller ] = false;
return 1;
}
}
return 1;
}
public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits ) {
if ( g_PlayerWeap [ iAttacker ] [ ripper ] && get_user_weapon ( iAttacker ) == CSW_KNIFE ) {
SetHamParamFloat( 4, fDamage * 3.0);
return HAM_HANDLED;
}
return HAM_IGNORED;
}
stock Color(const id, const input[], any:...) {
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!x04", "^4");
replace_all(msg, 190, "!x01", "^1");
replace_all(msg, 190, "!x03", "^3");
if(id) players[0] = id;
else get_players(players, count, "ch"); {
for(new i = 0; i < count; i++) {
if(is_user_connected(players)) {
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}
}