Guten Tag Community,
ich möchte gerne Rangnamen in einer Datei speichern, diese dann auch virtuell vom Server aus abfragen, editieren und ggf. wieder speichern.
Wie mache ich das am besten oder kann mir jemand auf die Sprünge helfen?
Guten Tag Community,
ich möchte gerne Rangnamen in einer Datei speichern, diese dann auch virtuell vom Server aus abfragen, editieren und ggf. wieder speichern.
Wie mache ich das am besten oder kann mir jemand auf die Sprünge helfen?
Ich würde in deiner MySQL Datenbank für jede Fraktion jeden Rangnamen in einer Tabelle speichern lassen.
Evtl. in einer MySQL Datenbank? (Kann man am einfachsten mit einem bspw. UCP oder CP verbinden)
Oder versuchs mit der Standart File Funktion
Speicher die am besten mit MySQL in einer Tabelle.
Dann kannst du sie am besten speichern und auch laden.
MfG,
TheBester
Arbeite mit dini, kein MySQL.
Hmm, ich denke mal, dass es mit MySQL einfacher wäre
Hmm, ich denke mal, dass es mit MySQL einfacher wäre
Aber es muss doch eine Möglichkeit geben, es mit Dini in eine .ini oder .txt Datei zu speichern und so?
Ordner unter Scriptfiles "factions" oder "Fraktionen" oder whatever und dann Unterordner mit den Fraktionen machen.
Dadrin dann pro Ordner eine Datei, mit bspw. dem Namen "ranknames.txt".
In der dann pro Rank eine Zeile mit dem Namen.
Dann im Script (ungetestet, arbeite sonst nur mit MySQL) :
new path[256], rankname[50];
format(rankname, sizeof(rankname),"%s", dini_Get("/factions/sapd/ranknames.txt", "1"));
Das Gleiche dann noch mit dem Speichern der Ranknamen ingame durch den Leader.
stock Rangladen()
{
format(Datei,sizeof(Datei),"/Rangnamen.ini");
if(fexist(Datei))
{
format(RangInfo[0][LSPDRANG0],32,"%s",dini_Get(Datei,"LSPDRANG0"));
stock Rangspeichern()
{
format(Datei,sizeof(Datei),"/Rangnamen.ini");
if(fexist(Datei))
{
dini_Set(Datei,"LSPDRANG0",RangInfo[0][LSPDRANG0]);
#define MAX_FRAKTIONEN 16
enum Rangdaten
{
LSPDRANG0[32]
}
new RangInfo[MAX_FRAKTIONEN][Rangdaten];
so kannste ihn später einen namen geben ingame
case 0: format(RangInfo[0][LSPDRANG0],32,"%s",rangname);
if(SInfo[playerid][pMember] == 1 || SInfo[playerid][pLeader] == 1)
{
switch(SInfo[playerid][pRang])
{
case 0: format(string,sizeof(string),"%s",RangInfo[0][LSPDRANG0]);
case 1: format(string,sizeof(string),"%s",RangInfo[0][LSPDRANG1]);
case 2: format(string,sizeof(string),"%s",RangInfo[0][LSPDRANG2]);
case 3: format(string,sizeof(string),"%s",RangInfo[0][LSPDRANG3]);
case 4: format(string,sizeof(string),"%s",RangInfo[0][LSPDRANG4]);
case 5: format(string,sizeof(string),"%s",RangInfo[0][LSPDRANG5]);
case 6: format(string,sizeof(string),"%s",RangInfo[0][LSPDRANG6]);
case 7: format(string,sizeof(string),"%s",RangInfo[0][LSPDRANG7]);
}
GetPlayerName(playerid,pname,sizeof(pname));
format(str,sizeof(str),"%s %s: %s,over",string,pname,result);
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i) && SInfo[i][pMember] == 1 || SInfo[i][pLeader] == 1)
{
SendClientMessage(i,0xC3FF00FF,str);
}
}
printf("%s", str);
}
und so die message habe da schon mehrere ränge