Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Hide N Seek Training by SkazzY *
- * *
- * Cvars: *
- * sv_checkpistols (default 1) *
- * sv_respawn (default 1) *
- * hns_checkpoints_gochecks (default 1) *
- * hns_semiclip_enabled (defualt 1) *
- * hns_weapon_menu_enabled (default 1) *
- * hns_all_weapons_enabled (default 1) *
- * hns_hookspeed (default 660) *
- * hns_hook_allowed (default 1) *
- * hns_training_enabled (default 1) *
- * *
- * Say Commands: *
- * /training (Opens training menu) *
- * /weapons (Opens weapon menu) *
- * /allweapons (Gives you all weapons) *
- * /checkpoint (Saves checkpoint) *
- * /cp (Saves checkpoint) *
- * /gocheck (Teleports you to your checkpoint) *
- * /gc (Teleports you to your checkpoint) *
- * /stuck (Use this if you are stuck) *
- * /respawn (Respawns you) *
- * *
- * CL Commands: *
- * checkpoint (Saves checkpoint) *
- * cp (Saves checkpoint) *
- * gocheck (Teleports you to your checkpoint) *
- * gc (Teleports you to your checkpoint) *
- * stuck (Use this if you are stuck) *
- * *
- * Thanks to: *
- * AssKicR because of his KZ Multiplugin *
- * Geesu because of his respawn forever plugin *
- * Thanks to xPaw for making semiclip *
- * *
- * Change List: *
- * Version 2.8: *
- * Made so you can place checkpoint while ducking *
- * Changed title in training menu *
- * *
- * Version 2.7: *
- * Changed game name to "HNS Training" *
- * *
- * Version 2.6: *
- * Added random color for hook *
- * Fixed so instructions doesn't show for all players *
- * Added some new cl commands *
- * *
- * Version 2.4: *
- * Added Hook (Thanks to xPaw) *
- * Made On/Off Message for godmode and noclip in menu *
- * Added Checkpoint and Gocheck counter (Shows in a hudmessage) *
- * Took back fun module again *
- * Added angle saver to checkpoint (Thanks to xPaw & Me) *
- * Added cvar to enable/disable hook *
- * *
- * Version 2.1: *
- * Removed fun module *
- * *
- * Version 2.0: *
- * Added Multilingual *
- * *
- * Version 1.9: *
- * Added on/off pcvars for checkpoints and gochecks, Semiclip, Weapon Menu and All Weapons *
- * *
- * Version 1.8: *
- * Added pcvars for all cvars *
- * Changed 11 to TE_TELEPORT thanks to Exolent and xPaw *
- * Changed spawn to hamsandwich thanks to Exolent *
- * *
- * Version 1.7: *
- * Fixed that this plugin blocked say commands thanks to xPaw and arkshine *
- * *
- * Version 1.6: *
- * Removed public CheckCheckpoint(id) because it didn't do anything, thanks to Yamikaitou for telling me *
- * *
- * Version 1.5: *
- * Got rid of engine module *
- * Fixed 2 warnings *
- * Fixed some stuff thanks to joaquimandrade *
- * *
- * Version 1.4: *
- * Added on/off cvar for the plugin *
- * *
- * Version 1.3: *
- * Removed modules: amxmisc, colorchat and cstrike *
- * *
- * Version 1.2: *
- * Fixed a message bug *
- * *
- * Version 1.1: *
- * Added Semiclip *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
- #include <amxmodx>
- #include <hamsandwich>
- #include <fakemeta>
- #include <fun>
- #define PLUGIN "Training"
- #define VERSION "2.8"
- #define AUTHOR "SkazzY"
- #define PREFIX "[Pros Only]"
- #define DISABLE_CS 0
- // Team ids
- #define UNASSIGNED 0
- #define TS 1
- #define CTS 2
- #define AUTO_TEAM 5
- #define get_user_button(%1) pev(%1, pev_button)
- #pragma semicolon 1;
- new g_iSemiClip[33];
- new bool:g_PistolsDisabled = false;
- new gChecks[33];
- new gGoChecks[33];
- new bool:gCheckpoint[33];
- new gCheckpointPos[33][3];
- new Float:gCheckpointAngle[33][3];
- new gLastCheckpointPos[33][3];
- new Float:gLastCheckpointAngle[33][3];
- new HnsTrainingOn;
- new CheckPistols;
- new Respawn;
- new hnstrainingmenu;
- new CheckpointsAndGoChecksOn;
- new SemiClipOn;
- new WeaponMenuOn;
- new AllWeaponsOn;
- //Hook Stuff
- new bool:gHooked[33];
- new gHook[33];
- new gCvarHookSpeed;
- new gBeam;
- new gCvarHookAllowed;
- public plugin_init() {
- register_plugin(PLUGIN, VERSION, AUTHOR);
- register_dictionary("hns_training.txt");
- register_clcmd("checkpoint","Checkpoint");
- register_clcmd("cp", "Checkpoint");
- register_clcmd("say /checkpoint","Checkpoint");
- register_clcmd("say_team /checkpoint", "Checkpoint");
- register_clcmd("say /cp", "Checkpoint");
- register_clcmd("say_team /cp", "Checkpoint");
- register_clcmd("gocheck","GoCheckpoint");
- register_clcmd("gc", "GoCheckpoint");
- register_clcmd("say /gocheck","GoCheckpoint");
- register_clcmd("say_team /gocheck", "GoCheckpoint");
- register_clcmd("say /gc", "GoCheckpoint");
- register_clcmd("say_team /gc", "GoCheckpoint");
- register_clcmd("stuck", "LastCheckpoint");
- register_clcmd("say /stuck", "LastCheckpoint");
- register_clcmd("say_team /stuck", "LastCheckpoint");
- register_clcmd("say /weapons", "cmdWeapons");
- register_clcmd("say_team /weapons", "cmdWeapons");
- register_clcmd("say /allweapons", "cmdAllWeapons");
- register_clcmd("say_team /allweapons", "cmdAllWeapons");
- register_clcmd("say /training", "cmdTrainingMenu");
- register_clcmd("say_team /training", "cmdTrainingMenu");
- register_event("DeathMsg", "on_Death", "a");
- register_clcmd("say_team /respawn","spawn_func");
- register_clcmd("say /respawn","spawn_func");
- register_clcmd("+hook", "cmdHookOn");
- register_clcmd("-hook", "cmdHookOff");
- register_forward( FM_StartFrame, "fwStartFrame", 0 );
- register_forward( FM_AddToFullPack, "fwFullPack", 1 );
- register_forward( FM_GetGameDescription, "fwdGameDesc" );
- CheckPistols = register_cvar("sv_checkpistols", "1");
- Respawn = register_cvar("sv_respawn", "1");
- CheckpointsAndGoChecksOn = register_cvar("hns_checkpoints_gochecks", "1");
- SemiClipOn = register_cvar("hns_semiclip_enabled", "1");
- WeaponMenuOn = register_cvar("hns_weapon_menu_enabled", "1");
- AllWeaponsOn = register_cvar("hns_all_weapons_enabled", "1");
- //Hook stuff
- gCvarHookSpeed = register_cvar( "hns_hookspeed", "660" );
- gCvarHookAllowed = register_cvar("hns_hook_allowed", "1");
- RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
- hnstrainingmenu = register_menuid("HNS Training Menu");
- register_menucmd(hnstrainingmenu, 1023, "handleTrainingMenu");
- HnsTrainingOn = register_cvar("hns_training_enabled", "1");
- }
- public plugin_precache() {
- gBeam = precache_model("sprites/zbeam4.spr");
- precache_model("models/rpgrocket.mdl");
- engfunc(EngFunc_PrecacheSound, "weapons/xbow_fire1.wav");
- }
- public fwdGameDesc() {
- forward_return(FMV_STRING, "HNS Training");
- return FMRES_SUPERCEDE;
- }
- public fwFullPack(es, e, ent, host, flags, player, pSet) {
- if( get_pcvar_num( HnsTrainingOn ) && get_pcvar_num( SemiClipOn ) ) {
- if(player && g_iSemiClip[ent] && g_iSemiClip[host]) {
- set_es(es, ES_Solid, SOLID_NOT);
- set_es(es, ES_RenderMode, kRenderTransAlpha);
- set_es(es, ES_RenderAmt, 100);
- }
- }
- return FMRES_IGNORED;
- }
- public fwStartFrame() {
- if( get_pcvar_num( HnsTrainingOn ) && get_pcvar_num( SemiClipOn ) ) {
- static iPlayers[32], iNum, iPlayer, iPlayer2;
- get_players(iPlayers, iNum);
- arrayset(g_iSemiClip, 0, sizeof(g_iSemiClip));
- new iTeams[33] = {-1, ...};
- for(new i=0; i < iNum; i++) {
- iPlayer = iPlayers[i];
- if( !is_user_alive(iPlayer) )
- continue;
- for(new j=0; j < iNum; j++) {
- iPlayer2 = iPlayers[j];
- if(iPlayer == iPlayer2 || !is_user_alive(iPlayer2))
- continue;
- static Float:vOrigin1[3], Float:vOrigin2[3];
- pev(iPlayer, pev_origin, vOrigin1);
- pev(iPlayer2, pev_origin, vOrigin2);
- if( vector_distance( vOrigin1, vOrigin2 ) < 96) {
- if(iTeams[iPlayer] == -1)
- iTeams[iPlayer] = get_user_team(iPlayer);
- if(iTeams[iPlayer2] == -1)
- iTeams[iPlayer2] = get_user_team(iPlayer2);
- g_iSemiClip[iPlayer] = true;
- g_iSemiClip[iPlayer2] = true;
- }
- }
- }
- for(new i=0; i < iNum;i++) {
- iPlayer = iPlayers[i];
- if( is_user_alive(iPlayer) )
- set_pev(iPlayer, pev_solid, g_iSemiClip[iPlayer] ? SOLID_NOT : SOLID_SLIDEBOX);
- }
- }
- return FMRES_IGNORED;
- }
- public check_pistols()
- {
- /* Determine if we should give players a pistol or not */
- if ( get_pcvar_num(HnsTrainingOn) && get_pcvar_num(CheckPistols) )
- {
- set_task(1.0, "check_pistols");
- new mapname[32];
- get_mapname(mapname,31);
- if ( containi(mapname,"ka_")!=-1 || containi(mapname,"scoutzknivez")!=-1 )
- g_PistolsDisabled = true;
- }
- }
- public spawn_func(id)
- {
- if ( get_pcvar_num(HnsTrainingOn) && get_pcvar_num(Respawn)) {
- new parm[1];
- parm[0]=id;
- set_task(0.5,"player_spawn",72,parm,1);
- /* Then give them a suit and a knife */
- set_task(0.9,"player_giveitems",72,parm,1);
- }
- else {
- client_print(id, print_chat, "%L", id, "RESPAWN_OFF", PREFIX);
- }
- return PLUGIN_HANDLED;
- }
- public on_Death()
- {
- if ( !get_pcvar_num(HnsTrainingOn) || !get_pcvar_num(Respawn) )
- return PLUGIN_CONTINUE;
- new victim_id = read_data(2);
- spawn_func( victim_id );
- return PLUGIN_CONTINUE;
- }
- public player_giveitems(parm[1])
- {
- new id = parm[0];
- give_item(id, "item_suit");
- give_item(id, "weapon_knife");
- /* Determines if a players should be given a pistol */
- if ( !g_PistolsDisabled )
- {
- new wpnList[32] = 0, number = 0, bool:foundGlock = false, bool:foundUSP = false;
- get_user_weapons(id,wpnList,number);
- /* Determine if the player already has a pistol */
- for (new i = 0;i < number;i++)
- {
- if (wpnList[i] == CSW_GLOCK18)
- foundGlock = true;
- if (wpnList[i] == CSW_USP)
- foundUSP = true;
- }
- /* Give a T his/her pistol */
- if ( get_user_team(id)==TS && !foundGlock )
- {
- give_item(id,"weapon_glock18");
- give_item(id,"ammo_9mm");
- give_item(id,"ammo_9mm");
- }
- /* Give a CT his/her pistol */
- else if ( get_user_team(id)==CTS && !foundUSP )
- {
- give_item(id,"weapon_usp");
- give_item(id,"ammo_45acp");
- give_item(id,"ammo_45acp");
- }
- }
- return PLUGIN_CONTINUE;
- }
- public player_spawn(parm[1])
- {
- ExecuteHamB(Ham_CS_RoundRespawn, parm[0]);
- }
- public client_putinserver(id) {
- set_task(5.0, "cmdHnsTrainingMessages", id);
- }
- public cmdHnsTrainingMessages(id) {
- if (!get_pcvar_num(HnsTrainingOn)) return;
- else {
- client_print(id, print_chat, "%L", LANG_PLAYER, "TYPE_TRAINING", PREFIX);
- set_task(2.0, "cmdHnsTrainingMessages1", id);
- set_task(4.0, "cmdHnsTrainingMessages2", id);
- set_task(6.0, "cmdHnsTrainingMessages3", id);
- }
- }
- public cmdHnsTrainingMessages1(id) {
- client_print(id, print_chat, "%L", LANG_PLAYER, "F_AROUND", PREFIX);
- }
- public fwHamPlayerSpawnPost(id)
- if (get_pcvar_num(HnsTrainingOn))
- set_pev(id, pev_takedamage, DAMAGE_NO);
- // HOOK
- /////////////////////////////////////////////
- public cmdHookOn(id) {
- if ( get_pcvar_num(HnsTrainingOn) && get_pcvar_num(gCvarHookAllowed)) {
- if ( is_user_alive(id) && !gHooked[id] )
- hookThrow(id);
- }
- return PLUGIN_HANDLED;
- }
- public cmdHookOff(id) {
- if ( gHooked[id] )
- hookRemove(id);
- return PLUGIN_HANDLED;
- }
- public hookThink(param[]) {
- new id = param[0];
- new HookEnt = param[1];
- if ( !is_user_alive(id) || !pev_valid(HookEnt) || !pev_valid(id) ) {
- remove_task(id + 856);
- return PLUGIN_HANDLED;
- }
- static Float:fVelocity[3];
- fVelocity = Float:{0.0, 0.0, 1.0};
- if ( gHooked[id] ) {
- static Float:fHookOrigin[3], Float:fUsrOrigin[3], Float:fDist;
- pev(HookEnt, pev_origin, fHookOrigin);
- pev(id, pev_origin, fUsrOrigin);
- fDist = vector_distance(fHookOrigin, fUsrOrigin);
- if (fDist >= 38.0) {
- new Float:fSpeed = get_pcvar_float(gCvarHookSpeed);
- fSpeed *= 0.52;
- fVelocity[0] = (fHookOrigin[0] - fUsrOrigin[0]) * (2.0 * fSpeed) / fDist;
- fVelocity[1] = (fHookOrigin[1] - fUsrOrigin[1]) * (2.0 * fSpeed) / fDist;
- fVelocity[2] = (fHookOrigin[2] - fUsrOrigin[2]) * (2.0 * fSpeed) / fDist;
- }
- }
- set_pev(id, pev_velocity, fVelocity);
- return PLUGIN_HANDLED;
- }
- public hookThrow(id) {
- static Float:fAngle[3], iStart[3];
- get_user_origin( id, iStart, 3 );
- pev( id, pev_angles, fAngle );
- gHook[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
- if( pev_valid( gHook[id] ) ) {
- set_pev( gHook[id], pev_classname, "Hook" );
- new Float:fStart[ 3 ];
- fStart[0] = float( iStart[0] );
- fStart[1] = float( iStart[1] );
- fStart[2] = float( iStart[2] );
- engfunc( EngFunc_SetModel, gHook[id], "models/rpgrocket.mdl" );
- engfunc( EngFunc_SetOrigin, gHook[id], fStart );
- engfunc( EngFunc_SetSize, gHook[id], {-2.840000, -14.180000, -2.840000}, {2.840000, 0.020000, 2.840000} );
- set_pev( gHook[id], pev_angles, fAngle );
- set_pev( gHook[id], pev_solid, SOLID_BBOX );
- set_pev( gHook[id], pev_movetype, MOVETYPE_NONE );
- set_pev( gHook[id], pev_owner, id );
- // Make the line between Hook and Player
- message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
- write_byte( TE_BEAMENTPOINT );
- write_short( id ); // Startent
- write_coord( iStart[0] ); // End pos
- write_coord( iStart[1] );
- write_coord( iStart[2] );
- write_short( gBeam ); // Sprite
- write_byte( 1 ); // StartFrame
- write_byte( 1 ); // FrameRate
- write_byte( 600 ); // Life
- write_byte( 16 ); // Width
- write_byte( 3 ); // Noise
- write_byte( random_num(1, 255) ); // R
- write_byte( random_num(1, 255) ); // G
- write_byte( random_num(1, 255) ); // B
- write_byte( 192 ); // Brightness
- write_byte( 0 ); // Scroll speed
- message_end();
- message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
- write_byte( TE_SPARKS );
- write_coord( iStart[0] );
- write_coord( iStart[1] );
- write_coord( iStart[2] );
- message_end();
- emit_sound(id, CHAN_BODY, "weapons/xbow_fire1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_HIGH);
- gHooked[id] = true;
- static TaskData[2];
- TaskData[0] = id;
- TaskData[1] = gHook[id];
- if (!task_exists(id + 856)) {
- TaskData[0] = id;
- TaskData[1] = gHook[id];
- hookThink(TaskData);
- set_task(0.1, "hookThink", id + 856, TaskData, 2, "b");
- }
- } else {
- client_print(id, print_chat, "%s Failed to create hook entity", PREFIX);
- }
- }
- public hookRemove(id) {
- if( pev_valid(gHook[id]) )
- engfunc(EngFunc_RemoveEntity, gHook[id]);
- gHook[id] = 0;
- if(is_user_connected(id)) {
- message_begin( MSG_BROADCAST, SVC_TEMPENTITY, _, id );
- write_byte( TE_KILLBEAM );
- write_short( id );
- message_end();
- }
- gHooked[id] = false;
- return 1;
- }
- public cmdAllWeapons(id) {
- if (!get_pcvar_num(HnsTrainingOn) || !get_pcvar_num(AllWeaponsOn))
- client_print(id, print_chat, "%L", LANG_PLAYER, "ALLWEAPONS_OFF", PREFIX);
- else {
- new ALL_WEAPONS[][] = {"weapon_m3","weapon_xm1014", "weapon_mp5navy", "weapon_mac10", "weapon_p90", "weapon_aug", "weapon_ump45", "weapon_elite", "weapon_ak47", "weapon_m4a1", "weapon_sg552", "weapon_sg550", "weapon_awp", "weapon_scout", "weapon_fiveseven", "weapon_g3sg1", "weapon_m249", "weapon_deagle", "weapon_glock18", "weapon_famas", "weapon_galil", "weapon_tmp", "weapon_usp"};
- const sizeOfAllWeapons = sizeof ALL_WEAPONS;
- for(new i=0;i<sizeOfAllWeapons;i++)
- give_item(id,ALL_WEAPONS[i]);
- client_print(id, print_chat, "%L", LANG_PLAYER, "NOW_HAVE_ALLWEAPONS", PREFIX);
- }
- }
- public cmdWeapons(id) {
- if (!get_pcvar_num(HnsTrainingOn) || !get_pcvar_num(WeaponMenuOn))
- client_print(id, print_chat, "%L", LANG_PLAYER, "WEAPONMENU_OFF", PREFIX);
- else {
- /* Weapon Menu Start */
- new mWeaponMenu = menu_create("Weapon Menu", "cmdMhWeaponMenu");
- menu_additem(mWeaponMenu, "Handguns", "1");
- menu_additem(mWeaponMenu, "Shotguns", "2");
- menu_additem(mWeaponMenu, "Sub-Machine Guns", "3");
- menu_additem(mWeaponMenu, "Rifles", "4");
- menu_additem(mWeaponMenu, "Snipers", "5");
- menu_additem(mWeaponMenu, "M249", "6");
- menu_setprop(mWeaponMenu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, mWeaponMenu, 0);
- }
- }
- public cmdMhWeaponMenu(id, mWeaponMenu, item) {
- if (item == MENU_EXIT) {
- menu_destroy(mWeaponMenu);
- return PLUGIN_HANDLED;
- }
- new Data[2];
- new Access;
- new Callback;
- menu_item_getinfo(mWeaponMenu, item, Access, Data, 1, _, _, Callback);
- new Key = str_to_num(Data);
- switch (Key)
- {
- case 1: cmdHandGunsMenu(id);
- case 2: cmdShotGunsMenu(id);
- case 3: cmdSubMachineGunsMenu(id);
- case 4: cmdRiflesMenu(id);
- case 5: cmdSnipersMenu(id);
- case 6: give_item(id, "weapon_m249");
- }
- menu_destroy(mWeaponMenu);
- return PLUGIN_HANDLED;
- }
- public cmdHandGunsMenu(id) {
- new mHandGunsMenu = menu_create("Handguns", "cmdMhHandGunsMenu");
- menu_additem(mHandGunsMenu, "Glock", "1");
- menu_additem(mHandGunsMenu, "USP", "2");
- menu_additem(mHandGunsMenu, "P228", "3");
- menu_additem(mHandGunsMenu, "Deagle", "4");
- menu_additem(mHandGunsMenu, "Five-Seven", "5");
- menu_additem(mHandGunsMenu, "Dual Elites", "6");
- menu_setprop(mHandGunsMenu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, mHandGunsMenu, 0);
- }
- public cmdMhHandGunsMenu(id, mHandGunsMenu, item) {
- if (item == MENU_EXIT) {
- menu_destroy(mHandGunsMenu);
- return PLUGIN_HANDLED;
- }
- new Data[2];
- new Access;
- new Callback;
- menu_item_getinfo(mHandGunsMenu, item, Access, Data, 1, _, _, Callback);
- new Key = str_to_num(Data);
- switch (Key)
- {
- case 1: give_item(id, "weapon_glock18");
- case 2: give_item(id, "weapon_usp");
- case 3: give_item(id, "weapon_p228");
- case 4: give_item(id, "weapon_deagle");
- case 5: give_item(id, "weapon_fiveseven");
- case 6: give_item(id, "weapon_elite");
- }
- menu_destroy(mHandGunsMenu);
- return PLUGIN_HANDLED;
- }
- public cmdShotGunsMenu(id) {
- /* Weapon Menu Start */
- new mShotGunsMenu = menu_create("Shotguns", "cmdMhShotGunsMenu");
- menu_additem(mShotGunsMenu, "M3", "1");
- menu_additem(mShotGunsMenu, "XM1014", "2");
- menu_setprop(mShotGunsMenu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, mShotGunsMenu, 0);
- }
- public cmdMhShotGunsMenu(id, mShotGunsMenu, item) {
- if (item == MENU_EXIT) {
- menu_destroy(mShotGunsMenu);
- return PLUGIN_HANDLED;
- }
- new Data[2];
- new Access;
- new Callback;
- menu_item_getinfo(mShotGunsMenu, item, Access, Data, 1, _, _, Callback);
- new Key = str_to_num(Data);
- switch (Key)
- {
- case 1: give_item(id, "weapon_m3");
- case 2: give_item(id, "weapon_xm1014");
- }
- menu_destroy(mShotGunsMenu);
- return PLUGIN_HANDLED;
- }
- public cmdSubMachineGunsMenu(id) {
- /* Weapon Menu Start */
- new mSubMachineGunsMenu = menu_create("Sub-Machine Guns", "cmdMhSubMachineGunsMenu");
- menu_additem(mSubMachineGunsMenu, "TMP", "1");
- menu_additem(mSubMachineGunsMenu, "MAC-10", "2");
- menu_additem(mSubMachineGunsMenu, "MP5", "3");
- menu_additem(mSubMachineGunsMenu, "UMP", "4");
- menu_additem(mSubMachineGunsMenu, "P90", "5");
- menu_setprop(mSubMachineGunsMenu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, mSubMachineGunsMenu, 0);
- }
- public cmdMhSubMachineGunsMenu(id, mSubMachineGunsMenu, item) {
- if (item == MENU_EXIT) {
- menu_destroy(mSubMachineGunsMenu);
- return PLUGIN_HANDLED;
- }
- new Data[2];
- new Access;
- new Callback;
- menu_item_getinfo(mSubMachineGunsMenu, item, Access, Data, 1, _, _, Callback);
- new Key = str_to_num(Data);
- switch (Key)
- {
- case 1: give_item(id, "weapon_tmp");
- case 2: give_item(id, "weapon_mac10");
- case 3: give_item(id, "weapon_mp5navy");
- case 4: give_item(id, "weapon_ump45");
- case 5: give_item(id, "weapon_p90");
- }
- menu_destroy(mSubMachineGunsMenu);
- return PLUGIN_HANDLED;
- }
- public cmdRiflesMenu(id) {
- new mRiflesMenu = menu_create("Rifles", "cmdMhRiflesMenu");
- menu_additem(mRiflesMenu, "FAMAS", "1");
- menu_additem(mRiflesMenu, "Galil", "2");
- menu_additem(mRiflesMenu, "AK-47", "3");
- menu_additem(mRiflesMenu, "M4A1", "4");
- menu_additem(mRiflesMenu, "AUG", "5");
- menu_additem(mRiflesMenu, "SG552", "6");
- menu_setprop(mRiflesMenu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, mRiflesMenu, 0);
- }
- public cmdMhRiflesMenu(id, mRiflesMenu, item) {
- if (item == MENU_EXIT) {
- menu_destroy(mRiflesMenu);
- return PLUGIN_HANDLED;
- }
- new Data[2];
- new Access;
- new Callback;
- menu_item_getinfo(mRiflesMenu, item, Access, Data, 1, _, _, Callback);
- new Key = str_to_num(Data);
- switch (Key)
- {
- case 1: give_item(id, "weapon_famas");
- case 2: give_item(id, "weapon_galil");
- case 3: give_item(id, "weapon_ak47");
- case 4: give_item(id, "weapon_m4a1");
- case 5: give_item(id, "weapon_aug");
- case 6: give_item(id, "weapon_sg552");
- }
- menu_destroy(mRiflesMenu);
- return PLUGIN_HANDLED;
- }
- public cmdSnipersMenu(id) {
- new mSnipersMenu = menu_create("Snipers", "cmdMhSnipersMenu");
- menu_additem(mSnipersMenu, "Scout", "1");
- menu_additem(mSnipersMenu, "AWP", "2");
- menu_additem(mSnipersMenu, "SG550", "3");
- menu_additem(mSnipersMenu, "G3SG1", "4");
- menu_setprop(mSnipersMenu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, mSnipersMenu, 0);
- }
- public cmdMhSnipersMenu(id, mSnipersMenu, item) {
- if (item == MENU_EXIT) {
- menu_destroy(mSnipersMenu);
- return PLUGIN_HANDLED;
- }
- new Data[2];
- new Access;
- new Callback;
- menu_item_getinfo(mSnipersMenu, item, Access, Data, 1, _, _, Callback);
- new Key = str_to_num(Data);
- switch (Key)
- {
- case 1: give_item(id, "weapon_scout");
- case 2: give_item(id, "weapon_awp");
- case 3: give_item(id, "weapon_sg550");
- case 4: give_item(id, "weapon_g3sg1");
- }
- menu_destroy(mSnipersMenu);
- return PLUGIN_HANDLED;
- }
- public cmdTrainingMenu(id) {
- if (!get_pcvar_num(HnsTrainingOn))
- client_print(id, print_chat, "%L", LANG_PLAYER, "HNSTRAINING_OFF", PREFIX);
- else {
- /* Menu Start */
- new szBuffer[256], iLen;
- new szNoclip[6];
- new szGodmode[6];
- szNoclip = (get_user_noclip(id) ? "\yOn" : "\rOff");
- szGodmode = (get_user_godmode(id) ? "\yOn" : "\rOff");
- iLen = formatex(szBuffer, sizeof szBuffer - 1, "\rTRAINING FOR \yPROS ONLY^n^n");
- iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r1. \wHere we go !^n");
- iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r2. \wHere we go again :(^n");
- iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r3. \wHow you manage to do that ?^n^n");
- iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r4. \wDon't use it...: %s^n", szNoclip);
- iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r5. \wWelp we need this: %s^n^n", szGodmode);
- iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r0. \wClose Menu");
- new iKeys = (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9);
- show_menu(id, iKeys, szBuffer, -1, "HNS Training Menu");
- /* Menu End */
- }
- }
- public handleTrainingMenu(id, num) {
- switch (num)
- {
- case 0: Checkpoint(id);
- case 1: GoCheckpoint(id);
- case 2: LastCheckpoint(id);
- case 3:
- {
- if (get_user_noclip(id)) {
- set_user_noclip(id, 0);
- //client_print(id, print_chat, "%L", LANG_PLAYER, "NOCLIP_OFF", PREFIX);
- }
- else {
- set_user_noclip(id, 1);
- //client_print(id, print_chat, "%L", LANG_PLAYER, "NOCLIP_ON", PREFIX);
- }
- }
- case 4:
- {
- if (get_user_godmode(id)) {
- set_user_godmode(id, 0);
- //client_print(id, print_chat, "%L", LANG_PLAYER, "GODMODE_OFF", PREFIX);
- }
- else {
- set_user_godmode(id, 1);
- //client_print(id, print_chat, "%L", LANG_PLAYER, "GODMODE_ON", PREFIX);
- }
- }
- case 9: return PLUGIN_HANDLED;
- }
- if (num != 9)
- cmdTrainingMenu(id);
- return PLUGIN_HANDLED;
- }
- public Checkpoint(id) {
- if (!get_pcvar_num(HnsTrainingOn) || !get_pcvar_num(CheckpointsAndGoChecksOn))
- client_print(id, print_chat, "%L", LANG_PLAYER, "CHECKPOINTS_OFF", PREFIX);
- else {
- /*if (get_user_button(id)&IN_DUCK) {
- client_print(id, print_chat, "%L", LANG_PLAYER, "CANT_PLACE_CP_INDUCK", PREFIX);
- return PLUGIN_CONTINUE;
- }*/
- //client_print(id, print_chat,"%L", LANG_PLAYER, "SAVING_CP", PREFIX);
- if (gCheckpoint[id]) {
- gLastCheckpointPos[id][0]=gCheckpointPos[id][0];
- gLastCheckpointPos[id][1]=gCheckpointPos[id][1];
- gLastCheckpointPos[id][2]=gCheckpointPos[id][2];
- gLastCheckpointAngle[id][0]=gCheckpointAngle[id][0];
- gLastCheckpointAngle[id][1]=gCheckpointAngle[id][1];
- gLastCheckpointAngle[id][2]=gCheckpointAngle[id][2];
- }
- pev(id, pev_origin, gCheckpointPos[id]);
- pev(id, pev_v_angle, gCheckpointAngle[id]);
- gCheckpointPos[id][2] += 5;
- gCheckpoint[id]=true;
- gChecks[id]++;
- set_hudmessage(255, 0, 0, 0.0, 0.63, 0, 6.0, 3.0);
- show_hudmessage(id, "%s Checkpoint #%d", PREFIX, gChecks[id]);
- return PLUGIN_HANDLED;
- }
- return PLUGIN_HANDLED;
- }
- public LastCheckpoint(id) {
- if (!get_pcvar_num(HnsTrainingOn) || !get_pcvar_num(CheckpointsAndGoChecksOn))
- client_print(id, print_chat, "%L", LANG_PLAYER, "AUTO_UNSTUCK_OFF", PREFIX);
- else {
- if (!gCheckpoint[id]) {
- client_print(id, print_chat, "%L", LANG_PLAYER, "HAVE_NO_CP_TO_REVERTTO", PREFIX);
- return PLUGIN_CONTINUE;
- }
- client_print(id, print_chat, "%L", LANG_PLAYER, "REVERTING_TO_LAST_CP", PREFIX);
- gCheckpointPos[id][0]=gLastCheckpointPos[id][0];
- gCheckpointPos[id][1]=gLastCheckpointPos[id][1];
- gCheckpointPos[id][2]=gLastCheckpointPos[id][2];
- gCheckpointAngle[id][0]=gLastCheckpointAngle[id][0];
- gCheckpointAngle[id][1]=gLastCheckpointAngle[id][1];
- gCheckpointAngle[id][2]=gLastCheckpointAngle[id][2];
- gCheckpoint[id]=true;
- move_to_check(id);
- return PLUGIN_HANDLED;
- }
- return PLUGIN_HANDLED;
- }
- public GoCheckpoint(id) {
- if (!get_pcvar_num(HnsTrainingOn) || !get_pcvar_num(CheckpointsAndGoChecksOn))
- client_print(id, print_chat, "%L", LANG_PLAYER, "GOCHECKS_OFF", PREFIX);
- else {
- if (!gCheckpoint[id]) {
- client_print(id, print_chat, "%L", LANG_PLAYER, "HAVE_NO_CHECKPOINT", PREFIX);
- return PLUGIN_CONTINUE;
- }
- move_to_check(id);
- gGoChecks[id]++;
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_DUCKING);
- engfunc(EngFunc_SetSize, id, {-16, -16, -18}, {16, 16, 18});
- set_hudmessage(255, 0, 0, 0.0, 0.63, 0, 6.0, 3.0);
- show_hudmessage(id, "%s GoCheck #%d", PREFIX, gGoChecks[id]);
- return PLUGIN_HANDLED;
- }
- return PLUGIN_HANDLED;
- }
- stock move_to_check(id) {
- new vVelocity[3];
- set_pev( id, pev_velocity, vVelocity );
- new CurOrig[3];
- get_user_origin(id,CurOrig);
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
- write_byte(TE_TELEPORT);
- write_coord(CurOrig[0]);
- write_coord(CurOrig[1]);
- write_coord(CurOrig[2]);
- message_end();
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
- write_byte(TE_TELEPORT);
- write_coord(gCheckpointPos[id][0]);
- write_coord(gCheckpointPos[id][1]);
- write_coord(gCheckpointPos[id][2]);
- message_end();
- //Move To Checkpoint
- engfunc(EngFunc_SetOrigin, id, gCheckpointPos[id]);
- set_pev(id, pev_angles, gCheckpointAngle[id]);
- set_pev(id, pev_fixangle, 1);
- return PLUGIN_CONTINUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement