• Добро Пожаловать к нам на Форум Гость! Если вы еще не зарегистрировались просим вас зарегистрироваться!

  • Для того что бы скачивать с нашего форума, нужно зарегистрироватся!

  • Цены на серверах: Админка 35грн/мес Випка 20грн/мес.

  • Девушкам играющим на сервере Випка Бесплатно!

CSX Extended [v1.5]

qpi3ik

Создатель
Команда форума
Гл.Администратор
Автор: souvikdas95 и ко. (AlliedModders)
Версия: 1.5

Описание:
Обновленный стандартный модуль статистики csx. Исправлены небольшие баги оригинальной версии и добавлены новые функции. Благодаря новому методу обработки статистики улучшено быстродействие модуля при большом числе записей в базе данных. Для скриптеров появились новые нативы по редактированию и добавлению новых записей в БД.

Особенности:
Полная свобода действий над статистикой.
Быстродействие ( бинарный поиск )
Размер | Бинраный поиск | Последовательный (ср. значение) |Последовательный (худшее значение)

16 | 4 | 8 | 16
50 | 6 | 25 | 50
256 | 8 | 128 | 256
1000 | 10 | 500 | 1000
10000 | 14 | 5000 | 10000
100000 | 17 | 50000 | 100000
1000000 | 20 | 500000 | 1000000 bldjadzapilitenormalniytabiprobeli!

Новые нативы:
PHP:
/*
* Fields in Stats[8]:
* 0 - kills
* 1 - deaths
* 2 - headshots
* 3 - teamkilling
* 4 - shots
* 5 - hits
* 6 - damage
* 7 - <null>
*
* Fields in Stats2[4]:
* 0 - total defusions
* 1 - bomb defused
* 2 - bomb plants
* 3 - bomb explosions
*
* Fields in Bodyhits[8]:
* 0 - <null>
* 1 - Head
* 2 - Chest
* 3 - Stomach
* 4 - Left Hand
* 5 - Right Hand
* 6 - Left Leg
* 7 - Right Leg
*
* Important Note : Position = Rank - 1. eg. If index denotes the position of
* rank 1 player, then index = 0.
*/

/*
*  Returns the Rank of Player. --> index = id.
*  Returns 0 if no Rank exists.
*/
native get_user_rank(index);

/*
*  Gets current session score of player --> index = id
*  Returns 0 if player is not valid/out of range
*  Returns 1
*/
native get_user_score(index,&frags,&deaths);

/*
*  Sets overall stats of Player with given parameters. --> index = id.
*  Returns 0 if player is not valid/out of range
*  Returns new Rank
*
*  Note - If you don't want to edit/set a stats/bodyhits field,
*  you can set its value as -1
*/
native set_user_stats(index,stats[8],bodyhits[8]);
native set_user_stats2(index,stats2[4]);

/*
*  Sets overall stats with given parameters. --> index = position.
*  Returns new Rank
*
*  Note - If you don't want to edit/set a stats/bodyhits field,
*  you can set its value as -1
*/
native set_stats(index,stats[8],bodyhits[8]);
native set_stats2(index,stats2[4]);

/*
*  Sets current session score of player --> index = id
*  Returns 0 if player is not valid/out of range
*  Returns 1
*
*  Note - If you don't want to edit/set a stats/bodyhits field,
*  you can set its value as -1
*/
native set_user_score(index,frags,deaths);

/*
*  Resets overall stats to null --> index = id.
*  Returns 0 if player is not valid/out of range
*  Returns new Rank
*
*  Note - This doesn't differentiate stats or stats2.
*  It simply nulls the entire Stats structure of index.
*/
native reset_user_stats(index);

/*
*  Resets overall stats to null --> index = position.
*  Returns new Rank
*
*  Note - This doesn't differentiate stats or stats2.
*  It simply nulls the entire Stats structure of index.
*/
native reset_stats(index);

/*
*  Adds/Pushes overall stats with given parameters.
*  Returns 0 if Stats Entry already exists or can't be created
*  Returns new Rank
*
*  Note - If you don't want to set a stats/bodyhits field,
*  you can set its value as -1
*
* IMPORTANT : "unique" is based on the value of "csstats_rank" cvar
* which sets the basis for uniquely defining a rankstats entry:
* 0 - name[]
* 1 - authid[]
* 2 - ip[] ( make sure to set parameter isip = 1 )
*
* WARNING : Use this function with Caution.
*/
native push_stats(const unique[],const name[],stats[8],bodyhits[8],isip=0);

/*
* Removes and Deletes the Stats Entry. --> index = position.
*  Returns -1 if position is not found.
*  Returns 0 if player with the position is connected to server.
*  Returns 1 if successfully removed.
*/
native remove_stats(index);

/*
*  Reloads all the stats from the file and
*  refresh rankstats of all the connected
*  players and also reset current score of player
*  Returns 1
*
*  Note - If the stats are not externally edited
*  then this will restore the stats from previous
*  map change or from start of HLDS as by default,
*  stats file is saved only at these moments.
*
*  If the stats file doesn't exist, the function
*  will not load stats. The stats in-game will remain
*  the same as before.
*
*  default stats file path : amxmodx/data/csstats.dat
*/
native force_load_stats();

/*
*  Manually saves all the stats till previous round
*  before Restart of Map/Server.
*  Returns 1
*
*  default stats file path : amxmodx/data/csstats.dat
*/
native force_save_stats();

/*
*  Resets the Score
*/
stock reset_user_score(id)
{
 return set_user_score( id, 0, 0 );
}

Измененные квары:



    • csstats_maxsize : задает максимальное возможное кол-во записей в статистике, по превышению которого вся статистика сбрасывается.
      • Стандартное значение : 9000
      • значение < 0 : без ограничений
      • значение = 0 : без сохранения
Список изменений:



    • 1.5 :
      • Улучшен просчет навыка игрока.
      • Исправлены проблемы предыдущей версии.
      • Поддержка Windows XP.
    • 1.4.1 :
      • Исправлено переполнение буфера, которое могло вызвать краш сервера. ( на Linux )
    • 1.4 :
      • Исправлены проблемы в нативах:
        • get_stats()
        • get_stats2()
        • set_stats()
        • set_stats2()
        • remove_stats()
      • Исправлена статистика в конце раунда - функция "ClientKill_Pre" была заменена на "Client_DeathMsg".
      • Оптимизация: конец раунда теперь определяется при помощи хука логов, а не событием "ResetHUD".
      • Изменен квар csstats_maxsize.
      • В исходный код теперь включены HALFLIFE и METAMOD SDK.
    • 1.2 - 1.3 :
      • Поправлена работа некоторых нативов.
      • Повышено быстродействие за счет использования бинарного поиска. ( спасибо Shooting King )
      • Новый натив : get_user_rank().
      • Обновлены set_stats(), set_stats2(), set_user_stats(), set_user_stats2() и push_stats() с возможность выборочного задания полей.
      • Изменены reset_user_score() и xmod_get_stats_size() на вид стока.
    • 1.1 :
      • Исправлена работа новых нативов.
      • Новые нативы:
        • get_user_score()
        • set_user_score()
        • reset_user_score()
        • reset_user_stats()
        • reset_stats().

      • Добавлена поддержка Linux.
      • Удалена программа WinCSX из исходников.
      • Удалены плагины примеры.
    • 1.0.1 :
      • Исправлена проблема со сбросом статистики если игрок отклчился и его место занял другой игрок.
    • 1.0 :
      • ИСПРАВЛЕНО: неправильное определение последней записи в статистике нативами get_stats() и get_stats2().
      • ИСПРАВЛЕНО: теперь новому игроку назначается последнее место в статистике.
      • ИЗМЕНЕНО: стандартное и максимальное значение квара csstats_maxsize задано в 9000.
Благодарности :



    • Shooting King
    • Claudiuhks
 

Вложения

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху