Beiträge von .Gottkomplex.


    if(GetPVarInt(playerid,"arrestpID")==pID) //hier soll er die playerid abfragen ob es die gleiche ist wie ich hier eingebe
    {
    DeletePVar(playerid,"arrestpID");
    }


    Macht er da doch schon, oder irre ich mich?


    €: Ich ignoriere mal die oben von mir zitierte Abfrage.



    ocmd:cuff(playerid,params[])
    {
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,blau,"/cuff [ID]");
    SetPVarInt(playerid,"arrestpID",pID); //hier soll er die playerid speichern


    SetPVarInt(pID, "Verhaftet",1);
    }


    ocmd:arrest(playerid,params[])
    {
    if(sscanf(params,"uds",pID,zeit,grund))return SCM(playerid,blau,"/arrest [playerid] [zeit in min] [grund]");
    if(GetPVarInt(playerid,"arrestpID")==pID) //hier soll er die playerid abfragen ob es die gleiche ist wie ich hier eingebe
    {
    if(GetPVarInt(pID, "Verhaftet")==1)
    {
    DeletePVar(playerid,"arrestpID");
    }
    }
    else
    {
    SendClientMessage(playerid,rot,"[Fehler] Du musst vorher den Spieler verhaften! (/cuff [playerid])");
    }
    }


    Ich hab hier deine Abfragen mal ignoriert und einfach selbst abgefragt ob der Spieler verhaftet wurde.

    So steht es im Script:




    new cID;
    if(!sscanf(params, "i", cID))
    {
    new CarVariable[MAX_VEHICLES];
    if(CarVariable[cID] != INVALID_VEHICLE_ID)
    {
    if(CarVariable[cID] == 1)
    {
    DestroyVehicle(cID);
    }
    else
    {
    SendClientMessage(playerid, COLOR_ORANGE,"Es existiert kein erstelltes Fahrzeug mit dieser ID.");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_ORANGE,"Es existiert kein Fahrzeug mit dieser ID.");
    }





    Nun das Problem.


    Es wird immer "Es existiert kein erstelltes Fahrzeug mit dieser ID." ausgegeben. Egal ob eine vehicleid mit dem Wert von cID existiert oder nicht.
    Und egal ob CarVariable[cID] == 1 ist oder nicht.


    Der State wurde woanders im Script so erstellt:


    new CarVariable[MAX_VEHICLES];
    new fID;
    fID=CreateVehicle(...)
    CarVariable[fID] = 1;

    Im Script steht es so:
    if(sscanf(params, "iii", cID, cl1, cl2))



    Doch wenn man ingame "/command 1 1 1" (wie angegeben 3 integers) eingibt wir trotzdem die message in else ausgegeben.


    €: Wenn ich nur "/command 1" oder "/command 1 1" eingebe, springt er weiter zur nächsten Abfrage.