[AJUDA]Sistema de Preso Otimizado -
Nake01 - 25.07.2011
Olб, tehno um sistema de preso que vocк prender o player e bota /presos aparece os players que estгo presos e o tempo restante, mais sу que se o player Morre ou Sai e Entra denovo ele ta fora da Cadeia, gostaria de tirar mudar isto para se ele morrer ou sair do server e entrar denovo ele volte pra cadeia e termine o tempo restante que ainda lhe falta.
Meu sistema й este ;d
Forward's
pawn Код:
forward DiminSecondsJailed(playerid);
forward Unjail(giveplayerid, cmdtext[]);
New
pawn Код:
new SecondsJailed[MAX_PLAYERS];
Comando
pawn Код:
if(strcmp(cmd, "/prender", true) == 0)
{
new tmpp[256];
new playername;
tmp = strtok(cmdtext, idx);
tmpp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREEN, "Uso correto: /prender [id do player] [segundos");
return 1;
}
giveplayerid = strval(tmp);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new Second = strval(tmpp);
if(logado[playerid] == 1)
{
if(PlayerInfo[playerid][BOPE] >= 2 || PlayerInfo[playerid][EX] >= 2 || PlayerInfo[playerid][PMRJ] >= 2)
{
SecondsJailed[playerid] = Second;
SetTimerEx("DiminSecondsJailed", 1000, false, "i", playerid);
format(string, sizeof(string), "O Oficial %s prendeu o jogador %s por %d segundo(s)", sendername,giveplayer,Second);
SendClientMessageToAll(COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "~g~Preso por: ~n~~r~%s.", sendername);
GameTextForPlayer(giveplayerid, string, 1000, 1);
SetPlayerInterior(giveplayerid, 6);
SetPlayerPos(giveplayerid, 264.6288,77.5742,1001.0391);
SetPlayerArmour(giveplayerid, 0);
TogglePlayerControllable(giveplayerid, 1);
ResetPlayerWeapons(giveplayerid);
SetTimerEx("Unjail", Second*1000, 0, "i", giveplayerid);
format(file,sizeof(file),"%s.ini",playername);
dini_Create(file);
dini_IntSet(file,"Preso", 1);
PlayerInfo[giveplayerid][Preso] = dini_Int(file,"Preso");
}
else
{
SendClientMessage(playerid, COLOR_CYAN, "Vocк nгo й um OFICIAL!");
}
}
else
{
SendClientMessage(playerid, COLOR_CYAN, "Vocк tem que estar logado para usar este comando!");
}
return 1;
}
pawn Код:
if(!strcmp(cmdtext, "/presos", true))
{
SendClientMessage(playerid, 0x00FF00FF, "|_____[PRESOS ONLINE]_____|");
new count=0;
new tmpp[256];
tmp = strtok(cmdtext, idx);
tmpp = strtok(cmdtext, idx);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(logado[i] == 1)
{
if(PlayerInfo[i][Preso] >= 1)
{
new str[256];
new pname[24];
GetPlayerName(i, pname, 24);
format(str, 256, "PRESO - %s - [Tempo Restante: %d Segundos] ", pname, SecondsJailed);
SendClientMessage(playerid, 0xC0C0C0FF, str);
count++;
}
}
}
}
if(count == 0)
{
SendClientMessage(playerid, COLOR_CYAN, "Nenhum Preso Online !");
}
return 1;
}
Public Unjail
pawn Код:
public Unjail(giveplayerid, cmdtext[])
{
new idx;
new cmd[256];
cmd = strtok(cmdtext, idx);
new tmpp[256];
new tmp[256];
tmp = strtok(cmdtext, idx);
tmpp = strtok(cmdtext, idx);
new giveplayer[MAX_PLAYER_NAME], playername, playerid;
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
SetPlayerInterior(giveplayerid,0);
SetPlayerPos(giveplayerid,1546.2803,-1675.6632,13.5620);
TogglePlayerControllable(giveplayerid,1);
GameTextForPlayer(giveplayerid, "Solto da Cadeia", 1000,1);
format(file,sizeof(file),"%s.ini",playername);
dini_Create(file);
dini_IntSet(file,"Preso", 0);
PlayerInfo[giveplayerid][Preso] = dini_Int(file,"Preso");
SecondsJailed[playerid] --;
}
Re: [AJUDA]Sistema de Preso Otimizado -
Falcon. - 25.07.2011
Olб
Nake01,
aqui estб, veja se funciona como deseja:
pawn Код:
public OnPlayerSpawn(playerid)
{
static _name[24];, _file[29];
GetPlayerName(playerid, _name, sizeof(_name));
format(_file, sizeof(_file), "%s.ini", _name);
if(dini_Int(_file, "Preso") == 1)
{
SetPlayerInterior(giveplayerid, 6);
SetPlayerPos(giveplayerid, 264.6288,77.5742,1001.0391);
SetPlayerArmour(giveplayerid, 0);
TogglePlayerControllable(giveplayerid, 1);
ResetPlayerWeapons(giveplayerid);
SetTimerEx("Unjail", Second*1000, 0, "i", giveplayerid);
SendClientMessage(playerid, 0xFF0000AA, "Vocк continua preso...");
}
return 1;
}
Atenciosamente,
Falcon.
Re: [AJUDA]Sistema de Preso Otimizado -
Nake01 - 25.07.2011
Funciono ;d mais quando o player disconecta ele nгo volta pra cadeia... '-'
Re: [AJUDA]Sistema de Preso Otimizado -
Falcon. - 25.07.2011
Entгo nгo funcionou =x
Pelo oque eu entendi assim que o player vai preso, й setado na conta dele:
pawn Код:
dini_IntSet(file,"Preso", 1);
Entгo no meu cуdigo ele verifica se ele estб preso...caso esteja ele volta para a cadeia..
Veja se realmente estб salvando isto na conta do player.
Atenciosamente,
Falcon.