Ja ich will eine Befehl /ahelp machen aber wenn man z.B
ProbeSupporter(Rank1) ist sollen auch nur dementsprechend die befehle angezeigt werden.
Wie mache ich sowas mit ocmd?
Danke im vorraus
ocmd:ahelp
- xsL33p.[137]
- 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
-
-
Nun,
ocmd wäre dafür nicht meine erste Wahl,
aber gut.
ocmd:ahelp (playerid,params[])
{
if(DEINE ADMIN FUNCTION){SendClientMessage(playerid, FARBE, "Befehle für Admin höchsten Rank");} // Abfrage für Admin mitm höchsten Rank
if(DEINE ADMIN FUNCTION){SendClientMessage(playerid, FARBE, "Befehle für Admin mit den 2. höchsten Rank");} // Abfrsge fuer Admin mit den mindestens 2. höchsten Rankreturn 1;
}So machst dus immer weiter und Probesupporter kommt dann zum Schluss.
da ich nicht weiss,
wie du einen Admin mit welchem Rank definierst,
hab ich die Abfrage weggelassen,
Einfach abfragen, ob er MINDESTENS den und den Rank hat.
Hat er den Rank oder Höher,
dann werden die jeweiligen Befehle angezeigt.
Gruß,
Dennis// Ein if zu viel
-
Erros....
Zeilen:
ocmd:ahelp (playerid,params[])
{
if(!isPlayerAnAdmin(playerid,1))SendClientMessage(playerid,ROT,"*______Admin-Befehle______*
if(!isPlayerAnAdmin(playerid,7))SendClientMessage(playerid,ROT,"");} // Abfrage für Admin mitm höchsten Rank
if(!isPlayerAnAdmin(playerid,6))SendClientMessage(playerid, ROT, "/makeleader /setadmin /restart");
if(!isPlayerAnAdmin(playerid,5))SendClientMessage(playerid, ROT, "Momentan keine");
if(!isPlayerAnAdmin(playerid,4))SendClientMessage(playerid, ROT, "Momentan Keine");
if(!isPlayerAnAdmin(playerid,3))SendClientMessage(playerid, ROT, "/gethere /goto /ban /bsn");
if(!isPlayerAnAdmin(playerid,2))SendClientMessage(playerid, ROT, "/kick ");
if(!isPlayerAnAdmin(playerid,1))SendClientMessage(playerid, ROT, "/a ");
return 1;
}
Erros:
C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(131) : error 037: invalid string (possibly non-terminated string)
C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(131 -- 132) : error 029: invalid expression, assumed zero
C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(132) : error 001: expected token: ";", but found "-identifier-"
C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(132) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
-
Du hast beim ersten SendClientMessage den abschließenden Teil vergessen,
Anführungszeichen, Klammer zu und Simikolon.Dann muss das Ausrufezeichen bei den Adminabfragen weg,
da sonst abgefragt wird, ob man KEIN Admin dieses Ranges ist.// Ach noch was,
Ich habe die SendClientMessage alle in {} gedetzt, das hast du außer den abschließendem in Zeilde 4 nicht gemacht,
daher wird er zu nem Fehler führen. -
Hier das sollte Funzen
ocmd:ahelp(playerid,params[])
{
#pragma unused params
if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist kein Admin");
else if(isPlayerAnAdmin(playerid,1)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 1 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,2)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 2 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,3)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 3 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,4)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 4 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,5)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 4 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,6)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 6 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,7)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 7 Befehle");
return 1;
}
return 1;
} -
Hier das sollte Funzen
ocmd:ahelp(playerid,params[])
{
#pragma unused params
if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist kein Admin");
else if(isPlayerAnAdmin(playerid,1)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 1 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,2)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 2 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,3)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 3 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,4)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 4 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,5)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 4 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,6)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 6 Befehle");
return 1;
}
else if(isPlayerAnAdmin(playerid,7)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 7 Befehle");
return 1;
}
return 1;
}Das ist schwachsinn,
er will doch,
dass einem Admis Rank 6 AUCH die Befehle der Ränge darunter angezeigt werden.Bei dir siehts so aus,
dass wenn ich Admin lvl. 2 Bin die Befehle für lvl. 1 angrzeigt bekomme, dass wars.
Da man min. lvl. 1 braucht, dass iwelche Behehle angezeigt werden,
du aber else if und return 1; verwendest,
bekomme alle nur lvl. 1 angezeigt und dann ist da das return 1; was die ganze Geschichte beendet, also nach den anderen Rängen wird gar nicht abgefragt...Korrigiere einfach die von mir im vorherigem Post angesprochene Fehler und gut ist.
Gruß,
Dennis// absatz //2 sry, PC Bugt
-
Wieso Schwachsin ?
Jeder mit Hirn weis wie man das mit allen Rängen machen kannBeispiel
else if(isPlayerAnAdmin(playerid,7)
{
SendClientMessage(playerid,ROT,"Adminhilfe:");
SendClientMessage(playerid, ROT,"Admin level 1 Befehle");
SendClientMessage(playerid, ROT,"Admin level 2 Befehle");
SendClientMessage(playerid, ROT,"Admin level 3 Befehle");
SendClientMessage(playerid, ROT,"Admin level 4 Befehle");
SendClientMessage(playerid, ROT,"Admin level 5 Befehle");
SendClientMessage(playerid, ROT,"Admin level 6 Befehle");
SendClientMessage(playerid, ROT,"Admin level 7 Befehle");
return 1;
}Und das dann einfach bei den anderen Rängen auch so machen
Das hat nichts mit Schwachsinn zu Tun,
Denken bevor man Schreibt -
Nun,
wenn du das so machen willst,
dann solltest du mit dem höchsten Rank beginnen un dann immer niedriger gehen
Grund:
Da hier nach Rang 1 Abfrage für alle Ränge schluss ist, da jeder Rang darüber >= 1 ist.
Und dann ist deine Geschichte auch etwas umständlicher/ größer (nebenbei)Und du hast bei allen Adminabfragen die Abschließende Klammer vergessen.
else if(isPlayerAnAdmin(playerid,1))Also ich habe schon nachgedacht
Hab dir auch nochmal ne pn geschrieben^^
xsL33p.[137],
hab dir deins korrigiert,
hoffe ich habe da nicht auch ein Klammerfehler odetr so übersehen
So müsste es funktionieren
ocmd:ahelp (playerid,params[])
{
if(isPlayerAnAdmin(playerid,1)){SendClientMessage(playerid,ROT,"*______Admin-Befehle______*");}
if(isPlayerAnAdmin(playerid,7)){SendClientMessage(playerid,ROT,"");}
if(isPlayerAnAdmin(playerid,6)){SendClientMessage(playerid,ROT, "/makeleader /setadmin /restart");}
if(isPlayerAnAdmin(playerid,5)){SendClientMessage(playerid,ROT, "Momentan keine");}
if(isPlayerAnAdmin(playerid,4)){SendClientMessage(playerid,ROT, "Momentan Keine");}
if(isPlayerAnAdmin(playerid,3)){SendClientMessage(playerid,ROT, "/gethere /goto /ban /bsn");}
if(isPlayerAnAdmin(playerid,2)){SendClientMessage(playerid,ROT, "/kick ");}
if(isPlayerAnAdmin(playerid,1)){SendClientMessage(playerid,ROT, "/a ");}
return 1;
}@Turk,
sry, dass ich das etwas hart gesagt habe mit dem Schwachsinn -
breadfish.de
Hat das Thema geschlossen.