PHP Code:
public plugin_init()
{
register_plugin(gPLUGIN, gVERSION, gAUTHOR);
gCvarLimit = register_cvar("bcm_limit", "500", 0, 0.0);
register_cvar("bcm4", "kzmed", FCVAR_SERVER|FCVAR_SPONLY, 0.0);
gCvarAccessBuild = register_cvar("bcm_access_build", "c", FCVAR_SPONLY, 0.0);
gCvarAccessMove = register_cvar("bcm_access_move", "c", FCVAR_SPONLY, 0.0);
gCvarAccessDelete = register_cvar("bcm_access_delete", "c", FCVAR_SPONLY, 0.0);
gCvarAccessNoclip = register_cvar("bcm_access_noclip", "c", FCVAR_SPONLY, 0.0);
gCvarAccessLoad = register_cvar("bcm_access_load", "c", FCVAR_SPONLY, 0.0);
gCvarAccessNewConfig = register_cvar("bcm_access_newconfig", "c", FCVAR_SPONLY, 0.0);
gCvarAccessSave = register_cvar("bcm_access_save", "c", FCVAR_SPONLY, 0.0);
gCvarAccessMagicCarpet = register_cvar("bcm_access_magiccarpet", "c", FCVAR_SPONLY, 0.0);
gCvarAccessGodMode = register_cvar("bcm_access_godmode", "c", FCVAR_SPONLY,
new szAccessFlag[2];
get_pcvar_string(gCvarAccessBuild, szAccessFlag, 1);
new accessBuild = read_flags(szAccessFlag);
get_pcvar_string(gCvarAccessMove, szAccessFlag, 1);
new accessMove = read_flags(szAccessFlag);
get_pcvar_string(gCvarAccessDelete, szAccessFlag, 1);
new accessDelete = read_flags(szAccessFlag);
get_pcvar_string(gCvarAccessNoclip, szAccessFlag, 1);
new accessNoclip = read_flags(szAccessFlag);
get_pcvar_string(gCvarAccessNewConfig, szAccessFlag, 1);
new accessNewConfig = read_flags(szAccessFlag);
get_pcvar_string(gCvarAccessSave, szAccessFlag, 1);
new accessSave = read_flags(szAccessFlag);
get_pcvar_string(gCvarAccessMagicCarpet, szAccessFlag, 1);
new accessMagicCarpet = read_flags(szAccessFlag);
register_forward(FM_Touch, "fwdTouch", 0);
register_event("HLTV", "msgNewRound", "a", "1=0", "2=0");
register_forward(FM_PlayerPreThink, "fwdPlayerPreThink", 0);
gMsgSayText = get_user_msgid("SayText");
gMaxPlayers = get_maxplayers();
gMainMenu = menu_create("BCM4 by jOkeR", "mnuMain", 0);
menu_additem(gMainMenu, "Build Menu", "1", 0, -1);
menu_additem(gMainMenu, "Move Menu", "2", 0, -1);
menu_additem(gMainMenu, "Destroy", "3", accessDelete, -1);
menu_additem(gMainMenu, "Noclip", "4", accessNoclip, -1);
menu_additem(gMainMenu, "Save/Load", "5", 0, -1);
menu_additem(gMainMenu, "GodMode", "6", accessSave, -1);
gBuildMenu = menu_create("Build Menu", "mnuBuild", 0);
menu_additem(gBuildMenu, "Bhop", "1", accessBuild, -1);
menu_additem(gBuildMenu, "Block", "2", accessBuild, -1);
menu_additem(gBuildMenu, "Boost Block", "3", accessBuild, -1);
menu_additem(gBuildMenu, "Ice Bhop", "4", accessBuild, -1);
menu_additem(gBuildMenu, "Delayed Bhop", "5", accessBuild, -1);
menu_additem(gBuildMenu, "Fall Block", "6", accessBuild, -1);
menu_additem(gBuildMenu, "Teleport", "7", accessBuild, -1);
menu_additem(gBuildMenu, "Fatalis Block", "8", accessBuild, -1);
menu_additem(gBuildMenu, "Tink Block", "9", accessBuild, -1);
menu_additem(gBuildMenu, "Magic Carpet", "10", accessMagicCarpet, -1);
menu_additem(gBuildMenu, "Duck Block", "11", accessBuild, -1);
menu_additem(gBuildMenu, "Speed Block", "12", accessBuild, -1);
menu_additem(gBuildMenu, "Slow Block", "13", accessBuild, -1);
menu_additem(gBuildMenu, "Awp Block", "14", accessBuild, -1);
menu_setprop(gBuildMenu, MPROP_EXITNAME, "Main Menu");
gMoveMenu = menu_create("Move Menu", "mnuMove", 0);
menu_additem(gMoveMenu, "Z+ Green", "1", accessMove, -1);
menu_additem(gMoveMenu, "Z-", "2", accessMove, -1);
menu_additem(gMoveMenu, "X+ Red", "3", accessMove, -1);
menu_additem(gMoveMenu, "X-", "4", accessMove, -1);
menu_additem(gMoveMenu, "Y+ Blue", "5", accessMove, -1);
menu_additem(gMoveMenu, "Y-", "6", accessMove, -1);
menu_additem(gMoveMenu, "Z++", "7", accessMove, -1);
menu_setprop(gMoveMenu, MPROP_EXITNAME, "Main Menu");
gModelMenu = menu_create("Model Menu", "mnuModel", 0);
menu_additem(gModelMenu, "Normal", "1", 0, -1);
menu_additem(gModelMenu, "Large Z (Green)", "2", 0, -1);
menu_additem(gModelMenu, "Large X (Red)", "3", 0, -1);
menu_additem(gModelMenu, "Large Y (Blue)", "4", 0, -1);
menu_additem(gModelMenu, "Tiny", "5", 0, -1);
menu_setprop(gMoveMenu, MPROP_EXITNAME, "Main Menu");
register_clcmd("say /bhopmenu", "cmdBhopMenu", -1, "");
register_clcmd("say /bcm", "cmdBhopMenu", -1, "");
register_clcmd("amx_bcm", "cmdBhopMenu", -1, "");
register_clcmd("bcm_newconfig", "cmdNewConfig", accessNewConfig, "");
register_clcmd("+bcmgrab", "cmdBCMGrabOn", accessMove, "");
register_clcmd("-bcmgrab", "cmdBCMGrabOff", accessMove, "");
register_srvcmd("bcm_backwardscompat2", "fnConvertFrom2", -1, "");
if( !dir_exists(gDir) )
{
mkdir(gDir);
}
add(gDir, 128, "/bcm", 0);
if( !dir_exists(gDir) )
{
mkdir(gDir);
}
new szMap[33];
get_mapname(szMap, 32);
format(gDir, 128, "%s/%s", gDir, szMap);
if( !dir_exists(gDir) )
{
mkdir(gDir);
}
fnBackwardsCompat3();
fnLoad("default");
set_task(2.0, "tskShowObjectInfo", 0, "", 0, "b", 0);
return PLUGIN_CONTINUE;
}