stalin_alex
Участник
- Сообщения
- 274
- Реакции
- 19
- Баллы
- 18
Здравствуйте. Прошу помощи.
Евгений, у Вас уже есть готовый код получения времени в игре и прибавления его в таблицу. Мне нужно продублировать два поля gametime и lasttime дополнительной таблице extra_stats
Как я понял это делать лучше всего в disconnect
Евгений, у Вас уже есть готовый код получения времени в игре и прибавления его в таблицу. Мне нужно продублировать два поля gametime и lasttime дополнительной таблице extra_stats
Как я понял это делать лучше всего в disconnect
#include amxmodx
#include <ex_client>
#include <stalin_client>
#include <cmsstats_mysql>
public plugin_init()
register_plugin("cmsstats_add_extra_stats", "0.2", "zhorzh78");
// Создаём переменные
enum _:ExtraData
{
firstConnect,
clientGs,
last_time,
game_time
}
// Создаём имена полей в БД
new const szExtraDataName[][]=
{
"firstconnect",
"clientgs",
"last_time",
"game_time"
}
new g_iExtraDataIndex[ExtraData];
// Создаём поля в таблице
public OnCmsStatsInitializedPost(Handle:Tuple)
{
g_iExtraDataIndex[firstConnect] = cmsstats_create_extra_data(szExtraDataName[firstConnect]);
g_iExtraDataIndex[clientGs] = cmsstats_create_extra_data(szExtraDataName[clientGs]);
g_iExtraDataIndex[last_time] = cmsstats_create_extra_data(szExtraDataName[last_time]);
g_iExtraDataIndex[game_time] = cmsstats_create_extra_data(szExtraDataName[game_time]);
}
// получаем данные для переменных, которые потом уйдут в таблицу
public OnCmsStatsPutinserver(id, bool:exists, iPlace)
{
// Если в поле firstconnect = 0, то запишем текущее время. И на этом всё.
if(cmsstats_get_extra_data(id, g_iExtraDataIndex[firstConnect]) == 0)
cmsstats_add_extra_data(id, g_iExtraDataIndex[firstConnect], get_systime());
new iclient = cmsstats_get_extra_data(id, g_iExtraDataIndex[clientGs]);
// Определяем Сталинскую сборку, как = 3
// Определяем Сайлентовскую сборку, как = 4
if (is_stalin_client(id) && iclient != 3)
cmsstats_add_extra_data(id, g_iExtraDataIndex[clientGs], -iclient + 3);
else if (dc_gs_client(id) && iclient != 4)
cmsstats_add_extra_data(id, g_iExtraDataIndex[clientGs], -iclient + 4);
else if(iclient != 0)
cmsstats_add_extra_data(id, g_iExtraDataIndex[clientGs], -iclient);
}
public OnCmsStatsDisconnect(id)
{
// Без проверки, перезаписываем поле "last_time" на текущее время
cmsstats_add_extra_data(id, g_iExtraDataIndex[last_time], get_systime());
// Добавляем время в игре в секундах
// получаем текущее время из таблицы и записываем в переменную
new old_game_time = cmsstats_get_extra_data(id, g_iExtraDataIndex[game_time]);
new new_game_time = // здесь надо получить текущее время в игре
cmsstats_add_extra_data(id, g_iExtraDataIndex[game_time], old_game_time + new_game_time);
}
- Источник плагина (ссылка на сайт или тему)
- Нет