Перейти к содержимому


Фотография

Адаптируем Монитоинги Фраги (Счет) под свою Стату (поинты)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 10 Апрель 2022 - 17:43

Думаю это будет много кому полезно и заставит монитоинги работать под ваш сервер)

Делается это быстро.

Где добавляется понты нужно добавить

SetClientFrags(client, HX_POINTS);

место HX_POINTS нужно поставить функцию которая отвечает за количество поинтов у вас в плагине

Ну и добавляем готовую функцию

stock int SetClientFrags(int client, int frags)
{
	SetEntProp(client, Prop_Data, "m_iFrags", frags);
	return 1;
}

В итоге каждый мониторинг будет показывать поинты ваших игроков (в зависимости как обновляет это мониторинг)
 


Сообщение отредактировал dr_lex: 10 Апрель 2022 - 17:43

  • history_maker, Goldfish, KelType и 2 другим это нравится

#2 valedar

valedar

    Участник

  • Пользователь
  • PipPip
  • 62 сообщений

Отправлено 20 Июнь 2022 - 9:13

Чё то я не понял как это засунуть в tystats SetClientFrags(client, и какая функция тут отвечает в tystats);

#3 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 03 Июль 2022 - 20:38

Чё то я не понял как это засунуть в tystats SetClientFrags(client, и какая функция тут отвечает в tystats);

client - это индекс игрока
HX_POINTS - это число поинтов


Находите что отвечает за поинты в вашей стате и добавляете место HX_POINTS


  • win100 это нравится

#4 valedar

valedar

    Участник

  • Пользователь
  • PipPip
  • 62 сообщений

Отправлено 06 Июль 2022 - 19:51

client - это индекс игрока
HX_POINTS - это число поинтов

Находите что отвечает за поинты в вашей стате и добавляете место HX_POINTS

я уже нашел давно



#5 Logical1990

Logical1990

    Новичок

  • Пользователь
  • Pip
  • 6 сообщений

Отправлено 31 Октябрь 2022 - 7:13

Просвяти пожалуйста, как в статистике сделать общий ранк игроков? Типо показывает Ранк игрока, Общий ранк и Поинты.
Ранк и поинты есть, а вот общий ранк, которые показывает последнее место игрока нету



#6 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 31 Октябрь 2022 - 9:36

Просвяти пожалуйста, как в статистике сделать общий ранк игроков? Типо показывает Ранк игрока, Общий ранк и Поинты.
Ранк и поинты есть, а вот общий ранк, которые показывает последнее место игрока нету

У меня стата на sqlite бд
Выглядит как-то так )

public void OnMapStart()
{
	if (g_SQL)
	{
		sg_query1[0] = '\0';
		Format(sg_query1, sizeof(sg_query1), "SELECT COUNT(*) FROM 'l4d2_stats_ec17'");
		DBResultSet hQuery = SQL_Query(g_SQL, sg_query1);
		if (hQuery)
		{
			if (SQL_FetchRow(hQuery))
			{
				ig_iCount = SQL_FetchInt(hQuery, 0);
			}
			delete hQuery;
		}
	}
}

в ig_iCount получаем число всего записей (тем самым общее количество игроков)

На Mysql бд команды могут отличаться по запросу, но принцип тот же.
 


Сообщение отредактировал dr_lex: 31 Октябрь 2022 - 9:36


#7 Logical1990

Logical1990

    Новичок

  • Пользователь
  • Pip
  • 6 сообщений

Отправлено 31 Октябрь 2022 - 20:28

У меня стата на sqlite бд
Выглядит как-то так )

public void OnMapStart()
{
	if (g_SQL)
	{
		sg_query1[0] = '\0';
		Format(sg_query1, sizeof(sg_query1), "SELECT COUNT(*) FROM 'l4d2_stats_ec17'");
		DBResultSet hQuery = SQL_Query(g_SQL, sg_query1);
		if (hQuery)
		{
			if (SQL_FetchRow(hQuery))
			{
				ig_iCount = SQL_FetchInt(hQuery, 0);
			}
			delete hQuery;
		}
	}
}

в ig_iCount получаем число всего записей (тем самым общее количество игроков)

На Mysql бд команды могут отличаться по запросу, но принцип тот же.
 

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



#8 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 01 Ноябрь 2022 - 8:46

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

Один

Database g_SQL;

 



#9 valedar

valedar

    Участник

  • Пользователь
  • PipPip
  • 62 сообщений

Отправлено 01 Ноябрь 2022 - 13:32

Где идёт проверка о наличие игрока:

Format(query, sizeof(query), "SELECT COUNT(*) FROM `имя таблицы`");
SQL_TQuery("database - имя", GetRankTotal, query, client, DBPriority:1);

А дальше:

public int GetRankTotal(Handle owner, Handle hndl, const char[] error, any data)
{
	if (hndl == null)
	{
		LogError("GetRankTotal Query failed: %s", error);
		return 0;
	}

	while (SQL_FetchRow(hndl))
		RankTotal = SQL_FetchInt(hndl, 0);
	return 0;
}

char query [256]; - либо можешь используй уже существующий буфер
int RankTotal; - Подсчёт

Код не мой, но он хорошо работает)



#10 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 01 Ноябрь 2022 - 16:00

Думаю эта информация будет много кому полезно

Тема по сути не относится к Статистике, а относится как кратная идея по использованию m_iFrags для мониторинга. Есть ещё m_iDeaths он тоже показывается если поддерживает мониторинг, но он не так полезен.



#11 Logical1990

Logical1990

    Новичок

  • Пользователь
  • Pip
  • 6 сообщений

Отправлено 01 Ноябрь 2022 - 16:05

Где идёт проверка о наличие игрока:

Format(query, sizeof(query), "SELECT COUNT(*) FROM `имя таблицы`");
SQL_TQuery("database - имя", GetRankTotal, query, client, DBPriority:1);

А дальше:

public int GetRankTotal(Handle owner, Handle hndl, const char[] error, any data)
{
	if (hndl == null)
	{
		LogError("GetRankTotal Query failed: %s", error);
		return 0;
	}

	while (SQL_FetchRow(hndl))
		RankTotal = SQL_FetchInt(hndl, 0);
	return 0;
}

char query [256]; - либо можешь используй уже существующий буфер
int RankTotal; - Подсчёт

Код не мой, но он хорошо работает)

 

Спасибо, это работает




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных