/configplayer -> Funktioniert nicht ganz

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
  • Hallo!
    In meinem /configplayer Befehl, bekomme ich IMMER beim compilen diesen Fehler: error 033: array must be indexed (variable "-unknown-")


    Der ganze Befehl sieht nun so aus:
    ocmd:configplayer(playerid,params[]){new pID[MAX_PLAYER_NAME]; new syntax; new wert; if(sscanf(params,"uss", pID, syntax, wert))return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /configplayer [Spieler/ID] [Syntax] [Wert]"); if(SpielerInfo[playerid][pAdmin] >= 3) { if(!IsPlayerConnected(pID)) { new string[512]; if(syntax == "level") <----------------------- Hier entsteht der Fehler { SetPlayerScore(pID, wert); format(string, sizeof(string), "Du hast das Level von %s auf %i gesetzt!", GetName(pID), wert); return 1; } } else { SendClientMessage(playerid, COLOR_RED, "Der Spieler ist leider nicht online!"); return 1; } } else { SendClientMessage(playerid, COLOR_RED, "Dir fehlen leider die Rechte dazu, diesen Befehl auszuführen!"); return 1; } return 1;}



    Was kann ich da nun tun?!


    LG lolcooper

  • ocmd:configplayer(playerid,params[]){
    new pID[MAX_PLAYER_NAME]; new syntax[32]; new wert;
    if(sscanf(params,"usi", pID, syntax, wert))return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /configplayer [Spieler/ID] [Syntax] [Wert]");
    if(SpielerInfo[playerid][pAdmin] >= 3){
    if(IsPlayerConnected(pID)){
    new string[512];
    if(!strcmp(syntax, "level"){
    SetPlayerScore(pID, wert);
    format(string, sizeof(string), "Du hast das Level von %s auf %i gesetzt!", GetName(pID), wert);
    return 1;
    }
    }else {
    SendClientMessage(playerid, COLOR_RED, "Der Spieler ist leider nicht online!");
    return 1;
    }
    }else{
    SendClientMessage(playerid, COLOR_RED, "Dir fehlen leider die Rechte dazu, diesen Befehl auszuführen!");
    return 1;
    }
    return 1;
    }

  • Meinte ja im Beitrag davor, das es leider nicht funktioniert :S



    EDIT: wenn ich (!strcmp(..)) nutze, kommt dann folgender Fehler: error 035: argument type mismatch (argument 1)

    Einmal editiert, zuletzt von lolcooper ()

  • Probiers doch mal so:


    ocmd:configplayer(playerid,params[]){
    if(SpielerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid, COLOR_RED, "Dir fehlen leider die Rechte dazu, diesen Befehl auszuführen!");
    new pID,syntax[32],wert,string[128];
    if(sscanf(params,"usi", pID, syntax, wert))return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /configplayer [Spieler/ID] [Syntax] [Wert]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_RED, "Der Spieler ist leider nicht online!");
    if(!strcmp(syntax, "level",true)) {
    SetPlayerScore(pID, wert);
    format(string, sizeof(string), "Du hast das Level von %s auf %i gesetzt!", GetName(pID), wert);
    return SendClientMessage(pID,-1,string);
    }
    return SendClientMessage(playerid,-1,"Es existiert nur die Syntax Level!");
    }


    mfg. :thumbup:


    //Edit: Was vergessen

    ast2ufdyxkb1.png


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

  • Funktioniert! Nur: Der Pfeil in der Admin Abfrage zeigt in die falsche Richtung. Sonst alles richtig.


    DANKE! :)

  • Nur: Der Pfeil in der Admin Abfrage zeigt in die falsche Richtung.


    Nein, der Pfeil zeigt in die richtige Richtung:


    Sobald das Adminlevel von dem Spieler kleiner (<) als 3 ist, soll er durch das return die Message "Dir fehlen leider die Rechte dazu, diesen Befehl auszuführen!" bekommen!


    Somit ist das richtig ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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