Nein, in dem Fall nicht, da du ausschließlich nach dem genauen Name suchst. Wenn du meine Funktion schon hast, dann benenne den kleinen stock den ich dir grade gegeben habe um, hänge einfach eine 2 dran, ebenso im leaderlist Befehl.
Fraktion schließen
- TheTutoFreak
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Wie mach ich dann noch das wenn ich /makeleader [NAME] 0 eingebe das dann in der Fraktionsdatei der Leadername auch entfernt wird ?
-
Wenn das Level das du ihm gibst gleich 0 ist, dann setzt du den leader in dem Pfad der Fraktionsdatei einfach auf Niemand.
Wenn du nicht weißt wie, poste deinen makeleader Befehl.
-
Ich habs mal versucht weiß aber nicht obs stimmt:
ocmd:makeleader(playerid,params[])
{
new pID,Fraktion;
if(PlayerInfo[playerid][pEingeloggt] < 1 ) return SendClientMessage(playerid,Rot,"Du kannst diesen Befehl nicht nutzen, weil du nicht eingeloggt bist.");
if(PlayerInfo[playerid][pAdminlevel] <= 1337)return SendClientMessage(playerid,Grau,"Du bist nicht befugt, diesen Befehl zu nutzen!");
if(sscanf(params,"ui",pID,Fraktion))
{
SendClientMessage(playerid,Gelb,"Benutze: /makeleader [playerid/PartOfName] [Fraktion]");
SendClientMessage(playerid,Gelb,"1 = LSPD, 2 = FBI, 3 = Army, 4 = Medic, 5 = News, 6 = T-GmbH,");
SendClientMessage(playerid,Gelb,"7 = Abfallwirtschaft, 8 = Hitman, 9 = Grove Street, 10 = Al-Qaida,");
SendClientMessage(playerid,Gelb,"11 = Ballas, 12 = Fahrschule, 13 = La Cosa Nostra, 14 = Taxi,");
SendClientMessage(playerid,Gelb,"15 = Yakuza, 16 = Staatsverwaltung, 17 = SAPD, 18 = Aztecas,");
SendClientMessage(playerid,Gelb,"19 = Rifas, 20 = RS, 21 = Cripz, 22 = Russische Mafia, 23 = SFBC,");
SendClientMessage(playerid,Gelb,"24 = Vagos, 25 = Wheelmen");
return 1;
}
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,Grau,"Der angegebene Spieler ist nicht Online!");
if(frakGeschlossen[Fraktion] == true) return SendClientMessage(playerid,Grau,"Die Fraktion ist geschlossen!");
if(Fraktion < 0 || Fraktion > 26) return SendClientMessage(playerid,Grau,"Bitte nimm eine Fraktion zwischen 0 und 5!");
if(Fraktion == 0)
{
new Fraktionsdatei[64];
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(Fraktion));
dini_Set(Fraktionsdatei, "LeaderName", "Niemand");
}
PlayerInfo[pID][pLeader] = Fraktion;
PlayerInfo[pID][pFraktion] = Fraktion;
PlayerInfo[pID][pMember] = Fraktion;
PlayerInfo[pID][pRank] = 7;
new Fraktionsdatei[64];
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(Fraktion));
dini_Set(Fraktionsdatei, "LeaderName", SpielerName(pID));
SpawnPlayer(pID);
if(Fraktion == 0)
{
Leaders--;
}
else if(Fraktion >= 1)
{
Leaders++;
}
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(pID,name,sizeof(name));
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"Du hast %s Leader der Fraktion %s gemacht.",name,LeaderRank(pID));
SendClientMessage(playerid,Blau,string);
format(string,sizeof(string),"%s hat dich Leader der Fraktion %s gemacht.",name,LeaderRank(pID));
SendClientMessage(pID,Blau,string);
return 1;
} -
Nicht ganz.
So sollte es passen:
ocmd:makeleader(playerid,params[])
{
new pID,Fraktion;
if(PlayerInfo[playerid][pEingeloggt] < 1 ) return SendClientMessage(playerid,Rot,"Du kannst diesen Befehl nicht nutzen, weil du nicht eingeloggt bist.");
if(PlayerInfo[playerid][pAdminlevel] <= 1337)return SendClientMessage(playerid,Grau,"Du bist nicht befugt, diesen Befehl zu nutzen!");
if(sscanf(params,"ui",pID,Fraktion))
{
SendClientMessage(playerid,Gelb,"Benutze: /makeleader [playerid/PartOfName] [Fraktion]");
SendClientMessage(playerid,Gelb,"1 = LSPD, 2 = FBI, 3 = Army, 4 = Medic, 5 = News, 6 = T-GmbH,");
SendClientMessage(playerid,Gelb,"7 = Abfallwirtschaft, 8 = Hitman, 9 = Grove Street, 10 = Al-Qaida,");
SendClientMessage(playerid,Gelb,"11 = Ballas, 12 = Fahrschule, 13 = La Cosa Nostra, 14 = Taxi,");
SendClientMessage(playerid,Gelb,"15 = Yakuza, 16 = Staatsverwaltung, 17 = SAPD, 18 = Aztecas,");
SendClientMessage(playerid,Gelb,"19 = Rifas, 20 = RS, 21 = Cripz, 22 = Russische Mafia, 23 = SFBC,");
SendClientMessage(playerid,Gelb,"24 = Vagos, 25 = Wheelmen");
return 1;
}
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,Grau,"Der angegebene Spieler ist nicht Online!");
if(Fraktion < 0 || Fraktion > 25) return SendClientMessage(playerid,Grau,"Bitte nimm eine Fraktion zwischen 0 und 25!");
if(frakGeschlossen[Fraktion] == true) return SendClientMessage(playerid,Grau,"Die Fraktion ist geschlossen!");
if(Fraktion == 0)
{
new Fraktionsdatei[64];
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(PlayerInfo[pID][pFraktion]));
dini_Set(Fraktionsdatei, "LeaderName", "Niemand");
}
else
{
new Fraktionsdatei[64];
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(Fraktion));
dini_Set(Fraktionsdatei, "LeaderName", SpielerName(pID));
}
PlayerInfo[pID][pLeader] = Fraktion;
PlayerInfo[pID][pFraktion] = Fraktion;
PlayerInfo[pID][pMember] = Fraktion;
PlayerInfo[pID][pRank] = 7;
SpawnPlayer(pID);
if(Fraktion == 0)
{
Leaders--;
}
else if(Fraktion >= 1)
{
Leaders++;
}
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(pID,name,sizeof(name));
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"Du hast %s Leader der Fraktion %s gemacht.",name,LeaderRank(pID));
SendClientMessage(playerid,Blau,string);
format(string,sizeof(string),"%s hat dich Leader der Fraktion %s gemacht.",name,LeaderRank(pID));
SendClientMessage(pID,Blau,string);
return 1;
}Edit:
TheTutoFreak: Fehler ausgebessert. Kopiere es nochmal. -
Wenn ich jetzt /makeleader TheTutoFreak 8 mache und dan /makeleader TheTutoFreak 1 bin ich Leader der Hitman und LSPD...
-
Naja, dann musst du noch abfragen ob PlayerInfo[pID][pLeader] auch wirklich 0 ist, und wenn nicht, returnst du eine Nachricht.
if(PlayerInfo[pID][pLeader]!=0 && Fraktion!=0) return SendClientMessage...Das fügst du nach der Zeile unter dem IsPlayerConnected Teil ein, also zwei Zeilen drunter.
-
Hä ? wenn ich schon Leader bin z.B. der LSPD und mich dan Leader der Hitman mache steht in der Leaderliste das ich zweimal Leader bin...
-
Du musst reloggen.
Bei MySQL reicht eine Speicherung, wie es bei dini ist, weiß ich nicht, da ich mich damit nicht beschäftige. -
Reloggen muss er sich nicht, das würde ja keinen Sinn geben, das könnte man ebenso wie bei MySQL automatisch machen.
Allerdings verstehe ich das Problem nicht. Mit dem Code, wenn du den eingefügt hast, kannst du nicht zwei mal Leader werden, oder geht es trotzdem noch? Könntest du ggf mal ein Bild von dem Dialog zeigen?
-
-
Das ganze sieht so im Moment aus:
-
ERST AUF NULL SETZTEN:
Spoiler anzeigen ocmd:makeleader(playerid,params[])
{
new pID,Fraktion;
if(PlayerInfo[playerid][pEingeloggt] < 1 ) return SendClientMessage(playerid,Rot,"Du kannst diesen Befehl nicht nutzen, weil du nicht eingeloggt bist.");
if(PlayerInfo[playerid][pAdminlevel] <= 1337)return SendClientMessage(playerid,Grau,"Du bist nicht befugt, diesen Befehl zu nutzen!");
if(sscanf(params,"ui",pID,Fraktion))
{
SendClientMessage(playerid,Gelb,"Benutze: /makeleader [playerid/PartOfName] [Fraktion]");
SendClientMessage(playerid,Gelb,"1 = LSPD, 2 = FBI, 3 = Army, 4 = Medic, 5 = News, 6 = T-GmbH,");
SendClientMessage(playerid,Gelb,"7 = Abfallwirtschaft, 8 = Hitman, 9 = Grove Street, 10 = Al-Qaida,");
SendClientMessage(playerid,Gelb,"11 = Ballas, 12 = Fahrschule, 13 = La Cosa Nostra, 14 = Taxi,");
SendClientMessage(playerid,Gelb,"15 = Yakuza, 16 = Staatsverwaltung, 17 = SAPD, 18 = Aztecas,");
SendClientMessage(playerid,Gelb,"19 = Rifas, 20 = RS, 21 = Cripz, 22 = Russische Mafia, 23 = SFBC,");
SendClientMessage(playerid,Gelb,"24 = Vagos, 25 = Wheelmen");
return 1;
}
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,Grau,"Der angegebene Spieler ist nicht Online!");
if(PlayerInfo[pID][pLeader] != 0)return SendClientMessage(playerid,GRAU,"Der angebene Spieler ist bereit in einer Fraktion Leader!");
if(Fraktion < 0 || Fraktion > 25)return SendClientMessage(playerid,Grau,"Bitte nimm eine Fraktion zwischen 0 und 25!");
if(frakGeschlossen[Fraktion] == true) return SendClientMessage(playerid,Grau,"Die Fraktion ist geschlossen!");
if(Fraktion == 0)
{
new Fraktionsdatei[64];
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(PlayerInfo[pID][pFraktion]));
dini_Set(Fraktionsdatei, "LeaderName", "Niemand");
}
else
{
new Fraktionsdatei[64];
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(Fraktion));
dini_Set(Fraktionsdatei, "LeaderName", SpielerName(pID));
}
PlayerInfo[pID][pLeader] = Fraktion;
PlayerInfo[pID][pFraktion] = Fraktion;
PlayerInfo[pID][pMember] = Fraktion;
PlayerInfo[pID][pRank] = 7;
SpawnPlayer(pID);
if(Fraktion == 0)
{
Leaders--;
}
else if(Fraktion >= 1)
{
Leaders++;
}
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(pID,name,sizeof(name));
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"Du hast %s Leader der Fraktion %s gemacht.",name,LeaderRank(pID));
SendClientMessage(playerid,Blau,string);
format(string,sizeof(string),"%s hat dich Leader der Fraktion %s gemacht.",name,LeaderRank(pID));
SendClientMessage(pID,Blau,string);
return 1;
}So, jetzt musst du den Spieler erst aus der aktuellen Fraktion wo er Leader ist ausladen und neu einladen
Oder möchtest du das es sich automatisch ändert so das du nicht erst 0 und dann die FraktionsID eingeben musst?AUTOMATISCH AUS DER INI ENTFERNEN ALS LEADER:
Spoiler anzeigen ocmd:makeleader(playerid,params[])
{
new pID,Fraktion;
if(PlayerInfo[playerid][pEingeloggt] < 1 ) return SendClientMessage(playerid,Rot,"Du kannst diesen Befehl nicht nutzen, weil du nicht eingeloggt bist.");
if(PlayerInfo[playerid][pAdminlevel] <= 1337)return SendClientMessage(playerid,Grau,"Du bist nicht befugt, diesen Befehl zu nutzen!");
if(sscanf(params,"ui",pID,Fraktion))
{
SendClientMessage(playerid,Gelb,"Benutze: /makeleader [playerid/PartOfName] [Fraktion]");
SendClientMessage(playerid,Gelb,"1 = LSPD, 2 = FBI, 3 = Army, 4 = Medic, 5 = News, 6 = T-GmbH,");
SendClientMessage(playerid,Gelb,"7 = Abfallwirtschaft, 8 = Hitman, 9 = Grove Street, 10 = Al-Qaida,");
SendClientMessage(playerid,Gelb,"11 = Ballas, 12 = Fahrschule, 13 = La Cosa Nostra, 14 = Taxi,");
SendClientMessage(playerid,Gelb,"15 = Yakuza, 16 = Staatsverwaltung, 17 = SAPD, 18 = Aztecas,");
SendClientMessage(playerid,Gelb,"19 = Rifas, 20 = RS, 21 = Cripz, 22 = Russische Mafia, 23 = SFBC,");
SendClientMessage(playerid,Gelb,"24 = Vagos, 25 = Wheelmen");
return 1;
}
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,Grau,"Der angegebene Spieler ist nicht Online!");
if(Fraktion < 0 || Fraktion > 25)return SendClientMessage(playerid,Grau,"Bitte nimm eine Fraktion zwischen 0 und 25!");
if(frakGeschlossen[Fraktion] == true) return SendClientMessage(playerid,Grau,"Die Fraktion ist geschlossen!");
if(Fraktion == 0)
{
new Fraktionsdatei[64];
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(PlayerInfo[pID][pFraktion]));
dini_Set(Fraktionsdatei, "LeaderName", "Niemand");
}
else
{
//Du fragst ab ob er bereits Leader ist
if(PlayerInfo[pID][pLeader] != 0)
{
//Du löscht seinen Namen als Leader und setzt "Niemand" dafür ein
new Fraktionsdatei[64];
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(PlayerInfo[pID][pFraktion]));
dini_Set(Fraktionsdatei, "LeaderName", "Niemand");
//Du speicherst ihn in die neue Fraktion als Leader ein
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(Fraktion));
dini_Set(Fraktionsdatei, "LeaderName", SpielerName(pID));
//Jetzt bist du immer nur in einer ini Leader
}
else
{
new Fraktionsdatei[64];
format(Fraktionsdatei,sizeof(Fraktionsdatei),"/Fraktionen/%s.txt",FraktionsNamen(Fraktion));
dini_Set(Fraktionsdatei, "LeaderName", SpielerName(pID));
}
}
PlayerInfo[pID][pLeader] = Fraktion;
PlayerInfo[pID][pFraktion] = Fraktion;
PlayerInfo[pID][pMember] = Fraktion;
PlayerInfo[pID][pRank] = 7;
SpawnPlayer(pID);
if(Fraktion == 0)
{
Leaders--;
}
else if(Fraktion >= 1)
{
Leaders++;
}
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(pID,name,sizeof(name));
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"Du hast %s Leader der Fraktion %s gemacht.",name,LeaderRank(pID));
SendClientMessage(playerid,Blau,string);
format(string,sizeof(string),"%s hat dich Leader der Fraktion %s gemacht.",name,LeaderRank(pID));
SendClientMessage(pID,Blau,string);
return 1;
}//EDIT: Automatische Änderung in der Ini hinzugefügt.
//EDIT: Code in Spoiler gepackt. -
breadfish.de
Hat das Thema geschlossen.