AlliedModders Donor
Join Date: Mar 2014
Location: Tomorrowland
|
09-26-2016
, 15:21
Re: [REQ] VIP Menu
|
#2
|
By the way, found something similar
just if someone could change things as i wrote above
PHP Code:
#include <amxmodx> #include <amxmisc> #include <fun> #include <hamsandwich> #include <cstrike> #include <engine> #define PLUGIN "Knife_VIP" #define VERSION "1.0" #define AUTHOR "BS" #define VIP_CHECK ADMIN_LEVEL_H #define ADMIN_VIP ADMIN_LEVEL_H static const COLOR[] = "^x04" //green static const CONTACT[] = "" enum { SCOREATTRIB_ARG_PLAYERID = 1, SCOREATTRIB_ARG_FLAGS }; enum ( <<= 1 ) { SCOREATTRIB_FLAG_NONE = 0, SCOREATTRIB_FLAG_DEAD = 1, SCOREATTRIB_FLAG_BOMB, SCOREATTRIB_FLAG_VIP }; new pCvar_AdminVIP; new maxplayers new gmsgSayText new vip_bombe new vip_hp new vip_dosao new vip_boja_huda new vip_gravitacija new vip_brzina new vip_skin public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Spawn, "player", "Spawn", 1) vip_bombe = register_cvar("vip_bombe","0") vip_hp = register_cvar("vip_hp","0") vip_dosao = register_cvar("vip_dosao","1") vip_boja_huda = register_cvar("vip_boja_huda","2") pCvar_AdminVIP = register_cvar( "amx_adminvip", "1" ); vip_gravitacija = register_cvar("vip_gravitacija","0.2") vip_brzina = register_cvar("vip_brzina","0") vip_skin = register_cvar("vip_skin","0") register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER) register_clcmd("say", "handle_say") maxplayers = get_maxplayers() register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" ); gmsgSayText = get_user_msgid("SayText") register_event("ResetHUD", "resetModel", "b") register_event("CurWeapon", "eCurWeapon", "be", "1=1"); maxplayers = get_maxplayers() } public plugin_precache() { //precache_model("models/player/vipt/vipt.mdl") //precache_model("models/player/vipct/vipct.mdl") } public resetModel(id) { if(get_pcvar_num(vip_skin) == 1) return PLUGIN_CONTINUE; if(is_user_connected(id) && is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H) { switch(cs_get_user_team(id)) { case CS_TEAM_T: cs_set_user_model(id, "vipt"); case CS_TEAM_CT: cs_set_user_model(id, "vipct"); } } return PLUGIN_CONTINUE; } public Spawn(id) { if(is_user_connected(id) && is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H) { switch(get_pcvar_num(vip_bombe)) { case 1: { give_item(id,"weapon_hegrenade") give_item(id,"weapon_smokegrenade") give_item(id,"weapon_flashbang") } case 0: return PLUGIN_CONTINUE; } set_user_health(id,get_user_health(id) + get_pcvar_num(vip_hp)) set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_float(vip_brzina)) set_user_gravity(id, get_user_gravity(id) - get_pcvar_float(vip_gravitacija)) } return PLUGIN_HANDLED; } public eCurWeapon(id) { CheckSpeed(id); return PLUGIN_CONTINUE; } public CheckSpeed(id) set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_num(vip_brzina)); public client_putinserver(id) { set_task(3.0,"vip_doso",id) } public vip_doso(id) { if(is_user_connected(id)) { if(get_user_flags(id) & ADMIN_LEVEL_H) { if(is_user_connected(id)) if(get_pcvar_num(vip_dosao) == 0) return PLUGIN_HANDLED new name[32] get_user_name(id, name, 31) if(get_pcvar_num(vip_boja_huda) == 1) { set_hudmessage(255, 0, 0, 0.06, 0.73, 0, 6.0, 12.0) //crvema show_hudmessage(0, "VIP %s Connected to server.",name) } if(get_pcvar_num(vip_boja_huda) == 2) { set_hudmessage(0, 255, 0, 0.06, 0.73, 0, 6.0, 12.0) //zelena show_hudmessage(0, "VIP %s Connected to server.",name) } if(get_pcvar_num(vip_boja_huda) == 3) { set_hudmessage(0, 255, 255, 0.06, 0.73, 0, 6.0, 12.0) //plava show_hudmessage(0, "VIP %s Connected to server.",name) } return PLUGIN_HANDLED } return PLUGIN_HANDLED } return PLUGIN_HANDLED } public handle_say(id) { new said[192] read_args(said,192) if( ( containi(said, "who") != -1 && containi(said, "vip") != -1 ) || contain(said, "/vips") != -1 ) set_task(0.1,"print_adminlist",id) return PLUGIN_CONTINUE } 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) & VIP_CHECK) get_user_name(id, adminnames[count++], 31) len = format(message, 255, "%s VIPs 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 VIPs Online!") print_message(user, message) } get_cvar_string("amx_contactinfo", contact, 63) if(contact[0]) { format(contactinfo, 111, "%s Contact Server VIP -- %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 MessageScoreAttrib( iMsgId, iDest, iReceiver ) { if( get_pcvar_num( pCvar_AdminVIP ) ) { new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID ); if( access( iPlayer, ADMIN_VIP ) ) { set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP ); } } }
or even this one
this does everything what i need except gravity and other options
PHP Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fun> #include <hamsandwich> #include <colorchat>
#define VIP_FLAG ADMIN_LEVEL_H #define ACCESS_LEVEL ADMIN_LEVEL_C #define ADMIN_LISTEN ADMIN_RCON
new bool:has_onlyonce[33] new bool:has_onlyonc[33] new bool:has_onlyon[33] new bool:has_onlyo[33] new bool:has_only[33] new bool:has_onl[33]
static const COLOR[] = "^x04" //GREY static const CONTACT[] = "^x03" //normal
new maxplayers new gmsgSayText
new message[192] new sayText new teamInfo
new g_MessageColor new g_NameColor new g_AdminListen
new strName[191] new strText[191] new alive[11]
public plugin_init() { register_plugin("VIP privileges", "1.0", "Yryry") register_clcmd("vipmenu", "showMenu", VIP_FLAG, "goMenu") register_clcmd("say /vip","ShowMotd") register_event("ResetHUD", "VIP", "be") register_event("ResetHUD", "resetModel", "b") maxplayers = get_maxplayers() gmsgSayText = get_user_msgid("SayText") register_clcmd("say", "good_say") register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER) register_logevent("event_new_round", 2, "1=Round_Start")
g_MessageColor = register_cvar ("amx_color", "3")
g_NameColor = register_cvar ("amx_namecolor", "2") g_AdminListen = register_cvar ("amx_listen", "1") sayText = get_user_msgid ("SayText") teamInfo = get_user_msgid ("TeamInfo") register_message (sayText, "arubaid_duplicated") register_clcmd ("amx_color", "set_color", ACCESS_LEVEL, "<color>") register_clcmd ("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>") register_clcmd ("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>") register_clcmd ("say", "hook_say") register_clcmd ("say_team", "hook_teamsay") }
public ShowMotd(id) { show_motd(id, "vip.txt") }
public VIP(id) { set_task(0.5, "vip", id + 6910) }
public vip(TaskID) { new id = TaskID - 6910
if (get_user_flags(id) & VIP_FLAG) { message_begin(MSG_ALL, get_user_msgid("ScoreAttrib")) write_byte(id) write_byte(4) message_end() } return PLUGIN_HANDLED }
public client_authorized(id) { if (get_user_flags(id) & VIP_FLAG) { new player_name[32] get_user_name(id, player_name, 31) ColorChat(0, GREY,"^4VIP игрок ^3%s ^4заходит на сервер!", player_name) } client_cmd(id, "bind ^"-^" ^"vipmenu^"") }
public showMenu(id) { if((get_user_flags(id) & VIP_FLAG)) { goMenu(id) } else { ColorChat(id, GREY, "^4[VIP] ^1Доступно только для ^3V.I.P ^1игроков!") } return PLUGIN_HANDLED }
public good_say(id) { new said[192] read_args(said,192) if( ( containi(said, "who") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 ) set_task(0.1,"print_vipslist",id) return PLUGIN_CONTINUE }
public print_vipslist(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) & VIP_FLAG) get_user_name(id, adminnames[count++], 31)
len = format(message, 255, "%s VIP онлайн: ",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, "Сейчас нет VIP онлайн.") print_message(user, message) } get_cvar_string("amx_contactinfo", contact, 63) if(contact[0]) { format(contactinfo, 111, "%s Контактная информация, для связи с гл.админом. -- %s", CONTACT, 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 goMenu(id) { new i_Menu = menu_create("\yДобро пожаловать!^n\rVIP меню ", "menu_handler")
menu_additem(i_Menu, "\wВозродится", "1") menu_additem(i_Menu, "\wЗабанить игрока", "2") menu_additem(i_Menu, "\wВзять Броню", "3") menu_additem(i_Menu, "\wВзять АВП+Дигл", "4") menu_additem(i_Menu, "\wВзять М4а1+Дигл", "5") menu_additem(i_Menu, "\wВзять АК47+Дигл", "6") menu_additem(i_Menu, "\wВзять Гранаты", "7") menu_setprop(i_Menu, 4, "\wЗакрыть^n^n\dВсё один раз за раунд")
menu_display(id, i_Menu, 0)
return PLUGIN_HANDLED }
public menu_handler(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED }
new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new i_Key = str_to_num(s_Data)
switch(i_Key) { case 1: { if(!has_onlyonce[id]) { ExecuteHam(Ham_CS_RoundRespawn, id) has_onlyonce[id] = true } else { ColorChat(id, GREY,"^4[VIP] ^1Возродится можно только ^3один раз за раунд^1!") } client_cmd(id, "goMenu") } case 2: { if(is_user_alive(id)) { client_cmd(id, "say /voteban") } client_cmd(id, "goMenu") } case 3: { if(!has_onlyonc[id]) { set_user_armor(id, 100) has_onlyonc[id] = true } else { ColorChat(id, GREY,"^4[VIP] ^1Броню можно брать только ^3один раз за раунд^1!") } client_cmd(id, "goMenu") } case 4: { if(!has_onlyon[id]) { give_item(id,"weapon_deagle") cs_set_user_bpammo( id , CSW_DEAGLE, 35 ) give_item(id, "weapon_awp") cs_set_user_bpammo( id , CSW_AWP, 30 ) has_onlyon[id] = true } else { ColorChat(id, GREY,"^4[VIP] ^1AWP+deagle можно брать только ^3один раз за раунд^1!") } client_cmd(id, "goMenu") } case 5: { if(!has_onlyo[id]) { give_item(id,"weapon_deagle") cs_set_user_bpammo( id , CSW_DEAGLE, 35 ) give_item(id, "weapon_m4a1") cs_set_user_bpammo( id , CSW_M4A1, 90 ) has_onlyo[id] = true } else { ColorChat(id, GREY,"^4[VIP] ^1M4a1+deagle можно брать только ^3один раз за раунд^1!") } client_cmd(id, "goMenu") } case 6: { if(!has_only[id]) { give_item(id,"weapon_deagle") cs_set_user_bpammo( id , CSW_DEAGLE, 35 ) give_item(id, "weapon_ak47") cs_set_user_bpammo( id , CSW_AK47, 90 ) has_only[id] = true } else { ColorChat(id, GREY,"^4[VIP] ^1AK47+deagle можно брать только ^3один раз за раунд^1!") } client_cmd(id, "goMenu") } case 7: { if(!has_onl[id]) { give_item(id, "weapon_hegrenade") give_item(id, "weapon_flashbang") give_item(id, "weapon_flashbang") give_item(id, "weapon_smokegrenade") has_onl[id] = true } else { ColorChat(id, GREY,"^4[VIP] ^1Гранаты можно брать только ^3один раз за раунд^1!") } client_cmd(id, "goMenu") } } return PLUGIN_CONTINUE }
public event_new_round() { arrayset(has_onlyonce, false, 33) arrayset(has_onlyonc, false, 33) arrayset(has_onlyon, false, 33) arrayset(has_onlyo, false, 33) arrayset(has_only, false, 33) arrayset(has_onl, false, 33) }
public arubaid_duplicated (msgId, msgDest, receiver) { return PLUGIN_HANDLED }
public hook_say(id) { read_args (message, 191) remove_quotes (message) if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
return PLUGIN_CONTINUE
new name[32] get_user_name (id, name, 31) new bool:admin = false if (get_user_flags(id) & ADMIN_LEVEL_H ) admin = true new isAlive if (is_user_alive (id)) { isAlive = 1 alive = "^x01" } else { isAlive = 0 alive = "^x01" } static color[10]
if (admin) { switch (get_pcvar_num (g_NameColor)) { case 1: format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) case 2: if (get_user_flags(id) & VIP_FLAG) format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) case 3: { color = "SPECTATOR" format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) } case 4: { color = "CT" format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) }
case 5: { color = "TERRORIST" format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) } case 6: { get_user_team (id, color, 9) format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) } } switch (get_pcvar_num (g_MessageColor)) { case 1: // Yellow format (strText, 191, "%s", message) case 2: // Green format (strText, 191, "^x04%s", message) case 3: // White { copy (color, 9, "SPECTATOR") format (strText, 191, "^x03%s", message) }
case 4: // Blue { copy (color, 9, "CT") format (strText, 191, "^x03%s", message) } case 5: // Red { copy (color, 9, "TERRORIST") format (strText, 191, "^x03%s", message) } } } else { get_user_team (id, color, 9) format (strName, 191, "%s^x03%s", alive, name) format (strText, 191, "%s", message) }
format (message, 191, "%s^x01: %s", strName, strText) sendMessage (color, isAlive) return PLUGIN_CONTINUE }
public hook_teamsay(id) { new playerTeam = get_user_team(id) new playerTeamName[19] switch (playerTeam) { case 1: copy (playerTeamName, 11, "Terrorists") case 2: copy (playerTeamName, 18, "Counter-Terrorists") default: copy (playerTeamName, 9, "Spectator") } read_args (message, 191) remove_quotes (message) if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
return PLUGIN_CONTINUE
new name[32] get_user_name (id, name, 31) new bool:admin = false if (get_user_flags(id) & ACCESS_LEVEL) admin = true new isAlive if (is_user_alive (id)) { isAlive = 1 alive = "^x01" } else { isAlive = 0 alive = "^x01" } static color[10]
if (admin) { switch (get_pcvar_num (g_NameColor)) { case 1: format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name)
case 2: format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) case 3: { color = "SPECTATOR" format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) } case 4: { color = "CT" format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) }
case 5: { color = "TERRORIST" format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) } case 6: { get_user_team (id, color, 9) format (strName, 191, "%s^x03[VIP] ^x04%s", alive, name) } } switch (get_pcvar_num (g_MessageColor)) { case 1: // Yellow format (strText, 191, "%s", message) case 2: // Green format (strText, 191, "^x04%s", message) case 3: // White { copy (color, 9, "SPECTATOR") format (strText, 191, "^x03%s", message) }
case 4: // Blue { copy (color, 9, "CT") format (strText, 191, "^x03%s", message) } case 5: // Red { copy (color, 9, "TERRORIST") format (strText, 191, "^x03%s", message) } } } else { get_user_team (id, color, 9) format (strName, 191, "%s^x03%s", alive, name) format (strText, 191, "%s", message) } format (message, 191, "%s^x01: %s", strName, strText) sendTeamMessage (color, isAlive, playerTeam) return PLUGIN_CONTINUE }
public set_color (id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newColor read_argv (1, arg, 1) newColor = str_to_num (arg) if (newColor >= 1 && newColor <= 5) { set_cvar_num ("amx_color", newColor) set_pcvar_num (g_MessageColor, newColor) if (get_pcvar_num (g_NameColor) != 1 && ((newColor == 3 && get_pcvar_num (g_NameColor) != 3) || (newColor == 4 && get_pcvar_num (g_NameColor) != 4) || (newColor == 5 && get_pcvar_num (g_NameColor) != 5))) { set_cvar_num ("amx_namecolor", 2) set_pcvar_num (g_NameColor, 2) } } return PLUGIN_HANDLED }
public set_name_color (id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newColor read_argv (1, arg, 1) newColor = str_to_num (arg) if (newColor >= 1 && newColor <= 6) { set_cvar_num ("amx_namecolor", newColor) set_pcvar_num (g_NameColor, newColor) if ((get_pcvar_num (g_MessageColor) != 1 && ((newColor == 3 && get_pcvar_num (g_MessageColor) != 3) || (newColor == 4 && get_pcvar_num (g_MessageColor) != 4) || (newColor == 5 && get_pcvar_num (g_MessageColor) != 5))) || get_pcvar_num (g_NameColor) == 6) { set_cvar_num ("amx_color", 2) set_pcvar_num (g_MessageColor, 2) } } return PLUGIN_HANDLED }
public set_listen (id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newListen read_argv(1, arg, 1) newListen = str_to_num (arg) set_cvar_num ("amx_listen", newListen) set_pcvar_num (g_AdminListen, newListen) return PLUGIN_HANDLED }
public sendMessage (color[], alive) { new teamName[10] for (new player = 1; player < maxplayers; player++) { if (!is_user_connected(player)) continue
if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { get_user_team (player, teamName, 9) changeTeamInfo (player, color) writeMessage (player, message) changeTeamInfo (player, teamName) } } }
public sendTeamMessage (color[], alive, playerTeam) { new teamName[10] for (new player = 1; player < maxplayers; player++) { if (!is_user_connected(player)) continue
if (get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { get_user_team (player, teamName, 9) changeTeamInfo (player, color) writeMessage (player, message) changeTeamInfo (player, teamName) } } } }
public changeTeamInfo (player, team[]) { message_begin (MSG_ONE, teamInfo, _, player) write_byte (player) write_string (team) message_end() }
public writeMessage (player, message[]) { message_begin (MSG_ONE, sayText, {0, 0, 0}, player) write_byte (player) write_string (message) message_end () }
public plugin_precache() { precache_model("models/player/vip_ct/vip_ct.mdl") precache_model("models/player/vip_te/vip_te.mdl")
return PLUGIN_CONTINUE }
public resetModel(id, level, cid) { if (get_user_flags(id) & ADMIN_LEVEL_H) { new CsTeams:userTeam = cs_get_user_team(id) if (userTeam == CS_TEAM_T) { cs_set_user_model(id, "vip_te") } else if(userTeam == CS_TEAM_CT) { cs_set_user_model(id, "vip_ct") } else { cs_reset_user_model(id) } }
return PLUGIN_CONTINUE }
__________________
Last edited by SomewhereLost; 09-26-2016 at 16:11.
|
|