Veteran Member
Join Date: Jul 2011
Location: Belgium
|
01-11-2020
, 07:42
Re: [Requist] Vip-Menu
|
#12
|
Creating a new reply to bump the thread and make thread maker aware of updates:
I have created most of the code already, but as i already said, it needs a lot of testing. I've done some testing myself and most of the things should do the job as intented. The only thing that i think will not work properly yet is the "/vips" command. Please give me feedback on this one and tell me what it does. Couldn't test it myself.
Double damage should get tested too. Just give me all your feedback
The only include file you should need is colorchat.inc, which is attached in this reply.
TO DO:
Still need to imply the models.
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc> #include <fun> #include <hamsandwich> #include <colorchat> #include <cstrike> #include <fakemeta>
#define PLUGIN "VIP-Menu" #define VERSION "1.0" #define AUTHOR "NapoleoN#"
#define VIP_LEVEL ADMIN_LEVEL_B
new bool:bUsedMenu[33]; new bool:bHasWeapon[33];
new const szMotd[] = "addons/amxmodx/configs/vip.html";
new const szMenuItems[][] = { "Deadly AK47 + Deadly Deagle", "Deadly M4A1 + Deadly Deagle", "Deadly AWP + Deadly Deagle" };
new const iWeapons[] = { CSW_AK47, CSW_M4A1, CSW_AWP };
new const szWeapons[][] = { "weapon_ak47", "weapon_m4a1", "weapon_awp" };
new const szWeaponModels[][] = { "models/vmenu/v_deadly_ak47.mdl", "models/vmenu/v_deadly_m4a1.mdl", "models/vmenu/v_deadly_awp.mdl", "models/vmenu/v_deadly_deagle.mdl" };
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /vips", "VipsOnline"); register_clcmd("say /vip", "VipMotd"); register_clcmd("say /vmenu", "VipMenu"); //register_concmd("drop", "WeaponDropped"); RegisterHam(Ham_Spawn, "player", "PostSpawn", 1); RegisterHam(Ham_TakeDamage, "player", "PreDoubleDamage"); RegisterHam(Ham_Killed, "player", "PostPlayerKilled", 1); register_event("HLTV", "NewRound", "a", "1=0", "2=0"); register_event("CurWeapon", "WeaponChange", "be", "1=1"); }
public plugin_precache() { for(new i; i < sizeof(szWeaponModels); i++) { precache_model(szWeaponModels[i]) } }
public NewRound() { new szPlayers[32], iNum; get_players(szPlayers, iNum); for(new i; i < iNum; i++) { if(get_user_flags(szPlayers[i]) & VIP_LEVEL) { bUsedMenu[szPlayers[i]] = false; } } }
/*public WeaponDropped(id) { new iWeapon = get_user_weapon(id); new szPlayers[32], iNum; get_players(szPlayers, iNum); if(bHasWeapon[id]) { for(new i; i < sizeof(iWeapons); i++) { if(iWeapon != iWeapons[i]) { bHasWeapon[id] = false } } } }*/
public WeaponChange(id) { new iAmmo, iClip, iWeapon = get_user_weapon(id, iAmmo, iClip); if(bHasWeapon[id]) { if(iWeapon == CSW_DEAGLE) { set_pev(id, pev_viewmodel2, szWeaponModels[3]) } if(iWeapon == iWeapons[0]) { set_pev(id, pev_viewmodel2, szWeaponModels[0]) } if(iWeapon == iWeapons[1]) { set_pev(id, pev_viewmodel2, szWeaponModels[1]) } if(iWeapon == iWeapons[2]) { set_pev(id, pev_viewmodel2, szWeaponModels[2]) } } }
/*public VipsOnline(id) { new szPlayers[32], iNum, szName[33]; get_players(szPlayers, iNum); for(new i; i < iNum; i++) { if(get_user_flags(szPlayers[i]) & VIP_LEVEL) { get_user_name(szPlayers[i], szName, charsmax(szName)); } ColorChat(id, GREEN, "Online Vips: %s |", szName); } }*/
public VipsOnline(id) { new bool:IsFirst = true, szMessage[256], iLen, TempID; for(TempID = 0; TempID <= get_maxplayers(); TempID++) { if( !is_user_connected(TempID) || !(get_user_flags(id) & VIP_LEVEL) ) { continue; } if( !IsFirst ) { szMessage[iLen++] = ' '; szMessage[iLen++] = '|'; szMessage[iLen++] = ' '; } szMessage[iLen++] = '^x04'; szMessage[iLen] = EOS; iLen += get_user_name(TempID, szMessage[iLen], charsmax(szMessage) - iLen); szMessage[iLen++] = '^x01'; szMessage[iLen] = EOS; IsFirst = false; } if( IsFirst ) {
ColorChat(id, GREEN, "There are no vips online."); return PLUGIN_HANDLED; } else { ColorChat(id, TEAM_COLOR, "Online Vips: %s", szMessage); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE }
public VipMotd(id) { show_motd(id, szMotd, "VIP"); }
public VipMenu(id) { if(!(get_user_flags(id) & VIP_LEVEL)) { ColorChat(id, GREEN, "[Vip-Menu]^3 Only vips can use this command!"); return PLUGIN_HANDLED; } if(cs_get_user_team(id) != CS_TEAM_CT) { ColorChat(id, GREEN, "[Vip-Menu]^3 Only CT's can use the Vip-Menu!"); return PLUGIN_HANDLED; } if(bUsedMenu[id]) { ColorChat(id, GREEN, "[Vip-Menu] You can only use this 1 time per round."); return PLUGIN_HANDLED; } new menu = menu_create("[Vip-Menu]:", "VipMenuHandler");
for(new i; i < sizeof(szMenuItems); i++) { menu_additem(menu, szMenuItems[i]); } menu_display(id, menu); return PLUGIN_HANDLED; }
public VipMenuHandler(id, menu, item) { if(!is_user_alive(id)) { menu_destroy(menu); return PLUGIN_HANDLED; } if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } bUsedMenu[id] = true; bHasWeapon[id] = true; strip_user_weapons(id); give_item(id, "weapon_knife"); give_item(id, szWeapons[item]); give_item(id, "weapon_deagle"); cs_set_user_bpammo(id, iWeapons[item], 255); cs_set_user_bpammo(id, CSW_DEAGLE, 255); set_pev(id, pev_viewmodel2, szWeaponModels[item]) ColorChat(id, GREEN, "[Vip-Menu]: You took: %s", szMenuItems[item]); menu_destroy(menu); return PLUGIN_HANDLED; }
public PostSpawn(id) { if(get_user_flags(id) & VIP_LEVEL) { if(cs_get_user_team(id) == CS_TEAM_CT || cs_get_user_team(id) == CS_TEAM_T) { set_user_health(id, 150); set_user_armor(id, 150); new iWeapon = get_user_weapon(id); for(new i; i < sizeof(iWeapons); i++) { if(iWeapon != iWeapons[i]) { bHasWeapon[id] = false; } } } } }
public PostPlayerKilled(iVictim, iAttacker, iShouldGib) { if(is_user_connected(iVictim) && bHasWeapon[iVictim]) { bHasWeapon[iVictim] = false; } }
public PreDoubleDamage(id, iInflictor, iAttacker, Float:iDamage, iDamagebits) { if(!is_user_connected(iAttacker) || iAttacker != iInflictor || !bHasWeapon[iAttacker]) { return HAM_IGNORED; } new iWeapon = get_user_weapon(iAttacker); for(new i; i < sizeof(iWeapons); i++) { if(iWeapon == iWeapons[i] || iWeapon == CSW_DEAGLE) { SetHamParamFloat(4, iDamage * 2); } } return HAM_HANDLED; }
public client_putinserver(id) { if(get_user_flags(id) & VIP_LEVEL) { bUsedMenu[id] = false; bHasWeapon[id] = false; } }
public client_disconnect(id) { if(get_user_flags(id) & VIP_LEVEL) { bUsedMenu[id] = false; bHasWeapon[id] = false; } }
__________________
Last edited by Napoleon_be; 01-11-2020 at 12:56.
|
|