[Ajuda] Criar textdraw transparente e ir ficando preto
#1

Й o seguinte pessoal, eu criei 5 textdraw, tudo box, e o objetivo delas й o seguinte, criar uma meio transparente, ai vai criando outra mais escura e outra mais escura e assim por diante, mas nгo to conseguindo fazer isso, tipo, eu fiz isso:

PHP код:
CMD:teste(playerid)
{
    
NumeroTutorial[playerid] = 0;
    
PlayerInfo[playerid][pTimerTuto] = SetTimerEx("BoxLoad"3000"i"playerid);
    return 
1;
}
public 
BoxLoad(playerid)
{
    
NumeroTutorial[playerid] ++;
    new 
numero NumeroTutorial[playerid];
    
PlayerPlaySound(playerid10520.00.00.0);
    
ClearChatbox(playerid20);
    if(
numero == 1)
    {
        
TextDrawShowForPlayer(playeridloadTela[0]);
    }
    if(
numero == 2)
    {
        
TextDrawHideForPlayer(playeridloadTela[0]);
        
        
TextDrawShowForPlayer(playeridloadTela[1]);
    }
    if(
numero == 3)
    {
        
TextDrawHideForPlayer(playeridloadTela[0]);
         
TextDrawHideForPlayer(playeridloadTela[1]);
         
        
TextDrawShowForPlayer(playeridloadTela[2]);
    }
    if(
numero == 4)
    {
        
TextDrawHideForPlayer(playeridloadTela[0]);
         
TextDrawHideForPlayer(playeridloadTela[1]);
         
TextDrawHideForPlayer(playeridloadTela[2]);
         
        
TextDrawShowForPlayer(playeridloadTela[3]);
    }
    if(
numero == 5)
    {
        
TextDrawHideForPlayer(playeridloadTela[0]);
        
TextDrawHideForPlayer(playeridloadTela[1]);
        
TextDrawHideForPlayer(playeridloadTela[2]);
        
TextDrawHideForPlayer(playeridloadTela[3]);
        
        
TextDrawShowForPlayer(playeridloadTela[4]);
    }
    return 
1;

O problema й que sу aparece uma e nгo da continuidade, podem me ajudar?
Reply
#2

Quote:
Originally Posted by WiliHacking
Посмотреть сообщение
Й o seguinte pessoal, eu criei 5 textdraw, tudo box, e o objetivo delas й o seguinte, criar uma meio transparente, ai vai criando outra mais escura e outra mais escura e assim por diante, mas nгo to conseguindo fazer isso, tipo, eu fiz isso:

PHP код:
CMD:teste(playerid)
{
    
NumeroTutorial[playerid] = 0;
    
PlayerInfo[playerid][pTimerTuto] = SetTimerEx("BoxLoad"3000"i"playerid);
    return 
1;
}
public 
BoxLoad(playerid)
{
    
NumeroTutorial[playerid] ++;
    new 
numero NumeroTutorial[playerid];
    
PlayerPlaySound(playerid10520.00.00.0);
    
ClearChatbox(playerid20);
    if(
numero == 1)
    {
        
TextDrawShowForPlayer(playeridloadTela[0]);
    }
    if(
numero == 2)
    {
        
TextDrawHideForPlayer(playeridloadTela[0]);
        
        
TextDrawShowForPlayer(playeridloadTela[1]);
    }
    if(
numero == 3)
    {
        
TextDrawHideForPlayer(playeridloadTela[0]);
         
TextDrawHideForPlayer(playeridloadTela[1]);
         
        
TextDrawShowForPlayer(playeridloadTela[2]);
    }
    if(
numero == 4)
    {
        
TextDrawHideForPlayer(playeridloadTela[0]);
         
TextDrawHideForPlayer(playeridloadTela[1]);
         
TextDrawHideForPlayer(playeridloadTela[2]);
         
        
TextDrawShowForPlayer(playeridloadTela[3]);
    }
    if(
numero == 5)
    {
        
TextDrawHideForPlayer(playeridloadTela[0]);
        
TextDrawHideForPlayer(playeridloadTela[1]);
        
TextDrawHideForPlayer(playeridloadTela[2]);
        
TextDrawHideForPlayer(playeridloadTela[3]);
        
        
TextDrawShowForPlayer(playeridloadTela[4]);
    }
    return 
1;

O problema й que sу aparece uma e nгo da continuidade, podem me ajudar?
Mostre o cуdigo completo por favor.

@edit

Vocк pode fazer desta forma

PHP код:
CMD:teste(playerid)
{
    
NumeroTutorial[playerid] = 0;
    
PlayerInfo[playerid][pTimerTuto] = SetTimerEx("BoxLoad"3000"i"playerid);
    return 
1;
}
forward BoxLoad(playerid);
public 
BoxLoad(playerid)
{
    
NumeroTutorial[playerid] ++;
    new 
numero NumeroTutorial[playerid];
    
PlayerPlaySound(playerid10520.00.00.0);
    
ClearChatbox(playerid20);
    switch(
numero)
    {
        case 
1:
        {
            
TextDrawBoxColor(loadTela[0], 50);
            
TextDrawShowForPlayer(playeridloadTela[0]);
        }
        case 
2:
        {
            
TextDrawBoxColor(loadTela[0], 75);
            
TextDrawShowForPlayer(playeridloadTela[0]);
        }
    }
    return 
1;

Ъnico problema й que sгo Textdraws globais, entгo se tiver dois players vendo o tutorial vai ficar aparacendo a mesma coisa para os dois. Vocк pode resolver isso Trocando para Textdraws per player.
Reply
#3

PHP код:
new Text:loadTela[5];
new 
NumeroTutorial[MAX_PLAYERS];
forward BoxLoad(playerid);
public 
OnGameModeInit()
{
    
loadTela[0] = TextDrawCreate(642.0000002.083333"usebox");
    
TextDrawLetterSize(loadTela[0], 0.00000049.396297);
    
TextDrawTextSize(loadTela[0], -2.6250000.000000);
    
TextDrawColor(loadTela[0], 0);
    
TextDrawUseBox(loadTela[0], true);
    
TextDrawBoxColor(loadTela[0], 90);
    
loadTela[1] = TextDrawCreate(642.0000002.083333"usebox");
    
TextDrawLetterSize(loadTela[1], 0.00000049.396297);
    
TextDrawTextSize(loadTela[1], -2.6250000.000000);
    
TextDrawColor(loadTela[1], 0);
    
TextDrawUseBox(loadTela[1], true);
    
TextDrawBoxColor(loadTela[1], 100);
    
loadTela[2] = TextDrawCreate(642.0000002.083333"usebox");
    
TextDrawLetterSize(loadTela[2], 0.00000049.396297);
    
TextDrawTextSize(loadTela[2], -2.6250000.000000);
    
TextDrawColor(loadTela[2], 0);
    
TextDrawUseBox(loadTela[2], true);
    
TextDrawBoxColor(loadTela[2], 110);
    
loadTela[3] = TextDrawCreate(642.0000002.083333"usebox");
    
TextDrawLetterSize(loadTela[3], 0.00000049.396297);
    
TextDrawTextSize(loadTela[3], -2.6250000.000000);
    
TextDrawColor(loadTela[3], 0);
    
TextDrawUseBox(loadTela[3], true);
    
TextDrawBoxColor(loadTela[3], 120);
    
loadTela[4] = TextDrawCreate(642.0000002.083333"usebox");
    
TextDrawLetterSize(loadTela[4], 0.00000049.396297);
    
TextDrawTextSize(loadTela[4], -2.6250000.000000);
    
TextDrawColor(loadTela[4], 0);
    
TextDrawUseBox(loadTela[4], true);
    
TextDrawBoxColor(loadTela[4], 102);
    return 
1;
}
    
enum pInfo
{
    
pTimerTuto
};
new 
PlayerInfo[MAX_PLAYERS][pInfo];
public 
OnPlayerConnect(playerid)
{
    
PlayerInfo[playerid][pTimerTuto] = -1;
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
KillTimer(PlayerInfo[playerid][pTimerTuto]);
    return 
1;
}
public 
BoxLoad(playerid

    
NumeroTutorial[playerid] ++; 
    new 
numero NumeroTutorial[playerid]; 
    
PlayerPlaySound(playerid10520.00.00.0); 
    
ClearChatbox(playerid20); 
    if(
numero == 1
    { 
        
TextDrawShowForPlayer(playeridloadTela[0]); 
    } 
    if(
numero == 2
    { 
        
TextDrawHideForPlayer(playeridloadTela[0]); 
         
        
TextDrawShowForPlayer(playeridloadTela[1]); 
    } 
    if(
numero == 3
    { 
        
TextDrawHideForPlayer(playeridloadTela[0]); 
         
TextDrawHideForPlayer(playeridloadTela[1]); 
          
        
TextDrawShowForPlayer(playeridloadTela[2]); 
    } 
    if(
numero == 4
    { 
        
TextDrawHideForPlayer(playeridloadTela[0]); 
         
TextDrawHideForPlayer(playeridloadTela[1]); 
         
TextDrawHideForPlayer(playeridloadTela[2]); 
          
        
TextDrawShowForPlayer(playeridloadTela[3]); 
    } 
    if(
numero == 5
    { 
        
TextDrawHideForPlayer(playeridloadTela[0]); 
        
TextDrawHideForPlayer(playeridloadTela[1]); 
        
TextDrawHideForPlayer(playeridloadTela[2]); 
        
TextDrawHideForPlayer(playeridloadTela[3]); 
         
        
TextDrawShowForPlayer(playeridloadTela[4]); 
    } 
    return 
1

Reply
#4

https://sampforum.blast.hk/showthread.php?tid=602459
Reply
#5

Pra vocк fazer esse efeito nгo tem necessidade de criar varias textdraw's vocк sу precisa aumentar o alpha.
0x00000000
Reply
#6

Quote:
Originally Posted by Whoo
Посмотреть сообщение
Pra vocк fazer esse efeito nгo tem necessidade de criar varias textdraw's vocк sу precisa aumentar o alpha.
0x00000000
Pode me dar um exemplo de como ficaria no cуdigo?
Reply
#7

Quote:
Originally Posted by WiliHacking
Посмотреть сообщение
Pode me dar um exemplo de como ficaria no cуdigo?
PHP код:
new PlayerText:loadTela[MAX_PLAYERS] = PlayerText:INVALID_TEXT_DRAWNumeroTutorial[MAX_PLAYERS];
CMD:teste(playerid

    
NumeroTutorial[playerid] = 0
    
PlayerInfo[playerid][pTimerTuto] = SetTimerEx("BoxLoad"300true"i"playerid); 
    return 
1

forward BoxLoad(playerid);
public 
BoxLoad(playerid)
{
    if(
loadTela[playerid] == PlayerText:INVALID_TEXT_DRAW)
    {
        
loadTela[playerid] = PlayerCreatePlayerTextDraw(playerid642.0000002.083333"usebox"); 
        
PlayerTextDrawLetterSize(playeridloadTela[playerid], 0.00000049.396297); 
        
PlayerTextDrawTextSize(playeridloadTela[playerid], -2.6250000.000000); 
        
PlayerTextDrawColor(playeridloadTela[playerid], 0); 
        
PlayerTextDrawUseBox(playeridloadTela[playerid], true); 
        
PlayerTextDrawBoxColor(playeridloadTela[playerid], 90);
    }
    
NumeroTutorial[playerid] ++; 
    
    new 
numero NumeroTutorial[playerid]; 
    
    
PlayerPlaySound(playerid10520.00.00.0); 
    
ClearChatbox(playerid20);
    switch(
numero){
        case 
1:{
            
PlayerTextDrawBoxColor(playeridloadTela[playerid], 50);
            
PlayerTextDrawShow(playeridloadTela[playerid]);
        }
        case 
2:{
            
PlayerTextDrawBoxColor(playeridloadTela[playerid], 75);
            
PlayerTextDrawShow(playeridloadTela[playerid]);
        }
        
// [...] adicionei mais a seu gosto
        
default:{
            
PlayerTextDrawDestroy(playeridloadTela[playerid]);
            
loadTela[playerid] = PlayerText:INVALID_TEXT_DRAW;
            
KillTimer(PlayerInfo[playerid][pTimerTuto]);
            
NumeroTutorial[playerid]
        }
    }

@edit

Vi um erro no seu cуdigo que nгo fez que seu cуdigo nгo funcionasse. Mas seu cуdigo tambйm nгo estб otimizado, entгo aconselho a usar o de cima.

Quote:
Originally Posted by WiliHacking
Посмотреть сообщение
[code]
CMD:teste(playerid)
{
NumeroTutorial[playerid] = 0;
PlayerInfo[playerid][pTimerTuto] = SetTimerEx("BoxLoad", 300, 0, "i", playerid); // Vocк colocou o repeat para false, ou seja o time sу era chamado uma vez.
return 1;
}
[code]
@edit2
Para evitar bug
PHP код:
public OnPlayerConnect(playerid)
{
    
loadTela[playerid] = PlayerText:INVALID_TEXT_DRAW;

Reply
#8

Ah sim.. obrigado, vou testar aqui
Reply
#9

Esta funcionando mano, sу que estб dando warning nisso:

PHP код:
NumeroTutorial[playerid
Coloquei o ; mas ainda continua, coloco NumeroTutorial[playerid] = 0; ?
Reply
#10

Mostre o tipo do warning.
Irei da edit neste post quando vocк postar!

@edit


Код:
default:{ 
            PlayerTextDrawDestroy(playerid, loadTela[playerid]); 
            loadTela[playerid] = PlayerText:INVALID_TEXT_DRAW; 
            KillTimer(PlayerInfo[playerid][pTimerTuto]); 
            NumeroTutorial[playerid] = 0; // aqui estava o erro
        }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)