kleines problem mit dini

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
  • hi breadfischer...


    ich möcht mir grad ein adminsystem zusammenscripten...


    das sollte so aussehen das ich beim makeadmin command in die user datei admin=1338 reinschreibe und danach bei den befehlen halt abfrage ob das da drin steht.


    hier is mein scriptausschnitt



    dcmd_makeadmin(playerid,params[])
    {


    if(!strlen(params))
    {
    return SendClientMessage(playerid,rot,"Nutze: /makeadmin [playerid]");
    }
    new
    pID=strval(params);
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,rot,"Kein Spieler mit angegebener ID Online");
    }
    dini_IntSet("/Spieler/file.ini", "Admin", "1338");
    SendClientMessage(playerid,grün,"Der spieler wurde zum Admin gemacht");
    return 1;
    }



    das einzige problem damit ist, dass es immer wieder in die user datei admin=0 reinschreibt...weis jemand wieso würd mir echt weiterhelfen

  • so das problem is großteils behoben


    wenn ich die zeile


    dini_Set("/Spieler/[LSDR]Bl4der.ini", "Admin", "1338");


    schreibe wird in der userdatei von [LSDR]Bl4der Admin=1338 gespeichert...


    aber dann hab ich ja eine bestimmte datei.
    ich will aber dass das admin=1338 immer in der userdatei von dem user gespeichert wird, der zum admin gewählt werden soll, also von der angegebenen id...


    kann mir das jemand posten?


    ausserdem wäre noch gut zu wissen wie die abfrage aussieht also wo abgefragt wird ob admin=1338 da drin steht


    thx


    EDIT:


    dcmd_makeadmin(playerid,params[])
    {


    if(!strlen(params))
    {
    return SendClientMessage(playerid,rot,"Nutze: /makeadmin [playerid]");
    }
    new
    pID=strval(params);
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,rot,"Kein Spieler mit angegebener ID Online");
    }
    dini_Set("/Spieler/[LSDR]Bl4der.ini", "Admin", "1338");
    SendClientMessage(playerid,grün,"Der spieler wurde zum Admin gemacht");
    return 1;
    }


    das is mein makeadmin command

  • Du musst auch irgendwie den eigentlichen Spielernamen benutzen.
    dcmd_makeadmin(playerid,params[])
    {


    if(!strlen(params))
    {
    return SendClientMessage(playerid,rot,"Nutze: /makeadmin [playerid]");
    }
    new
    sStr[64],
    pID = strval(params);
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,rot,"Kein Spieler mit angegebener ID Online");
    }
    GetPlayerName(pID,sStr,MAX_PLAYER_NAME); // <-- wichtig
    format(sStr,sizeof(sStr),"/Spieler/%s.ini",sStr); // <-- wichtig,wir formatieren den String mit dem Spielernamen.
    dini_Set(sStr, "Admin", "1338");
    SendClientMessage(playerid,grün,"Der spieler wurde zum Admin gemacht");
    return 1;
    }
    Dir sollte klar sein,wieso diese beiden Zeilen besonders wichtig sind.

  • danke ich werd das noch testen


    ja ich versteh das genau das mit dem string hat mir gefehlt schätz ich


    EDIT: danke gold jetzt gehts perfekt


    EDIT vom EDIT: kann mir noch jemand die abfrage sagen, also eine if abfrage oder so bei der eben überprüft wird ob bei admin 1338 oder 0 steht

    2 Mal editiert, zuletzt von shorty123 ()