Problem mit /Opark

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
  • if(strcmp(cmd,"/sperrcar",true)==0)
    {
    if(IsPlayerInFrac(playerid,24))
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,0xFF0000FF,"FEHLER: /sperrcar [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: /sperrcar %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: /sperrcar %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(!IsDtCarAbgeschleppt(kzveh))
    {
    new modell = GetVehicleModel(kzveh);
    new gpid = GetVehicleOwner(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][CarNummernschild],kz,true)==0)
    {
    PlayerCar[gpid][x][CarAbgeschleppt] = 1;
    PlayerCar[gpid][x][CarSperrpreis]=preis;
    }
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieses Fahrzeug ist bereits gesperrt.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Der Sperrpreis 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 Ordnungsamtmitglied.");
    return 1;
    }
    }


    Diesen Code hab ich aus dem Tutorial: http://forum.sa-mp.com/showthread.php?t=257696


    Wenn ich jetzt aber z.B. /sperrcar XYZ 1 TEST eingebe kommt Server:Unknown Command...


    Weiß jemand woran das liegt?

  • Den Fehler hatte ich auch mal, ich habe extrem lange danach gesucht, bis ich es gefunden habe. Die Schleife durchläuft alle Fahrzeuge die du maximal hast obwohl sie nicht mal gespawnt/erstellt worden ist.
    Deswegen würde ich dir das empfehlen.


    for(new x=0;x<MaxVeh;x++)
    {
    if(IsVehicleStreamedIn(x, playerid)
    {
    if(strcmp(PlayerCar[gpid][x][CarNummernschild],kz,true)==0)
    {
    PlayerCar[gpid][x][CarAbgeschleppt] = 1;
    PlayerCar[gpid][x][CarSperrpreis]=preis;
    }
    } else {
    break;
    }
    }

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • Kommt immernoch!


    if(strcmp(cmd,"/sperrcar",true)==0)
    {
    if(IsPlayerInFrac(playerid,24))
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,0xFF0000FF,"FEHLER: /sperrcar [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: /sperrcar %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: /sperrcar %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(!IsDtCarAbgeschleppt(kzveh))
    {
    SendClientMessage(playerid, COLOR_RED, "DEBUG 1");
    new modell = GetVehicleModel(kzveh);
    SendClientMessage(playerid, COLOR_RED, "DEBUG 2");
    new gpid = GetVehicleOwner(kzveh);
    SendClientMessage(playerid, COLOR_RED, "DEBUG 3");
    new gpidname[MAX_PLAYER_NAME];
    SendClientMessage(playerid, COLOR_RED, "DEBUG 4");
    GetPlayerName(gpid,gpidname,sizeof(gpidname));
    SendClientMessage(playerid, COLOR_RED, "DEBUG 5");
    //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, COLOR_RED, "DEBUG 6");
    //SendClientMessage(playerid,0x00FFFFFF,string);
    SendClientMessage(playerid, COLOR_RED, "DEBUG 7");
    new pnn[MAX_PLAYER_NAME];
    SendClientMessage(playerid, COLOR_RED, "DEBUG 8");
    GetPlayerName(playerid,pnn,sizeof(pnn));
    SendClientMessage(playerid, COLOR_RED, "DEBUG 9");
    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(playerid, COLOR_RED, "DEBUG 10");
    SendClientMessage(gpid,0xFF0000FF,string);
    SendClientMessage(playerid, COLOR_RED, "DEBUG 11");
    for(new x=0;x<MaxVeh;x++)
    {
    if(IsVehicleStreamedIn(x, playerid))
    {
    if(strcmp(PlayerCar[gpid][x][CarNummernschild],kz,true)==0)
    {
    PlayerCar[gpid][x][CarAbgeschleppt] = 1;
    PlayerCar[gpid][x][CarSperrpreis]=preis;
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieses Fahrzeug ist bereits gesperrt.");
    }
    }
    else
    {
    break;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Der Sperrpreis 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 Ordnungsamtmitglied.");
    return 1;
    }
    }


    //EDIT CODE EINGEFÜGT!


    Einmal editiert, zuletzt von Erich96 ()

  • Bau mal ein break(); jeweils ein wenn ein kennzeichen übereinstimmt mit einem Fahrzeug und wenn das Fahrzeug nicht gestreamed ist aber das hast du eh.


    if(strcmp(PlayerCar[gpid][x][CarNummernschild],kz,true)==0)
    {
    PlayerCar[gpid][x][CarAbgeschleppt] = 1;
    PlayerCar[gpid][x][CarSperrpreis]=preis;
    break();
    }

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • Ändert leider auch nichts!
    Nach Debug 9 kömmt Server Unknown Command!
    Wenn man aber CarName... rausmacht dann gehts weiter bis Debug 11 aber CarAbgeschleppt... wird nicht = 1 gesetzt ich glaube die ID oder so wird nicht richtig ausgelesen hier mal die stocks!


    stock KZExistiert(string[])
    {
    for(new v=0;v<MAX_VEHICLES;v++)
    {
    if(IsADtCar(v))
    {
    for(new x=0;x<MaxVeh;x++)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(strcmp(string,PlayerCar[i][x][CarNummernschild],true)==0)
    {
    return 1;
    }
    }
    }
    }
    }
    }
    return 0;
    }
    stock GetCarFromKZ(string[])
    {
    for(new v=0;v<MAX_VEHICLES;v++)
    {
    if(IsADtCar(v))
    {
    for(new x=0;x<MaxVeh;x++)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(strcmp(PlayerCar[i][x][CarNummernschild],string,true)==0)
    {
    return PlayerCar[i][x][CarId];
    }
    }
    }
    }
    }
    }
    return 0;
    }
    stock IsDtCarAbgeschleppt(vehicle)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsADtCar(vehicle))
    {
    for(new x=0;x<MaxVeh;x++)
    {
    if(IsPlayerConnected(i))
    {
    if(vehicle == PlayerCar[i][x][CarId])
    {
    if(PlayerCar[i][x][CarAbgeschleppt] == 1)
    {
    return 1;
    }
    }
    }
    }
    }
    }
    return 0;
    }


    stock GetVehicleOwner(vehicle)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    for(new x = 0; x < MaxVeh; x++)
    {
    if(PlayerCar[i][x][CarId] == vehicle){return i;}
    }
    }
    return 555;
    }

  • Okay das hat mich auf jeden Fall weiter gebracht! Jetzt bekommt man die Message das das Kennzeichen nicht registriert ist! :D


    stock KZExistiert(string[])
    {
    for(new v=0;v<MAX_VEHICLES;v++)
    {
    if(IsADtCar(v))
    {
    for(new x=0;x<MaxVeh;x++)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsVehicleStreamedIn(x, i))
    {
    if(strcmp(string,PlayerCar[i][x][CarNummernschild],true)==0)
    {
    return 1;
    }
    }
    else
    {
    break;
    }
    }
    }
    }
    }
    }
    return 0;
    }
    stock GetCarFromKZ(string[])
    {
    for(new v=0;v<MAX_VEHICLES;v++)
    {
    if(IsADtCar(v))
    {
    for(new x=0;x<MaxVeh;x++)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsVehicleStreamedIn(v, i))
    {
    if(IsPlayerConnected(i))
    {
    if(strcmp(PlayerCar[i][x][CarNummernschild],string,true)==0)
    {
    return PlayerCar[i][x][CarId];
    }
    }
    }
    else
    {
    break;
    }
    }
    }
    }
    }
    return 0;
    }
    stock IsDtCarAbgeschleppt(vehicle)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsVehicleStreamedIn(vehicle, i))
    {
    if(IsADtCar(vehicle))
    {
    for(new x=0;x<MaxVeh;x++)
    {
    if(IsPlayerConnected(i))
    {
    if(vehicle == PlayerCar[i][x][CarId])
    {
    if(PlayerCar[i][x][CarAbgeschleppt] == 1)
    {
    return 1;
    }
    }
    }
    }
    }
    }
    else
    {
    break;
    }
    }
    return 0;
    }


    stock GetVehicleOwner(vehicle)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    for(new x = 0; x < MaxVeh; x++)
    {
    if(IsVehicleStreamedIn(x, i))
    {
    if(PlayerCar[i][x][CarId] == vehicle){return i;}
    }
    else
    {
    break;
    }
    }
    }
    return 555;
    }


    //PUSH


    Einmal editiert, zuletzt von Erich96 ()