Problem beim Zollsystem

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 Breadfishler,
    Ich hab ein kleines Problem bei meinem Zollsystem und zwar übernimmt er nicht die weiteren tore, was ich damit genau meine ist
    mein erstes definiertes Tor in meinem enum funktioniert ohne Probleme es schließt auch ohne Probleme nun kommt er fehler er springt nicht weiter bei den anderen toren. Was ich vllt vermute ist das er nicht bei der For schleife alle definierten tore durch geht.
    Wäre sehr nett wenn eine mir helfen könnte , da ich nun mit meinem Alphabet zu ende bin.


    enum :


    enum zollsystem{
    z_id, z_torid, Float: zollx, Float: zolly, Float: zollz, Float: zollax, Float: zollay, Float: zollaz,
    Float: azollx, Float: azolly, Float: azollz, Float: azollax, Float: azollay, Float: azollaz, bool: zollvar, bool: zolllock
    };
    #define MAX_ZOLLE 20
    new ZollInfo[MAX_ZOLLE][zollsystem] = {
    {0,978,53.61148071,-1525.98864746,4.87745094,0.00000000,0.00000000,83.37002563,53.61148071,-1525.98864746,-6.87745094,0.00000000,0.00000000,83.37002563,false,false},
    {1,978,55.77261353,-1539.03112793,4.95321989,0.00000000,0.50000000,79.91503906,55.77261353,-1539.03112793,-6.95321989,0.00000000,0.50000000,79.91503906,false,false},
    {2,978,-981.43225098,-381.12454224,36.21669388,0.00000000,0.00000000,350.00000000,-981.43225098,-381.12454224,26.21669388,0.00000000,0.00000000,350.00000000,false,false}


    nur eine Auschnitt


    der command:



    ocmd:zoll(playerid,params[])
    {
    #pragma unused params
    for(new i;i<sizeof(ZollInfo);i++){
    if(ZollInfo[i][zolllock] == true) return SendClientMessage(playerid,COLOR_WHITE,"Der Zoll wurde gesperrt!");
    if(IsPlayerInRangeOfPoint(playerid, 4.0, ZollInfo[i][zollx], ZollInfo[i][zolly], ZollInfo[i][zollz])){
    if(ZollInfo[i][zollvar] == false){
    GivePlayerMoney(playerid, -100);
    SendClientMessage(playerid, COLOR_GREEN, "Zollgebühr in Höhe von 100$ bezahlt | Gute Weiterfahrt!");
    MoveObject(ZollInfo[i][z_id],ZollInfo[i][azollx],ZollInfo[i][azolly],ZollInfo[i][azollz], 3.5, ZollInfo[i][azollax],ZollInfo[i][azollay],ZollInfo[i][azollaz]);
    ZollInfo[i][zollvar] = true;
    SetTimer("closegate", 3000, 0);
    }
    }else{ return SendClientMessage(playerid,COLOR_WHITE,"Du bist an keinem Zoll!");}
    }
    return 1;
    }


    auch die tore werden erstellt ohne probleme


    for(new i=0;i<MAX_ZOLLE;i++){
    ZollInfo[i][z_id] = CreateObject(ZollInfo[i][z_torid],ZollInfo[i][zollx],ZollInfo[i][zolly],ZollInfo[i][zollz],ZollInfo[i][zollax],ZollInfo[i][zollay],ZollInfo[i][zollaz]);
    }


    Ich hoffe eine rkann mir helfen.
    ich hab es auch bei dem command auch anderes probiert
    mit
    for(new i=0;i<MAX_ZOLLE;i++)

    aber dort ist es das selbe und es macht auch keinen großen unterschied zu for(new i;i<sizeof(ZollInfo);i++)


    /Edit
    Ich habe noch etwas rum getestet und kam zu dem ergebnis das die Werte in der for schleife nicht durchgegangen werden. Sprich ich kann in
    i bei der for schleife den wert 1 geben und ich kann nur das Tor mit der id 1 aufmachen
    vllt bringt es was in der Problemlösung , ich selbst hab den fehler immer noch nicht gefunden.

  • else{ return SendClientMessage(playerid,COLOR_WHITE,"Du bist an keinem Zoll!");}


    Das hier ist dein Problem,
    bei einem Fail wird die schleife sofort abgebrochen, das ist nicht Sinn der Sache^^


    besser wäre das wenn du erst am ende Prüfst ob er an irgendeinem Tor ist.
    new bool:failed;
    for(new i;i<sizeof(ZollInfo);i++)
    {
    if(ZollInfo[i][zolllock] == true) return SendClientMessage(playerid,COLOR_WHITE,"Der Zoll wurde gesperrt!");
    if(IsPlayerInRangeOfPoint(playerid, 4.0, ZollInfo[i][zollx], ZollInfo[i][zolly], ZollInfo[i][zollz]))
    {
    if(ZollInfo[i][zollvar] == false)
    {
    GivePlayerMoney(playerid, -100);
    SendClientMessage(playerid, COLOR_GREEN, "Zollgebühr in Höhe von 100$ bezahlt | Gute Weiterfahrt!");
    MoveObject(ZollInfo[i][z_id],ZollInfo[i][azollx],ZollInfo[i][azolly],ZollInfo[i][azollz], 3.5, ZollInfo[i][azollax],ZollInfo[i][azollay],ZollInfo[i][azollaz]);
    ZollInfo[i][zollvar] = true;
    SetTimer("closegate", 3000, 0);
    failed=false;
    break;
    }
    }
    else failed=true;
    }
    if(failed) return SendClientMessage(playerid,COLOR_WHITE,"Du bist an keinem Zoll!");
    so dürfte das eigentlich funktionieren

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski