Server Unknow Command - 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 danke für die Aufmerksamkeit.


    Ich habe ein kleines Problem bei einem Befehl.
    Irgendwas stimmt mit dem Return nicht, weil er immer bei dem Befehl "/abschleppen Nummernschild Preis Grund" - Unknow Command schreibt,
    obwohl der funktionieren müsste.


    Hier ist der Befehlscode:


    if(strcmp(cmdtext,"/abschleppen ",true)==0)
    {
    if(IsPlayerInFrac(playerid,24))
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,0xFF0000FF,"FEHLER:/abschleppen [Kennzeichen] [Preis] [Grund]");
    return 1;
    }
    new kz[32];
    format(kz,sizeof(kz),"%s",tmp);
    if(KZExistiert(kz))
    {
    tmp=strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    format(string,128,"FEHLER: /abschleppen %s [Sperrpreis] [Grund]",kz);
    SendClientMessage(playerid,0xFF0000FF,string);
    return 1;
    }
    new preis;
    preis = strval(tmp);
    if(preis >= 1)
    {
    tmp=strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    format(string,128,"FEHLER: /abschleppen %s %d [Grund]",kz,preis);
    SendClientMessage(playerid,0xFF0000FF,string);
    return 1;
    }
    new grund[256];
    format(grund,sizeof(grund),"%s",tmp);
    new kzveh = GetCarFromKZ(kz);
    if(!IsDtCarGesperrt(kzveh))
    {
    new modell = GetVehicleModel(kzveh);
    new gpid = GetOwner(kzveh);
    new gpidname[MAX_PLAYER_NAME];
    GetPlayerName(gpid,gpidname,sizeof(gpidname));
    format(string,sizeof(string),"Du hast das Kennzeichen %s (User: %d || Name: %s || Fahrzeug: %s) für %d$ mit folgendem Grund gesperrt: %s",kz,gpid,gpidname,CarName[modell-400],preis,grund);
    SendClientMessage(playerid,0x00FFFFFF,string);
    new pnn[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pnn,sizeof(pnn));
    format(string,sizeof(string),"%s hat dein Fahrzeug %s mit dem Kennzeichen %s für %d$ mit folgendem Grund gesperrt: %s",pnn,CarName[modell-400],kz,preis,grund);
    SendClientMessage(gpid,0xFF0000FF,string);
    for(new x=0;x<MaxVeh;x++)


    {
    if(strcmp(PlayerCar[gpid][x][CarNumber],kz,true)==0)
    {
    PlayerCar[gpid][x][CarGesperrt] = 1;
    PlayerCar[gpid][x][CarSperrpreis]=preis;
    }
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieses Fahrzeug ist bereits gesperrt.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Der Bußpreis darf nicht unter 0 sein.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieses Kennzeichen wurde nicht registriert.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist kein Adac Mitglied");
    return 1;
    }
    }


    Ich habe mich bereits erkundigt bei dem Samp-Wiki:



    http://wiki.sa-mp.com/wiki/OnPlayerCommandText


    Zitat

    /* Returning '0' is used to inform the server that the command has not been successfully processed, and passes it to other scripts. If there hasn't been a successful process, then you will get that 'SERVER: Unknown Command.' error.

    Allerdings sehe ich hier kein Return 0 bei, wordurch der Fehler nicht ausgelöst werden kann.
    Rumprobiert habe ich auch schon die Returns wegzulassen oder umzuändern, vergebens.


    Ich würde sich freue wenn sich jemand die Zeit nimmt mir den Fehler zu erklären damit ich eine weitere Lücke in Sachen Samp erfolgreich füllen kann.
    Vielen Dank und ein schönes Wochenende.

  • if(strcmp(cmdtext,"/abschleppen ",true)==0)
    {
    if(IsPlayerInFrac(playerid,24))
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,0xFF0000FF,"FEHLER:/abschleppen [Kennzeichen] [Preis] [Grund]");
    return 1;
    }
    new kz[32];
    format(kz,sizeof(kz),"%s",tmp);
    if(KZExistiert(kz))
    {
    tmp=strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    format(string,128,"FEHLER: /abschleppen %s [Sperrpreis] [Grund]",kz);
    SendClientMessage(playerid,0xFF0000FF,string);
    return 1;
    }
    new preis;
    preis = strval(tmp);
    if(preis >= 1)
    {
    tmp=strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    format(string,128,"FEHLER: /abschleppen %s %d [Grund]",kz,preis);
    SendClientMessage(playerid,0xFF0000FF,string);
    return 1;
    }
    new grund[256];
    format(grund,sizeof(grund),"%s",tmp);
    new kzveh = GetCarFromKZ(kz);
    if(!IsDtCarGesperrt(kzveh))
    {
    new modell = GetVehicleModel(kzveh);
    new gpid = GetOwner(kzveh);
    new gpidname[MAX_PLAYER_NAME];
    GetPlayerName(gpid,gpidname,sizeof(gpidname));
    format(string,sizeof(string),"Du hast das Kennzeichen %s (User: %d || Name: %s || Fahrzeug: %s) für %d$ mit folgendem Grund gesperrt: %s",kz,gpid,gpidname,CarName[modell-400],preis,grund);
    SendClientMessage(playerid,0x00FFFFFF,string);
    new pnn[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pnn,sizeof(pnn));
    format(string,sizeof(string),"%s hat dein Fahrzeug %s mit dem Kennzeichen %s für %d$ mit folgendem Grund gesperrt: %s",pnn,CarName[modell-400],kz,preis,grund);
    SendClientMessage(gpid,0xFF0000FF,string);
    for(new x=0;x<MaxVeh;x++)
    {
    if(strcmp(PlayerCar[gpid][x][CarNumber],kz,true)==0)
    {
    PlayerCar[gpid][x][CarGesperrt] = 1;
    PlayerCar[gpid][x][CarSperrpreis]=preis;
    }
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieses Fahrzeug ist bereits gesperrt.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Der Bußpreis darf nicht unter 0 sein.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieses Kennzeichen wurde nicht registriert.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist kein Adac Mitglied");
    return 1;
    }
    return 1;
    }


    so vielleicht ?

  • Ich bedanke mich das du mir schonmal weiterhelfen konntest und dir die Zeit dafür genommen hast.
    Jetzt ist das gute das kein "Server Unknow Command" mehr kommt,
    allerdings führt er diesen Befehl jetzt garnicht mehr aus.


    Ich erhalte folgendes Warning:


    warning 225: unreachable code


    - Ich habe mich nach diesem Warning auch schlau gemacht und herrausgefunden das villeicht etwas mit den Klammern nicht stimmen könnte.
    Es kann natürlich auch irgendwo wieder am Return liegen.


    Wisst ihr warum jetzt nichts mehr ausgeführt wird?



    Ich bedanke mich und wünsche einen schönen Tag

  • if(strcmp(cmdtext,"/abschleppen ",true)==0)
    {
    if(IsPlayerInFrac(playerid,24))
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,0xFF0000FF,"FEHLER:/abschleppen [Kennzeichen] [Preis] [Grund]");
    return 1;
    }
    new kz[32];
    format(kz,sizeof(kz),"%s",tmp);
    if(KZExistiert(kz))
    {
    tmp=strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    format(string,128,"FEHLER: /abschleppen %s [Sperrpreis] [Grund]",kz);
    SendClientMessage(playerid,0xFF0000FF,string);
    return 1;
    }
    new preis;
    preis = strval(tmp);
    if(preis >= 1)
    {
    tmp=strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    format(string,128,"FEHLER: /abschleppen %s %d [Grund]",kz,preis);
    SendClientMessage(playerid,0xFF0000FF,string);
    return 1;
    }
    new grund[256];
    format(grund,sizeof(grund),"%s",tmp);
    new kzveh = GetCarFromKZ(kz);
    if(!IsDtCarGesperrt(kzveh))
    {
    new modell = GetVehicleModel(kzveh);
    new gpid = GetOwner(kzveh);
    new gpidname[MAX_PLAYER_NAME];
    GetPlayerName(gpid,gpidname,sizeof(gpidname));
    format(string,sizeof(string),"Du hast das Kennzeichen %s (User: %d || Name: %s || Fahrzeug: %s) für %d$ mit folgendem Grund gesperrt: %s",kz,gpid,gpidname,CarName[modell-400],preis,grund);
    SendClientMessage(playerid,0x00FFFFFF,string);
    new pnn[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pnn,sizeof(pnn));
    format(string,sizeof(string),"%s hat dein Fahrzeug %s mit dem Kennzeichen %s für %d$ mit folgendem Grund gesperrt: %s",pnn,CarName[modell-400],kz,preis,grund);
    SendClientMessage(gpid,0xFF0000FF,string);
    for(new x=0;x<MaxVeh;x++)
    {
    if(strcmp(PlayerCar[gpid][x][CarNumber],kz,true)==0)
    {
    PlayerCar[gpid][x][CarGesperrt] = 1;
    PlayerCar[gpid][x][CarSperrpreis]=preis;
    }
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieses Fahrzeug ist bereits gesperrt.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Der Bußpreis darf nicht unter 0 sein.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieses Kennzeichen wurde nicht registriert.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist kein Adac Mitglied");
    return 1;
    }
    }
    return 1;
    }


    wenns dann nicht geht... ka ...