Abend
Um mein Fraktionssystem, natürlich möglichst Dynamisch fertig zu stellen, brauch ich eure hilfe..
Ich Speicher die Rangnamen der Fraktion, bsp: LSPD Rang 1 = Praktikant in einer Datei.
Ich schick euch dazu nur ein paar codes..
stock CreateFraction(frakname[])
{
new datei[64];
for(new frak=1;frak<MAX_FRAKTION;frak++)
{
format(datei,sizeof(datei),"/Fraktionen/%i.txt",frak);
if(!dini_Exists(datei))
{
dini_Create(datei);
format(FraktionsDaten[frak][fName],64,"%s",frakname);
dini_Set(datei,"Fraktionsname",FraktionsDaten[frak][fName]);
dini_Set(datei,"Rang1","Rang1");
dini_Set(datei,"Rang2","Rang2");
dini_Set(datei,"Rang3","Rang3");
dini_Set(datei,"Rang4","Rang4");
dini_Set(datei,"Rang5","Rang5");
dini_Set(datei,"Rang6","Rang6");
dini_Set(datei,"Rang7","Rang7");
dini_Set(datei,"Rang8","Rang8");
dini_Set(datei,"Rang9","Rang9");
dini_Set(datei,"Rang10","Rang10");
dini_Set(datei,"Rang11","Rang11");
dini_Set(datei,"Rang12","Rang12");
return 1;
}
}
return 1;
} (mittlerweile lass ich die Datei mit Namen speichern. spricht nicht das die Datei 0.txt heißt sondern LSPD.txt)
ocmd:setrankname(playerid, params[])
{
new File[100],Rank[50], RankSet[50], RankID[50], String[128];
if(sscanf(params, "is", RankID, RankSet)) return SendClientMessage(playerid,COLOR_GRAU, "/setrankname [Ranknummer] [Neuer Rankname]");
new pname[MAX_PLAYER_NAME], path[200];
GetPlayerName(playerid, pname, sizeof(pname));
format(path, sizeof(path), "/Accounts/%s.ini", pname);
if(leader==1)
{
format(File,sizeof(File),"/Fraktionen/LSPD.txt");
format(RankID, sizeof RankID, "Rang%d", Rank);
dini_Set(File, RankSet, Rank);
}//Einige Codeteile Weggelassen und verändert..(copy&paste)
damit kann ich die Rangnamen ändern, wenn ich auch Leader der Fraktion bin.
Meine frage wäre jetzt, wie mach ich daraus n Fraktionschat..?
Ich hab noch teile aus meinem Altem Script
ocmd:r(playerid,params[])
{
new frak = PlayerInfo[playerid][Member];
if(frak == 1)
{
new text[128];
if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_GRAU,"/r [text]");
format(text,sizeof(text),"%s | %s: %s", GetRangName(playerid),SpielerName(playerid),text);
TeamMessage(frak,text);
return 1;
}
return 1;
}
public TeamMessage(fraktion,text[])
{
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][Member])
{
SendClientMessage(i, COLOR_GANGFARBE, text);
}
}
}
}