Ядро плагина [Levels Ranks] Core 2.1.0 alpha

Ядро плагина статистики. Поддержка рангов в таблице.

  1. RoadSide Romeo

    RoadSide Romeo Модератор

    Сообщения:
    637
    Симпатии:
    476
    Что введено в версии 2.1.0:

    - поддержка 3-его типа статистики (счетчик времени - т.е. ранги даются за большее присутствие на сервере)
    - вместо 55 рангов теперь введены 19 рангов
    - изменены конфиг-файлы (некоторые настройки удалены)
    - отказ от большинства оверлеев в пользу только двух (повышение и понижение ранга)
    - добавлены и изменены консольные команды
    - синхронизация с [VIP] Core
    - оптимизация кода
    - изменен файл перевода
    - теперь 2-ой тип статистики можно настроить по своему вкусу
    - убраны множители опыта для 2-ого типа статистики
    - теперь у каждого типа статистики своя расчетная единица (1-поинты, 2-очки опыта и 3-секунды)
    - теперь система получения ранга устроена так, что изначально человек имеет звание "Калибровка" и только по окончанию калибровки, т.е. как будет набрано 25 киллов, игрок получит свое откалиброванное звание
    - изменены немного нативы
    - попытка исправить баги при использовании БД MySQL
    - попытка ввести полную поддержку UTF-8
    - все модули ниже данной версии, не будут работать на этом ядре


    Данное ядро является только Альфа-версией и в него будут ещё добавляться кое-какие детали. Он представлен публике в качестве теста , дабы оценить его минусы и плюсы, и найти слабые места, которые следует пофиксить.

    Версия 2.0.5 не удалена из архива плагина, вы в любой момент сможете зайти в раздел
    "История версий" и скачать старую версию.


    Для тех кому интересно, сам главный конфиг будет иметь следующий вид.
    Думаю в данном варианте, всем будет более или менее понятно, что где да и как устроено, и что нужно делать, в случае чего.

    Код:
    "LR_Settings"
    {
        "MainSettings"
        {
            "lr_call_menu"        "!lvl;!лвл;"            // какой командой вызвать Главное меню (указывайте через точку с запятой)
            "lr_flag_adminmenu"        "l"                    // какой флаг должен иметь админ, чтобы была активна Панель Администратора
    
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //
            //        Выберите тип статистики.
            //
            //        Если выберите с 0 до 2, то плагин будет работать самостоятельной статистикой: подсчет и выдача рангов
            //        будет производиться самим плагином
            //
            //        Если выберите с 3 по 5, то плагин будет лишь синхронизироваться с другими статистиками и выдавать
            //        ранги игрокам в зависимости от полученных очков из других плагинов.
            //        Внимание: функции прибавления/убавления будут отключены в данных типах.
            //
            //        Если вы уже использовали один из типов статистики и решили изменить тип на другой
            //        Рекомендуется обнулить статистику у всех игроков, во избежании некорректного подсчета ранга для каждого игрока
            //
            //        Обнуление происходит следующим образом :
            //            1) меняете тип статистики
            //            2) перезапускаете сервер и ставите его на пароль, чтобы никто не зашел
            //            3) вводите в консоль сервера команду sm_lvl_zeroing, чтобы плагин автоматически обнулил всех игроков
            //            статистика убийств/ассистов и т.п. не будет удалена, а только лишь значение расчетных единиц (очков опыта/время/поинты)
            //            4) снова перезапускаете сервер и убираете пароль
            //
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //
            //        0 -    Ранги по накопленным поинтам
            //            Ранг игрока будет зависеть от кол-ва накопленных поинтов.
            //
            //         1 -    Ранги по скиллу игрока
            //            Опыт игроков зависит от их скилла (Аналоги: GameMe, RankMe или HLstatsX:CE)
            //            То есть, если игрок хорошо играет, он будет иметь высокий ранг, а если плохо, то низкий
            //
            //         2 -    Ранги по времени
            //            Ранг игрока будет зависеть от времени. Т.е, если игрок играет долго, то и ранг высокий иметь будет.
            //
            //         3 -    Синхронизация с RankMe
            //            Плагин будет брать очки игроков из RankMe.
            //
            //         4 -    Синхронизация с GameMe
            //            Плагин будет брать очки игроков из GameMe.
            //
            //         5 -    Синхронизация с HLstatsX:CE
            //            Плагин будет брать очки игроков из HLstatsX:CE.
            //
    
            "lr_type_statistics"        "1"        // стандартное значение 1
    
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //
            //        Выберите тип званий.
            //
            //        Если вы меняете тип званий, то после смены типа обязательно перезапустите сервер.
            //
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //
            //         0 -    Звания CS:GO (18 званий)
            //            Плагин, в данном случае, будет использовать обычные звания из матчмейкинга CS:GO
            //
            //         1 -    Воинские звания (19 званий)
            //            Плагин, в данном случае, будет использовать воинские звания
            //
    
            "lr_type_rank"        "0"        // стандартное значение 0
    
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
            "lr_use_vipcore"        "0"            // использовать VIP-статус с [VIP] Core (0 - нет, 1 - да)
            "lr_show_fakerank"        "0"            // показывать звания в ТАБе (0 - нет, 1 - да)
            "lr_show_overlays"        "1"            // показывать оверлеи при повышении звания (0 - нет, 1 - да)
            "lr_show_spawnmessage"    "1"            // оповещение плагина при спавне игрока (0 - нет, 1 - да)
            "lr_cleaner_db"            "30"        // сколько дней должен отсутствовать игрок, чтобы удалить из базы (0 - отключить)
        }
    }
     
    Последнее редактирование: 19 мар 2017 в 23:58
    Lebios321256, egor_ax1le, Акулка и 50 другим нравится это.
  2. Ivan Aksentiy

    Ivan Aksentiy

    Сообщения:
    2
    Симпатии:
    0
    У меня не работает плагин!Можешь помочь?
     
  3. kleuser

    kleuser

    Сообщения:
    625
    Симпатии:
    95
    @RoadSide Romeo, разберись с лагами при выходе умоляю, уже даже раздражать начинает это. на старых версиях все же нормально было...
    Сейчас с 1.3.4 все работает нормально, только лагает при выходе игроков.
     
    hearest нравится это.
  4. hearest

    hearest

    Сообщения:
    139
    Симпатии:
    26
    +
    у меня при повышении и при выдаче ранга пролагивает
     
  5. Иванчо Бальбовски

    Иванчо Бальбовски ))0)0)))0)))0)0

    Сообщения:
    789
    Симпатии:
    147
    Будет ли чат-тег с рангом игрока (активируемый в Инвентаре игрока по желанию)?
     
  6. Ozhent#.

    Ozhent#.

    Сообщения:
    47
    Симпатии:
    4
    Возможно ли?
    Вместо столбца счета сделать столбец с рангом игрока в TAB
    Screenshot_1.png
     
  7. Иванчо Бальбовски

    Иванчо Бальбовски ))0)0)))0)))0)0

    Сообщения:
    789
    Симпатии:
    147
    Это и так уже есть
    Читайте описание


    // Включить ли показ кол-во опыта в ТАБе
    // 0 - выключить показ опыта в ТАБе
    // 1 - включить показ опыта в ТАБе
    "ranks_scoreexp" "1"
     
  8. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.753
    Симпатии:
    1.233
    Для автора плагина.
    PHP:
    if (g_iExp[iClient] >= StringToInt(g_sShowExp[g_iRank[iClient]+1]))
            {
                
    EmitSoundToClient(iClientg_sEmitSoundPath);
                ++
    g_iRank[iClient];
                if(!
    g_iAllMessages) {LR_PrintToChat(iClient"%t""LevelUp"g_sShowRank[g_iRank[iClient]]);}
                if(
    g_iOverlays) {SetOverlay(iClientg_iRank[iClient]);}
            }
            else if (
    g_iExp[iClient] < StringToInt(g_sShowExp[g_iRank[iClient]]))
            {
                
    EmitSoundToClient(iClientg_sEmitSoundPath2);
                --
    g_iRank[iClient];
                if(!
    g_iAllMessages) {LR_PrintToChat(iClient"%t""LevelDown"g_sShowRank[g_iRank[iClient]]);}
            }
    без дурацкого сдвига на минус один в g_sShowRank.

    Убери SaveDataPlayer(IDGivePP); и не будет лага при добавление экспы через админку.
    А то после каждого нажатия в меню идёт запрос в бд :hunter:и так можно её вальнуть. Да и цыкал проверять ранги.
    Ну и сохранение делай через SQL_Query или stats_db.Query.
    Можешь сделать сохранение в бд в конце раунда.
     
    Последнее редактирование: 14 июн 2016
  9. Ozhent#.

    Ozhent#.

    Сообщения:
    47
    Симпатии:
    4
    Не опыт игрока а ранг
     
  10. xados

    xados

    Сообщения:
    264
    Симпатии:
    4
    У меня пару вопросов.
    1. как сделать так чтобы ранк не реагировал на ботов.. а то видь на ботав очень быстро покачаться можно если их резать с ножа.
    2. Я отключил чтобы очки за потерю и поднятие бомбы не давалось. Как убрать это из чата а то все равно пишет типо мол "Вы выкинули бомбу: 22 (-0 опыта) как это полностью убрать для тех пунктов кому дается по ноль очков.
    3. И как сделать так чтобы очки вообще не какие не засчитывались на Warmup/e?

    Такое я сам наверняка не смогу сделать. Автор не мог бы ты добавить эти вещи в свой плагин.. думаю они очень важны.
    Заранее благодарен
     
  11. kleuser

    kleuser

    Сообщения:
    625
    Симпатии:
    95
    но в итоге все равно лаги есть при выходе. вот как вышла 1.2.x версия начались лаги, из-за этого я до сих пор на основном сервере сижу на 1.1.3
     
  12. kleuser

    kleuser

    Сообщения:
    625
    Симпатии:
    95
    @RoadSide Romeo, сделай старое сохранение как было раньше
     
  13. kleuser

    kleuser

    Сообщения:
    625
    Симпатии:
    95
    @RoadSide Romeo,извиняюсь. Странное явление тогда. может новый синтаксис пургу гонит...
     
  14. xados

    xados

    Сообщения:
    264
    Симпатии:
    4
    можно получить пожалуйста ответ на мой вопрос?
     
  15. Ozhent#.

    Ozhent#.

    Сообщения:
    47
    Симпатии:
    4
    В файле перевода удали что-ненужно
    addons/sourcemod/translations/levels_ranks_core.phrases.txt
     
  16. xados

    xados

    Сообщения:
    264
    Симпатии:
    4
    Ошибку потом сыпит
     
  17. RoadSide Romeo

    RoadSide Romeo Модератор

    Сообщения:
    637
    Симпатии:
    476
    @xados.
    Отвечаю на первый вопрос: данную ошибку я уже исправил.
    Отвечаю на второй вопрос: данную ошибку я также исправил.
    Отвечаю на третий вопрос: касательно вармупа я ещё не думал, но такая есть в перспективе.
     
    xados нравится это.
  18. xados

    xados

    Сообщения:
    264
    Симпатии:
    4
    в какой Версии ты исправил это? потому что я вчера буквально поставил твой плагин версии 1.3.4 и там
    эти ошибки еще не исправлены.
    и еще можешь ли в новой версии сделать совместимость Gameme,
    совместимость с ножами и скинами о феникса. пожалуйста.

    и одна проблема я выставил чтобы сохранялось все по mysql. Вел все нужные данные базы, все правильно, но при новой карте ранги сбрасываются все равно и в логах пишет такую ошибку хотя данные вел правильно "[levelsranks_core.smx] [Levels Ranks] Query Fail: Lost connection to MySQL server during query"
     
  19. RoadSide Romeo

    RoadSide Romeo Модератор

    Сообщения:
    637
    Симпатии:
    476
    @xados, ввел в новой версии.... 1.4.0
     
    xados нравится это.
  20. xados

    xados

    Сообщения:
    264
    Симпатии:
    4
    Можно узнать когда она примерно будет?

    и что насчет этих вопросов?
    и еще можешь ли в новой версии сделать совместимость Gameme,
    совместимость с ножами и скинами о феникса. пожалуйста.

    и проблемы:
    выставил чтобы сохранялось все по mysql. Вел все нужные данные базы, все правильно, но при новой карте ранги сбрасываются все равно и в логах пишет такую ошибку хотя данные вел правильно "[levelsranks_core.smx] [Levels Ranks] Query Fail: Lost connection to MySQL server during query"