/* ,,,,,, .-----------------------.
|@ @| ( Siemka )
| () | /'-----------------------'
`(//\\)'
\ /
)(
.-/ \-.
/ / /\ \ \
( ( /--\ ) )
\_\____/_/
)_\\//_(
( () )
.-._\||/_.-.
(___._)(_.___) */
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta_util>
#include <colorchat>
#define FLAGA ADMIN_LEVEL_B
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD (1<<0)
#define SCOREATTRIB_BOMB (1<<1)
#define SCOREATTRIB_VIP (1<<2)
#define PLUGIN "Vip"
#define VERSION "1.0"
#define AUTHOR "speedkill"
#define ADMIN_CHECK ADMIN_LEVEL_B
#define TAG_ACCESS ADMIN_LEVEL_B
new gcvarTag, gcvarLock;
new gmsgSayText;
static const COLOR[] = "^x04"
new maxplayers
new SayTxT
new bool:HasC4[33]
new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2
new bool:gbAccess[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");
SayTxT = get_user_msgid("SayText");
maxplayers = get_maxplayers()
gmsgSayText = get_user_msgid("SayText")
register_clcmd("say /vips", "print_adminlist");
RegisterHam(Ham_Spawn, "player", "bacon_spawn", 1)
register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "on_new_round", "a", "1=0", "2=0")
register_message(gmsgSayText,"messageSayText");
register_clcmd("amx_vip", "CmdSay", 0, "*<tekst>");
register_clcmd("say /vip", "ShowMotd")
gcvarTag = register_cvar("amx_chattag","[VIP]");
gcvarLock = register_cvar("amx_chattag_lock","1");
g_type = register_cvar("amx_bulletdamage","1")
g_recieved = register_cvar("amx_bulletdamage_recieved","1")
g_hudmsg1 = CreateHudSyncObj()
g_hudmsg2 = CreateHudSyncObj()
}
public plugin_precache() {
precache_model("models/player/vips_ct/vips_ct.mdl")
precache_model("models/player/vips_tt/vips_tt.mdl")
return PLUGIN_CONTINUE
}
public fwHamPlayerSpawnPost(id){
if (get_user_flags(id) & ADMIN_LEVEL_
{
new kasa = cs_get_user_money(id);
cs_set_user_money(id, kasa + 500);
menu(id)
}
}
public MessageScoreAttrib(iMsgID, iDest, iReceiver)
{
new iPlayer = get_msg_arg_int(1);
if(get_user_flags(iPlayer) & FLAGA)
{
if(is_user_connected(iPlayer))
{
if(cs_get_user_team(iPlayer)==CS_TEAM_CT)
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
else
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
}
}
}
public menu(id)
{
new menu = menu_create("\rMenu Broni", "wybieranie")
menu_additem(menu, "\wAwp, Deagle, Fb", "1", 0)
menu_additem(menu, "\wM4a1, Deagle, He", "2", 0)
menu_additem(menu, "\wAk47, Elite, He", "3", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}
public wybieranie(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:{
client_printcolor(id, "/ctr [AMXX.PL] Wybrales pierwszy zestaw broni")
if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_give_item(id, "weapon_awp")
fm_give_item(id,"ammo_338magnum")
fm_give_item(id,"ammo_338magnum")
fm_give_item(id,"ammo_338magnum")
fm_give_item(id, "weapon_deagle")
fm_give_item(id, "item_thighpack")
fm_give_item(id, "weapon_flashbang")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
if (HasC4[id])
{
fm_give_item(id, "weapon_c4");
cs_set_user_plant( id );
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
case 2:{
client_printcolor(id, "/ctr [AMXX.PL] Wybrales drugi zestaw broni")
if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_give_item(id, "weapon_m4a1")
fm_give_item(id,"ammo_556nato")
fm_give_item(id,"ammo_556nato")
fm_give_item(id,"ammo_556nato")
fm_give_item(id, "weapon_hegrenade")
fm_give_item(id, "item_thighpack")
fm_give_item(id, "weapon_deagle")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
if (HasC4[id])
{
fm_give_item(id, "weapon_c4");
cs_set_user_plant( id );
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
case 3:{
client_printcolor(id, "/ctr [AMXX.PL] Wybrales trzeci zestaw broni")
if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
HasC4[id] = true;
else
HasC4[id] = false;
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_give_item(id, "weapon_ak47")
fm_give_item(id, "weapon_hegrenade")
fm_give_item(id, "item_thighpack")
fm_give_item(id,"ammo_762nato")
fm_give_item(id,"ammo_762nato")
fm_give_item(id,"ammo_762nato")
fm_give_item(id, "weapon_elite")
fm_give_item(id,"ammo_9mm")
if (HasC4[id])
{
fm_give_item(id, "weapon_c4");
cs_set_user_plant( id );
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg,190,input,3);
replace_all(msg,190,"/g","^4");// green txt
replace_all(msg,190,"/y","^1");// orange txt
replace_all(msg,190,"/ctr","^3");// team txt
replace_all(msg,190,"/w","^0");// team txt
if (id) players[0] = id; else get_players(players,count,"ch");
for (new i = 0; i < count; i++)
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, SayTxT, _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
public print_adminlist(user)
{
new adminnames[33][32]
new message[256]
new contactinfo[256], contact[112]
new id, count, x, len
for(id = 1 ; id <= maxplayers ; id++)
if(is_user_connected(id))
if(get_user_flags(id) & ADMIN_CHECK)
get_user_name(id, adminnames[count++], 31)
len = format(message, 255, "%s Vipy 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, "Brak vipow online.")
print_message(user, message)
}
get_cvar_string("amx_contactinfo", contact, 63)
if(contact[0]) {
format(contactinfo, 111, "%s Contact Server Admin -- %s", COLOR, contact)
print_message(user, contactinfo)
}
}
print_message(id, msg[]) {
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
write_byte(id)
write_string(msg)
message_end()
}
public client_putinserver(id){
gbAccess[id] = (get_user_flags(id) & read_flags("n")) > 0;
}
public on_new_round()
{
g_enabled = get_pcvar_num(g_type)
if(get_pcvar_num(g_recieved)) g_showrecieved = true
}
public on_damage(id)
{
if(g_enabled)
{
static attacker; attacker = get_user_attacker(id)
static damage; damage = read_data(2)
if(g_showrecieved && gbAccess[id])
{
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)
}
if(is_user_connected(attacker) && gbAccess[attacker])
{
switch(g_enabled)
{
case 1: {
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
}
case 2: {
if(fm_is_ent_visible(attacker,id))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
}
}
}
}
}
}
public bacon_spawn(id) {
if (get_user_flags(id) & ADMIN_LEVEL_ {
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "vips_tt")
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "vips_ct")
}
else {
cs_reset_user_model(id)
}
}
}
public messageSayText(msg_id, msg_dest, msg_entity){
new id = get_msg_arg_int(1)
if(is_user_connected(id)){
new szBuffer[128];
get_msg_arg_string(2, szBuffer, 127);
if(contain(szBuffer, "#Cstrike_Chat_")==0){
new szName[50], szTag[18];
get_user_name(id, szName, 31);
get_pcvar_string(gcvarTag, szTag, 17);
if(get_user_flags(id) & TAG_ACCESS){
format(szName, 49,"%s %s", szTag, szName);
}else{
if(containi(szName, szTag)==0 && get_pcvar_num(gcvarLock)){
if(id==msg_entity)
ColorChat(id, GREEN,"Usun z nicku tag^x03 %s^x01, aby korzystac z chatu",szTag);
return PLUGIN_HANDLED;
}
}
new szBuffer2[192];
get_msg_arg_string(4, szBuffer2, 191);
message_begin(MSG_ONE, gmsgSayText,{0,0,0}, msg_entity);
write_byte(id);
write_string(szBuffer);
write_string(szName);
write_string(szBuffer2);
message_end();
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public CmdSay(id)
{
new znaczek[2]
read_argv(1, znaczek, 1);
if(znaczek[0] == '*')
{
new msg[256], nick[33];
read_args(msg, 255); remove_quotes(msg);
get_user_name(id, nick, 32);
if(get_user_flags(id) & ADMIN_LEVEL_
format(msg, 255, "(VIP) %s : %s", nick, msg[1]);
else
format(msg, 255, "(Gracz) %s : %s", nick, msg[1]);
new players[32], num;
get_players(players, num);
for(new i = 0; i < num; i++)
{
if(players[i] != id && get_user_flags(players[i]) & ADMIN_LEVEL_
client_printcolor(players[i], "/ctr %s", msg);
}
client_printcolor(id, "/ctr %s", msg);
}
return PLUGIN_HANDLED;
}
public ShowMotd(id)
{
show_motd(id, "vip.txt","Informacje o Vipie");
}
Bez biblioteki Fun.
Użytkownik Lelek919 edytował ten post 08.12.2011 09:05