Показаны результаты для тегов 'plugin'. - Моддинг Игр и Серверов Перейти к содержанию
Гость

Поиск сообщества

Показаны результаты для тегов 'plugin'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общее
    • Новости Сайта
    • Общение
    • Помощь по игровым серверам
    • Поиск плагинов/файлов
  • По играм
    • Counter-Strike 2
    • Counter-Strike: Global Offensive
    • Team Fortress 2
    • Left 4 Dead (1/2)
    • Grand Theft Auto V
    • Minecraft
    • S&box
    • Dota 2
    • Terraria
    • Half-Life 2:Deathmatch
    • GTA: SAMP
    • Counter-Strike: Source
    • Counter-Strike
    • Rust
    • PLAYERUNKNOWN'S BATTLEGROUNDS
    • Warface
    • Half-Life: Alyx
    • World Of Tanks
  • Архив/Корзина
    • Устаревшие Статьи
    • Steam
    • Новости из мира игровой индустрии
    • Халява

Категории

  • Counter-Strike 2
    • Плагины/моды
    • Карты
    • Скины / Модели
  • Team Fortress 2
    • Скины / Модели
    • Карты
  • Left 4 Dead (1/2)
    • Скины / Модели
  • Sourcemod плагины
    • CS:GO
    • Left 4 Dead
    • Team Fortress 2
    • Half-Life 2: Deathmatch
    • Counter-Strike 2
  • Counter-Strike: Global Offensive
    • Скины / Модели
    • Сборки / Готовые Сервера CS:GO
    • Карты
    • Разное
  • Half-Life 2:Deathmatch
    • Скины / Модели
    • Карты
  • Counter-Strike
    • Готовые сервера
  • Rust
    • Плагины Umod (Oxide)
  • World Of Tanks
    • Моды для World Of Tanks
    • Прицелы
    • Шкурки / Зоны пробития
    • Ангары
  • Dota 2
    • Скины/Модели
    • Разное
  • Minecraft
    • Плагины
    • Скины
    • Карты

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


О себе

  1. Версия 1.0.0

    69 раз скачали

    После смерти игрока, если у него были гранаты - они взрываются. Но так же можно настроить что если даже у игрока не было гранат - после смерти они все ровно могут выпадать и взрываться у всех игроков. Настройки: sm_martyrdom_enabled (default: 1) [bool] (0/1) - включает и отключает плагин sm_martyrdom_always (default: 0) [bool] (0/1) - гранаты появляются и взрываются у всех игроков? sm_martyrdom_consume_grenade (default: 1) [bool] (0/1) - превращать любые гранаты во взрывные?
    Бесплатный
  2. Версия 1.0.1

    66 раз скачали

    Плагин позволяет рандомно создавать вещи на карте (оружие,пропы и тд). Хорошо подойдет для Zombie или TTT сервера в CS:GO Для работы этого плагина потребуется основа: Команды: sm_esspawn - Создает предметы на карте sm_esclear - Удаляет все предметы на карте,которые были созданы этим плагином sm_esreload - Перезагружает entities.cfg Настройки: entityspawner_nav_areas_required - сколько должно быть NavArea на карте, чтобы создавать предметы entityspawner_spawn_limit - лимит ентитей, после которого плагин прекращает создавать новые Видео: Пример конфига предметов для создания: ///////////////////////////////////////////////////////////////////////////////////////////////////////// // 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: [url]https://developer.valvesoftware.com/wiki/List_of_Counter-Strike:_Global_Offensive_Entities[/url] // // "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 props, 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 times 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" } } } Разработчикам: #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
    Бесплатный
  3. Версия 1.02

    36 раз скачали

    Плагин, в основном, для разработчиков работающих над созданием карт для CS:GO. Помогает определять NavArea на карте и визуализировать их. Команды: sm_naucount - Показывает количество nav area на карте sm_nauarea - Визуализирует NavArea (sm_nauarea <navareaindex(optional)> <showneighbours(0-1)> Для разработчиков: #if defined _navareautilities_included #endinput #endif #define _navareautilities_included #define NAU_PREFIX " \x09[\x04Nav UTIL\x09]" #define NAU_GAMEDATA "navareautilities.gamedata" #define NAU_VERSION "1.02" #define NAU_NAVAREA_PARENT 0x7C #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 CNavArea NAU_GetNavAreaAddressByIndex(int navAreaIndex); /** * Called when nav areas are loaded by plugin (OnMapStart) * @param amount of nav areas found * @noreturn */ forward void NAU_OnNavAreasLoaded(); methodmap CNavArea { /** * Returns the north west corner of the nav area * @param buffer to store the position * @return void */ public void GetNorthWestCorner(float result[3]) { result[0] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(4), NumberType_Int32)); result[1] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(8), NumberType_Int32)); result[2] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(12), NumberType_Int32)); } /** * Returns the south east corner of the nav area * @param buffer to store the position * @return void */ public void GetSouthEastCorner(float result[3]) { result[0] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(16), NumberType_Int32)); result[1] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(20), NumberType_Int32)); result[2] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(24), NumberType_Int32)); } /** * Get the parent nav area * @return address address of the parent nav area */ public CNavArea GetParent() { Address navParent = view_as<Address>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(NAU_NAVAREA_PARENT), NumberType_Int32)); return view_as<CNavArea>(LoadFromAddress(navParent, NumberType_Int32)); } /** * Get the amount of nav areas in direction * @param direction * @return int Amount of neighbours in direction */ public int GetNeighbourCount(NavDirType direction) { Address navConnectVector = view_as<Address>(LoadFromAddress(view_as<Address>(this) + 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 direction * @param neighbour index * @return address address of the neighbour nav area */ public CNavArea GetNeighbour(NavDirType direction, int directionListIndex) { Address navConnectVector = view_as<Address>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(NAU_NAVAREA_SOUTH_NAV_CONNECT_VECTOR + (0x4 * view_as<int>(direction))), NumberType_Int32)); return view_as<CNavArea>(LoadFromAddress(navConnectVector + view_as<Address>(0x4 + (0x8 * view_as<int>(directionListIndex))), NumberType_Int32)); } /** * Hacky way to find out if the nav area a CNavLadder or CNavArea * @return bool if ladder area or not */ public bool IsNavLadder() { int hack = view_as<int>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(NAU_NAVAREA_LADDER_INDICATOR), NumberType_Int32)); return hack == -1; } public bool IsNullPointer() { return view_as<Address>(this) <= Address_Null; } /** * Returns the center position of the nav area * @param buffer to store the position * @return void */ public void GetCenter(float result[3]) { float nwCorner[3], seCorner[3]; this.GetNorthWestCorner(nwCorner); this.GetSouthEastCorner(seCorner); NAU_GetMiddleOfABox(nwCorner, seCorner, result); } /** * Returns wether or not the entity has larger X/Y values than the nav area * @param entity index * @return bool can entity fit in nav area */ public bool CanEntityFit(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]; this.GetNorthWestCorner(nwCorner); this.GetSouthEastCorner(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 Mins of box * @param Maxs of box * @return bool can entity fit in nav area */ public bool CanFit(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]; this.GetNorthWestCorner(nwCorner); this.GetSouthEastCorner(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 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 GetRandomPos(float vMins[3], float vMaxs[3], float result[3]) { // To stop random crashes if someone were to do stuff on a navladder if(this.IsNavLadder()) 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]; this.GetNorthWestCorner(nwCorner); this.GetSouthEastCorner(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) * @return float Z position difference */ public float GetZDifference() { float nwCorner[3], seCorner[3]; this.GetNorthWestCorner(nwCorner); this.GetSouthEastCorner(seCorner); return seCorner[2] - nwCorner[2]; } } methodmap CNavLadder < CNavArea { /** * Get the top left position of the nav ladder area * @param buffer to store the position * @return void */ public void GetTop(float result[3]) { result[0] = view_as<float>(LoadFromAddress(view_as<Address>(this), NumberType_Int32)); result[1] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(4), NumberType_Int32)); result[2] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(8), NumberType_Int32)); } /** * Get the bottom right position of the nav ladder area * @param buffer to store the position * @return void */ public void GetBottom(float result[3]) { result[0] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(12), NumberType_Int32)); result[1] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(16), NumberType_Int32)); result[2] = view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(20), NumberType_Int32)); } /** * Get the height of the ladder * @return float height of ladder */ public float GetHeight() { return view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(NAU_NAVAREA_LADDER_HEIGHT), NumberType_Int32)); } /** * Get the width of the ladder * @return float width of ladder */ public float GetWidth() { return view_as<float>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(NAU_NAVAREA_LADDER_WIDTH), NumberType_Int32)); } /** * Get address of a destination nav area from a ladder (check NavLadderDestination) * @param ladder destination * @return address address of the destination nav area (Address_Null if invalid navarea) */ public CNavArea GetDestinationNavArea(NavLadderDestination destination) { return view_as<CNavArea>(LoadFromAddress(view_as<Address>(this) + view_as<Address>(NAU_NAVAREA_LADDER_NAVAREAS + (0x4 * view_as<int>(destination))), NumberType_Int32)); } /** * Get the center position of the nav ladder area * @param buffer to store the position * @return void */ public void GetCenter(float result[3]) { float nwCorner[3], seCorner[3]; this.GetTop(nwCorner); this.GetBottom(seCorner); NAU_GetMiddleOfABox(nwCorner, seCorner, result); } } /** * 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 CNavArea NAU_GetClosestNavAreaNeighbour(CNavArea navArea, float pos[3]) { CNavArea closestNavArea = navArea; float startPos[3]; //GetNavAreaCenter(navAreaAddress, startPos); if(!closestNavArea.IsNavLadder()) closestNavArea.GetCenter(startPos); else { CNavLadder ladder = view_as<CNavLadder>(closestNavArea); ladder.GetCenter(startPos); } float closestDistance = GetVectorDistance(pos, startPos, true); bool gotfirst = false; if(navArea.IsNavLadder()) { ArrayList ladderDestinations = new ArrayList(); for (int i = 0; i < view_as<int>(NAVLADDER_MAX); i++) { CNavLadder ladder = view_as<CNavLadder>(navArea); CNavArea destination = ladder.GetDestinationNavArea(view_as<NavLadderDestination>(i)); if(!destination.IsNullPointer()) ladderDestinations.Push(destination); } CNavArea destination = ladderDestinations.Get(GetRandomInt(0, ladderDestinations.Length - 1)); float navPos[3]; if(!destination.IsNavLadder()) destination.GetCenter(navPos); else { CNavLadder ladder = view_as<CNavLadder>(destination); ladder.GetCenter(navPos); } closestNavArea = destination; delete ladderDestinations; } else { for (int i = 0; i < view_as<int>(NAVDIR_MAX); i++) { int neighbourCount = navArea.GetNeighbourCount(view_as<NavDirType>(i)); for (int j = 0; j < neighbourCount; j++) { CNavArea neighbour = navArea.GetNeighbour(view_as<NavDirType>(i), j); float navPos[3]; //GetNavAreaCenter(neighbour, navPos); if(!closestNavArea.IsNavLadder()) neighbour.GetCenter(navPos); else { CNavLadder ladder = view_as<CNavLadder>(neighbour); ladder.GetCenter(navPos); } float dist = 0.0; if((dist = GetVectorDistance(navPos, pos, true)) < closestDistance || !gotfirst) { closestNavArea = neighbour; closestDistance = dist; gotfirst = true; } } } } return closestNavArea; } public void NAU_DebugNavArea(int client, CNavArea navArea, int laserModelIndex) { float navAreaNW[3], navAreaSE[3], center[3]; if(!navArea.IsNavLadder()) { navArea.GetNorthWestCorner(navAreaNW); navArea.GetSouthEastCorner(navAreaSE); navArea.GetCenter(center); } else { CNavLadder ladder = view_as<CNavLadder>(navArea); ladder.GetTop(navAreaNW); ladder.GetBottom(navAreaSE); ladder.GetCenter(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, CNavArea navArea, int laserModelIndex) { if(navArea.IsNavLadder()) { for (int i = 0; i < view_as<int>(NAVLADDER_MAX); i++) { CNavLadder ladder = view_as<CNavLadder>(navArea); CNavArea destination = ladder.GetDestinationNavArea(view_as<NavLadderDestination>(i)); NAU_DebugNavArea(client, destination, laserModelIndex); } } else { for (int i = 0; i < view_as<int>(NAVDIR_MAX); i++) { int neighbourCount = navArea.GetNeighbourCount(view_as<NavDirType>(i)); for (int j = 0; j < neighbourCount; j++) { CNavArea neighbour = navArea.GetNeighbour(view_as<NavDirType>(i), j); NAU_DebugNavArea(client, neighbour, laserModelIndex); } } } } /** * 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 CNavArea NAU_GetClientLastKnownNavArea(int client) { // Make shit break less return view_as<CNavArea>(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); return TR_DidHit(ray); } public bool NAU_TraceFilterNothing(int entityhit, int mask, any entity) { if(entityhit == 0) 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); return TR_DidHit(ray); } 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 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 Видео:
    Бесплатный
  4. Версия 1.4.5

    48 раз скачали

    Плагин добавляет возможность использовать спреи (граффити) на вашем сервере Counter-Strike: Global Offensive. Игроки смогут рисовать спреи/граффити, из тех что вы сами добавите на сервер. Пример видно на скриншоте. Команды !sprays - открывает меню выбора спреев (граффити) !spray или sm_spray - рисует граффити Установка Распакуйте архив в папку сервера. Не забудьте добавить materials (файлы спреев) в ваш FastDL (если используете) Пути до спреев найдете в конфиге: addons/sourcemod/configs/csgo-sprays/sprays.cfg Там же сможете добавить и новые граффити, делается это легко по примеру других граффити.
    Бесплатный
  5. Версия 1.1

    1 052 раза скачали

    Плагин добавляет тег в таб (таблицу игроков) для ваших VIPов. Модуль для VIP Core. Установка: В файл перевода addons/sourcemod/translations/vip_modules.phrases.txt добавить: "Tag" { "ru" "Тег" "en" "Tag" "fi" "Tag" } "Tag_Menu" { "ru" "Настройки тега" "en" "Tag settings" "fi" "Tag asetukset" } В groups.ini прописать: "Tag" "сам тег" В графе вместо "сам тег" вписывать сам тег, например [VIP]. Игрок не сможет его изменить Или: Ключевое слово custom, что позволит игроку установить тег самому введя значение чат или выключить Ключевое слово list, что позволит игроку выбрать тег самому из списка default или выключить Ключевое слово list:имя_списка, что позволит игроку выбрать тег самому из указанного списка или выключить
    10 руб.
  6. 37 раз скачали

    Sourcemod плагин для игровых серверов: показывает где находится ближайший враг. Боты игнорируются. Настройки: place_where_enemy_timer "1" - Как часто сообщать о ближайшем противнике ( в секундах) Установка: Закинуть файл .sp в addons/sourcemod/scripting Закинуть файл .smx в addons/sourcemod/plugins
    Бесплатный
  7. 58 раз скачали

    Позволяет игрокам обмениваться своими ножами (естественно не в инвентарь, а просто скинами в игре) Команды: sm_switchknife <ник игрока> - отправить запрос игроку на обмен sm_disablesk - автоматический отклонять все предложения обмена
    Бесплатный
  8. Версия 1.0.0

    43 раза скачали

    Плагин позволяет настроить стандартные голосования: кому их можно создавать кому нет или вообще заблокировать создание, в голосовании за кик игрока по умолчание включается иммунитет у админов как в голосовании sourcemod. Настройки: sm_standart_vote_change_places "z" - возможность запускать голосование за смену команды местами: 0 = отключено, 1 = включено без ограничений по доступу, "z" = или любой другой флаг - тот флаг с которого будет доступ sm_standart_vote_kick "1" - возможность запускать голосование за кикать игроков: 0 = отключено, 1 = включено без ограничений по доступу, "z" = или любой другой флаг - тот флаг с которого будет доступ sm_standart_vote_map "b" - возможность запускать голосование за смену карты: 0 = отключено, 1 = включено без ограничений по доступу, "z" = или любой другой флаг - тот флаг с которого будет доступ sm_standart_vote_mix_team "1" - возможность голосовать за то чтобы перемешать команды: 0 = отключено, 1 = включено без ограничений по доступу, "z" = или любой другой флаг - тот флаг с которого будет доступ sm_standart_vote_nextmap "1" - возможность голосовать за выбор следующей карты: 0 = отключено, 1 = включено без ограничений по доступу, "z" = или любой другой флаг - тот флаг с которого будет доступ sm_standart_vote_restart_game "1" - возможность голосовать за рестарт игры: 0 = отключено, 1 = включено без ограничений по доступу, "z" = или любой другой флаг - тот флаг с которого будет доступ
    Бесплатный
  9. Версия 1.0.0

    40 раз скачали

    Плагин дополнение к RankMe которое показывает ранк и очки игрока который присоединился или отключился от сервера Плагин не работает без RankMe Версия RankMe не ниже 2.5.8 Настройки: rankme_announcer_player_connect "1" //Показывать, когда игрок соединиться с сервером (его ранг и очки)? //По умолчанию 1. rankme_announcer_player_connect_center "0" //Показывать, когда игрок подключить в центре? //По умолчанию 0. rankme_announcer_player_connect_chat "1" //Показывать, когда игрок подключения в чате? //По умолчанию 1. rankme_announcer_player_connect_hint "0" //Показывать, когда игрок подключения в HINT-окне? //По умолчанию 0. rankme_announcer_player_disconnect "1" //Показывать, когда игрок отсоедините от сервера? //По умолчанию 1. rankme_announcer_top_player_connect "1" //Показывать, когда Топ-игрок подключится? //По умолчанию 1. rankme_announcer_top_pos_player_connect "10" //Максимальное место которое показывает Топ-игрока? //По умолчанию 10. rankme_announcer_top_player_connect_center "0" //Показывать подключенного Топ-игрока в центре? //По умолчанию 1. rankme_announcer_top_player_connect_chat "1" //Показывать подключенного Топ-игрока в чате? //По умолчанию 1. rankme_announcer_top_player_connect_hint "0" //Показывать подключенного Топ-игрока в HINT-окне? //По умолчанию 0.
    Бесплатный
  10. Версия 1.0.0

    58 раз скачали

    После закладки бомба будет прыгать по карте (не сильно, её можно поймать чтобы раздефузить)
    Бесплатный
  11. Версия 1.0.0

    67 раз скачали

    Простой плагин для контроля баланса на серверах cs:s и cs:go Настройки: grtb_admin_immun 1/0 - вкл/выкл иммунитет для админов
    Бесплатный
  12. Версия 1.0.0

    37 раз скачали

    Плагин для sourcemod, дает возможность выбрать монеты и ранк Команды: !mm - Открыть Ранк меню. !coin - Открыть меню Монет. !elorank <#userid|name> <0-18> - Админ команда для добавления Ранка определенному игроку, 0 = Нету ранка ... - 18 = Global elite !emblem <#userid|name> <874-6011> - Админ команда для добавления Монеты определенному игроку. Монеты и их ID: "874", "Five Year Service Coin" "875", "DreamHack SteelSeries 2013 CS:GO Champion" "876", "DreamHack SteelSeries 2013 CS:GO Finalist" "877", "DreamHack SteelSeries 2013 CS:GO Semifinalist" "878", "DreamHack SteelSeries 2013 CS:GO Quarterfinalist" "879", "EMS One Katowice 2014 CS:GO Champion" "880", "EMS One Katowice 2014 CS:GO Finalist" "881", "EMS One Katowice 2014 CS:GO Semifinalist" "882", "EMS One Katowice 2014 CS:GO Quarterfinalist" "883", "ESL One Cologne 2014 CS:GO Champion" "884", "ESL One Cologne 2014 CS:GO Finalist" "885", "ESL One Cologne 2014 CS:GO Semifinalist" "886", "ESL One Cologne 2014 CS:GO Quarterfinalist" "887", "ESL One Cologne 2014 Pick 'Em Challenge Bronze" "888", "ESL One Cologne 2014 Pick 'Em Challenge Silver" "889", "ESL One Cologne 2014 Pick 'Em Challenge Gold" "890", "DreamHack Winter 2014 CS:GO Champion" "891", "DreamHack Winter 2014 CS:GO Finalist" "892", "DreamHack Winter 2014 CS:GO Semifinalist" "893", "DreamHack Winter 2014 CS:GO Quarterfinalist" "894", "DreamHack Winter 2014 Pick 'Em Challenge Bronze" "895", "DreamHack Winter 2014 Pick 'Em Challenge Silver" "896", "DreamHack Winter 2014 Pick 'Em Challenge Gold" "897", "ESL One Katowice 2015 CS:GO Champion" "898", "ESL One Katowice 2015 CS:GO Finalist" "899", "ESL One Katowice 2015 CS:GO Semifinalist" "900", "ESL One Katowice 2015 CS:GO Quarterfinalist" "901", "ESL One Katowice 2015 Pick 'Em Challenge Bronze" "902", "ESL One Katowice 2015 Pick 'Em Challenge Silver" "903", "ESL One Katowice 2015 Pick 'Em Challenge Gold" "1001", "Community Season One Spring 2013 Coin 1" "1002", "Community Season One Spring 2013 Coin 2" "1003", "Community Season One Spring 2013 Coin 3" "1013", "Community Season Two Autumn 2013 Coin 1" "1014", "Community Season Two Autumn 2013 Coin 2" "1015", "Community Season Two Autumn 2013 Coin 3" "1024", "Community Season Three Spring 2014 Coin 1" "1025", "Community Season Three Spring 2014 Coin 2" "1026", "Community Season Three Spring 2014 Coin 3" "1028", "Community Season Four Summer 2014 Coin 1" "1029", "Community Season Four Summer 2014 Coin 2" "1030", "Community Season Four Summer 2014 Coin 3" "1316", "Community Season Five Summer 2014 Coin 1" "1317", "Community Season Five Summer 2014 Coin 2" "1318", "Community Season Five Summer 2014 Coin 3" "6001", "Collectible Pin - Dust II" "6002", "Collectible Pin - Guardian Elite" "6003", "Collectible Pin - Mirage" "6004", "Collectible Pin - Inferno" "6005", "Collectible Pin - Italy" "6006", "Collectible Pin - Victory" "6007", "Collectible Pin - Militia" "6008", "Collectible Pin - Nuke" "6009", "Collectible Pin - Train" "6010", "Collectible Pin - Guardian" "6011", "Collectible Pin - Tactics"
    Бесплатный
  13. Версия 1.0.0

    35 раз скачали

    Простой VIP плагин для CS:GO и CS:S. Дает: дает ХП дает броню дает деньги дает возможность смены команды
    Бесплатный
  14. Версия 1.0.0

    65 раз скачали

    Простой sourcemod плагин позволяющий легко самоубиться прописав !kill или /kill в чате Установка: Раскидать файлы плагина sourcemod по папкам
    Бесплатный
  15. Версия 1.0.0

    61 раз скачали

    Плагин для CS:GO, позволяет настроить с каким оружием игроки будут играть в разминочный раунд. Удаляет все оружие и выдает то которое вы укажите в настройках. Настройки: sm_warmupex = "1" - включает/отключает плагин sm_warmupex_givect = "weapon_knife,item_kevlar" - через запятую указывается оружие/вещи которые вы выдаете команде Контр Террористов sm_warmupex_givet = "weapon_knife,item_kevlar" - через запятую указывается оружие/вещи которые вы выдаете команде Террористов sm_warmupex_infinite_he = "1" - бесконечные взрывные гранаты (Хаешки) (0 = обычные 1 = бесконечные, 2 = бесконечные,выдаются моментально сразу в руки) sm_warmupex_infinite_flash = "1" - бесконечные флешки (0 = обычные 1 = бесконечные, 2 = бесконечные,выдаются моментально сразу в руки) sm_warmupex_infinite_smoke = "1" - бесконечные дымовые (смоки) (0 = обычные 1 = бесконечные, 2 = бесконечные,выдаются моментально сразу в руки) sm_warmupex_infinite_decoy = "1" - бесконечные декои (фейк гранаты) (0 = обычные 1 = бесконечные, 2 = бесконечные,выдаются моментально сразу в руки) sm_warmupex_infinite_molotov = "1" - бесконечные коктейли молотова (0 = обычные 1 = бесконечные, 2 = бесконечные,выдаются моментально сразу в руки) sm_warmupex_infinite_incendiary = "1" - бесконечные зажигательные гранаты (0 = обычные 1 = бесконечные, 2 = бесконечные,выдаются моментально сразу в руки) sm_warmupex_infinite_taser = "1" - бесконечные шокеры (тайзеры) (0 = disabled, 1 = unlimited, 2 = unlimited and switch to taser, 3 = unlimited insta mode) sm_restricted_sound = "sound/buttons/weapon_cant_buy.wav" - звук которы проигрывается при попытке купить оружие которое запрещено (оставьте пустым и звука не будет)
    Бесплатный
  16. Версия 0.9

    60 раз скачали

    Легкий и простой плагин забирающий все оружие у игроков.Так же удаляет и прицел. Для отключения плагина команда: sm_weapon_remover_lite_enabled 1/0
    Бесплатный
  17. Версия 1.0beta

    66 раз скачали

    Простой мини плагин без каких либо настроек и команд. Моментально меняет оружие игрока на другое если в первом закончились патроны. Возможно будет полезно для каких то игровых режимов.
    Бесплатный
  18. Версия 1.0.0

    42 раза скачали

    Плагин позволяет создавать различные партикли (частицы) на сервере. Позволяет сохранять проделанные изменения. Видео демонстрация: Команды: sm_getposition - показывает позицию админа sm_getaimposition - координаты того места куда смотрит прицел sm_getpos - показывает позицию админа sm_getaimpos - координаты того места куда смотрит прицел sm_getaimentity - показывает информацию о предмете на который направлен прицел sm_editparticles - меню редактирования sm_particleeditor - меню редактирования sm_saveparticles - сохранить все изменения sm_revertparticles - Отменяет все последние изменения sm_revertchanges - Отменяет все последние изменения sm_changename - изменяет название партикля sm_changeeffect - изменяет эффект партикля sm_changeffect - изменяет эффект партикля
    Бесплатный
  19. Версия 1.0.0

    49 раз скачали

    Плагин разработан конкретно для карты mg_100traps_v4_1 в CS:GO. Он позволяет сохранять в базу данных на каком уровне игрок закончил прохождение, и позволяет телепортироваться на последнюю сохраненную точку. Для телепорта нужно прописать !goto и на какой уровень телепортироваться. Например: !goto 25 В вашей базе данных SQL нужно выполнить следующее: CREATE TABLE `traps` ( `steamid` varchar(20) NOT NULL, `currentLevel` tinyint(4) NOT NULL, `highestLevel` tinyint(4) NOT NULL, UNIQUE KEY `steamid` (`steamid`) ) ENGINE
    Бесплатный
  20. Версия 1.0.0

    61 раз скачали

    Новый гейммод для CS:GO, оригинальная идея мода взята из CoD: BO2. На карте все так же остается цель (закладка бомбы, спасение заложников и тд), но выполнение цели не останавливает игру. На каждой карте есть 3 раунда - и выигрывает игрок заработавший 25 очков. Так же, у игроков нет другого оружия кроме Dual Berretas , и убить можно с одного выстрела (или удара ножом). Видео плагина: Команда: sm_setpoints <ник> <очки от 0 до 24> - устанавливает очки для конкретного игрока //Usage: sm_setpoints <name> <points(0-24)> Настройки: oitc_maxpoints "25" - максимальное количество очков которое игрок должен набрать для победы oitc_maxrounds "3" - сколько раундов играют игроки ? до смены карты
    Бесплатный
  21. Версия 1.1

    61 раз скачали

    Удобный плагин быстрого удаления карт с помощью конфиг файла. Подойдет например тем у кого очень много карт на сервере, и искать конкретную - долгое занятие. Прописываете карту в конфиг csgo/cfg/SpirT/spirt.mapdelete.cfg - и карта будет удалена при запуске сервера. Никаких настроек.
    Бесплатный
  22. Версия 2.0.3

    607 раз скачали

    Плагин дает возможность запрещать (банить) игрокам переход за команду CT. Актуально для jail и roleplay серверов Команды sm_ctban - Бан доступ игрока за КТ sm_removectban - Рабанить игрока за КТ sm_isbanned - Посмотреть статус бана за КТ sm_ctban_offline <steamid> - забанить по steam id (Бан за КТ) sm_removectban_offline <steamid> или sm_unctban_offline <steamid> - разбан по steam id, даже если игрок не на сервере sm_rageban - открывает меню при помощи которого можно банить игроков, которые уже вышли с сервера sm_reset_ctban_cookies <'force'> - обнуляет информацию о банах, которая в записана в куки sm_forcect <ник игрока> - насильно перевести игрока в команду CT sm_unforcect <ник игрока> - насильно перевести в команду T sm_ctbanlist - показывает полный список забаненых sm_change_ctban_time <ник игрока> <новое время бана> - изменить срок бана игрока Настройки: sm_ctban_enable - Отключить/включить плагин sm_ctban_soundfile <path> - Путь к звуковому файлу sm_ctban_joinbanmsg <message> - Это сообщение добавляется к отметке времени, когда игрок забаненный за КТ присоединяется к серверу. sm_ctban_table_prefix <prefix> - Этот префикс будет добавлен в передней части таблицы имен. sm_ctban_database_driver <driver> - Конфиг в databases.cfg Установка: sm_ctban.smx в addons/sourcemod/plugins/ sm_ctban.sp в addons/sourcemod/scripting/ ctban.phrases.txt в addons/sourcemod/translations/ В databases.cfg прописать: "ctban" { "driver" "sqlite" "database" "ctban" }
    Бесплатный
  23. Версия 1.0.0

    34 раза скачали

    Позволяет игрокам продать за игровую валюту оружие которое они поднимают с пола. После поднятия оружия у игрока есть 5 секунд чтобы успеть его продать.Будет показано окно с предложением продать оружие. Кошелек игрока не может выйти за лимит в $16000. С помощью чат команды !gunmanager игрок может отключить или включить вылезающее меню с предложением о продаже Для работы и компиляции плагина требуется smlib
    Бесплатный
  24. Версия 1.0.0

    25 раз скачали

    Разработан плагин для сервера CS:GO, но должен работать и в других source играх. Актуален для серверов с большой посещаемостью, где игроки активно общаются в текстовом чате - отключает раздражающие тикающий звук каждого сообщения в чате. Плагин использует куки, так что плагин запомнит настройки игроков. Никаких настроек и команд. Есть только возможность у каждого игрока отключить действия плагина для себя: через меню настроек сорсмода (sm_settings).
    Бесплатный
  25. Версия 23.2.2021

    40 раз скачали

    На момент загрузки этого плагина, на серверах в CS:GO иногда проскакивает баг - админы не могут установить пароль на сервер через переменную sv_password, когда на сервере есть подключенные игроки. Собственно, данный плагин фиксит этот баг. Никаких настроек и команд, только одно: необходимо установить на сервер расширение Dhooks 2.
    Бесплатный

Подписывайтесь на нас во Вконтакте!

×
×
  • Создать...
Искать в
  • Ещё...
Поиск контента, содержащего...
Поиск результатов в...

Напишите свой запрос, а Мы попробуем найти ответ!