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

1 212 файла

  1. [CS:GO] Быстрое удаление карт / Map Deleter 1.1


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

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


  2. [CS:GO] Вампирский Раунд / Vampire Round 1.1


    Плагин для того чтобы добавить разнообразия в игру на ваш сервер: позволяет админам, при помощи команды !vampire или !vampiro - начать Вампирский раунд.
    Это значит что в течении одного раунда игроки нанося урон противнику - будут получать себе ХП, равноценно нанесенному урону.
    Настройки:
    sm_round_start_message - включить оповещение о начале Вампирского раунда?
    sm_round_end_message - включить оповещение о завершении Вампирского раунда?
    sm_round_forcestop_message - оповестить игроков, когда админ принудительно заканчивает Вампирский раунд?
    sm_max_health - Максимальное количество ХП которое может "всосать" в себя игрок (по стандарту 500)
     
    Команды для админа:
    !vampire и !vampiro - открывают меню управления плагином 

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


  3. [CS:GO] Веселые мини раунды / New gamemode - FUN Rounds! 1.2


    Плагин позволяет разнообразить обычные серверные будни убил-возродился-убил.
    Каждый раунд - отдельный режим,которые определяется случайным образом.
    Все раунды-режимы (каждый пункт - отдельный раунд):
    с видом от 3го лица вышибалы (декой граната + 1 HP)  на повышенных скоростях  без отдачи с бесконечным шокером (zeus)  на повышенных скоростях +только на ножах на бесконнечных гранатах на скаутах (мухах) без прицела пулеметы без отдачи + 1000HP случайное оружие AWP+пониженная гравитация+без отдачи Автобхоп раунд Вампирный раунд (игрок получает столько ХП сколько снес противнику) Назад спиной раунд  (W это назад, D вперед, A право, D лево) с повышенным углом обзора (FOV) GTA Раунд Разминирование курицы (что бы разминировать бомбу ее нужно поймать) Только хедшоты Swag+gravity round Раунд с постоянным изменением скорости Раунд только на диглах + только хедщоты Странный раунд Раунд с идеальной отдачей Видео:

     
    Команды:
    !getround - поставить определенный раунд (нужно указать цифру которая соответствует раунду в конфиг файле) !funrounds 1/0 - включение/отключение плагина через чат fr_enable 1/0 включение/отключение плагина через консоль Конфиг файл находится в : addons/sourcemod/data/funrounds/rounds.txt
     
     

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


  4. [CS:GO] Взрыв гранаты после смерти / Martyrdom 1.0.0


    После смерти игрока, если у него были гранаты - они взрываются.
    Но так же можно настроить что если даже у игрока не было гранат - после смерти они все ровно могут выпадать и взрываться у всех игроков.
     
    Настройки:
    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) - превращать любые гранаты во взрывные?

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


  5. [CS:GO] Взрыв игрока после смерти / Player Explode 1.1.1


    При убийстве игрока его тело эффектно взрывается.
     
    Команды:
    explode_on - включает и отключает плагин
     
    Требуется установить (если еще не установлено) для работы плагина:
    Расширение EmitSoundAny

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


  6. [CS:GO] Взрыв упавших гранат / Explode Dropped Grenades 1.0.0


    Легкий и простой плагин:  выпавшие гранаты (например, с убитых) лежащие на земле, могут взроваться если в них выстрелить.
    Возможно будет работать и в CS:S, но не протестировано.
     
    Настройки:
    dropped_grenade_damage - 80 - сколько урона наносят взорвавшиеся гранаты
    dropped_grenade_radius - 350 - радиус взрыва гранаты
     
    Установка:
    Раскидать файлы по папкам (.smx в plugins, .cfg в configs и так далее)

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


  7. [CS:GO] Взрывные курицы/Exploding Chickens 1.0.0


    Да-да, взрывные курицы 
    Sourcemod плагин для csgo.Если выстрелить в курицу то она не просто исчезнет - а взорвется! Радиус взрыва, урон и звук взрыва можно отрегулировать.
    Видео демонстрация
     
    Настройки:
    sm_chicken_explode_damage (def.: 100, min.: 0, max.: 10000) - урон который наносит взрыв.Если 0 то плагин выключается
    sm_chicken_explode_radius (def.: 0, min.: 0, max.: 10000) - Радиус взрыва.Если 0 то радиус выставится рандомно.
    sm_chicken_explode_sound (def.: "weapons/hegrenade/explode3.wav") - звук взрыва курицы.Если оставить настройку пустой то будет бесшумно.
     
    Установка:
    Раскидать файлы по папкам (.smx в plugins)

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


  8. [CS:GO] Взрывные пули / Explosive Bullets 2.2


    Плагин дает возможность добавить в игру взрывные пули. Можно настроить у какого конкретно оружия они будут, или у всех.
    Так же можно убрать урон от взрыва пули, и оставить только сам эффект.
     
    Видео демонстрация:
     
     
    Настройки:
    sm_eb_enabled - (Default: 1) - включает и отключает плагин
    sm_eb_warmup - (Default: 1) - Если 1  то пули будут доступны ДЛЯ ВСЕХ во время разминки
    sm_eb_roundend - (Default: 1) - Если 1 то пули будут доступны ДЛЯ ВСЕХ во время ожидания нового раунда

    Команды:
    sm_eb <client> <1:ON | 0:OFF> - позволяет включить или отключить взрывные пули у определенного игрока
    sm_explosivebullets - тоже самое что sm_eb
    sm_ebme - включает или отключает пули для себя (ебми,лол)
    sm_explosivebulletsme - тоже самое что sm_ebme 
     
    Настройка оружия:
    Вы можете настроить урон и радиус от пуль для каждого оружия и тд.
    Находится все это в конфиге: sourcemod/configs/explosivebullets_guns.cfg
    Для примера  конфиг для AK47, с пояснениями:
    "weapon_ak47" //Оружие { "Enable" "1" //включены ли взрывные пули у этого оружия "Damage" "10.0" //Какой урон от взрыва в эпицентре.Чем дальше игрок от центра - тем меньше урон "Radius" "100.0" //Радиус взрыва "Flag" "b" //Какой флаг доступа должен иметь игрок, чтобы получить взрывные пули у этого оружия }

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


  9. [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


  10. [CS:GO] Возможность Сдаться / Surrender 1.0.0


    Плагин добавит на ваш сервер возможность, которая есть только в режиме матчмейкинга - принять поражение и сдаться.
    Игроки могут начать голосование, и если большинство команды проголосует - команда сдается, матч завершается, команды перемешиваются и начинается новая игра.
     
    Команды плагина:
    !gg и !surrender - две команды которые начинают голосование за сдачу
     
    Настройки плагина:
    sm_surrender_chat_prefix - префикс плагина в чат сообщениях
    sm_surrender_cooldown - включить кулдаун? (перерыв между возможностью вызвать голосование)
    sm_surrender_scramble - перемешивать ли команды, когда одна из них сдается? (0/1)
    sm_surrender_cooldown_time - сколько секунд длится кулдаун (например 600 = 10 минут)
     

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


  11. [CS:GO] Возрождение последнего убитого / Wait for your killer 1.0.0


    Плагин подойдет для создания какого нибудь своего интересного режима, или же для DM и GG серверов.
    Суть проста - когда игрок умирает, то последний убитый им противник - возрождается.
     
    Настройки отсутствуют.

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


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


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

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


  13. [CS:GO] Вшивка моделей в карты / Models in map 1.2


    Плагин позволяет добавлять и сохранять модели/пропы на карты. Стандартные и не стандартные модели.
    Естественно пропы можно крутить, добавлять возможность проходить через них.
     
    Для добавления нестандартных моделей их нужно прописывать в конфиг файле: sourcemod/configs/models/models.cfg
    Каждую модель можно добавить на карту только один раз.Если необходимо добавить эту же модель несколько раз - нужно задать ей другое имя.
    Например:
    "models" { "Big banner" { "model_path" "models/props/banner/mybanner.mdl" "solid" "0" "rotate" "0" } "Big banner 2" { "model_path" "models/props/banner/mybanner.mdl" "solid" "0" "rotate" "1" "rotate_speed" "20" } }  
    Управление:
    !props - открывает меню управления пропами/моделями (флаг доступа D)
    Двигать проп можно нажав кнопку E 
    Вертеть проп можно на 10 градусов, нажимая кнопку R (когда вы его держите)
    Можно толкать и тащить проп нажимая кнопки мыши Mouse1 и Mouse2
     

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


  14. [CS:GO] Выбор Агента / Agents Chooser 1.1.2


    Плагин позволяет игрокам выбирать и устанавливать себе скины (модели) агентов из CS:GO.
    В плане политики VALVE - плагин спорный (например как плагин Ножей или нестандартного оружия), так что используете на свой страх и риск.
     
    Чат Команда для вызова меню выбора:
    !agents
     
    Настройки:
    sm_csgoagents_autoopen "0" - открывать меню выбора автоматический при подключении к серверу?
    sm_csgoagents_instantly "1"  -  скин агента применяется моментально после выбора,или в начале следующего раунда? (1 - моментально)
    sm_csgoagents_timer "0.2"  - через сколько секунд после спауна на игрока будет одет скин агента
    sm_csgoagents_nooverwrittecustom "1" -  не применять скин агента, если на игроке уже есть другой нестандартный скин? 1 = да
     
    Команды для админов:
    !agents_generatemodels - создает конфиг файл со всеми моделями, для использования в плагине skinchooser
    !agents_generatestoremodels - создает конфиг файл со всеми моделями, для использования в плагине Store

    1 116 раз скачали  | 2 комментария  | Обновлено  | OriginalShaman


  15. [CS:GO] Выбор карты в середине матча / [Mapchooser] Start map vote at match point 1.0.0


    Плагин позволяет запустить голосование за следующую карту при смене команд ( в середине матча).Это поможет сделать игрокам более обдуманный выбор.
    Лучше чем ситуация когда за пару минут до конца раунда, в разгар боя, вам вылазит менюшка и предлагают выбор.Обычно игроки жмут первую попавшуюся карту.
     
    Установка:
    Раскидать файлы по папкам (.smx в plugins, .cfg в configs и так далее)

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


  16. [CS:GO] Выбрасываемые гранаты / Shootable Nades 1.0.0


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

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


  17. [CS:GO] Выдача Healthshot и Tagrenade / Healthshot and Tagrenade (testing new csgo items) 1.1


    Плагин позволяет выдавать Healthshot и Tagrenade при возрождении.Так же есть возможность настроить выдачу только для VIP игроков.
     
    Настройки:
    sm_csgonewitems_healthshot "1" // выдавать ли healthshot при возрождении
    sm_csgonewitems_tagrenade "1" // выдавать ли tagrenade при возрождении
    sm_csgonewitems_adminflag "0" // Какой флаг доступа нужен для получения предметов ( 0 = все игроки их получают)
     
    Установка:
    Раскидать файлы по папкам (.smx в plugins, .cfg в configs и так далее)

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


  18. [CS:GO] Выдача ножа / Knife at spawn 1.0.0


    На некоторых картах (например deathrun или surf) бывает не выдается нож.
    Плагин исправляет это и всегда выдает всем игрокам ножи при возрождении.

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


  19. [CS:GO] Выдача ножа повторно / Reset Knife 1.0.0


    С помощью плагина, прописав команду в чате игрок может получить свой нож.Это пригодится в случае если он его выбросил,из за бага карты или по каким либо еще причинам.
    Плагин не нарушает правил Valve об инвентаре, и ваше GSLT токен не будет забанен!
     
    Команды:
    sm_resetknife - выдает нож игроку (команда в консоль)
     !resetknife или  /resetknife  - та же команда, но версии для прописания в чате
     
    Установка:
    Раскидать файлы по папкам (.smx в plugins, .cfg в configs и так далее)

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


  20. [CS:GO] Выдача оружия из Danger Zone / give Danger Zone items 1.0.0


    Простой плагин выдающий игрокам оружие из Danger Zone по определенным чат командам.
    Видео работы плагина:
     
     
    Чат команды:
    !ta  - дает TA гранату
    !mine - выдает мину
    !charge - выдает взрывчатку
    !shield - выдает щит
     
    Совет: чтобы сервер не погрузился в хаос и игроки не спамили командой - сделайте доступ к командам по флагам доступа
     
    Установка:
    Раскидать файлы по папкам (.smx в addons/sourcemod/plugins, .cfg в configs и так далее)
     
     

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


  21. [CS:GO] Выдача Снежков / Player receive 3x Snowballs (!snow) 1.0.0


    Плагин позволит игрокам вашего сервера получить 3 снежка.
     
    Для получения снежков, игроку необходимо прописать в чате одну из команд:
    !snow
    !snowball
    !snowballs
     
    Настройки плагина:
    sm_hoyxen_snowballs_join_message -  включить чат-оповещение для игроков, при подключении к серверу? 1 = да, 0 = нет
    sm_hoyxen_receive_snowballs_message - показывать чат оповещение когда игрок получает снежки? 1 = да, 0 = нет

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


  22. [CS:GO] Выдача шокера/тазера/зевса / Give Taser 1.0.0


    Позволяет игрокам получить шокер/тайзер с помощью чат команды. В отличии от аналогичных плагинов имеет гибкую систему настроек (например доступ только для админов и так далее).
     
    Для получения шокера нужно прописать в чате: !taser или /taser
    Или в консоли: sm_taser
     
    Настройки:
    sm_gt_enabled - включение и отключение плагина
    sm_gt_public_enabled - могут ли обычные игроки получить шокер
    sm_gt_max_admin_round - сколько шокеров за раунд админ может получить
    sm_gt_max_admin_life - сколько шокеров за одну жизнь админ может взять
    sm_gt_max_admin_map - сколько шокеров за одну карту может получить админ
    sm_gt_admin_cooldown - через сколько секунд после использования прошлого шокера админ сможет получить новый
    sm_gt_max_pubic_round - сколько шокеров за раунд игрок может получить
    sm_gt_max_pubic_life - сколько шокеров за одну жизнь игрок может взять
    sm_gt_max_pubic_map - сколько шокеров за одну карту может получить игрок
    sm_gt_pubic_cooldown - через сколько секунд после использования прошлого шокера игрок сможет получить новый
    sm_gt_track_buys - производить выдачу как закупку через меню закупки оружия?
    sm_gt_track_money- должен ли игрок заплатить 200$ за шокер?
    sm_gt_admin_flag - админский флаг доступа к выдаче шокера

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


  23. [CS:GO] Вышибалы + Минигры / Decoy DodgeBall 1.0.0


    Плагин вышибал для CS:GO, выдает шумовые гранаты и устанавливает игрокам HP в зависимости от настроек.
     
    Настройки:
    sm_db_give_time (Default 1.0) - задержка между выдачей новой гранаты
    sm_db_equip_notify (Default 0) - Если 1, игрок будет получать сообщения о  выдаче гранаты
    sm_db_remove_timer (Default 30.0) - через сколько секунд удаляются все гранаты на полу
    sm_db_bounces (Default 1) - количество отскоков гранаты перед взрывом
    sm_db_random (Default 0) -  если включено то количество отскоков будет рандомным
    sm_db_random_max (Default 3) - максимальное количество отскоков в рандоме
    sm_db_random_min (Default 1) - минимальное количество отскоков в рандоме
    sm_db_rs_advert (Default 1) - оповещение во время начала раунда
    sm_db_client_health (Default 1) - ХП игроков в начале раунда
    sm_db_client_armor (Default 0) - Броня игроков в начале раунда
    sm_db_damage (Default 200.0) - Количество урона который наносят гранаты
    sm_db_debug (Default 0) - "безопасный" режим плагина
    sm_db_minigames (Default 0) - Включает режим мини игр
    sm_db_automode (Default 1) - Если 1, то при смене ХП/брони у всех игроков поменяются тоже
    sm_db_logfile (Default "logs/dodgeball.log") - файл в который будет записан лог плагина
     
    Мини-игры
    Если включен sm_db_minigames  то каждый раунд будет разным. Настроить можно в файле addons/sourcemod/dodgeball_minigames.cfg
    "Minigames" { // Options // ----------------------------------------------------- // Name - The name of the minigame that will print to chat if selected depending on "announce". // RSCC (Round Start Custom Config) - A custom config to execute on round start for this minigame (default "") *Starts in gameroot/cfg folder* // RECC (Round End Custom Config) - A custom config to execute on round end for this minigame (default "") *Starts in gameroot/cfg folder* // Announce - Whether to announce this minigame on round start if selected (default 0) *Custom minigames will have this enabled but default but normal gameplay will not. // ----------------------------------------------------- "Default" { "name" "Normal" "rscc" "dodgeball/mg_start_default" "recc" "" "announce" "0" } "LowGrav" { "name" "Low Gravity" "rscc" "dodgeball/mg_start_lowgrav" "recc" "dodgeball/mg_end_lowgrav" "announce" "1" } "SuperLowGrav" { "name" "Super Low Gravity" "rscc" "dodgeball/mg_start_superlowgrav" "recc" "dodgeball/mg_end_superlowgrav" "announce" "1" } "Slide" { "name" "Slide" "rscc" "dodgeball/mg_start_slide" "recc" "dodgeball/mg_end_slide" "announce" "1" } "SlowRunSpeed" { "name" "Slow Run Speed" "rscc" "dodgeball/mg_start_slowspeed" "recc" "dodgeball/mg_end_slowspeed" "announce" "1" } }

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


  24. [CS:GO] Вышибалы с мячом / Dodgeball with homing ball! 1.0.0


    Плагин позволяет организовать классические вышибалы на сервере - с мячом. Отбивать его можно либо ножом либо шокером.
    Каждое отбитие мяча увеличивает его скорость на 50 пунктов.
    Видео:
     
    Для игры в этот режим требуются особенные карты (в интернете можно их найти с префиксом csdb_  и db_)
     
    Настройки:
    csdb_enable 1 вклчюение и отключение плагина
    csdb_particle 1 включить ли огонь на месте появления мяча
    csdb_taser 1 включить отбивание шокером
    csdb_speed 600.0 начальная скорость мяча
    csdb_chicken_size 1.5 размер модели курицы
    ball_model "models/forlix/soccer/soccerball.mdl"  путь до модели мяча
    chicken_model 0 заменить ли мяч - курицей?
    chicken_skin 0 ,  какой скин курицы использовать? 0 обычная курица, 1 курица зомби
    csdb_maxspeed 3500.0 максимальная скорость мяча которую он может достигнуть
    csdb_reflect_add_speed 50.0 скорость которая добавляет с каждым отбитием

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


  25. [CS:GO] Генерирование карт / Randomly generated maps


    Плагин для сервера cs:go генерирует (создает) уникальные карты для сервера
     
     

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


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

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

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