Code: Select all
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP Include/Define Plugin |
//==========================================================================================================
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
//------| Gradul care sal aiba Vip-u |------//
#define VIP_LEVEL ADMIN_BAN
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP Plugin New |
//==========================================================================================================
//------| Sets Cvars |------//
new health_vip, speed_vip, money_vip;
//------| Vips Ultimate Ammo Cvars |------//
new bool:unammo[33], gReloadTime[33]
//------| Vips Online/List |------//
new maxplayers
static const COLOR[] = "^x04"; // Green for display VIP
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP Plugin Init |
//==========================================================================================================
public plugin_init() {
register_plugin("VIP", "1.0", "Aragon*")
register_clcmd("say /vip ","ShowMotd")
register_clcmd("say /vipinfo ","ShowMotd")
register_clcmd("say /vip_info ","ShowMotd")
register_clcmd("say vipinfo ","ShowMotd")
register_clcmd("say vip_info ","ShowMotd")
register_clcmd("say_team /vip ","ShowMotd")
register_clcmd("say_team /vipinfo ","ShowMotd")
register_clcmd("say_team /vip_info ","ShowMotd")
register_clcmd("say_team vipinfo ","ShowMotd")
register_clcmd("say_team vip_info ","ShowMotd")
register_event("CurWeapon", "changeWeapon", "be", "1=1")
RegisterHam(Ham_Spawn, "player", "Spawn", 1);
RegisterHam(Ham_TakeDamage, "player", "bacon_takedamage_player")
register_clcmd("say", "handle_say");
maxplayers = get_maxplayers();
health_vip = register_cvar("amx_vip_hp", "180") //| Vip: Viata la inceputul rundei |//
speed_vip = register_cvar("amx_vip_speed", "100") //| Vip: Cat speed sa aiba in plus |//
money_vip = register_cvar("amx_vip_money", "16000") //| Vip: Cati bani sa aiba la inceputul rundei |//
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP New Round/Round Start/Cur Weapon |
//==========================================================================================================
public changeWeapon(id) {
if(get_user_flags(id) & VIP_LEVEL) {
if(fm_get_user_maxspeed(id) < get_pcvar_num(speed_vip)) {
fm_set_user_maxspeed(id, fm_get_user_maxspeed(id) + get_pcvar_num(speed_vip))
}
if(unammo[id]) {
new wpnid = read_data(2);
new clip = read_data(3);
if (wpnid == CSW_C4 || wpnid == CSW_KNIFE) return;
if (wpnid == CSW_HEGRENADE || wpnid == CSW_SMOKEGRENADE || wpnid == CSW_FLASHBANG) return;
if (clip == 0) reloadAmmo(id);
}
}
}
public bacon_takedamage_player(victim, attacker, Float:damage, damagetype) {
if(damagetype & DMG_GENERIC || victim == attacker || !is_user_alive(victim) || !is_user_connected(attacker))
return HAM_IGNORED
damage *= 2;
return HAM_HANDLED;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP Round Start/Respawn |
//==========================================================================================================
public Spawn(id) {
if(get_user_flags(id) & VIP_LEVEL) {
if(get_user_health(id) < get_pcvar_num(health_vip)) {
fm_set_user_health(id, get_pcvar_num(health_vip));
}
if(fm_get_user_maxspeed(id) < get_pcvar_num(speed_vip)) {
fm_set_user_maxspeed(id, fm_get_user_maxspeed(id) + get_pcvar_num(speed_vip));
}
unammo[id] = true
cs_set_user_money(id, get_pcvar_num(money_vip))
fm_give_item(id,"weapon_hegrenade");
fm_give_item(id,"weapon_flashbang");
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP Ultimate Ammo |
//==========================================================================================================
public reloadAmmo(id) {
if (!is_user_connected(id)) return;
//if (get_pcvar_num(unammo_vip) == 0) return;
if (gReloadTime[id] >= get_systime() - 1) return;
gReloadTime[id] = get_systime();
new clip, ammo, wpn[32];
new wpnid = get_user_weapon(id, clip, ammo);
if (wpnid == CSW_C4 || wpnid == CSW_KNIFE || wpnid == 0) return;
if (wpnid == CSW_HEGRENADE || wpnid == CSW_SMOKEGRENADE || wpnid == CSW_FLASHBANG) return;
if (clip == 0) {
get_weaponname(wpnid,wpn,31);
new iWPNidx = -1;
while((iWPNidx = fm_find_ent_by_class(iWPNidx, wpn)) != 0) {
if(id == pev(iWPNidx, pev_owner)) {
cs_set_weapon_ammo(iWPNidx, getMaxClipAmmo(wpnid));
break;
}
}
}
}
stock getMaxClipAmmo(wpnid) {
new clipammo = 0;
switch (wpnid) {
case CSW_P228 : clipammo = 13;
case CSW_SCOUT : clipammo = 10;
case CSW_HEGRENADE : clipammo = 0;
case CSW_XM1014 : clipammo = 7;
case CSW_C4 : clipammo = 0;
case CSW_MAC10 : clipammo = 30;
case CSW_AUG : clipammo = 30;
case CSW_SMOKEGRENADE : clipammo = 0;
case CSW_ELITE : clipammo = 15;
case CSW_FIVESEVEN : clipammo = 20;
case CSW_UMP45 : clipammo = 25;
case CSW_SG550 : clipammo = 30;
case CSW_GALI : clipammo = 35;
case CSW_FAMAS : clipammo = 25;
case CSW_USP : clipammo = 12;
case CSW_GLOCK18 : clipammo = 20;
case CSW_AWP : clipammo = 10;
case CSW_MP5NAVY : clipammo = 30;
case CSW_M249 : clipammo = 100;
case CSW_M3 : clipammo = 8;
case CSW_M4A1 : clipammo = 30;
case CSW_TMP : clipammo = 30;
case CSW_G3SG1 : clipammo = 20;
case CSW_FLASHBANG : clipammo = 0;
case CSW_DEAGLE : clipammo = 7;
case CSW_SG552 : clipammo = 30;
case CSW_AK47 : clipammo = 30;
case CSW_KNIFE : clipammo = 0;
case CSW_P90 : clipammo = 50;
}
return clipammo;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP Online/List |
//==========================================================================================================
public print_adminlist(user) {
new adminnames[33][32];
new message[256];
new id, count, x, len;
for(id = 1 ; id <= maxplayers ; id++)
if(is_user_connected(id))
if(get_user_flags(id) & VIP_LEVEL)
get_user_name(id, adminnames[count++], 31);
len = format(message, 255, "%s VIP ONLINE: ",COLOR);
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, "%s ",COLOR);
}
}
print_message(user, message);
}
else {
len += format(message[len], 255-len, "No VIP online.");
print_message(user, message);
}
}
print_message(id, msg[]) {
message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
write_byte(id);
write_string(msg);
message_end();
}
public handle_say(id) {
new said[192];
read_args(said,192);
if(contain(said, "/vips") != -1)
set_task(0.1,"print_adminlist",id);
return PLUGIN_CONTINUE;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP Motd |
//==========================================================================================================
public ShowMotd(id) {
show_motd(id, "vip.txt")
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/