Privatcars befehl

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 Community,


    ich habe mir einen /respawncars befehl für privat fahrzeuge gebaut, er funktioniert richtig, aber es wird nach dem ausführen immer gesagt:
    Den befehl gibt es nicht... obwohl er richtiga usgeführt wird...
    Hier der Code:


    Bitte um Hilfe...
    MfG
    Moritz
    //push

  • Beitrag von TheOneBehindYou1 ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: pfui gack ().
  • Probiers mal so:

    cmd:respawncars(playerid,params[])
    {
    if(SpielerInfo[playerid][uAdmin] < 2) return KeineRechte(playerid);
    new string[64], bool:besetzt[MAX_VEHICLES];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInAnyVehicle(i))
    {
    besetzt[GetPlayerVehicleID(i)]=true;
    }
    for(new v = 0; v < MAX_VEHICLES; v++)
    {
    if(besetzt[v] == false)
    {
    if(v == SAuto[i][0][sID])
    {
    SetVehicleToRespawn(SAuto[i][0][sID]);
    }
    if(v == SAuto[i][1][sID])
    {
    SetVehicleToRespawn(SAuto[i][1][sID]);
    }
    }
    }
    }
    format(string, sizeof(string),"Admin %s hat alle unbenutzten Privatfahrzeuge respawnt",SpielerName(playerid));
    SendClientMessageToAll(COLOR_GREEN,string);
    return 1;
    }

  • Bekommst du denn die Nachricht am Ende gesendet? Könnte natürlich sein, dass du einen Array sprengst und dadurch die Meldung kommt.


    Außerdem ist das keine adäquate Lösung die du wählst, vor allem in einer Schleife eine weitere Schleife zu haben, die 2000 Durchlaufe hat, sprich schlussendlich, sofern du die Makros nicht redefiniert hast, hast du 2000 * 500 / 800 / 1000 (?) Durchlaufe.



    edit: SendClientMessageToAll() gibt immer true zurück, daran sollte es also (zu 99%) nicht liegen.

  • Hey,


    dies liegt daran, dass du mit SendClientMessageToAll returnst. Am besten returnst du bei einem Command immer mit einer 1, da der Server sonst denkt, dass es diesen Befehl gibt. Also mach aus:

    Code
    return SendClientMessageToAll(COLOR_GREEN,string);


    Das hier:

    Code
    SendClientMessageToAll(COLOR_GREEN, string);
    return 1;

    Ich hoffe ich konnte dir helfen, damit du in Zukunft weisst, wo der Fehler lag - falls er nochmal aufkommen sollte. ;)


    lg

    • Offizieller Beitrag

    Versuch es mal so: