Könnten hier Fehler auftreten?

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 Abend, ich habe gerade ein bisschen in meinem Testscript rumgeschrieben und habe halt ein "Enter/Exit" System gemacht.


    HIer mal der Code:
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
    //EINGÄNGE
    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,3.0,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;
    SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
    SetPlayerInterior(playerid,bInfo[i][b_interior]);
    SetPlayerVirtualWorld(playerid,i);
    SetPlayerShopName(playerid,bInfo[i][b_shopname]);
    return 1;
    }
    //AUSGÄNGE
    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,3.0,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))continue;
    SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    return 1;
    }
    return 1;
    }


    Was ich jetzt wissen will ist, ob es bei diesem Code eventuell irgendwann zu fehlern kommen kann, da ich ja 2 mal die gleiche Schleife abfrage (Nur mit umgedrehten Parametern. Können dort eventuell Fehler auftreten oder ist das save? (Getestet habe ich es, bisher keine Fehler und es funktioniert). Nur ich meine im Späteren Verlauf oder ist der generell save der Code ?

  • Wozu 2 Schleifen?..
    if(newkeys & KEY_SECONDARY_ATTACK){
    for(new i=0; i<sizeof(bInfo); i++){
    if(IsPlayerInRangeOfPoint(playerid,3.0,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z])){
    SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
    SetPlayerInterior(playerid,bInfo[i][b_interior]);
    SetPlayerVirtualWorld(playerid,i);
    return SetPlayerShopName(playerid,bInfo[i][b_shopname]);
    }
    else if(IsPlayerInRangeOfPoint(playerid,3.0,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]) && GetPlayerVirtualWorld(playerid) == i && GetPlayerInterior(playerid) == bInfo[i][b_interior]){
    SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    SetPlayerInterior(playerid,0);
    return SetPlayerVirtualWorld(playerid,0);
    }
    continue;
    }
    }


    #Handy


    //Edit: Hinzugefügt! @Post unten

    Mit freundlichen Grüßen
    ErikSon



    Scripte kleine Systeme auf Anfrage umsonst!
    Per PN könnt ihr mir gerne Scriptingfragen stellen.

    Einmal editiert, zuletzt von ErikSon ()


  • Vielen Dank, auf diese Möglichkeit wäre ich nicht gekommen. Habe nur gedacht, das ich eine Schleife für den Eingang und eine für den Ausgang brauche. An das "else" habe ich garnicht gedacht :D