- Código:
#include <a_samp>
#include <Dini>
#pragma tabsize 0
#define FILTERSCRIPT
new Float:PosX[MAX_PLAYERS];
new Float:PosY[MAX_PLAYERS];
new Float:PosZ[MAX_PLAYERS];
new Float:PosA[MAX_PLAYERS];
new SpawnBloqueado[MAX_PLAYERS];
new bool:usoucontinuar[MAX_PLAYERS];
forward UsarComando(playerid);
new bool:UsouComando[MAX_PLAYERS];
new TimerCmd;
#define LARANJA 0xFF4500AA
public OnFilterScriptInit()
{
print("//:::::::::::::::::::::::::::::::::::://");
print(" FilterScript - /Continuar");
print(" Créditos: Mila_CrZ ");
print("//:::::::::::::::::::::::::::::::::::://\n");
return 1;
}
public OnPlayerConnect(playerid)
{
SpawnBloqueado[playerid] = 0;
UsouComando[playerid] = false;
SetTimerEx("Continuar", 30000, false, "d", playerid);
SetTimerEx("Aviso", 2000, false, "d", playerid);
}
public OnPlayerDisconnect(playerid, reason)
{
new Jogador[MAX_PLAYER_NAME];
new data[256];
GetPlayerName(playerid, Jogador, sizeof(Jogador));
GetPlayerPos(playerid,PosX[playerid],PosY[playerid],PosZ[playerid]);
GetPlayerFacingAngle(playerid,PosA[playerid]);
format(data, sizeof(data),"Spawn/%s.spawn.ini", Jogador);
dini_FloatSet(data,"CoordenadaX",PosX[playerid]);
dini_FloatSet(data,"CoordenadaY",PosY[playerid]);
dini_FloatSet(data,"CoordenadaZ",PosZ[playerid]);
dini_FloatSet(data,"CoordenadaA",PosA[playerid]);
return 1;
usoucontinuar[playerid] = false;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/continuar", cmdtext, true, 10) == 0)
{
{
UsouComando[playerid] = true;
TimerCmd = SetTimerEx("UsarComando", 30000, false, "u", playerid); // tempo para desbloquear (30 segundos)
if(usoucontinuar[playerid]) return SendClientMessage(playerid, LARANJA, "[ERRO]Você ja usou esse comando ou o seu tempo acabou!");
else usoucontinuar[playerid] = true;
}
new VolteiPraCa[MAX_PLAYER_NAME];
new voltarcoordenada[256];
GetPlayerName(playerid, VolteiPraCa, sizeof(VolteiPraCa));
format(voltarcoordenada, sizeof(voltarcoordenada), "Spawn/%s.spawn.ini", VolteiPraCa);
if(fexist(voltarcoordenada) && SpawnBloqueado[playerid] == 0)
{
PosX[playerid] = dini_Float(voltarcoordenada,"CoordenadaX");
PosY[playerid] = dini_Float(voltarcoordenada,"CoordenadaY");
PosZ[playerid] = dini_Float(voltarcoordenada,"CoordenadaZ");
PosA[playerid] = dini_Float(voltarcoordenada,"CoordenadaA");
SetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]);
SetPlayerInterior(playerid, 0);
SetPlayerFacingAngle(playerid, PosA[playerid]);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid, 0x33FF00FF, " Você voltou para sua ultima posição!");
SpawnBloqueado[playerid] = 1;
}
if(!fexist(voltarcoordenada))
{
dini_Create(voltarcoordenada);
SpawnBloqueado[playerid] = 1;
}
return 1;
}
return 0;
}
public UsarComando(playerid)
{
UsouComando[playerid] = false;
return 1;
}
public Continuar(playerid)
{
SendClientMessage(playerid, LARANJA, "[INFO]Seu tempo para usar o comando /continuar acabou.");
return 1;
}
public Aviso(playerid)
{
SendClientMessage(playerid,0x33FF00FF," [INFO]Você tem 30 segundos para usar o comando /continuar e voltar para sua ultima posição.");
return 1;
}
public OnFilterScriptExit()
{
return 0;
}
Ta aí um Comando meu, to usando como FS no meu servidor, to postando porque procurei na net e não achei o comando exatamente como queria então peguei uma base e fiz esse aí, ta com alguns warning q não consegui tirar ^^
O comando funciona assim, você entra no servidor e aparece a seguinte mensagem " Você tem 30 segundos para voltar a sua ultima posição" depois disso você não pode mais usar o comando. quando vc usa ele você volta para onde você tava quando saiu, é muito util, depois que usa não pode usar novamente.