Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Mione Auchindoun (c) 2014
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #define COLOR_GREY 0xB9C9BFFF
- #define COLOR_GREEN 0x338A45FF
- #define COLOR_BLUE 0x4169BFC8
- new Group[MAX_PLAYERS];
- new GroupInvited[MAX_PLAYERS];
- new GroupLeader[MAX_PLAYERS];
- public OnFilterScriptInit();
- CMD:grouphelp(playerid, params[])
- {
- SendClientMessage(playerid, COLOR_GREEN, "Available group commands");
- if(Group[playerid] == 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} /groupcreate, /grouprequest ]}");
- return 1;
- }
- if(Group[playerid] != 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} /groupleave, /g(roup)c(hat) ]}");
- }
- if(GroupLeader[playerid] == 1)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} /groupinvite, /groupuninvite, /groupdisband ]}");
- return 1;
- }
- return 1;
- }
- CMD:groupcreate(playerid, params[])
- {
- new randnum = 15 + random(500000), string[128], name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- if(Group[playerid] != 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You are already in a group, /groupleave first. ]}");
- return 1;
- }
- else if(Group[playerid] == 0)
- {
- Group[playerid] = randnum;
- GroupLeader[playerid] = 1;
- format(string, sizeof(string), "{[ {1DA357}[!]{B9C9BF} You have created group {FF8000}ID %d{B9C9BF}. You are now the leader of this group. ]}", Group[playerid]);
- SendClientMessage(playerid, COLOR_GREY, string);
- new grpnumb = Group[playerid]; // make logs about who created groups
- printf("[!!] [GroupMsg]: [%d] has just created group ID [%d]", playerid, name, grpnumb);
- return 1;
- }
- return 1;
- }
- CMD:groupinvite(playerid, params[])
- {
- new targetid, string[128], name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} /groupinvite [id] ]}");
- if(Group[playerid] == 0 || GroupLeader[playerid] == 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You are not in a group, or you are not the leader. ]}");
- return 1;
- }
- else if(Group[playerid] > 0 || GroupLeader[playerid] == 1)
- {
- if(Group[targetid] != 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} The individual you tried to invite is already in a group.");
- return 1;
- }
- if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} The player you have tried to invite is currently not connected to the server. ]}");
- new grpnumb = Group[playerid];
- GroupInvited[targetid] = grpnumb;
- format(string, sizeof(string), "{[ {1DA357}[!]{B9C9BF} You have been invited to join group {FF8000}ID %d{B9C9BF} by leader {FF8000}[%d] %s{B9C9BF}. ]}", Group[playerid], playerid, name);
- SendClientMessage(targetid, COLOR_GREY, string);
- SendClientMessage(targetid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} To answer your invitation, please use {FFFF09}/grouprequest [accept/decline]{B9C9BF}. ]}");
- format(string, sizeof(string), "{[ {1DA357}[!]{B9C9BF} You have invited {FF8000}[%d] %s ID{B9C9BF} to join your group. ]}", targetid, name);
- SendClientMessage(playerid, COLOR_GREY, string);
- }
- return 1;
- }
- CMD:groupuninvite(playerid, params[])
- {
- new targetid, string[128], name[MAX_PLAYER_NAME+1], name2[MAX_PLAYER_NAME+1];
- new grpnumb = Group[playerid];
- GetPlayerName(playerid, name, sizeof(name));
- GetPlayerName(targetid, name2, sizeof(name2));
- if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} /groupuninvite [id] ]}");
- if(Group[playerid] == 0 || GroupLeader[playerid] == 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You are not in a group, or you are not the leader. ]}");
- return 1;
- }
- else if(Group[playerid] > 0 || GroupLeader[playerid] == 1)
- {
- if(Group[targetid] == grpnumb)
- {
- if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} The player you have tried to invite is currently not connected to the server. ]}");
- format(string, sizeof(string), "{[ {1DA357}[!]{B9C9BF} You have been kicked from group {FF8000}ID %d{B9C9BF} by leader {FF8000}[%d] %s{B9C9BF}. ]}", Group[playerid], playerid, name);
- SendClientMessage(targetid, COLOR_GREY, string);
- Group[targetid] = 0, GroupLeader[targetid] = 0, GroupInvited[targetid] = 0;
- printf("[!!] [GroupMsg]: [%d] %s has just left group ID [%d] [KICKED]", targetid, name2, grpnumb);
- }
- else SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} The individual you tried to uninvite is not in your group.");
- }
- return 1;
- }
- CMD:grouprequest(playerid, params[])
- {
- new string[128], name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- if(isnull(params))
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} /grouprequest [accept | decline] ]}");
- return 1;
- }
- if(!strcmp(params, "accept", true))
- {
- if(GroupInvited[playerid] == 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You do not have a pending invitation to join an active group. ]}");
- return 1;
- }
- else if(GroupInvited[playerid] > 0)
- {
- format(string, sizeof(string), "{[ {1DA357}[!]{B9C9BF} You have accepted the pending invitation and you have joined group ID %d ]}", Group[playerid]);
- SendClientMessage(playerid, COLOR_GREY, string);
- new grpnumb = GroupInvited[playerid];
- Group[playerid] = grpnumb;
- GroupInvited[playerid] = 0;
- printf("[!!] [GroupMsg]: [%d] %s has just joined group ID [%d]", playerid, name, grpnumb);
- return 1;
- }
- }
- if(!strcmp(params, "decline", true))
- {
- if(GroupInvited[playerid] == 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You do not have a pending invitation to join an active group. ]}");
- return 1;
- }
- else if(GroupInvited[playerid] > 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You have declined the pending group invitation. ]}");
- GroupInvited[playerid] = 0, Group[playerid] = 0; // set both their group and invited to 0
- return 1;
- }
- }
- return 1;
- }
- CMD:groupleave(playerid, params[])
- {
- if(Group[playerid] == 0)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You are currently not in a group. ]}");
- return 1;
- }
- else if(Group[playerid] != 0)
- {
- if(GroupLeader[playerid] == 1)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You are currently the group leader. You need to use /gdisband first. ]}");
- return 1;
- }
- GroupInvited[playerid] = 0, Group[playerid] = 0, GroupLeader[playerid] = 0; // set both their group, invited, and groupleader to 0
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You have left your current group. ]}");
- return 1;
- }
- return 1;
- }
- CMD:groupdisband(playerid, params[])
- {
- new name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- if(GroupLeader[playerid] == 1)
- {
- new grpnumb = Group[playerid]; // Get group from PLAYERID, aka sender of command
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(Group[i] == grpnumb)
- {
- SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} The leader has disbanded the group. You have been automaticly kicked. ]}");
- Group[i] = 0, GroupLeader[i] = 0, GroupInvited[playerid] = 0;
- printf("[!!] [GroupMsg]: [%d] %s has just disbanded group ID [%d]", playerid, name, grpnumb);
- return 1;
- }
- }
- }
- }
- else SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You're not the leader of an active group. ]}");
- return 1;
- }
- CMD:groupchat(playerid, params[])
- {
- new string[128], name[MAX_PLAYER_NAME+1];
- new grpnumb = Group[playerid]; // Get group from PLAYERID, aka sender of command
- GetPlayerName(playerid, name, sizeof(name));
- if(Group[playerid] == 0) SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} You are not in a group! ]}");
- if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, COLOR_GREY, "{[ {1DA357}[!]{B9C9BF} /g(roup)c(hat) [message] ]}");
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(Group[i] == grpnumb)
- {
- format(string, sizeof(string), "{[ [%d] %s: %s ]}", playerid, name, params);
- SendClientMessage(i, COLOR_BLUE, string);
- printf("[GroupMsg] GROUP %d CHAT: [%d %s] %s", grpnumb, playerid, name, params);
- return 1;
- }
- }
- }
- return 1;
- }
- CMD:gc(playerid, params[]) return cmd_groupchat(playerid, params);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement