1 212 файла
-
[CS:GO] Быстрое удаление карт / Map Deleter 1.1
Удобный плагин быстрого удаления карт с помощью конфиг файла. Подойдет например тем у кого очень много карт на сервере, и искать конкретную - долгое занятие.
Прописываете карту в конфиг csgo/cfg/SpirT/spirt.mapdelete.cfg - и карта будет удалена при запуске сервера.
Никаких настроек.
61 раз скачали | 0 комментариев | Обновлено | OriginalShaman
-
[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 - открывают меню управления плагином
63 раза скачали | 0 комментариев | | OriginalShaman
-
[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
94 раза скачали | 0 комментариев | Обновлено | OriginalShaman
-
[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) - превращать любые гранаты во взрывные?
73 раза скачали | 0 комментариев | Обновлено | OriginalShaman
-
[CS:GO] Взрыв игрока после смерти / Player Explode 1.1.1
При убийстве игрока его тело эффектно взрывается.
Команды:
explode_on - включает и отключает плагин
Требуется установить (если еще не установлено) для работы плагина:
Расширение EmitSoundAny
69 раз скачали | 0 комментариев | Обновлено | OriginalShaman
-
[CS:GO] Взрыв упавших гранат / Explode Dropped Grenades 1.0.0
Легкий и простой плагин: выпавшие гранаты (например, с убитых) лежащие на земле, могут взроваться если в них выстрелить.
Возможно будет работать и в CS:S, но не протестировано.
Настройки:
dropped_grenade_damage - 80 - сколько урона наносят взорвавшиеся гранаты
dropped_grenade_radius - 350 - радиус взрыва гранаты
Установка:
Раскидать файлы по папкам (.smx в plugins, .cfg в configs и так далее)
78 раз скачали | 0 комментариев | | OriginalShaman
-
[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)
30 раз скачали | 0 комментариев | | OriginalShaman
-
[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" //Какой флаг доступа должен иметь игрок, чтобы получить взрывные пули у этого оружия }
38 раз скачали | 0 комментариев | Обновлено | OriginalShaman
-
[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
Видео:
37 раз скачали | 0 комментариев | Обновлено | Mr_Swag
-
[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 минут)
90 раз скачали | 0 комментариев | | OriginalShaman
-
[CS:GO] Возрождение последнего убитого / Wait for your killer 1.0.0
Плагин подойдет для создания какого нибудь своего интересного режима, или же для DM и GG серверов.
Суть проста - когда игрок умирает, то последний убитый им противник - возрождается.
Настройки отсутствуют.
54 раза скачали | 0 комментариев | Обновлено | OriginalShaman
-
[CS:GO] Время Тащить / Clutch Timer [xoxo] 1.0.0
Простой плагин который выдает бонус игроку который "затащил". Денежный бонус выдается в случае если игрок остался последний из своей команды и убил как минимум 2 противников.
Настройки:
"clutch_min" "150" - минимальная сумма бонуса
"clutch_max" "1500" - максимальная сумма бонуса
Установка:
Раскидать файлы по папкам (.smx в addons/sourcemod/plugins, .cfg в configs и так далее)
33 раза скачали | 0 комментариев | | OriginalShaman
-
[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
57 раз скачали | 0 комментариев | Обновлено | OriginalShaman
-
[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 119 раз скачали | 2 комментария | Обновлено | OriginalShaman
-
[CS:GO] Выбор карты в середине матча / [Mapchooser] Start map vote at match point 1.0.0
Плагин позволяет запустить голосование за следующую карту при смене команд ( в середине матча).Это поможет сделать игрокам более обдуманный выбор.
Лучше чем ситуация когда за пару минут до конца раунда, в разгар боя, вам вылазит менюшка и предлагают выбор.Обычно игроки жмут первую попавшуюся карту.
Установка:
Раскидать файлы по папкам (.smx в plugins, .cfg в configs и так далее)
139 раз скачали | 0 комментариев | | OriginalShaman
-
[CS:GO] Выбрасываемые гранаты / Shootable Nades 1.0.0
Плагин добавит на ваш сервер возможность сбрасывать гранаты на пол (как оружие), а так же гранаты будут взрываться если в них выстрелить.
Настроек у плагина нет.
Установка:
Раскидать файлы по папкам (.smx в addons/sourcemod/plugins, .cfg в configs и так далее)
83 раза скачали | 0 комментариев | | OriginalShaman
-
[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 и так далее)
116 раз скачали | 0 комментариев | | OriginalShaman
-
[CS:GO] Выдача ножа / Knife at spawn 1.0.0
На некоторых картах (например deathrun или surf) бывает не выдается нож.
Плагин исправляет это и всегда выдает всем игрокам ножи при возрождении.
69 раз скачали | 0 комментариев | Обновлено | OriginalShaman
-
[CS:GO] Выдача ножа повторно / Reset Knife 1.0.0
С помощью плагина, прописав команду в чате игрок может получить свой нож.Это пригодится в случае если он его выбросил,из за бага карты или по каким либо еще причинам.
Плагин не нарушает правил Valve об инвентаре, и ваше GSLT токен не будет забанен!
Команды:
sm_resetknife - выдает нож игроку (команда в консоль)
!resetknife или /resetknife - та же команда, но версии для прописания в чате
Установка:
Раскидать файлы по папкам (.smx в plugins, .cfg в configs и так далее)
78 раз скачали | 0 комментариев | | OriginalShaman
-
[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
-
[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 = нет
63 раза скачали | 2 комментария | | OriginalShaman
-
[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 - админский флаг доступа к выдаче шокера
26 раз скачали | 0 комментариев | Обновлено | OriginalShaman
-
[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" } }
27 раз скачали | 0 комментариев | Обновлено | OriginalShaman
-
[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 скорость которая добавляет с каждым отбитием
41 раз скачали | 0 комментариев | Обновлено | OriginalShaman
-
[CS:GO] Генерирование карт / Randomly generated maps
Плагин для сервера cs:go генерирует (создает) уникальные карты для сервера
28 раз скачали | 0 комментариев | Обновлено | OriginalShaman
-
ТОП-5 Файлов
Неделя
Месяц
Год
Всё время
-