Иконка ресурса

RankMe Hud Info 1.3z

Smert413

Участник
Сообщения
10
Реакции
14
Небольшое дополнение для игровой статистики RankMe.

Отображает справа на экране:
  • Ник игрока
  • Позицию
  • Кол-во очков
  • Соотношение убийств к смертям
  • Кол-во убийств в голову
  • Попадания

Никаких CVAR'ов нет, правьте исходник.
 

Вложения

  • rankme_hud_info.png
    rankme_hud_info.png
    3.4 КБ · Просмотры: 1,600
  • rankme_hud_info.sp
    4.4 КБ · Просмотры: 431
Последнее редактирование модератором:

acik_traiks

Что нибудь напишем?)
Сообщения
770
Реакции
627
Smert413, он выгружает с ранкме только очки и ранк игрока, а остальное он за время проведения на сервере саписывает? можно в название тогда session добавить
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #3
Smert413, Сделай интервал таймера побольше (Если длиетльность сообщения позволяет).
PHP:
g_hUpdateHudTimer = CreateTimer(1.0, Timer_UpdateHud, _, TIMER_REPEAT);
Т.к. Каждую секунду куча sql запросов может сказаться на производительности.

И еще, зачем здесь:
PHP:
public RankCallback(client, rank, any:data)
Записывать всё в глобальные переменные? Если можно просто в RankCallback перенести это:
PHP:
Format(sMessage, sizeof(sMessage), "%N\nРанк: %i\nОчков: %i\nУб. к смертям: %i/%i (%.2f)\nУб. в голову: %i (%.2f)\nТочность: %.2f", iClientToShow, g_iRank[iClientToShow], g_iPoints[iClientToShow], g_iKills[iClientToShow], g_iDeaths[iClientToShow], g_fKDR[iClientToShow], g_iHeadshots[iClientToShow], g_fHSR[iClientToShow], g_fAccuracy[iClientToShow]);

		new Handle:hBuffer = StartMessageOne("KeyHintText", iClient); 
		BfWriteByte(hBuffer, 1); 
		BfWriteString(hBuffer, sMessage); 
		EndMessage();
Из
PHP:
public Action:Timer_UpdateHud(Handle:timer)
 

Smert413

Участник
Сообщения
10
Реакции
14
acik, он обновляет статистику каждую секунду.

R1KO, как я понял, если использовать эти 2 натива, то никаких sql запросов не происходит, поэтому не стал изменять интервал.
PHP:
native RankMe_GetStats(client,stats_return[]);
native RankMe_GetPoints(client);
Все глобальные переменные убрал, кроме:
PHP:
new Handle:g_hUpdateHudTimer = INVALID_HANDLE;
new bool:g_bLoaded[MAXPLAYERS+1];
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #5
Smert413, Ну да... Вообще не выполняется:
PHP:
public Native_GetRank(Handle:plugin, numParams)
{
	new client = GetNativeCell(1);
	new Function:callback = GetNativeCell(2);
	new any:data = GetNativeCell(3);
	
	new Handle:pack = CreateDataPack();
	
	WritePackCell(pack, client);
	WritePackCell(pack, _:callback);
	WritePackCell(pack, data);
	WritePackCell(pack, _:plugin);
	
	new String:query[500];
	MakeSelectQuery(query,sizeof(query));
	
	if(g_RankMode == 1)
		Format(query,sizeof(query),"%s ORDER BY score DESC",query);
	else if(g_RankMode == 2)
		Format(query,sizeof(query),"%s ORDER BY CAST(CAST(kills as float)/CAST (deaths as float) as float) DESC",query);	
		
	SQL_TQuery(g_hStatsDb, SQL_GetRankCallback, query, pack);
}

P.S.плагин приложить забыл.
 

Smert413

Участник
Сообщения
10
Реакции
14
R1KO, так я и не использую GetRank.
PHP:
public Native_GetStats(Handle:plugin, numParams)
{
	new iClient = GetNativeCell(1);
	new array[20];
	for(new i=0;i<20;i++)
		array[i] = g_aStats[iClient][i];
	
	SetNativeArray(2,array,20);

}
public Native_GetPoints(Handle:plugin, numParams)
{
	new Client = GetNativeCell(1);
	return g_aStats[Client][SCORE];
}
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #7
Smert413, ну в прошлой версии вроде было.
 

Smert413

Участник
Сообщения
10
Реакции
14
Еще немного допилил.
Теперь количество убийств, смертей, убийств в голову сокращается до трехзначных значений и добавляется буква "K" или "KK", если количество больше 1 миллиона.
 

Arthur Don

Участник
Сообщения
1,696
Реакции
256
Smert413, давно хотел такое увидеть) понял что никто не напишет и перешел на GameME)

Добавлено через 1 час 14 минут
В логах ошибки

L 04/30/2014 - 16:43:36: [SM] Native "IsFakeClient" reported: Client index -1 is invalid
L 04/30/2014 - 16:43:36: [SM] Displaying call stack trace for plugin "rankme_hud_info.smx":
L 04/30/2014 - 16:43:36: [SM] [0] Line 44, E:\steampipe_server\css\cstrike\addons\sourcemod\scripting\rankme_hud_info.sp::Timer_UpdateHud()
 
Последнее редактирование:

acik_traiks

Что нибудь напишем?)
Сообщения
770
Реакции
627
Metamoto, так ранк ме и не идет на сsgo
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #14
Metamoto, там нет KeyHintText

Напишите в 1-м посте, что ксго не поддерживается.
 

Lev

Добрая душа
Сообщения
360
Реакции
319
Что надо сделать чтобы только после смерти показывало
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #16
Лев, ловишь смерть игрока и тогда отправляешь сообщение. Еще в таймере добавялешь проверку !IsPlayerAlive(client)
 
  • Мне нравится
Реакции: Lev

BoooS

Участник
Сообщения
104
Реакции
2
так и не понял по поводу показа только тогда и того стату за кем наблюдаешь.
 
Сообщения
2,587
Реакции
1,343
Ошибки:
[SM] Native "StartMessage" reported: Client 1 is not connected
[SM] Displaying call stack trace for plugin "rankme_hud_info.smx":
[SM] [0] Line 217, E:\steampipe_server\css\cstrike\addons\sourcemod\scripting\include\usermessages.inc::StartMessageOne()
[SM] [1] Line 169, E:\steampipe_server\css\cstrike\addons\sourcemod\scripting\rankme_hud_info.sp::RankCallback()
 
Сверху Снизу