21.08.2014, 16:47
Como bloquear uma dialog por 5 segundos.
dialogs de tutorial
dialogs de tutorial
Vou ensinб-lo a base, depois dela voce saberб o que fazer:
Primeiro de tudo, coloque: pawn Код:
Agora, й na lуgica. Quando o timer й ativado ele vai fazer a callback(public e forward) serem executadas certo ? Como o timer tem true, a callback ficarб sendo ativada sem parar, a cada 1 segundo (1000 que foi definido no parametro do SetTimer). Mas, sabe a variбvel TutorialVariavel ? Ela vai aumentar +1 toda vez que a callback for executada certo ? Entгo podemos concluir que jб que a callback й executada a cada 1 segundo, a cada 1 segundo a variбvel vai ganhar +1 de valor. Percebeu ? o if vai checar se a variбvel й 60, e ela sу vai ser 60 se tiver crescido 60 vezes (e pra isso teria que ter se passado 60 segundos, jб que a cada 1 segundo a variбvel cresce em 1). Por fim, o if que checa 60 vai ter checado 1 minuto, um outro if que voce criasse de 120 seria 2 minutos etc. E os intervalos em que a TutorialVariavel estaria crescendo pra entrar no prуximo if seria o intervalo entre as cenas do tutorial, viu como tudo tem sentido ![]() Espero ter ajudado ![]() |
//Quando o jogador registrar:
SetPVarInt(playerid, "Step", 0);
SendClientMessage(playerid, -1, "Vocк agora vai ver nosso tutorial");
new Timer = SetTimerEx("Tutorial", 10000, true, "d", playerid );
SetPVarInt(playerid, "Timer", Timer);
//Final do script
forward Tutorial(playerid);
public Tutorial(playerid)
{
new step = GetPVarInt(playerid, "Step");
switch(step)
{
case 0:
{
ShowPlayerDialog(playerid, 5800, 0, "Tutorial - Parte 1", "Esse й o primeiro passo do tutorial", "Ok", "" );
}
case 1:
{
ShowPlayerDialog(playerid, 5800, 0, "Tutorial - Parte 2", "Esse й o segundo passo do tutorial", "Ok", "" );
}
case 2:
{
ShowPlayerDialog(playerid, 5800, 0, "Tutorial - Parte 3", "Esse й o terceiro passo do tutorial", "Ok", "" );
}
default:
{
KillTimer(GetPVarInt(playerid, "Timer"));
//Fim do tutorial
}
SetPVarInt(playerid, "Step", step + 1);
}
return 1;
}
(16838) : error 002: only a single statement (or expression) can follow each "case"
(16838) : warning 215: expression has no effect
(16840) : error 010: invalid function or declaration
SetPVarInt(playerid, "Step", step + 1);//16838
return 1; //16840
deu esses erros
pawn Код:
|
forward Tutorial(playerid);
public Tutorial(playerid)
{
new step = GetPVarInt(playerid, "Step");
switch(step)
{
case 0:
{
ShowPlayerDialog(playerid, 5800, 0, "Tutorial - Parte 1", "Esse й o primeiro passo do tutorial", "Ok", "" );
}
case 1:
{
ShowPlayerDialog(playerid, 5800, 0, "Tutorial - Parte 2", "Esse й o segundo passo do tutorial", "Ok", "" );
}
case 2:
{
ShowPlayerDialog(playerid, 5800, 0, "Tutorial - Parte 3", "Esse й o terceiro passo do tutorial", "Ok", "" );
}
default:
{
KillTimer(GetPVarInt(playerid, "Timer"));
//Fim do tutorial
}
}
SetPVarInt(playerid, "Step", step + 1);
return 1;
}
ShowPlayerDialog(playerid, 11, DIALOG_STYLE_MSGBOX,"Tutorial 02", "Aqui Vocк Pode Andar.", "Proximo","Sair");
//Acima Outros Com A Mesma funзгo de baixo pra outras orgs
if(listitem == 2)
{
PlayerInfo[playerid][pOrgs] = 5;
new dialotut[8090];
format(dialotut, sizeof(dialotut),"%s%s",dialotut,"Bem Vindo.........");
ShowPlayerDialog(playerid,10, DIALOG_STYLE_MSGBOX, "Tutorial 01", dialogrande, "dialotut", "Cancelar");
levelPm[playerid] = 1;
PlayerInfo[playerid][pPm] = 1;
SalvarPlayer(playerid);
}
}
return 1;
}
SetPVarInt(playerid, "Step", 0);
SendClientMessage(playerid, -1, "prosiga o tut");
new Timer = SetTimerEx("Tutorial", 10000, true, "d", playerid );
SetPVarInt(playerid, "Timer", Timer);
//quando acaba a dialogresponse
forward Tutorial(playerid);
public Tutorial(playerid)
{
new step = GetPVarInt(playerid, "Step");
switch(step)
{
case 0:
{
ShowPlayerDialog(playerid, 5800, 10, "Tutorial - Parte 2", "Esse й o primeiro passo do tutorial", "Ok", "" );
}
default:
{
KillTimer(GetPVarInt(playerid, "Timer"));
}
}
SetPVarInt(playerid, "Step", step + 1);
return 1;
}