2. for Schleife wird nicht aufgerufen?

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
  • Hey Com,


    Da ich jetzt festellen will ob der angegebene Name schon vegeben ist habe ich ein Problem.
    Nach der 1. for Schleife wird nichts mehr aufgerufen.


    Die prints sind nicht vorhanden:


    stock CreateDynamicFaction(playerid,name[])
    {
    new string[128], i, query[256];
    if(strlen(name) < 0 || strlen(name) > 64) return SendClientMessage(playerid,WHITE,"["HTML_ROT"Fehler"HTML_WHITE"]: Der eingegebene Fraktionsname war zu lang, bitte verkürze ihn!");
    for(; i < MAX_FACTIONS; i++)
    {
    if(strcmp(Fraktion[i][f_name], name, true))
    {
    SendClientMessage(playerid,WHITE,"["HTML_ROT"Fehler"HTML_WHITE"]: Der angegebene Name ist bereits vorhanden!");
    break;
    }
    }
    for(; i < MAX_FACTIONS; i++)
    {
    print("Ausgeführt!");
    if(Fraktion[i][f_inuse] == false)
    {
    print("Ausgeführt!");
    Fraktion[i][f_inuse] = true;
    Fraktion[i][f_id] = i;
    format(Fraktion[i][f_name],64,"%s",name);
    format(Fraktion[i][f_creator],24,"%s",PlayerInfo[playerid][Name]);
    format(string,sizeof(string),"["HTML_Grün"Info"HTML_WHITE"]: Du hast folgende Fraktion erstellt: %s",name);
    SendClientMessage(playerid,WHITE,string);
    SendClientMessage(playerid,WHITE,"["HTML_Grün"Info"HTML_WHITE"]: Mit ""/editcreatedfraktion"" kannst du der Fraktion Rechte zuweisen!");
    US_PlayerInfo[playerid][Fraktionsid] = i;


    format(query,sizeof(query),"INSERT INTO `faction` (`f_id`,`f_name`,`f_creator`) VALUES ('%i','%s','%s')",i, Fraktion[i][f_name], Fraktion[i][f_creator]);
    sql_free_result(sql_query(shandle[datarow], query, QUERY_THREADED));
    print(query);
    break;
    }
    }
    return 1;
    }


    Gruss

  • Solltest halt das i im Kopf Schleife deklarieren, dann hast du solche Probleme nicht.
    Nach der 1. Schleife wird i = MAX_FACTIONS sein, falls break nicht eintrifft. Da i = MAX_FACTIONS ist,kann die 2. Schleife nie gestartet werden. Solltest also i zurücksetzen.

  • Solltest halt das i im Kopf Schleife deklarieren, dann hast du solche Probleme nicht.
    Nach der 1. Schleife wird i = MAX_FACTIONS sein, falls break nicht eintrifft. Da i = MAX_FACTIONS ist,kann die 2. Schleife nie gestartet werden. Solltest also i zurücksetzen.


    Habs schon selbst rausgefunden habe jetzt darunter i = 0 geschrieben :D
    Danke trotzdem


    Edit: Jetzt geht die for Schleife nr 1 nicht, ich kann 2 mal die Fraktion lala erstellen?

    Einmal editiert, zuletzt von NicoWiss ()

  • Was verstehst du denn daran nicht?
    Hier prüfst du nicht den return Wert gegen 0:
    if(strcmp(Fraktion[i][f_name], name, true))
    Prüf doch ob die Funktion strcmp dir 0 zurück gibt und schon bist du fertig.



    Zitat

    Hä und was ist dann jetzt falsch muss ich statt true false schreiben?


    Nein, lesen was ich geschrieben habe und am besten den Wiki Artikel dazu.


  • Das kapier ich nicht die Wiki auch nicht was returnt denn mein strcmp?