Olha, fiz uma boa base, leia tudo, entenda, adapte ao seu Gamemode e Complete la no finalzinho a parte de aplicar a prisгo.
PHP код:
new UltimoDano[MAX_PLAYERS];
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(issuerid != INVALID_PLAYER_ID) //ID Valido
{
UltimoDano[playerid] = gettime();//Pegamos o tempo em que ele tomou ultimo dano
}
return 1;
}
public OnPlayerDisconnect(playerid)
{
UltimoDano[playerid] +=60;//Ele pode deslogar 60 seg apos o tomar dano
if(UltimoDano[playerid] > gettime()) //Ve se passou 60 segundos
{
//Nгo passou 60 seg, entгo vamos agendar uma puniзгo para quando ele logar denovo.
new PlayerNome[MAX_PLAYER_NAME]; //Aki vamos armazenar o Nick do Player
new File[MAX_PLAYER_NAME +12]; //Aki vamos armazenar o local do arquivo
GetPlayerName(playerid, PlayerNome, MAX_PLAYER_NAME); //Pegamos o Nick do Player
format(File, sizeof(File), "Presos/%s.ini", PlayerNome); //Formatamos o Local do Arquivo, exemplo: Presos/Ever_SH.ini
DOF2_CreateFile(File); //Criamos o Arquivo
DOF2_SetString(File, "Motivo", "Deslogou em Combate"); //Salvamos o motivo
DOF2_SetInt(File, "Tempo", 3600); //Salvamos o tempo
DOF2_SaveFile(File); //Salvamos o arquivo
return 1;
}
return 1;
}
public OnPlayerSpawn(playerid)
{
new PlayerNome[MAX_PLAYER_NAME]; //Aki vamos armazenar o Nick do Player
new File[MAX_PLAYER_NAME +12]; //Aki vamos armazenar o local do arquivo
GetPlayerName(playerid, PlayerNome, MAX_PLAYER_NAME); //Pegamos o Nick do Player
format(File, sizeof(File), "Presos/%s.ini", PlayerNome); //Formatamos o Local do Arquivo, exemplo: Presos/Ever_SH.ini
if(DOF2_FileExists(File)) //Vamos ver se ele tem algum agendamento de cadeia, para isto й sу ver se o arquivo existe.
{
//Caso ele tenha
new Motivo[50], TempoPreso; //Vamos armazenar o Motivo e o Tempo.
format(Motivo, 50, "%s", DOF2_GetString(File, "Motivo"))//Pegamos o Motivo
TempoPreso = DOF2_GetInit(File, "Tempo"); //Pegamos o Tempo
new MsgCadeia[128];
format(MsgCadeia, 128, "Vocк estб preso por %d Segundos, Motivo: %s", TempoPreso, Motivo);
SendClientMessage(playerid, -1, MsgCadeia);
//Agora apartir daki й sу vocк fazer de acordo com seu GM
//Teleportar para prisгo, setar o tempo e etc
DOF2_DeleteFile(File); //Aqui deletamos o agendamento, pois a prisгo foi aplicada e nгo precisamos mais disso
}
return 1;
}
Obs: Nгo testei, pode ocorrer algum erro.