Guten Tag liebe Bortfische,
ich habe ein kleines Scripting-Problem & brauche eure Hilfe!:)
Problem:
Ich versuche den jeweiligen Admin-Leveln einen Namen zu definieren, doch das will nicht funktionieren.
Errors gibt es nicht, doch wenn ich (z. B.) /makeadmin 0 2002 eingeben, wird der Server-Rang nicht als "Projektleiter"
sondern als "80" gespeichert...
Quellcode (Enum):
enum AccountDaten
{
Geschlecht,
Alter,
AdminLevel,
AdminRang[256],
ADuty,
Float:SpawnX,
Float:SpawnY,
Float:SpawnZ,
Float:SpawnA,
InteriorID,
VirtualWorld,
Level,
Lohn,
Geld,
LevelPunkte,
bLevelPunkte,
UpgradePunkte,
Duty,
SkinID,
SpawnHP,
SpawnWeste,
Float:pTx,
Float:pTy,
Float:pTz,
pNameColor[20],
WantedLevel,
EHPakete,
Kopfgeld,
Rang,
PayDay,
Eingeloggt
};
new sSpieler[MAX_PLAYERS][AccountDaten];
Quellcode (Command):
dcmd_makeadmin(playerid, params[])
{
new pid, alevel, pidn[MAX_PLAYER_NAME];
GetPlayerName(pid,pidn,sizeof(pidn));
if(sscanf(params,"ud", pid, alevel))
{
return SCM(playerid, hellrot,"Benutze: /makeadmin <Spieler-ID> <Admin-Level>");
}
if(IstSpielerAdmin(playerid, 2001) || IsPlayerAdmin(playerid))
{
if(pid == INVALID_PLAYER_ID)
{
return SCM(playerid,sonderrot,"FEHLER: Ungültige Spieler-ID");
}
else if(sSpieler[playerid][AdminLevel] < alevel)
{
sSpieler[pid][AdminLevel] = alevel;
new string[125];
format(string,sizeof(string),"AdmCMD: Du wurdest zu einem Level %d Administrator befördert!",alevel);
SCM(pid,leuchtendrot,string);
new string2[125];
format(string2,sizeof(string2),"AdmCMD: %s wurde zu einem Level %d Administrator befördert!",pidn,alevel);
SCMTA(leuchtendrot,string2);
}
else if(sSpieler[playerid][AdminLevel] > alevel)
{
sSpieler[pid][AdminLevel] = alevel;
new string[125];
format(string,sizeof(string),"AdmCMD: Du wurdest zu einem Level %d Administrator degratiert!",alevel);
SCM(pid,leuchtendrot,string);
new string2[125];
format(string2,sizeof(string2),"AdmCMD: %s wurde zu einem Level %d Administrator degratiert!",pidn,alevel);
SCMTA(leuchtendrot,string2);
}
switch(alevel)
{
case 1:
{
sSpieler[pid][AdminRang] = "Probe-Supporter";
}
case 2:
{
sSpieler[pid][AdminRang] = "Supporter";
}
case 3:
{
sSpieler[pid][AdminRang] = "Probe-Moderator";
}
case 4:
{
sSpieler[pid][AdminRang] = "Moderator";
}
case 1337:
{
sSpieler[pid][AdminRang] = "Hilfs-Admin";
}
case 1338:
{
sSpieler[pid][AdminRang] = "Administrator";
}
case 2000:
{
sSpieler[pid][AdminRang] = "Full-Admin";
}
case 2001:
{
sSpieler[pid][AdminRang] = "Stllv. Projektleiter";
}
case 2002:
{
sSpieler[pid][AdminRang] = "Projektleiter";
}
}
}
return 1;
}
Außerdem failt hier noch etwas:
dcmd_admin(playerid, params[])
{
new text, nachricht[200], aname[MAX_PLAYER_NAME];
if(IstSpielerAdmin(playerid, 1))
{
if(sscanf(params,"s[256]",text))
{
return SCM(playerid,hellrot,"Benutze: /admin <Text>");
}
else
{
GetPlayerName(playerid,aname,sizeof(aname));
format(nachricht,sizeof(nachricht),">>%s | %s: %s",sSpieler[playerid][ServerRang],aname,text);
for(new i = 0;i < MAX_PLAYERS; i++)
{
if(IstSpielerAdmin(i, 1))
{
return SCM(i,gelb,nachricht);
}
}
}
}
return 1;
}
Fazit:
Bsp.:
/admin Hallo, wie gehts?
Erscheint:
>> | : Hallo, wie gehts?
Ich hoffe, dass ihr mir helfen könnt. Ich bedanke mich schonmal im Voraus!:)
Mit freundlichen Grüßen,
MisterDubstep