Перейти к содержанию

Боты не открывают дверь в начале раунда (Round Start Bot Stop)


Ry@N

Рекомендуемые сообщения

  • Администратор

Описание:

  • Этот плагин будет очень полезен тем, у кого для sb_all_bot_team установлено значение 1. Плагин остановит ботов в начале раунда, на 40 секунд.

CVAR'S:

l4d2_RSBS_delay_enabled "1" Включить или отключить задержку ботов
l4d2_RSBS_delay "40" Время задержки ботов

Установка:

  • Скомпилировать .sp файл на версии SM 1.10.0.6492 и поместить получившийся .smx файл в /left4dead2/addons/sourcemod/plugins
  • Либо уже воспользоваться нашим .smx файлом (Скомпилированно на SM 1.10.0.6492)
  • Сделать рестарт сервера.

RSBS.smx RSBS.sp

Я не ищу ничего логичного, например денег. Меня нельзя купить, запугать, аргументировать или договориться со мной. Я просто хочу смотреть, как горит мир.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
  • 7 месяцев спустя...
  • Администратор
14.09.2020 в 10:51, Ryancoolround сказал:

Описание:

  • Этот плагин будет очень полезен тем, у кого для sb_all_bot_team установлено значение 1. Плагин остановит ботов в начале раунда, на 40 секунд.

CVAR'S:


l4d2_RSBS_delay_enabled "1" Включить или отключить задержку ботов
l4d2_RSBS_delay "40" Время задержки ботов

Установка:

  • Скомпилировать .sp файл на версии SM 1.10.0.6492 и поместить получившийся .smx файл в /left4dead2/addons/sourcemod/plugins
  • Либо уже воспользоваться нашим .smx файлом (Скомпилированно на SM 1.10.0.6492)
  • Сделать рестарт сервера.

RSBS.smxНедоступно RSBS.spНедоступно

Блин, кому то действительно нужно сделать этот код более удобным для чтения :D

Я не ищу ничего логичного, например денег. Меня нельзя купить, запугать, аргументировать или договориться со мной. Я просто хочу смотреть, как горит мир.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Похожий контент

    • Автор Ry@N
      SPCode - продолжение работы над SPEdit но уже другим разработчиком. То есть это Форк.
      Почему вам надо использовать SPCode вместо SPEdit:
      Редактор работает теперь на .NET Framework 4.8 (раньше работал на 4.5). Исправлен ошибка при закрытии несохраненной вкладки (Очень меня раздражало). Исправлены проблемы с отступом. Обновлены шаблоны плагинов. Помимо указанных четырех пунктов в программе есть еще очень много различных исправлений, плюс редактор сам по себе новее, ну и в него включены новые переводы
      SPCode.Installer.exe
      Требования:
      Что бы попытаться раскомпилировать простейшие плагины этим редактором, вам на PC потребуется последняя версия Java. Добавил это в первый пост.
    • Автор Ry@N
      Новый формат изображений от Google с расширением .webp набирает популярность. Всё чаще его можно встретить на сайтах, так как он оптимизирует картинку под меньший размер без потери качества по сравнению с .jpg. В этом году его стали использовать даже у нас на IP-Gamers.NET.
      Но, при скачивании и открытии в Photoshop, такой файл выдаёт ошибку, которая говорит что Photoshop не может  прочитать этот формат.
      Что бы избежать этого, по пути:
      C:\Program Files\Adobe Photoshop 2020\Plug-ins\File Formats Вставьте файл, что я прикрепил в этом посте.
      Так же рекомендую сохранять ваши JPG теперь именно в WEBP.
      W.rar
       
    • Автор Ry@N
      Как я понял, администраторы делаю випам цветной чат. Если тот, у кого цветной чат использует специальный символ, например @, то цветное сообщение блокируется, и отправляется обычное. Плагин понравился тем, что у него простой и очень маленький код.
      /* [ Includes ] */ #include <sourcemod> /* [ Compiler Options ] */ #pragma newdecls required #pragma semicolon 1 /* [ Defines ] */ #define MAX_MESSAGE_LENGTH 512 /* [ Chars ] */ static const char g_sSymbols[][] = { "", "", "", "", "", "", "", "", "", "", "", " " }; // White | Green | Blue | Darkblue | Darkred | Gold | Grey | Lightgreen | Lightred | Lime | Purple | Yellow /* [ Plugin Author And Informations ] */ public Plugin myinfo = { name = "[CS:GO] Pawel - [ Block Color Chat ]", author = "Pawel", description = "Block color messages for CS:GO servers by Pawel.", version = "1.0.0", url = "https://steamcommunity.com/id/pawelsteam" }; /* [ Message Modify ] */ public Action OnChatMessage(int &iAuthor, Handle hRecipients, char[] sName, char[] sMessage) { for (int i = 0; i < sizeof(g_sSymbols); i++) { while (StrContains(sMessage, g_sSymbols[i]) != -1) { ReplaceString(sMessage, MAX_MESSAGE_LENGTH, g_sSymbols[i], ""); return Plugin_Changed; } } return Plugin_Continue; }  
      pBlockColorChat.sp pBlockColorChat.smx
    • Автор Ry@N
      Этот плагин позволяет игрокам носить маски, защищающие их от Covid-19. Внимание, плагин работает только в Team Fortress 2.
      Пропишите команду !covid что бы использовать маску.

      Ниже код, на случай того, если я буду удалять файлы в своем профиле:
      #include <sourcemod> #include <tf2_stocks> #include <clientprefs> #include <morecolors> #pragma semicolon 1 #pragma newdecls required #define PLUGIN_VERSION "1.0" #define MASK_INDEX 31163 Handle g_hWearableEquip; Handle g_hCookie; int g_Mask[MAXPLAYERS+1] = {false,...}; public Plugin myinfo = { name = "[TF2] Covid-19", author = "Tair", description = "Gives TF2 players mask against Covid-19", version = PLUGIN_VERSION, url = "https://forums.alliedmods.net" } public void OnPluginStart() { RegConsoleCmd("sm_covid", Command_Mask); HookEvent("post_inventory_application", OnResupply); g_hCookie = RegClientCookie("covid_mask", "", CookieAccess_Private); GameData hTF2 = new GameData("sm-tf2.games"); // sourcemod's tf2 gamdata if (!hTF2) SetFailState("This plugin is designed for a TF2 dedicated server only."); StartPrepSDKCall(SDKCall_Player); PrepSDKCall_SetVirtual(hTF2.GetOffset("RemoveWearable") - 1); // EquipWearable offset is always behind RemoveWearable, subtract its value by 1 PrepSDKCall_AddParameter(SDKType_CBaseEntity, SDKPass_Pointer); g_hWearableEquip = EndPrepSDKCall(); if (!g_hWearableEquip) SetFailState("Failed to create call: CBasePlayer::EquipWearable"); delete hTF2; } public Action OnResupply(Handle event, char[] name, bool dontBroadcast) { int client = GetClientOfUserId(GetEventInt(event, "userid")); if(g_Mask[client]) CreateMask(client); } public Action Command_Mask(int client, int args) { if (!g_Mask[client]) { g_Mask[client] = true; SetClientCookie(client, g_hCookie, "true"); CPrintToChat(client,"{gold}★ Covid-19 {white}| Mask is now on! Touch resupply to receive!"); } else { g_Mask[client] = false; SetClientCookie(client, g_hCookie, "false"); CPrintToChat(client,"{gold}★ Covid-19 {white}| Mask is now off. Touch resupply to remove it!"); } return Plugin_Handled; } public void OnClientDisconnect(int client) { g_Mask[client] = false; } public void OnClientCookiesCached(int client) { char value[9]; GetClientCookie(client, g_hCookie, value, sizeof(value)); if (StrEqual(value, "true")) g_Mask[client] = true; } bool CreateMask(int client) { int hat = CreateEntityByName("tf_wearable"); if (!IsValidEntity(hat)) { return false; } char entclass[64]; GetEntityNetClass(hat, entclass, sizeof(entclass)); SetEntProp(hat, Prop_Send, "m_iItemDefinitionIndex", MASK_INDEX); SetEntProp(hat, Prop_Send, "m_bInitialized", 1); SetEntData(hat, FindSendPropInfo(entclass, "m_iEntityQuality"), 10); SetEntProp(hat, Prop_Send, "m_iEntityLevel", 1); DispatchSpawn(hat); SDKCall(g_hWearableEquip, client, hat); return true; }  
      Covid.smx Covid.sp
    • Автор Ry@N
      Данный плагин добавляет команду !voice на сервер. Игрок ее прописывает, и после, для этого игрока отключаются микрофоны других игроков. Что бы снова активировать микрофоны надо снова прописать команду !voice.
      Так как мое файловое хранилище постоянно обновляется, и плагин может быть удален, выкладываю исходники в виде кода.
      voice.sp:
      #include <sdktools_voice> #include <clientprefs> ListenOverride g_userFlag[MAXPLAYERS + 1]; Handle g_hCookie; bool g_bVoiceEnable[MAXPLAYERS + 1] = true; public Plugin myinfo = { name = "Voice", author = "bat9xxx", version = "1.0", url = "vk.com/s_plus2018" }; public void OnPluginStart() { RegConsoleCmd("sm_voice", VoiceChange); LoadTranslations(GetEngineVersion() == Engine_SourceSDK2006 ? "voice_old.phrases" : "voice.phrases"); g_hCookie = RegClientCookie("voice_enable", "Включен/выключен", CookieAccess_Public); } public void OnClientCookiesCached(int iClient) { char szValue[4]; GetClientCookie(iClient, g_hCookie, szValue, sizeof(szValue)); if (szValue[0])g_bVoiceEnable[iClient] = view_as<bool>(StringToInt(szValue)); else g_bVoiceEnable[iClient] = true; } public Action VoiceChange(int iClient, int iArgs) { char szBuffer[128]; if (g_bVoiceEnable[iClient] == false) { g_bVoiceEnable[iClient] = true; SetClientCookie(iClient, g_hCookie, "1"); FormatEx(szBuffer, sizeof(szBuffer), "%t %t", "Prefix", "Enable"); g_userFlag[iClient] = Listen_Yes; } else { g_bVoiceEnable[iClient] = false; SetClientCookie(iClient, g_hCookie, "0"); FormatEx(szBuffer, sizeof(szBuffer), "%t %t", "Prefix", "Disable"); g_userFlag[iClient] = Listen_No; } PrintToChat2(iClient, szBuffer); for (int i = 1; i <= MaxClients; i++) { if (IsClientInGame(i) && !IsFakeClient(i)) { SetListenOverride(iClient, i, g_userFlag[iClient]); } } } public void OnClientPutInServer(int iClient) { g_userFlag[iClient] = g_bVoiceEnable[iClient] ? Listen_Yes : Listen_No; } stock void PrintToChat2(int iClient, char[] szMessage, any...) { static int iEngine = -1; static const int g_iColorsCSSOB[] = { 0xFFFFFF, 0xFF0000, 0x00AD00, 0x00FF00, 0x99FF99, 0xFF4040, 0xCCCCCC, 0xFFBD6B, 0xFA8B00, 0x99CCFF, 0x3D46FF, 0xFA00FA }; static const char g_sColorsOldBefore[][] = { "{DEFAULT}", "{TEAM}", "{GREEN}" }, g_sColorsOldCSS[][] = { "\x01", "\x03", "\x04" }, g_sColorsBefore[][] = { "{WHITE}", "{RED}", "{GREEN}", "{LIME}", "{LIGHTGREEN}", "{LIGHTRED}", "{GRAY}", "{LIGHTOLIVE}", "{OLIVE}", "{LIGHTBLUE}", "{BLUE}", "{PURPLE}" }, g_sColorsCSGO[][] = { "\x01", "\x02", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x10", "\x0B", "\x0C", "\x0E" }; if (iClient && IsClientInGame(iClient) && !IsFakeClient(iClient)) { char szBuffer[PLATFORM_MAX_PATH], szNewMessage[PLATFORM_MAX_PATH]; if (iEngine == -1) { switch (GetEngineVersion()) { case Engine_CSGO:iEngine = 0; case Engine_CSS:iEngine = 1; case Engine_SourceSDK2006:iEngine = 2; } } Format(szBuffer, sizeof(szBuffer), !iEngine ? " \x01%s" : "\x01%s", szMessage); VFormat(szNewMessage, sizeof(szNewMessage), szBuffer, 3); if (!iEngine) { for (int i = 0; i < 12; i++) { ReplaceString(szNewMessage, sizeof(szNewMessage), g_sColorsBefore[i], g_sColorsCSGO[i]); } ReplaceString(szNewMessage, sizeof(szNewMessage), "{TEAM}", "\x03"); } else { if (iEngine == 1) { char sBuff[64]; switch (GetClientTeam(iClient)) { case 1:Format(sBuff, sizeof(sBuff), "\x07%06X", g_iColorsCSSOB[6]); case 2:Format(sBuff, sizeof(sBuff), "\x07%06X", g_iColorsCSSOB[5]); case 3:Format(sBuff, sizeof(sBuff), "\x07%06X", g_iColorsCSSOB[9]); } ReplaceString(szNewMessage, sizeof(szNewMessage), "{TEAM}", sBuff); for (int i = 0; i < 12; i++) { Format(sBuff, sizeof(sBuff), "\x07%06X", g_iColorsCSSOB[i]); ReplaceString(szNewMessage, sizeof(szNewMessage), g_sColorsBefore[i], sBuff); } } else { for (int i = 0; i < 3; i++) { ReplaceString(szNewMessage, sizeof(szNewMessage), g_sColorsOldBefore[i], g_sColorsOldCSS[i]); } } } Handle hBf = StartMessageOne("SayText2", iClient, USERMSG_RELIABLE | USERMSG_BLOCKHOOKS); if (hBf) { if (GetUserMessageType() == UM_Protobuf) { Protobuf hProtoBuffer = UserMessageToProtobuf(hBf); hProtoBuffer.SetInt("ent_idx", iClient); hProtoBuffer.SetBool("chat", true); hProtoBuffer.SetString("msg_name", szNewMessage); hProtoBuffer.AddString("params", ""); hProtoBuffer.AddString("params", ""); hProtoBuffer.AddString("params", ""); hProtoBuffer.AddString("params", ""); } else { BfWrite hBfBuffer = UserMessageToBfWrite(hBf); hBfBuffer.WriteByte(iClient); hBfBuffer.WriteByte(true); hBfBuffer.WriteString(szNewMessage); } } EndMessage(); } } voice.phrases:
      "Phrases" { "Prefix" { "en" "{RED}[Voice]" "ru" "{RED}[Voice]" } "Enable" { "en" "{BLUE}Now everyone can hear!" "ru" "{BLUE}Теперь слышно всех!" } "Disable" { "en" "{BLUE}Now you can't hear anyone" "ru" "{BLUE}Теперь никого не слышно!" } } voice_old.phrases:
      "Phrases" { "Prefix" { "en" "{TEAM}[Voice]" "ru" "{TEAM}[Voice]" } "Enable" { "en" "{GREEN}Now everyone can hear!" "ru" "{GREEN}Теперь слышно всех!" } "Disable" { "en" "{GREEN}Now you can't hear anyone" "ru" "{GREEN}Теперь никого не слышно!" } }  
      Voice.rar
  • Как вы называете мужчин-балерин?

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу


×
×
  • Создать...