Просмотр полной версии : [Вопрос] как сделать сколько игрок находился времени в игре
Ув. знатоки pro-pawn.
Как сделать так чтобы к примеру игрок заходил в игру у него началось считать сколько времени он проводит в игре а при выходе с игры обнулялось.
К примеру игрок водит команду /time у него выводит сообщени нахождение в игре: час/минут а потом игрок вышел у него обнуляеться время
NetStats_GetConnectedTime (http://pro-pawn.ru/showthread.php?6580)
Либо через массив. При коннекте устанавливаете значение переменной игрока значению: GetTickCount() и потом сравниваете так:
(GetTickCount() - переменная_игрока[playerid]) / 1000
Выведет количество секунд, сколько игрок провёл в игре.
В начало мода
#define ShowTimeOfPlayerInGame(%0,%1,%2,%3) ConvertSeconds(gettime() - GetPVarInt(%0, "Time Of Player In Game"), %1, %2, %3)
В OnPlayerConnect
SetPVarInt(playerid, "Time Of Player In Game", gettime());
После новую функцию для конвертации секунд в формат "час/минута/секунда"
stock ConvertSeconds(conv_time, &conv_hour, &conv_minute,&conv_second)
{
if(conv_time <= 60)
{
conv_hour = 0;
conv_minute = 0;
conv_second = conv_time;
}
else if(conv_time > 60 && conv_time < 3600)
{
conv_hour = 0;
conv_minute = conv_time / 60;
conv_second = floatround(conv_time % 60, floatround_tozero);
}
else if(conv_time == 3600){ conv_hour = 1; conv_minute = 0; conv_second = 0; }
else if(conv_time > 3600)
{
new conv_minute_int;
conv_hour = conv_time / 3600;
minutes_int = floatround(conv_time % 3600, floatround_tozero);
conv_minute = conv_minute_int / 60;
conv_second = floatround(conv_minute_int % 60, floatround_tozero);
}
return 1;
}
И пример вывода времени:
new hour_in_game,
minute_in_game,
seconds_in_game;
ShowTimeOfPlayerInGame(playerid, hour_in_game, minute_in_game, seconds_in_game);
printf("Игрок с ID %d провёл в игре %d часов, %d минут и %d секунд", playerid, hour_in_game, minute_in_game, seconds_in_game);
Как-то так. В теории должно работать. Кто проверит - отпишитесь
Mr.DeViLsS
09.06.2014, 13:11
Как-то так. В теории должно работать. Кто проверит - отпишитесь
Работает!
Вот скриншот:
http://s019.radikal.ru/i626/1406/88/115184a4ad80.png
Хотелось бы так сделать, DeimoS а твоим способом в диалоге что надо использовать?
Вот скриншот:
http://s019.radikal.ru/i626/1406/88/115184a4ad80.png
Хотелось бы так сделать, DeimoS а твоим способом в диалоге что надо использовать?
в PlayerInfo:
pTimeGame
в public Refresh либо его аналог:
PlayerInfo[i][pTimeGame] +=1;
в public PayDay:
if(PlayerInfo[i][pTimeGame] < 1800)
{
if(PlayerInfo[i][pMember] !=0) { checks = checks / 2; }
}
а в команду /time там где формат:
Convert(PlayerInfo[playerid][pTimeGame])
Примерно будет так:
format(string, sizeof(string), "Нахождение в игре: {2BD639}%s", Convert(PlayerInfo[playerid][pTimeGame]));
В OnPlayerConnect это:
PlayerInfo[playerid][pTimeGame] = 0;
в PlayerInfo:
pTimeGame
в public Refresh либо его аналог:
PlayerInfo[i][pTimeGame] +=1;
в public PayDay:
if(PlayerInfo[i][pTimeGame] < 1800)
{
if(PlayerInfo[i][pMember] !=0) { checks = checks / 2; }
}
а в команду /time там где формат:
Convert(PlayerInfo[playerid][pTimeGame])
Примерно будет так:
format(string, sizeof(string), "Нахождение в игре: {2BD639}%s", Convert(PlayerInfo[playerid][pTimeGame]));
В OnPlayerConnect это:
PlayerInfo[playerid][pTimeGame] = 0;
Вы же при payday заного начинаете читать! а мне надо чтобы к примеру если он 5 часов или 10 часов, то ему это показывало а не в payday обратно с 0 отчёт шел
Mr.DeViLsS
09.06.2014, 20:54
Вот скриншот:
http://s019.radikal.ru/i626/1406/88/115184a4ad80.png
Хотелось бы так сделать, DeimoS а твоим способом в диалоге что надо использовать?
new string[30]; new hour_in_game,minute_in_game,seconds_in_game;
ShowTimeOfPlayerInGame(playerid, hour_in_game, minute_in_game, seconds_in_game);
format(string,30, "Нахождение в игре: %d часов, %d минут и %d секунд",hour_in_game, minute_in_game, seconds_in_game);
ShowPlayerDialog(playerid,ид_диалога,стиль_диалога,"Название",string, "кнопка1","кнопка2");
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot