Skocz do zawartości

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

MYGO.pl

RSSy
  • Postów

    28629
  • Dołączył

  • Ostatnia wizyta

    nigdy
  • Wygrane w rankingu

    11

Treść opublikowana przez MYGO.pl

  1. Note I've just finished off first release of my plugin. Over time, there will be some enhancements, such as ConVars. For now I release project, that hasn't appeared on any server, which is the reason I would like you to help me catching some bugs, if there are any ? Description This addon gives admin (default: ROOT flag) an opportunity to run his own 'mailboxes', that other players can send messages to. There are various ways to use this plugin - a tool for cheaters reporting system, announcements system, informing about incoming competitions and ultimatively - its results, a special award for VIP - his own mailbox (if you have any interesting ideas write them down in the comments please!). Everything is based on SQLite. As you can see, admin can control a lot of things - he can set description, password, mailbox capacity (max 50 messages each) and mailbox type: Public - everyone can send messages to it Limited - only VIPs can send messages (default: CUSTOM1) Announcement - a typical announcement mailbox - everyone can read it's content, but only admin can manage it What's important, boxes can be created only by admin, but for managing purposes the only requirement is password, which means, that we can hand it over a normal player, or admin without ROOT flag. After we have logged-in, we can browse messages, delete them and change mailbox parameters (description, password). Root admin can also see SteamID of player, that has sent the message. All the text operations are based on chat insertion - made in an intuitive way. Each message has its title and can hold up to 5 lines with 50 characters each ConVars There will be for sure ;) Instruction Transfer the package content to the compiler and...compile it Attached Files MailboxGO.zip (18.9 KB) Wyświetl pełny artykuł
  2. Hey guys, i'm HaoJun0823, This is my first time to write a plugin with sourcemod. You can use it to change survivor bot's health,weapon attack speed(Melee and Weapon),move speed,gravity, and decide if can use infinite ammo. All values can modify in l4d2_cheat_bot.cfg, sorry for can not support to console command. Maybe it can use in l4d1, but i am not tested. If you want to improve this plugin, you can aceess github: https://github.com/HaoJun0823/l4d2_cheat_bot Thanks to every player and modders. Attached Files Get Plugin or Get Source (l4d2_cheat_bot.sp - 6.1 KB) Wyświetl pełny artykuł
  3. [L4D2] Custom Melee Weapons + Hud Icon ||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||| Original Mods: 1 Boxing Gloves (Author: Splinks) https://steamcommunity.com/sharedfil...8Frying+Pan%29 + [Pan] Magic fist HUD icon (Author: Alex_D_Vasilkov) https://steamcommunity.com/sharedfil...+fist+HUD+icon 2 Table Tennis Racket (Author: Prophet) https://steamcommunity.com/sharedfil...+Tennis+Racket + Table Tennis Racket HUD Icon (Author: CCPD) https://steamcommunity.com/sharedfil...+Tennis+Racket 3 Some Old Cleaver (Author: Prophet) https://steamcommunity.com/sharedfil...me+Old+Cleaver + Some Old Cleaver HUD Icon (Author: CCPD) https://steamcommunity.com/sharedfil...me+Old+Cleaver 4 Panic! Chair (Author: Rex The Impaler) https://steamcommunity.com/sharedfil...Panic%21+Chair + Chair HUD icon (Author: Alex_D_Vasilkov) https://steamcommunity.com/sharedfil...Panic%21+Chair ||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||| [EXTENSION] [L4D2] Melee Spawn Control (Author: V10, update sm 1.9 dr_lex) ||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||| Boxing Damage - 200 Ping Pong Damage - 70 Panic Chair Damage - 60 Old Cleaver Damage - 70 ||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||| Installation: 1 Download My Archive 2 SM File/Folder Downloader and Precacher https://forums.alliedmods.net/showthread.php?p=602270 3 Install Fast DL. (Enternet Guide) Content-Host (Web Host) [L4D2]DownloadsTable Black Screen Fix https://forums.alliedmods.net/showthread.php?t=175952 [L4D(2)] Remove Lobby Reservation (When Full) https://forums.alliedmods.net/showthread.php?t=94415 server.cfg: sv_allow_lobby_connect_only "1" // Fix Black screen sm_cvar sv_allowdownload "1" sm_cvar sv_downloadurl "http://*******.****.com/left4dead2/" sm_cvar l4d_melee_weapons "fireaxe;frying_pan;machete;baseball_bat;crow bar;cricket_bat;tonfa;katana; electric_guitar;knife;golfclub;riotshield;box ing;ping_pong;old_cleaver;panic_chair" 4 Install My Archive Part 1, Part 2, Part 3 (Server + Content-Host) 5 Restart Server Attached Files PART 1.zip (8.66 MB) PART 2.zip (7.94 MB) PART 3.zip (7.80 MB) Wyświetl pełny artykuł
  4. Description: Before i was looking for something like this but i haven't found one so i created one. This plugin will basically catch several events and play musics to client, events like planting the bomb, taking a hostage, last 10 seconds to bomb explosion or last round's 10 seconds, deathcams, MVP sounds , start actions and ... i don't think this plugins is against valve's rules because all you use is more like custom musics you create your self. Configuration: You have to do 2 things to make the plugin work properly: 1- You need to setup a new section for plugins's database in sourcemod/configs/database.cfg under the name MusicKits: Code: "Databases" { "driver_default" "mysql" // When specifying "host", you may use an IP address, a hostname, or a socket file path "default" { "driver" "default" "host" "localhost" "database" "sourcemod" "user" "root" "pass" "" //"timeout" "0" //"port" "0" } "storage-local" { "driver" "sqlite" "database" "sourcemod-local" } "MusicKits" { "driver" "sqlite" "database" "MusicKits" } "clientprefs" { "driver" "sqlite" "host" "localhost" "database" "clientprefs-sqlite" "user" "root" "pass" "" //"timeout" "0" //"port" "0" } } 2- You need to properly configure music.txt to let the plugin work it's way, to do so you will need to set several music's path for the plugin to play: Code: "musics" { "MusicKit_Manse" { "name" "I'm Not The One | Manse Remix" "Bomb_Planted" "music_kits_custom\Manse\bombplanted.mp3" "Bomb_TenSeconds" "music_kits_custom\Manse\bombtenseccount.mp3" "RoundEnd_Lost" "music_kits_custom\Manse\lostround.mp3" "RoundEnt_Won" "music_kits_custom\Manse\wonround.mp3" "RoundStart_Action" "music_kits_custom\Manse\startaction.mp3" "Round_TenSeconds" "music_kits_custom\Manse\roundtenseccount.mp3" "Round_MVP" "music_kits_custom\Manse\chooseteam.mp3" "Deathcam" "music_kits_custom\Manse\deathcam.mp3" } } Notes: - You need to use a custom file downloader/precacher because the plugin will not do it automatically. - Feel free to report bugs or ask for new features if you want. Quote: Change logs: * 8/6/2018 - Initial Release Attached Files CustomMusicKits 1.4.4.zip (6.41 MB) Wyświetl pełny artykuł
  5. Usage: sm_cvar <client> <cvar> Attached Files Get Plugin or Get Source (getcvar.sp - 1.6 KB) Wyświetl pełny artykuł
  6. Description It's a csgo version of the crossfire map on half life. Install smx file move to csgo/addons/sourcemod/plugins/ translations file move to csgo/addons/sourcemod/translations/ models file move to csgo/addons/sourcemod/models/ materials file move to csgo/addons/sourcemod/materials/ sound file move to csgo/addons/sourcemod/sound/ Known Bugs https://github.com/ismail0234/half-l...to-csgo/issues Donate If you apreciate my work, you can donate me via steam trade offer. Notes you can share your ideas with me because this is new yet. Main Github Repo Attached Files half-life-crossfire-to-csgo.zip (5.88 MB) Wyświetl pełny artykuł
  7. Descriptions: It's a very simple plugin, who shows timeleft at the bottom of the screen. Versions: Code: 1.0.0 Released. Download: GitHub Wyświetl pełny artykuł
  8. What's this? Rebalanced Fortress 2 is a simple yet powerful plugin that allows any server owner to modify the attributes of (almost) every item (and class) in Team Fortress 2 that's given to the player, including weapons, shields or even hats! If you think an item deserves more of the spotlight, or if you think a weapon is horribly broken, you will be able to change the attributes of such weapon to your heart's content. In addition, it's possible to add information related to those changes to let everyone know about what was changed. This is the public version of the plugin used by the Custom TF2 Weapons group for their Official Weapon Changes servers (which is why the release version is v1.43, as it was private before) and gives different sets of attributes to the official weapons of the game. In addition, it's also the successor of Balance Fortress 2, a plugin I also made myself. How does it work? A file, tf2rebalance_attributes.txt contained within the data folder, is the one that contains the changes you wish to add to the classes or weapons, which you can modify to your heart's content in case you wish to modify anything. When a player spawns, their weapon will be automatically replaced by the same one but with the attributes that were specified in the file. If a class was modified, then the attributes, if specified, will be added to such class as well and attributes given to classes will not stack or mesh with other classes' given attributes. Installation: The plugin's GitHub page can be seen here. The releases page can be seen here. Please install TF2Items (and optionally TF2Attributes to add attributes into classes) and follow their respective installation instructions. Optionally, if you wish to compile your own version of the plugin, you might want to have morecolors.inc as well. Get the latest release from the plugin's GitHub by clicking here and then clicking on the .zip file download. Drop the "addons" folder from the .zip file into where your server's tf/ folder is. Change the map or load it manually by writing "sm plugins load tf2rebalance_jug" in the server's console. If you wish to learn how to change a weapon's attributes and/or add attributes into a class, read the example file here. Done! Cvars and commands Console variables: sm_tfrebalance_enable (Default: "1"): Enables (1) or disables (0) the plugin. sm_tfrebalance_logdependencies (Default: "1"): Should the lack of TF2Attributes be logged? 1 enables this, whereas 0 disables it instead. sm_tfrebalance_firsttimeinfo (Default: "1"): Should the players, on their first spawn, be notified of the possibility of modified weapons and the commands to see such information? 1 enables this, whereas 0 disables it instead. sm_tfrebalance_preserveattribsbydefault (Default: "0"): On file parsing, should the lack of a "keepattribs" key default to preserve (1) or not preserve (0) the attributes of the item? Commands: /tfrebalance_refresh (Root admin only): Parses tf2rebalance_attributes.txt again in case an item is in need of a hotfix, or for testing purposes. --- /weapon_info: Shows information about the weapon the player is currently holding. /class_info: Shows information about the class the player is currently using. /wearable_info: Shows information about the wearables (shields, hats...) the player is currently wearing. If you like this plugin and wish to see more like them, be sure to donate through my Ko-Fi page here. It's not required, but any amount helps and it's really appreciated. Thanks for reading and enjoy! Wyświetl pełny artykuł
  9. About: This plugin fixes servers with too many ConVars, which causes a buffer overflow error in server console and the overflowed ConVars to use their default value instead of the one specified. This should also fix commands which failed to be executed caused by the same buffer overflow. Note: If your server is hibernating the fix will happen on the next frame when it wakes. Initial thread and plugin version here. According to posts in that thread CSGO needs this fix, but from my testing on Windows and Linux it does not. Please report results. Related Plugins: Cvar Configs Updater - Good for updating convar configs when plugins update and add new convars. ConVars Anomaly Fixer - Good for checking and testing convars and configs for errors. Supported Games: CSGO (Windows and Linux) L4D1 (Windows and Linux) L4D2 (Linux only) Request support if your game suffers from this bug. Thanks: Peace-Maker (for DHooks Dev Preview and helping script this plugin). Dr!fter (for initially creating DHooks extension). Dragokas (helping me understand the .cpp files and functions). Lux (various scripting advice and helping figure out stuff). Timocop (L4D1 Linux binary and testing). ConVar Testing: Spoiler To create 5000 cvars for testing if your server requires fixing, or to check the fix has worked: Change DEBUGGING 0 to DEBUGGING 1 in this plugins source. Recompile and install. Change map or restart the server so the cvar config is auto-generated. Edit \cfg\sourcemod\sm_cvar_test.cfg and replace all "0" with "1". Change map so the server can attempt to read the changed cvar values. Run the "sm_cvar_test" command to test. ConVars: PHP Code: // Command and ConVar - Buffer Overflow Fixer plugin version. command_buffer_version Changes: Code: 2.0 (02-Aug-2018) - Now fixes all ConVars from being set to incorrect values. - Supports CSGO (win/nix), L4D1 (win/nix) and L4D2 (nix). - Other games with issues please request support. 1.0 (27-Jun-2018) - Initial release. Requirements: DHooks (Experimental Dynamic Detour support) Installation:DO NOT click 'Get Plugin' or it will fail to compile because this plugin requires DHooks! Download the .smx file and put into your servers \addons\sourcemod\plugins folder. Download the .txt gamedata file and put into your servers \addons\sourcemod\gamedata\ folder. You must restart the server. Attached Files command_buffer.games.txt (1.8 KB) command_buffer.smx (6.8 KB) Get Plugin or Get Source (command_buffer.sp - 6.3 KB) Wyświetl pełny artykuł
  10. Entity Spawner v1.0 THIS PLUGIN REQUIRES: NAV AREA UTILITIES Description: Spawn entities randomly across the map. Entities spawned can be set in configs/entityspawner/entities.cfg Commands: Quote: sm_esspawn - Force spawn all props on the current map. (Will remove previously spawned props first) - flag Z sm_esclear - Force remove all props spawned by this plugin - flag Z sm_esreload - Reload entities.cfg - flag Z Convars: Quote: entityspawner_nav_areas_required - 50 - Amount of nav areas required for items to spawn Preview: Stock Config: PHP Code: ///////////////////////////////////////////////////////////////////////////////////////////////////////// // INFO // // The config is read from top to bottom, so maps put further up // the config will be prioritized // // Example: // - de_dust2 // - de_ // // If the map is dust2, the spawns for that section will be read. // If the map is nuke, the spawns for "de_" section will be read. // // MAP KEYS: // "spawnroundstart" "<number>" - 0 will disable entity spawning on round start // - 1 will enable entity spawning on round start // // "maxroundspawns" "<number>" - Amount of rounds entities will spawn // - 0 will spawn entities every round // // "spawninterval" "<number>" - Amount of seconds until entities should spawn again // - 0 will disable // // "resettimer" "<0/1>" - Should the spawn timer be reset on round start or transfer over rounds // // // ENTITY KEYS: // "classname" "<string>" - The classname of the entity you want to spawn // - List of CSGO specific entities can be found here: https://developer.valvesoftware.com/wiki/List_of_Counter-Strike:_Global_Offensive_Entities // // "keyvalue<number>" "<key> <value>" - Enter a keyvalue for a entity, this is optional // - If you need to set multiple keyvalues, just increment the number after the key // Example: // - "keyvalue0" "model modelpath/modelname.mdl" // - "keyvalue1" "modelscale 5.0" // // "prop<number>" "<prop> <value>" - Enter a value for an entity property, this is optional // - If you need to set multiple keyvalues, just increment the number after the key // Example: // - "prop0" "m_iHealth 2" // - "prop1" "m_vecOrigin 50.0 24.5 36.0" // - "prop2" "m_iszName hehehehe" // // "maxspawns" "<number"> - Max amount of amount this entity could be spawned per round. // However, it does not guarantee that it will spawn this amount of times. // // "zoffset" "<decimal>" - If the terrain is very uneven like dust2, increase this value a bit (5.0 - 10.0) // and you might see an increase of spawns. // - The reason for this key is because everytime a prop is spawned, it makes sure // that the prop fits around the area its spawned. // - Increasing this value will make the prop spawn higher above the ground // // "slopes" "<0/1>" - Can this entity spawn on slopes or only flat surfaces // //////////////////////////////////////////////////////////////////////////////////////////////////////////// // This stock config will spawn AWPS/Breakable crates/Chickens on maps that start with "de_" or "cs_" "entities" { "de_" { "spawnroundstart" "1" "maxroundspawns" "0" "spawninterval" "0" "resettimer" "1" "AWP" { "classname" "weapon_awp" "maxspawns" "20" "zoffset" "10.0" "slopes" "1" } "Breakable Crate" { "classname" "prop_physics_override" "keyvalue0" "model models/props_junk/wood_crate001a.mdl" "prop0" "m_takedamage 2" "maxspawns" "50" "zoffset" "10.0" "slopes" "1" } "Chicken Medium" { "classname" "chicken" "maxspawns" "20" "zoffset" "5.0" "slopes" "1" } } "cs_" { "spawnroundstart" "1" "maxroundspawns" "0" "spawninterval" "0" "resettimer" "1" "AWP" { "classname" "weapon_awp" "maxspawns" "20" "zoffset" "10.0" "slopes" "1" } "Breakable Crate" { "classname" "prop_physics_override" "keyvalue0" "model models/props_junk/wood_crate001a.mdl" "prop0" "m_takedamage 2" "maxspawns" "50" "zoffset" "10.0" "slopes" "1" } "Chicken Medium" { "classname" "chicken" "maxspawns" "20" "zoffset" "5.0" "slopes" "1" } } } Include: PHP Code: #if defined _entityspawner_included #endinput #endif #define _entityspawner_included #define ES_PREFIX " \x09[\x04ES\x09]" #define ES_MAX_ENTITIES 256 #define ES_INVALID_MAX_SPAWNS 0 #define ES_INVALID_SPAWN_INTERVAL 0 #define ES_INVALID_PROP_SEND_OFFSET -1 #define ES_INVALID_PROP_DATA_OFFSET -1 /** * Spawns random entities on the map (Set in entityspawner.cfg) * @return int amount of entities spawned */ native int ES_SpawnEntities(); /** * Clears all randomly spawned entities * @return int amount of entities removed */ native int ES_ClearEntities(); /** * Returns true if spawning is enabled on round start * @return bool are entities spawning on round start */ native bool ES_IsSpawningOnRoundStart(); /** * Returns true if theres enough nav areas (Set by convar) and if config is setup for current map * @return bool enough nav areas/config setup */ native bool ES_IsRandomSpawnsEnabled(); /** * Called when entities are randomly spawned across the map * @param entities that spawned (Entity references) * @param amount of entities spawned * @noreturn */ forward void ES_OnEntitiesSpawned(int entities[ES_MAX_ENTITIES], int entCount); /** * Called when all randomly spawned entities are removed * @param amount of entities removed * @noreturn */ forward void ES_OnEntitiesCleared(int entCount); public SharedPlugin __pl_entityspawner = { name = "entityspawner", file = "entityspawner.smx", #if defined REQUIRE_PLUGIN required = 1 #else required = 0 #endif }; #if !defined REQUIRE_PLUGIN public __pl_entityspawner_SetNTVOptional() { MarkNativeAsOptional("ES_SpawnEntities"); MarkNativeAsOptional("ES_ClearEntities"); MarkNativeAsOptional("ES_IsSpawningOnRoundStart"); MarkNativeAsOptional("ES_IsRandomSpawnsEnabled"); } #endif Extra: Make sure your map has a .nav file. Will barely work if not. Credits: Me DOWNLOAD Wyświetl pełny artykuł
  11. MYGO.pl

    [CS:GO] MugiStats

    MugiStats I am not a weeb. Oi, it's me again, yet with another plugin. What do I got for you guys this time? Well, a ranking plugin. You might be thinking "ough, not another one...", but I ended up adding some unique features that made this plugin a one of a kind. (I am also extremely sorry for hardcoding everything). Then why did I do this? Mhm, mostly because I was so bored, I had this as a offside project when I was in a mood of not doing anything. Before we keep going, I'd love to give some credits for some kind people, they're names are: Headline (Thank you for the duplicates remove query) Kailo (Checked out a part of the code where I got brain drop), really appreciate it guys, thank you. Commands: Code: !stats - Menu with all features. !statsme - Prints the whole record of the client (kills & deaths in chat, aswell as k/d, the rest in the console). !rank - Prints your rank in the chat, ordered by kills & deaths. !top - Shows the players with the most amount of exp. !topkills - Shows the players with the most amount of kills. !topdeaths - Shows the players with the most amount of eaths. !tophs - Shows the players with the most amount of headshots. !topa - Shows the players with the most amount of assists. !topk - Shows the players with the most amount of knife kills. !topw - Shows the players with the most amount of wallbangs. !topn - Shows the players with the most amount of noscopes. !topnk - Shows the players with the most amount of nade kills. CVars: Code: g_cvExp - Amount of exp gained per kill. SQL: Code: "mugistats" { "driver" "mysql" "host" "" "database" "" "user" "" "pass" "" //"timeout" "0" //"port" "0" } Changelog: Code: v.1.0 - Initial Release Enjoy. ^^ Attached Files Get Plugin or Get Source (MugiStats.sp - 19.7 KB) Wyświetl pełny artykuł
  12. A simple plugin that sets bots to least used survivor character when spawned from(0-7). Made this plugin last year but zoey windows was broken so never released until now. Code: Few notes: This plugin assumes you are using "survivor_set" "2" and will not workaround if not 2. however you don't have to it just wont work correctly. Optional Setting survivor_set 2 with downtown: Require l4d2_downtown most current upto date of posting this! Plugin: forceset or Optional Setting survivor_set 2 with vpk I'v included vpk(7z attachment) for all valve maps that sets the "survivor_set" to "2" This method would require you to set them all your self in mission.txt file per addon. "addons/optional" Restart server once installed. Windows requirements: [L4D2] Real Zoey Unlock Optional Passing fix plugin: Plugin:CSM Passing Fix for me this did not work 100% so i put together a stripper config. or Optional Passing fix stripper: Requirement: Stripper Stripper config Location in "addons/stripper/maps/optional"(7z attachment). Stripper worked 100% for me. Don't know how to install stripper read this Has no config file if you want to disable it remove it! Attached Files Optional_stuff.7z (5.8 KB) Wyświetl pełny artykuł
  13. Description: Well, today i will realease a CSGO plugin to load configs that are in the folder configs/configexecutor.cfg or in configexecutor/configs.cfg! Plugin Info: The plugin have 2 languages: -> English -> Portuguese Plugin Sourcecodes: English Version Code: PHP Code: /************************************************************************* * * * AlfaLoader - Config Executor * * Author: ShutUP * * Version: 1.0 * * * **************************************************************************/ #include <sourcemod> public Plugin myinfo = { name = "[SM] AlfaLoader", author = "ShutUP", description = "Config Executer for CSGO Servers", version = "1.0", url = "https://alfahosting.gq/plugins/csgo/configexecuter" } public OnPluginStart() { CreateConVar("sm_executorversion", "1.0", "Show the version of the plugin", FCVAR_SPONLY|FCVAR_NOTIFY|FCVAR_DONTRECORD); RegAdminCmd("sm_executeconfigs_all", CmdReExecute, ADMFLAG_GENERIC, "Execute the config files insile the folder"); PrintToServer("Plugin maked by ShutUP with love"); } public OnMapStart() { ExecuteAllConfigs(); } stock bool ExecuteAllConfigs() { new Float:time = 0.0; new Handle:file = INVALID_HANDLE; decl String:FileName[256], String:ConfigName[256]; BuildPath(Path_SM, FileName, sizeof(FileName), "configexecutor/config.cfg"); new len; if(!FileExists(FileName)) { LogError("Error loading the config files"); return false; } file = OpenFile(FileName, "r"); if(file == INVALID_HANDLE) { LogError("Error loading the config files"); return false; } while(ReadFileLine(file, ConfigName, sizeof(ConfigName))) { len = strlen(ConfigName); if (ConfigName[len-1] == 'n') { ConfigName[--len] = '0'; } if(StrEqual(ConfigName, "")) { continue; } time+=0.1; new Handle:pack = CreateDataPack(); WritePackString(pack, ConfigName); CreateTimer(time, ExecuteConfig, pack, TIMER_FLAG_NO_MAPCHANGE); if(IsEndOfFile(file)) { break; } } CloseHandle(file); return true; } public Action CmdReExecute(client, args) { if(ExecuteAllConfigs()) { PrintToChat(client, "[AlfaLoader] All configs are been executed!"); } else { PrintToChat(client, "[AlfaLoader] An error ocurred while executing the files!"); } return Plugin_Handled; } public Action ExecuteConfig(Handle timer, Handle pack) { ResetPack(pack); decl String:config[256]; ReadPackString(pack, config, sizeof(config)); ServerCommand("exec sourcemod/%s", config); } Portuguese Version Code: PHP Code: /************************************************************************* * * * AlfaLoader - Config Executor * * Author: ShutUP * * Version: 1.0 * * * **************************************************************************/ #include <sourcemod> public Plugin myinfo = { name = "[SM] AlfaLoader", author = "ShutUP", description = "Executor de configurações para servidores de CS:GO", version = "1.0", url = "https://alfahosting.gq/plugins/csgo/configexecuter" } public OnPluginStart() { CreateConVar("sm_executorversion", "1.0", "Mostra a versão do plugin", FCVAR_SPONLY|FCVAR_NOTIFY|FCVAR_DONTRECORD); RegAdminCmd("sm_executeconfigs_all", CmdReExecute, ADMFLAG_GENERIC, "Executa as configs dentro da pasta"); PrintToServer("Plugin feito por ShutUP com amor"); } public OnMapStart() { ExecutarTodasAsConfig(); } stock bool ExecutarTodasAsConfig() { new Float:time = 0.0; new Handle:file = INVALID_HANDLE; decl String:FileName[256], String:ConfigName[256]; BuildPath(Path_SM, FileName, sizeof(FileName), "configexecutor/config.cfg"); new len; if(!FileExists(FileName)) { LogError("Erro ao executar as configs"); return false; } file = OpenFile(FileName, "r"); if(file == INVALID_HANDLE) { LogError("Erro ao executar as configs"); return false; } while(ReadFileLine(file, ConfigName, sizeof(ConfigName))) { len = strlen(ConfigName); if (ConfigName[len-1] == 'n') { ConfigName[--len] = '0'; } if(StrEqual(ConfigName, "")) { continue; } time+=0.1; new Handle:pack = CreateDataPack(); WritePackString(pack, ConfigName); CreateTimer(time, ExecuteConfig, pack, TIMER_FLAG_NO_MAPCHANGE); if(IsEndOfFile(file)) { break; } } CloseHandle(file); return true; } public Action CmdReExecute(client, args) { if(ExecutarTodasAsConfig()) { PrintToChat(client, "[AlfaLoader] Todos as configs foram executados!"); } else { PrintToChat(client, "[AlfaLoader] Um erro ocurreu ao executar todas as configs!"); } return Plugin_Handled; } public Action ExecuteConfig(Handle timer, Handle pack) { ResetPack(pack); decl String:config[256]; ReadPackString(pack, config, sizeof(config)); ServerCommand("exec sourcemod/%s", config); } The plugin come with a NoSpread config: PHP Code: // THIS CONFIG IS FOR CSGO NOSPREAD SERVER! sv_cheats 1 weapon_accuracy_nospread "1" weapon_debug_spread_gap "1" weapon_recoil_cooldown "0" weapon_recoil_decay1_exp "99999" weapon_recoil_decay2_exp "99999" weapon_recoil_decay2_lin "99999" weapon_recoil_scale "0" weapon_recoil_suppression_shots "500" weapon_recoil_view_punch_extra 0 sv_cheats 0 I enjoy you liked my first plugin! PS: Sorry for my bad english -__- , im Portuguese :3 Downloads: From Oficial Website (English Version) From Oficial Website (Portuguese Version) From Github (SOON) From AlliedModders (Download Below) Attached Files English Version.zip (8.5 KB) Portuguese Version.zip (8.6 KB) Wyświetl pełny artykuł
  14. MYGO.pl

    [CS:GO] Ice Cube

    Description Freeze player in an ice cube. Install Upload files to your server. Download ice cube model here, and don't forget to upload files to fastdl. Cvars PHP Code: sm_ice_snow //Spawn snow effect when freeze? sm_ice_freezetime //Make player in ice when freezetime? Commands PHP Code: sm_ice //Freeze player in ice. sm_unice //Unfreeze player in ice. Changelog Spoiler 1.0 Release. Known Bugs Github Issues To Do Nothing to do now. Donate If you apreciate my work, you can donate me via steam trade offer or paypal. Credits bhunji - I take snow effect from his plugin. CZE|EMINEM - Thanks for his awesome model. Git Repo Download Wyświetl pełny artykuł
  15. Nav Area Utilities v1.0 Description: An easier way to mess around with nav areas. yoink Commands: Quote: sm_naucount - Prints amount of nav areas on the current map sm_nauarea - Visualizes a nav area/ladder. (sm_nauarea <navareaindex(optional)> <showneighbours(0-1)> Previews: Include: PHP Code: #if defined _navareasapi_included #endinput #endif #define _navareasapi_included #define NAU_PREFIX " \x09[\x04Nav UTIL\x09]" #define NAU_GAMEDATA "navareautilities.gamedata" #define NAU_NAVAREA_SOUTH_NAV_CONNECT_VECTOR 0x5C #define NAU_NAVAREA_LADDER_INDICATOR 0x34 #define NAU_NAVAREA_LADDER_HEIGHT 0x18 #define NAU_NAVAREA_LADDER_WIDTH 0x1C #define NAU_NAVAREA_LADDER_NAVAREAS 0x20 enum NavDirType { NAVDIR_SOUTH = 0, NAVDIR_EAST = 1, NAVDIR_NORTH = 2, NAVDIR_WEST = 3, NAVDIR_UP = 4, NAVDIR_DOWN = 5, NAVDIR_MAX } enum NavLadderDestination { NAVLADDER_TOP_FORWARD = 0, NAVLADDER_TOP_LEFT = 1, NAVLADDER_TOP_RIGHT = 2, NAVLADDER_TOP_BEHIND = 3, NAVLADDER_BOTTOM = 4, NAVLADDER_MAX } /** * Returns amount of nav areas * @return int amount of nav areas */ native int NAU_GetNavAreaCount(); /** * Returns an address of a navareaindex * @return address address of nav area */ native Address NAU_GetNavAreaAddressByIndex(int navAreaIndex); /** * Called when nav areas are loaded by plugin (OnMapStart) * @param amount of nav areas found * @noreturn */ forward void NAU_OnNavAreasLoaded(); /** * Returns the center position of the nav area * @param address of the nav area * @param buffer to store the position * @return void */ public void NAU_GetNavAreaCenter(Address navAreaAddress, float result[3]) { float nwCorner[3], seCorner[3]; NAU_GetNavAreaNorthWestCorner(navAreaAddress, nwCorner); NAU_GetNavAreaSouthEastCorner(navAreaAddress, seCorner); NAU_GetMiddleOfABox(nwCorner, seCorner, result); } /** * Get the center position of the nav ladder area * @param address of the nav area to check * @param buffer to store the position * @return void */ public void NAU_GetNavLadderCenter(Address navLadderAddress, float result[3]) { float nwCorner[3], seCorner[3]; NAU_GetNavLadderTop(navLadderAddress, seCorner); NAU_GetNavLadderBottom(navLadderAddress, nwCorner); NAU_GetMiddleOfABox(nwCorner, seCorner, result); } /** * Returns wether or not the entity has larger X/Y values than the nav area * @param address of the nav area * @param entity index * @return bool can entity fit in nav area */ public bool NAU_CanEntityFitInNavArea(Address navAreaAddress, int entity) { float mid[3], vMins[3], vMaxs[3]; GetEntPropVector(entity, Prop_Data, "m_vecMins", vMins); GetEntPropVector(entity, Prop_Data, "m_vecMaxs", vMaxs); mid[0] /= 2.0; mid[1] /= 2.0; mid[2] /= 2.0; if(mid[0] < 0.0) mid[0] *= -1; if(mid[1] < 0.0) mid[1] *= -1; if(mid[2] < 0.0) mid[2] *= -1; float nwCorner[3], seCorner[3], navAreaMid[3]; NAU_GetNavAreaNorthWestCorner(navAreaAddress, nwCorner); NAU_GetNavAreaSouthEastCorner(navAreaAddress, seCorner); MakeVectorFromPoints(seCorner, nwCorner, navAreaMid); navAreaMid[0] /= 2.0; navAreaMid[1] /= 2.0; navAreaMid[2] /= 2.0; if(navAreaMid[0] < 0.0) navAreaMid[0] *= -1; if(navAreaMid[1] < 0.0) navAreaMid[1] *= -1; if(navAreaMid[2] < 0.0) navAreaMid[2] *= -1; return (mid[0] <= navAreaMid[0] && mid[1] <= navAreaMid[1]); } /** * Returns wether or not the entity has larger X/Y values than the nav area * @param address of the nav area * @param Mins of box * @param Maxs of box * @return bool can entity fit in nav area */ public bool NAU_CanFitInNavArea(Address navAreaAddress, float vMins[3], float vMaxs[3]) { float mid[3]; MakeVectorFromPoints(vMins, vMaxs, mid); mid[0] /= 2.0; mid[1] /= 2.0; if(mid[0] < 0.0) mid[0] *= -1; if(mid[1] < 0.0) mid[1] *= -1; float nwCorner[3], seCorner[3], navAreaMid[3]; NAU_GetNavAreaNorthWestCorner(navAreaAddress, nwCorner); NAU_GetNavAreaSouthEastCorner(navAreaAddress, seCorner); MakeVectorFromPoints(seCorner, nwCorner, navAreaMid); navAreaMid[0] /= 2.0; navAreaMid[1] /= 2.0; if(navAreaMid[0] < 0.0) navAreaMid[0] *= -1; if(navAreaMid[1] < 0.0) navAreaMid[1] *= -1; return (mid[0] <= navAreaMid[0] && mid[1] <= navAreaMid[1]); } /** * Get a random position within a nav area, returns false if the mins/maxs are bigger than the area * @param address of the nav area * @param Mins of entity you want to fit in the area * @param Maxs of entity you want to fit in the area * @param buffer to store the position * @return bool can entity fit in nav area */ public bool NAU_GetRandomPosWithinNavArea(Address navAreaAddress, float vMins[3], float vMaxs[3], float result[3]) { // To stop random crashes if someone were to do stuff on a navladder if(NAU_IsNavLadder(navAreaAddress)) return false; bool returnVal = true; float mid[3]; MakeVectorFromPoints(vMins, vMaxs, mid); mid[0] /= 2.0; mid[1] /= 2.0; if(mid[0] < 0.0) mid[0] *= -1; if(mid[1] < 0.0) mid[1] *= -1; float nwCorner[3], seCorner[3], navAreaMid[3]; NAU_GetNavAreaNorthWestCorner(navAreaAddress, nwCorner); NAU_GetNavAreaSouthEastCorner(navAreaAddress, seCorner); MakeVectorFromPoints(seCorner, nwCorner, navAreaMid); navAreaMid[0] /= 2.0; navAreaMid[1] /= 2.0; if(navAreaMid[0] < 0.0) navAreaMid[0] *= -1; if(navAreaMid[1] < 0.0) navAreaMid[1] *= -1; if(mid[0] > navAreaMid[0] || mid[1] > navAreaMid[1]) returnVal = false; // Add/Subtract half of the size to the random pos (To make the entity fit properly) result[0] = GetRandomFloat(nwCorner[0] + mid[0], seCorner[0] - mid[0]); result[1] = GetRandomFloat(nwCorner[1] + mid[1], seCorner[1] - mid[1]); // Set the position to the highest point (TODO: Add function to calculate the height of the slope at a certain point of the plane) result[2] = seCorner[2]; return returnVal; } /** * Get the difference in Z positions of the nav area (Used to check if its a slope or not, returns 0 if plane surface) * @param address of the nav area * @return float Z position difference */ public float NAU_GetNavAreaZDifference(Address navAreaAddress) { float nwCorner[3], seCorner[3]; NAU_GetNavAreaNorthWestCorner(navAreaAddress, nwCorner); NAU_GetNavAreaSouthEastCorner(navAreaAddress, seCorner); return seCorner[2] - nwCorner[2]; } /** * Returns the north west corner of the nav area * @param address of the nav area * @param buffer to store the position * @return void */ public void NAU_GetNavAreaNorthWestCorner(Address navAreaAddress, float result[3]) { result[0] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(4), NumberType_Int32)); result[1] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(8), NumberType_Int32)); result[2] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(12), NumberType_Int32)); } /** * Returns the south east corner of the nav area * @param address of the nav area * @param buffer to store the position * @return void */ public void NAU_GetNavAreaSouthEastCorner(Address navAreaAddress, float result[3]) { result[0] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(16), NumberType_Int32)); result[1] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(20), NumberType_Int32)); result[2] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(24), NumberType_Int32)); } /** * Get the top left position of the nav ladder area * @param address of the ladder nav area * @param buffer to store the position * @return void */ public void NAU_GetNavLadderTop(Address navAreaAddress, float result[3]) { result[0] = view_as<float>(LoadFromAddress(navAreaAddress, NumberType_Int32)); result[1] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(4), NumberType_Int32)); result[2] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(8), NumberType_Int32)); } /** * Get the bottom right position of the nav ladder area * @param address of the nav area to check * @param buffer to store the position * @return void */ public void NAU_GetNavLadderBottom(Address navAreaAddress, float result[3]) { result[0] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(12), NumberType_Int32)); result[1] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(16), NumberType_Int32)); result[2] = view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(20), NumberType_Int32)); } /** * Get the height of the ladder * @param address of the nav ladder to check * @return float height of ladder */ public float NAU_GetNavLadderHeight(Address navAreaAddress) { return view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(NAU_NAVAREA_LADDER_HEIGHT), NumberType_Int32)); } /** * Get the width of the ladder * @param address of the nav ladder to check * @return float width of ladder */ public float NAU_GetNavLadderWidth(Address navAreaAddress) { return view_as<float>(LoadFromAddress(navAreaAddress + view_as<Address>(NAU_NAVAREA_LADDER_WIDTH), NumberType_Int32)); } /** * Get the amount of nav areas in direction * @param address of the nav area * @param direction * @return int Amount of neighbours in direction */ public int NAU_GetNeighbourNavAreaCount(Address navAreaAddress, NavDirType direction) { Address navConnectVector = view_as<Address>(LoadFromAddress(navAreaAddress + view_as<Address>(NAU_NAVAREA_SOUTH_NAV_CONNECT_VECTOR + (0x4 * view_as<int>(direction))), NumberType_Int32)); return LoadFromAddress(navConnectVector, NumberType_Int32); } /** * Get address of a neighbour nav area * @param address of the nav area * @param direction * @param neighbour index * @return address address of the neighbour nav area */ public Address NAU_GetNeighbourNavArea(Address navAreaAddress, NavDirType direction, int directionListIndex) { Address navConnectVector = view_as<Address>(LoadFromAddress(navAreaAddress + view_as<Address>(NAU_NAVAREA_SOUTH_NAV_CONNECT_VECTOR + (0x4 * view_as<int>(direction))), NumberType_Int32)); return view_as<Address>(LoadFromAddress(navConnectVector + view_as<Address>(0x4 + (0x8 * view_as<int>(directionListIndex))), NumberType_Int32)); } /** * Get address of a destination nav area from a ladder (check NavLadderDestination) * @param address of the nav ladder * @param ladder destination * @return address address of the destination nav area (Address_Null if invalid navarea) */ public Address NAU_GetDestinationNavAreaFromLadder(Address navLadderAddress, NavLadderDestination destination) { return view_as<Address>(LoadFromAddress(navLadderAddress + view_as<Address>(NAU_NAVAREA_LADDER_NAVAREAS + (0x4 * view_as<int>(destination))), NumberType_Int32)); } /** * Hacky way to find out if the nav area a CNavLadder or CNavArea * @param address of the nav area to check * @return bool if ladder area or not */ public bool NAU_IsNavLadder(Address navAddress) { int hack = view_as<int>(LoadFromAddress(navAddress + view_as<Address>(NAU_NAVAREA_LADDER_INDICATOR), NumberType_Int32)); return hack == -1; } /** * Get closes neighbour nav area (By checking their center positions) * @param address of the nav area to check * @param a position to check which nav area is closest * @return address address of the closest neighbour area */ public Address NAU_GetClosestNeighbourNavArea(Address navAreaAddress, float pos[3]) { Address closestNavArea = navAreaAddress; float startPos[3]; //GetNavAreaCenter(navAreaAddress, startPos); if(!NAU_IsNavLadder(closestNavArea)) NAU_GetNavAreaCenter(navAreaAddress, startPos); else NAU_GetNavLadderCenter(navAreaAddress, startPos); float closestDistance = GetVectorDistance(pos, startPos, true); bool gotfirst = false; if(NAU_IsNavLadder(navAreaAddress)) { ArrayList ladderDestinations = new ArrayList(); for (int i = 0; i < view_as<int>(NAVLADDER_MAX); i++) { Address destination = NAU_GetDestinationNavAreaFromLadder(navAreaAddress, view_as<NavLadderDestination>(i)); if(destination != Address_Null) ladderDestinations.Push(destination); } Address destination = ladderDestinations.Get(GetRandomInt(0, ladderDestinations.Length - 1)); float navPos[3]; if(!NAU_IsNavLadder(destination)) NAU_GetNavAreaCenter(destination, navPos); else NAU_GetNavLadderCenter(destination, navPos); closestNavArea = destination; delete ladderDestinations; } else { for (int i = 0; i < view_as<int>(NAVDIR_MAX); i++) { int neighbourCount = NAU_GetNeighbourNavAreaCount(navAreaAddress, view_as<NavDirType>(i)); for (int j = 0; j < neighbourCount; j++) { Address neighbour = NAU_GetNeighbourNavArea(navAreaAddress, view_as<NavDirType>(i), j); float navPos[3]; //GetNavAreaCenter(neighbour, navPos); if(!NAU_IsNavLadder(closestNavArea)) NAU_GetNavAreaCenter(neighbour, navPos); else NAU_GetNavLadderCenter(neighbour, navPos); float dist = 0.0; if((dist = GetVectorDistance(navPos, pos, true)) < closestDistance || !gotfirst) { closestNavArea = neighbour; closestDistance = dist; gotfirst = true; } } } } return closestNavArea; } /** * Get the address of the clients last known nav area (Private hidden variable: offset 0x8D8 as of 7/31/2018) * @param client index * @return address address of the last known nav area (Address_Null if player has no last known nav area) */ public Address NAU_GetClientLastKnownNavArea(int client) { // Make shit break less return view_as<Address>(GetEntData(client, FindSendPropInfo("CBaseCombatCharacter", "m_nRelativeDirectionOfLastInjury") + 0x8)); } public void NAU_Initialize(Address& navCount, Address& navAreas) { Handle hConf = LoadGameConfigFile(NAU_GAMEDATA); navCount = GameConfGetAddress(hConf, "navarea_count"); #if defined DEBUG PrintToServer("Found \"navarea_count\" @ 0x%X", navCount); #endif navAreas = view_as<Address>(LoadFromAddress(navCount + view_as<Address>(0x4), NumberType_Int32)); #if defined DEBUG PrintToServer("Found \"TheNavAreas\" @ 0x%X", navAreas); #endif delete hConf; #if defined DEBUG int navAreaCount = NAU_GetNavAreaCount(); PrintToServer("Nav area count: %d", navAreaCount); #endif } public void NAU_GetMiddleOfABox(const float vec1[3], const float vec2[3], float result[3]) { float mid[3]; MakeVectorFromPoints(vec1, vec2, mid); mid[0] /= 2.0; mid[1] /= 2.0; mid[2] /= 2.0; AddVectors(vec1, mid, result); } public bool NAU_IsPositionBlocked(float pos[3], float vMins[3], float vMaxs[3]) { Handle ray = TR_TraceHullFilterEx(pos, pos, vMins, vMaxs, MASK_PLAYERSOLID, NAU_TraceFilterNothing); if(TR_DidHit(ray)) return false; return true; } public bool NAU_TraceFilterNothing(int entityhit, int mask, any entity) { if(entityhit > -1) return true; return false; } public bool NAU_IsPositionBlockedIgnoreSelf(float pos[3], float vMins[3], float vMaxs[3], int entity) { Handle ray = TR_TraceHullFilterEx(pos, pos, vMins, vMaxs, MASK_PLAYERSOLID, NAU_TraceFilterIgnoreSelf, entity); if(TR_DidHit(ray)) return false; return true; } public bool NAU_TraceFilterIgnoreSelf(int entityhit, int mask, any entity) { if(entityhit > -1 && entityhit != entity) return true; return false; } public void NAU_PrintVector(int client, char[] prefix, float pos[3]) { PrintToChat(client, "%s %s\x02%.2f \x04%.2f \x0C%.2f", NAU_PREFIX, prefix, pos[0], pos[1], pos[2]); } public void NAU_SendBox(float vMins[3], float vMaxs[3], int modelIndex, int color[4], float lifetime) { float vPos1[3], vPos2[3], vPos3[3], vPos4[3], vPos5[3], vPos6[3]; vPos1 = vMaxs; vPos1[0] = vMins[0]; vPos2 = vMaxs; vPos2[1] = vMins[1]; vPos3 = vMaxs; vPos3[2] = vMins[2]; vPos4 = vMins; vPos4[0] = vMaxs[0]; vPos5 = vMins; vPos5[1] = vMaxs[1]; vPos6 = vMins; vPos6[2] = vMaxs[2]; NAU_SendBeam(vMaxs, vPos1, modelIndex, color, lifetime); NAU_SendBeam(vMaxs, vPos2, modelIndex, color, lifetime); NAU_SendBeam(vMaxs, vPos3, modelIndex, color, lifetime); //Vertical NAU_SendBeam(vPos6, vPos1, modelIndex, color, lifetime); NAU_SendBeam(vPos6, vPos2, modelIndex, color, lifetime); NAU_SendBeam(vPos6, vMins, modelIndex, color, lifetime); //Vertical NAU_SendBeam(vPos4, vMins, modelIndex, color, lifetime); NAU_SendBeam(vPos5, vMins, modelIndex, color, lifetime); NAU_SendBeam(vPos5, vPos1, modelIndex, color, lifetime); //Vertical NAU_SendBeam(vPos5, vPos3, modelIndex, color, lifetime); NAU_SendBeam(vPos4, vPos3, modelIndex, color, lifetime); NAU_SendBeam(vPos4, vPos2, modelIndex, color, lifetime); //Vertical } public void NAU_SendBeam(const float vMins[3], const float vMaxs[3], int modelIndex, const int color[4], float lifetime) { TE_SetupBeamPoints(vMins, vMaxs, modelIndex, modelIndex, 0, 0, lifetime, 1.0, 1.0, 1, 0.0, color, 0); TE_SendToAll(); } public void NAU_DebugNavArea(int client, Address navAreaAddress, int laserModelIndex) { float navAreaNW[3], navAreaSE[3], center[3]; if(!NAU_IsNavLadder(navAreaAddress)) { NAU_GetNavAreaNorthWestCorner(navAreaAddress, navAreaNW); NAU_GetNavAreaSouthEastCorner(navAreaAddress, navAreaSE); NAU_GetNavAreaCenter(navAreaAddress, center); } else { NAU_GetNavLadderTop(navAreaAddress, navAreaNW); NAU_GetNavLadderBottom(navAreaAddress, navAreaSE); NAU_GetNavLadderCenter(navAreaAddress, center); } if(client > 0 && client <= MaxClients && IsClientInGame(client)) { NAU_PrintVector(client, "North West: ", navAreaNW); NAU_PrintVector(client, "South East: ", navAreaSE); NAU_PrintVector(client, "Center: ", center); } NAU_SendBox(navAreaSE, navAreaNW, laserModelIndex, { 255, 0, 0, 255 }, 5.0); } public void NAU_DebugNavAreaNeighbours(int client, Address navAreaAddress, int laserModelIndex) { if(NAU_IsNavLadder(navAreaAddress)) { for (int i = 0; i < view_as<int>(NAVLADDER_MAX); i++) { Address destination = NAU_GetDestinationNavAreaFromLadder(navAreaAddress, view_as<NavLadderDestination>(i)); NAU_DebugNavArea(client, destination, laserModelIndex); } } else { for (int i = 0; i < view_as<int>(NAVDIR_MAX); i++) { int neighbourCount = NAU_GetNeighbourNavAreaCount(navAreaAddress, view_as<NavDirType>(i)); for (int j = 0; j < neighbourCount; j++) { Address neighbour = NAU_GetNeighbourNavArea(navAreaAddress, view_as<NavDirType>(i), j); NAU_DebugNavArea(client, neighbour, laserModelIndex); } } } } public SharedPlugin __pl_navareautilities = { name = "navareautilities", file = "navareautilities.smx", #if defined REQUIRE_PLUGIN required = 1 #else required = 0 #endif }; #if !defined REQUIRE_PLUGIN public __pl_navareautilities_SetNTVOptional() { MarkNativeAsOptional("NAU_GetNavAreaCount"); MarkNativeAsOptional("NAU_GetNavAreaAddressByIndex"); } #endif Extra: Quote: navareautilities.smx is required unless you make your own plugin and call NAU_Initialize on map start navareautilities-example-roamingarea.smx is just an example how this could be used (Not required). Calling a NavArea function on NavLadder (or vice versa) usually causes crashes, can be prevented with NAU_IsNavLadder If nav area count is low or 0, make sure the map has a .nav file Gamedata: Windows: UP TO DATE 7/31/2018 Linux: UP TO DATE 7/31/2018 Credits: Me Pelipoika DOWNLOAD Wyświetl pełny artykuł
  16. Description Spawn a chicken as pet, you can add any model on it. Install Upload files to your server. Add your models configs/kento_chicken/models.cfg, and don't forget to upload your file to both server and fastdl. Add your files in configs/kento_chicken/downloads.cfg, one file path per line. Cvars PHP Code: sm_chicken_kill //Will chicken disappear after his breeder killed? 0 = no, 1= yes Commands PHP Code: sm_chicken //Chicken menu. sm_ec // Edit chicken menu. Changelog Spoiler 1.0 Release. Known Bugs Github Issues To Do Nothing to do now. Donate If you apreciate my work, you can donate me via steam trade offer or paypal. Git Repo Download Wyświetl pełny artykuł
  17. [TF2] Thermal Thruster Crash Fix Description: Fixes the notorious crash https://crash.limetech.org/stats/server_srv.so/CStudioHdr%3A%3AGetSharedPoseParameter(int%2C %20int)%20const External Dependencies: - DHooks Source: - Github Installation: - Download jetpack_fix.smx - Download jetpack_fix.txt - Drop jetpack_fix.smx inside your plugins folder. - Drop jetpack_fix.txt inside your gamedata folder. Final: Hope you all enjoy that fix for this annoying crash that has been living for like half a year :bacon: Attached Files jetpack_fix.txt (149 Bytes) jetpack_fix.smx (5.4 KB) Wyświetl pełny artykuł
  18. Updates to do: -improve gameplay - make it more easier to build - improve the build - Note : If you have more any update to do reply there or send me message in steam. - Note : I will take some time to make this updates.If you want to make it and send me to i publish there i m thankful About Plugin and cvars: -The cvars to build are !wall !floor !ramp. -You can add custom builds in configs/builds.txt. « Bugs: I don t finded any bugs If you find send me message in steam or reply there Credits: FusionLock for original propspawner plugin Hexah for help making it Plugin And Me: Mine Github Mine Steam profile Plugin Download Suggestions are welcome! :3 Wyświetl pełny artykuł
  19. Adrenaline makes you react faster to knockdowns and staggers, meaning can recover faster from such events. PHP Code: // (1 = [Enabled]) (0 = [Don't even ask xD]) // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" ar_allow "1" // (1.0 = Minspeed(Default speed) 2.0 = 2x speed of recovery // - // Default: "2.0" // Minimum: "1.000000" // Maximum: "100.000000" ar_animspeed "2.0" Thanks to Silvers for advice Bug: Does not work when hit by tankrock. Attached Files Get Plugin or Get Source ([L4D2]Adrenaline_Recovery.sp - 5.1 KB) Wyświetl pełny artykuł
  20. Mute On Votes (v1.0) About As requested by Kamizon on Mute On Vote I've updated ReFlexPoison's plugin. Take a look below to read more about the new features. Features - New Syntax. - Players who joined during a vote will be muted. - Admin Immunity (CVAR). - Warden Immunity for Jailbreak servers. (CVAR). - Mutes/Gags won't be registered to SourceBans. CVARs Quote: mov_enabled - Enable/Disable the plugin. By default is set to "1". mov_immunity - Admins with flag B (ADMFLAG_GENERIC) will be immune. By default is set to "1". mov_method - 0 = Mute. 1 = Gag. 2 = Silence. By default is set to "0". mov_wardenimmunity - For Jailbreak servers with Warden plugin, this will enable wardens to be immune to mute and proceed with the game. By default is set to "0". Installation Drop "MuteOnVotes.smx" inside Plugins folder. Drop "muteonvotes.phrases.txt" inside Translations folder. Change map to generate the .cfg file and setup your cvars. Dependencies Only if CVAR "mov_wardenimmunity" is set to 1: Jailbreak Warden by ecca. Changelog Quote: 2018-07-27 (v1.0) * Initial Release * Credits Thanks to ReFlexPoison for his Plugin Mute On Vote. Thanks to Mugiwara, domino_ and Techno for some help with my doubts. c: If you have any issues, just let me know. Attached Files MuteOnVotes.smx (11.1 KB) Get Plugin or Get Source (MuteOnVotes.sp - 5.3 KB) muteonvotes.phrases.txt (1.0 KB) Wyświetl pełny artykuł
  21. If your server crashes a lot, you might find it infuriating to always start on a single map. This plugin aims to sort that out by selecting a random map when the server crashes. This is my first released plugin, hence being super simple. There are no CVARs, installation is as simple as putting the ".smx" file into your plugins folder. Attached Files Get Plugin or Get Source (random_starting_map.sp - 750 Bytes) Wyświetl pełny artykuł
  22. What's this? This is a plugin that allows players to get a random über instead of a random critical hit in TF2. This can be edited in various ways: instead of über, it can be any other condition described here, allowing for random Batallion's Backup effects, random Megaheals, and more. The duration of the condition can be edited as well, and if you want the crits to happen alongside or during such condition, you can enable them as well. In order to prevent unkillable players, the plugin won't apply the condition again if they're already under such condition. Why? This plugin is intended to make fun of "random crit" parodies, such as (the titular) random übers, random defenses, and more. It is ultimately a simple, silly plugin that allows to spice up gameplay for servers that have random crits enabled by changing them into a condition with any duration. Do you want to make players randomly turn into dwarves (by using the condition 75)? Go right ahead! Command list: sm_randomuber_enable (Default: 1) - Enables (1) or disables (0) the plugin. sm_randomuber_condition (Default: 5) - Chooses which condition to use if the player gets a random crit. 5 is the übercharge condition. sm_randomuber_duration (Default: 3.0) - The duration of the condition that will get applied to the player if they get a random crit. sm_randomuber_allowcrit (Default: 0) - Should the player be able to get their random crit and their condition at the same time? 0 disables this, 1 enables it instead. sm_randomuber_allowcritduringcond (Default: 0) - Should the player be able to roll for crits during the duration of their applied condition? 0 disables this, 1 enables it instead. Installation instructions: Click "Get Plugin", download it and add it to your sourcemod's plugins folder. You also need to have random crits enabled by having "tf_weapon_criticals 1" on your server.cfg or written on the server's console. After that, you should be done! Changelog HTML Code: 2018-07-26: Initial release. Enjoy! Attached Files Get Plugin or Get Source (randomubers.sp - 3.4 KB) Wyświetl pełny artykuł
  23. AutoSendCommandConsole Description I made this simple plugin to send commands by the console every X seconds (it was made to be compatible with Windows ... which no other type of this kind does.). I'm a beginner in programming, so I did something pretty basic. I realized that a lot of people needed a plugin with this function, besides, I needed to update my plug-in tags connected to the steam group of my server so that the new members received their tag without having to wait change the map. I'm sorry for my English, I'm Brazilian. Cvars sm_autosendcmdconsole_command "" // Command to send to the console (null = disabled). Default: 5 seconds sm_autosendcmdconsole_interval "" // Number of seconds used for the repeat timer (0 = disabled). Default: sm_reloadccc Installation instructions Download the file AutoSendCommandConsolev0.2.smx and put it in the addons/sourcemod/plugins folder Start the server to load the plugin or type in the console: sm plugins load AutoSendCommandConsolev0.2.smx Cvars, set the command and interval time in cfg/sourcemod/AutoSendCommandConsole.cfg Changelog Quote: 07-20-18 | V 0.1 - Initial release. 07-23-18 | V 0.2 - Bug fixes and adding cvars. Attached Files AutoSendCommandConsolev0.2.smx (4.7 KB) Get Plugin or Get Source (AutoSendCommandConsolev0.2.sp - 2.0 KB) Wyświetl pełny artykuł
  24. Thanks: "Sev" for the initial idea and testing Features: Jumping: The cvar l4d2_charger_jump lets chargers jump while charging. Collision: The cvar l4d2_charger_charge controls if charging into a survivor grabs them (default game behaviour) or throws them out the way. Pummel: The cvar l4d2_charger_finish will drop survivors after charging with them instead of default game behaviour to pummel. Pickup: The cvar l4d2_charger_pickup let's chargers melee punch survivors to grab and drop them. Survivor Shove: The cvar l4d2_charger_shove lets survivors shove chargers to release a survivor being pummeled or carried. ConVars: Saved to l4d2_charger_action.cfg in your servers \cfg\sourcemod\ folder. PHP Code: // 0=Plugin off, 1=Plugin on. l4d2_charger_allow "1" // 0=Grab survivor on contact (default L4D2). 1=Fling survivors on contact instead of grab (works on bots). l4d2_charger_charge "1" // 0=Pummel after charging and carrying (default L4D2). 1=Drop survivor with no pummel. 2=Drop when a carried survivor is incapped. l4d2_charger_finish "3" // Allow chargers to jump while charging. 0=Off. 1=When alone. 2=Also when carrying a survivor. l4d2_charger_jump "2" // Allow chargers to carry and drop survivors with the melee button (RMB). 0=Off. 1=Grab Incapped. 2=Grab Standing. 4=Drop Incapped. 8=Drop Standing. 16=Grab while charging (requires l4d2_charger_punch cvar). Add numbers together. l4d2_charger_pickup "31" // Allow pummel to be started and stopped while carrying a survivor (LMB). 0=Off. 1=Incapped only. 2=Any survivor. l4d2_charger_pummel "2" // 0=Off. 1=Allow punching while charging. l4d2_charger_punch "1" // 0=Off. 1=Allow a charger to charge again while carrying a survivor, after their charge meter refills. l4d2_charger_repeat "0" // Survivors can shove chargers to release pummeled victims. 0=Off. 1=Release only. 2=Stumble survivor. 4=Stumble charger. 7=All. Add numbers together. l4d2_charger_shove "7" Changes: Code: 1.0 (21-Jul-2018) - Initial release. Bug Reporting: Any issues or errors please explain how to replicate and show your "sm plugins list" and your cvar config. You could recompile the plugin and change "#define DEBUG" 0 to 1, to provide more details. Requirements: Extension: DHooks (Experimental dynamic detour support) Installation: Download the .zip and extract the files to their respective folders in your servers \addons\sourcemod\ folder. Attached Files l4d2_charger_action.zip (24.9 KB) Wyświetl pełny artykuł
  25. Simple plugin that sends a player or a group of players to the spectator team forcefully. Commands Quote: sm_spec <player|#userid|@group> - Sends them to spectator! Attached Files Get Plugin or Get Source (spec.sp - 1.2 KB) spec.smx (5.2 KB) Wyświetl pełny artykuł
×
×
  • Dodaj nową pozycję...