Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
cjanton

VIP Core/Ядро плагина Вип

Recommended Posts

Плагин позволяет выдавать игрокам VIP-статус навсегда или на определенный срок.

Плагин очень гибкий и удобный в настройке. Плагин может работать как SQL так и с MySQL базой.
В архиве только ядро меню, Модули нужно ставить отдельно. 
 

Установка:
1)
 Распаковать архив и раскидать файлы по папкам на сервере.

Расположение файлов и краткое описанние

Скрытый текст

Путь: addons/sourcemod/data/vip/cfg/
Файлы:
users.ini - Файл с VIP-игроками
groups.ini - Файл с VIP-группами
times.ini - Файл с временем в админ-меню
sort_menu.ini - Файл сортировки пунктов в VIP-меню

Путь: addons/sourcemod/data/vip/info/
Файлы:
expired_info.txt - Файл с информацией о истекшем VIP-статусе
no_access_info.txt - Файл с информацией об отсутствии VIP-статуса

Путь: addons/sourcemod/data/vip/modules/
Файлы:
downloadlist.txt - Файл со списком файлов для загрузки клиентам.

Путь: addons/sourcemod/plugins/vip/
Файлы:
VIP_Core.smx - Основной плагин-ядро.

Путь: addons/sourcemod/scripting/include/
Файлы:
vip_core.inc - Библиотека для компиляции.

Путь: addons/sourcemod/translations/
Файлы:
vip_core.phrases.txt - Файл перевода ядра.
vip_modules.phrases.txt - Файл перевода модулей.

Путь: cfg/vip/
Файлы:
vip_core.cfg - Файл с настройками ядра.

2) Если хотите использовать MySQL базу, необходимо в databases.cfg прописать:

"vip"
{
    "driver"        "mysql"
    "host"            "ip"        // ip сервера где находится ваш mysql
    "database"        "vip"        // название базы данных
    "user"            "root"        // имя пользователя базы данных
    "pass"            "pass"        // пароль для этого пользователя
}

При использовании SQLite базы она будет храниться здесь: addons/sourcemod/data/sqlite/vip.sq3

3) Настроить конфиг cfg/vip/VIP_Core.cfg(будет создан автоматически после первого запуска)

4) Установить необходимые модули(будут добавлены чучуть позднее)

5) Для тех кто любит поковырять представлена глубокая настройка и конфигурация:

Настройка информации

Скрытый текст

Настраивается в addons/sourcemod/data/vip/info/
expired_info.txt - Файл с информацией о истекшем VIP-статусе
no_access_info.txt - Файл с информацией об отсутствии VIP-статуса

Зависит от переменной sm_vip_info_show_mode
Если равно 0

Вывод будет происходить построчно в чат. Цвета: {DEFAULT} - золотой {LIGHTGREEN} - салатовый {GREEN} - зеленый HTML цвета, например: #FFFFAA

Если равно 1

Выводится будет построчно в меню.

Если равно 2

Необходимо просто указывать ссылку на страницу, которую необходимо открыть. Например: http://mysite.com/vip_noaccess.html

Сортировка меню
 

Скрытый текст

Настраивается в addons/sourcemod/data/vip/cfg/sort_menu.ini
Вписываете в нужно порядке уникальные имена файлов и подменю.
Пример:

HP

Armor

Money

Speed

Всё что не вписано в данный файл будет идти поcле отсортированых пунктов в случайном порядке.

Настройка groups.ini
 

Скрытый текст

В группах секции отсутствуют.
Каждый ключ – это имя группы.
Параметры в ней такие же как и в индивидуальных правах.
Пример настройки файла

Скрытый текст

