How to save data in file.
#1

Код:
	new sendername[MAX_PLAYER_NAME];
	new giveplayer[MAX_PLAYER_NAME];
	new giveplayerid;
  //------------------- /gang

	if(strcmp(cmd, "/gang", true) == 0) {
	  new gangcmd, gangnum;
		tmp = strtok(cmdtext, idx);

		giveplayerid = strval(tmp);

		if(strcmp(tmp, "create", true)==0)
		  gangcmd = 1;
		else if(strcmp(tmp, "invite", true)==0)
		  gangcmd = 2;
		else if(strcmp(tmp, "join", true)==0)
		  gangcmd = 3;
		else if(strcmp(tmp, "leave", true)==0)
		  gangcmd = 4;

		tmp = strtok(cmdtext, idx);
		if(gangcmd < 3 && !strlen(tmp)) {
		  if(gangcmd==0)
				SendClientMessage(playerid, 0x83BFBFFF, "Type /ganghelp for gangcommands.");
			else if(gangcmd==1)
				SendClientMessage(playerid, 0x83BFBFFF, "Type: /gang create [Name]");
			else if(gangcmd==2)
				SendClientMessage(playerid, 0x83BFBFFF, "Type: /gang invite [PlayerID]");
			return 1;
		}
		

		//Create Gang//
		if(gangcmd==1) {
		  if(playerGang[playerid]>0) {
				SendClientMessage(playerid, 0x83BFBFFF, "You are already in a gang!");
				return 1;
		  }

			for(new i = 1; i < MAX_GANGS; i++) {
				if(gangInfo[i][0]==0) {
				  //name gang
					format(gangNames[i], MAX_GANG_NAME, "%s", tmp);
					//Gang exists
					gangInfo[i][0]=1;
					//There is one member
					gangInfo[i][1]=1;
					//Gang color is player's color
					gangInfo[i][2]=playerColors[playerid];

					//Player is the first gang member
					gangMembers[i][0] = playerid;
					format(string, sizeof(string),"You have created the gang '%s' (id: %d)", gangNames[i], i);
					SendClientMessage(playerid, 0x83BFBFFF, string);
					playerGang[playerid]=i;
					//--------SAVEGANG----------------------------------------
					new player[MAX_PLAYERS];
					GetPlayerName(playerid,player,sizeof(player));
					new File:GangFile;
	      	format(string, sizeof(string), "%s_Gang", player);
		      GangFile = fopen(string, io_append);
		      new var[32];
          format(var, 32, "Gang:=%s\n",gangNames[i]);fwrite(GangFile, var);
          
		      fclose(GangFile);
					//-------SAVEGANG-------------------------------------------
		      return 1;
				}
			}

			return 1;

		//Join Gang//
		} else if (gangcmd==3) {
			gangnum = gangInvite[playerid];

		  if(playerGang[playerid]>0) {
				SendClientMessage(playerid, 0x83BFBFFF, "You are already in a gang.");
				return 1;
		  }
			if(gangInvite[playerid]==0) {
				SendClientMessage(playerid, 0x83BFBFFF, "You are not invite in a gang.");
				return 1;
			}
			if(gangInfo[gangnum][0]==0) {
				SendClientMessage(playerid, 0x83BFBFFF, "This gang doesnt exist.");
				return 1;
			}

			if(gangInfo[gangnum][1] < MAX_GANG_MEMBERS) {
			  new i = gangInfo[gangnum][1];

				gangInvite[playerid]=0;

				gangMembers[gangnum][i] = playerid;

			  GetPlayerName(playerid, sendername, MAX_PLAYER_NAME);
				for(new j = 0; j < gangInfo[gangnum][1]; j++) {
					format(string, sizeof(string),"%s joined your gang.", sendername);
					SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
				}

				gangInfo[gangnum][1]++;
				playerGang[playerid] = gangnum;

				SetPlayerColor(playerid,gangInfo[gangnum][2]);

				format(string, sizeof(string),"You join the gang '%s'(id: %d)", gangNames[gangnum], gangnum);
				SendClientMessage(playerid, 0x83BFBFFF, string);
				return 1;
			}

			SendClientMessage(playerid, 0x83BFBFFF, "No members searched");
			return 1;

		//Invite to Gang//
		} else if (gangcmd==2) {
			giveplayerid = strval(tmp);

			if(playerGang[playerid]==0) {
				SendClientMessage(playerid, 0x83BFBFFF, "You are not in a gang.");
				return 1;
			}
//			if(gangMembers[playerGang[playerid]][0]!=playerid) {
//				SendClientMessage(playerid, COLOR_RED, "You need to be the gang leader to send an invite.");
//				return 1;
//			}

			if(IsPlayerConnected(giveplayerid)) {
				GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				GetPlayerName(playerid, sendername, sizeof(sendername));

				format(string, sizeof(string),"You invite %s in your gang.", giveplayer);
				SendClientMessage(playerid, 0x83BFBFFF, string);
				format(string, sizeof(string),"You get a gang invite from %s in his gang '%s' (id: %d)", sendername, gangNames[playerGang[playerid]],playerGang[playerid]);
				SendClientMessage(giveplayerid, 0x83BFBFFF, string);

				gangInvite[giveplayerid]=playerGang[playerid];

			} else
				SendClientMessage(playerid, 0x83BFBFFF, "That user doesn't exist!");

		//Leave Gang//
		} else if (gangcmd==4) {
		  PlayerLeaveGang(playerid);
		}

		return 1;
	}

	//------------------- /ganginfo

	if(strcmp(cmd, "/ganginfo", true) == 0) {
	  new gangnum;
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp) && playerGang[playerid]==0) {
			SendClientMessage(playerid, 0x83BFBFFF, "Type: /ganginfo [GangID]");
			return 1;
		} else if (!strlen(tmp))
			gangnum = playerGang[playerid];
		else
			gangnum = strval(tmp);

		if(gangInfo[gangnum][0]==0) {
			SendClientMessage(playerid, 0x83BFBFFF, "There's no such GANG ID!");
			return 1;
		}

		format(string, sizeof(string),"'%s' Gang members (id: %d)", gangNames[gangnum], gangnum);
		SendClientMessage(playerid, 0x83BFBFFF, string);

		for(new i = 0; i < gangInfo[gangnum][1]; i++) {
			GetPlayerName(gangMembers[gangnum][i], giveplayer, sizeof(giveplayer));
			format(string, sizeof(string),"%s (%d)", giveplayer, gangMembers[gangnum][i]);
			SendClientMessage(playerid, 0x83BFBFFF, string);
		}

		return 1;
	}

	//------------------- /gangs

	if(strcmp(cmd, "/gangs", true) == 0)
	{
		new x;

		SendClientMessage(playerid, 0x83BFBFFF, "Exist gangs:");
	  for(new i=0; i < MAX_GANGS; i++) {
			if(gangInfo[i][0]==1) {
				format(string, sizeof(string), "%s%s(%d) - %d members", string,gangNames[i],i,gangInfo[i][1]);

				x++;
				if(x > 2) {
				  SendClientMessage(playerid, 0x83BFBFFF, string);
				  x = 0;
					format(string, sizeof(string), "");
				} else {
					format(string, sizeof(string), "%s, ", string);
				}
			}
		}

		if(x <= 2 && x > 0) {
			string[strlen(string)-2] = '.';
		  SendClientMessage(playerid, 0x83BFBFFF, string);
		}

		return 1;
		}
How can I save gang and load gang when they login because when I create gang when I logout my gang was loose.
Reply
#2

https://sampwiki.blast.hk/wiki/File_Functions

Good luck
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)