Hallo.
Ich versteh' nicht, warum mein /setfrak Befehl nicht geht.
ocmd:setfrak(playerid, params[]){
new pID, frak[64], rank, msg[128], amsg[128];
if(pData[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, COLOR_ERROR, "[Fehler]{FFFFFF} Du musst eingeloggt sein, um Befehle auszuführen!");
if(pData[playerid][pAdmin] < 4 || pData[playerid][pAduty] == 0) return SendClientMessage(playerid, COLOR_ERROR, "[Fehler]{FFFFFF} Du hast nicht die nötigen Berechtigungen dazu!");
if(sscanf(params, "us[64]d", pID, frak, rank)) return SendClientMessage(playerid, COLOR_USING, "[Benutzung]{FFFFFF} /setfrak [ID][Fraktionskürzel][Rank]");
if(strcmp(frak, "SFPD", true) == 0 && strcmp(frak, "SFSF", true) == 0 && strcmp(frak, "SFES", true) == 0&& strcmp(frak, "SFTR", true) == 0&& strcmp(frak, "NEWS", true) == 0&& strcmp(frak, "RIFA", true) == 0&& strcmp(frak, "BALLAS", true) == 0&& strcmp(frak, "NANG", true) == 0&& strcmp(frak, "TRIADEN", true) == 0) return SendClientMessage(playerid, COLOR_ERROR, "[Fehler]{FFFFFF} Ungültiger Fraktionskürzel!");
format(amsg, sizeof(amsg), "[AdminCMD] Du hast %s auf Rank %d in der Fraktion %s gesetzt!", GetName(pID),rank ,GetFrakname(frak));
format(msg, sizeof(msg), "[AdminCMD] %s %s hat dich auf Rank %d in der Fraktion %s gesetzt!",GetAdminRankname(playerid) ,GetName(playerid),rank , GetFrakname(frak));
SendClientMessage(playerid,COLOR_ADMCMD ,amsg);
SendClientMessage(pID, COLOR_ADMCMD, msg);
new savevar = GetFrakID(frak);
pData[pID][pFraktion] = savevar;
pData[pID][pRank] = rank;
switch(savevar) {
case 1: if(rank == MAX_RANKS_SFPD) pData[pID][pLeader] = 1;
case 2: if(rank == MAX_RANKS_SFSF) pData[pID][pLeader] = 1;
case 3: if(rank == MAX_RANKS_SFES) pData[pID][pLeader] = 1;
case 4: if(rank == MAX_RANKS_SFTR) pData[pID][pLeader] = 1;
case 5: if(rank == MAX_RANKS_NEWS) pData[pID][pLeader] = 1;
case 6: if(rank == MAX_RANKS_RIFA) pData[pID][pLeader] = 1;
case 7: if(rank == MAX_RANKS_BAlLAS) pData[pID][pLeader] = 1;
case 8: if(rank == MAX_RANKS_NANG) pData[pID][pLeader] = 1;
case 9: if(rank == MAX_RANKS_TRIADEN) pData[pID][pLeader] = 1;
}
SavePlayer(pID);
return 1;
}
stock GetFrakID(frakname[]) {
new returnfrak;
if(strcmp(frakname, "SFPD", true) == 1) {
returnfrak = 1;
return returnfrak;
} else if(strcmp(frakname, "SFSF", true) == 1 ) {
returnfrak = 2;
return returnfrak;
} else if(strcmp(frakname, "SFES", true) == 1 ) {
returnfrak = 3;
return returnfrak;
} else if(strcmp(frakname, "SFTR", true) == 1 ) {
returnfrak = 4;
return returnfrak;
} else if(strcmp(frakname, "NEWS", true) == 1 ) {
returnfrak = 5;
return returnfrak;
} else if(strcmp(frakname, "RIFA", true) == 1 ) {
returnfrak = 6;
return returnfrak;
} else if(strcmp(frakname, "BALLAS", true) == 1 ) {
returnfrak = 7;
return returnfrak;
} else if(strcmp(frakname, "NANG", true) == 1 ) {
returnfrak = 8;
return returnfrak;
} else if(strcmp(frakname, "TRIADEN", true) == 1 ) {
returnfrak = 9;
return returnfrak;
} else {
returnfrak = -1;
return returnfrak;
}
}
Errors erhalte ich keine. Allerdings kann ich jeden X-Beliebigen Kürzel eingebenm und als NAchricht kommt immer, dass ich X im PD eingestellt habe. Und der Wert welcher dann in der Datei eingetragen wird, variert zwischen 3 und 5.
Was mach ich falsch?
LG
Maydo