CS:GO - Моддинг Игр и Серверов Перейти к содержанию
Гость

1 212 файла

  1. [CS:GO/CS:S] Упрощенный баланс / Simple Teambalance 1.0.0


    Упрощенный и облегченный плагин для баланса.
    Плагин рандомно переносит мертвого игрока из одной команды в другую.
    Если не будет найден мертвый игрок, то плагин рандомно убивает игрока и перекидывает его.
     
    Работает с NoSteam
    Установка:
    Раскидать файлы плагина sourcemod по папкам
    ЕСЛИ У ВАС ЕСТЬ ВОПРОСЫ ИЛИ ПРОБЛЕМЫ С ПЛАГИНОМ, ОБРАЩАЙТЕСЬ В ПОДДЕРЖКУ (КНОПКА СПРАВА, ПОД "СКАЧАТЬ")
     
    Настройки:
    sm_tb_enabled - включен или выключен ли плагин
    sm_tb_player_count - сколько игроков должно быть на сервере чтобы плагин начал работать
    sm_tb_msg - вкл/выкл оповещений плагина
     
     
    Работает с NoSteam
    Установка:
    Раскидать файлы плагина sourcemod по папкам
    ЕСЛИ У ВАС ЕСТЬ ВОПРОСЫ ИЛИ ПРОБЛЕМЫ С ПЛАГИНОМ, ОБРАЩАЙТЕСЬ В ПОДДЕРЖКУ (КНОПКА СПРАВА, ПОД "СКАЧАТЬ")

    62 раза скачали  | 0 комментариев  |  | MasloPunisher


  2. [CS:GO/CS:S] Admin chat 2.0


    Описание:
    *ADMIN CHAT* включающий в себя KeyHintText для показа с обеих сторон для удобства
    Требования:
    SourceMod
    Установка:
    Закинуть файл .sp в addons/sourcemod/scripting
    Закинуть файл .smx в addons/sourcemod/plugins

    218 раз скачали  | 0 комментариев  |  | OriginalShaman


  3. [CS:GO/CS:S] ELO Ранк / ELO Ranking (remake) 1.0.0


    Простой и легкий плагин статистика / rank для сервера.
     
    Команды:
    /elo_notify
    rank
    top
    top10
    session
     
    Установка:
    Раскидать файлы плагина sourcemod по папкам
    ЕСЛИ У ВАС ЕСТЬ ВОПРОСЫ ИЛИ ПРОБЛЕМЫ С ПЛАГИНОМ, ОБРАЩАЙТЕСЬ В ПОДДЕРЖКУ (КНОПКА СПРАВА, ПОД "СКАЧАТЬ")

    134 раза скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  4. [CS:GO/CS:S] Замена Ботом / Bot Replace


    Если вы мертвы, и напишите в чате !bbot то за место вас сможет играть AI игрок на весь остаток раунда.
     
    Настройки:
    sm_bot_price 2000 - стоимость покупки Бота
    sm_advert_byu 1 - отображать ли в чате в начале раунда информацию о том что можно купить бота себе на замену?

    35 раз скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  5. [CS:GO] Время Тащить / Clutch Timer [xoxo] 1.0.0


    Простой плагин который выдает бонус игроку который "затащил". Денежный бонус выдается в случае если игрок остался последний из своей команды и убил как минимум 2 противников.
    Настройки:
    "clutch_min" "150" - минимальная сумма бонуса
    "clutch_max" "1500" - максимальная сумма бонуса
    Установка:
    Раскидать файлы по папкам (.smx в addons/sourcemod/plugins, .cfg в configs и так далее)

    33 раза скачали  | 0 комментариев  |  | OriginalShaman


  6. [CS:GO/CS:S] История карт / Map History 1.0.0


    Плагин sourcemod для cs:go и cs:S.Записывает и показывает историю последних карт которые игрались на сервере.
     
    Команды:
    !lastmap
     
    Настройки:

    mh_allow_lastmap "1,0" - Разрешить использовать команду 'lastmap', чтобы увидеть последнюю карту. 0 = отключено команда, 1 = включить команду (по умолчанию).

    mh_allow_menu "1,0" - Разрешить использовать меню, чтобы показать последние карты. 0 = отключено команда, 1 = включить команду (по умолчанию).

    mh_allow_menu_delaymin "2,0" - Минимальное время в секундах между двумя запросами меню для игрока. По умолчанию 2.

    mh_allow_menu_mapnumbershown "32.00" - Разрешить использовать меню, чтобы показать последние карты. 0 = отключено команда, 1 = включить команду (по умолчанию).

    mh_lastmap_flag "" - Ограничение "lastmap" для людей с этим флагом. "" = доступен для всех.

    mh_lastmap_override "" - Ограничение "lastmap" для людей с этой переключателя. "" = доступен для всех.

    mh_menu_flag "" - Ограничение «меню» для людей с этим флагом. "" = доступен для всех.

    mh_menu_override "" - Ограничение «меню» для людей с этим переключателя. "" = доступен для всех.

    mh_showcurrentmap "0,0" - Показать текущую карту в "! Lastmaps? не 1 = да, 0 = нет (по умолчанию); изменяющаяся величина требует изменения карту

    34 раза скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  7. [CS:GO/CSS] Кража скина/ AbNeR Poser/Imposter Mod 1.3.1


    Простенький плагин для CS:GO серверов - после убийство с ножа, игрок получает скин (модель персонажа) своей жертвы

    85 раз скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  8. [CS:GO/CS:S] Замена текста и звуков в конце раунда / Round End Changer 1.0.0


    Плагин sourcemod , позволяет изменить сообщения и звуки в конце раунда
     
    Настройки:
    sm_text_t
    По умолчанию: ""
    Сообщение, которое выведется игрока при победе команды Террорист.
    sm_text_ct
    По умолчанию: ""
    Сообщение, которое выведется игрока при победе команды Контр-Террористов.
    sm_sound_t
    По умолчанию: ""
    Звук, который проиграется игрокам при победе команды Террористов.
    sm_sound_ct
    По умолчанию: ""
    Звук, который проиграется игрокам при победе команды Контр-Террористов.
     
    Работает с NoSteam
    Установка:
    Раскидать файлы плагина sourcemod по папкам
    ЕСЛИ У ВАС ЕСТЬ ВОПРОСЫ ИЛИ ПРОБЛЕМЫ С ПЛАГИНОМ, ОБРАЩАЙТЕСЬ В ПОДДЕРЖКУ (КНОПКА СПРАВА, ПОД "СКАЧАТЬ")

    47 раз скачали  | 0 комментариев  |  | OriginalShaman


  9. [CS:GO/CS:S] Стартовый набор / Start weapon 1.2


    Плагин дает игрокам стартовый набор оружия в каждом раунде.
     
    Настройки
    sm_sw_enabled - включение и отключение плагина. 1 = включен, 0 = выключен
    sm_sw_t - Набор оружия в начале для Террористов. Задать можно несколько, например: sm_sw_t glock ak47 hegrenade
    sm_sw_ct - набор оружия в начале для Контр - террористов. Задать можно несколько, например: sm_sw_ct usp p90 flashbang
    sm_sw_help - помощь по плагину
    sm_sw_version - версия плагина
     

    41 раз скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  10. [CS:S] Запрет Спрея / Ban Player's Spray


    Плагин дает возможность админам навсегда запретить использование спрея игрокам. Игроки, получившие запрет (бан), не смогут воспользоваться спреем пока их не разбанит админ.
    Админ также может просмотреть список забаненых игроков.
    Игроки также могут просматривать список для определения своего статуса.
     
    Поддерживаемые игры:
    Все игры где есть спрей (но не CS:GO)
     
    Команды:
    sm_banspray <ник игрока> - Добавить игрока в список, запрещающий использовать спрей. <player> (имя игрока может быть написано полностью или частично)
    sm_banspray_steam <steamid> - добавляет steamid игрока в бан спрея.
    sm_unbanspray <ник игрока> - Удалить игрока из списка. <player> (имя игрока может быть написано полностью или частично)
    sm_banspray_list - Список всех подключенных игроков и их статус. (смотреть в консоли)
    sm_settings - Команда позволяющая игрокам посмотреть их статус.

    36 раз скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  11. [CS:GO] Иконка говорящего над головой / Speaker Icon (talk icon like in CS:S) 2.1


    Плагин отображает иконку над головой того игрока, который говорит (как в CS:S). Показано на скриншоте.
     
    Требования для работы плагина:
    Расширение Voiceannounce_ex 
     
    Установка:
    Раскидать файлы по папкам (.smx в plugins, .cfg в configs и так далее)

    58 раз скачали  | 0 комментариев  |  | OriginalShaman


  12. [CS:GO/ZP] Бесконечные патроны / ExtraItem: Infinity Ammo 1.3.0


    Плагин дополнение для зомби мода Zombie Plague.
    В меню закупки добавляется пункт "Бесконечные патроны" которые игроки могут приобрести
     
    Требуется для работы:
     
    Настройки:
    zp_ammo_type 0 = сколько раз игрок может покупать патроны ['0' = один раз за раунд] ['1' = пока не превратиться в зомби] ['2' = таймер]
    zp_ammo_time 20.0 = сколько времени отведено на закупку, если в настройке выше установлено значнеие 2
     

    72 раза скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  13. [CS:GO] Визуализация NavArea/ Nav Area Utilities 1.02


    Плагин, в основном, для разработчиков работающих над созданием карт для 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  
    Видео:

    36 раз скачали  | 0 комментариев  | Обновлено  | Mr_Swag


  14. [CS:GO/CSS] Map configs with prefix support


    Позволяет Вам прикрепить к каждой карте свой конфиг файл.
    Пример поддержки приставки карты конфига (например: dm_. cfg; cs_.cfg)
    Требования:
    SourceMod
    Поддерживаются игры:
    Half Life 2: Deathmatch
    Counter Strike: Source
    Team Fortress 2
    Day of Defeat: Source
    Любая игра Source
    CS:GO
    Установка:
    Скопировать содержимое архива в папку с сервером.
    У Вас так же может быть приставка конфигов, которые позволяют Вам легко выполнять cvars/commands для группы карт, не имея необходимость создавать конфиг файл для каждой карты отдельно.
    Пример:
    Имя вашей карты - js_build_puzzle_nine_v10
    Конфиг файлы - js_build_puzzle_nine_v10.cfg, js_build_. cfg и js_. cfg
    Запрос будет выполняться так:
    js_. cfg
    js_build_. cfg
    js_build_puzzle_nine_v10.cfg
    Структура конфига
    cfg/sourcemod/map-cfg/

    64 раза скачали  | 0 комментариев  |  | MasloPunisher


  15. [CS:GO/CS:S]Сброс ножей и гранат / Equipment Drop 1.8


    Плагин позволяет игрокам выкинуть их ножи и гранаты , нажав на клавишу "G"
     
    Настройки:
    sm_equipment_drop_allows_knife - Разрешить игрокам выкидывать нож. (Def: 1)
    sm_equipment_drop_allows_hegrenade - Разрешить игрокам выкидывать взрывные гранаты. (Def: 1)
    sm_equipment_drop_allows_flashbang - Разрешить игрокам выкидывать ослепляющие гранаты . (Def: 1)
    sm_equipment_drop_allows_smokegrenade - Разрешить игрокам выкидывать дымовые гранаты . (Def: 1)
    sm_equipment_drop_allows_zeus - Разрешить игрокам выкидывать Zeus x27s 
    sm_equipment_drop_allows_incgrenade - Разрешить игрокам выкидывать зажигательные гранаты (CS:GO Only) (Def: 1)
    sm_equipment_drop_allows_molotov - Разрешить игрокам выкидывать коктель молотова (CS:GO Only) (Def: 1)
    sm_equipment_drop_allows_decoygrenade - Разрешить игрокам выкидывать ложные гранаты (CS:GO Only) (Def: 1)
    sm_equipment_drop_allow_time - Время после которого игроки могут выкинуть вещи (в секундах) 
    если 0 = До времени, заданного в sm_equipment_drop_disallow_time (если это 0, разрешить всегда).
    sm_equipment_drop_allow_time - sm_equipment_drop_disallow_time = Разрешенно
    sm_equipment_drop_disallow_time - Время после которого игроки не могут выкидывать вещи (в секундах) (Def: 0.0)
    0= выключить настройку
    sm_equipment_drop_allow_time = sm_equipment_drop_disallow_time - Разрешенно
    sm_equipment_drop_notify_time - Сообщать игрокам время когда они , могут или нет выкинуть свои вещи (в секундах) (Def: 1)
    0= выключить уведомления
    1= разрешить уведомления
    2= разрешить уведомления + уведомлять в начале раунда
    sm_equipment_drop_allowed_team - Индекс команды, которой можно выкидывать оружие. (1 = Боты, 2 = Террористы, 3 = Контр - террористы) (Def: 1)
    sm_equipment_drop_allows_admin_only - Флаг админа, который позволяет выкидывать оружие.(Def: <empty>)
    sm_equipment_drop_notify_to_all -
    0 = Только отмеченный игрок может видеть уведомления
    1 = Все игроки могут видеть уведомления

    46 раз скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  16. [CS:GO] Персональный чат тег/цвет ника / Eylonap_Chattags (tag/name/message colors) 1.0.0


    Плагин хорошо подойдет для того что бы выделить каких то игроков (VIP, или админов).
    По SteamID можно задать персональный чат/клан тег игрока а так же цвета его ник и текста в чате.
     
    Настройки тегов и цветов делаются в файле eylonap_chattag.cfg по данному ниже примеру:
    //* This mod made by: Eylon.A (AuToPrO) //* Custom tags chat. //* Using: //* "steamid64" //* { //* "tag" "yourtag" //* "namecolor" "yournamecolor" //* "tagcolor" "yourtagcolor" //* "chatcolor" "yourchatcolor" //* } //* Colors list: //* team, white, red, green, lightgreen, //* darkgreen, darkred, gray, yellow, orange, //* lightgray, pink, lightred, darkgray, darkblue, blue "tags" { "76561198156423013" // Eylon.A { "tag" "Developer" "namecolor" "lightred" "tagcolor" "darkblue" "chatcolor" "lightgreen" } }  
    Админская команда одна: sm_reloadtags - перезагружает конфиг настроек плагина
     
    Установка:
    Раскидать файлы по папкам (.smx в plugins, .cfg в configs и так далее)

    61 раз скачали  | 0 комментариев  |  | OriginalShaman


  17. [CS:GO/CS:S] Defuse Fix 1.2.2


    Описание:
    Плагин для предотвращения разминирования сквозь стены.
    Требования:
    SourceMod 1.2+
    Установка:
    Извлеките содержимое архива а папку sourcemod,смените карту или перезапустите сервер.
    Переменные:
    sm_deffix_anti_walldef - включить\выключить запрет разминирования сквозь стены.(по умолчанию 1)
    sm_deffix_anti_defblock - что делать с щипцами,валяющимися около бомбы 1-оттолкнуть;2-ничего.(по умолчанию 1)
    sm_deffix_anti_propblock - что делать с (prop_physics*) предметами,лежащих вокруг бомбы 0-ничего;1-отталкивать;2-удалить(по умолчанию 1)

    79 раз скачали  | 0 комментариев  |  | OriginalShaman


  18. [CS:GO]Удаление скинутого оружия / Customized Weapon Drop (during warmup) 1.0.0


    Плагин позволяет очистить сервер от лишнего мусора: оружие которое игроки скидывают (дропают) - сразу удаляется и не остается на земле.
    Работает это только во время разминки, но изменив кое что в коде плагина, можно сделать так чтобы оружие удалялось на протяжении всех раундов.Об этом будет  ниже.
    Видео:
     
    Если вам нужно чтобы оружие удалялось всегда,а не только во время разминки, то делайте следующее:
    1.Откройте исходный код плагина (.sp)
    2.Найдите функцию CS_OnCSWeaponDrop
    Удалите то что внутри, чтобы выглядело это следующим образом:
    if(GameRules_GetProp("m_bWarmupPeriod")) { } 3.Скомпилируйте плагин - все готово.
     
    Установка:
    Раскидать файлы по папкам (.smx в addons/sourcemod/plugins, .cfg в configs и так далее)

    81 раз скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  19. [CS:GO]Продажа поднятого оружия / Gun manager (sell guns on pickup) 1.0.0


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

    34 раза скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  20. [CS:GO] Голосование за оружие / Weapon Arena 0.0.0.2


    Позволяет игрокам сервера сообща выбрать оружие с которым будут бегать все игроки в следующем раунде. 
    Так же, будет удалено все оружие с земли (которое создает карта).
     
    Настройки:
    sm_weaponarena_needed - какой процент проголосовавших игроков нужен для успешного голосования (от 0.0 до 1.0)
    sm_weaponarena_minplayers - сколько игроков должно быть на сервере, чтобы можно было начать голосование
    sm_weaponarena_interval - через сколько секунд можно будет перезапустить голосование
    sm_weaponarena_removebomb - удалять ли бомбу с карты?
    sm_weaponarena_removehostages - удалять ли заложников?
    sm_weaponarena_invisibleweapons - удалять ли оружие с земли?
    sm_weaponarena_unlimitedammo - выдавать ли бесконечные патроны?
    sm_weaponarena_requirezeuskill - должен ли игрок совершить убийство при помощи тайзера (Zeus), чтобы получить его в следующем раунде?
    sm_weaponarena_randomweapons - выдавать ли игрокам каждый раунд новое рандомное оружие? (если не было голосования в прошлом раунде)

    sm_weaponarena_randomteamweapons - должно ли быть у каждой команды свое рандомное оружие?

    sm_weaponarena_allowvotes - разрешено ли голосование на сервере?
     
    Команды для игроков:
    /rta или !rta в чат - открывает меню голосования за оружие

    44 раза скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  21. [CS:GO] Удаление сообщений о деньгах и очках / Remove Cash & Points Messages 1.0.0


    Простой плагин CS:GO удаляющий раздражающие сообщения в чате о начислении денег за убийство,очков и других сообщений по типу "Атаковал союзника" и тд
    Установка:
    Раскидать файлы по папкам (.smx в plugins, .cfg в configs)

    59 раз скачали  | 0 комментариев  |  | OriginalShaman


  22. [CS:GO/CS:S] Бросить монетку / Coinflip 1.0.0


    Плагин позволяет определиться с тем или иным выбором.Например, может быть полезен для Jailbreak и roleplay серверов.
    Есть два варианта которые выдает в чате (вместо орла и решки): Контр Террористы и Террористы.
    Шанс выпадения 50 на 50.
     
    Команды:
    !coinflip - подбрасывает монетку

    85 раз скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  23. [CS:GO/CS:S] Weapon Noblock 1.0.0


    Простой плагин Sourcemod для CS:GO, позволяет оружию нарушать физику и проходить сквозь друг друга.

    27 раз скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  24. [CS:GO/CS:S] Вознаграждение / Sm Mani Bounty 1.6


    Плагин является клоном функции Mani плагина ma_bounty, расширенным некоторыми функциями. При достижении определенного количества убийств подряд, за голову доминирующего игрока назначается награда, с каждым убийством и раундом в котором он выжил, она возрастает.
    Так же меняется цвет доминирующего игрока (задается 4 составляющими - Красный, Зеленый, Синий, Прозрачность).
    При убийстве доминирующего игрока убийца получает награду, а цвет убитого становится нормальным.
     
    Настройки:
    sm_ma_bounty_enabled "1" = Разрешить или запретить награды за голову.
    sm_ma_bounty_helpadv "1" = Разрешить или запретить показ помощи в чате.
    sm_ma_bounty_killsstart "5" = Минимальная серия убийств для назначения награды.
    sm_ma_bounty_startbounty "1000" = Начальная награда за голову.
    sm_ma_bounty_killbonus "250" = Бонус за убийство.
    sm_ma_bounty_roundbonus "500" = Бонус за выживание в раунде.
    sm_ma_bounty_headbonus "20" = Процентный бонус за HeadShot 0-100.
    sm_ma_bounty_grenbonus "50" = Процентный бонус за убийство гранатой 0-100.
    sm_ma_bounty_knifebonus "100" = Процентный бонус за убийство ножом 0-100.
    sm_ma_bounty_talpha "200" = Прозрачность террориста 0-255.
    sm_ma_bounty_tblue "150" = Синяя составляющая террориста 0-255.
    sm_ma_bounty_tgreen "50" = Зеленая составляющая террориста 0-255.
    sm_ma_bounty_tred "255" = Красная составляющая террориста 0-255.
    sm_ma_bounty_ctalpha "200" = Прозрачность спецназовца 0-255. 
    sm_ma_bounty_ctblue "255" = Синяя составляющаа спецназовца 0-255.
    sm_ma_bounty_ctgreen "150" = Зеленая составляющаа спецназовца 0-255.
    sm_ma_bounty_ctred "50" = Красная составляющаа спецназовца 0-255.

    15 раз скачали  | 0 комментариев  | Обновлено  | OriginalShaman


  25. [CS:GO/CS:S] Отключение чата и микрофона после смерти / Deadtalk 1.3.0


    Замысел плагина знаком тем кто играл в ESEA: после смерти у игрока есть 5 секунд что бы передать информацию своим тиммейтам.После - его чат и микрофон будет отключен до следующего раунда.
     
    Команды для управления плагином: 
    !dt , !deadtalk , !deadt -  с переменной 0 и 1 ( 0 = выкл, 1 - вкл) позволяют админу включать и отключать плагин
    !dtn и !deadtn - включают и отключат оповещения о работе плагина
     
     
    Установка:
    Раскидать файлы по папкам (.smx в addons/sourcemod/plugins, .cfg в configs и так далее)

    118 раз скачали  | 0 комментариев  |  | OriginalShaman


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

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

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