Player nasce na prisão sem estar preso realmente. - fear - 09/01/2022
boa tarde. estou com um problema que tem hora que o player não foi preso por ninguem ele vai logar e diz que ele esta preso porém ele spawna normalmente.. ai o player reloga e nasce na cadeia como se tivesse sido preso mas não foi..
segue todo o codigo de prisão tanto por policial como por admin
Código PHP: if(IsPlayerJailed(playerid) || IsPlayerInChainAdmin(playerid)) {
static commandsAllowed[][11] = { "/admins", "/ranking", "/afks", "/presoscmd" }, i;
for(i = 0; i < sizeof(commandsAllowed); i++) {
if(!isnull(cmdtext) && (strfind(cmdtext, commandsAllowed[i][0], true) != -1)) return true; }
SendClientMessage(playerid, COLOR_RED, TEXT_PLAYER_JAILED_CANT_USE_CMD); return false; } else if(IsPlayerPoliceTarget(playerid)) {
static commandsForbidden[][15] = { "/v", "/car", "/Aerolv", "/Aerols", "/Aerosf", "/Lv", "/Sf", "/Ls", "/Oficina", "/Mappack", "/Bigear", "/Drift2", "/Drift3", "/Drift4", "/Drift5", "/Drift6", "/Drift7", "/Drift8", "/Drift9", "/Drift10", "/DriftCity", "/Twin", "/Twin2", "/Chilliad", "/Stunt", "/Circuito", "/Chilliad", "/Parkour", "/Parkour2", "/Parkour3", "/Nrgparkour1", "/Nrgparkour2", "/Drop1", "/Drop2", "/Drag", "/Praia", "/Rdograu", "/ir", "/goto", "/Mundo", "/Jetpack", "/Skin", "/Veh", "/Lvap", "/Sfap", "/Lspa", "/Mp", "/Kill", "/Cg", "/larmas", "/Eagle", "/DM", "/Area51", "/Favela", "/Favela2", "/Favela3", "/Favelasf", "/Afk", "/Mundo", "/cr", "/irp", "/r", "/sp", "/s", "/arenapvp" }, i;
for(i = 0; i < sizeof(commandsForbidden); i++) {
if(!isnull(cmdtext) && (strfind(cmdtext, commandsForbidden[i][0], true) != -1)) {
SendClientMessage(playerid, COLOR_RED, TEXT_PLAYER_TARGET_CANT_USE_CMD); return false; } } return true; }
return true; }
ONPLAYERCONNECT
Código PHP: ResetPlayerChainAdmin(playerid); ResetPlayerJail(playerid);
if(playerConnectedNow[playerid]) {
playerConnectedNow[playerid] = false;
SetTimerEx("LoadPlayerChainAdmin", 300, false, "i", playerid);
GetPlayerPos(playerid, playerAFKCheck[playerid][E_PLAYER_AFK_POS][0], playerAFKCheck[playerid][E_PLAYER_AFK_POS][1], playerAFKCheck[playerid][E_PLAYER_AFK_POS][2]);
SetTimerEx("CheckPlayerAfk", CHECK_PLAYER_AFK_TIME, true, "i", playerid);
SetTimerEx("CheckPlayerWeaponHack", 700, false, "i", playerid); checkPlayerNameTimer[playerid] = SetTimerEx("CheckPlayerNameAltered", 1000, true, "i", playerid);
ContaPlayer[playerid][Score] = GetPlayerScore(playerid); if(MundoDM[playerid]) {
new weapons[13][2], i;
for (i = 0; i <= 12; i++) GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
ResetPlayerWeapons(playerid);
for(i = 0; i <= 12; i++) {
if(weapons[i][0] == 46 || weapons[i][0] == 43) GivePlayerWeapon(playerid, weapons[i][0], weapons[i][1]); } } }
SISTEMA DE CADEIA ADMIN
Código PHP: IsPlayerInChainAdmin(playerid) return playerChainAdmin[playerid][E_PLAYER_IN_CHAIN];
static PutPlayerInChainAdmin(playerid, time) { time = gettime() + time;//(60 * time);
playerChainAdmin[playerid][E_PLAYER_IN_CHAIN] = true; playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] = time;
SetPlayerWantedLevel(playerid, 0);
if(IsPlayerCuffed(playerid)) UnshacklePlayer(playerid, REASON_NONE);
if(IsPlayerArrasted(playerid)) ChangePlayerArrestedState(playerid, GetPlayerArrastedMe(playerid), REASON_ADMIN);
if(IsPlayerApproached(playerid)) ChangePlayerApproachedState(playerid, GetPlayerApproachedMe(playerid), REASON_ADMIN);
TogglePlayerControllable(playerid, true);
SetPlayerTeam(playerid, TEAM_JAIL); SetPlayerClass(playerid, PLAYER_CLASS_CIVIL);
SetPlayerVirtualWorld(playerid, 6666); SetPlayerInterior(playerid, 6); ResetPlayerWeapons(playerid); SetPlayerPos(playerid, prisionPosition[0], prisionPosition[1], prisionPosition[2]); SetPlayerFacingAngle(playerid, prisionPosition[3]); SetPlayerHealth(playerid, 99999); SetCameraBehindPlayer(playerid);
SetTimerEx("ShowPlayerPrisionTime", 900, false, "iii", playerid, time, 1);
}
static RemovePlayerFromChainAdmin(playerid) { SetPlayerClass(playerid, PLAYER_CLASS_CIVIL);
SetPlayerInterior(playerid, 0);
ResetPlayerChainAdmin(playerid);
SavePlayerChainAdmin(playerid);
SpawnPlayer(playerid);
SetPlayerHealth(playerid, 100.0);
GameTextForPlayer(playerid, "Livre", 1, 3); }
ResetPlayerChainAdmin(playerid) { playerChainAdmin[playerid][E_PLAYER_IN_CHAIN] = false; playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] = 0; }
call:LoadPlayerChainAdmin(playerid) { if(!IsPlayerConnected(playerid)) return;
if(dir_exists(DIRECTORY_CHAIN_ADMIN)) {
new file[9 + MAX_PLAYER_NAME + 1];
format(file, sizeof(file), PLAYER_FILE_CHAIN_ADMIN_CFG, Nome(playerid));
if(DOF2_FileExists(file)) {
playerChainAdmin[playerid][E_PLAYER_IN_CHAIN] = DOF2_GetBool(file, "inChainAdmin"); playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] = DOF2_GetInt(file, "chainTime");/* + gettime();*/
if(playerChainAdmin[playerid][E_PLAYER_IN_CHAIN] && playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] > 0) {
SendClientMessage(playerid, COLOR_YELLOW, TEXT_PLAYER_JAIL_INCOMPLETE); PutPlayerInChainAdmin(playerid, playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME]); } else {
ResetPlayerChainAdmin(playerid); DOF2_RemoveFile(file); DOF2_SaveFile(); } } } }
static SavePlayerChainAdmin(playerid) { new file[9 + MAX_PLAYER_NAME + 1];
format(file, sizeof(file), PLAYER_FILE_CHAIN_ADMIN_CFG, Nome(playerid));
if(!(playerChainAdmin[playerid][E_PLAYER_IN_CHAIN] && GetPlayerChainAdminTime(playerid) > 0)) {
if(DOF2_FileExists(file)) {
DOF2_RemoveFile(file); DOF2_SaveFile(); }
return; }
if(!DOF2_FileExists(file)) DOF2_CreateFile(file);
DOF2_SetBool(file, "inChainAdmin", playerChainAdmin[playerid][E_PLAYER_IN_CHAIN]); DOF2_SetInt(file, "chainTime", GetPlayerChainAdminTime(playerid)); DOF2_SaveFile(); }
static GetPlayerChainAdminTime(playerid) { new time = gettime(); return (playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] < time) ? (0) : (playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] - time); }
SISTEMA DE CADEIA POLICIAL
Código PHP: call:ShowPlayerPrisionTime(playerid, timeArrested, type)//0 - Jail | 1 - Chain Admin { if(!IsPlayerConnected(playerid)) return;
if(!type) { if(!playerJail[playerid][E_PLAYER_JAILED]) return; } else { if(!IsPlayerInChainAdmin(playerid)) return; }
if(gettime() >= timeArrested) { SetPlayerTeam(playerid, GetTeamOfPlayer(playerid));
SetPlayerInterior(playerid,0);
SetPlayerWorld(playerid, 0);
SpawnPlayer(playerid); ResetPlayerJail(playerid); ResetPlayerChainAdmin(playerid); SavePlayerJail(playerid);
GameTextForPlayer(playerid, "", 1, 3); return; } new time[16 + 12 + 1];
format(time, sizeof(time), TEXT_TIME_PRISION, TimeConvert(timeArrested)); GameTextForPlayer(playerid, time, 1300, 3);
SetTimerEx("ShowPlayerPrisionTime", 900, false, "iii", playerid, timeArrested, type); }
call:LoadPlayerJail(playerid) { if(!IsPlayerConnected(playerid)) return;
if(dir_exists(DIRECTORY_JAIL)) { new file[9 + MAX_PLAYER_NAME + 1];
format(file, sizeof(file), PLAYER_FILE_JAIL_CFG, GetNameOfPlayer(playerid));
if(DOF2_FileExists(file)) { playerJail[playerid][E_PLAYER_JAILED] = DOF2_GetBool(file, "jailed"); playerJail[playerid][E_PLAYER_JAIL_TIME] = DOF2_GetInt(file, "jailTime") + gettime();
if(playerJail[playerid][E_PLAYER_JAILED] && playerJail[playerid][E_PLAYER_JAIL_TIME] > 0) { SendClientMessage(playerid, COLOR_YELLOW, TEXT_PLAYER_JAIL_INCOMPLETE); PutPlayerInPrision(playerid, -1, -1); return; } else { ResetPlayerJail(playerid); DOF2_RemoveFile(file); DOF2_SaveFile(); } } } CheckPlayerState(playerid); }
O SISTEMA DE CADEIA POLICIAL ESTA EM INCLUDE E O SISTEMA DE PRISÃO ADM ESTA NO GAMEMODE.. MAS OS DOIS ESTÃO VERIFICANDO CERTO PELO QUE EU OLHEI.. ALGUEM PODE ME AJUDAR A DESCOBRIR PORQUE DESSE BUG INTERMITENTE.
|