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

    28235
  • Dołączył

  • Ostatnia wizyta

    nigdy
  • Wygrane w rankingu

    11

Treść opublikowana przez MYGO.pl

  1. I've been searching all over google and alliedmodders but i cant find anything related to this. Basically, all i need is a chat function that opens up the steam browser and loads them in to the server's steam group. Done via !group. Additionally, i would like to add a !donation and a !owner(preferably customized to my name but is not as important). Any help here would be gladly appreciated :D THANKS Wyświetl pełny artykuł
  2. Knife sound muter This is a basic plugin, it just disable the annoying knife sound when no damage is dealt (only if Ts knifes others Ts, or CTs knifes others CTs) If mp_teammates_are_enemies is 1, this plugin won't work Cvars mk_enable 1/0 - Enable or disable the plugin Client/players commands (3 same commands) sm_knifemute sm_muteknife sm_mk Future changes - Add sounds when some one type the command - Add an admin cvar to enable plugin for EVERY people in the server - Add an entry to save (or not) the plugin using clientpref Thanks to GAMMACASE for the help :) Video as an example here Attached Files Get Plugin or Get Source (sm_knifemute.sp - 3.7 KB) sm_knifemute.smx (9.4 KB) Wyświetl pełny artykuł
  3. [Retake RWS] Hello guys, I'm SoLo. Currently running A CS:GO Community Server in Hong Kong called HKHBC. I made my very first plugin called Round Win Share for Retake. It's a Rating System based on the Damage done by the player. Compared to other rating systems, RWS is more suitable for retake's limitations. This RWS system is not fully the same as other RWS system,s it has a few differences: When the player disconnects, the plugin will calculate their RWS by how many rounds they have played. The RWS system doesn't count the PLANTING BOMB or DEFUSING BOMB as a validate RWS action. The RWS system only counts the damage that done by the player. Requirements: A MySQL Database How to use: 1.Download the plugin 2.Create a new table in your MySQL database with the following SQL: PHP Code: CREATE TABLE IF NOT EXISTS `rws` ( `id` int(11) NOT NULL AUTO_INCREMENT, `steam` char(255) CHARACTER SET latin1 NOT NULL, `rws` float UNSIGNED NOT NULL DEFAULT '0', `rwscount` int(10) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 3.Configure your /addons/sourcemod/configs/database.cfg and create a Database Entry for the plugin PHP Code: "RRWS" { "driver" "default" "host" "<host of your database>" "database" "<name of the database" "user" "<username of the database>" "pass" "<password of the database>" } How to compile: This plugin uses a color library called <kento_csgocolors> by Kento His profile: rogeraabbccdd You need to have <kento_csgocolors> in order to compile this plugin. if you do not have the library, just change the PPrintToChat, PPrintToChatAll, CPrintToChat and CPrintToChatAll to PrintToChat and PrintToChatAll. Notice: Since this is my very first plugin, the plugin is poorly-written, which may contain bugs. Leave all your problems in the GitHub Repository GitHub: https://github.com/dickylau20/Retakes-RWS Quote: Attachment 171767 Attachment 171768 Attached Files Get Plugin or Get Source (retakes_rws.sp - 11.6 KB) retakes_rws.smx (12.7 KB) Wyświetl pełny artykuł
  4. The first plugin in my knowledge to achieve the ability to swap to the hidden team is "[L4D2] ABM: A MultiSlots / SuperVersus Alternative" by NgBUCKWANGS. However, his latest version has unintentionally blocked the ability to do so (yes, I followed the steps in all versions of ABM like he instructed long ago) . Which is why I adapted MasterMe's "[L4D(2)] AFK and Join Team Commands (1.1)" plugin to grant server admins that ability again. This plugin will grant server admins the ability to join any non-spectating team. - !team2 (Joins the main survivor team via "jointeam2") - !team3 (Joins the infected team via "jointeam 3", only functional in versus modes) - !team4 (Joins the L4D1 Survivor exclusive team, works on all modes and any maps. Additional notes will follow.) Team 4's notes: - You will spawn in the starting area. - When starting the new chapter via transitioning, you will be spectating. Join Team 2, then Team 4 again to play as the supporting team again (make sure you're not idle). - You are not required to be with the main survivor team for certain events that needs "Everyone to be ready". This includes moving to the escape vehicle. - Team 4 Bots are invincible (c6m3_port on campaign or [L4D2] Survivor Bot Holdout (1.3)), Players on Team 4 are not. - Team 4 Players can still take damage, heal, and be brought back with a defibrillator. - Team 4 Players has an inventory just like Team 2, but they cannot drop items like the bots do. A clever edit of another plugin remedies that. - Team 4 will not have a survivor hud, but they can see other player SI's health via hud if in versus modes. - All Infected (with the exception of Player SI) will ignore you unless biled on. Player SI will see your health glow like the other survivors. Bot SI will still hit you if you are in their way (in front of them). - If all (4) Team 4 slots are occupied, no other player can join Team 4, this includes bots on Team 4. - The character selection is ultimately random when joining Team 4. A bot can be kicked to make that character/slot available. - If all of Team 2 dies in Coop modes (not survival), quickly change back to Team 2 to avoid getting kicked from your own game via console. I will fix it soon. - You won't have FPS arms in Team 4. Third person views are just fine. - Shooting Team 2 as Team 4 will not be counted as friendly fire, but Team 2 can still damage Team 4 Players. - Lastly, Team 4 can see all players, human and bot through walls. Attached Files Get Plugin or Get Source (l4d2_team4.sp - 956 Bytes) Wyświetl pełny artykuł
  5. Description:Campaign and map chooser with rating system, groups and sorting. See all functionality on screenshots: - allows to rate campaigns. - allows to choose concrete map within campaign. - allows to sort campaigns by rating. - provides 3 groups, where you can assign map to (for your convenience). Settings:Nothing. Everything are in-game. However, there are special permissions specified directly in plugin: - "Move campaign to another group" is allowed for admin. only (ADMFLAG_ROOT). - "Rate campaign" is allowed for VIP (admin. with ADMFLAG_CUSTOM1, usually "o" flag), there is no vote for rate. Support gamesL4D1 - default maps menu is currently for coop mode only. L4D2 - (untested). Also you cannot choose default maps (no map lists yet). RequirementsSourceMod Basic Votes Plugin (basevotes.smx) by AlliedModders LLC (included is SM core files). Using: - Copy contents of archive to addons/sourcemod/ - Do the steps below. How to prepare / use?To add list of campaigns/maps you need: - GFScape - http://nemesis.thewavelength.net/?p=26 1. When you downloaded map, let's say xxx.vpk, open it in GFScape (e.g. drag & drop) 2. Open file root/missions/xxx.txt and find the key "mission" => "modes". 3. Copy whole section (begin with "coop" key) to your server's file .../addons/sourcemod/configs/MapChanger.txt, where name of the key is a title of campaign. You can find the name of campaign in "DisplayTitle" parameter of xxx.txt file. MapChanger.txt file has already 2 examples ("City17" and "Dead Before Dawn" campaigns). So, study it and you will understand. That's easy. ChangeLog Quote: v.1.0 - Initial release v.1.1 - Added rating system v.1.2 - Added vote for non-admins v.1.3 - Temporarily removed vote functions v.1.4 - Vote is binded to !votemap command - Added msg to @all about selected campaign name - Disabled "The last stand" campaign item menu (for safe reason). - Added ability to use "Rating" functionality for VIPs (flag "o") v.1.5 (2018/10/06) - Added translation into English Attached Images 1.jpg (27.8 KB) 2.jpg (54.5 KB) 3.jpg (32.3 KB) 4.jpg (34.5 KB) 8.jpg (45.4 KB) Attached Files MapChanger_1.5.zip (22.7 KB) Wyświetl pełny artykuł
  6. Description:Allows players to drop the weapon they are holding, or another items they have Settings:l4d_drop_specify - Allow people to drop weapons they have, but are not using (1 - On / 0 - Off) Using:Copy l4ddrop.smx to addons/sourcemod/plugins Copy drop.phrases.txt to addons/sourcemod/translations Translations:English, Russian Author:Frustian, Figa, (edited by Dragokas & SilverShot) ChangeLog: Quote: 1.6. - Update for previous exploit: removed dependency on specific player model (thanks to SilverShot) - Updated translation file. 1.5. - Fixed exploit for infinite pipe/molotov (thanks to SilverShot) 1.3. - Removed F3 key binding 1.3 - Added IsClientInGame() check. 1.2 ... - Original version by Frustian & Figa Attached Files Get Plugin or Get Source (l4ddrop.sp - 8.2 KB) Wyświetl pełny artykuł
  7. Simple plugin that I was unable to find a release for (aside from some AMX ones, and one post that didn't block ALL of the commands.) Honestly maybe there is a cvar for this and I'm just an idiot. All it does is block "Player (RADIO): Thanks!" type messages from spamming chat on large servers. It doesn't block the sounds that are played with them. But if anyone wants an option for that, make a post and I'll add it in. There's nothing to setup, no cvars, just drop into your plugins folder and all radio chat messages will be removed. Changes: - 10.04.2018 (v1.0) initial Attached Files Get Plugin or Get Source (noradiochat.sp - 513 Bytes) Wyświetl pełny artykuł
  8. This plugin is for this map: https://steamcommunity.com/sharedfil.../?id=510119667 It is recording the reached level in SQL and you are able to change between the reached levels. You can use the goto say command for changing levels or you can just type in chat "goto 10". You will need to create traps table in SQL: PHP Code: CREATE TABLE `traps` ( `steamid` varchar(20) NOT NULL, `currentLevel` tinyint(4) NOT NULL, `highestLevel` tinyint(4) NOT NULL, UNIQUE KEY `steamid` (`steamid`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; This is my first plugin and i'm sure that it has bad solutions or bugs so just tell me if you find anything. One known bad solution is the "level" after completing level 100. I cannot prevent the music after it, so I hope you have any idea for this. Attached Files Get Plugin or Get Source (traps.sp - 43.0 KB) Wyświetl pełny artykuł
  9. how take the message ct wins or t wins of the middle screen and sounds too Wyświetl pełny artykuł
  10. What is the point? As far as i could see there are no functioning zombie riot plugins for csgo right now so i tried making one myself using a few zombie reloaded features. How to install? Simply drag configs, gamedata and plugins folder into the right place on your server. The scripting folder is only for viewing source. What do i have to setup? Navigate to configs/unloze_zr/ for all custimization that you wish to do. For giving an idea of how to set everything up i currently filled the files up with content for 19 waves of gameplay. If you want to use all the human/zombie playermodels already specified in the files + soundfiles you can download all custom content here: http://fastdl.unloze.com/csgo_ze/custom_content.rar Otherwise you can replace soundfiles/human/zm playermodels with your own custom content. File purposes classesHuman.txt and classeszm.txt should be obvious, you can add/remove zombies/humans from there and customize some gameplay settings to each class. In Downloads.txt you specify all the custom content you want clients to download. Extra: Here settings are specified that only are loaded once on mapstart. Respawn Time: Delay before respawning Humans that died. round start zclass time: How many seconds after roundstart you allow players to change playermodel with !zclass zmsoundInterval: How often a random zombie should emit a soundfile. botStuckCount: Assuming a player camps and bots cant reach him push zombies upwards after a delay. 0 = 2 seconds, 1= 4 seconds, 5 = 12 seconds etc etc botStuckPush: With what strength to push zombies upwards for reaching camping players. zmsoundsFile: Custom soundfiles that zombies randomly choose between to emit. You can add as many as you want. Global command: If you want to load commands on mapstart you can use this. else just delete it. WaveSettings: These settings are loaded each roundstart to specify what wave is occuring. PlayerScaleAbility: How many extra zombies have to be eliminated per player. HealthScaleAbility: Scaling Health up/downwards based on playercount. Zombie Count: How many initial zombies have to be eliminated per round. The total count of zombies to eliminate is Zombie Count * PlayerScaleAbility. Respawns: How often to respawn players as humans before spawning them as zombies instead. bot_scaling: How many zombies to add per player (this is limitted to such things as playerspawns on a map or bot profiles, you can however edit both things yourself) wavecommand: Specific commands to load on an individual wave, you can have as many as you want. Zombie Class and Human Class. You can per wave specify what human and what zombie classes to use. For that you have to use the classes unique names in the classeshuman and classeszm files. You can also use @all to load all zombie/human classes or @groups to load all classes on the specified team that have a group assigned to them or @flags for all classes that have flags enabled. With this you could potentially also make rounds with specific human classes only for more customization. The Weapons.txt is simply for specifying what weapons to buy in !zclass. This was so far only tested on linux but should probably work too on windows. Attached Files unloze_zombieriot.zip (86.3 KB) Wyświetl pełny artykuł
  11. This project is still within the beta phase, so I would like to invite you guys to help test this out for me. Introduction Communicate between Discord & In-Game, monitor server without being in-game, control the flow of messages and user base engagement! Preview: https://i.imgur.com/xRE3X2S.gif Features - Receive and send messages bidrectionally - Channel configuration for powerful setups - Setup is incrediblily easy with Discord bot commands and simple config files - Upon disconnect, game servers will attempt to reconnect at a fixed interval Prerequisites - Server to host the relay binary on (with MySQL if not external) - Source game server with the [socket](https://forums.alliedmods.net/showthread.php?t=67640) extension - A Discord bot token (https://discordapp.com/developers/applications/) Getting started Check out the repo's README.md for the most up to date instructions! https://github.com/rumblefrog/source-chat-relay Wyświetl pełny artykuł
  12. This project is still within the beta phase, so I would like to invite you guys to help test this out for me. Introduction Communicate between Discord & In-Game, monitor server without being in-game, control the flow of messages and user base engagement! Preview: https://i.imgur.com/xRE3X2S.gif Features - Receive and send messages bidrectionally - Channel configuration for powerful setups - Setup is incrediblily easy with Discord bot commands and simple config files - Upon disconnect, game servers will attempt to reconnect at a fixed interval Prerequisites - Server to host the relay binary on (with MySQL if not external) - Source game server with the [socket](https://forums.alliedmods.net/showthread.php?t=67640) extension - A Discord bot token (https://discordapp.com/developers/applications/) Getting started Check out the repo's README.md for the most up to date instructions! https://github.com/rumblefrog/source-chat-relay Wyświetl pełny artykuł
  13. This project is still within the beta phase, so I would like to invite you guys to help test this out for me. Introduction Communicate between Discord & In-Game, monitor server without being in-game, control the flow of messages and user base engagement! Preview: https://i.imgur.com/xRE3X2S.gif Features - Receive and send messages bidrectionally - Channel configuration for powerful setups - Setup is incrediblily easy with Discord bot commands and simple config files - Upon disconnect, game servers will attempt to reconnect at a fixed interval Prerequisites - Server to host the relay binary on (with MySQL if not external) - Source game server with the [socket](https://forums.alliedmods.net/showthread.php?t=67640) extension - A Discord bot token (https://discordapp.com/developers/applications/) Getting started Check out the repo's README.md for the most up to date instructions! https://github.com/rumblefrog/source-chat-relay Wyświetl pełny artykuł
  14. So I was fooling around thinking about how to create good admin commands that don't exist by default. I fixed up the bury some servers use that fails to work if the player is not on the ground, added fun commands like 1up to respawn a player in the death position, and !revive to respawn a player in general. I also added !heal and the !uberslap from CS 1.6, There's also !rocket which although functions, has no trails and stuff because I'm a bit lazy. I have ensured that if any of the commands mentioned exists, they will NOT be recreated not only to prevent collisions but to ensure you won't have an excuse not to use this plugin. Command List: !revive <#userid|name> - Respawns a player, even if he is dead. !1up / !hrevive <#userid|name> - Respawns a player in his last known death position. !bury <#userid|name> [1/0] - Buries a player underground, default third argument is 1, for bury. !unbury <#userid|name> - Unburies a player from the ground, same as !bury <#userid|name> 0 !uberslap <#userid|name> - Gives a player 100 slaps at a delay of 0.1 per slap ( 10 seconds total ). The player cannot die from this, although he might wanna check where he lands. !heal <#userid|name> [health] - Sets the health of a player. Default third argument is the player's max health. ( usually 100 ) !rr - Restarts the round. !restart - Restarts the server at a 5 seconds delay. Use again to stop the restart from happening. !glow <#userid|name> - Gives glow to a player. default third argument is a random color. Use "!glow <#userid|name> color" for a list of colors ( appears in console ) !blink <#userid|name> - A bit buggy command but works most of time. Teleports a player to your aim. !god / !godmode <#userid|name> [1/0] - Makes a player unkillable, unshootable, etc... Default third argument is 1 for yes. !rocket <#userid|name> [1/0] - Sets a rocket in the player's a**, making him fly to the air until he explodes after reaching the ceiling. "The handsome !slay". Default third argument 1 for yes. 0 will save a player's a**. !disarm <#userid|name> - Removes all weapons from a player, including knife and bomb. All commands above are admin commands which require ADMFLAG_BAN ( Access to ban ). !hug - Hugs a nearby dead player. Doesn't do anything and is purely a use of chat to announce it ( sort of a taunt ) !settings - A command exists in all sourcemod servers, and this plugin doesn't create it. Allows toggling whether or not you'll see party mode effects ( CSGO only ) Cvars: uc_bullet_tagging_scale - Multiplies tagging by this amount. Set to 0.0 to make all guns completely freeze a player ( recovery is still instant of course so a true freeze is impossible ). Set to below 1.0 to make tagging stronger. Set to something like 5000000.0 to disable tagging by all guns. Default value is 1.0 for normal gun behaviour. uc_party_mode - Set to 0 to completely forbid players toggling party mode to themselves ( EVIL!!! ). Set to 1 to allow players to decide whether or not they want to enable party mode through !settings. Set to 2 to have the effects of 1 but the zeus will now cost 100$ like in a regular CSGO birthday ( default value 2 because zeus should cost 100$ :) ) uc_party_mode_default - Set to 1 to make new players have party mode enabled to them by default, 0 to make new players have party mode disabled to them by default ( default value 1 ) _______________________________ If you wanna fix the buggy commands, blink is the only known command to have bugs. Attached Files Get Plugin or Get Source (UsefulCommands.sp - 49.5 KB) Wyświetl pełny artykuł
  15. The plugin finds plugin filename by it's console command. Admin Commands Admin Commands Needed admin flag: b sm_find <command> - Find plugin name and plugin filename sm_findex <command> - Find only plugin filename (useful for ServerCommandEx) Use example Use example If you want connect few plugins without include files If you want to avoid plugin conflict and unload conflicting For example, anti-cheats KAC and SMAC. I have a KAC. I want to exclude the work of SMAC. If in the code of KAC to make unloading of SMAC by the filename smac.smx, then when we change the smac.smx to smac1.smx SMAC will not be unloaded. Using the Plugin Finder we can find out the plugin filename SMAC, for example by command smac_status. How it will look in the code: PHP Code: decl String:sPluginFilename[128]; ServerCommandEx(sPluginFilename, sizeof(sPluginFileame), "sm_findex smac_status"); ServerCommand("sm plugins unload %s", sPluginFilename); Attached Files Plugin Finder.zip (6.7 KB) PluginFinder.smx (4.3 KB) Get Plugin or Get Source (PluginFinder.sp - 2.9 KB) Wyświetl pełny artykuł
  16. Memory Patcher Description: Add "memory patches" to the plugin either by natives or gamedata files that are read from a folder (gamedata/memorypatcher.games/), and restore them at any time. Mem patches that are added from gamedata/memorypatcher.games/ are automatically applied. Patches that are added by natives (MP_AddMemoryPatch or MP_AddMemoryPatchEx) also needs to be applied by using MP_Patch "Preview": Commands: Quote: sm_mp_patchall - z - Patch all existing memory patches sm_mp_restoreall - z - Restore all existing memory patches sm_mp_patch - z - Patch a single memory patch by siglabel sm_mp_restore - z - Restore a single memory patch by siglabel sm_mp_status - z - Print out status of existing memory patches sm_mp_refresh - z - Read from gamedata folder (gamedata/memorypatcher.games/) Gamedata template: Using Peace-Maker's CSGO Movement Unlocker as an example. csgo/addons/sourcemod/gamedata/memorypatcher.games/walkmove.games.txt PHP Code: "Games" { "csgo" { "Addresses" { "CGameMovement::WalkMove_Label" { "windows" { "signature" "CGameMovement::WalkMove" } "linux" { "signature" "CGameMovement::WalkMove" } } } "Signatures" { "CGameMovement::WalkMove" { "library" "server" "windows" "\xF3\x0F\x59\xC0\xF3\x0F\x59\xD2\xF3\x0F\x59\xC9\xF3\x0F\x58\xD0\xF3\x0F\x58\xD1\x0F\x28\xC2\xF3\x0F\x51\xC0\xF3\x0F\x5E\xD8" "linux" "\xF3\x0F\x10\xF0\x0F\x28\xC6\xF3\x0F\x51\xC6\xF3\x0F\x5E\xE8" } } "Offsets" { "PatchOffset" { "windows" "31" "linux" "27" } "PatchByteCount" { "windows" "42" "linux" "15" } } "Keys" { // If the amount of opcodes are less than the PatchByteCount, then it will just append the last opcode for the remaining bytes // in this case it will append 41 NOPs after the first one for windows, 14 for linux "opcodes_windows" "\x90" "opcodes_linux" "\x90" "siglabel" "CGameMovement::WalkMove" } } } memorypatcher.inc: PHP Code: #if defined _memorypatcher_included #endinput #endif #define _memorypatcher_included #define MP_PREFIX " \x09[\x04MemoryPatcher\x09]" #define MP_GAMEDATA_DIR "memorypatcher.games" #define MP_DEBUG_PREFIX "[memorypatcher.smx]" #define MP_TEMP_FILE "temp.memorypatcher.txt" #define MP_PATCH_MAX_NAME_LENGTH 32 #define MP_PATCH_MAX_SIG_LENGTH 256 #define MP_PATCH_MAX_OP_CODES 2048 enum//OSType { OSType_Invalid = 0, OSType_Windows, OSType_Linux, OSType_Mac, OSType_MAX, } enum//LIBType { LIBType_Server = 0, LIBType_Engine, LIBType_MAX, } enum//AddMemoryPatchError { MP_PATCH_ADD_ERROR_EXCEEDED_OP_CODE_COUNT = -2, // Memory patch is too large MP_PATCH_ADD_ERROR_PATCH_EXISTS = -1, // Memory patch already exists MP_PATCH_ADD_ERROR_INVALID_TEMP_FILE = 0, // Should never happend, temp file could not be created (no permissions?) MP_PATCH_ADD_SUCCESS = 1, // If memory patch was successfully added } enum//ApplyMemoryPatchError { MP_PATCH_APPLY_ERROR_NOT_FOUND = -4, // Memory patch sig label was not found MP_PATCH_APPLY_ERROR_IS_PATCHED = -3, // Memory patch was already applied MP_PATCH_APPLY_ERROR_UNKNOWN_ADDRESS = -2, // Could not find the sig MP_PATCH_APPLY_ERROR_UNKNOWN_OFFSET = -1, // Should never happend, could not find offset in config file MP_PATCH_APPLY_ERROR_UNKNOWN_COUNT = 0, // Should never happend, could not find patch byte count MP_PATCH_APPLY_SUCCESS = 1 // If memory patch was successfully applied } enum//RestoreMemoryPatchError { MP_PATCH_RESTORE_ERROR_INDEX_NOT_FOUND = -2, // Should never happend, patch index was not found in stringmap MP_PATCH_RESTORE_ERROR_NOT_FOUND = -1, // Memory patch sig label was not found MP_PATCH_RESTORE_ERROR_IS_RESTORED = 0, // Memory patch was already restored MP_PATCH_RESTORE_SUCCESS = 1 // If memory patch was successfully restored } /** * Get server Operating System * * @return int ostype */ native int MP_GetServerOSType(); /** * Add a memory patch which can be patched or restored at any time * * @param ostype which OS is this sig for (see OSType above) * @param libtype which libtype is this sig for (see LIBType above) * @param siglabel label of your sig * @param sig function signature * @param offset offset inside the function * @param opcodes an array containing all opcodes you want to patch the function with * @param patchbytecount amount of bytes to patch * @return int memory patch error code (see MemoryPatchError above) */ native int MP_AddMemoryPatch(int ostype, int libtype, const char[] siglabel, char[] sig, int offset, int[] opcodes, int patchbytecount); /** * Add a memory patch which can be patched or restored at any time (Single OP code instead of array of opcodes) * * @param ostype which OS is this sig for (see OSType above) * @param libtype which libtype is this sig for (see LIBType above) * @param siglabel label of your sig * @param sig function signature * @param offset offset inside the function * @param opcode the opcode you wanna patch with * @param patchbytecount amount of bytes to patch * @return int memory patch error code (see MemoryPatchError above) */ native int MP_AddMemoryPatchEx(int ostype, int libtype, const char[] siglabel, char[] sig, int offset, int opcode, int patchbytecount); /** * Remove a memory patch (this also restores it to its previous state automatically) * * @param siglabel label of your sig * @return bool true if removed, false if not found */ native bool MP_RemoveMemoryPatch(const char[] siglabel); /** * Check if memory patch exists by label * * @param siglabel siglabel string * @return bool true if exist */ native bool MP_MemoryPatchExists(const char[] siglabel); /** * Check if existing memory patch was patched * * @param siglabel siglabel string * @return bool true if patched, false if not found or if not patched */ native bool MP_IsPatched(const char[] siglabel); /** * Patch all existing memory patches * * @return int amount patched */ native int MP_PatchAll(); /** * Restores all patches to their original state * * @return int amount restored */ native int MP_RestoreAll(); /** * Patch existing memory patch by sig label * * @return int patch error code (see ApplyMemoryPatchError above) */ native int MP_Patch(const char[] siglabel); /** * Restores existing memory patch by sig label * * @return bool true if restored, false if not found */ native bool MP_Restore(const char[] siglabel); /** * Returns amount of existing memory patches added to the plugin * * @return int memory patch count */ native int MP_GetMemoryPatchCount(); /** * Returns amount of existing memory patches added to the plugin * * @return int memory patch count */ native int MP_GetMemoryPatchSigLabel(int index, char[] buffer, int maxlen); /** * AddMemoryPatch or AddMemoryPatchEx should be called here or later (This is called server_spawn event) * * @return void */ forward void MP_OnMemoryPatcherReady(); public KeyValues MP_GenerateGameDataKeyvalues(int ostype, int libtype, const char[] siglabel, char[] sig, int offset, int[] opcodes, int opcodecount) { KeyValues conf = new KeyValues("Games"); char game[32]; GetGameFolderName(game, sizeof(game)); conf.JumpToKey(game, true); conf.JumpToKey("Addresses", true); char sigNameLabel[MP_PATCH_MAX_NAME_LENGTH + 16]; Format(sigNameLabel, sizeof(sigNameLabel), "%s_Label", siglabel); conf.JumpToKey(sigNameLabel, true); char szOsType[16], szLibType[16]; MP_GetOSTypeName(ostype, szOsType, sizeof(szOsType)); MP_GetLIBTypeName(libtype, szLibType, sizeof(szLibType)); conf.JumpToKey(szOsType, true); conf.SetString("signature", siglabel); // Go back to SigLabel conf.GoBack(); // Go back to Addresses conf.GoBack(); // Go back to game version conf.GoBack(); conf.JumpToKey("Signatures", true); conf.JumpToKey(siglabel, true); conf.SetString("library", szLibType); conf.SetString(szOsType, sig); // Go back to Signatures conf.GoBack(); // Go back to game version conf.GoBack(); conf.JumpToKey("Offsets", true); conf.JumpToKey("PatchOffset", true); conf.SetNum(szOsType, offset); // Go back to Offsets conf.GoBack(); conf.JumpToKey("PatchByteCount", true); conf.SetNum(szOsType, opcodecount); // Go back to Offsets conf.GoBack(); // Go back to game version conf.GoBack(); conf.JumpToKey("Keys", true); char[] szOPcodes = new char[opcodecount * 4 + 1]; // One OP code is 2 characters (NOP = 90) add 2 more characters to that '\x' for (int i = 0; i < opcodecount; i++) Format(szOPcodes[i * 4], opcodecount * 4, "\\x%x", opcodes[i]); szOPcodes[opcodecount * 4] = '\0'; conf.SetString("opcodes", szOPcodes); conf.SetString("siglabel", siglabel); conf.Rewind(); return conf; } public void MP_ByteStringArrayToIntArray(const char[] byteStringArray, int[] opcodes, int opcodeLength) { int byteStringLength = strlen(byteStringArray); #if defined DEBUG# MP_Debug("(BYTE STRLEN: %d) (OPCODELENGTH: %d)", byteStringLength, opcodeLength); #endif int opcode = 0; for (int i = 0; i < byteStringLength; i++) { if(byteStringArray[i] == 'x') { char szHex[3]; szHex[0] = byteStringArray[i + 1]; szHex[1] = byteStringArray[i + 2]; szHex[2] = '\0'; opcode = StringToInt(szHex, 16); opcodes[RoundToFloor(float(i) / 4.0)] = opcode; #if defined DEBUG MP_Debug("OPCODE: %x (%d)", opcode, opcode); #endif } } int itMax = opcodeLength * 4; if(byteStringLength < itMax) { #if defined DEBUG MP_Debug("Not enough OPcodes to satisfy array, extending last op code (%x)", opcode); #endif for (int i = RoundToFloor(float(byteStringLength) / float(4)); i < opcodeLength; i++) { opcodes[i] = opcode; #if defined DEBUG MP_Debug("EXTENDED OPCODE: %x (%d)", opcode, opcode); #endif } } } public void MP_GetRestoreErrorCodeString(int errorCode, char[] buffer, int maxlen) { switch(errorCode) { case MP_PATCH_RESTORE_ERROR_INDEX_NOT_FOUND: { Format(buffer, maxlen, "Invalid patch index"); } case MP_PATCH_RESTORE_ERROR_NOT_FOUND: { Format(buffer, maxlen, "Not found"); } case MP_PATCH_RESTORE_ERROR_IS_RESTORED: { Format(buffer, maxlen, "Already restored"); } case MP_PATCH_RESTORE_SUCCESS: { Format(buffer, maxlen, "Success"); } } } public void MP_GetApplyErrorCodeString(int errorCode, char[] buffer, int maxlen) { switch(errorCode) { case MP_PATCH_APPLY_ERROR_NOT_FOUND: { Format(buffer, maxlen, "Not found"); } case MP_PATCH_APPLY_ERROR_IS_PATCHED: { Format(buffer, maxlen, "Already patched"); } case MP_PATCH_APPLY_ERROR_UNKNOWN_ADDRESS: { Format(buffer, maxlen, "Invalid address"); } case MP_PATCH_APPLY_ERROR_UNKNOWN_OFFSET: { Format(buffer, maxlen, "Offset not found"); } case MP_PATCH_APPLY_ERROR_UNKNOWN_COUNT: { Format(buffer, maxlen, "Patch byte count not found"); } case MP_PATCH_APPLY_SUCCESS: { Format(buffer, maxlen, "Success"); } } } public int MP_GetOSTypeByName(const char[] os) { if(StrContains(os, "WIN32", false) != -1) return OSType_Windows; else if(StrContains(os, "LINUX", false) != -1) return OSType_Linux; else return OSType_Mac; } public void MP_GetOSTypeName(int ostype, char[] buffer, int maxlen) { switch(ostype) { case OSType_Windows: { Format(buffer, maxlen, "windows"); } case OSType_Linux: { Format(buffer, maxlen, "linux"); } case OSType_Mac: { Format(buffer, maxlen, "mac"); } default: { LogError("OSType: %d is invalid", ostype); } } } public void MP_GetLIBTypeName(int libtype, char[] buffer, int maxlen) { switch(libtype) { case LIBType_Server: { Format(buffer, maxlen, "server"); } case LIBType_Engine: { Format(buffer, maxlen, "engine"); } default: { LogError("LIBType: %d is invalid", libtype); } } } public bool MP_IsValidOSType(int ostype) { return ostype >= 0 && ostype < OSType_MAX; } public bool MP_IsValidLIBType(int libtype) { return libtype >= 0 && libtype < LIBType_MAX; } public void MP_Debug(const char[] message, any ...) { char szBuffer[254]; VFormat(szBuffer, sizeof(szBuffer), message, 2); PrintToChatAll("%s %s", MP_DEBUG_PREFIX, szBuffer); PrintToServer("%s %s", MP_DEBUG_PREFIX, szBuffer); } public SharedPlugin __pl_memorypatcher = { name = "memorypatcher", file = "memorypatcher.smx", #if defined REQUIRE_PLUGIN required = 1 #else required = 0 #endif }; #if !defined REQUIRE_PLUGIN public __pl_memorypatcher_SetNTVOptional() { } #endif Sample plugin using natives: This would do the same as csgo_movement_unlocker.smx + csgo_movement_unlocker.games.txt does PHP Code: public void OnPluginStart() { if(MP_GetServerOSType() != OSType_Invalid) { switch(MP_GetServerOSType()) { case OSType_Windows: { MP_AddMemoryPatchEx(OSType_Windows, LIBType_Server, "CGameMovement::WalkMove", "\\xF3\\x0F\\x59\\xC0\\xF3\\x0F\\x59\\xD2\\xF3\\x0F\\x59\\xC9\\xF3\\x0F\\x58\\xD0\\xF3\\x0F\\x58\\xD1\\x0F\\x28\\xC2\\xF3\\x0F\\x51\\xC0\\xF3\\x0F\\x5E\\xD8", 31, 0x90, 42); MP_Patch("CGameMovement::WalkMove"); } case OSType_Linux: { MP_AddMemoryPatchEx(OSType_Linux, LIBType_Server, "CGameMovement::WalkMove", "\\xF3\\x0F\\x10\\xF0\\x0F\\x28\\xC6\\xF3\\x0F\\x51\\xC6\\xF3\\x0F\\x5E\\xE8", 27, 0x90, 15); MP_Patch("CGameMovement::WalkMove"); } } } } public void OnPluginEnd() { // Checking if it exists is not required, plugin does this. MP_RemoveMemoryPatch("CGameMovement::WalkMove"); } public void MP_OnMemoryPatcherReady() { switch(MP_GetServerOSType()) { case OSType_Windows: { MP_AddMemoryPatchEx(OSType_Windows, LIBType_Server, "CGameMovement::WalkMove", "\\xF3\\x0F\\x59\\xC0\\xF3\\x0F\\x59\\xD2\\xF3\\x0F\\x59\\xC9\\xF3\\x0F\\x58\\xD0\\xF3\\x0F\\x58\\xD1\\x0F\\x28\\xC2\\xF3\\x0F\\x51\\xC0\\xF3\\x0F\\x5E\\xD8", 31, 0x90, 42); MP_Patch("CGameMovement::WalkMove"); } case OSType_Linux: { MP_AddMemoryPatchEx(OSType_Linux, LIBType_Server, "CGameMovement::WalkMove", "\\xF3\\x0F\\x10\\xF0\\x0F\\x28\\xC6\\xF3\\x0F\\x51\\xC6\\xF3\\x0F\\x5E\\xE8", 27, 0x90, 15); MP_Patch("CGameMovement::WalkMove"); } } } Extra: As it stands in the gamedata template. You are not required to enter every single OP code if you're simply patching all the data with a single OP code, if the amount of bytes are less than PatchByteCount, it will just keep on patching using the most recent OP code found in the "opcodes_<os>" keyvalue DOWNLOAD Wyświetl pełny artykuł
  17. This branch of the revolutionary "ScavengeBots" by Machine (https://forums.alliedmods.net/showthread.php?t=248931) allows for bots to be able to scavenge cans in more maps that were originally not compatible with more logical behavior. Please read everything to become familiar with its changes, some things may show up as bugs when it's really not. Basically, the changes I have made on this version of the plugin adds an event to enable bots to collect gas cans and makes them stop when the other event(s) is triggered. In further detail: - Bots will now begin to scavenge gas cans on the first gas can poured (even if the finale hasn't started or even isn't present). This will resolve the issues with some maps that were otherwise incompatible with the original scavenge bots. (However, while this is a huge improvement, this will NOT support full bot scavenging runs on the originally incompatible maps since they can't pour or even pick up gas cans to begin with, a human player MUST be present to get at least one gas can in order for the bots to get to work. This should also work with Silver's "Pour Gas" plugin just fine.) - Bots will immediately stop scavenging cans to regroup to the nearest player when either the vehicle is coming (Most notibly, The Passing when the bridge lowers), the standard escape has started, or when the escape vehicle is ready altogether. (This will fix issues with bots continuing to scavenge gas cans far after the goal being reached and the escape being available. Be warned, scavenging another can WILL make the bots try to collect cans again. This also may or may not work for maps in the middle of the campaign that features scavenge events.) - This plugin will still use the original scavengebots.cfg that is in the data folder which can be found via the link above. Addon maps can still be added in its proper format to test and experiment with. - For more information, please check the original Scavengebots plugin linked above. Attached Files Get Plugin or Get Source (scavengebotsds.sp - 20.8 KB) Wyświetl pełny artykuł
  18. MYGO.pl

    [cs:go] vip kit

    WELCOME TO MY FIRST PLUGIN! Hi guys. Today i decided to upload my first plugin. First i wanna say sorry for using some "old syntax code" but i dind't knew what is now with the new syntax. WHAT DOES DE PLUGIN DO? The plugin gives you 3 commands! You don't need to use that commands to admin_overides because this plugin his only for people who has "o" flag on admin_simple or whatever you use! -> sm_vipak47 -> sm_vipm4a4 -> sm_vipawp -> Sends message to the player when he uses the command How to install it? -> drag the VIPKIT.smx to your addons/sourcemod/plugins folder -> drag the colors.inc to your addons/sourcemod/scripting/include folder For more information contact me on Steam! Attached Files colors.inc (25.5 KB) Get Plugin or Get Source (VIPKIT.sp - 2.9 KB) VIPKIT.smx (8.3 KB) Wyświetl pełny artykuł
  19. Description You're giving a 5x5 bored with mines randomly placed in one of the boxes. Clicking a square without any mines inside of it will give you profit, but clicking a square with a mine will result in a lost, as well as loosing your credits you have bet. To open a square click on the number corresponding with the text SELECT on it. Controls are simple UP, DOWN, LEFT, and RIGHT. ConVars sm_mines_max_bet = <1.0/...> Default (5000) sm_one_mine_game = <1/0> Default (1) sm_three_mine_game = <1/0> Default (1) sm_five_mine_game = <1/0> Default (1) sm_twenty_four_mine_game = <1/0> Default (1) DEPENDENCIES Zephyrus Store Change Log Code: 1.0 - Released plugin Attached Files Get Plugin or Get Source (ar_minesweeper.sp - 33.4 KB) ar_minesweeper.smx (17.4 KB) Wyświetl pełny artykuł
  20. Hello! I'm trying to make a HNS EASYBLOCK server. How ever i feel like something is missing. So my first question is.. Is there any type of SHOP menu for free? For example that you earn xx $ per kill and you could purchase diffrent stuff in game that stays permanent. Like less fall damage, more hp, faster HP recovery. Also i wanted to ask if someone could create a new design to blocks instead of the free block that is included in the BlockMaker plugin (This i will of course pay for).. I want something VERY Basic, just something smooth and easy so nothing advanced at all. Please comment if i make no sense, because it most likley do not. Thanks for reading, have a great weekend! <3 Wyświetl pełny artykuł
  21. If you are tired of infinite ammo players joining your legit server and spamming !guns on chat, this plugin will blow up anyone who does it. CVars: sm_decoyguns_enable (1/0) (Default: 1) Enables or disables the plugin. sm_decoyguns_verbose (1/0) (Default: 1) Plays a little taunt and prints current death toll when someone explodes. sm_decoyguns_sound (String) (Default: "voice/command/alt2/no3.wav") Sound to play. Supports custom colors and translations. Needs More Colors to compile Conflicts with this plugin, obviously. Attached Files nmrih_decoy_guns.zip (16.6 KB) Wyświetl pełny artykuł
  22. Plugin to display distance and height difference between two points. It may be used on bhop/surf/kz timer servers to measure distances. How it works: Player access menu with sm_dist or sm_distance Sets 2 points by aiming at any surface and clicking options in menu Once both points are set player can select option to print distance in chat. Display example: ([PD] Δx: 74.0 | Δy: 135.0 | Δz: 80.9 | Δxy: 153.9) Features: Togglable point snapping Beam drawing without any downloads Beam is only visible for player who set it while in menu Download: Get plugin Get source Wyświetl pełny artykuł
  23. Hi, This plugin tries the match the hits to the witch swiping animation on incapped survivors like the witch from L4D1. Don't Look Spoiler Why you look? Cvars: PHP Code: // damage each time witch hits while incapped // - // Default: "30" // Minimum: "1.000000" z_witch_damage_per_incap_hit "30" Thanks Timocop Attached Files Get Plugin or Get Source (witch_hit_to_animation_fix.sp - 2.0 KB) Wyświetl pełny artykuł
  24. FreeKill Reporter (This is my first plugin) - There're a lot of Freekill reporter plugins, but i've decided to make this one a bit different. Now the report will be shown to EVERYONE, with a message on the chat, a center message and a sound (you can change the sound if you don't want to use my custom one, or just put "" in the cvar if you don't want to play any sound when some one type the command. Plugin's characteristics: - You can type !fk or !freekill to launch a report - Command allowed only if: a) You are Terrorist b) You have been killed by a CT c) You are dead (of course) d) Command allowed only once time per round Cvars: In my case (custom): freekill_sound_allow "nano/beep2.mp3" You can change the path of the sound typing: freekill_sound_allow "custom/custom_sound.mp3" DO NOT TYPE sound/ BEFORE!! AN EXAMPLE ON THE IMAGE BELLOW (the image show a spanish translate made by me for my server but the code is in english) ANY IDEAS OR BUG REPORTS ARE WELCOME! Thanks to: BLACK_STAR for help rio JoinedSenses BraveFox for the code base https://forums.alliedmods.net/showthread.php?t=291342 Attached Files sm_fk.smx (7.3 KB) Get Plugin or Get Source (sm_fk.sp - 4.4 KB) sound.zip (39.7 KB) Wyświetl pełny artykuł
  25. . Get Particle List v1.0.0 Description: Very simple plugin for retrieving current particles from the particle table and writing them to a file Command: sm_getparticlelist Output Destination: configs/particles/fullparticlelist.txt Project here: Github Wyświetl pełny artykuł
×
×
  • Dodaj nową pozycję...