PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <cstrike>
#include <hamsandwich>
#include <engine>
#define PLUGIN "[Furien]Vip System"
#define VERSION "0.1"
#define AUTHOR "[Ecstasy]"
#define VIP_FLAGS ADMIN_LEVEL_H //Aici modifici cu accesul dorit !
#define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers )
new g_iMaxPlayers;
new bool: HaveItem[ 33 ];
new bool:he[33], bool:sg[33], bool:fb[33];
// |--> Weapon
new bool: Ak47[ 33 ];
new bool: M4A1[ 33 ];
new bool: ShoutGun[ 33 ];
new bool: Deagle[ 33 ];
new bool: SuperKnife[ 33 ];
new vAk47[ 64 ] = "models/v_golden_ak.mdl"; // Modifica cu locul si numele modelelor
new pAk47[ 64 ] = "models/p_golden_ak.mdl"; // Modifica cu locul si numele modelelor
new vM4A1[ 64 ] = "models/v_golden_m4a1.mdl"; // Modifica cu locul si numele modelelor
new pM4A1[ 64 ] = "models/v_golden_m4a1.mdl"; // Modifica cu locul si numele modelelor
new vShoutGun[ 64 ] = "models/v_shoutgun.mdl"; // Modifica cu locul si numele modelelor
new pShoutGun[ 64 ] = "models/p_shoutgun.mdl"; // Modifica cu locul si numele modelelor
new vDeagle[ 64 ] = "models/v_deagle.mdl"; // Modifica cu locul si numele modelelor
new pDeagle[ 64 ] = "models/p_deagle.mdl"; // Modifica cu locul si numele modelelor
new vSuperKnife[ 64 ] = "models/v_superknife.mdl"; // Modifica cu locul si numele modelelor
// |--> Cvar's
new cvar_hp_spawn_t, cvar_ap_spawn_t, cvar_hp_spawn_ct, cvar_ap_spawn_ct;
new regenerator_hp, regenerator_time, regenerator_max_hp;
new vip_money_t, vip_money_ct;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//Cvar's
cvar_hp_spawn_t = register_cvar("vip_hp_spawn_t", "200");
cvar_ap_spawn_t = register_cvar("vip_ap_spawn_t", "100");
cvar_hp_spawn_ct = register_cvar("vip_hp_spawn_ct", "200");
cvar_ap_spawn_ct = register_cvar("vip_ap_spawn_ct", "100");
regenerator_hp = register_cvar("vip_regenerator_hp", "5");
regenerator_time = register_cvar("vip_regenerator_time", "5");
regenerator_max_hp = register_cvar("vip_regenerator_max_hp", "100");
vip_money_t = register_cvar("vip_money_furien", "3000");
vip_money_ct = register_cvar("vip_money_antifurien", "3000");
register_clcmd( "say", "VipSay");
register_clcmd( "say_team", "VipSay");
RegisterHam( Ham_Spawn, "player", "SpawnCmd", true);
RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
g_iMaxPlayers = get_maxplayers ( );
register_event( "DeathMsg", "eDeathMsg", "a" );
register_event( "CurWeapon", "CurrWeapon", "be", "1=1" );
// Add your code here...
}
public plugin_precache( ) {
precache_model(vAk47);
precache_model(pAk47);
precache_model(vM4A1);
precache_model(pM4A1);
precache_model(vShoutGun);
precache_model(pShoutGun);
precache_model(vDeagle);
precache_model(pDeagle);
precache_model(vSuperKnife);
}
public SpawnCmd ( id ) {
if(get_user_flags(id) & VIP_FLAGS) {
if(is_user_alive(id)) {
switch(get_user_team(id))
{
case 1:
{
fm_set_user_health(id, get_pcvar_num( cvar_hp_spawn_t ) );
fm_set_user_armor(id, get_pcvar_num( cvar_ap_spawn_t ) );
RegeneratorHP( id );
HaveItem[ id ] = false;
he[ id ] = false;
sg[ id ] = false;
fb[ id ] = false;
Ak47[ id ] = false;
M4A1[ id ] = false;
ShoutGun[ id ] = false;
Deagle[ id ] = false;
SuperKnife[ id ] = false;
}
case 2:
{
fm_set_user_health(id, get_pcvar_num( cvar_hp_spawn_ct ) );
fm_set_user_armor(id, get_pcvar_num( cvar_ap_spawn_ct ) );
RegeneratorHP( id );
he[ id ] = false;
sg[ id ] = false;
fb[ id ] = false;
HaveItem[ id ] = false;
Ak47[ id ] = false;
M4A1[ id ] = false;
ShoutGun[ id ] = false;
Deagle[ id ] = false;
SuperKnife[ id ] = false;
}
}
}
}
return 0;
}
public RegeneratorHP( id ) {
if(get_user_flags(id) & VIP_FLAGS) {
new iHealth = get_user_health(id);
if(iHealth <= 25) {
RegeneratorCmd(id);
}
RegeneratorHP( id );
}
return 0;
}
public RegeneratorCmd(id) {
new iHealth = get_user_health(id);
if(iHealth < get_pcvar_num( regenerator_max_hp )) {
fm_set_user_health(id, iHealth + get_pcvar_num( regenerator_hp ) );
set_task(float(get_pcvar_num( regenerator_time )), "RegeneratorCmd", id);
}
else
{
return 1;
}
return 0;
}
public eDeathMsg ( id ) {
if(get_user_flags(id) & VIP_FLAGS) {
new iKiller = read_data( 1 );
switch(get_user_team(id))
{
case 1:
{
cs_set_user_money(iKiller, cs_get_user_money(id) + get_pcvar_num( vip_money_t ));
}
case 2:
{
cs_set_user_money(iKiller, cs_get_user_money(id) + get_pcvar_num( vip_money_ct ));
}
}
}
}
public VipSay ( id ) {
new say[192];
read_args(say, 192);
if(contain(say, "/vipmenu") != -1 || contain(say, "/furienvip") != -1) {
if(get_user_flags(id) & VIP_FLAGS) {
VIPMenuCmd(id);
}
else
{
ColorChat(id, "^x04[VIP]^x01 Doar cei cu VIP pot accesa acest meniu");
return 1;
}
}
return 0;
}
public VIPMenuCmd(id) {
new VIPMenu = menu_create( "\yVIP \wMenu", "VIPGiver" )
switch(get_user_team(id))
{
case 1:
{
menu_additem( VIPMenu, "\yAk47 Gold + Deagle Gold - \r(2xDMG)", "1", 0 )
menu_additem( VIPMenu, "\yM4a1 Gold + Deagle Gold - \r(2xDMG)", "2", 0 )
menu_additem( VIPMenu, "\yShoutgan + Deagle Gold - \r(2xDMG)", "3", 0 )
}
case 2:
{
menu_additem( VIPMenu, "\ySuperKnife - \r(2=4xDMG)", "1", 0 )
}
}
menu_setprop( VIPMenu, MPROP_EXIT, MEXIT_ALL )
menu_display( id, VIPMenu, 0 )
}
public VIPGiver( id, VIPMenu, item ) {
if( !(is_user_alive( id )) ) {
ColorChat( id, "^x04[VIP]^x01 Nu mai poti accesa meniul daca ai murit!" )
return PLUGIN_HANDLED;
}
if( HaveItem[ id ] ) {
ColorChat( id, "^x04[VIP]^x01 Ai ales deja runda asta." )
return PLUGIN_HANDLED;
}
if( item == MENU_EXIT ) {
menu_destroy( VIPMenu )
return PLUGIN_HANDLED;
}
switch(get_user_team(id))
{
case 1:
{
switch( item )
{
case 0 :
{
if(get_user_weapon(id) == CSW_HEGRENADE) {
he[ id ] = true;
}
if(get_user_weapon(id) == CSW_SMOKEGRENADE) {
sg[ id ] = true;
}
if(get_user_weapon(id) == CSW_FLASHBANG) {
fb[ id ] = true;
}
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);
Ak47[ id ] = true;
CurrWeapon(id);
HaveItem[ id ] = true;
if(he[id]) {
fm_give_item(id, "weapon_hegrenade");
}
if(sg[id]) {
fm_give_item(id, "weapon_smokegrenade");
}
if(fb[id]) {
fm_give_item(id, "weapon_flashbang");
}
}
case 1 :
{
if(get_user_weapon(id) == CSW_HEGRENADE) {
he[ id ] = true;
}
if(get_user_weapon(id) == CSW_SMOKEGRENADE) {
sg[ id ] = true;
}
if(get_user_weapon(id) == CSW_FLASHBANG) {
fb[ id ] = true;
}
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;
CurrWeapon(id);
HaveItem[ id ] = true;
if(he[id]) {
fm_give_item(id, "weapon_hegrenade");
}
if(sg[id]) {
fm_give_item(id, "weapon_smokegrenade");
}
if(fb[id]) {
fm_give_item(id, "weapon_flashbang");
}
}
case 2 :
{
if(get_user_weapon(id) == CSW_HEGRENADE) {
he[ id ] = true;
}
if(get_user_weapon(id) == CSW_SMOKEGRENADE) {
sg[ id ] = true;
}
if(get_user_weapon(id) == CSW_FLASHBANG) {
fb[ id ] = true;
}
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
fm_give_item(id, "weapon_deagle");
fm_give_item(id, "weapon_xm1014");
cs_set_user_bpammo(id, CSW_DEAGLE, 70);
cs_set_user_bpammo(id, CSW_XM1014, 90);
ShoutGun[ id ] = true;
CurrWeapon(id);
HaveItem[ id ] = true;
if(he[id]) {
fm_give_item(id, "weapon_hegrenade");
}
if(sg[id]) {
fm_give_item(id, "weapon_smokegrenade");
}
if(fb[id]) {
fm_give_item(id, "weapon_flashbang");
}
}
}
}
case 2:
{
switch( item )
{
case 0 :
{
if(get_user_weapon(id) == CSW_HEGRENADE) {
he[ id ] = true;
}
if(get_user_weapon(id) == CSW_SMOKEGRENADE) {
sg[ id ] = true;
}
if(get_user_weapon(id) == CSW_FLASHBANG) {
fb[ id ] = true;
}
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
SuperKnife[ id ] = true;
CurrWeapon(id);
HaveItem[ id ] = true;
if(he[id]) {
fm_give_item(id, "weapon_hegrenade");
}
if(sg[id]) {
fm_give_item(id, "weapon_smokegrenade");
}
if(fb[id]) {
fm_give_item(id, "weapon_flashbang");
}
}
}
}
}
menu_destroy( VIPMenu )
return PLUGIN_HANDLED;
}
public CurrWeapon ( id ) {
if ( SuperKnife [ id ] && get_user_weapon ( id ) == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, vSuperKnife );
}
if ( Ak47 [ id ] && get_user_weapon ( id ) == CSW_AK47 ) {
set_pev ( id, pev_viewmodel2, vAk47 );
set_pev ( id, pev_weaponmodel2, pAk47 );
}
if ( M4A1 [ id ] && get_user_weapon ( id ) == CSW_M4A1 ) {
set_pev ( id, pev_viewmodel2, vM4A1 );
set_pev ( id, pev_weaponmodel2, pM4A1 );
}
if ( ShoutGun [ id ] && get_user_weapon ( id ) == CSW_XM1014 ) {
set_pev ( id, pev_viewmodel2, vShoutGun );
set_pev ( id, pev_weaponmodel2, pShoutGun );
}
if ( Deagle [ id ] && get_user_weapon ( id ) == CSW_DEAGLE ) {
set_pev ( id, pev_viewmodel2, vDeagle );
set_pev ( id, pev_weaponmodel2, pDeagle );
}
}
public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits )
{
if ( IsPlayer ( iAttacker ) ) {
if( get_user_weapon( iAttacker ) == CSW_KNIFE && SuperKnife[ iAttacker ] && cs_get_user_team( iAttacker ) == CS_TEAM_T )
{
SetHamParamFloat( 4, fDamage * 2 )
return HAM_HANDLED;
}
if( get_user_weapon( iAttacker ) == CSW_KNIFE && Ak47[ iAttacker ] && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 2 )
return HAM_HANDLED;
}
if( get_user_weapon( iAttacker ) == CSW_KNIFE && M4A1[ iAttacker ] && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 2 )
return HAM_HANDLED;
}
if( get_user_weapon( iAttacker ) == CSW_XM1014 && ShoutGun[ iAttacker ] && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 2 )
return HAM_HANDLED;
}
if( get_user_weapon( iAttacker ) == CSW_DEAGLE && Deagle[ iAttacker ] && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 2 )
return HAM_HANDLED;
}
}
return HAM_IGNORED;
}
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();
}
}
}
}