Server Menu [CP]
Posted: 2011 Dec 06 15:08
Please I would like to give to the menu and VIP models that switch on / off can you help me?
Sorry for my English
Sorry for my English
Code: Select all
#include <amxmodx>#include <amxmisc>#include <engine>#include <hamsandwich>#include <fun> #define MaxPlayers 32 new const Float: g_flCoords[][] = { {0.50, 0.40}, {0.56, 0.44}, {0.60, 0.50}, {0.56, 0.56}, {0.50, 0.60}, {0.44, 0.56}, {0.40, 0.50}, {0.44, 0.44}} new bool: DoJump[33] = false new bool: Status[33][6] new bool: Bullet_Damagenew bool: Multi_Jumpnew bool: Parachutenew bool: Respawnnew bool: Vampire new PlayerPos[MaxPlayers + 1] new RespawnDelay[33]new JumpNUM[33] = 0new ParaENT[33] new g_MaxPlayers public plugin_init(){ register_plugin("[CP] Server Menu", "1.0", "xS The Moon") register_cvar("cpsm_advert", "1") register_cvar("cpsm_advert_time", "70.0") register_cvar("cpsm_resp_delay", "5") register_cvar("cpsm_health_kill", "10") register_cvar("cpsm_health_hs", "15") register_cvar("cpsm_maxjumps", "1") register_cvar("cpsm_parachute_fallspeed", "80") register_clcmd("say cpserver", "Main_Server_Menu") register_clcmd("say /cpserver", "Main_Server_Menu") if (get_cvar_num("cpsm_advert")) { set_task(get_cvar_float("cpsm_advert_time"), "CPSM_Adv_Message", 0, _, _, "b") } register_event("DeathMsg", "Ev_DeathMsg", "a") register_event("Damage", "Ev_Damage", "b", "2>0", "3=0") RegisterHam(Ham_Killed, "player", "Ham_KilledSpawn", 1) g_MaxPlayers = get_maxplayers()} public plugin_precache(){ precache_model("models/parachute.mdl")} public client_connect(id){ Parachute = false DoJump[id] = false ParaENT[id] = 0 JumpNUM[id] = 0} public Ev_DeathMsg(){ new attacker = read_data(1) new Health new HP_Add if (Vampire) { if ((read_data(3) == 1) && (read_data(5) == 0)) { HP_Add = get_cvar_num("cpsm_health_hs") } else { HP_Add = get_cvar_num("cpsm_health_kill") } Health = get_user_health(attacker) Health += HP_Add set_user_health(attacker, Health) set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1) show_hudmessage(attacker, "Healed +%d HP", HP_Add) message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker) write_short(1<<10) write_short(1<<10) write_short(0x0000) write_byte(0) write_byte(0) write_byte(200) write_byte(75) message_end() }} public Ev_Damage(victim){ if (read_data(4) || read_data(5) || read_data(6)) { new id = get_user_attacker(victim) if ((1 <= id <= g_MaxPlayers) && is_user_connected(id)) { if (Bullet_Damage) { new iPos = ++PlayerPos[id] if (iPos == sizeof(g_flCoords)) { iPos = PlayerPos[id] = 0 } set_hudmessage(0, 100, 200, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1) show_hudmessage(id, "%d", read_data(2)) } } }} public CPSM_Adv_Message(id){ print_color(id, "/y[/gCP/y] /ctrServerio Meniu/y: /gNoredamas atidaryti rasyk /y//ctrcpserver")} public Main_Server_Menu(id){ if (get_user_flags(id) & ADMIN_LEVEL_H) { new menu = menu_create("\d[\rCP\d] \yServerio Meniu\d:", "Server_Menu") new szMsg1[60] new szMsg2[60] new szMsg3[60] new szMsg4[60] new szMsg5[60] new szMsg6[60] format(szMsg1, 59, "\d[\rCP\d] \w3rd Person View. \yStatusas\d: \r%s.", Status[id][0] ? "On" : "Off") format(szMsg2, 59, "\d[\rCP\d] \wBullet Damage. \yStatusas\d: \r%s.", Status[id][1] ? "On" : "Off") format(szMsg3, 59, "\d[\rCP\d] \wMulti Jump. \yStatusas\d: \r%s.", Status[id][2] ? "On" : "Off") format(szMsg4, 59, "\d[\rCP\d] \wParachute. \yStatusas\d: \r%s.", Status[id][3] ? "On" : "Off") format(szMsg5, 59, "\d[\rCP\d] \wRespawn. \yStatusas\d: \r%s.", Status[id][4] ? "On" : "Off") format(szMsg6, 59, "\d[\rCP\d] \wVampire. \yStatusas\d: \r%s.", Status[id][5] ? "On" : "Off") menu_additem(menu, szMsg1, "1", 0) menu_additem(menu, szMsg2, "2", 0) menu_additem(menu, szMsg3, "3", 0) menu_additem(menu, szMsg4, "4", 0) menu_additem(menu, szMsg5, "5", 0) menu_additem(menu, szMsg6, "6", 0) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) } else { print_color(id, "/y[/gCP/y] /ctrControl Panel /gtik V.I.P'ams ir ADMIN'ams.") return }}public Server_Menu(id, menu, item){ if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } if (item == 0) { if (Status[id][0]) { Status[id][0] = false set_view(id, CAMERA_NONE) } else { Status[id][0] = true set_view(id, CAMERA_3RDPERSON) } } if (item == 1) { if (Status[id][1]) { Status[id][1] = false Bullet_Damage = false } else { Status[id][1] = true Bullet_Damage = true } } if (item == 2) { if (Status[id][2]) { Status[id][2] = false Multi_Jump = false } else { Status[id][2] = true Multi_Jump = true } } if (item == 3) { if (Status[id][3]) { Status[id][3] = false Parachute = false } else { Status[id][3] = true Parachute = true } } if (item == 4) { if (Status[id][4]) { Status[id][4] = false Respawn = false } else { Status[id][4] = true Respawn = true } } if (item == 5) { if (Status[id][5]) { Status[id][5] = false Vampire = false } else { Status[id][5] = true Vampire = true } } Main_Server_Menu(id) return PLUGIN_HANDLED} public Ham_KilledSpawn(id){ if (Respawn) { RespawnDelay[id] = get_cvar_num("cpsm_resp_delay") RespawnPlayer(id) }} public RespawnPlayer(id){ if (is_user_alive(id) || !is_user_connected(id)) return PLUGIN_CONTINUE if (RespawnDelay[id] > 0) { print_color(id, "/y[/ctrCP/y] /gYou'll Spawned in %d Seconds/y.", RespawnDelay[id]) RespawnDelay[id]-- set_task(1.0, "RespawnPlayer", id) } else { ExecuteHamB(Ham_CS_RoundRespawn, id) set_task(0.1, "SpawnProtection_On", id) } return PLUGIN_CONTINUE} public SpawnProtection_On(id){ print_color(id, "/y[/ctrCP/y] /gSpawn Protection On/y.") set_user_godmode(id, 1) if (get_user_team(id) == 1) { set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 25) } if (get_user_team(id) == 2) { set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 25) } set_task(5.0, "SpawnProtection_Off", id)} public SpawnProtection_Off(id){ if (!is_user_connected(id)) { return PLUGIN_HANDLED } else { print_color(id, "/y[/ctrCP/y] /gSpawn Protection Off/y.") set_user_rendering(id, kRenderFxGlowShell, 0, 0,0, kRenderNormal, 25) set_user_godmode(id, 0) } return PLUGIN_CONTINUE} public client_PreThink(id){ if (!is_user_alive(id)) return PLUGIN_CONTINUE new nbut = get_user_button(id) new obut = get_user_oldbutton(id) new Float: fallspeed = get_cvar_float("cpsm_parachute_fallspeed") * -1.0 if (Multi_Jump) { if ((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP)) { if (JumpNUM[id] < get_cvar_num("cpsm_maxjumps")) { DoJump[id] = true JumpNUM[id]++ return PLUGIN_CONTINUE } } if ((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) { JumpNUM[id] = 0 return PLUGIN_CONTINUE } } if (Parachute) { if (get_user_button(id) & IN_USE) { if (!(get_user_oldbutton(id) & IN_USE)) { ParaENT[id] = create_entity("info_target") if (ParaENT[id] > 0) { entity_set_model(ParaENT[id], "models/parachute.mdl") } } if (!(get_entity_flags(id) & FL_ONGROUND)) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if (velocity[2] < 0) { velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed entity_set_vector(id, EV_VEC_velocity, velocity) if (ParaENT[id] > 0) { if (entity_get_float(ParaENT[id], EV_FL_frame) < 0.0 || entity_get_float(ParaENT[id], EV_FL_frame) > 254) { if (entity_get_int(ParaENT[id], EV_INT_sequence) == 0) { entity_set_int(ParaENT[id], EV_INT_sequence, 1) } entity_set_float(ParaENT[id], EV_FL_frame, 0.0) } else { entity_set_float(ParaENT[id], EV_FL_frame, entity_get_float(ParaENT[id], EV_FL_frame) + 1.0) } new Float: origin[3] entity_get_vector(id, EV_VEC_origin, origin) origin[2] -= 46.0 entity_set_vector(ParaENT[id], EV_VEC_origin, origin) } } else { if (ParaENT[id] > 0) { remove_entity(ParaENT[id]) ParaENT[id] = 0 } } } else { if (ParaENT[id] > 0) { remove_entity(ParaENT[id]) ParaENT[id] = 0 } } } else { if (ParaENT[id] > 0) { remove_entity(ParaENT[id]) ParaENT[id] = 0 } } } return PLUGIN_CONTINUE} public client_PostThink(id){ if (!is_user_alive(id)) return PLUGIN_CONTINUE if (DoJump[id] == true) { new Float: velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) velocity[2] = random_float(265.0, 285.0) entity_set_vector(id, EV_VEC_velocity, velocity) DoJump[id] = false return PLUGIN_CONTINUE } return PLUGIN_CONTINUE} stock print_color(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","^2");// 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, get_user_msgid("SayText"), _, players[i]) write_byte(players[i]) write_string(msg) message_end() }}