#define Max_Frakcio 10
#undef MAX_PLAYERS
#define MAX_PLAYERS 100
enum frakcio
{
f_nev[64],
f_id,
f_maxrang
};
new FrakcioInfo[Max_Frakcio][frakcio];
enum pInfo
{
Frakcio,
Leader,
Rang
};
new JatekosInfo[MAX_PLAYERS][pInfo]
először is enumokat csinálsz, ha meg vannak nem csak a playert mented hanem magát a frakciót is, h kényelmesebb legyen a használata.
következő lépés:
létre kell hoznod mentés/betöltést
utána
elkezded írni a parancsokat zcmds vagy strcmps félével
ha az elmélet megy a gyakorlatban is menni fog :)
new Meghivva[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
Meghivva[playerid] = -1;
return 1;
}
CMD:frakcio(playerid,params[])
{
new szoveg[64],funkcio[32],nev[MAX_PLAYER_NAME];
GetPlayerName(playerid,nev,MAX_PLAYER_NAME);
if(sscanf(params,\"s[32]\",funkcio))
{
SendClientMessage(playerid,-1,\"/frakcio [Elfogad || Elutasit]\");
return 1;
}
if(!strcmp(funkcio, \"Elfogad\", true))
{
if(Meghivva[playerid] == -1) return SendClientMessage(playerid,-1,\"Nem vagy meghívva sehová!\");
JatekosInfo[playerid][Frakcio] = JatekosInfo[Meghivva][Frakcio];
JatekosInfo[playerid][Rang] = 1;
SendClientMessage(playerid,-1,\"Beléptél!\");
format(szoveg,\"%s elfogadta a meghívásod\",nev);
SendClientMessage(Meghivva,-1,szoveg);
Meghivva[playerid] = -1;
Ment(playerid);
}
if(!strcmp(funkcio, \"Elutasit\", true))
{
if(Meghivva[playerid] == -1) return SendClientMessage(playerid,-1,\"Nem vagy meghívva sehová!\");
SendClientMessage(playerid,-1,\"Elutasítottad a meghívást!\");
Meghivva[playerid] = -1;
}
}
CMD:meghiv(playerid, params[])
{
if(JatekosInfo[playerid][Leader] == 0) return SendClientMessage(playerid,-1,\"Nem vagy leader!\");
new jatekos,szoveg[64],nev[MAX_PLAYER_NAME];
GetPlayerName(playerid,nev,MAX_PLAYER_NAME);
if(sscanf(params, \"u\", jatekos))
{
SendClientMessage(playerid,-1,\"/meghiv [JatekosID]\");
return 1;
}
if(INVALID_PLAYER_ID == jatekos)
{
SendClientMessage(playerid,-1,\"Nincs fenn a jatekos!\");
return 1;
}
if(IsPlayerNPC(jatekos))
{
SendClientMessage(playerid,-1,\"Ő egy NPC!\");
return 1;
}
if(JatekosInfo[jatekos][Frakcio] != 0)
{
SendClientMessage(playerid,-1,\"Ez a játékos már frakcióban van!\");
return 1;
}
format(szoveg,sizeof(szoveg),\"%s meghívott téged, hogy belépj a frakcióba ((/frakcio elfogad))\",nev);
SendClientMessage(jatekos,-1,szoveg);
Meghivva[jatekos] = playerid;
return 1;
}
Nem teszteltem de szerintem jó lesz, majd írj valami vissza jelzést, a leírásod alapján valami ilyesmire gondoltál nem?
a rangad parancshoz meg írd le nekem hogy mennyi a max rang mert elég vicces lesz 235335654 rangot adni valakinek.
Üdv. Hiroshi