ReHLDS/HLDS Micro Army Rank System

oqde

Пользователь
Регистрация
20 Окт 2017
Сообщения
44
Симпатии
13
#1
Автор: Ge3eR
Версия
: 1.29Hz
Источник: Dev-Cs
Обнова: от 13.11.2017

LYjin8Y53Fg.jpg

Описание:
Это самая миниатюрная и быстрая система званий (рангов) которую вы когда либо видели :)

Хранение рангов в специальном ini файле. Теперь у вас нет органичений на их количество и содержание!
Основывается на статистике csx модуля (или сторонних плагинов), используя количество убийств в качестве единиц опыта.
Поддержка мультиязычности! используйте свой ini файл рангов для каждого языка.

Быстрый информер, который считывает данные о статистике игрока всего 1 раз, при его заходе на сервер. и
далее работает в оффлайн режиме, засчитывая убийства параллельно с модулем статистики csx (или стороним плагином). Это не Lite редакция AES, Army Ranks и т.д. ! Это с нуля написаный, и поддерживающий все основные функции плагин. Здесь нет транслита или поддержки префиксов, громоздких бонусов. Здесь нет и записи чего либо в nvalut. Здесь в hud не пишет Опыт [55/100][+5], а просто и понятно [60/100]. Здесь нет работы с базой данных. Этот функционал целиком и полностью переложен на плагин сбора статистики.

Оптимизация позволила сделать его нагрузку совсем незаметной, а значит игроки будут чувствовать себя комфортно.
Является полноценной и легковесной заменой других - подобных систем. Micro, намного лучше чем Lite ;)

Хозяину на заметку:
Могу ли я использовать совместимые с AES плагины вместе с MARS?

В версии 1.29Hz, улучшена поддержка native и forwards AES 0.5 Vega и AES 0.4.
Вы можете с уверенностью воспользоваться этим, отключив aes_main и aes_informer, которые с успехом заменяет MARS.
Большинство плагинов будут работать в штатном режиме.


Почему kills/deaths/skills не всегда соответствуют тому что показывает /rank ?

MARS ведёт подсчёт независимо, отображая в реальном времени. Модуль CSX, и в особенности плагины работающие с базой данных mysql/sqlite - далеко не всегда.
Есть вероятность, что некоторые события не будут вовремя отражены в базе. однако, они появятся там позже, без потерь. к примеру после смены карты, или так, как вы настроете плагин сбора статистики.

Почему когда я использую csstats sql 0.7.4, мой скилл в игре всегда отличается на несколько едениц от того что показывает информер? как повысить точность?

csstats sql 0.7.4 при сохранении скилла округляет его до 2х цифр после запятой (их всего 6). MARS же, учитывает все 6 цифр.
также в версии 0.7.4, в базе данных для сохранения skill используется параметр float что усугубляет положение.
Решение:
1. поле `skill` должно быть в формате decimal (9,6)
2. отредактируйте csstats_sql.sma найдя все строки %.2f и заменив их на %f
либо воспользоваться уже отредактированным и проверенным вариантом [C++] /* * CSStatsX SQL v. 0.7.4.2 * by serfreeman1337 http://1337.uz/ - Pastebin.com

Почему засчитывает 2 очка заместо одного?

Скорее всего вы используете плагин CSSTATSX SQL, который отвечает за сбор статистики. Также у вас подключён модуль CSX.
Если вы не поменяли CSX на CSX_DUMMY который служит "заглушкой", то при значении квара csstats_sql_forwards 1 возникнет конфликт!
Событие убийства игрока будет вызвано дважды! 1-й раз в модуле CSX, и 2-й раз в плагине CSSTATSX SQL.
MARS получив оба события, обработает их, засчитав каждое.

Решение: Поменять модуль CSX на CSX_DUMMY, либо сменить значение квара на csstats_sql_forwards 0 (и сменить карту)
Внимание: Значение квара csstats_sql_forwards 1 необходимо только тогда, когда у вас стоит модуль "заглушка" CSX_DUMMY

Почему засчитывает 2 и больше очка заместо одного?

M.A.R.S. версии 1.29Hz, при включённой совместимости c AES плагинами выполняет роль aes_main.
Если у вас есть пагины от aes, предназначенные для начисления бонусных очков и фрагов, они будут работать и записывать лишние фраги.
Решиние: Проверьте plugins.ini и plugins-aes.ini. закомментируйте эти плагины если они вам не нужны. Если это не поможет, удалите их из папки plugins/

У меня ReHLDS и ReAmxX, почему не засчитывает очки?

в CSX модуле ReAmxX отсутствует форвард события client_death, в результате чего, очки не засчитывает в реальном времени.
Решение: скомпилировать мини плагин по ссылке [C++] amxx forward - Pastebin.com и вставить (желательно чуть выше MARS) в plugins.ini

где и как я могу изменить количество опыта для уровней?

В данный момент, опыт задаётся в массиве mars_exp, в котором по умолчанию заданы лимиты для 30 уровней (рангов).
Найдите строку:
new mars_exp[] = {
00000, 00050, 00100, 00200, 00400,
00700, 01000, 02000, 03000, 04000,
05000, 06000, 07000, 08000, 09000,
10000, 11000, 12000, 13000, 14000,
15000, 16000, 17000, 18000, 19000,
20000, 25000, 30000, 40000, 50000
};

где в фигурных скобках, через запятую, заданы лимиты.
Вы можете изменить и количество опыта, и добавить или удалить новые лимиты.
к примеру вот так:
new mars_exp[] = { 0, 20, 40, 80, 100 };
или так:
new mars_exp[] = {
00000, 00050, 00100, 00200, 00400, 00700, 01000, 02000, 03000, 04000,
05000, 06000, 07000, 08000, 09000, 10000, 11000, 12000, 13000, 14000,
15000, 16000, 17000, 18000, 19000, 20000, 25000, 30000, 40000, 50000,
100000, 160000, 170000, 180000, 190000, 200000, 250000, 300000, 400000, 500000
};

при добавлении последней записи, следите чтобы после неё небыло запятой.
заметьте, вы не сможете прокачать уровней больше чем записей опыта и наоборот.

Почему после захода у меня сбился опыт и звания?

Причины могут быть разными.
На csx проблем в этом плане не обнаружено, так что проверяйте подключение к базам данных в плагнинах.
Проверьте командой /rank, что статистика работает, и если это так, увеличьте параметр ONSTART_WAIT_TIME на несколько единиц.
также убедитесь, что ранги считываются из нужного вам плагина или модуля.

История версий:
  1. Мультиязычность, для файлов хранения рангов.
  2. Улучшена поддержка плагинов, работающих с AES.
  3. Поправлено отображение буквы skill для CSX.
  4. Устранены известные баги.
Исправлены баги:
  1. баг компиляции при READ_SATS 2
  2. баг неправильного подсчёта уровня поле его повышения, в следствии чего ранг больше не повышался
Переформирован lang файл. поддерживаемые языки: en, ru, ua, fr, de, md, ro

В режиме тестирования добавлена возможность показа Skill игрока в HUD (при READ_STATS 2, подсчёт идёт по The Elo Method)

Код дописан и более продуман. Для удобства, в верхней части кода добавлены более детальные настройки, в том числе включение/отключение совместимости с поддерживающими AES плагинами (частичная замена aes_main).

Требования:
  • AmxModX 1.8.2 либо AmxModX 1.8.3-dev.
  • Модуль CSX или CSX Extended, либо плагины CSSTATS MYSQL или CSSTATSX SQL 0.7.4 и выше.
  • Для компиляции на AmxModX 1.8.2, вам понадобится colorchat.inc от aghl
  • Для компиляции в отличных от READ_STATS 0 режимах, вам понадобятся .inc файлы выбранных плагинов. убедитесь что они есть.
Команды консоли сервера:
mars_reload_list // горячая перезагрузка рангов из файла
mars_reload_stats // жесткая перезагрузка статистики

Настройка:
мультиязычность:
задайте язык сервера кваром amx_language
например
amx_language ru
тогда MARS будет использовать файл рангов из amxmodx/configs/mars_lists/mars_list_ru.ini
если файла с двухбуквенным префиксом языка не будет существовать, будет использоваться
файл по умолчанию amxmodx/configs/mars_list.ini

/* -- READ_STATS
* Откуда будем считывать статистику?
* 0 - CSX
* 1 - CSSTATS MYSQL by SKAJIbnEJIb // не тестировалось
* 2 - CSSTATSX SQL by serfreeman1337 // учтите, что CSSTATSX SQL должен быть в режиме csstats_sql_forwards 1
*/
#define READ_STATS 0

/* Раскомментируйте для частичной поддержки AES нативов и форвардов */
//#define AES_COMPATIBLE

// Настройки отображения HUD информера
/* Раскомментируйте, для частичной поддержки AES нативов и форвардов */
//#define AES_PLUGINS_COMPATIBLE

/* Раскомментируйте, если хотите дополнить HUD инфой о скилле */
//#define WITH_SKILLS

/* -- READ_STATS
* Откуда будем считывать статистику?
* 0 - CSX or CSX Extended (Module)
* 1 - CSSTATS MYSQL by SKAJIbnEJIb // автором не тестировалось, но говорят норм )
* 2 - CSSTATSX SQL by serfreeman1337 + CSX_DUMMY Module// учтите, что CSSTATSX SQL должен быть в режиме csstats_sql_forwards 1
*/
#define READ_STATS 0

// Настройки отображения HUD информера
#define HUD_LIVE_COLOR_R 0
#define HUD_LIVE_COLOR_G 128
#define HUD_LIVE_COLOR_B 0
#define HUD_LIVE_AXIS_X 0.01
#define HUD_LIVE_AXIS_Y 0.22

#define HUD_SPEC_COLOR_R 28
#define HUD_SPEC_COLOR_G 90
#define HUD_SPEC_COLOR_B 28
#define HUD_SPEC_AXIS_X 0.01
#define HUD_SPEC_AXIS_Y 0.15

// Промежуток между сообщениями информера
#define HUD_REPEAT_TIME 1.5

/* -- LEVELUP_CONGRATULATION
* Оповещение о повышении уровня
* 0 - отключено
* 1 - включено (оповещает в чат, HUD и звуком)
*/
#define LEVELUP_CONGRATULATION 1

#if LEVELUP_CONGRATULATION == 1
// Настройки отображения HUD сообщения о повышении уровня
#define HUD_LEVELUP_COLOR_R 0
#define HUD_LEVELUP_COLOR_G 128
#define HUD_LEVELUP_COLOR_B 0
#define HUD_LEVELUP_AXIS_X -1.0
#define HUD_LEVELUP_AXIS_Y 0.15
#endif

#define ONSTART_WAIT_TIME /* CS */ 1.6 // задержка перед чтением статистики. (увеличить при плохом соединении с БД)
Внимание! Если вы используете плагин CSSTATSX SQL 0.7.4 и выше, убедитесь что он находится в режиме проброса форвардов csx! за это отвечает квар csstats_sql_forwards 1
Плагин должен быть прописан в
plugins.ini после плагина сбора статистики!

MARS API:
native Float:mars_get_skill(player) // получение скилла игрока в Real-Time

AES API:
В данный момент плагин поддерживает (для совместимости) проброс некоторых API плагина AES 0.5 Vega, автора seerfreeman1337.

На данный момент точно известно, что MARS отлично ладит с lite_translit 2.8 и AES: STATSX CSTRIKE 0.5 Vega
// AES 0.5 Vega
aes_get_player_level
aes_get_player_exp
aes_get_player_reqexp
aes_get_level_name
aes_get_level_reqexp
aes_get_max_level
aes_get_exp_level

// fake natives ?
aes_set_player_bonus
aes_get_player_bonus
aes_set_player_level
aes_set_player_exp
// mega fake native :)
aes_find_stats_thread

// Совместимость с AES 0.4
aes_get_stats
aes_get_player_stats
aes_get_exp_to_next_level
aes_get_level_for_exp

// aes_cstrike_exp for AES: STATSX CSTRIKE plugin
aes_get_exp_for_stats_f
aes_get_exp_for_stats

Установка:
  1. Скачать архив, распаковать.
  2. Настроить конфиги и дефайны в самом плагине
  3. Скомпилировать плагин
  4. Залить на сервер, прописать в списке плагинов
Cкриншоты:

$3000$0007.png
 

Вложения

Последнее редактирование: oqde

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
303
Симпатии
43
Пол
Мужской
#2
Хотелось бы посмотреть как это всё выглядит на скриншотах, заранее спасибо=!)
 

oqde

Пользователь
Регистрация
20 Окт 2017
Сообщения
44
Симпатии
13
#3
Хотелось бы посмотреть как это всё выглядит на скриншотах, заранее спасибо=!)
Как и AES по сути (но начинка другая). чего там смотреть? на информер? его вы можете настроить) + ещё со звуком в hud поздравляет с повышением ранга))
 
Последнее редактирование: oqde

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
303
Симпатии
43
Пол
Мужской
#4
Как и AES по сути. чего там смотреть? на информер? его вы можете настроить) + ещё со звуком в hud поздравляет с повышением ранга))
та ну это понятно, что как и аес)) как бы было б правильно добавить к этому скриншоты, чтоб другие пользователя форума видели. ;):)
 

hyrik

Пользователь
Регистрация
18 Июл 2017
Сообщения
75
Симпатии
7
Пол
Мужской
#5
чета не компилируется
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// the_mars_baby.sma
//
// C:\Users\SERGI\Desktop\scripting\the_mars_baby.sma(59) : error 001: expected token: ";", but found "enum"
//
// 1 Error.
// Could not locate output file compiled\the_mars_baby.amx (compile failed).
//
// Compilation Time: 0,5 sec
// ----------------------------------------

Press enter to exit ...
 

oqde

Пользователь
Регистрация
20 Окт 2017
Сообщения
44
Симпатии
13
#6
чета не компилируется
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// the_mars_baby.sma
//
// C:\Users\SERGI\Desktop\scripting\the_mars_baby.sma(59) : error 001: expected token: ";", but found "enum"
//
// 1 Error.
// Could not locate output file compiled\the_mars_baby.amx (compile failed).
//
// Compilation Time: 0,5 sec
// ----------------------------------------

Press enter to exit ...
Компилировал на 1.8.2 и на 1.8.3 без каких либо ошибок. прикреплю сейчас вам .amxx в архив
 

oqde

Пользователь
Регистрация
20 Окт 2017
Сообщения
44
Симпатии
13
#7
Ошибка компиляции:

AMX Mod X Compiler 1.8.3
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2013 AMX Mod X Team

the_mars_baby.sma(99) : error 001: expected token: ";", but found "enum"

1 Error.
Could not locate output file the_mars_baby.amx (compile failed).
возможно вам стоит обновить amxmodx

AMX Mod X Compiler 1.8.3-dev+5144
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2013 AMX Mod X Team

Header size: 1480 bytes
Code size: 6820 bytes
Data size: 7020 bytes
Stack/heap size: 16384 bytes
Total requirements: 31704 bytes
Done.
2 Ноя 2017
архив обновлен. добавил .amxx
 

hyrik

Пользователь
Регистрация
18 Июл 2017
Сообщения
75
Симпатии
7
Пол
Мужской
#8
ошибка компиляции происходит когда я в sma выставляю
#define READ_STATS 2 // Откуда будем считывать статистику?
// 0 - CSX
// 1 - CSSTATS MYSQL by SKAJIbnEJIb // не тестировалось
// 2 - CSSTATSX SQL by serfreeman1337
 

oqde

Пользователь
Регистрация
20 Окт 2017
Сообщения
44
Симпатии
13
#10
ошибка компиляции происходит когда я в sma выставляю
#define READ_STATS 2 // Откуда будем считывать статистику?
// 0 - CSX
// 1 - CSSTATS MYSQL by SKAJIbnEJIb // не тестировалось
// 2 - CSSTATSX SQL by serfreeman1337
да, вы правы, ошибка имеет место быть. спасибо. последнее время тестировал только READ_STATS 0, упустил. исправлю.
2 Ноя 2017
ошибка возникает из за #pragma semicolon 1эту строку нужно опустить ниже native aes_get_player_stats(id, data[4]);
 

hyrik

Пользователь
Регистрация
18 Июл 2017
Сообщения
75
Симпатии
7
Пол
Мужской
#12
установил работает вроде нормальна
 

ade888

Пользователь
Регистрация
9 Июн 2017
Сообщения
104
Симпатии
13
Пол
Мужской
#14
Добавьте сюда еще чтоб скилл показывал в хуке, если не затруднит
 

Bravo

Пользователь
Регистрация
8 Июн 2017
Сообщения
135
Симпатии
10
Пол
Мужской
#15
А при чем здесь MARS, нахрен этот бред ?
Везде бля марс - это что космос : D, нельзя было по оригинальней что-то придумать ?
 
Последнее редактирование: Bravo

famas

Пользователь
Регистрация
13 Июн 2017
Сообщения
39
Симпатии
2
Пол
Мужской
#16
Скрины то хоть кто нибудь покажите
 

oqde

Пользователь
Регистрация
20 Окт 2017
Сообщения
44
Симпатии
13
#17
А при чем здесь MARS, нахрен этот бред ?
Везде бля марс - это что космос : D, нельзя было по оригинальней что-то придумать ?
как шоколадка, только вкуснее :)
3 Ноя 2017
скрины и скилл будут в версии 1.28hz
 

oqde

Пользователь
Регистрация
20 Окт 2017
Сообщения
44
Симпатии
13
#20
нужен фидбек. ребята, тестируем, не стесняемся. всё рабочее и стабильное.