Para fazer uma textdraw que de para clicar vocк deve usar a funзгo
TextDrawSetSelectable, e para fazer o jogador selecionar uma textdraw use a funзгo,
TextDrawSetSelectable, e para o jogador nгo selecionar nenhuma textdraw
CancelSelectTextDraw, quando ele seleciona uma textdraw й chamada a callback
OnPlayerClickTextDraw.
pawn Код:
new bool: Spec[MAX_PLAYERS];
new SpecId[MAX_PLAYERS];
//Aqui foram definidas as arrays um para valores true e false e outro para valores inteiros.
// SpecId irб armazenar o id do jogador que ele estб visualizando no momento.
// Spec irб armazenar valores true ou false para definir se ele estб visualizando algum jogador.
public OnPlayerDeath(playerid, killerid, reason)
{
// Quando um jogador mata um outro jogador, ou um jogador morre estб callback й chamada.
Spec[playerid] = true;
// armazenamos o valor true na array Spec e definimos em nosso sistema que ele vai visualizar um jogador e nгo vai dar respawn.
SpecId[playerid] = killerid;
// armazenamos o id do jogador que ele vai visualizar, que no caso й o id do jogador que o matou.
// eu armazenei o id do jogador que o matou, por se ele executar o comando proximo ele incrementa na variбvel o 1.
TogglePlayerSpectating(playerid, 1);
// Aqui й definido que ele estб no modo espectador.
PlayerSpectatePlayer(playerid, killerid);
// aqui й definido que ele vai assistir um jogador, e esse jogador й quem o matou
return 1;
}
// Estes sгo os comandos, eu o fiz usando o processador de comandos ZCMD.
CMD:proximo(playerid)
{
// Quando ele digitar o comando /proximo й verificado se o jogador id da soma entre o valor armazenado na
//array SpecId + 1 estб online, e caso esteja й verificado se o jogador id da soma do valor que estб
//armazenado na array SpecId + 1 estб em modo espectador e caso nгo esteja executa as funзхes abaixo.
if(IsPlayerConnected(SpecId[playerid] + 1) && Spec[SpecId[playerid] + 1] == false)
{
// Caso caso o jogador citado acima esteja conectado e nгo esteja em modo espectador executa estas funзхes:
// incrementa na array o valor 1.
SpecId[playerid] ++;
// Coloca para assistir o jogador id do valor que estб armazenado na array.
PlayerSpectatePlayer(playerid, SpecId[playerid]);
}
return 1;
}
CMD:anterior(playerid)
{
// Quando ele digitar o comando /anterior й verificado se o jogador id da subtraзгo entre o valor armazenado na
//array SpecId + 1 estб online, e caso esteja й verificado se o jogador id da subtraзгo do valor que estб
//armazenado na array SpecId - 1 estб em modo espectador e caso nгo esteja executa as funзхes abaixo.
if(IsPlayerConnected(SpecId[playerid] - 1) && Spec[SpecId[playerid] - 1] == false)
{
// desincrementa na array o valor 1.
SpecId[playerid] --; // mesma coisa que: SpecId[playerid] = SpecId[playerid] - 1;
// Coloca para assistir o jogador id do valor que estб armazenado na array.
PlayerSpectatePlayer(playerid, SpecId[playerid]);
}
return 1;
}
Sobre as textdraws recomendo procurar textdraws.
Uma dica para aprender mais, й procurar o que tal funзгo faz.
Exemplo, procurar o que a funзгo print faz. E tambйm abrir as includes nativas do samp e ver quais callbacks foram definidas lб e ver quando elas sгo chamadas.