[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Пример статистики игроков (с сохранением) (Убийства/смерти Взято с world-source.ru)
Пример статистики игроков (с сохранением)
rootДата: Воскресенье, 03.02.2013, 00:53 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
Пример Keyvalues статистики игроков (кол-во убийств/смертей). 

Код
#include <sourcemod>  

///////  

// Глобальная переменная для хранения Handle группы  
new Handle:kv;  

// k - убийства, d - смерти  
new k[MAXPLAYERS+1], d[MAXPLAYERS+1];  

// стимы игроков  
new String:SteaM[MAXPLAYERS+1][20];  

///////  

public OnPluginStart()  
{  
      // Создаем новую пустую структуру группы  
      kv = CreateKeyValues("stats");  

      // Если мы уже сохраняли статистику и у нас есть cfg/stats.txt, то загружаем ее  
      FileToKeyValues(kv, "cfg/stats.txt");  

      for (new i = 1; i <= MaxClients; i++)  
      {  
          if (IsClientInGame(i)) MyFunc_GetPlayerStats(i);  
      }  

      // Ловим событие смерти игрока  
      HookEvent("player_death", player_death);  

      // Регистрируем команду для просмотра личной статистики  
      RegConsoleCmd("mystats", ConCmd:mystats_func);  
}  

public OnClientPutInServer(i)  
{  
      MyFunc_GetPlayerStats(i);  
}
 
Чтобы было удобнее смотреть на код, скачайте файл в прикреплениях. Мы создали глобальные массивы k и d для оптимизации. Получать данные из массива гораздо быстрее, проще и лучше, чем обрабатывать здоровый файл с данными. Сам файл статистики сохраняем после завершения карты или отключения скрипта. Ботов в статистике не учитываем. 

Это конечно работает и тд, но что будет, когда данных будет слишком много в базе? Т.е. это будет не очень приятно для сервера, а о нем надо заботиться =) лучше использовать MYSQL для статистики. Там легко можно и ТОПы создать, да и на сайте где-то инфу высветить можно, позже дам пример.
 
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Пример статистики игроков (с сохранением) (Убийства/смерти Взято с world-source.ru)
  • Страница 1 из 1
  • 1
Поиск: