23.06.2014, 04:10
I want a faction system /createfaction when we do this it says you must have atleast 20m to start your faction. /deletefaction /finvite /fmute /fkick pls i need this this type of fs is not there
#include <a_samp>
#include <sscanf2>
#include <zcmd>
enum PlayerInfo
{
FactionOwner[20],
FactionMember[20],
FactionRank[15],
bool: FactionOwned,
bool: FactionMemb,
}
new pInfo[MAX_PLAYERS][PlayerInfo];
CMD:createfaction(playerid, params[])
{
new fname[20];
if(sscanf(params, "s[20]", fname)) return SendClientMessage(playerid, -1, "/createfaction [name]");
if(strlen(fname) > 20 || strlen(fname) < 1) return SendClientMessage(playerid, -1, "You can't have less than 1 letter, or more than 20!");
if(GetPlayerMoney(playerid) < 20000000) return SendClientMessage(playerid, -1, "You need atleast $20,000,000 in order to make a faction!");
CreateFaction(playerid, fname);
pInfo[playerid][FactionOwned] = true;
pInfo[playerid][FactionOwner] = fname;
pInfo[playerid][FactionMember] = fname;
SendClientMessage(playerid, -1, "You have purchased a faction!");
return true;
}
CMD:deletefaction(playerid, params[])
{
new path[40];
if(!pInfo[playerid][FactionOwned]) return SendClientMessage(playerid, -1, "You don't own a faction!");
format(path, sizeof(path), "Factions/%s.ini", pInfo[playerid][FactionOwner]);
fremove(path);
pInfo[playerid][FactionOwner] = EOS;
pInfo[playerid][FactionRank] = EOS;
pInfo[playerid][FactionOwned] = false;
SendClientMessage(playerid, -1, "You have deleted your faction!");
return true;
}
CMD:finvite(playerid, params[])
{
new target, string[50];
if(!pInfo[playerid][FactionOwned]) return SendClientMessage(playerid, -1, "You don't own a faction!");
if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "/finvite [id/name]");
format(string, sizeof(string), "You have been invited to join the %s!", pInfo[playerid][FactionOwner]);
SendClientMessage(playerid, -1, string);
SendClientMessage(playerid, -1, "You have successfully invited a player to your faction!");
pInfo[target][FactionMember] = pInfo[playerid][FactionOwner];
pInfo[target][FactionMemb] = true;
return true;
}
CMD:fkick(playerid, params[])
{
new target, string[50];
if(!pInfo[playerid][FactionOwned]) return SendClientMessage(playerid, -1, "You don't own a faction!");
if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "/fkick [id/name]");
format(string, sizeof(string), "You have been uninvited from the %s!", pInfo[playerid][FactionOwner]);
SendClientMessage(playerid, -1, string);
SendClientMessage(playerid, -1, "You have successfully uninvited a player from your faction!");
pInfo[target][FactionMember] = EOS;
pInfo[target][FactionMemb] = false;
return true;
}
CMD:fchat(playerid, params[])
{
new text[80], string[110], pname[MAX_PLAYER_NAME];
if(!pInfo[playerid][FactionMemb]) return SendClientMessage(playerid, -1, "You're not part of a faction!");
if(sscanf(params, "s[80]", text)) return SendClientMessage(playerid, -1, "/fchat [text]");
if(strlen(text) > 80 || strlen(text) < 1) return SendClientMessage(playerid, -1, "You can't have less than 1 letter, or more than 80!");
format(string, sizeof(string), "%s: %s", pname, text);
SendFactionMessage(playerid, string);
return true;
}
stock CreateFaction(playerid, name[])
{
new holder[45], pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
format(holder, sizeof(holder), "Factions/%s.ini", name);
new File:loc = fopen(holder, io_write);
if(loc)
{
format(holder, sizeof(holder), "Faction: %s | Owner: %s", name, pname);
fwrite(loc, holder);
fclose(loc);
}
return true;
}
stock SendFactionMessage(playerid, text[])
{
for(new i; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
if(pInfo[playerid][FactionMember] == pInfo[i][FactionMember])
{
SendClientMessage(i, -1, text);
}
}
}
return true;
}
#include <a_samp>
#include <sscanf2>
#include <zcmd>
enum PlayerInfo
{
FactionOwner[20],
FactionMember[20],
FactionRank[15],
bool: FactionOwned,
bool: FactionMemb,
}
new pInfo[MAX_PLAYERS][PlayerInfo];
CMD:createfaction(playerid, params[])
{
new fname[20];
if(sscanf(params, "s[20]", fname)) return SendClientMessage(playerid, -1, "/createfaction [name]");
if(strlen(fname) > 20 || strlen(fname) < 1) return SendClientMessage(playerid, -1, "You can't have less than 1 letter, or more than 20!");
if(GetPlayerMoney(playerid) < 20000000) return SendClientMessage(playerid, -1, "You need atleast $20,000,000 in order to make a faction!");
CreateFaction(playerid, fname);
pInfo[playerid][FactionOwned] = true;
pInfo[playerid][FactionOwner] = fname;
pInfo[playerid][FactionMember] = fname;
SendClientMessage(playerid, -1, "You have purchased a faction!");
return true;
}
CMD:deletefaction(playerid, params[])
{
new path[40];
if(!pInfo[playerid][FactionOwned]) return SendClientMessage(playerid, -1, "You don't own a faction!");
format(path, sizeof(path), "Factions/%s.ini", pInfo[playerid][FactionOwner]);
fremove(path);
pInfo[playerid][FactionOwner] = EOS;
pInfo[playerid][FactionRank] = EOS;
pInfo[playerid][FactionOwned] = false;
SendClientMessage(playerid, -1, "You have deleted your faction!");
return true;
}
CMD:finvite(playerid, params[])
{
new target, string[50];
if(!pInfo[playerid][FactionOwned]) return SendClientMessage(playerid, -1, "You don't own a faction!");
if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "/finvite [id/name]");
format(string, sizeof(string), "You have been invited to join the %s!", pInfo[playerid][FactionOwner]);
SendClientMessage(playerid, -1, string);
SendClientMessage(playerid, -1, "You have successfully invited a player to your faction!");
pInfo[target][FactionMember] = pInfo[playerid][FactionOwner];
pInfo[target][FactionMemb] = true;
return true;
}
CMD:fkick(playerid, params[])
{
new target, string[50];
if(!pInfo[playerid][FactionOwned]) return SendClientMessage(playerid, -1, "You don't own a faction!");
if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "/fkick [id/name]");
format(string, sizeof(string), "You have been uninvited from the %s!", pInfo[playerid][FactionOwner]);
SendClientMessage(playerid, -1, string);
SendClientMessage(playerid, -1, "You have successfully uninvited a player from your faction!");
pInfo[target][FactionMember] = EOS;
pInfo[target][FactionMemb] = false;
return true;
}
CMD:fchat(playerid, params[])
{
new text[80], string[130], pname[MAX_PLAYER_NAME];
if(!pInfo[playerid][FactionMemb]) return SendClientMessage(playerid, -1, "You're not part of a faction!");
if(sscanf(params, "s[80]", text)) return SendClientMessage(playerid, -1, "/fchat [text]");
if(strlen(text) > 80 || strlen(text) < 1) return SendClientMessage(playerid, -1, "You can't have less than 1 letter, or more than 80!");
format(string, sizeof(string), "Faction Chat: %s: %s", pname, text);
SendFactionMessage(playerid, string);
return true;
}
stock CreateFaction(playerid, name[])
{
new holder[45], pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
format(holder, sizeof(holder), "Factions/%s.ini", name);
new File:loc = fopen(holder, io_write);
if(loc)
{
format(holder, sizeof(holder), "Faction: %s | Owner: %s", name, pname);
fwrite(loc, holder);
fclose(loc);
}
return true;
}
stock SendFactionMessage(playerid, text[])
{
for(new i; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
if(pInfo[playerid][FactionMember] == pInfo[i][FactionMember])
{
SendClientMessage(i, 0xFFEA00FF, text);
}
}
}
return true;
}