Some bug with Dini get/save files - RP Factions
#1

Hey guys, so I was wondering why do I have the bug that whenever I start my server, Faction Strikes are set to 0 or being loaded from the Faction.ini file (each fac has its own file)

Whenever I strike this faction it works for 3 times untill disbandment, but after I /saveserver to save the files back to the .ini, it allowes me to strike it nonstop
It also sets all Strikes in .ini files to 52/3/4 depends on ammount of /facstrike after 3
FacStrike CMD:
Код:
new string[128], idx, faction[32];
   	if(!IsPlayerLoggedIn(playerid) || PlayerInfo[playerid][pAsshole] == 1) return SendClientMessage(playerid, COLOR_GREY, "You are not allowed to use command.");
	if(PlayerInfo[playerid][pAdmin] < 4 && !PlayerInfo[playerid][pFacMod]) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
	if(sscanf(params, "i", idx)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /facstrike [faction]");
	if(idx < 1 || idx > 13) return SendClientMessage(playerid, COLOR_GREY, "Factions are between 1 and 13.");
	FacInfo[idx][facStrikes]++;
	if(idx == 1) format(faction, sizeof(faction), "Los Santos Police Department");
	else if(idx == 2) format(faction, sizeof(faction), "Government");
	else if(idx == 3) format(faction, sizeof(faction), "The Society");
	else if(idx == 4) format(faction, sizeof(faction), "News Agency");
	else if(idx == 5) format(faction, sizeof(faction), "Los Santos Fire & Medic Department");
	else if(idx == 6) format(faction, sizeof(faction), "Federal Bureau of Investigation");
	else if(idx == 7) format(faction, sizeof(faction), "National Guards");
	else if(idx == 8) format(faction, sizeof(faction), "San Andreas Sheriff's Department");
	else if(idx == 9) format(faction, sizeof(faction), "Rebel's Towing");
	else if(idx == 10) format(faction, sizeof(faction), "Los Santos Taxi Co");
	else if(idx == 11) format(faction, sizeof(faction), "San Andreas Air Force");
	else if(idx == 12) format(faction, sizeof(faction), "The Syndicate");
	else if(idx == 13) format(faction, sizeof(faction), "Department of Corrections");
	format(string, sizeof(string), "AdmWarn: %s has given the %s faction a strike.", RPN(playerid), faction);
	SendAdminMessage(COLOR_DARKRED, 1, string);
	Log("logs/factions.log", string);
	new FacStrike = strval(FacInfo[idx][facStrikes]);
	if(FacStrike >= 3)
	{
		format(string, sizeof(string), "AdmWarn: %s has disbanded the %s faction. (3 Strikes)", RPN(playerid), faction);
		SendAdminMessage(COLOR_DARKRED, 1, string);
		Log("logs/factions.log", string);
		foreach(Player, i)
		{
		    if(IsPlayerLoggedIn(i))
		    {
		        if(PlayerInfo[i][pFac] == idx)
		        {
		            PlayerInfo[i][pFac] = 0;
		            PlayerInfo[i][pFacRank] = 0;
			        format(string, sizeof(string), " %s has disbanded the %s, you have been autokicked from the faction.", RPN(playerid), faction);
					SendClientMessage(i, COLOR_LIGHTBLUE, string);
		        }
		    }
		}
		format(FacInfo[idx][facLeader], MAX_PLAYER_NAME, "None");
		FacInfo[idx][facStrikes] = 0;
		FacInfo[idx][facMembers] = 0;
		format(FacInfo[idx][fRank0], 32, "");
		format(FacInfo[idx][fRank1], 32, "");
		format(FacInfo[idx][fRank2], 32, "");
		format(FacInfo[idx][fRank3], 32, "");
		format(FacInfo[idx][fRank4], 32, "");
		format(FacInfo[idx][fRank5], 32, "");
		format(FacInfo[idx][fRank6], 32, "");
		format(FacInfo[idx][fDiv1], 32, "");
		format(FacInfo[idx][fDiv2], 32, "");
		format(FacInfo[idx][fDiv3], 32, "");
		format(FacInfo[idx][fDiv4], 32, "");
	}
	return 1;
}
SaveServer CMD:
Код:
CMD:saveserver(playerid, params[])
{
   	if(!IsPlayerLoggedIn(playerid) || PlayerInfo[playerid][pAsshole] == 1) return SendClientMessage(playerid, COLOR_GREY, "You are not allowed to use command.");
	if(PlayerInfo[playerid][pAdmin] < 7) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
    foreach(Player, i)
	{
		if(IsPlayerLoggedIn(i))
		{
		    SaveChar(i);
		}
	}
	SaveFactions();
	SaveFamilies();
	SavePoints();
	SaveBiz();
	SaveHouses();
	SaveDoors();
	SaveGarages();
	SaveObj();
	SaveGates();
	SaveMapIcons();
	SaveArrestPoint();
	SaveArrestPoint2();
	SaveDrugs();
	SaveMOTDS();
	SaveServerStats();
    new string[128];
	format(string, sizeof(string), "AdmWarn: %s has saved all server files.", RPN(playerid));
	SendAdminMessage(COLOR_DARKRED, 1, string);
	return 1;
}
SaveFactions & LoadFactions (Only LSPD for example)
Код:
stock SaveFactions()
{
	// LSPD
	new file[128];
	format(file, sizeof(file), "factions/LSPD.ini");
	if(!dini_Exists(file)) dini_Create(file);
	dini_Set(file, "LSPDLeader", FacInfo[1][facLeader]);
	dini_Set(file, "LSPDMembers", FacInfo[1][facMembers]);
	dini_IntSet(file, "LSPDStrikes", FacInfo[1][facStrikes]);
	dini_Set(file, "Rank0", FacInfo[1][fRank0]);
	dini_Set(file, "Rank1", FacInfo[1][fRank1]);
	dini_Set(file, "Rank2", FacInfo[1][fRank2]);
	dini_Set(file, "Rank3", FacInfo[1][fRank3]);
	dini_Set(file, "Rank4", FacInfo[1][fRank4]);
	dini_Set(file, "Rank5", FacInfo[1][fRank5]);
	dini_Set(file, "Rank6", FacInfo[1][fRank6]);
	dini_Set(file, "Rank7", FacInfo[1][fRank7]);
	dini_Set(file, "Rank8", FacInfo[1][fRank8]);
	dini_Set(file, "Rank9", FacInfo[1][fRank9]);
	dini_Set(file, "Rank10", FacInfo[1][fRank10]);
	dini_Set(file, "Pay0", FacInfo[1][fPay0]);
	dini_Set(file, "Pay1", FacInfo[1][fPay1]);
	dini_Set(file, "Pay2", FacInfo[1][fPay2]);
	dini_Set(file, "Pay3", FacInfo[1][fPay3]);
	dini_Set(file, "Pay4", FacInfo[1][fPay4]);
	dini_Set(file, "Pay5", FacInfo[1][fPay5]);
	dini_Set(file, "Pay6", FacInfo[1][fPay6]);
	dini_Set(file, "Div1", FacInfo[1][fDiv1]);
	dini_Set(file, "Div2", FacInfo[1][fDiv2]);
	dini_Set(file, "Div3", FacInfo[1][fDiv3]);
	dini_Set(file, "Div4", FacInfo[1][fDiv4]);
	print("LSPD files saved successfully.");
Код:
stock LoadFactions()
{
	// LSPD
    new file[64];
	format(file, sizeof(file), "factions/LSPD.ini");
	format(FacInfo[1][facLeader], MAX_PLAYER_NAME, "%s", dini_Get(file, "LSPDLeader"));
	format(FacInfo[1][facMembers], 8, "%s", dini_Get(file, "LSPDMembers"));
	format(FacInfo[1][facStrikes], 128, "%d", dini_Get(file, "LSPDStrikes"));
	format(FacInfo[1][fRank0], 32, "%s", dini_Get(file, "Rank0"));
	format(FacInfo[1][fRank1], 32, "%s", dini_Get(file, "Rank1"));
	format(FacInfo[1][fRank2], 32, "%s", dini_Get(file, "Rank2"));
	format(FacInfo[1][fRank3], 32, "%s", dini_Get(file, "Rank3"));
	format(FacInfo[1][fRank4], 32, "%s", dini_Get(file, "Rank4"));
	format(FacInfo[1][fRank5], 32, "%s", dini_Get(file, "Rank5"));
	format(FacInfo[1][fRank6], 32, "%s", dini_Get(file, "Rank6"));
	format(FacInfo[1][fRank7], 32, "%s", dini_Get(file, "Rank7"));
	format(FacInfo[1][fRank8], 32, "%s", dini_Get(file, "Rank8"));
	format(FacInfo[1][fRank9], 32, "%s", dini_Get(file, "Rank9"));
	format(FacInfo[1][fRank10], 32, "%s", dini_Get(file, "Rank10"));
	format(FacInfo[1][fPay0], 32, "%s", dini_Get(file, "Pay0"));
	format(FacInfo[1][fPay1], 32, "%s", dini_Get(file, "Pay1"));
	format(FacInfo[1][fPay2], 32, "%s", dini_Get(file, "Pay2"));
	format(FacInfo[1][fPay3], 32, "%s", dini_Get(file, "Pay3"));
	format(FacInfo[1][fPay4], 32, "%s", dini_Get(file, "Pay4"));
	format(FacInfo[1][fPay5], 32, "%s", dini_Get(file, "Pay5"));
	format(FacInfo[1][fPay6], 32, "%s", dini_Get(file, "Pay6"));
	format(FacInfo[1][fDiv1], 32, "%s", dini_Get(file, "Div1"));
	format(FacInfo[1][fDiv2], 32, "%s", dini_Get(file, "Div2"));
	format(FacInfo[1][fDiv3], 32, "%s", dini_Get(file, "Div3"));
	format(FacInfo[1][fDiv4], 32, "%s", dini_Get(file, "Div4"));
	print("LSPD files loaded successfully.");
Reply
#2

Anyone ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)