COMMAND:groupcreate(playerid, params[]) { if(group[playerid][gid] != -1) return SendClientMessage(playerid, 0xFF0000, "Leave your group with {FFFFFF}/groupleave{FF0000} before creating a new one!"); if(strlen(params) > 49 || strlen(params) < 3) return SendClientMessage(playerid, 0xFF0000, "Usage: {FFFFFF}/groupcreate{FF0000} (Group name 3-50 characters)!"); if(IsGroupTaken(params)) return SendClientMessage(playerid, 0xFF0000, "Group name is already in use!"); CreateGroup(params, playerid); return 1; }
stock CreateGroup(grpname[], owner) { new slotid = FindNextSlot(); groupinfo[slotid][leader] = owner; format(groupinfo[slotid][grname], 75, "%s", grpname); groupinfo[slotid][active] = 1; group[owner][gid] = slotid; group[owner][order] = 1; new string[120]; format(string, sizeof(string), "You have created the group %s(ID:%d)", grpname, slotid); SendClientMessage(owner, 0xFFCC66, string); return slotid; }
#define PATH "/Group/%d.ini" //Path where your Group will be saved
stock CreateGroup(grpname[], owner)
{
new slotid = FindNextSlot();
groupinfo[slotid][leader] = owner;
format(groupinfo[slotid][grname], 75, "%s", grpname);
groupinfo[slotid][active] = 1;
group[owner][gid] = slotid;
group[owner][order] = 1;
new string[120];
format(string, sizeof(string), "You have created the group %s(ID:%d)", grpname, slotid);
SendClientMessage(owner, 0xFFCC66, string);
new file[40];
format(file, sizeof(file), PATH, id);
new INI:File = INI_Open(file); //Open the file
INI_SetTag(File, "data"); //Write tag
INI_WriteInt(File, "GroupID", group[owner][gid]); //Write data
INI_WriteString(File, "GroupName", groupinfo[slotid][grname]); //Write data
//Write another data, you know what to do (Func: INI_WriteString, INI_WriteInt, INI_WriteFloat)
INI_Close(File); //Close current opened file after you done writing the data
return slotid;
}
forward LoadGroup_data(playerid, name[], value[]);
public LoadGroup_data(playerid, name[], valie[])
{
INI_Int("GroupID", GChatInfo[playerid][gid]); //Store the data to a variable
//Store another data (Func: INI_Int, INI_String, INI_Float)
return 1;
}
forward SaveGroup(playerid);
public SaveGroup(playerid)
{
new file[40];
format(file, sizeof(file), PATH, id);
new INI:File = INI_Open(file); //Open the file
INI_SetTag(File, "data"); //Write tag
INI_WriteInt(File, "GroupID", GChatInfo[playerid][Exist]); //Write data
//Write another data, you know what to do (Func: INI_WriteString, INI_WriteInt, INI_WriteFloat)
INI_Close(File); //Close current opened file after you done writing data
return 1;
}
public OnPlayerConnect(playerid)
{
new string[40];
format(string, sizeof(string), PATH, i);
INI_ParseFile(string, "LoadGC_%s", .bExtra = true, .extra = playerid); //Call function LoadGroup_data and load playerid's Group
return 1;
}
public OnPlayerDisconnect(playerid)
{
SaveGroup(playerid);
return 1;
}
Use Y_INI. Its much faster than dini
pawn Код:
|