04.03.2016, 17:36
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:
SaveServer CMD:
SaveFactions & LoadFactions (Only LSPD for example)
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; }
Код:
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; }
Код:
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.");