11.07.2016, 20:46
I have a faction system but it won't save in mysql. You need to create it everytime you log in, and it members needs to be invited again. I want to make it to be saved.
This is my faction script.
How can i Add to mysql so a faction, it members and it leader would be saved ? Thank youu
I will create a new table named FACTIONS and columns will be named " Leader" , "FactionID", "Members (playername) right?
(you can explain, and i will ask more help if I can't make it)
This is my faction script.
Code:
#define MAX_factionS 750 new factionCount; enum factionstats { factionOwner[24], factionMembers, factionName[16], factionID } new factions[MAX_factionS][factionstats]; CMD:makefaction(playerid,params[]) { new factionnamecmd[16]; if(sscanf(params, "s[16]", factionnamecmd)) return SendClientMessage(playerid,-1,"*"COL_RED" /makefaction [faction name] [16 Characters]"); if(gettime() - 480 < pInfo[playerid][pfactionSpam]) return SendClientMessage(playerid,-1,"*"COL_RED" Wait eight minutes to create an faction again!"); { if(pInfo[playerid][Leader] == 1) { if(pInfo[playerid][IsPlayerInfaction] == 0) { if(strlen(params) > 16) { SendClientMessage(playerid,-1,"*"COL_RED" faction name is to long (MAX CHARACTERS 16)"); } else { DayZSA_Createfaction(playerid,factionnamecmd,PlayerName(playerid)); pInfo[playerid][pfactionSpam] = gettime(); } } else return SendClientMessage(playerid,-1,"*"COL_RED" You are already in a faction/made one!"); } else return SendClientMessage(playerid,-1,"*"COL_RED" You need approve from an Admin!"); } return 1; } CMD:invitefaction(playerid,params[]) { new targetid; if(sscanf(params, "u", targetid)) return SendClientMessage(playerid,-1,"*"COL_RED" /invitefaction [playerid]"); if(pInfo[targetid][IsPlayerInfaction] == 0) { if(pInfo[playerid][IsPlayerInfaction] == 1) { if(pInfo[playerid][IsPlayerfactionOwner] == 1) { new str[256],str2[128]; format(str,sizeof(str),"*"COL_YELLOW" %s(%i) has invited you to faction %s(%i) /acceptfaction, to join the faction to deny /denyfaction!",PlayerName(playerid),playerid,GetPlayerfactionName(playerid),pInfo[playerid][IsPlayerInfactionID]); SendClientMessage(targetid,-1,str); format(str2,sizeof(str2),"*"COL_YELLOW" You have sent an invite to %s(%i) to join your faction!",PlayerName(targetid),targetid); SendClientMessage(playerid,-1,str2); pInfo[targetid][IsPlayerInvitedfactionID] = pInfo[playerid][IsPlayerInfactionID]; pInfo[targetid][IsPlayerInvited] = 1; } else return SendClientMessage(playerid,-1,"*"COL_RED" You must be the faction owner to use this command!"); } else return SendClientMessage(playerid,-1,"*"COL_RED" You must be in a faction to use this command!"); } else return SendClientMessage(playerid,-1,"*"COL_RED" The player you are trying to invite is already in a faction."); return 1; } CMD:acceptfaction(playerid) { if(pInfo[playerid][IsPlayerInvited] == 1) { new str[230]; pInfo[playerid][IsPlayerInvited] = 0; pInfo[playerid][IsPlayerInfaction] = 1; pInfo[playerid][IsPlayerInfactionID] = pInfo[playerid][IsPlayerInvitedfactionID]; pInfo[playerid][IsPlayerInvitedfactionID] = 0; factions[pInfo[playerid][IsPlayerInfactionID]][factionMembers]++; format(str,sizeof(str),"*"COL_YELLOW" Player %s(%i) has joined the faction %s(%i)",PlayerName(playerid), playerid, factions[pInfo[playerid][IsPlayerInfactionID]][factionName], pInfo[playerid][IsPlayerInfactionID]); SendMessageToAllfactions(factions[pInfo[playerid][IsPlayerInfactionID]][factionID], str, -1); } else return SendClientMessage(playerid,-1,"*"COL_RED" You have not been invited to join any factions!"); return 1; } CMD:denyfaction(playerid) { if(pInfo[playerid][IsPlayerInvited] == 1) { pInfo[playerid][IsPlayerInvited] = 0; pInfo[playerid][IsPlayerInfaction] = -1; pInfo[playerid][IsPlayerInvitedfactionID] = 0; SendClientMessage(playerid,-1,"*"COL_YELLOW" You denied to join the faction!"); } else return SendClientMessage(playerid,-1,"*"COL_RED" You have not been invited to join any factions!"); return 1; } CMD:kickfaction(playerid,params[]) { new targetid; if(sscanf(params, "u", targetid)) return SendClientMessage(playerid,-1,"*"COL_RED" /kickfaction [playerid]"); if(pInfo[playerid][IsPlayerInfaction] == 1) { if(pInfo[playerid][IsPlayerfactionOwner] == 1) { if(pInfo[targetid][IsPlayerInfactionID] == pInfo[playerid][IsPlayerInfactionID]) { new str[180],str2[128]; format(str,sizeof(str),"*"COL_RED" You were kicked from faction %s(%i)",GetPlayerfactionName(targetid),pInfo[targetid][IsPlayerInfactionID]); SendClientMessage(targetid,-1,str); format(str2,sizeof(str2),"*"COL_RED" You have kicked %s(%i) from your faction!",PlayerName(targetid),targetid); SendClientMessage(playerid,-1,str2); factions[pInfo[targetid][IsPlayerInfactionID]][factionMembers]--; pInfo[targetid][IsPlayerInfaction] = 0; pInfo[targetid][IsPlayerInfactionID] = 0; } else return SendClientMessage(playerid,-1,"*"COL_RED" That player is not in your faction!"); } else return SendClientMessage(playerid,-1,"*"COL_RED" You must be the faction owner to use this command!"); } else return SendClientMessage(playerid,-1,"*"COL_RED" You must be in a faction to use this command!"); return 1; } CMD:factionfind(playerid,params[]) { new targetid; if(sscanf(params, "u", targetid)) return SendClientMessage(playerid,-1,"*"COL_RED" /factionfind [playerid]"); if(pInfo[playerid][IsPlayerInfaction] == 1) { if(pInfo[targetid][IsPlayerInfactionID] == pInfo[playerid][IsPlayerInfactionID]) { new str[250]; GetPlayer2DZone(targetid, zonegps, MAX_ZONE_NAME); format(stringgps,sizeof(stringgps),"%s", zonegps); format(str,sizeof(str),"*"COL_YELLOW" faction member %s(%i) is at %s",PlayerName(targetid),targetid,stringgps); SendClientMessage(playerid,-1,str); } else return SendClientMessage(playerid,-1,"*"COL_RED" The player you are trying to find isn't in your faction!"); } else return SendClientMessage(playerid,-1,"*"COL_RED" You must be in a faction to use this command!"); return 1; } CMD:leavefaction(playerid) { if(pInfo[playerid][IsPlayerInfaction] == 1) { new str[180]; format(str,sizeof(str),"*"COL_YELLOW" %s(%i) has left the faction!",PlayerName(playerid),playerid); SendMessageToAllfactions(factions[pInfo[playerid][IsPlayerInfactionID]][factionID], str, -1); factions[pInfo[playerid][IsPlayerInfactionID]][factionMembers]--; pInfo[playerid][IsPlayerInfaction] = 0; pInfo[playerid][IsPlayerInfactionID] = 0; } else return SendClientMessage(playerid,-1,"*"COL_RED" You must be in a faction to use this command!"); return 1; } CMD:destroyfaction(playerid,params[]) { new reason[105]; if(sscanf(params, "s[105]", reason)) return SendClientMessage(playerid,-1,"*"COL_RED" /destroyfaction [reason]"); if(pInfo[playerid][IsPlayerInfaction] == 1) { if(pInfo[playerid][IsPlayerfactionOwner] == 1) { new str[24],gname[16],msg[280]; format(str,sizeof(str),"Destroyed"); format(gname,sizeof(gname),"Destroyed"); format(msg,sizeof(msg),"*"COL_YELLOW" %s(%i) has disbanded the faction %s [Reason: %s]",PlayerName(playerid),playerid, GetPlayerfactionName(playerid), reason); SendClientMessageToAll(-1,msg); factions[pInfo[playerid][IsPlayerInfactionID]][factionOwner] = str; factions[pInfo[playerid][IsPlayerInfactionID]][factionName] = gname; factions[pInfo[playerid][IsPlayerInfactionID]][factionMembers] = 0; foreach(Player,i) { if(pInfo[i][IsPlayerInfactionID] == pInfo[playerid][IsPlayerInfactionID]) { pInfo[i][IsPlayerInfaction] = 0; pInfo[i][IsPlayerInfactionID] = 0; } } pInfo[playerid][IsPlayerInfaction] = 0; pInfo[playerid][IsPlayerfactionOwner] = 0; pInfo[playerid][IsPlayerInfactionID] = 0; } else return SendClientMessage(playerid,-1,"*"COL_RED" That player is not in your faction!"); } else return SendClientMessage(playerid,-1,"*"COL_RED" You must be the faction owner to use this command!"); return 1; } CMD:f(playerid,params[]) { new adminstring[280]; if(pInfo[playerid][IsPlayerInfaction] == 1) { if(!strlen(params)) { SendClientMessage(playerid, -1, "*"COL_GREEN" /f [message]"); return 1; } format(adminstring, sizeof(adminstring), ""COL_LIGHTBLUE"(( [ Faction Chat] %s(%d) "COL_LIGHTBLUE": %s ))",PlayerName(playerid), playerid, params); SendMessageToAllfactions(factions[pInfo[playerid][IsPlayerInfactionID]][factionID], adminstring, -1); } else { SendClientMessage(playerid,-1,"*"COL_RED" You need to be in a faction to use this command!"); } return 1; } stock ResetVars(playerid) pInfo[playerid][IsPlayerInfaction] = 0; pInfo[playerid][IsPlayerInfactionID] = 0; stock DisconnectVars(playerid) { SaveInventory(playerid); if(IsPlayerAttachedObjectSlotUsed(playerid, 1)) RemovePlayerAttachedObject(playerid, 0); if(pInfo[playerid][IsPlayerfactionOwner] == 1) { new str[24],gname[16]; format(str,sizeof(str),"Destroyed"); format(gname,sizeof(gname),"Destroyed"); factions[pInfo[playerid][IsPlayerInfactionID]][factionID] = 0; factions[pInfo[playerid][IsPlayerInfactionID]][factionOwner] = str; factions[pInfo[playerid][IsPlayerInfactionID]][factionName] = gname; factions[pInfo[playerid][IsPlayerInfactionID]][factionMembers] = 0; foreach(Player,i) { if(pInfo[i][IsPlayerInfactionID] == pInfo[playerid][IsPlayerInfactionID]) { pInfo[i][IsPlayerInfaction] = 0; pInfo[i][IsPlayerInfactionID] = 0; } } pInfo[playerid][IsPlayerInfaction] = 0; pInfo[playerid][IsPlayerfactionOwner] = 0; pInfo[playerid][IsPlayerInfactionID] = 0; } return 1; }
I will create a new table named FACTIONS and columns will be named " Leader" , "FactionID", "Members (playername) right?
(you can explain, and i will ask more help if I can't make it)