Abfrage geht nciht wie sie soll

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
  • Ein guten Abend euch allen ;)


    Ich habe das Problem das meine Fraktions abfrage, um den Motor zu starten nicht mehr richtig geht.
    Ich hatte voher Member und Leader, nun habe ich Member gelöscht und Leader zu Fraktion gemacht seit dem geht es nicht mehr
    er sagt überall das man nicht darf auch bei autos die so gespawnt werden über /veh


    so sah der code vohrer aus


    if(IsAMemberFromFraktion(GetPlayerVehicleID(playerid)) != SpielerInfo[playerid][pMember] && IsAMemberFromFraktion(GetPlayerVehicleID(playerid)) != SpielerInfo[playerid][pLeader])return SendClientMessage(playerid, -1, "Du hast die Autoschlüssel nicht!");
    so sieht er jetzt aus


    if(IsAMemberFromFraktion(GetPlayerVehicleID(playerid)) != SpielerInfo[playerid][pFraktion])return SendClientMessage(playerid, -1, "Du hast die Autoschlüssel nicht!");


    das ist der stock dazu

    stock IsAMemberFromFraktion(vehicleid)
    {
    for(new j = 0;j<sizeof lspdcars;j++)if(vehicleid == lspdcars[j])return 1;
    for(new j = 0;j<sizeof sfpdcar;j++)if(vehicleid == sfpdcar[j])return 2;
    for(new j = 0;j<sizeof armyauto;j++)if(vehicleid == armyauto[j])return 3;
    for(new j = 0;j<sizeof MedicVehs;j++)if(vehicleid == MedicVehs[j])return 4;
    for(new j = 0;j<sizeof LCNVehs;j++)if(vehicleid == LCNVehs[j])return 5;
    for(new j = 0;j<sizeof YakuzaVehs;j++)if(vehicleid == YakuzaVehs[j])return 6;
    for(new j = 0;j<sizeof PraesiVehs;j++)if(vehicleid == PraesiVehs[j])return 7;
    for(new j = 0;j<sizeof HitmenVehs;j++)if(vehicleid == HitmenVehs[j])return 8;
    for(new j = 0;j<sizeof FahrschulVehs;j++)if(vehicleid == FahrschulVehs[j])return 10;
    for(new j = 0;j<sizeof BikerVehs;j++)if(vehicleid == BikerVehs[j])return 11;
    for(new j = 0;j<sizeof GrooveVehs;j++)if(vehicleid == GrooveVehs[j])return 12;
    for(new j = 0;j<sizeof BallasVehs;j++)if(vehicleid == BallasVehs[j])return 13;
    for(new j = 0;j<sizeof a69vehs;j++)if(vehicleid == a69vehs[j])return 14;
    for(new j = 0;j<sizeof VagosVehs;j++)if(vehicleid == VagosVehs[j])return 15;
    for(new j = 0;j<sizeof AztecasVehs;j++)if(vehicleid == AztecasVehs[j])return 16;
    for(new j = 0;j<sizeof RifaVehs;j++)if(vehicleid == RifaVehs[j])return 17;
    for(new j = 0;j<sizeof TerrorVehs;j++)if(vehicleid == TerrorVehs[j])return 18;
    for(new j = 0;j<sizeof FBIVEHS;j++)if(vehicleid == FBIVEHS[j])return 19;
    for(new j = 0;j<sizeof FeuerwehrVehs;j++)if(vehicleid == FeuerwehrVehs[j])return 20;
    for(new j = 0;j<sizeof RMVehs;j++)if(vehicleid == RMVehs[j])return 21;
    for(new j = 0;j<sizeof oamtvehs;j++)if(vehicleid == oamtvehs[j])return 22;
    for(new j = 0;j<sizeof lvpdVehs;j++)if(vehicleid == lvpdVehs[j])return 23;
    return 0;
    }

  • Lasse dir das mal Printen dann siehst du ja was dort herrauskommt.


    Code
    IsAMemberFromFraktion(GetPlayerVehicleID(playerid))

    Aber so wie das aussieht müsste es gehen wenn du ein Fahrzeug Spawnst und deine SpielerInfo[playerid][pFraktion] Varriable 0 ist dürfte es gehen oder ?

  • if(IsAMemberFromFraktion(GetPlayerVehicleID(playerid)) != SpielerInfo[playerid][pMember] && IsAMemberFromFraktion(GetPlayerVehicleID(playerid)) != SpielerInfo[playerid][pLeader])return SendClientMessage(playerid, -1, "Du hast die Autoschlüssel nicht!");

    Also hier musst du || verwenden, sonst heißt es ja, dass er Member und Leader sein muss ^^


    Kannst ja mal wenn das nicht gehen sollte einen print Debug machen und schauen, was er da ausgibt :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Achso, ja wie oben gesagt er fragt dann ab ob deine Fraktionsid = 0 ist.
    Vorher ist es Logisch dass es ging weil wenn er Leader war Member = 0 und bei ein Member war Leader = 0
    Du musst ermal abfragen ob es überhaupt ein Fraktionsfahrzeug ist.


    So ungefähr

    Code
    abfrage ob es ein Fraktionsfahrzeug ist 
    {
    ja
            if(IsAMemberFromFraktion(GetPlayerVehicleID(playerid)) != SpielerInfo[playerid][pFraktion])return SendClientMessage(playerid, -1, "Du hast die Autoschlüssel nicht!");
    }
    else
    {
    Nein 
    }


    Also hier musst du || verwenden, sonst heißt es ja, dass er Member und Leader sein muss ^^
    Kannst ja mal wenn das nicht gehen sollte einen print Debug machen und schauen, was er da ausgibt :)

    Er hat das Problem dass es jetze nicht Funktioniert wenn wo er Leader und Member gelöscht hat.

  • Frag doch erstmal ab ober überhaupt in einer fraktion ist, bevor du die ganzen autos durchgeht, damit sparrst auch bissel ;D


    if(SpielerInfo[playerid][pFraktion]>=1)
    {
    if(IsAMemberFromFraktion(GetPlayerVehicleID(playerid)) != SpielerInfo[playerid][pFraktion])return SendClientMessage(playerid, -1, "Du hast die Autoschlüssel nicht!");
    //motor an...
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen