ocmd fehler

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
  • hab bei meinem befehl ein problem
    er zeigt die falschen nachrichten an
    hier der code


    ocmd:stoplesson(playerid,params[])
    {
    if(!IstSpielerFraktion(playerid,15)) return SendClientMessage(playerid,FARBE_PINK,"SERVER: Du hast keine Rechte fuer disen Befehl");
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    if(TakingLesson[playerid] == 1)
    {
    new pID, string[128];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,FARBE_WEISS,"BEFEHL: /stoplesson [ID]");
    format(string,sizeof(string),"%s hat deine Fahrstunde beendet",SpielerName(playerid));
    SendClientMessage(pID,FARBE_HELLBLAU,string);
    TakingLesson[pID] = 0;
    DisablePlayerCheckpoint(playerid);
    return 1;
    }
    else if(TakingLesson[playerid] == 0)
    {
    SendClientMessage(playerid,FARBE_GELB,"Dieser Spieler hat keine Fahrstunde");
    return 1;
    }
    else if(GetPVarInt(playerid,"loggedin") == 0)
    {
    SendClientMessage(playerid,FARBE_GELB,"Dieser Spieler ist nicht Online!");
    return 1;
    }
    }
    return 1;
    }

  • Die Wand ist Blau!


    So was soll es den Anzeigen wenn du das Eingibst? Und was zeigt er gerade an?


    Mehr Infos... bitteee 8o

  • wenn ich /stoplesson mache dan zeigt er an das der spieler keine fahrstunde hat
    genau das selbe wenn ich /stoplesson id (die id ist nicht online) mache kommt das selbe


    und wenn ich nur /stoplesson eingebe dann kommt nicht BEFEHL: /stoplesson [id] da kommt einfach nix

  • Probier es mal so, wenn es nicht Funktioniert dann Update mal dein sscanf.

    ocmd:stoplesson(playerid,params[])
    {
    if(!IstSpielerFraktion(playerid,15)) return SendClientMessage(playerid,FARBE_PINK,"SERVER: Du hast keine Rechte fuer disen Befehl");
    new pID, string[128];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,FARBE_WEISS,"BEFEHL: /stoplesson [ID]");
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    if(TakingLesson[playerid] == 1)
    {
    format(string,sizeof(string),"%s hat deine Fahrstunde beendet",SpielerName(playerid));
    SendClientMessage(pID,FARBE_HELLBLAU,string);
    TakingLesson[pID] = 0;
    DisablePlayerCheckpoint(playerid);
    return 1;
    }
    else if(TakingLesson[playerid] == 0)
    {
    SendClientMessage(playerid,FARBE_GELB,"Dieser Spieler hat keine Fahrstunde");
    return 1;
    }
    else if(GetPVarInt(playerid,"loggedin") == 0)
    {
    SendClientMessage(playerid,FARBE_GELB,"Dieser Spieler ist nicht Online!");
    return 1;
    }
    }
    return 1;
    }


    //E: WICHTIG! Überprüfe nochmal dein Code! Du hast z.B. ganz unten: Dort Überprüft er ob die playerid Online ist, die Playerid gibt den Befehl ein. Du musst aber überprüfen ob die pID Online ist! Das selbe spiel auch bei der oberen abfrage!


    Und du kannst es auch so machen:

    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid,FARBE_GELB,"Dieser Spieler ist nicht Online!");


    //E: Und bitte las die ganzen "return 1;" weg! Ich weiss nicht wieso ihr die immer alle unter jedem "if..." rein ballert.... Unnötig, es Funktioniert auch so ;)

  • Dann änder mal das bei der GetPVar Abfrage loggedin, du hast da "playerid" stehen, schreib pID rein! Du fragst ab ob die Playerid loggedin ist ! 8o


    PS: An Kaliber der das alles gerade liest, diesmal war ich schneller :D :P


  • if(TakingLesson[playerid] == 1)

    Auch hier? Oder soll das etwa bei der playerid freigeschaltet werden?
    8o


    //E: So sollte es nun gehen:



    ocmd:stoplesson(playerid,params[])
    {
    if(!IstSpielerFraktion(playerid,15)) return SendClientMessage(playerid,FARBE_PINK,"SERVER: Du hast keine Rechte fuer disen Befehl");
    new pID, string[128];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,FARBE_WEISS,"BEFEHL: /stoplesson [ID]");
    if(GetPVarInt(pID,"loggedin")==1)
    {
    if(TakingLesson[pID] == 1)
    {
    format(string,sizeof(string),"%s hat deine Fahrstunde beendet",SpielerName(playerid));
    SendClientMessage(pID,FARBE_HELLBLAU,string);
    TakingLesson[pID] = 0;
    DisablePlayerCheckpoint(playerid);
    }
    else if(TakingLesson[pID] == 0)
    {
    SendClientMessage(playerid,FARBE_GELB,"Dieser Spieler hat keine Fahrstunde");
    }
    else if(GetPVarInt(pID,"loggedin") == 0)
    {
    SendClientMessage(playerid,FARBE_GELB,"Dieser Spieler ist nicht Online!");
    }
    }
    return 1;
    }

  • Zitat

    wenn ich /stoplesson 1 (nicht online ) mache kommt




    unbekannter befehl also uknow command

    Dann probier es mal mit den neusten code von mir, ich glaube das lag an den ganzen "return 1;" Bei einen Return wird der Code Abgebrochen und der "Leser" springt zu den punkt zurück wo er aufgerufen wurde.


    Zitat aus Wikipedia:

    Zitat

    return stops a function and goes back to the point in code which called the function in the first place:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • So nun aber:
    Wenn es nun nicht geht fühle ich mich echt Verarscht!



    ocmd:stoplesson(playerid,params[])
    {
    if(!IstSpielerFraktion(playerid,15)) return SendClientMessage(playerid,FARBE_PINK,"SERVER: Du hast keine Rechte fuer disen Befehl");
    new pID, string[128];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,FARBE_WEISS,"BEFEHL: /stoplesson [ID]");
    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid,FARBE_GELB,"Dieser Spieler ist nicht Online!");
    if(TakingLesson[pID] == 1)
    {
    format(string,sizeof(string),"%s hat deine Fahrstunde beendet",SpielerName(playerid));
    SendClientMessage(pID,FARBE_HELLBLAU,string);
    TakingLesson[pID] = 0;
    DisablePlayerCheckpoint(playerid);
    }
    else if(TakingLesson[pID] == 0)
    {
    SendClientMessage(playerid,FARBE_GELB,"Dieser Spieler hat keine Fahrstunde");
    }
    return 1;
    }


    8o 8o 8o UND?