Restart Befehl fehlerhaft?

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 ein für mich wichtiges Problem :D


    Ist wahrscheinlich unnötig dieses zu entfernen, keine Ahnung.
    Naja, auf jedenfall kommt diese Fehlermeldung beim Compilen:


    warning 202: number of arguments does not match definition
    bei diesem Code:
    if(strcmp("/restart", cmdtext, true, 10) == 0)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    if (dini_Int(Spieler, "Adminlevel") >= 1)
    {
    SendClientMessage(playerid,dunkelrot,"***%s hat den Server neugestartet!***",Sname); DAS IST DIE PROBLEMZEILE
    SendRconCommand("gmx");
    }
    else
    {
    SendClientMessage(playerid,dunkelrot,"Du hast nicht die benötigte Berechtigung!");
    }
    return 1;
    }


    Ich bedanke mich für Hilfe :S

    Ich bin wieder da, MoFogga


    You're not completely useless. You can always serve as a bad example!

  • Mal so schreiben:


    C
    if(strcmp("/restart", cmdtext, true, 10) == 0)
    {
        if(SpielerInfo[playerid][Admin] == 0) return SendClientMessage(playerid,dunkelrot,"Du hast nicht die benötigte Berechtigung!"); //Anpassen
        new string[64];
        GetPlayerName(playerid,string,MAX_PLAYER_NAME);
        format(string,sizeof(string),"*** %s hat den Server neugestartet! ***",string);
        SendClientMessageToAll(dunkelrot,string);
        SendRconCommand("gmx");
        return 1;
    }

    Mal paar Tipps:

    • Nutze ocmd/zcmd/ycmd (kein dcmd / strcmp)
    • Greife nicht direkt auf dini_Int zu...normalerweise speicherst du den Wert in einer Variable zwischen.
    • Musst format verwenden, wenn du Variablen in einem String anzeigen lassen wilst

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Danke @Kaliber, allerdings startet der server nun garnicht mehr 8|

    Script ist im richtigen Ordner,
    Eingetragen ist auch eigentlich alles richtig.

    Ich bin wieder da, MoFogga


    You're not completely useless. You can always serve as a bad example!

  • Gut, warum auch immer hatte ich die SAMPVoice configuration anscheinend noch drinne, das Plugin aber nicht :D
    Hab den Code ein wenig auf mein Script angepasst, sieht nun so aus und funktioniert fast perfekt :)
    if(strcmp("/restart", cmdtext, true, 10) == 0)
    {
    new Spieler[64];
    if (dini_Int(Spieler, "Adminlevel") >= 0)
    {
    new string[64];
    GetPlayerName(playerid,string,MAX_PLAYER_NAME);
    format(string,sizeof(string),"*** %s hat den Server neugestartet! ***",string);
    SendClientMessageToAll(dunkelrot,string);
    SendRconCommand("gmx");
    }
    else
    {
    SendClientMessage(playerid,dunkelrot,"Du hast nicht die benötigte Berechtigung!");
    }
    return 1;
    }


    So, nun besteht noch das problem dass wenn ich in meiner Spielerdatei Admin 2 eintrage, nach dem Einloggen der Server das ganze wieder auf null setzt 8|
    Dazu kommt das nun auch einer mit Rang 0 das ganze ausführen kann.... #IchBinSchlecht :D

    Ich bin wieder da, MoFogga


    You're not completely useless. You can always serve as a bad example!

  • Dann kann doch trotzdem jeder zugreifen weil das Script ja nicht abfragt welcher Admin ist und welcher nicht? Oder liege ich da falsch?
    //EDIT:
    Habs falsch gelesen :D schon gut :P


    //EDIT2:
    Alle fehler ausgemärzt bis auf einen.
    Der Integer in der Spielerdatei setzt sich immer wieder auf 0 zurück nach dem Logout...
    stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Adminlevel",0);
    SetSpawnInfo(playerid,0,0,1567.9358,-1891.7168,13.5593,359.1738,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    return 1;
    }


    //Login
    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),true))
    {
    SpielerLaden(playerid);
    SetSpawnInfo(playerid,0,0,1567.9358,-1891.7168,13.5593,359.1738,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    }
    else
    {
    SendClientMessage(playerid,dunkelrot,"Falsches Passwort.");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"LOGIN","Account wurde gefunden\nBitte gebe dein Passwort ein:","WEITER","ABBRUCH");
    }
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    dini_IntSet(Spieler,"Fraktion",pInfo[playerid][Fraktion]);
    dini_IntSet(Spieler,"Adminlevel",pInfo[playerid][Admin]);
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    pInfo[playerid][Admin]=dini_Int(Spieler,"Adminlevel");
    pInfo[playerid][Fraktion]=dini_Int(Spieler,"Fraktion");
    return 1;
    }

    Ich bin wieder da, MoFogga


    You're not completely useless. You can always serve as a bad example!

    Einmal editiert, zuletzt von .snx ()