Adminsystem Problem

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
  • Guten Tag,
    Ich habe folgendes Problem. Wenn ich mich als RCON anmelde kann nur ich nur mich Admin machen, die anderen aber nicht.


    new text[128]; if(!strcmp("/makeadmin", cmdtext, true)){ PlayerInfo[playerid][pAdminLevel] = 5; return 1; }


    Was ist falsch oder wie kann ich es richtig machen?


    -Danke und mfG Obawa

    Einmal editiert, zuletzt von Obawa ()

  • Das ist logisch, da du es mit strcmp machst.
    Du musst das mit ocmd (leichtere Version) oder mit idx (meiner meinung nach umständlicher) machen.


    Das ist weil playerid bei OnPlayerCommandText immer der Spieler ist der den Text eingegeben hat.

  • PHP
    dcmd_setadmin(playerid,params[]){	new alvl, Name[MAX_PLAYER_NAME], AName[MAX_PLAYER_NAME], string[128], pID;	if(GetPVarInt(playerid, "Adminlevel") < 7){return SendClientMessage(playerid, COLOR_RED,"Verweigert!");}	if(sscanf(params,"ud",pID,alvl))return SendClientMessage(playerid, COLOR_GREY,"INFO: /setadmin [playerid] [Adminlevel]");	GetPlayerName(pID, Name, sizeof(Name));	GetPlayerName(playerid, AName, sizeof(AName));	if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED,"Es ist niemand mit dieser ID online!");	SetPVarInt(pID,"Adminlevel",alvl);	format(string,sizeof(string),"[AdmCmd] Dein Adminlevel wurde von %s auf %d gesetzt.",AName,alvl);	SendClientMessage(pID, COLOR_YELLOW,string);	format(string, sizeof(string),"[AdmCmd] %s hat das Adminlevel von %s auf %d gesetzt.",AName,Name,alvl);	SendAdminMessage(COLOR_YELLOW,string);	return 1;}((NICHT unter OnPlayerCommandText, sondern iwo ausserhalb einfügen)



    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    Das kommt oben unter die Includes


    Musst du noch anpassen und die SSCANF ins Script einfügen ;)


    Greetz

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Für DCMD braucht man keine Include, den DCMD hab ich dadrunter geschrieben nur nicht eingebettet ;)

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!