"VIP_GROUPS"
{
    "vip1" // Имя группы
    {
        // Параметры
        "HP"            "120"    // Сколько хп будет при спавне
        "Armor"            "100"    // Сколько брони будет при спавне
        "Money"            "16000"    // Сколько денег будет при спавне
        "QuickDefuse"    "1"        // Включает опцию быстрого дефуза
        "Speed"            "1.3"    // Дает установленную скорость (1.0 - норма)
        "RegenHP"        "5"        // Сколько едениц хп в секунду будет восстанавливаться
        "RegenArmor"    "5"        // Сколько едениц брони в секунду будет восстанавливаться
    }

    "vip2" // Имя группы
    {
        // Параметры
        "HP"            "120"    // Сколько хп будет при спавне
        "Speed"            "1.3"    // Дает установленную скорость (1.0 - норма)
        "RegenHP"        "5"        // Сколько едениц хп в секунду будет восстанавливаться
        "RegenArmor"    "5"        // Сколько едениц брони в секунду будет восстанавливаться
    }

 

Сортировка пунктов в Админ меню

Скрытый текст

 "vip_admin"
    {
        "item"        "add_vip"
        "item"        "edit_vip"
        "item"        "del_vip"
        "item"        "list_vip"
        "item"        "reload_vip_players"
        "item"        "reload_vip_cfg"
    }

Команды:
<параметр> - обязательный параметр.
[параметр] - необязательный параметр.

sm_refresh_vips - Перезагружает список VIP-игроков.

sm_reload_vip_cfg - Перезагружает настройки VIP (обновляет группы и выполняет sm_refresh_vips).

sm_delvip <steam_id> - удаляет VIP-игрока

sm_addvip <identity type> <name|#userid|identity> [time] [group] - добавляет VIP-игрока.(Пример sm_addvip file_delete 10 1)

<identity type> это метод идентификации: steam, ip, name.
<name|#userid|identity> это идентификатор ник или юзер айди если игрок на сервере, иначе либо стим/ип/ник.
[time] - время в единицах указанных в конфиге VIP_Core.cfg (Смотрите внимательно sm_vip_time_mode)
[group] - VIP-группа.

 

Модули для данного ядра будут добавлены в сообщениях ниже этого

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites



Установка модулей для ядра

 

1) Распаковать архив и разложить файлы по папкам на сервере.

2) Дописать фразы в файл перевода модулей addons/sourcemod/translations/vip_modules.phrases.txt (Написано в описании к каждому модулю. Если отсутствует - пропустите этот пункт)

3) Настроить конфиг модуля. Находится addons/sourcemod/data/vip/modules/ (Написано в описании к каждому модулю. Если отсутствует - пропустите этот пункт)

4) Прописать нужным VIP-группам параметры, которые добавляет модуль. Находится addons/sourcemod/data/vip/cfg/groups.ini (Написано в описании к каждому модулю. Если отсутствует - пропустите этот пункт)

5) После запуска модуля, будет создан конфиг. Находится cfg/vip/ (Написано в описании к каждому модулю. Если отсутствует - пропустите этот пункт)

Share this post


Link to post
Share on other sites

[VIP] Admin

Описание:
Позволяет выдавать игрокам VIP-статус по админ-группе и админ-флагам.

Настройка:
Настройка в файле addons/sourcemod/data/vip/cfg/vip_admin_users.ini
 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites

[VIP] Test

Описание:
Позволяет игрокам получить VIP-статус на пробный период.

