Hallo Community ich habe ien Problem mit diesem Command und zwar setzt der das adminlevel nicht auf das gewünschte und der zeigt auch nicht das %i und das %s im chat an.
IsAdmin(playerid,a_level)
{
if(sInfo[playerid][alevel]>=a_level)return 1;
return 0;
}
ocmd:makeadmin(playerid,params[])
{
if(!IsAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig");
new pID,a_level,nachricht[128],nachrichte[128];
if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,GRAU,"INFO:/makeadmin [id] [rang]");
sInfo[pID][alevel]=a_level;
SpielerSpeichern(pID);
format(nachricht,sizeof(nachricht),"%s hat dein Adminrang geändert. Neuer Rang: %i",pID,a_level);
SendClientMessage(pID,GRÜN,nachricht);
format(nachrichte,sizeof(nachrichte),"Du hast den Rang von %s auf Rang %i geändert.",pID,a_level);
SendClientMessage(playerid,GRÜN,nachrichte);
return 1;
}
/setadmin
- XJimmiX
- Geschlossen
- Erledigt
-
-
Du musst den Name mit GetPlayerName auslesen:
ocmd:makeadmin(playerid,params[])
{
if(!IsAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig");
new pID,a_level,nachricht[145], name[MAX_PLAYER_NAME];
if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,GRAU,"INFO:/makeadmin [id] [rang]");
sInfo[pID][alevel]=a_level;
SpielerSpeichern(pID);
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(nachricht,sizeof(nachricht),"%s hat dein Adminrang geändert. Neuer Rang: %i",name,a_level);
SendClientMessage(pID,GRÜN,nachricht);
GetPlayerName(pID, name, MAX_PLAYER_NAME);
format(nachricht,sizeof(nachricht),"Du hast den Rang von %s auf Rang %i geändert.",name,a_level);
SendClientMessage(playerid,GRÜN,nachricht);
return 1;
} -
Probier es so:
ocmd:makeadmin(playerid,params[])
{
if(!IsAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig");
new pID,a_level,nachricht[128],nachrichte[128];
if(sscanf(params,"ud",pID,a_level))return SendClientMessage(playerid,GRAU,"INFO:/makeadmin [id] [rang]");
sInfo[pID][alevel]=a_level;
SpielerSpeichern(pID);
format(nachricht,sizeof(nachricht),"%s hat dein Adminrang geändert. Neuer Rang: %d",pID,a_level);
SendClientMessage(pID,GRÜN,nachricht);
format(nachrichte,sizeof(nachrichte),"Du hast den Rang von %s auf Rang %d geändert.",pID,a_level);
SendClientMessage(playerid,GRÜN,nachrichte);
return 1;
}Um den Namen abzufragen, brauchst du eine Funktion, so fragst du nur die ID des Spielers ab und kannst in dem Fall kein %s verwenden.
-
Probier es so:
d und i sind als Platzhalter völlig identisch. -
Um den Namen abzufragen, brauchst du eine Funktion, so fragst du nur die ID des Spielers ab und kannst in dem Fall kein %s verwenden.
Außerdem, wenn du schon versuchst das richtige zu posten, dann solltest du auch den Fehler mit dem Namen beheben, und GetPlayerName einfügen. -
Das Problem besteht weiterhin.
-
Habe grade gesehen, dass ich den Parameter nicht geändert habe, sorry.
ocmd:makeadmin(playerid,params[])
{
if(!IsAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig");
new pID,a_level,nachricht[145], name[MAX_PLAYER_NAME];
if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,GRAU,"INFO:/makeadmin [id] [rang]");
sInfo[pID][alevel]=a_level;
SpielerSpeichern(pID);
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(nachricht,sizeof(nachricht),"%s hat dein Adminrang geändert. Neuer Rang: %i",name,a_level);
SendClientMessage(pID,GRÜN,nachricht);
GetPlayerName(pID, name, MAX_PLAYER_NAME);
format(nachricht,sizeof(nachricht),"Du hast den Rang von %s auf Rang %i geändert.",name,a_level);
SendClientMessage(playerid,GRÜN,nachricht);
return 1;
}
Dann geht's. -
So das mit dem Name wäre geklärt und das mit dem Rang auch also die %werte
aber entweder setzt er das adminlevel nicht oder er speichert es nicht.und ich habe diesen mysql,log
-
Poste bitte den Code des Queries.
-
SpielerSpeichern(playerid)
{
//Speichern
if(sInfo[playerid][eingeloggt]==0)return 1;
new query[128];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i' WHERE id='%i",sInfo[playerid][level],sInfo[playerid][money],sInfo[playerid][alevel],sInfo[playerid][id]);
mysql_pquery(dbhandle,query,"","");
return 1;
}
ResetPlayer(playerid)
{
sInfo[playerid][eingeloggt] = 0;
sInfo[playerid][id] = 0;
sInfo[playerid][level] = 0;
sInfo[playerid][money] = 0;
sInfo[playerid][alevel] = 0;
return 1;
}Oder was meinst du ?
-
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i' WHERE id='%i",sInfo[playerid][level],sInfo[playerid][money],sInfo[playerid][alevel],sInfo[playerid][id]);
zu:
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i' WHERE id='%i'",sInfo[playerid][level],sInfo[playerid][money],sInfo[playerid][alevel],sInfo[playerid][id]);Am Ende des Queries hat ein ' gefehlt.
-
komisch jetzt hat er alles gespeichert bloß money hat er auf 0 gesetzt von 1500.
-
Ersetze in den Parametern hinter dem Query:
sInfo[playerid][money]
mit:
GetPlayerMoney(playerid)Wahrscheinlich nutzt du die Variable gar nicht.
-
Du bist echt Spitze!! Danke
-
breadfish.de
Hat das Thema geschlossen.