Jump to content

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

All Activity

This stream auto-updates

  1. Past hour
  2. Rate this plugin Donate to Motivate Clean Kills Table of contents About Credits Requirements Notes Features Commands ConVars Changelog Installation Uninstalling/Upgrading to Newer Versions Disabling Third-party Revisions Notice Download About Kill swiftly, efficiently, and professionally. Credits epz/epzminion - For helping with gamedata information, giving the original idea, and overall invaluable input. SourceMod Team - For continually updating/improving SourceMod. Requirements 1. SourceMod 1.11.0.6724 or higher 2. DHooks 2.2.0-detours15 or higher 3. Source Scramble 4. Left 4 DHooks 5. Knowledge of installing SourceMod plugins. Notes 1. I do not provide support for listen/local servers but the plugin should still work properly on them. 2. I will not help you with installing or troubleshooting problems on your part. 3. If you get errors from SourceMod itself, that is your problem, not mine. 4. MAKE SURE YOU MEET ALL THE REQUIREMENTS AND FOLLOW THE INSTALLATION GUIDE PROPERLY. Features 1. Kill Boomers without triggering explosions or vomit feedback. 2. Kill Smokers without triggering smoke clouds or coughing. 3. Kill Spitters without triggering acid puddles. Commands Spoiler Code: // Accessible by admins with "z" (Root) flag only. sm_clean - Set a player's clean kills type(s). L4D1: - Usage: sm_clean <-1: OFF|0: Use Cvar|1: Boomers|2: Smokers|3: ALL> - Usage: sm_clean <#userid|name> <-1: OFF|0: Use Cvar|1: Boomers|2: Smokers|3: ALL> L4D2: - Usage: sm_clean <-1: OFF|0: Use Cvar|1: Boomers|2: Smokers|4: Spitters|7: ALL> - Usage: sm_clean <#userid|name> <-1: OFF|0: Use Cvar|1: Boomers|2: Smokers|4: Spitters|7: ALL> ConVars Spoiler Code: // Disable Clean Kills in these game modes. // Separate by commas. // Empty: None // Not empty: Disabled only in these game modes. // - // Default: "" l4d_clean_kills_disabled_gamemodes "" // Enable Clean Kills. // 0: OFF // 1: ON // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_clean_kills_enabled "1" // Enable Clean Kills in these game modes. // Separate by commas. // Empty: All // Not empty: Enabled only in these game modes. // - // Default: "" l4d_clean_kills_enabled_gamemodes "" // Enable Clean Kills in these game mode types. // 0 OR 15: All game mode types. // 1: Co-Op modes only. // 2: Versus modes only. // 4: Survival modes only. // 8: Scavenge modes only. (Only available in Left 4 Dead 2.) // - // Default: "0" // Minimum: "0.000000" // Maximum: "15.000000" l4d_clean_kills_gamemode_types "0" // Type(s) of clean kills allowed. // 0: NONE // 1: Boomers only // 2: Smokers only // 4: Spitters only (Only available in Left 4 Dead 2.) // 7: ALL // - // Default: "7" // Minimum: "0.000000" // Maximum: "7.000000" l4d_clean_kills_kill_types "7" Changelog Spoiler Version 1.0 (January 29, 2022) Initial Release. Installation 1. Delete files from old versions of the plugin. 2. Place "l4d_clean_kills.txt" in the "addons/sourcemod/gamedata" folder. 3. Place "l4d_clean_kills.smx" in the "addons/sourcemod/plugins" folder. 4. Place "l4d_clean_kills.sp" in the "addons/sourcemod/scripting" folder. Uninstalling/Upgrading to Newer Versions 1. Delete "l4d_clean_kills.sp" from the "addons/sourcemod/scripting" folder. 2. Delete "l4d_clean_kills.smx" from the "addons/sourcemod/plugins" folder. 3. Delete "l4d_clean_kills.txt" from the "addons/sourcemod/gamedata" folder. 4. Follow the Installation guide above. (Only for upgrading to newer versions.) Disabling 1. Move "l4d_clean_kills.smx" to the "plugins/disabled" folder. 2. Unload Clean Kills by typing "sm plugins unload l4d_clean_kills" in the server console. Third-party Revisions Notice If you would like to share your own revisions of this plugin, please rename the files so that there is no confusion for users. Download Source | Latest Version | All Official Releases Wyświetl pełny artykuł
  3. Today
  4. Hej. Wątpię, że znajdziesz na tym forum odpowiednią osobę do takiego zlecenia bo tutaj głównie sm ale idź na forum pecetowicz i tam napisz temat myślę, że szybciej kogoś znajdziesz niz tutaj. Pozdrawiam.
  5. Rate this plugin Donate to Motivate Jump System Table of contents About Credits Requirements Notes Features Commands ConVars Changelog Installation Uninstalling/Upgrading to Newer Versions Disabling Third-party Revisions Notice Download About Provides a system for controlling jumps. Credits epz/epzminion - For helping with gamedata information, giving some ideas, and overall invaluable input. Chanz - For the [ANY] Infinite-Jumping plugin. SourceMod Team - For continually updating/improving SourceMod. Requirements 1. SourceMod 1.11.0.6724 or higher 2. DHooks 2.2.0-detours15 or higher 3. Source Scramble 4. Left 4 DHooks 5. Knowledge of installing SourceMod plugins. Notes 1. I do not provide support for listen/local servers but the plugin should still work properly on them. 2. I will not help you with installing or troubleshooting problems on your part. 3. If you get errors from SourceMod itself, that is your problem, not mine. 4. MAKE SURE YOU MEET ALL THE REQUIREMENTS AND FOLLOW THE INSTALLATION GUIDE PROPERLY. Features 1. Automatic bunnyhopping - Hold down your jump button and automatically bunnyhop. 2. Adjustable jump height - Jump as high as you want (or as high as the map allows you). 3. Midair dashes - Jump as many times as you want after taking off from the ground. 4. No fall scream - Mute the game's fall scream while you fall. (This only works if you have a custom jump height or at least 1 midair dash.) 5. No fall damage - Block fall damage when you land from a high place. (This only works if you have a custom jump height or at least 1 midair dash.) 6. No death fall camera - Remove death fall camera when you land from a high place (only if the place you land on is a safe zone). [This only works if you have a custom jump height or at least 1 midair dash.] Commands Spoiler Code: sm_bhop - Toggle a player's automatic bunnyhopping. - Usage: sm_bhop <-1: OFF|0: Use Cvar|1: ON> - Usage: sm_bhop <#userid|name> <-1: OFF|0: Use Cvar|1: ON> sm_bunny - Toggle a player's automatic bunnyhopping. - Usage: sm_bunny <-1: OFF|0: Use Cvar|1: ON> - Usage: sm_bunny <#userid|name> <-1: OFF|0: Use Cvar|1: ON> sm_bunnyhop - Toggle a player's automatic bunnyhopping. - Usage: sm_bunnyhop <-1: OFF|0: Use Cvar|1: ON> - Usage: sm_bunnyhop <#userid|name> <-1: OFF|0: Use Cvar|1: ON> sm_jump - Set a player's jump height. - Usage: sm_jump <-1.0: OFF|0.0: Use Cvar|1.0-99999.0: ON> - Usage: sm_jump <#userid|name> <-1.0: OFF|0.0: Use Cvar|1.0-99999.0: ON> sm_height - Set a player's jump height. - Usage: sm_height <-1.0: OFF|0.0: Use Cvar|1.0-99999.0: ON> - Usage: sm_height <#userid|name> <-1.0: OFF|0.0: Use Cvar|1.0-99999.0: ON> sm_dash - Set a player's midair dash count. - Usage: sm_dash <-1: OFF|0: Use Cvar|1-99999: ON> - Usage: sm_dash <#userid|name> <-1: OFF|0: Use Cvar|1-99999: ON> sm_midair - Set a player's midair dash count. - Usage: sm_midair <-1: OFF|0: Use Cvar|1-99999: ON> - Usage: sm_midair <#userid|name> <-1: OFF|0: Use Cvar|1-99999: ON> ConVars Spoiler Code: // Enable automatic bunnyhopping. // 0: OFF // 1: ON // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_jump_system_auto_bunnyhop "1" // Block death fall camera. // 0: OFF // 1: ON // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_jump_system_block_deathcamera "1" // Block fall damage. // 0: OFF // 1: ON // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_jump_system_block_falldamage "1" // Block fall scream. // 0: OFF // 1: ON // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_jump_system_block_fallscream "1" // Disable Jump System in these game modes. // Separate by commas. // Empty: None // Not empty: Disabled only in these game modes. // - // Default: "" l4d_jump_system_disabled_gamemodes "" // Enable Jump System. // 0: OFF // 1: ON // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_jump_system_enabled "1" // Enable Jump System in these game modes. // Separate by commas. // Empty: All // Not empty: Enabled only in these game modes. // - // Default: "" l4d_jump_system_enabled_gamemodes "" // Enable Jump System in these game mode types. // 0 OR 15: All game mode types. // 1: Co-Op modes only. // 2: Versus modes only. // 4: Survival modes only. // 8: Scavenge modes only. (Only available in Left 4 Dead 2.) // - // Default: "0" // Minimum: "0.000000" // Maximum: "15.000000" l4d_jump_system_gamemode_types "0" // Height of each jump. (Game default: 57.0) // - // Default: "57.0" // Minimum: "0.000000" // Maximum: "99999.000000" l4d_jump_system_jump_height "57.0" // Number of midair dashes allowed after initial jump. // 0: OFF // 1-99999: Number of midair dashes allowed. // - // Default: "2" // Minimum: "0.000000" // Maximum: "99999.000000" l4d_jump_system_midair_dashes "2" Changelog Spoiler Version 1.0 (January 28, 2022) Initial Release. Installation 1. Delete files from old versions of the plugin. 2. Place "l4d_jump_system.txt" in the "addons/sourcemod/gamedata" folder. 3. Place "l4d_jump_system.smx" in the "addons/sourcemod/plugins" folder. 4. Place "l4d_jump_system.sp" in the "addons/sourcemod/scripting" folder. Uninstalling/Upgrading to Newer Versions 1. Delete "l4d_jump_system.sp" from the "addons/sourcemod/scripting" folder. 2. Delete "l4d_jump_system.smx" from the "addons/sourcemod/plugins" folder. 3. Delete "l4d_jump_system.txt" from the "addons/sourcemod/gamedata" folder. 4. Follow the Installation guide above. (Only for upgrading to newer versions.) Disabling 1. Move "l4d_jump_system.smx" to the "plugins/disabled" folder. 2. Unload Jump System by typing "sm plugins unload l4d_jump_system" in the server console. Third-party Revisions Notice If you would like to share your own revisions of this plugin, please rename the files so that there is no confusion for users. Download Source | Latest Version | All Official Releases Wyświetl pełny artykuł
  6. Hello everyone I add cs 1.6 umbrella swarm mod but when I start the server does not work Can you help please? Przeczytaj cały wpis
  7. Yesterday
  8. Description:Allows to simplify process of installing and managing custom skyboxes on your server. About DD: Spoiler Plugin partially supports "Delayed Downloader" (DD) technology. It means, if you installed DD (which removes all downloadables for players who is connecting in mid-game time), newly connected players will see a default skybox, instead of pink texture. Technical details Detection is not perfect, it just wait 30 seconds since map started and apply default skybox for everybody who joined the server after this time elapsed. The main reason: because there are no ideal (or any normal) way at the moment to differentiate skyboxes for players at a run time, dispite of games like CS:GO. It is only possible at a connection-stage by changing global ConVar. However during connection, it's not so simple to verify is it a transitioned player. Features:Auto-changing skyboxes on each map (randomly or consequentially) Auto-detection of custom skyboxes. You don't even need to specify their names. Auto-detection of all skybox files, required to be added in download list (you don't more need to create list manually) Ability to temporarily "lock" skybox to use it for the next map. Ability to forbid using specific skybox on specific map (because not all custom skyboxes looks good on all maps). Menu to select desired skybox Settings (ConVars):Can be found in cfg/sourcemod/l4d_skybox.cfg PHP Code: // Select skybox in random order? (1 - Yes, 0 - No, change sequentially) l4d_skybox_random "0" Data files: Forbidden skybox list: data/sky_forbidden.txt Commands: PHP Code: // Show current sky name, and show menu to select skybox for the next map sm_sky // Make skybox to not change on the next map sm_skylock Dependency: - You must understand where to find (or how to create your own) custom skybox. - You must copy skybox files in materials/skybox folder of BOTH - ftp-server and content-server. - (optionally) Black Screen Fix aka Delayed downloader by BHaType Compatibility: - L4D1 - L4D2 ChangeLog: Spoiler Quote: 1.0 alpha (01-Jan-2020) - Concept release (technical demo) 1.1 beta (26-Mar-2020) - Added support for all games. - No need to define default skybox anymore. It is detected automatically. - No need to list all default skyboxes. They are detected automatically. 1.2 beta (18-Oct-2021) - No need to list the names of custom skyboxes. They can be detected automatically. - Added Convar "l4d_skybox_random" - Select skybox in random order? (1 - Yes, 0 - No) - Added ConVar "l4d_skybox_autoadd" - Add the list of custom skyboxes automatically? (1 - Yes, 0 - You must specify each skybox name manually) 1.3 beta (20-Nov-2021) - Added "sm_skylock" command to lock current skybox for using on the next map. - Added menu on "sm_sky" allowing to select an arbitary skybox to load on the next map. 1.4 beta (28-Jan-2022) - Tidy up the code a little bit. DonateDonates are very appreciated and welcomed for further inspiration, make me happy, and make next updates came out more often: - Patreon (Paypal) - BitCoin - Ю.Money Attached Files l4d_skybox_dd.zip (12.4 KB) Wyświetl pełny artykuł
  9. Hello guys , hope all are well !! i have this sma file of "Zombie Escape mod" and it have bug which on last human the zombies damage the human player as the normal knife damage untill kill the last human but i need on last human , zombie kill the last human with only 2 hits , not on 5 or 6 hits ! so hope anyone fix that plz PHP Code: /*================================================================================ ------------------------ -*- [ZP] Core/Engine -*- ------------------------ This plugin is part of Zombie Plague Mod and is distributed under the terms of the GNU General Public License. Check ZP_ReadMe.txt for details. ================================================================================*/ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <hamsandwich> #include <cs_ham_bots_api> #include <zp50_core_const> #define MAXPLAYERS 32 // Custom Forwards enum _:TOTAL_FORWARDS { FW_USER_INFECT_PRE = 0, FW_USER_INFECT, FW_USER_INFECT_POST, FW_USER_CURE_PRE, FW_USER_CURE, FW_USER_CURE_POST, FW_USER_LAST_ZOMBIE, FW_USER_LAST_HUMAN, FW_USER_SPAWN_POST } #define flag_get(%1,%2) (%1 & (1 << (%2 & 31))) #define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false) #define flag_set(%1,%2) %1 |= (1 << (%2 & 31)) #define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31)) new g_MaxPlayers new g_IsZombie new g_IsFirstZombie new g_IsLastZombie new g_LastZombieForwardCalled new g_IsLastHuman new g_LastHumanForwardCalled new g_RespawnAsZombie new g_ForwardResult new g_Forwards[TOTAL_FORWARDS] public plugin_init() { register_plugin("[ZP] Core/Engine", ZP_VERSION_STRING, "ZP Dev Team") register_dictionary("zombie_escape.txt") register_dictionary("zombie_escape50.txt") g_Forwards[FW_USER_INFECT_PRE] = CreateMultiForward("zp_fw_core_infect_pre", ET_CONTINUE, FP_CELL, FP_CELL) g_Forwards[FW_USER_INFECT] = CreateMultiForward("zp_fw_core_infect", ET_IGNORE, FP_CELL, FP_CELL) g_Forwards[FW_USER_INFECT_POST] = CreateMultiForward("zp_fw_core_infect_post", ET_IGNORE, FP_CELL, FP_CELL) g_Forwards[FW_USER_CURE_PRE] = CreateMultiForward("zp_fw_core_cure_pre", ET_CONTINUE, FP_CELL, FP_CELL) g_Forwards[FW_USER_CURE] = CreateMultiForward("zp_fw_core_cure", ET_IGNORE, FP_CELL, FP_CELL) g_Forwards[FW_USER_CURE_POST] = CreateMultiForward("zp_fw_core_cure_post", ET_IGNORE, FP_CELL, FP_CELL) g_Forwards[FW_USER_LAST_ZOMBIE] = CreateMultiForward("zp_fw_core_last_zombie", ET_IGNORE, FP_CELL) g_Forwards[FW_USER_LAST_HUMAN] = CreateMultiForward("zp_fw_core_last_human", ET_IGNORE, FP_CELL) g_Forwards[FW_USER_SPAWN_POST] = CreateMultiForward("zp_fw_core_spawn_post", ET_IGNORE, FP_CELL) RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1) RegisterHamBots(Ham_Spawn, "fw_PlayerSpawn_Post", 1) RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", 1) RegisterHamBots(Ham_Killed, "fw_PlayerKilled_Post", 1) register_forward(FM_ClientDisconnect, "fw_ClientDisconnect_Post", 1) g_MaxPlayers = get_maxplayers() // To help players find ZP servers register_cvar("zp_version", ZP_VERSION_STR_LONG, FCVAR_SERVER|FCVAR_SPONLY) set_cvar_string("zp_version", ZP_VERSION_STR_LONG) } public plugin_cfg() { // Get configs dir new cfgdir[32] get_configsdir(cfgdir, charsmax(cfgdir)) // Execute config file (zombie_escape.cfg) server_cmd("exec %s/zombie_escape.cfg", cfgdir) } public plugin_natives() { register_library("zp50_core") register_native("zp_core_is_zombie", "native_core_is_zombie") register_native("zp_core_is_first_zombie", "native_core_is_first_zombie") register_native("zp_core_is_last_zombie", "native_core_is_last_zombie") register_native("zp_core_is_last_human", "native_core_is_last_human") register_native("zp_core_get_zombie_count", "native_core_get_zombie_count") register_native("zp_core_get_human_count", "native_core_get_human_count") register_native("zp_core_infect", "native_core_infect") register_native("zp_core_cure", "native_core_cure") register_native("zp_core_force_infect", "native_core_force_infect") register_native("zp_core_force_cure", "native_core_force_cure") register_native("zp_core_respawn_as_zombie", "native_core_respawn_as_zombie") } public fw_ClientDisconnect_Post(id) { // Reset flags AFTER disconnect (to allow checking if the player was zombie before disconnecting) flag_unset(g_IsZombie, id) flag_unset(g_RespawnAsZombie, id) // This should be called AFTER client disconnects (post forward) CheckLastZombieHuman() } public fw_PlayerSpawn_Post(id) { // Not alive or didn't join a team yet if (!is_user_alive(id) || !cs_get_user_team(id)) return; // ZP Spawn Forward ExecuteForward(g_Forwards[FW_USER_SPAWN_POST], g_ForwardResult, id) // Set zombie/human attributes upon respawn if (flag_get(g_RespawnAsZombie, id)) InfectPlayer(id, id) else CurePlayer(id) // Reset flag afterwards flag_unset(g_RespawnAsZombie, id) } // Ham Player Killed Post Forward public fw_PlayerKilled_Post() { CheckLastZombieHuman() } InfectPlayer(id, attacker = 0) { ExecuteForward(g_Forwards[FW_USER_INFECT_PRE], g_ForwardResult, id, attacker) // One or more plugins blocked infection if (g_ForwardResult >= PLUGIN_HANDLED) return; ExecuteForward(g_Forwards[FW_USER_INFECT], g_ForwardResult, id, attacker) flag_set(g_IsZombie, id) if (GetZombieCount() == 1) flag_set(g_IsFirstZombie, id) else flag_unset(g_IsFirstZombie, id) ExecuteForward(g_Forwards[FW_USER_INFECT_POST], g_ForwardResult, id, attacker) CheckLastZombieHuman() } CurePlayer(id, attacker = 0) { ExecuteForward(g_Forwards[FW_USER_CURE_PRE], g_ForwardResult, id, attacker) // One or more plugins blocked cure if (g_ForwardResult >= PLUGIN_HANDLED) return; ExecuteForward(g_Forwards[FW_USER_CURE], g_ForwardResult, id, attacker) flag_unset(g_IsZombie, id) ExecuteForward(g_Forwards[FW_USER_CURE_POST], g_ForwardResult, id, attacker) CheckLastZombieHuman() } // Last Zombie/Human Check CheckLastZombieHuman() { new id, last_zombie_id, last_human_id new zombie_count = GetZombieCount() new human_count = GetHumanCount() if (zombie_count == 1) { for (id = 1; id <= g_MaxPlayers; id++) { // Last zombie if (is_user_alive(id) && flag_get(g_IsZombie, id)) { flag_set(g_IsLastZombie, id) last_zombie_id = id } else flag_unset(g_IsLastZombie, id) } } else { g_LastZombieForwardCalled = false for (id = 1; id <= g_MaxPlayers; id++) flag_unset(g_IsLastZombie, id) } // Last zombie forward if (last_zombie_id > 0 && !g_LastZombieForwardCalled) { ExecuteForward(g_Forwards[FW_USER_LAST_ZOMBIE], g_ForwardResult, last_zombie_id) g_LastZombieForwardCalled = true } if (human_count == 1) { for (id = 1; id <= g_MaxPlayers; id++) { // Last human if (is_user_alive(id) && !flag_get(g_IsZombie, id)) { flag_set(g_IsLastHuman, id) last_human_id = id } else flag_unset(g_IsLastHuman, id) } } else { g_LastHumanForwardCalled = false for (id = 1; id <= g_MaxPlayers; id++) flag_unset(g_IsLastHuman, id) } // Last human forward if (last_human_id > 0 && !g_LastHumanForwardCalled) { ExecuteForward(g_Forwards[FW_USER_LAST_HUMAN], g_ForwardResult, last_human_id) g_LastHumanForwardCalled = true } } public native_core_is_zombie(plugin_id, num_params) { new id = get_param(1) if (!is_user_connected(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return -1; } return flag_get_boolean(g_IsZombie, id); } public native_core_is_first_zombie(plugin_id, num_params) { new id = get_param(1) if (!is_user_connected(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return -1; } return flag_get_boolean(g_IsFirstZombie, id); } public native_core_is_last_zombie(plugin_id, num_params) { new id = get_param(1) if (!is_user_connected(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return -1; } return flag_get_boolean(g_IsLastZombie, id); } public native_core_is_last_human(plugin_id, num_params) { new id = get_param(1) if (!is_user_connected(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return -1; } return flag_get_boolean(g_IsLastHuman, id); } public native_core_get_zombie_count(plugin_id, num_params) { return GetZombieCount(); } public native_core_get_human_count(plugin_id, num_params) { return GetHumanCount(); } public native_core_infect(plugin_id, num_params) { new id = get_param(1) if (!is_user_alive(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return false; } if (flag_get(g_IsZombie, id)) { log_error(AMX_ERR_NATIVE, "[ZP] Player already infected (%d)", id) return false; } new attacker = get_param(2) if (attacker && !is_user_alive(attacker)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", attacker) return false; } InfectPlayer(id, attacker) return true; } public native_core_cure(plugin_id, num_params) { new id = get_param(1) if (!is_user_alive(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return false; } if (!flag_get(g_IsZombie, id)) { log_error(AMX_ERR_NATIVE, "[ZP] Player not infected (%d)", id) return false; } new attacker = get_param(2) if (attacker && !is_user_alive(attacker)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", attacker) return false; } CurePlayer(id, attacker) return true; } public native_core_force_infect(plugin_id, num_params) { new id = get_param(1) if (!is_user_alive(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return false; } InfectPlayer(id) return true; } public native_core_force_cure(plugin_id, num_params) { new id = get_param(1) if (!is_user_alive(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return false; } CurePlayer(id) return true; } public native_core_respawn_as_zombie(plugin_id, num_params) { new id = get_param(1) if (!is_user_connected(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return false; } new respawn_as_zombie = get_param(2) if (respawn_as_zombie) flag_set(g_RespawnAsZombie, id) else flag_unset(g_RespawnAsZombie, id) return true; } // Get Zombie Count -returns alive zombies number- GetZombieCount() { new iZombies, id for (id = 1; id <= g_MaxPlayers; id++) { if (is_user_alive(id) && flag_get(g_IsZombie, id)) iZombies++ } return iZombies; } // Get Human Count -returns alive humans number- GetHumanCount() { new iHumans, id for (id = 1; id <= g_MaxPlayers; id++) { if (is_user_alive(id) && !flag_get(g_IsZombie, id)) iHumans++ } return iHumans; } Przeczytaj cały wpis
  10. Author: Kodua, Franc1sco franug, TheBO$$, Foxhound (Fork by Dragokas) Fork is based on this branch (v.1.4.3.0). New features & differences:Updated menu, admin can force other player (or infected bot) to dance Stop dance in menu VIP Core (by R1KO) support (optional / disabled). To enable, recompile the plugin by setting #define USE_VIP_CORE 1 Sound downloadables is removed. Most command aliases is removed. Prevented stop dance on receiving damage Prevented stop dance on actions other than Jump. Stop dance when player is incapacitated. Fixed player camera freeze on join the server. Fixed plugin reload crash. Settings (ConVars):Can be found in cfg/sourcemod/l4d_fortnite_emotes_extended.cfg PHP Code: // Enable/Disable sounds for emotes. sm_emotes_sounds "1" // Cooldown for emotes in seconds. -1 or 0 = no cooldown. sm_emotes_cooldown "2.0" // Sound volume for the emotes. sm_emotes_soundvolume "1.0" // admin flag for emotes (empty for all players) sm_emotes_admin_flag_menu "k" // admin flag for dances (empty for all players) sm_dances_admin_flag_menu "s" // admin flag to set emotes/dances to bots (empty for all players) sm_dances_setbots_admin_flag_menu "k" // allow dances for VIP only? sm_dances_vip_menu "1" // allow emotes for VIP only? sm_emotes_vip_menu "1" // allow to set emotes/dances to bots by VIPs? sm_dances_setbots_vip_menu "1" // Hide weapons when dancing sm_emotes_hide_weapons "1" // Hide enemy players when dancing sm_emotes_hide_enemies "0" // Teleport back to the exact position when he started to dance. (Some maps need this for teleport triggers) sm_emotes_teleportonend "0" // Sets the playback speed of the animation sm_emotes_speed "0.80" Commands: PHP Code: // Opens dance menu sm_dance // apply emote on specific player sm_setdance <#userid|name> [Emote ID] Dependency: - Content server. You must setup it to upload models (and/or sound) files to clients. Installation: - Unpack archive, put addons folder as it is on your server ftp. - Pick files for appropriate game _root\l4d or _root\l4d2, then copy contents of "ftp" folder to ftp-server, "content" folder - to content-server. Compatibility: - L4D1 - L4D2 DonateDonates are very appreciated and welcomed for further inspiration, make me happy, and make next updates came out more often: - Patreon (Paypal) - BitCoin - Ю.Money Attachment / Download: on GitHub. TODO. Link is not yet ready. Wyświetl pełny artykuł
  11. Author: BlueRaja (Fork by Dragokas) Description:Make it snow!!! Features:Always large snowflakes. Chance of white or cyan snow. Chance of red snow on finales. Snowing is disappear when you come inside building (exclusion: when you touch the final saferoom door). Snowing starts randomly / or when you touch the final saferoom door / or kill the last tank Snowing is disappear when tank appearing on the field (to reduce performance issues). 2 templates of snowing spread/twist. Theoretically, can be easily added more via enum struct. Settings (ConVars):Nothing. Everything hardcoded. Commands: PHP Code: Nothing. Dependency: - [inc] left4dragokas Compatibility: - L4D1 - L4D2 DonateDonates are very appreciated and welcomed for further inspiration, make me happy, and make next updates came out more often: - Patreon (Paypal) - BitCoin - Ю.Money Attached Files Get Plugin or Get Source (sm_snow.sp - 11.0 KB) Wyświetl pełny artykuł
  12. Hello again , i'm looking for a plugin that block deathmsg when the T kill CT , that make him unknown killer, for example if an T kill CT in the top right the deathmsg won't be displayed Przeczytaj cały wpis
  13. Description:Lightweight alternative to MultiSlots (Coop only) in a form of Addon to original well-known bebop. Original code is almost untouched. For the full description, see original topic. Features:Takeover bots (and move from spectators) with "E" (Use) key. Hints with translation When player joins the server he is auto-respawned only when there are no tanks on the field Addon is well enough tested and should work perfectly if you use original bebop. Settings (ConVars):Nothing. Commands: PHP Code: // join survivor team sm_join Dependency: - bebop [original] (included in archive) - [L4D1 & L4D2] SM Respawn Improved Compatibility: - L4D1 - L4D2 is not tested / unknown / not planned ChangeLog: Spoiler 1.0 (08-Apr-2021) - First release 1.1 (19-Apr-2021) - Fixed bug with incorrect detection of spawn state, because players are not connected instantly in OnMapStart(). - Added ability to move to Survivors team on "E" (Use) button press. 1.2 (21-Apr-2021) - Spanwed players detection logic is entirely re-written & simplified. 1.3 (24-Apr-2021) - Returned SteamId cache logic. - "E" key to move to Survivors team is now working only if there are no other bots to takeover. 1.4 (03-May-2021) - Added ability to takeover bots with "E" (Use) key. - Added message hint to "Press E" for join Survivor team. - Added command "sm_join" to join survivor team. - Added message hint to player who is waiting for spawn about that they are more tanks on the field when one more tank is died. - Added translation color support. - Fixed some mistakes with key press time restriction. 1.5 (04-May-2021) - Fixed timer leak. 1.6 (22-Nov-2021) - Fixed "m_humanSpectatorUserID" error due to checking against non-bot player. DonateDonates are very appreciated and welcomed for further inspiration, make me happy, and make next updates came out more often: - Patreon (Paypal) - BitCoin - Ю.Money Attached Files bebop_addon.zip (23.4 KB) Wyświetl pełny artykuł
  14. Do there exist a thing to transform numbers like 1000000 --> 1.000.000 or 1 000 000? Przeczytaj cały wpis
  15. Witam! Na sprzedaż mam 190 wPLN na 1shot1kill. Przelicznik: 0.8 Płatność: Przelew Kontakt: Steam
  16. Sprawdź czy błąd jeszcze występuje.
  17. Witam. Sprzedam szablon Sendo pod Invision Community 4.6.x. Szablon z możliwością zmiany kolorystyki Ciemny/Jasny. Kolory i wartości w CSS Vars. Dużo ustawień w ACP ( Stopki, Działów, Sidebaru, Slidera z ogłoszeniami ). Dodam, że szablon będzi przeze mnie rozwijany jak moje poprzednie acme i nexxe. Zapewniam pełne wsparcie, zachęcam do zgłaszania błędów które są usuwane praktycznie natychmiastowo. Cena: 45 dolarów Obecna wersja: 1.0.0.0 Ostatnia aktualizacja: 2022 Do kupienia w sklepie: Marketplace Podgląd: Zobacz na żywo (login: demo, hasło: demo) https://invisioncommunity.com/files/file/10053-sendo-theme-darkwhite/ Szablon można kupić bezpośrednio na marketplace IPS lub u mnie w prywatnej wiadomości Tutaj lub na moim forum
  18. Myślę, że przy ew. sprzedaży mógłbyś zacząć licytacje z potencjalnym kupcem od kwoty 200-250 zł. wzwyż. Nie chce ci tutaj zaniżać ceny ze względu na hosting ale wiadomo, że przy sprzedaży wszystko zależy od ciebie jak to rozegrasz ale uważam, że pisanie poniżej 200 zł jest co najmniej śmieszne. Pozdrawiam.
  19. Hello, can someone make a plugin that, if there is no CT, can throw someone at random used mod: PHP Code: /* Changelog: Mini-edit by OciXCrom: * Added different knife model for CT v1.9-Cr2 (Edit by OciXCrom) * Added Simon forwards v1.9-Cr (Edit by OciXCrom) * Added natives v1.9 * Finally fixed voice control * Added cvar to disable team change * Fixed OldStyle team menu issue * Fixed crowbar user + he damage issue v1.8 * Fixed duel bug * Fixed clcmd/concmd flags problem * Added cell opener for maps with multi_manager * Added cvar to enable last request * Added cvar to enable motd v1.7 * Fixed auto Simon mode v1.6 * Updated dictionary * Fixed last request abuse bug * Fixed voice mode bugs * Added auto team transfer to Guards that never been Simon * Added auto disconnect to Spectators that doesn't join any team in 3 rounds * Added blocking for hints messages * Added auto door open on freeday * Added /open command only for Simon v1.5 * Improved team select code * Improved team status code * Updated dictionary * Added custom model (using body+skin) * Added sounds * Added freeday menu command * Added lastrequest menu command & functionalities * Added help command * Added last prisoner hud message * Added cvar to change talk mode control (+simonvoice optional or required to talk) * Added cvar to allow shooting func_button to activate it * Added cvar to allow auto-freeday hud message after 60 seconds with no Simon selected * Added cvar to force round end after some time of auto-freeday * Added cvar to change game mode (classic counter for days) * Added simon footsteps decals (controlled by cvar) * Added restriction on HE for guards v1.3 * First public release */ #include <amxmodx> #include <amxmisc> #include <engine> #include <fakemeta> #include <hamsandwich> #include <fun> #include <cstrike> #include <jbextreme-crx_const> #define PLUGIN_NAME "JailBreak Extreme" #define PLUGIN_AUTHOR "JoRoPiTo" #define PLUGIN_VERSION "1.9-Cr2m1" #define PLUGIN_CVAR "jbextreme" #define TASK_STATUS 2487000 #define TASK_FREEDAY 2487100 #define TASK_ROUND 2487200 #define TASK_HELP 2487300 #define TASK_SAFETIME 2487400 #define TASK_FREEEND 2487500 #define TEAM_MENU "#Team_Select_Spect" #define TEAM_MENU2 "#Team_Select_Spect" #define HUD_DELAY Float:4.0 #define CELL_RADIUS Float:200.0 #define get_bit(%1,%2) ( %1 & 1 << ( %2 & 31 ) ) #define set_bit(%1,%2) %1 |= ( 1 << ( %2 & 31 ) ) #define clear_bit(%1,%2) %1 &= ~( 1 << ( %2 & 31 ) ) #define vec_len(%1) floatsqroot(%1[0] * %1[0] + %1[1] * %1[1] + %1[2] * %1[2]) #define vec_mul(%1,%2) ( %1[0] *= %2, %1[1] *= %2, %1[2] *= %2) #define vec_copy(%1,%2) ( %2[0] = %1[0], %2[1] = %1[1],%2[2] = %1[2]) // Offsets #define m_iPrimaryWeapon 116 #define m_iVGUI 510 #define m_fGameHUDInitialized 349 #define m_fNextHudTextArgsGameTime 198 #if defined client_disconnected #define client_disconnect client_disconnected #endif enum _hud { _hudsync, Float:_x, Float:_y, Float:_time } enum _lastrequest { _knife, _deagle, _freeday, _weapon } enum _duel { _name[16], _csw, _entname[32], _opt[32], _sel[32] } new gp_PrecacheSpawn new gp_PrecacheKeyValue new gp_CrowbarMax new gp_CrowbarMul new gp_TeamRatio new gp_CtMax new gp_BoxMax new gp_TalkMode new gp_VoiceBlock new gp_RetryTime new gp_RoundMax new gp_ButtonShoot new gp_SimonSteps new gp_SimonRandom new gp_GlowModels new gp_AutoLastresquest new gp_LastRequest new gp_Motd new gp_SpectRounds new gp_NosimonRounds new gp_AutoOpen new gp_TeamChange new g_MaxClients new g_MsgStatusText new g_MsgStatusIcon new g_MsgVGUIMenu new g_MsgShowMenu new g_MsgClCorpse new g_MsgMOTD new g_fwdSimonSelected new g_fwdSimonReset new g_iSimonReturn new gc_TalkMode new gc_VoiceBlock new gc_SimonSteps new gc_ButtonShoot new Float:gc_CrowbarMul // Precache new const _FistModels[][] = { "models/p_bknuckles.mdl", "models/v_bknuckles.mdl" } new const _ElectroModels[][] = { "models/Electro2.mdl", "models/Electro.mdl" } new const _CrowbarModels[][] = { "models/p_crowbar.mdl", "models/v_crowbar.mdl" } new const _FistSounds[][] = { "weapons/cbar_hitbod2.wav", "weapons/cbar_hitbod1.wav", "weapons/bullet_hit1.wav", "weapons/bullet_hit2.wav" } new const _RemoveEntities[][] = { "func_hostage_rescue", "info_hostage_rescue", "func_bomb_target", "info_bomb_target", "hostage_entity", "info_vip_start", "func_vip_safetyzone", "func_escapezone" } new const _WeaponsFree[][] = { "weapon_scout", "weapon_deagle", "weapon_mac10", "weapon_elite", "weapon_ak47", "weapon_m4a1", "weapon_mp5navy" } new const _WeaponsFreeCSW[] = { CSW_SCOUT, CSW_DEAGLE, CSW_MAC10, CSW_ELITE, CSW_AK47, CSW_M4A1, CSW_MP5NAVY } new const _WeaponsFreeAmmo[] = { 90, 35, 100, 120, 90, 90, 120 } new const _Duel[][_duel] = { { "Deagle", CSW_DEAGLE, "weapon_deagle", "JBE_MENU_LASTREQ_OPT4", "JBE_MENU_LASTREQ_SEL4" }, { "Scout", CSW_SCOUT, "weapon_scout", "JBE_MENU_LASTREQ_OPT5", "JBE_MENU_LASTREQ_SEL5" }, { "Grenades", CSW_HEGRENADE, "weapon_hegrenade", "JBE_MENU_LASTREQ_OPT6", "JBE_MENU_LASTREQ_SEL6" }, { "Awp", CSW_AWP, "weapon_awp", "JBE_MENU_LASTREQ_OPT7", "JBE_MENU_LASTREQ_SEL7" } } // Reasons new const g_Reasons[][] = { "", "JBE_PRISONER_REASON_1", "JBE_PRISONER_REASON_2", "JBE_PRISONER_REASON_3", "JBE_PRISONER_REASON_4", "JBE_PRISONER_REASON_5", "JBE_PRISONER_REASON_6" } // HudSync: 0=ttinfo / 1=info / 2=simon / 3=ctinfo / 4=player / 5=day / 6=center / 7=help / 8=timer new const g_HudSync[][_hud] = { {0, 0.6, 0.2, 2.0}, {0, -1.0, 0.7, 5.0}, {0, 0.1, 0.2, 2.0}, {0, 0.1, 0.3, 2.0}, {0, -1.0, 0.9, 3.0}, {0, 0.6, 0.1, 3.0}, {0, -1.0, 0.6, 3.0}, {0, 0.8, 0.3, 20.0}, {0, -1.0, 0.4, 3.0} } // Colors: 0:Simon / 1:Freeday / 2:CT Duel / 3:TT Duel new const g_Colors[][3] = { {0, 255, 0}, {255, 140, 0}, {0, 0, 255}, {255, 0, 0} } new CsTeams:g_PlayerTeam[33] new Float:g_SimonRandom new Trie:g_CellManagers new g_HelpText[512] new g_JailDay new g_PlayerJoin new g_PlayerReason[33] new g_PlayerSpect[33] new g_PlayerSimon[33] new g_PlayerNomic new g_PlayerWanted new g_PlayerCrowbar new g_PlayerRevolt new g_PlayerHelp new g_PlayerFreeday new g_PlayerLast new g_FreedayAuto new g_FreedayNext new g_TeamCount[CsTeams] new g_TeamAlive[CsTeams] new g_BoxStarted new g_CrowbarCount new g_Simon new g_SimonAllowed new g_SimonTalking new g_SimonVoice new g_RoundStarted new g_LastDenied new g_Freeday new g_BlockWeapons new g_RoundEnd new g_Duel new g_DuelA new g_DuelB new g_SafeTime new g_Buttons[10] public plugin_init() { unregister_forward(FM_Spawn, gp_PrecacheSpawn) unregister_forward(FM_KeyValue, gp_PrecacheKeyValue) register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) register_cvar(PLUGIN_CVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY) register_dictionary("jbextreme.txt") g_MsgStatusText = get_user_msgid("StatusText") g_MsgStatusIcon = get_user_msgid("StatusIcon") g_MsgVGUIMenu = get_user_msgid("VGUIMenu") g_MsgShowMenu = get_user_msgid("ShowMenu") g_MsgMOTD = get_user_msgid("MOTD") g_MsgClCorpse = get_user_msgid("ClCorpse") register_message(g_MsgStatusText, "msg_statustext") register_message(g_MsgStatusIcon, "msg_statusicon") register_message(g_MsgVGUIMenu, "msg_vguimenu") register_message(g_MsgShowMenu, "msg_showmenu") register_message(g_MsgMOTD, "msg_motd") register_message(g_MsgClCorpse, "msg_clcorpse") register_event("CurWeapon", "current_weapon", "be", "1=1", "2=29") register_event("StatusValue", "player_status", "be", "1=2", "2!0") register_event("StatusValue", "player_status", "be", "1=1", "2=0") register_impulse(100, "impulse_100") RegisterHam(Ham_Spawn, "player", "player_spawn", 1) RegisterHam(Ham_TakeDamage, "player", "player_damage") RegisterHam(Ham_TraceAttack, "player", "player_attack") RegisterHam(Ham_TraceAttack, "func_button", "button_attack") RegisterHam(Ham_Killed, "player", "player_killed", 1) RegisterHam(Ham_Touch, "weapon_hegrenade", "player_touchweapon") RegisterHam(Ham_Touch, "weaponbox", "player_touchweapon") RegisterHam(Ham_Touch, "armoury_entity", "player_touchweapon") register_forward(FM_SetClientKeyValue, "set_client_kv") register_forward(FM_EmitSound, "sound_emit") register_forward(FM_Voice_SetClientListening, "voice_listening") register_forward(FM_CmdStart, "player_cmdstart", 1) register_logevent("round_end", 2, "1=Round_End") register_logevent("round_first", 2, "0=World triggered", "1&Restart_Round_") register_logevent("round_first", 2, "0=World triggered", "1=Game_Commencing") register_logevent("round_start", 2, "0=World triggered", "1=Round_Start") register_menucmd(register_menuid(TEAM_MENU), 51, "team_select") register_menucmd(register_menuid(TEAM_MENU2), 51, "team_select") register_clcmd("jointeam", "cmd_jointeam") register_clcmd("joinclass", "cmd_joinclass") register_clcmd("+simonvoice", "cmd_voiceon") register_clcmd("-simonvoice", "cmd_voiceoff") register_clcmd("say /fd", "cmd_freeday") register_clcmd("say /freeday", "cmd_freeday") register_clcmd("say /day", "cmd_freeday") register_clcmd("say /lr", "cmd_lastrequest") register_clcmd("say /lastrequest", "cmd_lastrequest") register_clcmd("say /duel", "cmd_lastrequest") register_clcmd("say /simon", "cmd_simon") register_clcmd("say /open", "cmd_open") register_clcmd("say /nomic", "cmd_nomic") register_clcmd("say /box", "cmd_box") register_clcmd("say /help", "cmd_help") register_clcmd("jbe_freeday", "adm_freeday", ADMIN_KICK) register_concmd("jbe_nomic", "adm_nomic", ADMIN_KICK) register_concmd("jbe_open", "adm_open", ADMIN_KICK) register_concmd("jbe_box", "adm_box", ADMIN_KICK) gp_GlowModels = register_cvar("jbe_glowmodels", "0") gp_SimonSteps = register_cvar("jbe_simonsteps", "1") gp_CrowbarMul = register_cvar("jbe_crowbarmultiplier", "25.0") gp_CrowbarMax = register_cvar("jbe_maxcrowbar", "1") gp_TeamRatio = register_cvar("jbe_teamratio", "3") gp_TeamChange = register_cvar("jbe_teamchange", "0") // 0-disable team change for tt / 1-enable team change gp_CtMax = register_cvar("jbe_maxct", "6") gp_BoxMax = register_cvar("jbe_boxmax", "6") gp_RetryTime = register_cvar("jbe_retrytime", "10.0") gp_RoundMax = register_cvar("jbe_freedayround", "240.0") gp_AutoLastresquest = register_cvar("jbe_autolastrequest", "1") gp_LastRequest = register_cvar("jbe_lastrequest", "1") gp_Motd = register_cvar("jbe_motd", "1") gp_SpectRounds = register_cvar("jbe_spectrounds", "3") gp_NosimonRounds = register_cvar("jbe_nosimonrounds", "7") gp_SimonRandom = register_cvar("jbe_randomsimon", "0") gp_AutoOpen = register_cvar("jbe_autoopen", "1") gp_TalkMode = register_cvar("jbe_talkmode", "2") // 0-alltak / 1-tt talk / 2-tt no talk gp_VoiceBlock = register_cvar("jbe_blockvoice", "2") // 0-dont block / 1-block voicerecord / 2-block voicerecord except simon gp_ButtonShoot = register_cvar("jbe_buttonshoot", "1") // 0-standard / 1-func_button shoots! g_fwdSimonSelected = CreateMultiForward("jb_simon_selected", ET_IGNORE, FP_CELL) g_fwdSimonReset = CreateMultiForward("jb_simon_reset", ET_IGNORE, FP_CELL) g_MaxClients = get_global_int(GL_maxClients) for(new i = 0; i < sizeof(g_HudSync); i++) g_HudSync[i][_hudsync] = CreateHudSyncObj() formatex(g_HelpText, charsmax(g_HelpText), "%L^n^n%L^n^n%L^n^n%L", LANG_SERVER, "JBE_HELP_TITLE", LANG_SERVER, "JBE_HELP_BINDS", LANG_SERVER, "JBE_HELP_GUARD_CMDS", LANG_SERVER, "JBE_HELP_PRISONER_CMDS") setup_buttons() } public plugin_precache() { static i precache_model("models/player/jbemodel/jbemodel.mdl") for(i = 0; i < sizeof(_FistModels); i++) precache_model(_FistModels[i]) for(i = 0; i < sizeof(_ElectroModels); i++) precache_model(_ElectroModels[i]) for(i = 0; i < sizeof(_CrowbarModels); i++) precache_model(_CrowbarModels[i]) for(i = 0; i < sizeof(_FistSounds); i++) precache_sound(_FistSounds[i]) precache_sound("jbextreme/nm_goodbadugly.wav") precache_sound("jbextreme/brass_bell_C.wav") g_CellManagers = TrieCreate() gp_PrecacheSpawn = register_forward(FM_Spawn, "precache_spawn", 1) gp_PrecacheKeyValue = register_forward(FM_KeyValue, "precache_keyvalue", 1) } public precache_spawn(ent) { if(is_valid_ent(ent)) { static szClass[33] entity_get_string(ent, EV_SZ_classname, szClass, sizeof(szClass)) for(new i = 0; i < sizeof(_RemoveEntities); i++) if(equal(szClass, _RemoveEntities[i])) remove_entity(ent) } } public precache_keyvalue(ent, kvd_handle) { static info[32] if(!is_valid_ent(ent)) return FMRES_IGNORED get_kvd(kvd_handle, KV_ClassName, info, charsmax(info)) if(!equal(info, "multi_manager")) return FMRES_IGNORED get_kvd(kvd_handle, KV_KeyName, info, charsmax(info)) TrieSetCell(g_CellManagers, info, ent) return FMRES_IGNORED } public client_putinserver(id) { clear_bit(g_PlayerJoin, id) clear_bit(g_PlayerHelp, id) clear_bit(g_PlayerCrowbar, id) clear_bit(g_PlayerNomic, id) clear_bit(g_PlayerWanted, id) clear_bit(g_SimonTalking, id) clear_bit(g_SimonVoice, id) g_PlayerSpect[id] = 0 g_PlayerSimon[id] = 0 } public client_disconnect(id) { if(g_Simon == id) { g_Simon = 0 ClearSyncHud(0, g_HudSync[2][_hudsync]) player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_HASGONE") ExecuteForward(g_fwdSimonReset, g_iSimonReturn, JBSimonReset_Disconnect) } else if(g_PlayerLast == id || (g_Duel && (id == g_DuelA || id == g_DuelB))) { g_Duel = 0 g_DuelA = 0 g_DuelB = 0 g_LastDenied = 0 g_BlockWeapons = 0 g_PlayerLast = 0 } team_count() } public client_PostThink(id) { if(id != g_Simon || !gc_SimonSteps || !is_user_alive(id) || !(entity_get_int(id, EV_INT_flags) & FL_ONGROUND) || entity_get_int(id, EV_ENT_groundentity)) return PLUGIN_CONTINUE static Float:origin[3] static Float:last[3] entity_get_vector(id, EV_VEC_origin, origin) if(get_distance_f(origin, last) < 32.0) { return PLUGIN_CONTINUE } vec_copy(origin, last) if(entity_get_int(id, EV_INT_bInDuck)) origin[2] -= 18.0 else origin[2] -= 36.0 message_begin(MSG_BROADCAST, SVC_TEMPENTITY, {0,0,0}, 0) write_byte(TE_WORLDDECAL) write_coord(floatround(origin[0])) write_coord(floatround(origin[1])) write_coord(floatround(origin[2])) write_byte(105) message_end() return PLUGIN_CONTINUE } public msg_statustext(msgid, dest, id) { return PLUGIN_HANDLED } public msg_statusicon(msgid, dest, id) { static icon[5] get_msg_arg_string(2, icon, charsmax(icon)) if(icon[0] == 'b' && icon[2] == 'y' && icon[3] == 'z') { set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0)) return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public msg_vguimenu(msgid, dest, id) { static msgarg1 static CsTeams:team msgarg1 = get_msg_arg_int(1) if(msgarg1 == 2) { team = cs_get_user_team(id) if((team == CS_TEAM_T) && !is_user_admin(id) && (is_user_alive(id) || !get_pcvar_num(gp_TeamChange))) { client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE") return PLUGIN_HANDLED } show_menu(id, 51, TEAM_MENU, -1) return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public msg_showmenu(msgid, dest, id) { static msgarg1, roundloop static CsTeams:team msgarg1 = get_msg_arg_int(1) if(msgarg1 != 531 && msgarg1 != 563) return PLUGIN_CONTINUE roundloop = floatround(get_pcvar_float(gp_RetryTime) / 2) team = cs_get_user_team(id) if(team == CS_TEAM_T) { if(!is_user_admin(id) && (is_user_alive(id) || (g_RoundStarted >= roundloop) || !get_pcvar_num(gp_TeamChange))) { client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE") return PLUGIN_HANDLED } else { show_menu(id, 51, TEAM_MENU, -1) return PLUGIN_HANDLED } } else { show_menu(id, 51, TEAM_MENU, -1) return PLUGIN_HANDLED } #if AMXX_VERSION_NUM <183 return PLUGIN_CONTINUE #endif } public msg_motd(msgid, dest, id) { if(get_pcvar_num(gp_Motd)) return PLUGIN_HANDLED return PLUGIN_CONTINUE } public msg_clcorpse(msgid, dest, id) { return PLUGIN_HANDLED } public current_weapon(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE if(get_bit(g_PlayerCrowbar, id)) { set_pev(id, pev_viewmodel2, _CrowbarModels[1]) set_pev(id, pev_weaponmodel2, _CrowbarModels[0]) } else { if(cs_get_user_team(id) == CS_TEAM_CT) { set_pev(id, pev_viewmodel2, _ElectroModels[1]) set_pev(id, pev_weaponmodel2, _ElectroModels[0]) } else { set_pev(id, pev_viewmodel2, _FistModels[1]) set_pev(id, pev_weaponmodel2, _FistModels[0]) } } return PLUGIN_CONTINUE } public player_status(id) { static type, player, CsTeams:team, name[32], health type = read_data(1) player = read_data(2) switch(type) { case(1): { ClearSyncHud(id, g_HudSync[1][_hudsync]) } case(2): { team = cs_get_user_team(player) if((team != CS_TEAM_T) && (team != CS_TEAM_CT)) return PLUGIN_HANDLED health = get_user_health(player) get_user_name(player, name, charsmax(name)) player_hudmessage(id, 4, 2.0, {0, 255, 0}, "%L", LANG_SERVER, (team == CS_TEAM_T) ? "JBE_PRISONER_STATUS" : "JBE_GUARD_STATUS", name, health) } } return PLUGIN_HANDLED } public impulse_100(id) { if(cs_get_user_team(id) == CS_TEAM_T) return PLUGIN_HANDLED return PLUGIN_CONTINUE } public player_spawn(id) { static CsTeams:team if(!is_user_connected(id)) return HAM_IGNORED set_pdata_float(id, m_fNextHudTextArgsGameTime, get_gametime() + 999999.0) player_strip_weapons(id) if(g_RoundEnd) { g_RoundEnd = 0 g_JailDay++ } set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) clear_bit(g_PlayerCrowbar, id) clear_bit(g_PlayerWanted, id) team = cs_get_user_team(id) switch(team) { case(CS_TEAM_T): { g_PlayerLast = 0 if(!g_PlayerReason[id]) g_PlayerReason[id] = random_num(1, 6) player_hudmessage(id, 0, 5.0, {255, 0, 255}, "%L %L", LANG_SERVER, "JBE_PRISONER_REASON", LANG_SERVER, g_Reasons[g_PlayerReason[id]]) set_user_info(id, "model", "jbemodel") entity_set_int(id, EV_INT_body, 2) if(is_freeday() || get_bit(g_FreedayAuto, id)) { freeday_set(0, id) clear_bit(g_FreedayAuto, id) } else { entity_set_int(id, EV_INT_skin, random_num(0, 2)) } if(g_CrowbarCount < get_pcvar_num(gp_CrowbarMax)) { if(random_num(0, g_MaxClients) > (g_MaxClients / 2)) { g_CrowbarCount++ set_bit(g_PlayerCrowbar, id) } } cs_set_user_armor(id, 0, CS_ARMOR_NONE) } case(CS_TEAM_CT): { g_PlayerSimon[id]++ set_user_info(id, "model", "jbemodel") entity_set_int(id, EV_INT_body, 3) cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM) } } first_join(id) return HAM_IGNORED } public player_damage(victim, ent, attacker, Float:damage, bits) { if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker) return HAM_IGNORED switch(g_Duel) { case(0): { if(attacker == ent && get_user_weapon(attacker) == CSW_KNIFE && get_bit(g_PlayerCrowbar, attacker) && cs_get_user_team(victim) != CS_TEAM_T) { SetHamParamFloat(4, damage * gc_CrowbarMul) return HAM_OVERRIDE } } case(2): { if(attacker != g_PlayerLast) return HAM_SUPERCEDE } default: { if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA)) return HAM_IGNORED return HAM_SUPERCEDE } } return HAM_IGNORED } public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits) { static CsTeams:vteam, CsTeams:ateam if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker) return HAM_IGNORED vteam = cs_get_user_team(victim) ateam = cs_get_user_team(attacker) if(ateam == CS_TEAM_CT && vteam == CS_TEAM_CT) return HAM_SUPERCEDE switch(g_Duel) { case(0): { if(ateam == CS_TEAM_CT && vteam == CS_TEAM_T) { if(get_bit(g_PlayerRevolt, victim)) { clear_bit(g_PlayerRevolt, victim) hud_status(0) } return HAM_IGNORED } } case(2): { if(attacker != g_PlayerLast) return HAM_SUPERCEDE } default: { if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA)) return HAM_IGNORED return HAM_SUPERCEDE } } if(ateam == CS_TEAM_T && vteam == CS_TEAM_T && !g_BoxStarted) return HAM_SUPERCEDE if(ateam == CS_TEAM_T && vteam == CS_TEAM_CT) { if(!g_PlayerRevolt) revolt_start() set_bit(g_PlayerRevolt, attacker) } return HAM_IGNORED } public button_attack(button, id, Float:damage, Float:direction[3], tracehandle, damagebits) { if(is_valid_ent(button) && gc_ButtonShoot) { ExecuteHamB(Ham_Use, button, id, 0, 2, 1.0) entity_set_float(button, EV_FL_frame, 0.0) } return HAM_IGNORED } public player_killed(victim, attacker, shouldgib) { static CsTeams:vteam, CsTeams:kteam if(!(0 < attacker <= g_MaxClients) || !is_user_connected(attacker)) kteam = CS_TEAM_UNASSIGNED else kteam = cs_get_user_team(attacker) vteam = cs_get_user_team(victim) if(g_Simon == victim) { g_Simon = 0 ClearSyncHud(0, g_HudSync[2][_hudsync]) player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_KILLED") ExecuteForward(g_fwdSimonReset, g_iSimonReturn, JBSimonReset_Killed) } switch(g_Duel) { case(0): { switch(vteam) { case(CS_TEAM_CT): { if(kteam == CS_TEAM_T && !get_bit(g_PlayerWanted, attacker)) { set_bit(g_PlayerWanted, attacker) entity_set_int(attacker, EV_INT_skin, 4) } } case(CS_TEAM_T): { clear_bit(g_PlayerRevolt, victim) clear_bit(g_PlayerWanted, victim) } } } default: { if(g_Duel != 2 && (attacker == g_DuelA || attacker == g_DuelB)) { set_user_rendering(victim, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) set_user_rendering(attacker, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) g_Duel = 0 g_LastDenied = 0 g_BlockWeapons = 0 g_PlayerLast = 0 team_count() } } } hud_status(0) return HAM_IGNORED } public player_touchweapon(id, ent) { static model[32], class[32] if(g_BlockWeapons) return HAM_SUPERCEDE if(is_valid_ent(id) && g_Duel != 6 && is_user_alive(ent) && cs_get_user_team(ent) == CS_TEAM_CT) { entity_get_string(id, EV_SZ_model, model, charsmax(model)) if(model[7] == 'w' && model[9] == 'h' && model[10] == 'e' && model[11] == 'g') { entity_get_string(id, EV_SZ_classname, class, charsmax(class)) if(equal(class, "weapon_hegrenade")) remove_entity(id) return HAM_SUPERCEDE } } return HAM_IGNORED } public set_client_kv(id, const info[], const key[]) { if(equal(key, "model")) return FMRES_SUPERCEDE return FMRES_IGNORED } public sound_emit(id, channel, sample[]) { if(is_user_alive(id) && equal(sample, "weapons/knife_", 14)) { switch(sample[17]) { case('b'): { emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) } case('w'): { emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_LOW) } case('1', '2'): { emit_sound(id, CHAN_WEAPON, "weapons/bullet_hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM) } } return FMRES_SUPERCEDE } return FMRES_IGNORED } public voice_listening(receiver, sender, bool:listen) { if((receiver == sender)) return FMRES_IGNORED if(is_user_admin(sender)) { engfunc(EngFunc_SetClientListening, receiver, sender, true) return FMRES_SUPERCEDE } switch(gc_VoiceBlock) { case(2): { if((sender != g_Simon) && (!get_bit(g_SimonVoice, sender) && gc_VoiceBlock)) { engfunc(EngFunc_SetClientListening, receiver, sender, false) return FMRES_SUPERCEDE } } case(1): { if(!get_bit(g_SimonVoice, sender) && gc_VoiceBlock) { engfunc(EngFunc_SetClientListening, receiver, sender, false) return FMRES_SUPERCEDE } } } if(!is_user_alive(sender)) { engfunc(EngFunc_SetClientListening, receiver, sender, false) return FMRES_SUPERCEDE } if(sender == g_Simon) { engfunc(EngFunc_SetClientListening, receiver, sender, true) return FMRES_SUPERCEDE } listen = true if(g_SimonTalking && (sender != g_Simon)) { listen = false } else { static CsTeams:steam steam = cs_get_user_team(sender) switch(gc_TalkMode) { case(2): { listen = (steam == CS_TEAM_CT) } case(1): { listen = (steam == CS_TEAM_CT || steam == CS_TEAM_T) } } } engfunc(EngFunc_SetClientListening, receiver, sender, listen) return FMRES_SUPERCEDE } public player_cmdstart(id, uc, random) { if(g_Duel > 3) { cs_set_user_bpammo(id, _Duel[g_Duel - 4][_csw], 1) } } public round_first() { g_JailDay = 0 for(new i = 1; i <= g_MaxClients; i++) g_PlayerSimon[i] = 0 set_cvar_num("sv_alltalk", 1) set_cvar_num("mp_roundtime", 9) set_cvar_num("mp_limitteams", 0) set_cvar_num("mp_autoteambalance", 0) set_cvar_num("mp_tkpunish", 0) set_cvar_num("mp_friendlyfire", 1) round_end() } public round_end() { static CsTeams:team static maxnosimon, spectrounds g_SafeTime = 0 g_PlayerRevolt = 0 g_PlayerFreeday = 0 g_PlayerLast = 0 g_BoxStarted = 0 g_CrowbarCount = 0 g_Simon = 0 g_SimonAllowed = 0 g_RoundStarted = 0 g_LastDenied = 0 g_BlockWeapons = 0 g_TeamCount[CS_TEAM_T] = 0 g_TeamCount[CS_TEAM_CT] = 0 g_Freeday = 0 g_FreedayNext = (random_num(0,99) >= 95) g_RoundEnd = 1 g_Duel = 0 ExecuteForward(g_fwdSimonReset, g_iSimonReturn, JBSimonReset_RoundEnd) remove_task(TASK_STATUS) remove_task(TASK_FREEDAY) remove_task(TASK_FREEEND) remove_task(TASK_ROUND) maxnosimon = get_pcvar_num(gp_NosimonRounds) spectrounds = get_pcvar_num(gp_SpectRounds) for(new i = 1; i <= g_MaxClients; i++) { if(!is_user_connected(i)) continue menu_cancel(i) team = cs_get_user_team(i) player_strip_weapons(i) switch(team) { case(CS_TEAM_CT): { if(g_PlayerSimon[i] > maxnosimon) { cmd_nomic(i) } } case(CS_TEAM_SPECTATOR,CS_TEAM_UNASSIGNED): { g_PlayerSpect[i]++ if(g_PlayerSpect[i] > spectrounds) { client_cmd(i, "disconnect") server_print("JBE Disconnected spectator client #%i", i) } else { show_menu(i, 51, TEAM_MENU, -1) } } } } for(new i = 0; i < sizeof(g_HudSync); i++) ClearSyncHud(0, g_HudSync[i][_hudsync]) } public round_start() { if(g_RoundEnd) return team_count() if(!g_Simon && is_freeday()) { g_Freeday = 1 emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) check_freeday(TASK_FREEDAY) } else { set_task(60.0, "check_freeday", TASK_FREEDAY) } set_task(HUD_DELAY, "hud_status", TASK_STATUS, _, _, "b") set_task(get_pcvar_float(gp_RetryTime) + 1.0, "safe_time", TASK_SAFETIME) set_task(120.0, "freeday_end", TASK_FREEDAY) g_SimonRandom = get_pcvar_num(gp_SimonRandom) ? random_float(15.0, 45.0) : 0.0 g_SimonAllowed = 1 g_FreedayNext = 0 } public cmd_jointeam(id) { return PLUGIN_HANDLED } public cmd_joinclass(id) { return PLUGIN_HANDLED } public cmd_voiceon(id) { client_cmd(id, "+voicerecord") set_bit(g_SimonVoice, id) if(g_Simon == id || is_user_admin(id)) set_bit(g_SimonTalking, id) return PLUGIN_HANDLED } public cmd_voiceoff(id) { client_cmd(id, "-voicerecord") clear_bit(g_SimonVoice, id) if(g_Simon == id || is_user_admin(id)) clear_bit(g_SimonTalking, id) return PLUGIN_HANDLED } public cmd_simon(id) { static CsTeams:team, name[32] if(!is_user_connected(id)) return PLUGIN_HANDLED team = cs_get_user_team(id) if(g_SimonAllowed && !g_Freeday && is_user_alive(id) && team == CS_TEAM_CT && !g_Simon) { g_Simon = id get_user_name(id, name, charsmax(name)) entity_set_int(id, EV_INT_body, 1) ExecuteForward(g_fwdSimonSelected, g_iSimonReturn, id) g_PlayerSimon[id]-- if(get_pcvar_num(gp_GlowModels)) player_glow(id, g_Colors[0]) hud_status(0) } return PLUGIN_HANDLED } public cmd_open(id) { if(id == g_Simon) jail_open() return PLUGIN_HANDLED } public cmd_nomic(id) { static CsTeams:team team = cs_get_user_team(id) if(team == CS_TEAM_CT) { server_print("JBE Transfered guard to prisoners team client #%i", id) if(g_Simon == id) { g_Simon = 0 player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_TRANSFERED") ExecuteForward(g_fwdSimonReset, g_iSimonReturn, JBSimonReset_Nomic) } if(!is_user_admin(id)) set_bit(g_PlayerNomic, id) user_silentkill(id) cs_set_user_team(id, CS_TEAM_T) } return PLUGIN_HANDLED } public cmd_box(id) { static i if((id < 0) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)) { if(g_TeamAlive[CS_TEAM_T] <= get_pcvar_num(gp_BoxMax) && g_TeamAlive[CS_TEAM_T] > 1) { for(i = 1; i <= g_MaxClients; i++) if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T) set_user_health(i, 100) set_cvar_num("mp_tkpunish", 0) set_cvar_num("mp_friendlyfire", 1) g_BoxStarted = 1 player_hudmessage(0, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_BOX") } else { player_hudmessage(id, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_CANTBOX") } } return PLUGIN_HANDLED } public cmd_help(id) { if(id > g_MaxClients) id -= TASK_HELP remove_task(TASK_HELP + id) switch(get_bit(g_PlayerHelp, id)) { case(0): { set_bit(g_PlayerHelp, id) player_hudmessage(id, 7, 15.0, {230, 100, 10}, "%s", g_HelpText) set_task(15.0, "cmd_help", TASK_HELP + id) } default: { clear_bit(g_PlayerHelp, id) ClearSyncHud(id, g_HudSync[7][_hudsync]) } } } public cmd_freeday(id) { static menu, menuname[32], option[64] if(!is_freeday() && ((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id))) { formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_FREEDAY") menu = menu_create(menuname, "freeday_choice") formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_PLAYER") menu_additem(menu, option, "1", 0) formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_ALL") menu_additem(menu, option, "2", 0) menu_display(id, menu) } return PLUGIN_HANDLED } public cmd_freeday_player(id) { if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id)) menu_players(id, CS_TEAM_T, id, 1, "freeday_select", "%L", LANG_SERVER, "JBE_MENU_FREEDAY") return PLUGIN_CONTINUE } public cmd_lastrequest(id) { static i, num[5], menu, menuname[32], option[64] if(!get_pcvar_num(gp_LastRequest) || g_Freeday || g_LastDenied || id != g_PlayerLast || g_RoundEnd || get_bit(g_PlayerWanted, id) || get_bit(g_PlayerFreeday, id) || !is_user_alive(id)) return PLUGIN_CONTINUE formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_LASTREQ") menu = menu_create(menuname, "lastrequest_select") formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT1") menu_additem(menu, option, "1", 0) formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT2") menu_additem(menu, option, "2", 0) formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT3") menu_additem(menu, option, "3", 0) for(i = 0; i < sizeof(_Duel); i++) { num_to_str(i + 4, num, charsmax(num)) formatex(option, charsmax(option), "%L", LANG_SERVER, _Duel[i][_opt]) menu_additem(menu, option, num, 0) } menu_display(id, menu) return PLUGIN_CONTINUE } public adm_freeday(id) { static player, user[32] if(!is_user_admin(id)) return PLUGIN_CONTINUE read_argv(1, user, charsmax(user)) player = cmd_target(id, user, 2) if(is_user_connected(player) && cs_get_user_team(player) == CS_TEAM_T) { freeday_set(id, player) } return PLUGIN_HANDLED } public adm_nomic(id) { static player, user[32] if(id == 0 || is_user_admin(id)) { read_argv(1, user, charsmax(user)) player = cmd_target(id, user, 3) if(is_user_connected(player)) { cmd_nomic(player) } } return PLUGIN_HANDLED } public adm_open(id) { if(!is_user_admin(id)) return PLUGIN_CONTINUE jail_open() return PLUGIN_HANDLED } public adm_box(id) { if(!is_user_admin(id)) return PLUGIN_CONTINUE cmd_box(-1) return PLUGIN_HANDLED } public team_select(id, key) { static CsTeams:team, roundloop, admin roundloop = get_pcvar_num(gp_RetryTime) / 2 team = cs_get_user_team(id) admin = is_user_admin(id) team_count() if(!admin && (team == CS_TEAM_UNASSIGNED) && (g_RoundStarted >= roundloop) && g_TeamCount[CS_TEAM_CT] && g_TeamCount[CS_TEAM_T] && !is_user_alive(id)) { team_join(id, CS_TEAM_SPECTATOR) client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTJOIN") return PLUGIN_HANDLED } switch(key) { case(0): { if(team == CS_TEAM_T) return PLUGIN_HANDLED g_PlayerReason[id] = random_num(1, 6) team_join(id, CS_TEAM_T) } case(1): { if(team == CS_TEAM_CT || (!admin && get_bit(g_PlayerNomic, id))) return PLUGIN_HANDLED if(g_TeamCount[CS_TEAM_CT] < ctcount_allowed() || admin) team_join(id, CS_TEAM_CT) else client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CTFULL") } case(5): { user_silentkill(id) team_join(id, CS_TEAM_SPECTATOR) } } return PLUGIN_HANDLED } public team_join(id, CsTeams:team) { static restore, vgui, msgblock restore = get_pdata_int(id, m_iVGUI) vgui = restore & (1<<0) if(vgui) set_pdata_int(id, m_iVGUI, restore & ~(1<<0)) switch(team) { case CS_TEAM_SPECTATOR: { msgblock = get_msg_block(g_MsgShowMenu) set_msg_block(g_MsgShowMenu, BLOCK_ONCE) dllfunc(DLLFunc_ClientPutInServer, id) set_msg_block(g_MsgShowMenu, msgblock) set_pdata_int(id, m_fGameHUDInitialized, 1) engclient_cmd(id, "jointeam", "6") } case CS_TEAM_T, CS_TEAM_CT: { msgblock = get_msg_block(g_MsgShowMenu) set_msg_block(g_MsgShowMenu, BLOCK_ONCE) engclient_cmd(id, "jointeam", (team == CS_TEAM_CT) ? "2" : "1") engclient_cmd(id, "joinclass", "1") set_msg_block(g_MsgShowMenu, msgblock) g_PlayerSpect[id] = 0 } } if(vgui) set_pdata_int(id, m_iVGUI, restore) } public team_count() { static CsTeams:team, last g_TeamCount[CS_TEAM_UNASSIGNED] = 0 g_TeamCount[CS_TEAM_T] = 0 g_TeamCount[CS_TEAM_CT] = 0 g_TeamCount[CS_TEAM_SPECTATOR] = 0 g_TeamAlive[CS_TEAM_UNASSIGNED] = 0 g_TeamAlive[CS_TEAM_T] = 0 g_TeamAlive[CS_TEAM_CT] = 0 g_TeamAlive[CS_TEAM_SPECTATOR] = 0 for(new i = 1; i <= g_MaxClients; i++) { if(is_user_connected(i)) { team = cs_get_user_team(i) g_TeamCount[team]++ g_PlayerTeam[i] = team if(is_user_alive(i)) { g_TeamAlive[team]++ if(team == CS_TEAM_T) last = i } } else { g_PlayerTeam[i] = CS_TEAM_UNASSIGNED } } if(g_TeamAlive[CS_TEAM_T] == 1) { if(last != g_PlayerLast && g_SafeTime) { prisoner_last(last) } } else { if(g_Duel || g_DuelA || g_DuelB) { if(is_user_alive(g_DuelA)) { set_user_rendering(g_DuelA, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) player_strip_weapons(g_DuelA) } if(is_user_alive(g_DuelB)) { set_user_rendering(g_DuelB, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) player_strip_weapons(g_DuelB) } } g_PlayerLast = 0 g_DuelA = 0 g_DuelB = 0 g_Duel = 0 } } public revolt_start() { client_cmd(0,"speak ambience/siren") set_task(8.0, "stop_sound") hud_status(0) } public stop_sound(task) { client_cmd(0, "stopsound") } public hud_status(task) { static i, n new name[32], szStatus[64], wanted[1024] if(g_RoundStarted < (get_pcvar_num(gp_RetryTime) / 2)) g_RoundStarted++ if(!g_Freeday && !g_Simon && g_SimonAllowed && (0.0 < g_SimonRandom < get_gametime())) { cmd_simon(random_num(1, g_MaxClients)) } n = 0 formatex(wanted, charsmax(wanted), "%L", LANG_SERVER, "JBE_PRISONER_WANTED") n = strlen(wanted) for(i = 0; i < g_MaxClients; i++) { if(get_bit(g_PlayerWanted, i) && is_user_alive(i) && n < charsmax(wanted)) { get_user_name(i, name, charsmax(name)) n += copy(wanted[n], charsmax(wanted) - n, "^n^t") n += copy(wanted[n], charsmax(wanted) - n, name) } } team_count() formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "JBE_STATUS", g_TeamAlive[CS_TEAM_T], g_TeamCount[CS_TEAM_T]) message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0) write_byte(0) write_string(szStatus) message_end() if(g_Simon) { get_user_name(g_Simon, name, charsmax(name)) player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_SIMON_FOLLOW", name) } else if(g_Freeday) { player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_FREEDAY") } if(g_PlayerWanted) player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 25, 50}, "%s", wanted) else if(g_PlayerRevolt) player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 25, 50}, "%L", LANG_SERVER, "JBE_PRISONER_REVOLT") player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_DAY", g_JailDay) gc_TalkMode = get_pcvar_num(gp_TalkMode) gc_VoiceBlock = get_pcvar_num(gp_VoiceBlock) gc_SimonSteps = get_pcvar_num(gp_SimonSteps) gc_ButtonShoot = get_pcvar_num(gp_ButtonShoot) gc_CrowbarMul = get_pcvar_float(gp_CrowbarMul) } public safe_time(task) { g_SafeTime = 1 } public check_freeday(task) { static Float:roundmax, i if(!g_Simon && !g_PlayerLast) { g_Freeday = 1 hud_status(0) roundmax = get_pcvar_float(gp_RoundMax) if(roundmax > 0.0) { for(i = 1; i <= g_MaxClients; i++) { if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T) freeday_set(0, i) } emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDTIMER", floatround(roundmax - 60.0)) remove_task(TASK_ROUND) set_task(roundmax - 60.0, "check_end", TASK_ROUND) } } if(get_pcvar_num(gp_AutoOpen)) jail_open() } public freeday_end(task) { if(g_Freeday || g_PlayerFreeday) { emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDFREEDAY") } } public check_end(task) { team_count() for(new i = 1; i <= g_MaxClients; i++) { if(g_PlayerTeam[i] == CS_TEAM_T && is_user_alive(i)) { user_silentkill(i) cs_set_user_deaths(i, get_user_deaths(i) - 1) } } for(new i = 1; i <= g_MaxClients; i++) { if(g_PlayerTeam[i] == CS_TEAM_CT && is_user_alive(i)) { user_silentkill(i) cs_set_user_deaths(i, get_user_deaths(i) - 1) } } player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ROUNDEND") } public prisoner_last(id) { static name[32], Float:roundmax if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T) { roundmax = get_pcvar_float(gp_RoundMax) get_user_name(id, name, charsmax(name)) g_PlayerLast = id player_hudmessage(0, 6, 5.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_PRISONER_LAST", name) remove_task(TASK_ROUND) if(roundmax > 0.0) { player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDTIMER", floatround(roundmax - 60.0)) set_task(roundmax - 60.0, "check_end", TASK_ROUND) } if((g_TeamAlive[CS_TEAM_CT] > 0) && get_pcvar_num(gp_AutoLastresquest)) cmd_lastrequest(id) } } public freeday_select(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } static dst[32], data[5], player, access, callback menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback) player = str_to_num(data) freeday_set(id, player) return PLUGIN_HANDLED } public duel_knives(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) g_LastDenied = 0 return PLUGIN_HANDLED } static dst[32], data[5], access, callback, option[128], player, src[32] menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback) get_user_name(id, src, charsmax(src)) player = str_to_num(data) formatex(option, charsmax(option), "%L^n%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL3", src, LANG_SERVER, "JBE_MENU_DUEL_SEL", src, dst) player_hudmessage(0, 6, 3.0, {0, 255, 0}, option) g_DuelA = id clear_bit(g_PlayerCrowbar, id) player_strip_weapons(id) player_glow(id, g_Colors[3]) set_user_health(id, 100) g_DuelB = player player_strip_weapons(player) player_glow(player, g_Colors[2]) set_user_health(player, 100) g_BlockWeapons = 1 return PLUGIN_HANDLED } public duel_guns(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) g_LastDenied = 0 g_Duel = 0 return PLUGIN_HANDLED } static gun, dst[32], data[5], access, callback, option[128], player, src[32] menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback) get_user_name(id, src, charsmax(src)) player = str_to_num(data) formatex(option, charsmax(option), "%L^n%L", LANG_SERVER, _Duel[g_Duel - 4][_sel], src, LANG_SERVER, "JBE_MENU_DUEL_SEL", src, dst) emit_sound(0, CHAN_AUTO, "jbextreme/nm_goodbadugly.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) player_hudmessage(0, 6, 3.0, {0, 255, 0}, option) g_DuelA = id clear_bit(g_PlayerCrowbar, id) player_strip_weapons(id) gun = give_item(id, _Duel[g_Duel - 4][_entname]) cs_set_weapon_ammo(gun, 1) set_user_health(id, 100) set_user_godmode(id, 0) player_glow(id, g_Colors[3]) g_DuelB = player player_strip_weapons(player) gun = give_item(player, _Duel[g_Duel - 4][_entname]) cs_set_weapon_ammo(gun, 1) set_user_health(player, 100) set_user_godmode(player, 0) player_glow(player, g_Colors[2]) g_BlockWeapons = 1 return PLUGIN_HANDLED } } public freeday_choice(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } static dst[32], data[5], access, callback menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback) menu_destroy(menu) get_user_name(id, dst, charsmax(dst)) switch(data[0]) { case('1'): { cmd_freeday_player(id) } case('2'): { if((id == g_Simon) || is_user_admin(id)) { g_Simon = 0 get_user_name(id, dst, charsmax(dst)) ExecuteForward(g_fwdSimonReset, g_iSimonReturn, JBSimonReset_Freeday) client_print(0, print_console, "%s gives freeday for everyone", dst) server_print("JBE Client %i gives freeday for everyone", id) check_freeday(TASK_FREEDAY) } } } return PLUGIN_HANDLED } public lastrequest_select(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } static i, dst[32], data[5], access, callback, option[64] menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback) get_user_name(id, dst, charsmax(dst)) switch(data[0]) { case('1'): { formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL1", dst) player_hudmessage(0, 6, 3.0, {0, 255, 0}, option) set_bit(g_FreedayAuto, id) user_silentkill(id) } case('2'): { formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL2", dst) player_hudmessage(0, 6, 3.0, {0, 255, 0}, option) g_Duel = 2 player_strip_weapons_all() i = random_num(0, sizeof(_WeaponsFree) - 1) give_item(id, _WeaponsFree[i]) g_BlockWeapons = 1 cs_set_user_bpammo(id, _WeaponsFreeCSW[i], _WeaponsFreeAmmo[i]) } case('3'): { g_Duel = 3 menu_players(id, CS_TEAM_CT, 0, 1, "duel_knives", "%L", LANG_SERVER, "JBE_MENU_DUEL") } default: { g_Duel = str_to_num(data) menu_players(id, CS_TEAM_CT, 0, 1, "duel_guns", "%L", LANG_SERVER, "JBE_MENU_DUEL") } } g_LastDenied = 1 menu_destroy(menu) return PLUGIN_HANDLED } public setup_buttons() { new ent[3] new Float:origin[3] new info[32] new pos while((pos <= sizeof(g_Buttons)) && (ent[0] = engfunc(EngFunc_FindEntityByString, ent[0], "classname", "info_player_deathmatch"))) { pev(ent[0], pev_origin, origin) while((ent[1] = engfunc(EngFunc_FindEntityInSphere, ent[1], origin, CELL_RADIUS))) { if(!is_valid_ent(ent[1])) continue entity_get_string(ent[1], EV_SZ_classname, info, charsmax(info)) if(!equal(info, "func_door")) continue entity_get_string(ent[1], EV_SZ_targetname, info, charsmax(info)) if(!info[0]) continue if(TrieKeyExists(g_CellManagers, info)) { TrieGetCell(g_CellManagers, info, ent[2]) } else { ent[2] = engfunc(EngFunc_FindEntityByString, 0, "target", info) } if(is_valid_ent(ent[2]) && (in_array(ent[2], g_Buttons, sizeof(g_Buttons)) < 0)) { g_Buttons[pos] = ent[2] pos++ break } } } TrieDestroy(g_CellManagers) } stock in_array(needle, data[], size) { for(new i = 0; i < size; i++) { if(data[i] == needle) return i } return -1 } stock freeday_set(id, player) { static src[32], dst[32] get_user_name(player, dst, charsmax(dst)) if(is_user_alive(player) && !get_bit(g_PlayerWanted, player)) { set_bit(g_PlayerFreeday, player) entity_set_int(player, EV_INT_skin, 3) if(get_pcvar_num(gp_GlowModels)) player_glow(player, g_Colors[1]) if(0 < id <= g_MaxClients) { get_user_name(id, src, charsmax(src)) player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_GUARD_FREEDAYGIVE", src, dst) } else if(!is_freeday()) { player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_PRISONER_HASFREEDAY", dst) } } } stock first_join(id) { if(!get_bit(g_PlayerJoin, id)) { set_bit(g_PlayerJoin, id) clear_bit(g_PlayerHelp, id) set_task(5.0, "cmd_help", TASK_HELP + id) } } stock ctcount_allowed() { static count count = ((g_TeamCount[CS_TEAM_T] + g_TeamCount[CS_TEAM_CT]) / get_pcvar_num(gp_TeamRatio)) if(count < 2) count = 2 else if(count > get_pcvar_num(gp_CtMax)) count = get_pcvar_num(gp_CtMax) return count } stock player_hudmessage(id, hudid, Float:time = 0.0, color[3] = {0, 255, 0}, msg[], any:...) { static text[512], Float:x, Float:y x = g_HudSync[hudid][_x] y = g_HudSync[hudid][_y] if(time > 0) set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, time, 0.00, 0.00) else set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, g_HudSync[hudid][_time], 0.00, 0.00) vformat(text, charsmax(text), msg, 6) ShowSyncHudMsg(id, g_HudSync[hudid][_hudsync], text) } stock menu_players(id, CsTeams:team, skip, alive, callback[], title[], any:...) { static i, name[32], num[5], menu, menuname[32] vformat(menuname, charsmax(menuname), title, 7) menu = menu_create(menuname, callback) for(i = 1; i <= g_MaxClients; i++) { if(!is_user_connected(i) || (alive && !is_user_alive(i)) || (skip == i)) continue if(!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT) && (cs_get_user_team(i) == team))) { get_user_name(i, name, charsmax(name)) num_to_str(i, num, charsmax(num)) menu_additem(menu, name, num, 0) } } menu_display(id, menu) } stock player_glow(id, color[3], amount=40) { set_user_rendering(id, kRenderFxGlowShell, color[0], color[1], color[2], kRenderNormal, amount) } stock player_strip_weapons(id) { strip_user_weapons(id) give_item(id, "weapon_knife") set_pdata_int(id, m_iPrimaryWeapon, 0) } stock player_strip_weapons_all() { for(new i = 1; i <= g_MaxClients; i++) { if(is_user_alive(i)) { player_strip_weapons(i) } } } stock is_freeday() { return (g_FreedayNext || g_Freeday || (g_JailDay == 1)) } public jail_open() { static i for(i = 0; i < sizeof(g_Buttons); i++) { if(g_Buttons[i]) { ExecuteHamB(Ham_Use, g_Buttons[i], 0, 0, 1, 1.0) entity_set_float(g_Buttons[i], EV_FL_frame, 0.0) } } } public plugin_natives() { register_library("jbextreme-crx") register_native("get_jail_day", "_get_jail_day") register_native("get_players_in_team", "_get_players_in_team") register_native("is_block_weapons_enabled", "_is_block_weapons_enabled") register_native("is_box_started", "_is_box_started") register_native("is_freeday_next", "_is_freeday_next") register_native("is_global_freeday", "_is_global_freeday") register_native("is_last_denied", "_is_last_denied") register_native("is_player_last", "_is_player_last") register_native("is_simon_allowed", "_is_simon_allowed") register_native("is_user_freeday", "_is_user_freeday") register_native("is_user_nomic", "_is_user_nomic") register_native("is_user_revolt", "_is_user_revolt") register_native("is_user_simon", "_is_user_simon") register_native("is_user_simon_talking", "_is_user_simon_talking") register_native("is_user_simon_voice", "_is_user_simon_voice") register_native("is_user_wanted", "_is_user_wanted") register_native("open_jail_doors", "_open_jail_doors") register_native("set_user_freeday", "_set_user_freeday") } public bool:_is_user_simon(iPlugin, iParams) return g_Simon == get_param(1) public bool:_is_user_wanted(iPlugin, iParams) return bool:get_bit(g_PlayerWanted, get_param(1)) public bool:_is_user_revolt(iPlugin, iParams) return bool:get_bit(g_PlayerRevolt, get_param(1)) public bool:_is_user_nomic(iPlugin, iParams) return bool:get_bit(g_PlayerNomic, get_param(1)) public bool:_is_user_freeday(iPlugin, iParams) return bool:get_bit(g_PlayerFreeday, get_param(1)) public bool:_is_global_freeday(iPlugin, iParams) return bool:g_Freeday public bool:_is_freeday_next(iPlugin, iParams) return bool:g_FreedayNext public bool:_is_player_last(iPlugin, iParams) return g_PlayerLast == get_param(1) public bool:_is_simon_allowed(iPlugin, iParams) return bool:g_SimonAllowed public bool:_is_box_started(iPlugin, iParams) return bool:g_BoxStarted public bool:_is_user_simon_talking(iPlugin, iParams) return bool:get_bit(g_SimonTalking, get_param(1)) public bool:_is_user_simon_voice(iPlugin, iParams) return bool:get_bit(g_SimonVoice, get_param(1)) public bool:_is_last_denied(iPlugin, iParams) return bool:g_LastDenied public bool:_is_block_weapons_enabled(iPlugin, iParams) return bool:g_BlockWeapons public _open_jail_doors(iPlugin, iParams) jail_open() public _get_jail_day(iPlugin, iParams) return g_JailDay public _get_players_in_team(iPlugin, iParams) return get_param(2) ? (g_TeamAlive[CsTeams:get_param(1)]) : (g_TeamCount[CsTeams:get_param(1)]) public _set_user_freeday(iPlugin, iParams) freeday_set(get_param(2), get_param(1)) Przeczytaj cały wpis
  20. No teraz Andrzejek to żeś poleciał
  21. 100-150. Lipny hosting, widać na wykresach na GT kiedy ten goboosting jest a kiedy go nie ma.
  22. Witam, poszukuję Administracji na serwer w CS;GO[Opiekuna, Adminów, ewentualnie właściciela], 5vs5. Więcej informacji w wiadomości prywatnej lub steam : [Kliknij tutaj] Serwer jest nowy, ma niecałe 2 tygodnie, reklama na gosetti dojść dobra + goboosting. Gosetti: https://gosetti.pl/serwery/51.77.34.138:30022 Gametracker: https://www.gametracker.com/server_info/51.77.34.138:30022/ Forum: https://pykamy.pl/
  23. I've noticed that Special Infected controlled by AI have a variety of built-in changes over human controlled Special Infected. Chargers Taking Less Damage while charging Jockeys pouncing slightly higher Hunters not taking the bonus "Skeet" damage that humans take while pouncing Boomers and Smokers taking multiple hits to kill with melee if you hit them in their legs etc. I'd like to know if these changes to AI Special Infected apply across all game modes or only specific ones like campaign. I'd also like to know if there's a way to enable these changes on human special infected and how to do so or if there any plugins that can add/give these changes to human players, preferably ones that work across all game modes or at least in both coop and versus. If there's not, I'd like to request a plugin(s) to be made for this if it's not too difficult to do so. I've been thoroughly searching the forums and using the plugin search tool but I've unfortunately not been able find a plugin that can do these things. Przeczytaj cały wpis
  1. Load more activity
×
×
  • Create New...