SA-MP Forums Archive
[Ajuda] Afk - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Afk (/showthread.php?tid=650642)



Afk - LoaaDinG - 03.03.2018

Codigos:

Quote:

CMD:afk(playerid, params[])
{
new Msg[128];
new Motivo[128];
if (APlayerData[playerid][LoggedIn] == false)return SendClientMessage(playerid, -1, "{FF0000}**ERRO {FF0000}Vocк Precisa Estб Logado!");
if(sscanf(params, "s[150]", Motivo)) return SendClientMessage(playerid, 0xFF0000FF, "Use: /afk [motivo]");
if(Afk[playerid]) return SendClientMessage(playerid, VERMELHO, "Vocк jб estб AFK");
if(APlayerData[playerid][PlayerLevel] < 1 && APlayerData[playerid][VIPLevel] < 1) return SendClientMessage(playerid, BRANCO, "Vocк precisa ser admin para usar este comando!");
//TogglePlayerSpectating(playerid, true);
//SetPlayerHealth(playerid, 99999);
TogglePlayerControllable(playerid, false);
SetPlayerPos(playerid, -169.1446, 1782.8071, 97.8471);
SetPlayerCameraPos(playerid, -214.4716, 1771.8352, 120.373;
Afk[playerid] = true;
format(Msg, sizeof(Msg), "{FFFF00}[AFK] {FF0000}%s Estб Ausente do ATS, Motivo: {FFFFFF}%s.", rNome(playerid), Motivo);
SendClientMessageToAll(AZUL_CLARO, Msg);
TextDrawSetString(TextDrawAFK[playerid], "VOCE ESTA AUSENTE, PARA VOLTAR USE /SAIRAFK");
TextDrawShowForPlayer(playerid, TextDrawAFK[playerid]);
SendClientMessage(playerid, Cinza, "Use /sairafk para sair do Afk.");
return 1;
}


CMDairafk(playerid, params[])
{
new Msg[128];
if((!Afk[playerid])) return SendClientMessage(playerid, VERMELHO, "Vocк nгo estб AFK");
if(APlayerData[playerid][PlayerLevel] < 1 && APlayerData[playerid][VIPLevel] < 1) return SendClientMessage(playerid, BRANCO, "Vocк precisa ser admin para usar este comando!");
//TogglePlayerSpectating(playerid, false);
//SetPlayerHealth(playerid, 100);
TogglePlayerControllable(playerid, true);
Afk[playerid] = false;
TextDrawSetString(TextDrawAFK[playerid], "");
TextDrawHideForAll(TextDrawAFK[playerid]);
format(Msg, 128, "{FFFF00}[AFK] {00FF00}%s Esta Online Novamente no {FFFFFF}ATS.", rNome(playerid));
SendClientMessageToAll(AZUL_CLARO, Msg);
return 1;
}

Oque eu quero?
Bom, coloquei um SetPlayerPos e CameraPos, para quando o jogador usar o comando "/AFK" porйm quando ele usar o comando /sairafk, o mesmo deve voltar para a posiзгo e camera que estava antes de usar o "/AFK", podem me ajudar?


Re: Afk - InsaneBR - 03.03.2018

Crie 3 variбveis globais para armazenar as posiзхes x,y,z.

PHP код:
new 
     
afkPosicao_X[MAX_PLAYERS],
     
afkPosicao_Y[MAX_PLAYERS],
     
afkPosicao_Z[MAX_PLAYERS]

No comando /afk:

PHP код:
new Float:XFloat:YFloat:Z;
GetPlayerPos(playeridXYZ); 
Apуs isso, use as variбveis globais para armazenar as posiзхes abaixo do GetPlayerPos:

PHP код:
afkPosicao_X[playerid] = X;
afkPosicao_Y[playerid] = Y;
afkPosicao_Z[playerid] = Z
E, por fim, no comando /sairafk use:

PHP код:
SetPlayerPos(playeridafkPosicao_X[playerid], afkPosicao_Y[playerid], afkPosicao_Z[playerid]); 
Qualquer erro, avise, fiz pelo celular ;s
Espero ter ajudado!