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. Somenoe can help how i can do this in modern fakemeta function? I think it is related to "m_signals" // class CUnifiedSignals Some idea? PHP Code: #define m_flNextMapZoneTime 233 #define m_fClientMapZone 235 stock UpdatePlayerMapZones(iId) { // Make PreThink call CBasePlayer::HandleSignals at the next frame set_pdata_float(iId, m_flNextMapZoneTime, 0.0) // Clear mask from all MapZones, this will check it's specific huds // In this case we will clear the related StatusIcon message for "buyzone" set_pdata_int(iId, m_fClientMapZone, 0) } Przeczytaj cały wpis
  2. MYGO.pl

    Flag rank

    I searched a lot, but found nowhere someone could or has a capture flag rank in case the accurate rank shows how many flag were captured and retrieved and show flag top10 too I'm using Just Capture the Flag (CTF) v1.32c (26 Jun 2012) https://forums.alliedmods.net/showthread.php?t=132115 Przeczytaj cały wpis
  3. MYGO.pl

    Admin skin

    A friend made this plugin, but we are having some problems, there are some bugs still like a check for when the player changes teams doesn't have the same skin as before because this will be put into a flag capture mode and sometimes it happens that the team changes this is code someone knows how to do If someone has some suggestions will also be welcome PHP Code: #include <amxmodx> #include <amxmisc> #include <cstrike> #define PLUGIN "admin model" #define VERSION "1.0" #define AUTHOR "LKING01" #define ADMIN_LEVEL_Q ADMIN_LEVEL_C public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /model", "admin") } public plugin_precache() { precache_model("models/player/new/TR_01/TR_01.mdl") precache_model("models/player/new/CT_01/CT_01.mdl") // precache_model("") // precache_model("") // precache_model("") // precache_model("") // precache_model("") // precache_model("") } public admin(id) { if (get_user_flags(id) & ADMIN_LEVEL_H) { model_menu(id) } else { ChatColor(id, "!t[!gFlag HunTer's!t] Somente para admin!") } } public model_menu(id) { if ( !is_user_connected( id ) ) { return; } new menu = menu_create("\r[\wMENU DE PLAYER MODELS\r]\r", "player_models") switch ( get_user_team( id ) ) { case 1: { menu_additem(menu, "\wPLAYER MODEL [ADMIN]-[TR]", "1", 0) menu_additem(menu, "\wPLAYER MODEL [ADMIN]-[TR]", "2", 0) menu_additem(menu, "\wPLAYER MODEL [ADMIN]-[TR]", "3", 0) menu_additem(menu, "\wPLAYER MODEL [ADMIN]-[TR]", "4", 0) } case 2: { menu_additem(menu, "\wPLAYER MODEL [ADMIN]-[CT]", "5", 0) menu_additem(menu, "\wPLAYER MODEL [ADMIN]-[CT]", "6", 0) menu_additem(menu, "\wPLAYER MODEL [ADMIN]-[CT]", "7", 0) menu_additem(menu, "\wPLAYER MODEL [ADMIN]-[CT]", "8", 0) } default: { menu_destroy( menu ); return; } } menu_setprop(menu, MPROP_EXITNAME, "Sair") menu_display(id, menu, 0); } public player_models(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new acces, callback menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1 : cs_set_user_model(id, "TR_01") case 2 : cs_set_user_model(id, "") case 3 : cs_set_user_model(id, "") case 4 : cs_set_user_model(id, "") case 5 : cs_set_user_model(id, "CT_01") case 6 : cs_set_user_model(id, "") case 7 : cs_set_user_model(id, "") case 8 : cs_set_user_model(id, "") } menu_destroy(menu) return PLUGIN_HANDLED } stock ChatColor(const id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, "!g", "^4"); replace_all(msg, 190, "!n", "^1"); replace_all(msg, 190, "!t", "^3"); replace_all(msg, 190, "!t2", "^0"); if (id) players[0] = id; else get_players(players, count, "ch"); { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } } Przeczytaj cały wpis
  4. Description: Display online admins by groups (or ranks). Example of output: Code: [SM] Owners: Ilusion, p1mple [SM] Mods: baitzera [SM] Helpers: ZyWhO?, ecov1ceCommands: Code: sm_adminsConfiguration file example: Code: "Display Admins" { // Name of the group - unique flag (groups below this group must not have this flag) "Owners" "z" "Mods" "d" "Helpers" "b" }GitHub: https://github.com/Ilusion9/sm-display-admins-by-groups Wyświetl pełny artykuł
  5. Hello, are there are any free umbrella swarm admin packs (without bugs) for cs 1.6? I lost mine by reseting windows. Thanks :) Przeczytaj cały wpis
  6. This Plugin By EZU Attached Files Password.smx (5.8 KB) Wyświetl pełny artykuł
  7. I made a sample amxx ,but it doesn't work well .When clients connected ,it makes clients change their name many times,cyclically! But I just want them to change one time . [.sma] .. public client_infochanged( id ) { if( is_user_admin(id) ) { format( newname, charsmax( newname ), "%s %s", tag1, oldname ); set_user_info( id, "name", newname ); return PLUGIN_HANDLED; } else { format( newname, charsmax( newname ), "%s %s", tag2, oldname ); set_user_info( id, "name", newname ) ; return PLUGIN_HANDLED; } return PLUGIN_HANDLED; } .. Is the code "return PLUGIN_HANDLED" has some thing worng? Przeczytaj cały wpis
  8. Quote: /* Do not edit this file unless you know what you are doing! */ "Games" { "csgo" { /* FFA patch bytes */ "Keys" { "LagCompPatch_Windows" "\xEB" "LagCompPatch_Linux" "\x90\x90\x90\x90\x90\x90" "TakeDmgPatch1_Windows" "\xEB" "TakeDmgPatch1_Linux" "\x90\x90\x90\x90\x90\x90" "TakeDmgPatch2_Windows" "\xEB" "TakeDmgPatch2_Linux" "\x90\x90\x90\x90\x90\x90" "CalcDomRevPatch_Windows" "\x90\x90\x90\x90\x90\x90" "CalcDomRevPatch_Linux" "\x90\x90" } "Offsets" { /* Patch offsets for FFA */ "LagCompPatch" { "windows" "81" "linux" "47" } "TakeDmgPatch1" { "windows" "714" "linux" "1244" } "TakeDmgPatch2" { "windows" "870" "linux" "6800" } /* Offset into gamerules constructor - bogo value linux/mac */ "g_pGameRules" { "windows" "49" "linux" "47" } /* Virtual indexes */ "IPointsForKill" { "windows" "82" "linux" "83" } "Weapon_GetSlot" { "windows" "292" "linux" "293" } "RemoveAllItems" { "windows" "388" "linux" "389" } "GiveAmmo" { "windows" "278" "linux" "279" } /* Next _two_ are detour byte "save" counts */ "DropWeaponsPatch" { "windows" "6" "linux" "6" } "CSWeaponDropPatch" { "windows" "6" "linux" "6" } "CalcDomRevPatch" { "windows" "86" "linux" "111" } } "Signatures" { "UTIL_Remove" { "library" "server" "windows" "\x55\x8B\xEC\x8B\x45\x2A\x85\xC0\x74\x2A\x83 \xC0\x2A\x50" "linux" "@_Z11UTIL_RemoveP11CBaseEntity" } "RoundRespawn" { "library" "server" "windows" "\x55\x8B\xEC\x83\xEC\x0C\x53\x56\x8B\xF1\x8B \x0D\x2A\x2A\x2A\x2A\x57\x8B\x01" "linux" "\x55\x89\xE5\x57\x56\x53\x83\xEC\x4C\xA1\x2A \x2A\x2A\x2A\x8B\x5D\x08\x89\x04\x24\xE8\x2A\ x2A\x2A\x2A\x84\xC0\x0F\x85" } "OnTakeDamage" { "library" "server" "windows" "\x55\x8B\xEC\x83\xE4\xF0\x81\xEC\x28\x02\x00 \x00\x56\x57" "linux" "\x55\x89\xE5\x57\x56\x53\x81\xEC\x2A\x2A\x00 \x00\x8B\x45\x0C\x8B\x75\x08\x8B\x10" } "WantsLagComp" { "library" "server" "windows" "\x55\x8B\xEC\x83\xEC\x10\x56\x57\x8B\xF9\x8B \x0D\x2A\x2A\x2A\x2A\x81\xF9\x2A\x2A\x2A\x2A\ x75" "linux" "\x55\x89\xE5\x83\xEC\x68\xA1\x2A\x2A\x2A\x2A \x89\x5D\xF4\x89\x75\xF8\x8B\x5D\x0C\x89\x7D\ xFC\x8B\x75\x08\x3D" } "CGameRules" { "library" "server" "windows" "\x56\x68\x2A\x2A\x2A\x2A\x8B\xF1\xE8\x2A\x2A \x2A\x2A\xA1" "linux" "\x55\x89\xE5\x83\xEC\x28\x89\x5D\xF4\x8B\x5D \x08\x89\x75\xF8\x89\x7D\xFC\xC7\x44\x24\x04\ x2A\x2A\x2A\x2A\x89\x1C\x24" } //ValveBiped.Bip01_R_Hand "CSWeaponDrop" { "library" "server" "windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x83\xE4\xF8\x83\xC4 \x04\x55\x8B\x6B\x04\x89\x6C\x24\x04\x8B\xEC\ x83\xEC\x34\x56" "linux" "\x2A\x2A\x2A\x2A\x2A\x2A\xEC\x70\x8B\x5D\x08 \x0F\xB6\x75\x10" } "DropWeapons" { "library" "server" "windows" "\x55\x8B\xEC\x83\xE4\xF0\x81\xEC\x78\x02\x00 \x00\x83\x3D\x2A\x2A\x2A\x2A\x00" "linux" "\x55\x89\xE5\x83\xEC\x38\x0F\xB6\x45\x10\x89 \x5D\xF4\x89\x75\xF8\x8B\x5D\x08" } "CalcDominationAndRevenge" { "library" "server" "windows" "\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\xB9\x2A\x2A \x2A\x2A\xFF\x50\x34\x85\xC0\x0F\x85\x2A\x2A\ x2A\x2A\x8B\x0D" "linux" "\x55\x89\xE5\x83\xEC\x38\x8B\x4D\x14\x89\x5D \xF4\xA1" } } } "cstrike" { /* FFA patch bytes */ "Keys" { "LagCompPatch_Windows" "\xEB" "LagCompPatch_Linux" "\x90\x90\x90\x90\x90\x90" "LagCompPatch_Mac" "\x90\x90\x90\x90\x90\x90" "TakeDmgPatch1_Windows" "\xEB" "TakeDmgPatch1_Linux" "\x90\x90\x90\x90\x90\x90" "TakeDmgPatch1_Mac" "\x90\x90\x90\x90\x90\x90" "TakeDmgPatch2_Windows" "\xEB" "TakeDmgPatch2_Linux" "\x90\x90\x90\x90\x90\x90" "TakeDmgPatch2_Mac" "\x90\x90\x90\x90\x90\x90" "CalcDomRevPatch_Windows" "\x90\x90\x90\x90\x90\x90" "CalcDomRevPatch_Linux" "\x90\x90" "CalcDomRevPatch_Mac" "\x90\x90\x90\x90\x90\x90" } "Offsets" { /* Patch offsets for FFA */ "LagCompPatch" { "windows" "46" "linux" "31" "mac" "32" } "TakeDmgPatch1" { "windows" "828" "linux" "564" "mac" "746" } "TakeDmgPatch2" { "windows" "828" "linux" "564" "mac" "746" } /* Offset into gamerules constructor - bogo value linux/mac */ "g_pGameRules" { "windows" "5" "linux" "1" "mac" "1" } /* Virtual indexes */ "IPointsForKill" { "windows" "80" "linux" "81" "mac" "81" } "Weapon_GetSlot" { "windows" "268" "linux" "269" "mac" "269" } "RemoveAllItems" { "windows" "342" "linux" "343" "mac" "343" } "GiveAmmo" { "windows" "252" "linux" "253" "mac" "253" } /* Next _two_ are detour byte "save" counts */ "DropWeaponsPatch" { "windows" "6" "linux" "6" "mac" "6" } "CSWeaponDropPatch" { "windows" "9" "linux" "6" "mac" "6" } "CalcDomRevPatch" { "windows" "65" "linux" "96" "mac" "86" } } "Signatures" { "UTIL_Remove" { "library" "server" "windows" "\x55\x8B\xEC\x56\x57\x8B\x7D\x08\x8B\xF1\x57 \xE8\x2A\x2A\x2A\x2A\x8B\x0D\x2A\x2A\x2A\x2A\ x57\x56" "linux" "@_Z11UTIL_RemoveP11CBaseEntity" "mac" "@_Z11UTIL_RemoveP11CBaseEntity" } "RoundRespawn" { "library" "server" "windows" "\x55\x8B\xEC\x51\x89\x2A\x2A\x8B\x2A\x2A\x8B \x10\x8B" "linux" "@_ZN9CCSPlayer12RoundRespawnEv" "mac" "@_ZN9CCSPlayer12RoundRespawnEv" } "OnTakeDamage" { "library" "server" "windows" "\x55\x8B\xEC\x81\xEC\x2A\x2A\x2A\x2A\x56\x89 \x4D\xFC\x8B\x45\x2A\x50\x8D\x8D\x2A\x2A\x2A\ x2A\xE8" "linux" "@_ZN9CCSPlayer12OnTakeDamageERK15CTakeDamage Info" "mac" "@_ZN9CCSPlayer12OnTakeDamageERK15CTakeDamage Info" } "WantsLagComp" { "library" "server" "windows" "\x55\x8B\xEC\x83\xEC\x10\xA1\x2A\x2A\x2A\x2A \x56\x8B\xF1\x57" "linux" "@_ZNK11CBasePlayer28WantsLagCompensationOnEn tityEPKS_PK8CUserCmdPK7CBitVecILi2048EE" "mac" "@_ZNK11CBasePlayer28WantsLagCompensationOnEn tityEPKS_PK8CUserCmdPK7CBitVecILi2048EE" } "CGameRules" { "library" "server" "windows" "\x55\x8B\xEC\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9 \x74\x07" "linux" "@g_pGameRules" "mac" "@g_pGameRules" } "CSWeaponDrop" { "library" "server" "windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x01\x00\x00\x89\x4D \xFC\xC6\x45\x2A\x2A\x8B\x4D\x2A\xE8\x2A\x2A\ x2A\x2A\x0F\xB6\xC0" "linux" "@_ZN9CCSPlayer12CSWeaponDropEP17CBaseCombatW eaponbb" "mac" "@_ZN9CCSPlayer12CSWeaponDropEP17CBaseCombatW eaponbb" } "DropWeapons" { "library" "server" "windows" "\x55\x8B\xEC\x83\xEC\x2A\x89\x4D\x2A\xC7\x45 \x2A\x00\x00\x00\x00\xEB\x2A\x8B\x45\x2A\x83\ xC0\x01\x89\x45\x2A\x83" "linux" "@_ZN9CCSPlayer11DropWeaponsEbb" "mac" "@_ZN9CCSPlayer11DropWeaponsEbb" } "CalcDominationAndRevenge" { "library" "server" "windows" "\x55\x8B\xEC\x51\xA1\x2A\x2A\x2A\x2A\x89\x4D \xFC\x83\x78\x30\x00\x0F\x85\x2A\x2A\x2A\x2A\ x57\x8B" "linux" "@_ZN12CCSGameStats24CalcDominationAndRevenge EP9CCSPlayerS1_Pi" "mac" "@_ZN12CCSGameStats24CalcDominationAndRevenge EP9CCSPlayerS1_Pi" } } } } Someone who send me updated file, i will pay with paypal. PM if interested! Przeczytaj cały wpis
  9. Hello Guys! I have big news! All class playing afk bot is here! (But %30 finished) (Sorry, bad coded, codes are complex) Features -Pathfinding -All class playing AI -Auto enable for afk client -Smooth Aim -And More! Test Video Credits -Pelipokia | Some Stocks -tRololo312312 | AFK Bot plugin based on tRololo312312's "AFK Medic Bot" plugin Please Help For This. -Hide from the enemy (If health is low or enemy is ubered, etc.) -Demoman Sticky Traps -Auto Snipe for Sniper bots (in koth_ maps) -Engineer Bot improve -Improved Look Around -Join Taunting Players -Use Teleporter -Dedect Low Ammo -Reload Weapons For Battle -Improve PathFinding -Navigation Jumps -More Weapon Support -More Map Support Bugs -Engineer bots doesn't working on ctf_2fort -When bot stucked, sometimes jump not working AFK-Bots Can Play koth_ (all hoth maps) ctf_2fort Maps AFK-Bot uses map navigations nav_generate_fixup_jump_areas "0" For removes jump areas AFK Bot Requires Pathfollower & TF2 Stocks (tf2_flag.inc, tf2_meter.inc, weapons.inc) Pathfollower (Extension) : https://forums.alliedmods.net/showthread.php?t=312133 TF2 Stocks : https://forums.alliedmods.net/showthread.php?t=126357 Cvars Code: sm_afk_bot_version // Plugin Version sm_afk_bot_max_idle_time "60.0" // Maximum idle time, if any player reaches this time = afkbot enabled for this playerDon't use afk manager plugins for plugin works! Put "plugin.afkbot.cfg" to "tf\cfg\sourcemod\" If bot stucked = bad navigation file, ctf_2fort navigation is always bad generated (i give to you fixed version) Have Fun! Attached Files afk_bot.smx (51.4 KB) Get Plugin or Get Source (afk_bot.sp - 184.0 KB) plugin.afkbot.cfg (353 Bytes) ctf_2fort fixed navigation.zip (91.2 KB) Wyświetl pełny artykuł
  10. The first thing I would like to say - the philosophy of this library is that all manipulations are reproduced without creating and needing additional files on the server. This library is under development and because of this - WINDOWS ONLY. It was posted to show the capabilities of the library, as well as possible feedback. Special thanks to Kailo for assistance in training ASM, working with debugger/IDA This "weapon" was created for convenient work with other .dll, because in SourcePawn functions you can work only with 3 => server/engine/matchmaking_ds What came of this? - Let's look at its structure => PHP Code: #define Pointer Address #define nullptr Address_Null #define PTR(%0) view_as<Pointer>(%0) OS GetServerOS() int HexToDec(const char[] hex) int IsHexSymbol(int ch) enum struct MemoryEx { Pointer pAddrBase; OS os; bool bSaveBytes; bool bInit; ModifByte lastModif; ArrayList hModifList; StringMap hModules; // --------------functions-------------- bool Init(); OS GetOS(); void GetWindowsVersion(int& iMajorVer, int& iMinorVer); void SetAddr(any address); Pointer GetAddr(); void Add(any iOffset); void SaveBytes(bool save); bool NeedSave(); void RestoreBytes(); void ChangeSettings(bool bSave = true); Pointer InitModule(const char[] sName); Pointer GetBaseAddress(const char[] sName); int GetModuleSize(const char[] sName); Pointer GetEndModule(const char[] sName); Pointer GetModuleHandle(const char[] name); Pointer GetProcAddress(const char[] sLibrary, const char[] sName); Pointer FindPattern(Pointer base, any size, const int[] pattern, int iLength, int iOffset = 0); int ReadByte(int iOffset = 0); void WriteByte(any iByte, int iOffset = 0, int flags = MemoryEx_NoNeedAdd); int ReadWord(int iOffset = 0); void WriteWord(any iWord, int iOffset = 0, int flags = MemoryEx_NoNeedAdd); int ReadInt (int iOffset = 0); void WriteInt(any iNumber, int iOffset = 0, int flags = MemoryEx_NoNeedAdd); void WriteData(const int[] data, int iSize, int flags = MemoryEx_NoNeedAdd); int ReadString(char[] sString, int iMaxLength); void WriteString(const char[] sString, bool bNull = true, int flags = MemoryEx_NoNeedAdd); void WriteUnicodeString(const char[] sString, bool bNull = true, int flags = MemoryEx_NoNeedAdd); Pointer FindString(const char[] sModule, const char[] sString); Pointer FindUnicodeString(const char[] sModule, const char[] sString); Pointer FindValue(const char[] sModule, any iValue, int iNextByte = 0x2A ); } The most interesting feature as for me -> Pointer GetModuleHandle(const char[] name) which calls and returns the result of WINAPI GetModuleHandleW through SourcePawn :) What an interesting feature GetModuleHandle? MemoryEx calls the WINAPI function GetModuleHandleW to get the Base Address of any library. What is she doing? As you can see, the first argument it takes is the name of the library whose address you need to get, but to use GetModuleHandleW, you need a unicode string. What to do? - That's why the function MemoryEx :: WriteUnicodeString was created. In free memory, we generate this line, indent a little [0x10] and we need to create a function that calls it, pseudo-code on ASM => PHP Code: push [string address] call dword ptr [GetModuleHandleW] retn What does this library do? GetModuleHandleW in server.dll is used in two cases and in all - it uses kernel32.dll as an input parameter. Therefore, we are looking for the address of this string, and you can use MemoryEx::FindString, but because it is unicode - we use MemoryEx::FindUnicodeString. After we find the address of this line - we look for where this line is used through MemoryEx::FindValue. You can also notice that the last argument in this function is the auxiliary byte 0xFF, what is it? PHP Code: .text:1072C378 56 push esi .text:1072C379 68 EC D5 79 10 push offset aKernel32Dll_0 ; "kernel32.dll" .text:1072C37E FF 15 F4 E0 78 10 call ds:GetModuleHandleW If we analyze where this line is used, we can see that always after it comes call ds: GetModuleHandleW, i.e. the first byte = 0xFF. And so, we found out where kernel32.dll is used - now we do the offset + 0x6 and thereby load the GetModuleHandleW address. And so, how does it look in the library? => PHP Code: Pointer pKernelStr = this.FindUnicodeString("server", "kernel32.dll"); Pointer module = this.FindValue("server", pKernelStr, 0xFF) + PTR(0x06); if(pKernelStr == nullptr || module == nullptr) { this.ChangeSettings(false); LogStackTrace("GetModuleHandles failed -> Base = 0x%X pKernelStr 0x%X module 0x%X end = 0x%X", g_ServerDLL.base, pKernelStr, module, g_ServerDLL.base + PTR(g_ServerDLL.size) ); return nullptr; } module = PTR(LoadFromAddress(module, NumberType_Int32)); Further actions are: PHP Code: static int offsetForString = 0x10; // offset between string and function static int offsetForEnd = 0x100; int iLengthStr = strlen(name); this.SetAddr((view_as<int>(g_ServerDLL.base) + g_ServerDLL.size) - offsetForEnd - offsetForString - (iLengthStr * 2)); // Address for string Pointer pString = this.GetAddr(); // this.WriteUnicodeString(name) returns us the address where the last byte of the line was written and we are doing a small offset to write the function itself. this.SetAddr( this.WriteUnicodeString(name) + PTR(offsetForString)); Pointer pFunc = this.GetAddr(); // Will Implement the function from the pseudocode, which was higher this.WriteByte(0x68, _, MemoryEx_AddAfterWrite); // push this.WriteInt(pString, _, MemoryEx_AddAfterWrite); // string address this.WriteWord(0x15FF, _, MemoryEx_AddAfterWrite); // call dword ptr this.WriteInt(module, _, MemoryEx_AddAfterWrite); // Address GetModuleHandleW this.WriteByte(0xC3, _, MemoryEx_AddAfterWrite); // retn To make it more clear, this eventually led to this: Result Next, just call SDKCall and get the Base Address of any dll that interests us PHP Code: StartPrepSDKCall(SDKCall_Static); PrepSDKCall_SetAddress(pFunc); PrepSDKCall_SetReturnInfo(SDKType_PlainOldData, SDKPass_Plain); Handle h = EndPrepSDKCall(); Pointer iRes = SDKCall(h); Descriptions of some functions: MemoryEx::Init You must call this function when initializing MemoryEx, it determines the OS of the server, base address + size server.dll / .so. This allows you to use all the functions from this library. If you try to find some line, but don't do Memory::Init(), then your plugin will cause a similar error Code: L 12/18/2019 - 19:33:28: [SM] Stack trace requested: MemoryEx wasn't be initialized L 12/18/2019 - 19:33:28: [SM] Called from: nobots_bypass.smx L 12/18/2019 - 19:33:28: [SM] Call stack trace: L 12/18/2019 - 19:33:28: [SM] [0] LogStackTrace L 12/18/2019 - 19:33:28: [SM] [1] Line 437, E:\server\bhopserver\csgo\addons\sourcemod\records\2\include\MemoryEx.inc::MemoryEx::GetModuleSize L 12/18/2019 - 19:33:28: [SM] [2] Line 735, E:\server\bhopserver\csgo\addons\sourcemod\records\2\include\MemoryEx.inc::MemoryEx::FindString L 12/18/2019 - 19:33:28: [SM] [3] Line 18, nobots_bypass.sp::OnPluginStart MemoryEx::SaveBytes/MemoryEx::NeedSave/MemoryEx::RestoreBytes void MemoryEx::SaveBytes(bool) - Do need to save bytes that were changed during work the plugin. bool MemoryEx::NeedSave => true - Do need to save bytes. void MemoryEx::RestoreBytes - restores all changed bytes. Example: PHP Code: #include <MemoryEx> MemoryEx g_hMem; public void OnPluginStart() { RegServerCmd("sm_nobots", Cmd_NoBots); } public Action Cmd_NoBots(int iArgs) { if(iArgs) { g_hMem.RestoreBytes(); } else { if(g_hMem.Init()) { g_hMem.SaveBytes(true); Pointer pEnd = g_hMem.GetEndModule("server"); g_hMem.SetAddr(pEnd - PTR(0x200)); g_hMem.WriteString("Memory", _, MemoryEx_AddAfterWrite); g_hMem.WriteUnicodeString("Extended", _, MemoryEx_AddAfterWrite); g_hMem.WriteByte(0x31, _, MemoryEx_AddAfterWrite); g_hMem.WriteWord(0x32, _, MemoryEx_AddAfterWrite); g_hMem.WriteInt(0x33, _, MemoryEx_AddAfterWrite); } } } Result [Gif] GetModuleHandle/InitModule/GetBaseAddress/GetModuleSize/GetEndModule Pointer GetModuleHandle(const char[] library) - Returns the Base Address of the specified module [Based WINAPI GetModuleHandleW]. "0" - Returns the address of srcds. Pointer InitModule(const char[] library) - Initializes the Base/End address of the specified module Pointer GetBaseAddress(const char[] library) - Returns Base Address from an initialized module int GetModuleSize(const char[] library) - Returns the initialized module size Pointer GetEndModule(const char[] library) - Returns the address of the last initialized byte of the module [MemoryEx::GetBaseAddress + MemoryEx::GetBaseAddres] Example: PHP Code: #include <MemoryEx> public void OnPluginStart() { MemoryEx mem; if(!mem.Init()) return; Pointer base = mem.GetModuleHandle("kernel32.dll"); Pointer base1 = mem.InitModule("kernel32.dll"); Pointer base2 = mem.GetBaseAddress("kernel32.dll"); Pointer srcds = mem.GetModuleHandle("0"); int size = mem.GetModuleSize("kernel32.dll"); Pointer end1 = base1 + PTR(size); Pointer end2 = mem.GetEndModule("kernel32.dll"); PrintToServer("base [0x%X] == base1 [0x%X] == base2 [0x%X] size [0x%X] end1 [0x%X] == end2 [0x%X] srcds [0x%X]", base, base1, base2, size, end1, end2, srcds); } Result Examples of using 1) Inject .dll through SourcePawn [GetProcAddress + call WINAPI LoadLibraryA] PHP Code: #include <MemoryEx> public void OnPluginStart() { MemoryEx mem; if(!mem.Init()) return; mem.InitModule("kernel32.dll"); Pointer libAddr = mem.GetProcAddress("kernel32.dll", "LoadLibraryA"); StartPrepSDKCall(SDKCall_Static); PrepSDKCall_AddParameter(SDKType_String, SDKPass_Pointer); PrepSDKCall_SetAddress(libAddr); PrepSDKCall_SetReturnInfo(SDKType_PlainOldData, SDKPass_Plain); Handle h = EndPrepSDKCall(); int baseDLL = SDKCall(h, "D:/CSS_HOOK.dll"); delete h; PrintToServer("libaddr = 0x%X Base Address DLL = 0x%X ",libAddr, baseDLL); } Result What will my plugin `bypass nobots` look like if I will code it for a given library? Sometimes in the plugin - it is necessary to update the gamedate. Now we can just find the necessary word and "destroy it" PHP Code: #include <MemoryEx> public void OnPluginStart() { MemoryEx mem; if(mem.Init()) { Pointer pStr = mem.FindString("server", "-nobots"); if(pStr != nullptr) { mem.SetAddr(pStr + PTR(0x01)); // bypass `-` for(int y = 0; y < 6; y++) mem.WriteByte(GetRandomInt(0x61, 0x7A), y); } } } Another way is through MemoryEx::FindPattern PHP Code: #include <MemoryEx> public void OnPluginStart() { static int pattern[8] = {0x2D, 0x6E, 0x6F, 0x62, 0x6F, 0x74, 0x73, 0x00}; // `-nobots`; MemoryEx mem; if(mem.Init()) { ModuleInfo server; server.base = mem.GetBaseAddress("server"); server.size = mem.GetModuleSize("server"); Pointer pStr = mem.FindPattern(server.base, server.size, pattern, sizeof(pattern), 0x01); // bypass `-` if(pStr != nullptr) { mem.SetAddr(pStr); for(int y = 0; y < 6; y++) mem.WriteByte(GetRandomInt(0x61, 0x7A), y); } } } Attached Files MemoryEx.inc (19.8 KB) Wyświetl pełny artykuł
  11. The plugin allows to search prisoners. The search can be performed with any blue, but melee weapon only, for this you need to go close to the prisoner (distance of melee attack) and hold down the reload button. The search indicator appears. The search lasts from 5 to 7 seconds, there is a 5% chance that the weapon will not be detected. If the weapon is still found, then the prisoner will be given a riot and put a plug-in label, which can be used in third-party plugins to indicate that the player has a weapon. Players must stand still, otherwise the search will be interrupted. Requirements: MoreColors https://forums.alliedmods.net/showthread.php?t=185016 TF2Jail Redux https://forums.alliedmods.net/showthread.php?p=2626905 Attached Files search.7z (3.2 KB) Wyświetl pełny artykuł
  12. About This is the first plugin I uploaded to AlliedModders so feedback is appreciated! This plugin is intended to pause the game via a command. Admins with the flag I (or ADMFLAG_CONFIG) are the only ones that can use the commands. When an admin runs the pause command, everyone freezes, nobody can move or adjust eye angles. Admins can also unpause the server so everyone can again move and aim. The plugin is actually quite simple so I don't really see why I should write a bible about it. Commands/CVars CVars: None Commands: sm_pause, sm_unpause (in chat; !pause, !unpause, /pause, /unpause) Attached Files Get Plugin or Get Source (sm_pause.sp - 2.4 KB) sm_pause.smx (4.9 KB) Wyświetl pełny artykuł
  13. Hello Guys, I maked plugin for TFBots. TFBots now can use melee weapons. Cvars Code: tf_bot_melee_range "200.0" // Default is 200.0Have Fun! Attached Files Get Plugin or Get Source (tf_bot_melee_enabler.sp - 7.8 KB) Wyświetl pełny artykuł
  14. Hello Guys, I maked plugin for tfbots sd_doomsday support (but not sd_ maps only sd_doomsday). maybe, i add gameplay video Plugin Requires Pathfollower & TF2 Stocks (tf2_flag.inc) Pathfollower (Extension) : https://forums.alliedmods.net/showthread.php?t=312133 TF2 Stocks : https://forums.alliedmods.net/showthread.php?t=126357 IF YOU WANT COMPILE THIS PLUGIN? Remove "#pragma newdecls required" in line 6 (PathFollower.inc) (for plugin using old code style) Have Fun! Attached Files sd_doomsday_bots.smx (11.7 KB) Get Plugin or Get Source (sd_doomsday_bots.sp - 14.3 KB) Wyświetl pełny artykuł
  15. Medics cant use vaccinator. Hello Guys, I maked plugin for medic bots use vaccinator. Attached Files Get Plugin or Get Source (tf_bot_medic_fix.sp - 5.7 KB) Wyświetl pełny artykuł
  16. Addons-ul este creat de mine, si am decis sa il vand.Pretul este de 15 euro, deoarece este classic.Mai acord si reduceri.Pentru alte detalii dm.Sau ma puteti contacta pe insta :georgeflr99 This addons was created by myself.I'm selling it because i don't have much time to play or to create a server.Details: georgeflr99 on instagram or dm me here! Wyświetl pełny artykuł
  17. I think there was a plugin that was like if a player reaches certain score in DeathMatch he would be declared winner.. But i cant seem to find it Thank you for your help Przeczytaj cały wpis
  18. I have been searching for fraglimit plugin which sets fraglimit to 50 and the one who does 50 kills will show in hud "blabla has won the match".....i found plugin i tried but it has bugs Przeczytaj cały wpis
  19. Hello i want to ask i see very much server using models and everything other but dont need to download, model are in server player can join and not need to download its possible or how make this ? Przeczytaj cały wpis
  20. Description This plugin creates Snoweffects without the usage of func precipitation , instead it uses the env_smokestack(snowparticles) and the info_particle_system(snowdust). Cvars "sm_snoweffects_enabled" (0= off, 1= on(default)). Credits Blueraja for the original Idea. ToDo Maybe add some more effects ,add compabiltity to other games, maybe find a way to disable snoweffects in buildings/rooms. Attached Files Get Plugin or Get Source (sm_snoweffects.sp - 7.4 KB) sm_snoweffects.smx (7.1 KB) Wyświetl pełny artykuł
  21. [L4D1 AND L4D2] Dynamic Info In Hostname This is a basic Plugin based on the original idea of ​​Players count in hostname by D1maxa and in Server namer by Sheo, but unlike these plugins this version can show: Difficulty, HostName and Player Counter in the main name of the server, withot extra configs file (Only Autoxec autocreated by default). this plugin not show game modes or other values ​​in the server name. Description: This plugin has three operating modes which can show basic information about the current difficulty on the server, server name and player counter, the plugin updates the information in real time (It also depends on the speed of the steam master server update ), for example: [Advanced] My Awesome Server [8/10] (This plugin has only been designed for coop game mode and therefore only tested in coop mode) Convars: PHP Code: // Enables/Disables The Plugin. 0 = Plugin OFF, 1 = Plugin ON. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_hostname_enable "1" // Name of the server to be used // - // Default: "HostName" l4d_hostname_data "HostName" // Select HostName Format Modes. // 1 = Show: Difficulty, HostName And Player Counter. // 2 = Show: Difficulty And HostName. // 3 = Show: HostName And Player Counter. // - // Default: "1" // Minimum: "1.000000" // Maximum: "3.000000" l4d_hostname_modes "1" Known Bugs: If the name of the server is changed by external sources then the format established by the plugin will be lost, to return to its normality only wait for a change in the difficulty or connected players Installation: 1 - Click "Get Plugin" and put the l4d_dynamic_info_in_hostname.smx file into your server \addons\sourcemod\plugins\ folder. 2 - The first time the plugin is executed, it will create a configuration file called: l4d_dynamic_info_in_hostname.cfg in the path: cfg\sourcemod \ forlder. change the parameter (HostName) in this file: l4d_hostname_data "HostName" to your prefer, example: l4d_hostname_data "My Awesome Server" 3 - (Optional) In order for the plugin to work correctly at the server startup it is necessary to have: sv_pausable 0 in server.cfg Otherwise the server will go into hibernation and the default name assigned in server.cfg will be displayed (the plugin will display information until a player connects or changes the difficulty if its set sv_pausable 1) (Note the Web compiler is configured for SM 1.10) Attached Files Get Plugin or Get Source (l4d_dynamic_info_in_hostname.sp - 7.0 KB) Wyświetl pełny artykuł
  22. Title: Bot Command Improvements Description: Name says it all, a plugin that makes bot better in combat or while fighting other bots! Features! : Code: -Bots now have aim assist and perfect tracking! (except for Demoman, Sniper, and Medic! And doesn't track disguised and invisible spies.) -if their primary is out, Medic Bots will aim at almost head level so the needles will hit. -Soldier Bots using the rocket launcher will now always aim at the feet and will airshot better. -Bots now depending on the target's movement or distance, will now move backwards or forwards! -Bots can use voice commands! (i.e Help!, Battle Cry, Cheers, Jeers, Positive, Negative) -Bots will run at their target if they have their melees outKnown Issues/Bugs: Bots will rapidly change targets. Bots get stuck near walls while running backwards Changelog: Code: Release v1.0Plans I'm planning to add RTD Support for this plugin. (There's a unfinished support in the SP file." Make bots focus on killing their target before killing them. and fix bots getting stuck near the walls while running backwards or forwards. Will add video and images soon Credits The original plugin that i edited Thanks For tRololo312312 for making the vsh/ff2 plugin where i edited it from. Also this is my first plugin and i'm new here, if you see anything wrong that i did please point it out thanks! Help will be appreciated Attached Files Get Plugin or Get Source (bot_combat_improvements.sp - 8.8 KB) Wyświetl pełny artykuł
  23. ConVars PHP Code: sm_release_distance - Release distance sm_release_height - Release height sm_release_ability_reset - Reset ability cooldown or not Attached Files Get Plugin or Get Source (l4d2_release_victim.sp - 6.9 KB) l4d2_release_victim_data.txt (1.7 KB) Wyświetl pełny artykuł
  24. Username filter - controls nicknames of players on the server and automatically removes links from them. You do not need to make a list of links because the plugin does it for you. This works with player clan tags as well. Requirements:Steamworks Sourcemod v1.9+ Write permissions for ../nnp/ folder Config: [settings.ini] Spoiler Code: "UsernameFilter" { "nnp_kickmsg" " [unFilter] \nYou were kicked, please remove the link from nick/tag" "nnp_renamemsg" " [unFilter] {GREEN}Link removed, you are {RED}renamed" "nnp_retagmsg" " [unFilter] {GREEN}Link removed, your tag {RED}changed" "nnp_thxmsgfornewdomen" " [unFilter] {GREEN}The new URL: {RED}%s {GREEN}added to the {RED}block list{GREEN}, Thx!" "nnp_whitedomen" "alliedmods.net" // 0 - rename / 1 - kick "nnp_mode" "0" // 0 - off / 1- on "nnp_checktag" "1" // Period of check players / in seconds "nnp_period" "60.0" } Supported colors Spoiler Quote: "{WHITE}" - CSS OB "{DEFAULT}" - ANY "{TEAM}" - ANY "{GREEN}" - ANY "{RED}" - CSGO | CSS OB "{LIME}" - CSGO | CSS OB "{LIGHTGREEN}" - CSGO | CSS OB "{LIGHTRED}" - CSGO | CSS OB "{GRAY}" - CSGO | CSS OB "{LIGHTOLIVE}" - CSGO | CSS OB "{OLIVE}" - CSGO | CSS OB "{LIGHTBLUE}" - CSGO | CSS OB "{BLUE}" - CSGO | CSS OB "{PURPLE}" - CSGO | CSS OB Sources: GitHub Download: GitHub Attached Files UsernameFilter.zip (14.1 KB) Get Plugin or Get Source (UsernameFilter.sp - 6.2 KB) std.inc (1.9 KB) Wyświetl pełny artykuł
  25. Description Bosses are not who they are A hunter can be a smoker, smoker can be spitter, spitter can be jockey etc If you find bugs then please write below Attached Files Get Plugin or Get Source (l4d2_deceptive_bosses.sp - 2.1 KB) l4d2_deceptive_bosses.txt (296 Bytes) Wyświetl pełny artykuł
×
×
  • Dodaj nową pozycję...