| 
 Contador embaixo na tela. - xxxjhonatan_wi -  06/11/2021
 
 Fiz um sistema de payday de 45 minutos, e queria que na tela do player tivesse uma contagem regressiva: "PayDay em: 45 minutos", e toda vez que o tempo acabasse, começasse de novo. PS:Ele deve ser zerado toda vez que o player der disconnect
 
 
 RE: Contador embaixo na tela. - xbruno1000x -  06/11/2021
 
 Use um criador de textdraw para pegar a posição, use format para o texto juntamente de suas variáveis que armazenam o tempo. Depois é so usar o SetString para funcionar. É difícil alguém conseguir fazer isso pra você, pois não temos acesso as suas variáveis.
 
 
 RE: Contador embaixo na tela. - xxxjhonatan_wi -  07/11/2021
 
 
  (06/11/2021 21:17)xbruno1000x Escreveu:  Use um criador de textdraw para pegar a posição, use format para o texto juntamente de suas variáveis que armazenam o tempo. Depois é so usar o SetString para funcionar. É difícil alguém conseguir fazer isso pra você, pois não temos acesso as suas variáveis. Você pode me dar um guia mais específico ? eu não manjo de textdraw. Vou colocar tudo relacionado a payday aqui abaixo:
 
 new TIMERPAYDAY[MAX_PLAYERS]; //VARIAVEL GLOBAL
 
 TIMERPAYDAY[playerid] = SetTimerEx( "PayDay", 60000 , true, "d", playerid); //Onde o tempo começa a contar, coloquei na dialog de quando acerta a senha!
 
 KillTimer(TIMERPAYDAY[playerid]); //Coloquei em OnPlayerDisconnect
 
 forward PayDay(playerid);
 public PayDay(playerid)
 {
 SendClientMessage(playerid, -1, "============== PAYDAY ============== ");
 SendClientMessage(playerid, -1, "Voce recebeu + 1 score e $6500");
 SendClientMessage(playerid, -1, "============== PAYDAY ============== ");
 for(new i = 0, p = GetPlayerPoolSize(); i <= p; i++)
 {
 if(IsPlayerConnected(i)){
 new scoreantigo = GetPlayerScore(i);
 SetPlayerScore(i, scoreantigo+1);
 GivePlayerMoney(i, 6500);
 }
 
 }
 if(PlayerInfo[playerid][Vip] == 1)
 {
 SendClientMessage(playerid, -1, "============== PAYDAY ============== ");
 SendClientMessage(playerid, -1, "Por ser um player vip: Ganhou + 2 score[TOTAL 3] e mais $6500[TOTAL 13000]");
 SendClientMessage(playerid, -1, "============== PAYDAY ============== ");
 for(new i = 0, p = GetPlayerPoolSize(); i <= p; i++)
 {
 if(IsPlayerConnected(i)){
 new scoreantigo = GetPlayerScore(i);
 SetPlayerScore(i, scoreantigo+2);
 GivePlayerMoney(i, 6500);
 }
 
 }
 }
 if(PlayerInfo[playerid][Acionista] == 1)
 {
 SendClientMessage(playerid, -1, "============== PAYDAY ============== ");
 SendClientMessage(playerid, -1, "Por ser um player Acionista: Ganhou + 4 score[TOTAL 5] e mais $13000[TOTAL 19500]");
 SendClientMessage(playerid, -1, "============== PAYDAY ============== ");
 for(new i = 0, p = GetPlayerPoolSize(); i <= p; i++)
 {
 if(IsPlayerConnected(i)){
 new scoreantigo = GetPlayerScore(i);
 SetPlayerScore(i, scoreantigo+4);
 GivePlayerMoney(i, 13000);
 }
 
 }
 }
 }
 
 
 RE: Contador embaixo na tela. - xbruno1000x -  07/11/2021
 
 no post você diz que o sistema de 45 minutos, mas esse que você enviou só tem 1 minuto.
 
 
 
 
 Código: new stringXb[70];format(stringXb, 70, "O próximo payday será em ~r~%d segundos", valor);
 GameTextForPlayer(playerid, stringXb, 1250, 4);
 Basta substituir o valor por uma variável que armazene o tempo decorrido.
 Com textdraw personalizada é a mesma coisa, porém utilizará o TextdrawSetString.
 
 
 RE: Contador embaixo na tela. - xxxjhonatan_wi -  07/11/2021
 
 
  (07/11/2021 12:20)xbruno1000x Escreveu:  no post você diz que o sistema de 45 minutos, mas esse que você enviou só tem 1 minuto.
 
 
 
 Código: new stringXb[70];format(stringXb, 70, "O próximo payday será em ~r~%d segundos", valor);
 GameTextForPlayer(playerid, stringXb, 1250, 4);
 Basta substituir o valor por uma variável que armazene o tempo decorrido.
 Com textdraw personalizada é a mesma coisa, porém utilizará o TextdrawSetString.
 está 1 minuto porquê eu estava testando, mas vou por 45.
 
 Então o código fica assim?
 
 new stringXb[70];
 format(stringXb, 70, "O próximo payday será em ~r~%d segundos", TIMERPAYDAY); (É a variável que eu uso pro tempo)
 GameTextForPlayer(playerid, stringXb, 1250, 4);
 
 
 RE: Contador embaixo na tela. - MrThúúG -  07/11/2021
 
 será que não dava pra fazer a verificação pelo gettime ? e usar as variáveis individuais em vez de usar variáveis globais. ?
 
 
 RE: Contador embaixo na tela. - xxxjhonatan_wi -  07/11/2021
 
 
  (07/11/2021 13:58)MrThúúG Escreveu:  será que não dava pra fazer pelo gettime ? e usar as variáveis individual em vez de usar variáveis global. ? Até dar, só n sei fazer ikksjkj
 
 
 RE: Contador embaixo na tela. - MrThúúG -  07/11/2021
 
 eu não entendi isso no teu codigo... você esta misturando variáveis globais com variáveis pessoais '-' public PayDay(playerid) e depois faz uma verificação global     for(new i = 0, p = GetPlayerPoolSize(); i <= p; i++) ....
 
 forward PayDay(playerid);
 public PayDay(playerid)
 {
 SendClientMessage(playerid, -1, "============== PAYDAY ============== ");
 SendClientMessage(playerid, -1, "Voce recebeu + 1 score e $6500");
 SendClientMessage(playerid, -1, "============== PAYDAY ============== ");
 for(new i = 0, p = GetPlayerPoolSize(); i <= p; i++)
 {
 if(IsPlayerConnected(i)){
 new scoreantigo = GetPlayerScore(i);
 SetPlayerScore(i, scoreantigo+1);
 GivePlayerMoney(i, 6500);
 }
 
 }
 
 
 RE: Contador embaixo na tela. - White_Blue -  15/07/2022
 
 É um tópico antigo, mas vou deixar minha mensagem se por a caso alguém precisar algum dia.
 
 
 
 
 
 
 Código PHP: #define PAYDAY 40 // Defina o tempo do seu PayDay, defini para 40 minutos.
 // Variáveis Globais
 new Text:PaydayText[2];
 new PlayerText:PaydayPlayerText[MAX_PLAYERS][1];
 new PaydayTimer[MAX_PLAYERS];
 new Timer[MAX_PLAYERS];
 
 public OnGameModeInit() {
 // TextDraws
 PaydayText[0] = TextDrawCreate(432.058837, 384.249938, "ld_grav:timer");
 TextDrawTextSize(PaydayText[0], 24.000000, 28.000000);
 TextDrawAlignment(PaydayText[0], 1);
 TextDrawColor(PaydayText[0], -1);
 TextDrawSetShadow(PaydayText[0], 0);
 TextDrawBackgroundColor(PaydayText[0], 255);
 TextDrawFont(PaydayText[0], 4);
 TextDrawSetProportional(PaydayText[0], 0);
 
 PaydayText[1] = TextDrawCreate(457.999847, 394.749969, "box");
 TextDrawLetterSize(PaydayText[1], 0.000000, -0.070588);
 TextDrawTextSize(PaydayText[1], 618.000000, 0.000000);
 TextDrawAlignment(PaydayText[1], 1);
 TextDrawColor(PaydayText[1], -1);
 TextDrawUseBox(PaydayText[1], 1);
 TextDrawBoxColor(PaydayText[1], 255);
 TextDrawSetShadow(PaydayText[1], 0);
 TextDrawBackgroundColor(PaydayText[1], 255);
 TextDrawFont(PaydayText[1], 1);
 TextDrawSetProportional(PaydayText[1], 1);
 return 1;
 }
 
 public OnPlayerConnect(playerid) {
 // TextDraws
 PaydayPlayerText[playerid][0] = CreatePlayerTextDraw(playerid, 624.588378, 396.500091, "~w~Payday em ~g~40~w~ minutos!");
 PlayerTextDrawLetterSize(playerid, PaydayPlayerText[playerid][0], 0.400000, 1.600000);
 PlayerTextDrawAlignment(playerid, PaydayPlayerText[playerid][0], 3);
 PlayerTextDrawColor(playerid, PaydayPlayerText[playerid][0], 41215);
 PlayerTextDrawSetShadow(playerid, PaydayPlayerText[playerid][0], 0);
 PlayerTextDrawSetOutline(playerid, PaydayPlayerText[playerid][0], 1);
 PlayerTextDrawBackgroundColor(playerid, PaydayPlayerText[playerid][0], 255);
 PlayerTextDrawFont(playerid, PaydayPlayerText[playerid][0], 3);
 PlayerTextDrawSetProportional(playerid, PaydayPlayerText[playerid][0], 1);
 
 MostrarText(playerid);
 
 Timer[playerid] = PAYDAY * 60 + 1;
 // Timer
 PaydayTimer[playerid] = SetTimerEx("PayDay", 1000, true, "i", playerid);
 return 1;
 }
 
 forward PayDay(i);
 public PayDay(i)
 {
 new string[128];
 Timer[i]--;
 format(string, sizeof(string), "~w~Payday em ~g~%s~w~ minutos!", Convert(Timer[i]));
 PlayerTextDrawSetString(i, PaydayPlayerText[i][0], string);
 if(Timer[i] == 0) {
 SetPlayerScore(i, GetPlayerScore(i) + 1);
 GivePlayerMoney(i, 2500);
 SendClientMessage(i, -1, "=========================\nPayday!\n=========================");
 PlayerPlaySound(i, 1137, 0.0, 0.0, 0.0);
 Timer[i] = PAYDAY * 60 + 1;
 }
 return 1;
 }
 
 stock Convert(number) {
 new hours, mins, secs, string[100];
 hours = floatround(number / 3600);
 mins = floatround((number / 60) - (hours * 60));
 secs = floatround(number - ((hours * 3600) + (mins * 60)));
 if(hours >= 24) hours = hours % 24;
 
 if(hours > 0) format(string, 100, "%02d:%02d:%02d", hours, mins, secs);
 else format(string, 100, "%02d:%02d", mins, secs);
 return string;
 }
 
 stock MostrarText(playerid) {
 for(new i = 0; i < 2; i++) TextDrawShowForPlayer(playerid, PaydayText[i]);
 for(new j = 0; j < 1; j++) PlayerTextDrawShow(playerid, PaydayPlayerText[playerid][j]);
 return 1;
 }
 
 stock EsconderText(playerid) {
 for(new i = 0; i < 2; i++) TextDrawHideForPlayer(playerid, PaydayText[i]);
 for(new j = 0; j < 1; j++) PlayerTextDrawHide(playerid, PaydayPlayerText[playerid][j]);
 return 1;
 }
 
 
 RE: Contador embaixo na tela. - MaxN -  07/10/2022
 
 
  (15/07/2022 14:40)White_Blue Escreveu:  É um tópico antigo, mas vou deixar minha mensagem se por a caso alguém precisar algum dia.
 
 
 Como posso deixar em 10 minutos para ganhar, pode me ajudar?
 
 
 Código PHP: #define PAYDAY 40 // Defina o tempo do seu PayDay, defini para 40 minutos.
 // Variáveis Globais
 new Text:PaydayText[2];
 new PlayerText:PaydayPlayerText[MAX_PLAYERS][1];
 new PaydayTimer[MAX_PLAYERS];
 new Timer[MAX_PLAYERS];
 
 public OnGameModeInit() {
 // TextDraws
 PaydayText[0] = TextDrawCreate(432.058837, 384.249938, "ld_grav:timer");
 TextDrawTextSize(PaydayText[0], 24.000000, 28.000000);
 TextDrawAlignment(PaydayText[0], 1);
 TextDrawColor(PaydayText[0], -1);
 TextDrawSetShadow(PaydayText[0], 0);
 TextDrawBackgroundColor(PaydayText[0], 255);
 TextDrawFont(PaydayText[0], 4);
 TextDrawSetProportional(PaydayText[0], 0);
 
 PaydayText[1] = TextDrawCreate(457.999847, 394.749969, "box");
 TextDrawLetterSize(PaydayText[1], 0.000000, -0.070588);
 TextDrawTextSize(PaydayText[1], 618.000000, 0.000000);
 TextDrawAlignment(PaydayText[1], 1);
 TextDrawColor(PaydayText[1], -1);
 TextDrawUseBox(PaydayText[1], 1);
 TextDrawBoxColor(PaydayText[1], 255);
 TextDrawSetShadow(PaydayText[1], 0);
 TextDrawBackgroundColor(PaydayText[1], 255);
 TextDrawFont(PaydayText[1], 1);
 TextDrawSetProportional(PaydayText[1], 1);
 return 1;
 }
 
 public OnPlayerConnect(playerid) {
 // TextDraws
 PaydayPlayerText[playerid][0] = CreatePlayerTextDraw(playerid, 624.588378, 396.500091, "~w~Payday em ~g~40~w~ minutos!");
 PlayerTextDrawLetterSize(playerid, PaydayPlayerText[playerid][0], 0.400000, 1.600000);
 PlayerTextDrawAlignment(playerid, PaydayPlayerText[playerid][0], 3);
 PlayerTextDrawColor(playerid, PaydayPlayerText[playerid][0], 41215);
 PlayerTextDrawSetShadow(playerid, PaydayPlayerText[playerid][0], 0);
 PlayerTextDrawSetOutline(playerid, PaydayPlayerText[playerid][0], 1);
 PlayerTextDrawBackgroundColor(playerid, PaydayPlayerText[playerid][0], 255);
 PlayerTextDrawFont(playerid, PaydayPlayerText[playerid][0], 3);
 PlayerTextDrawSetProportional(playerid, PaydayPlayerText[playerid][0], 1);
 
 MostrarText(playerid);
 
 Timer[playerid] = PAYDAY * 60 + 1;
 // Timer
 PaydayTimer[playerid] = SetTimerEx("PayDay", 1000, true, "i", playerid);
 return 1;
 }
 
 forward PayDay(i);
 public PayDay(i)
 {
 new string[128];
 Timer[i]--;
 format(string, sizeof(string), "~w~Payday em ~g~%s~w~ minutos!", Convert(Timer[i]));
 PlayerTextDrawSetString(i, PaydayPlayerText[i][0], string);
 if(Timer[i] == 0) {
 SetPlayerScore(i, GetPlayerScore(i) + 1);
 GivePlayerMoney(i, 2500);
 SendClientMessage(i, -1, "=========================\nPayday!\n=========================");
 PlayerPlaySound(i, 1137, 0.0, 0.0, 0.0);
 Timer[i] = PAYDAY * 60 + 1;
 }
 return 1;
 }
 
 stock Convert(number) {
 new hours, mins, secs, string[100];
 hours = floatround(number / 3600);
 mins = floatround((number / 60) - (hours * 60));
 secs = floatround(number - ((hours * 3600) + (mins * 60)));
 if(hours >= 24) hours = hours % 24;
 
 if(hours > 0) format(string, 100, "%02d:%02d:%02d", hours, mins, secs);
 else format(string, 100, "%02d:%02d", mins, secs);
 return string;
 }
 
 stock MostrarText(playerid) {
 for(new i = 0; i < 2; i++) TextDrawShowForPlayer(playerid, PaydayText[i]);
 for(new j = 0; j < 1; j++) PlayerTextDrawShow(playerid, PaydayPlayerText[playerid][j]);
 return 1;
 }
 
 stock EsconderText(playerid) {
 for(new i = 0; i < 2; i++) TextDrawHideForPlayer(playerid, PaydayText[i]);
 for(new j = 0; j < 1; j++) PlayerTextDrawHide(playerid, PaydayPlayerText[playerid][j]);
 return 1;
 }
 
 
 
 
 |