[Ajuda] [Erro-Ajuda] Payday Textdraw
#9

Quote:
Originally Posted by MediaCL
Посмотреть сообщение
PHP код:
#define Conta       "Contas/%s.ini"
new MinutosP[MAX_PLAYERS], SegundosP[MAX_PLAYERS], TextTextdraw0[MAX_PLAYERS];//variavel minutos e segundos do payday. 
public OnPlayerConnect(playerid

    for(new 
0MAX_PLAYERSi++) 
    { 
        
SetTimerEx("RelogioUP"1000true"i"i); 
        
Textdraw0[i] = TextDrawCreate(499.000000123.000000""); 
    
TextDrawBackgroundColor(Textdraw0[i], 255); 
    
TextDrawFont(Textdraw0[i], 1); 
    
TextDrawLetterSize(Textdraw0[i], 0.4500000.899999); 
    
TextDrawColor(Textdraw0[i], -16776961); 
    
TextDrawSetOutline(Textdraw0[i], 0); 
    
TextDrawSetProportional(Textdraw0[i], 0); 
    
TextDrawSetShadow(Textdraw0[i], 1); 
    
TextDrawSetSelectable(Textdraw0[i], 0); 
    } 
    
MinutosP[playerid] = DOF2_GetInt(Conta"Minutos Payday");//Carregar Minutos 
    
SegundosP[playerid] = DOF2_GetInt(Conta"Segundos Payday");//Carregar Segundos 
    
return 1

public 
OnplayerDisconnect(playeridreason

    
DOF2_SetInt(Conta"Minutos Payday"MinutosP[playerid]);//Salvar Minutos 
    
DOF2_SetInt(Conta"Segundos Payday"SegundosP[playerid]);//Salvar Segundos 
    
return 1

forward RelogioUP(playerid);//Em algum lugar da sua GM. 
public RelogioUP(playerid)//Em algum lugar da sua GM. 

    if(
MinutosP[playerid] == && SegundosP[playerid] == 0
    { 
        
MinutosP[playerid] = 59
        
SegundosP[playerid] = 59
        
PayDay(playerid);//aqui й a funзгo que libera  o pagamento. 
    

    if(
SegundosP[playerid] == -1
    { 
        if(
MinutosP[playerid] == 0
        
MinutosP[playerid] = 59
        
SegundosP[playerid] = 59
        
MinutosP[playerid]--; 
    } 
    new 
string[128]; 
    
format(stringsizeof(string), "Payday:~w~%02dm e %02ds"MinutosP[playerid], SegundosP[playerid]); 
    
TextDrawSetString(Textdraw0[playerid],string); 
    
TextDrawShowForPlayer(playeridTextdraw0[playerid]); 
    
SegundosP[playerid] --; 
    return 
1

Obs: Vocк tem que definir a pasta do salvamento do PayDay, como um diretorio Exemplo:
Pasta_Contas "Contas/%s.ini"
No erro do "SettimerEx"
Vocк deve ter definido ele duas vezes !
Por que a textdraw ta sendo criada na callback do OnPlayerConnect? cada vez que o jogador conectava no servidor setava um timer em todo mundo e criava a textdraw pra todo mundo ? seria melhor assim(AO MEU VER)

PHP код:
#define Conta         "Contas/%s.ini"
new MinutosP[MAX_PLAYERS],
    
SegundosP[MAX_PLAYERS],
    
PlayerText:Textdraw0[MAX_PLAYERS];
public 
OnPlayerConnect(playerid

    new 
file[40], NomePl[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNomePlsizeof NomePl);
    
format(filesizeof fileContaNomePl);
    if(
DOF2_FileExists(file))
    {
        
MinutosP[playerid] = DOF2_GetInt(file"Minutos");
        
SegundosP[playerid] = DOF2_GetInt(file"Segundos");
    }
    
Textdraw0[playerid] = CreatePlayerTextDraw(playerid499.000000123.000000""); 
    
PlayerTextDrawBackgroundColor(playeridTextdraw0[playerid], 255); 
    
PlayerTextDrawFont(playeridTextdraw0[playerid], 1); 
    
PlayerTextDrawLetterSize(playeridTextdraw0[playerid], 0.4500000.899999); 
    
PlayerTextDrawColor(playeridTextdraw0[playerid], -16776961); 
    
PlayerTextDrawSetOutline(playeridTextdraw0[playerid], 0); 
    
PlayerTextDrawSetProportional(playeridTextdraw0[playerid], 0); 
    
PlayerTextDrawSetShadow(playeridTextdraw0[playerid], 1); 
    
PlayerTextDrawSetSelectable(playeridTextdraw0[playerid], 0); 
    return 
1

/*
*  @OBS                    - Vocк precisa adicionar o codigo abaixo na funзгo onde o player faz o login
*/
forward OnPlayerLogin(playerid);
public 
OnPlayerLogin(playerid)
{
    
PlayerTextDrawShow(playeridtextdraw0[playerid]);
}
public 
OnPlayerDisconnect(playeridreason)
{
    new 
file[40], NomePl[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNomePlsizeof NomePl);
    
format(filesizeof fileContaNomePl);
    if(
DOF2_FileExists(file))
    {
        
DOF2_SetInt(Conta"Minutos"MinutosP[playerid]);
        
DOF2_SetInt(Conta"Segundos"SegundosP[playerid]);
    }
    return 
1;
}
public 
OnGameModeInit()
{
    
SetTimer("RelogioUP"1000true);
}
forward RelogioUP();
public 
RelogioUP()
{
    foreach(new 
playeridPlayer)
    {
        if(
MinutosP[playerid] <= && SegundosP[playerid] <= 0)
        {
            
MinutosP[playerid] = 60;
            
SegundosP[playerid] = 0;
            
Payday(playerid); // << Taca o Payday
        
}
        else
        {
            if(
SegundosP[playerid] <= 0)
            {
                
MinutosP[playerid]--;
                
SegundosP[playerid] = 60;
            }
            else
                
SegundosP[playerid]--;
        }
        new 
text[30];
        
format(textsizeof text"Payday:~w~%02d:%02d"MinutosP[playerid], SegundosP[playerid]);
        
PlayerTextDrawSetString(playeridtextdraw0[playerid], text);
        
//Se colocar pra aparecer a textdraw aqui vai aparecer na tela de login tambйm, mas se quiser:
        
PlayerTextDrawShow(playeridtextdraw0[playerid]);
    }
    return 
true;

Reply


Messages In This Thread
[Erro-Ajuda] Payday Textdraw - by Abne - 15.12.2017, 03:15
Re: [Erro-Ajuda] Payday Textdraw - by MediaCL - 15.12.2017, 03:30
Re: [Erro-Ajuda] Payday Textdraw - by DelK - 15.12.2017, 07:12
Re: [Erro-Ajuda] Payday Textdraw - by Marllun - 15.12.2017, 07:20
Re: [Erro-Ajuda] Payday Textdraw - by MediaCL - 16.12.2017, 00:53
Re: [Erro-Ajuda] Payday Textdraw - by Mises - 16.12.2017, 01:56
Re: [Erro-Ajuda] Payday Textdraw - by Abne - 16.12.2017, 17:32
Re: [Erro-Ajuda] Payday Textdraw - by MediaCL - 16.12.2017, 17:46
Re: [Erro-Ajuda] Payday Textdraw - by Paulthaz - 16.12.2017, 19:04
Re: [Erro-Ajuda] Payday Textdraw - by DelK - 16.12.2017, 19:37

Forum Jump:


Users browsing this thread: 5 Guest(s)