Cvar`s:

sm_vip_test_time "120" - На сколько времени выдавать тестовый VIP-статус (значение зависит от sm_vip_time_mode)
sm_vip_test_group "test_vip" - Группа для тестового VIP-статуса
sm_vip_test_interval "3600" - Через сколько времени можно повторно брать тестовый VIP-статус (значение зависит от sm_vip_time_mode) (0 - Запретить брать повторно)

Конфиг генерируется автоматически /cfg/vip/vip_test.cfg

Команды:
В чате:
!testvip, /testvip, !viptest, /viptest

В консоль:
sm_testvip, sm_viptest

Для админа:
sm_clear_viptest - очищает базу данных, с игроками бравшими пробный VIP-статус.

Если вы хотите переключить плагин на работу с MySQL нужно в databases.cfg прописать:

"vip_test"
{
    "driver"        "mysql"
    "host"            "ip"            // ip сервера где находится ваш mysql
    "database"        "vip_test"        // название базы данных
    "user"            "root"            // имя пользователя базы данных
    "pass"            "pass"            // пароль для этого пользователя
}

Если у вас версия Sourcemod ниже 1.6.0

Замените строку 

GetClientAuthId(iClient, AuthId_Steam2, sAuth, sizeof(sAuth));

на

GetClientAuthString(iClient, sAuth, sizeof(sAuth));

Если у вас показывает ошибку

Native "KeyValues.SetString" was not found

нужно перекомпилировать плагин на версии Sourcemod выше 1.6.3 Компиляция плагина

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Irkutsk86
      Что делает скрипт :

      Скрипт добавляет на ваш сервер систему выдачи лута при появлении игрока, либо определенного лута человеку по steamid64 (донатеру к примеру).

      Как это сделать?
      Для этого нам понадобится зайти в главную папку с вашей картой, к примеру чернарусь (Путь: DayZServer\mpmissions\dayzOffline.chernarusplus)

      После того как вы зашли, в этой папке нужно найти файл с названием init.c

      Открываем файл и видим строки кода, нам нужна строчка с началом ( class CustomMission: MissionServer ).

      Начиная с нее нам нужно вставить код до строчки как на скриншоте клик
      class CustomMission : MissionServer { private const static string m_SpawnLoadoutDirectory = "$profile:SpawnLoadout/"; // root directory for SpawnLoadout private const static string m_DonatorDirectory = m_SpawnLoadoutDirectory + "Donators/"; // directory for donator loadout text files private const static string m_RegularLoadout = m_SpawnLoadoutDirectory + "Regular.txt"; // file for regular loadout private const static string m_CommonItems = m_SpawnLoadoutDirectory + "CommonItems.txt"; // file for in common items for both regular and donator void CustomMission() { FileHandle templateFile; if (!FileExist(m_SpawnLoadoutDirectory)) { MakeDirectory(m_SpawnLoadoutDirectory) // create default CommonItems.txt templateFile = OpenFile(m_CommonItems, FileMode.WRITE); FPrintln(templateFile, "Rag 4\nHuntingKnife\nMatchbox\nHatchet\nFlashlight\nBattery9V\nSodaCan_Cola\nBakedBeansCan"); CloseFile(templateFile); // create default Regular.txt templateFile = OpenFile(m_RegularLoadout, FileMode.WRITE); FPrintln(templateFile, "BomberJacket_Grey\nJeans_Black\nTaloonBag_Blue\nAthleticShoes_Grey"); CloseFile(templateFile); } if (!FileExist(m_DonatorDirectory)) { string template = GetDonatorFile("STEAMIDHERE"); MakeDirectory(m_DonatorDirectory); // create template donator file templateFile = OpenFile(template, FileMode.WRITE); FPrintln(templateFile, "BomberJacket_Blue\nJeans_Grey\nTaloonBag_Orange\nAthleticShoes_Brown"); CloseFile(templateFile); } } //!!! REPLACES EXISTING METHOD override void StartingEquipSetup(PlayerBase player, bool clothesChosen) { player.RemoveAllItems(); // clear all default spawning items FileHandle donatorFile; string line; TStringArray contents = new TStringArray(); string file = GetDonatorFile(player.GetIdentity().GetPlainId()); if (FileExist(file)) { SpawnLoadout(player, ReadFileLines(file)); // spawn donator loadout return; } SpawnLoadout(player, ReadFileLines(m_RegularLoadout)); // spawn regular player loadout } private void SpawnLoadout(PlayerBase player, ref TStringArray loadout) { FileHandle loadoutFile; string line; // creates clothes loadout foreach (string clothes : loadout) player.GetInventory().CreateInInventory(clothes); // creates common items TStringArray items = ReadFileLines(m_CommonItems); foreach (string item : items) { if (item.Contains(" ")) // check for space, which signifies a quantity item { CreateQuantityItem(player, item); continue; } player.GetInventory().CreateInInventory(item); } } private void CreateQuantityItem(PlayerBase player, string item) { TStringArray quantity = new TStringArray(); item.Split(" ", quantity); ItemBase quantityItem = player.GetInventory().CreateInInventory(quantity[0]); quantityItem.SetQuantity(quantity[1].ToFloat()); } private string GetDonatorFile(string id) { return string.Format("%1%2.txt", m_DonatorDirectory, id); } private TStringArray ReadFileLines(string path) { FileHandle file; string line; TStringArray contents = new TStringArray(); file = OpenFile(path, FileMode.READ); while (FGets(file, line) > 0) { line.Trim(); if (line != string.Empty) { contents.Insert(line); line = string.Empty; } } CloseFile(file); return contents; } }; После того как вы вставили код, сохраняйте файл. И запускайте сервер!

      Если ничего не вылезло и сервер нормально запустился, в папке profiles появится папка Spawnloadout.
      В ней вы видите файлы: Regular.txt ; CommonItems.txt
      Эти файлы нужны для стартового снаряжения игрока при спавне. Regular - Для одежды ; CommonItems - Для предметов

      Папка Donator отвечает за кастомные сета игрокам по SteamID64. В этой папке будет файл STEAMIDHERE.txt
      Чтобы прописать сет по SteamID64 нужно изменить название файла и в нем прописать все что нужно выдавать игроку, тут нету разделения на файлы, все нужно писать в 1 файл (Чтобы небыло багов пишите сначало одежду а потом предметы)

      Все обновляется в реальном времени ничего перезапускать не нужно.
       
      P.S: Автор не я !!!
    • By TokZe
      Добрый вечер, знающие подскажите как реализовать продажу через сайт, без очереди и вип!
      также как вывести топ игроков на сайт
    • By Plusiq
      Искал, нигде не нашёл... В общем идея такова- нужно чтобы трейдеры могли продавать только VIP игрокам (Донат) по айди, как это сделать? Помогите.. Заранее спасибо
    • By ZizionarD
      Приветствую, сейчас вы узнаете как настроить плагин DynMap 
      Первым делом конечно же нам нужно его скачать
       
      Далее бросаем его в папку Plugins, за тем запускаем наш сервер, ждём пока прогрузится и​ выключаем, установка завершена!!! =)​ Переходим к настройке:​ 1) Идём в папку Ваш сервер/plugins/DynMap​ 2) Ищем файл "configuration.txt" и открываем.​ 3) Находим строку: cyrillic-support: false Меняем на:
      cyrillic-support: true (Это нужно сделать для того, что бы нормально отображались Русские символы)
      4) Далее ищем строки:
      #scrollback: 100 #visiblelines: 10 Раскомментируем их, то есть убираем "#"
      Получиться:
      scrollback: 100 visiblelines: 10 5) Потом ищем строку:
      webserver-port: Меняем на желаемый порт (Внимание, ни когда не ставьте порт соответствующий порту сервера!!! Пример: ip сервера - 0.0.0.0:25565, не ставьте 25565 на вебсервер - порт (Будут конфликты и нечего не будет работать!)
      6) На DynMap нельзя банить кого-то! В таком случае я отключил чат и советую всем! Вот инструкция: ищем allowwebchat: true Меняем на:
      allowwebchat: false 7) В панели есть слой "Cave" он отображает пещеры карты, что бы его удалить: Ищем файл: plugins/dynmap/templates/normal-hires.txt Копируем и создаем такой же файл с названием "custom-normal-hires.txt" Потом заходим в "custom-normal-hires.txt" Ищем строки: - class: org.dynmap.hdmap.HDMap name: cave title: "Cave" prefix: ct perspective: iso_SE_60_lowres shader: cave lighting: default mapzoomin: 3 И удаляем их
      8) Задаётесь вопросом "Как скрыть игрока на карте ?" Ответ: в чат введите команду "/dynmap hide Имя Игрока" Тем вы скроете игрока на карте. 9) Задаётесь вопросом "Как же скрыть всех игроков кроме определённых?" Ответ: В файле конфигураций (configuration.txt) ищем строчку "display-whitelist:" И просто ставим "True" Но как же отобразить определённых игроков, спросите вы? Легко! Просто надо в чат ввести великолепную команду: "/dynmap show Имя Игрока" 10) Если на вашем сервере есть моды, ищите строчку с началом "ic2" после этой строки будут функции для включения модов в DynMap (Перед функцией уберите "#") 11) Если карта плохо прогружается введите в чат /dynmap fullrender   Источник: Rubukkit.org Понравился гайд? Не поленись и поставь +
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.