/* Plugin generated by AMXX-Studio */
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < fakemeta_util >
#define PLUGIN "[VIP] Surf"
#define VERSION "1.1"
#define AUTHOR "HyperioN."
#define VIP_FLAG ADMIN_LEVEL_H // Aici modifici tu flagul...
#define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers ) // e pentru damage, sa nu dea erori in consola
new g_iMaxPlayers;
// -- || Variabile
new const Yahoo [ ] = "[email protected]"; // Aici schimbi cu id-ul tau !
new const szTag [ ] = "[VIP]"; // Aici modifici tagul
new menu, HasPower[33], bool:HasChose[33];
// -- || Weapons
new m_spriteTexture;
new bool: M4A1[ 33 ];
new bool: Ak47[ 33 ];
new bool: Deagle[ 33 ];
new bool: M3 [ 33 ];
new const vM4A1 [ 64 ] = "models/surf/v_m4a1golden.mdl";
new const pM4A1 [ 64 ] = "models/surf/p_m4a1golden.mdl";
new const vAk47 [ 64 ] = "models/surf/v_ak47golden.mdl";
new const pAk47 [ 64 ] = "models/surf/p_ak47golden.mdl";
new const vDeagle [ 64 ] = "models/surf/v_deaglegolden.mdl";
new const pDeagle [ 64 ] = "models/surf/p_deaglegolden.mdl";
new const vM3 [ 64 ] = "models/surf/v_m3super.mdl";
new const pM3 [ 64 ] = "models/surf/p_m3super.mdl";
// -- || Score Bord
enum { SCOREATTRIB_ARG_PLAYERID = 1, SCOREATTRIB_ARG_FLAGS };
enum ( <<= 1 ) { SCOREATTRIB_FLAG_NONE = 0, SCOREATTRIB_FLAG_DEAD = 1, SCOREATTRIB_FLAG_BOMB, SCOREATTRIB_FLAG_VIP };
// -- || Cvar-uri
new round_hp, round_ap, round_speed, golden_efects;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
// -- || Cvar-uri
round_hp = register_cvar("vip_spawn_hp", "200");
round_ap = register_cvar("vip_spawn_ap", "200");
round_speed = register_cvar("vip_spawn_speed", "400.0");
golden_efects = register_cvar("vip_golden_efects","1");
// -- || HamSandwich
RegisterHam( Ham_Spawn, "player", "SpawnCmd", true );
RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
g_iMaxPlayers = get_maxplayers ( );
// -- || Event-uri
register_event( "CurWeapon", "CurrWeapon", "be", "1=1" );
register_event("CurWeapon", "GoldenEffect", "be", "1=1", "3>0" )
// -- || Score
register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
}
public plugin_precache ( ) {
precache_model( vM4A1 );
precache_model( pM4A1 );
precache_model( vAk47 );
precache_model( pAk47 );
precache_model( vDeagle );
precache_model( pDeagle );
precache_model( vM3 );
precache_model( pM3 );
m_spriteTexture = precache_model( "sprites/dot.spr" )
}
public client_putinserver(id) {
if(get_user_flags(id) & VIP_FLAG) {
new szName[ 32 ];
get_user_name(id, szName, 31);
ColorChat(0, "^x04%s^x01 Vipul ^x04%s^x01 se conecteaza !", szTag, szName);
}
}
public client_disconnect(id) {
if(get_user_flags(id) & VIP_FLAG) {
new szName[ 32 ];
get_user_name(id, szName, 31);
ColorChat(0, "^x04%s^x01 Vipul ^x04%s^x01 se deconecteaza !", szTag, szName);
}
}
public MessageScoreAttrib( iMsgId, iDest, iReceiver ) {
new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
if( access( iPlayer, VIP_FLAG ) ) {
set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
}
}
public SpawnCmd ( id ) {
if(is_user_connected(id)) {
if(get_user_flags(id) & VIP_FLAG) {
fm_set_user_health(id, get_pcvar_num( round_hp ) );
fm_set_user_armor(id, get_pcvar_num( round_ap ) );
fm_set_user_maxspeed(id, float( get_pcvar_num( round_speed ) ) );
}
}
return 0;
}
public ReSpawn ( id ) {
ExecuteHamB( Ham_CS_RoundRespawn, id );
return 1;
}
public CurrWeapon ( id ) {
if ( M4A1 [ id ] && get_user_weapon ( id ) == CSW_M4A1 ) {
set_pev ( id, pev_viewmodel2, vM4A1 );
set_pev ( id, pev_weaponmodel2, pM4A1 );
}
if ( Ak47 [ id ] && get_user_weapon ( id ) == CSW_AK47 ) {
set_pev ( id, pev_viewmodel2, vAk47 );
set_pev ( id, pev_weaponmodel2, pAk47 );
}
if ( Deagle [ id ] && get_user_weapon ( id ) == CSW_DEAGLE ) {
set_pev ( id, pev_viewmodel2, vDeagle );
set_pev ( id, pev_weaponmodel2, pDeagle );
}
if ( M3 [ id ] && get_user_weapon ( id ) == CSW_M3 ) {
set_pev ( id, pev_viewmodel2, vM3 );
set_pev ( id, pev_weaponmodel2, pM3 );
}
}
public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits )
{
if ( IsPlayer ( iAttacker ) ) {
if( get_user_weapon( iAttacker ) == CSW_M4A1 && M4A1[ iAttacker ] )
{
SetHamParamFloat( 4, fDamage * 2 )
return HAM_HANDLED;
}
if( get_user_weapon( iAttacker ) == CSW_AK47 && Ak47[ iAttacker ] )
{
SetHamParamFloat( 4, fDamage * 2 )
return HAM_HANDLED;
}
if( get_user_weapon( iAttacker ) == CSW_DEAGLE && Deagle[ iAttacker ] )
{
SetHamParamFloat( 4, fDamage * 2 )
return HAM_HANDLED;
}
if( get_user_weapon( iAttacker ) == CSW_M3 && M3[ iAttacker ] )
{
SetHamParamFloat( 4, fDamage * 2 )
return HAM_HANDLED;
}
}
return HAM_IGNORED;
}
public VipMenu(id) {
if(HasChose[id] && is_user_alive(id)) {
ColorChat(id,"^x03%s^x04 Ai ales deja o putere runda aceasta.",szTag);
return 1;
}
menu = menu_create("\rVIP Menu \yPage\r", "VIPMenu");
if(!(get_user_flags(id) & VIP_FLAG)) {
new buffer[256];
formatex(buffer,sizeof(buffer)-1,"\dM4a1 + Deagle + Set grenazi");
menu_additem(menu, buffer, "1", 0);
}
else if(HasPower[id] == 1) {
new buffer[256];
formatex(buffer,sizeof(buffer)-1,"\yM4a1 + Deagle + Set grenazi");
menu_additem(menu, buffer, "1", 0);
}
else {
new buffer[256];
formatex(buffer,sizeof(buffer)-1,"\wM4a1 + Deagle + Set grenazi");
menu_additem(menu, buffer, "1", 0);
}
if(!(get_user_flags(id) & VIP_FLAG)) {
new buffer[256];
formatex(buffer,sizeof(buffer)-1,"\dAk47 + Deagle + Set grenazi");
menu_additem(menu, buffer, "2", 0);
}
else if(HasPower[id] == 2) {
new buffer[256];
formatex(buffer,sizeof(buffer)-1,"\yAk47 + Deagle + Set grenazi");
menu_additem(menu, buffer, "2", 0); }
else {
new buffer[256];
formatex(buffer,sizeof(buffer)-1,"\wAk47 + Deagle + Set grenazi");
menu_additem(menu, buffer, "2", 0); }
if(!(get_user_flags(id) & VIP_FLAG)) {
new buffer[256];
formatex(buffer,sizeof(buffer)-1,"\dM3 + Deagle + Set grenazi");
menu_additem(menu, buffer, "3", 0);
}
else if(HasPower[id] == 3) {
new buffer[256];
formatex(buffer,sizeof(buffer)-1,"\yM3 + Deagle + Set grenazi");
menu_additem(menu, buffer, "3", 0);
}
else {
new buffer[256];
formatex(buffer,sizeof(buffer)-1,"\wM3 + Deagle + Set grenazi");
menu_additem(menu, buffer, "3", 0);
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return 0;
}
public VIPMenu(id, menu, item) {
if (item == MENU_EXIT) {
menu_destroy(menu);
return 1;
}
if(!(get_user_flags(id) & VIP_FLAG)) {
ColorChat(id,"^x03%s^x04 Doar persoanele cu^x03 VIP^x04 pot accesa acest meniu.", szTag);
ColorChat(id, "^x04%s^x01Pentru a cumpara contact : ^x04%s.", szTag, Yahoo);
return 1;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
switch(key) {
case 1: {
if(HasPower[id] == 1) {
ColorChat(id,"^x03%s^x04 Ai deja aceasta putere.", szTag);
return 1;
}
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
fm_give_item(id, "weapon_deagle");
fm_give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_DEAGLE, 70);
cs_set_user_bpammo(id, CSW_M4A1, 90);
M4A1[ id ] = true;
Ak47[ id ] = false;
Deagle[ id ] = true;
M3[ id ] = false;
CurrWeapon( id );
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_smokegrenade");
fm_give_item(id, "weapon_flashbang");
HasPower[id] = 1;
HasChose[id] = true;
}
case 2: {
if(HasPower[id] == 2) {
ColorChat(id,"^x03%s^x04 Ai deja aceasta putere.", szTag);
return 1;
}
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
fm_give_item(id, "weapon_deagle");
fm_give_item(id, "weapon_ak47");
cs_set_user_bpammo(id, CSW_DEAGLE, 70);
cs_set_user_bpammo(id, CSW_AK47, 90);
M4A1[ id ] = false;
Ak47[ id ] = true;
Deagle[ id ] = true;
M3[ id ] = false;
CurrWeapon( id );
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_smokegrenade");
fm_give_item(id, "weapon_flashbang");
HasPower[id] = 2;
HasChose[id] = true;
}
case 3: {
if(HasPower[id] == 3) {
ColorChat(id,"^x03%s^x04 Ai deja aceasta putere.", szTag);
return 1;
}
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
fm_give_item(id, "weapon_deagle");
fm_give_item(id, "weapon_m3");
cs_set_user_bpammo(id, CSW_DEAGLE, 70);
cs_set_user_bpammo(id, CSW_M3, 100);
M4A1[ id ] = false;
Ak47[ id ] = false;
Deagle[ id ] = true;
M3[ id ] = true;
CurrWeapon( id );
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_smokegrenade");
fm_give_item(id, "weapon_flashbang");
HasPower[id] = 3;
HasChose[id] = true;
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
////////////////////////////////////////// --- || Golden Efects || --- ////////////////////////
public GoldenEffect( id ) {
if(get_pcvar_num( golden_efects ) == 1) {
new clip,ammo
new Arma = get_user_weapon(id,clip,ammo)
if (Arma == CSW_AK47 && Ak47[ id ] || Arma == CSW_M4A1 && M4A1[ id ] || Arma == CSW_DEAGLE && Deagle[ id ] ) {
new vec1[ 3 ], vec2[ 3 ]
get_user_origin( id, vec1, 1 )
get_user_origin( id, vec2, 4 )
message_begin( MSG_BROADCAST,SVC_TEMPENTITY )
write_byte ( 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 )
write_byte( 5 )
write_byte( 2 )
write_byte( 10 )
write_byte( 0 )
write_byte( 255 )
write_byte( 215 )
write_byte( 0 )
write_byte( 200 )
write_byte( 150 )
message_end( )
}
}
}
////////////////////////////////////////// --- || Vips Say || --- /////////////////////////////////
public handle_say(id) {
new said[192];
read_args(said,192);
if(contain(said, "/vips") != -1) {
set_task(0.1,"print_adminlist",id);
}
if(get_user_flags(id) & VIP_FLAG) {
if(contain(said, "/reviveone") != -1) {
set_task(0.1, "ReSpawn", id);
}
if(contain(said, "/vmenu") != -1){
set_task(0.1, "VipMenu", id);
}
}
else
{
ColorChat(id, "^x04%s^x01Nu detii vip ! Pentru a cumpara contact : ^x04%s.", szTag, Yahoo);
}
return 0;
}
/////////////////\\\\\\\\\\\\\\\///////// --- || Vips Online || --- //////////////////////////////
public print_adminlist(user) {
new adminnames[33][32];
new message[256];
new id, count, x, len;
for(id = 1 ; id <= get_maxplayers() ; id++)
if(is_user_connected(id))
if(get_user_flags(id) & VIP_FLAG)
get_user_name(id, adminnames[count++], 31);
len = format(message, 255, "^x04 VIP ONLINE: ");
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"");
if(len > 96) {
print_message(user, message);
len = format(message, 255, "^x04 ");
}
}
print_message(user, message);
}
else {
len += format(message[len], 255-len, "No VIP online.");
print_message(user, message);
}
}
stock print_message(id, msg[]) {
message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
write_byte(id);
write_string(msg);
message_end();
}
stock ColorChat(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();
}
}
}
}