время на сервере
#1

помогите сделать чтобы на сервере было 1 минута - 1 секунда, тоесть 24 минуты ( 24 часа ) вот код:
Quote:

#include <a_samp>
#include <time>

forward ClockSync(playerid);
new Text:Clock;

public OnFilterScriptInit()
{
Clock = TextDrawCreate(547.000000,24.000000,"00:00");
TextDrawAlignment(Clock,0);
TextDrawBackgroundColor(Clock,0x000000ff);
TextDrawFont(Clock,3);
TextDrawLetterSize(Clock,0.6,1.9);
TextDrawColor(Clock,0xffffffff);
TextDrawSetOutline(Clock,2);
TextDrawSetProportional(Clock,1);
TextDrawSetShadow(Clock,1);
SetTimer("ClockSync", 1000, 1);
}

public OnFilterScriptExit()
{
return 1;
}


public OnPlayerSpawn(playerid)
{
TextDrawShowForPlayer(playerid,Clock);
return 1;
}

public OnPlayerConnect(playerid)
{
return 1;
}


public ClockSync(playerid)
{
new string[256];
new hour, minute, second;
gettime(hour,minute,second);
if(hour < 10 && minute < 10)
{
format(string, sizeof(string), "0%d:0%d", hour, minute);
}
else if(hour < 10 && minute > 9)
{
format(string, sizeof(string), "0%d:%d", hour, minute);
}
else if(hour > 9 && minute < 10)
{
format(string, sizeof(string), "%d:0%d", hour, minute);
}
else
{
format(string, sizeof(string), "%d:%d", hour, minute);
}
TextDrawSetString(Text:Clock, string);
SetWorldTime(hour);
}

Reply
#2

вместо этого можно заюзать https://sampwiki.blast.hk/wiki/TogglePlayerClock и это https://sampwiki.blast.hk/wiki/SetPlayerTime, синхр.. там даже пример есть..
Reply
#3

pawn Code:
#include <a_samp>

forward ClockSync(playerid);
new Text:Clock;
new chour, cmin;

public OnFilterScriptInit()
{
  Clock = TextDrawCreate(547.000000,24.000000,"00:00");
  TextDrawAlignment(Clock,0);
  TextDrawBackgroundColor(Clock,0x000000ff);
  TextDrawFont(Clock,3);
  TextDrawLetterSize(Clock,0.6,1.9);
  TextDrawColor(Clock,0xffffffff);
  TextDrawSetOutline(Clock,2);
  TextDrawSetProportional(Clock,1);
  TextDrawSetShadow(Clock,1);
  SetTimer("ClockSync", 1000, 1);
}

public OnPlayerSpawn(playerid)
{
  TextDrawShowForPlayer(playerid,Clock);
  return 1;
}

public OnPlayerDeath(playerid)
{
  TextDrawHideForPlayer(playerid,Clock);
  return 1;
}

public ClockSync(playerid)
{
  new string[64];

  if(cmin == 59)
  {
    cmin = 0;
    if(chour == 23) chour = 0;
    else chour++;
  }
  else cmin++;

  for(new i=0; i<GetMaxPlayers(); i++) if(GetPlayerState(i) != PLAYER_STATE_NONE && IsPlayerConnected(i)) SetPlayerTime(i,chour,cmin);

  format(string, 64, "%02d:%02d", chour, cmin);
  TextDrawSetString(Text:Clock, string);
  SetWorldTime(chour);
}
Попробуй как-то так.
Reply
#4

1. SetWorldTime ставит только параметр у worldtime в браузере
2. SetTimer выполняется не раз в секунду, а с большой погрешностью
Reply
#5

Спасибо большое
Reply
#6

Quote:
Originally Posted by ZaR
View Post
2. SetTimer выполняется не раз в секунду, а с большой погрешностью
а размер погрешности зависит от скорости выполнения функции
Reply
#7

вощем-то и не надо чтоп таймер отмерял точно для этой задачи, главное чтоп примерно у всех показывало одинаково время, когда юзаем таймер. Ну например, каждую минуткуу подправлять время для каждого онлайн игрока стандартной функцией (писал выше)
Reply
#8

У меня проблема та же , хочу время 1 сек = 1 минута)
Reply
#9

Есть много FS предоставляющих эту функцию ..
offtop:
оО фортекс ты снова взялся за pawno?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)