Abfragen ob Name schon existiert?

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
  • Moin



    Ich habe mal eine kurze Frage und zwar, komme ich gerade nicht weiter ..
    Ich möchte halt abfragen ob der Crewname schon vergeben ist, nur blicke ich da nicht ganz durch..
    Hoffe ihr könnt mir da weiter helfen ^^



    Code:



    ocmd:crewerstellen(playerid, params[])
    {
    if(PlayerDaten[playerid][pEinfuerung] == 1)return SendClientMessage(playerid,ORANGE," Du bist noch in der Einführung!");
    if(PlayerDaten[playerid][pLogin] == 0)return SendClientMessage(playerid,ORANGE ," Du bist nicht Eingeloggt!");
    //if(PlayerDaten[playerid][pCrewCreated] == 1)return SendClientMessage(playerid, ORANGE, " Du hast bereits eine Crew erstellt!");
    //if(PlayerDaten[playerid][pLevel] == 25)return SendClientMessage(playerid, ORANGE, " Um eine Crew erstellen zu können benötigst du Level 25!");
    //if(PlayerDaten[playerid][pGeld] < 75000)return SendClientMessage(playerid, ORANGE, " Zum erstellen einer Crew wird 75.000$ benötigt!");
    new Crewname[32], Crewpfad[32];
    if(sscanf(params, "s[32]", Crewname))return SendClientMessage(playerid, ORANGE, "/createcrew [Wie soll deine Crew heißen?(MAX 32 Zeichen])]");
    format(Crewpfad,sizeof(Crewpfad),"/Crews/%i.ini", CrewID++);
    {
    if(dini_Int(Crewpfad,"Crewname"))
    {
    new string[90];
    format(string, sizeof(string), "FEHLER: Die Crew mit dem Namen %s Existiert bereits!", Crewname);
    SendClientMessage(playerid, ROT, string);
    }
    else
    {
    new string[90];
    format(string, sizeof(string), "SYSTEM: Die Crew mit dem Namen %s wurde erfolgreich erstellt!", Crewname);
    SendClientMessage(playerid, GRUN, string);
    SendClientMessage(playerid, ORANGE, "• CREW SYSTEM •");
    SendClientMessage(playerid, ORANGE, " Lade nun Leute mit /ceinladen, in deiner Crew ein!");
    PlayerDaten[playerid][pCrewLeader] = 1;
    PlayerDaten[playerid][pCrewCreated] = 1;
    if(!fexist(Crewpfad))
    {
    dini_Create(Crewpfad);
    dini_Set(Crewpfad,"Crewleiter",SpielerName(playerid));
    dini_Set(Crewpfad,"Crewname", Crewname);
    }
    }
    }
    return 1;
    }

  • Nein das Problem ist ganz einfach, ich komme nicht weiter


    Ich will nicht die CrewID auslesen sondern den NAMEN der Crew.
    Aber nur wie Lese ich diesen aus? ^^


    Weil so wäre es ja Falsch:



    format(Crewpfad,sizeof(Crewpfad),"/Crews/%i.ini", CrewID++);
    {
    if(dini_Int(Crewpfad,"Crewname"))
    {


    }
    }


    Grüße

  • Nein, Was ich wissen will ist wie frage ich etwas AUS einer DATEI ab nicht die DATEI SELBST
    Also deutlicher kann ich mich wirklich nicht ausdrücken ..


    Syno
    Ich weiß .. Ich sagte ja auch schon es ist Falsch da ich NICHT weiss wie/welche Abfrage man dafür benötigt ..


    Grüße

  • Der Befehl will irgendwie noch nicht ganz.
    Die Crews werden zwar erstellt wie gewollt, nur kann man immer noch ein Crewnamen nehmen der aber eigentlich schon Vergeben ist.


    Code:




    ocmd:crewerstellen(playerid, params[])
    {
    if(PlayerDaten[playerid][pEinfuerung] == 1)return SendClientMessage(playerid,ORANGE," Du bist noch in der Einführung!");
    if(PlayerDaten[playerid][pLogin] == 0)return SendClientMessage(playerid,ORANGE ," Du bist nicht Eingeloggt!");
    //if(PlayerDaten[playerid][pCrewCreated] == 1)return SendClientMessage(playerid, ORANGE, " Du hast bereits eine Crew erstellt!");
    //if(PlayerDaten[playerid][pLevel] == 25)return SendClientMessage(playerid, ORANGE, " Um eine Crew erstellen zu können benötigst du Level 25!");
    //if(PlayerDaten[playerid][pGeld] < 75000)return SendClientMessage(playerid, ORANGE, " Zum erstellen einer Crew wird 75.000$ benötigt!");
    new Crewname[32], Crewpfad[32];
    if(sscanf(params, "s[32]", Crewname))return SendClientMessage(playerid, ORANGE, "/createcrew [Wie soll deine Crew heißen?(MAX 32 Zeichen])]");
    format(Crewpfad,sizeof(Crewpfad),"/Crews/%i.ini", CrewID++);
    {
    if(strcmp(dini_Get(Crewpfad,"Crewname"),Crewname,true)==0)
    {


    new string[90];
    format(string, sizeof(string), "SYSTEM: Die Crew mit dem Namen %s wurde erfolgreich erstellt!", Crewname);
    SendClientMessage(playerid, GRUN, string);
    SendClientMessage(playerid, ORANGE, "• CREW SYSTEM •");
    SendClientMessage(playerid, ORANGE, " Lade nun Leute mit /ceinladen, in deiner Crew ein!");
    PlayerDaten[playerid][pCrewLeader] = 1;
    PlayerDaten[playerid][pCrewCreated] = 1;
    dini_Create(Crewpfad);
    dini_Set(Crewpfad,"Crewleiter",SpielerName(playerid));
    dini_Set(Crewpfad,"Crewname", Crewname);
    }
    else
    {
    new string[90];
    format(string, sizeof(string), "FEHLER: Die Crew mit dem Namen %s Existiert bereits!", Crewname);
    SendClientMessage(playerid, ROT, string);


    }
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wie wäre es wenn du den Befehl mal returnst?


    ocmd:crewerstellen(playerid, params[])
    {
    if(PlayerDaten[playerid][pEinfuerung] == 1)return SendClientMessage(playerid,ORANGE," Du bist noch in der Einführung!");
    if(PlayerDaten[playerid][pLogin] == 0)return SendClientMessage(playerid,ORANGE ," Du bist nicht Eingeloggt!");
    //if(PlayerDaten[playerid][pCrewCreated] == 1)return SendClientMessage(playerid, ORANGE, " Du hast bereits eine Crew erstellt!");
    //if(PlayerDaten[playerid][pLevel] == 25)return SendClientMessage(playerid, ORANGE, " Um eine Crew erstellen zu können benötigst du Level 25!");
    //if(PlayerDaten[playerid][pGeld] < 75000)return SendClientMessage(playerid, ORANGE, " Zum erstellen einer Crew wird 75.000$ benötigt!");
    new Crewname[32], Crewpfad[32];
    if(sscanf(params, "s[32]", Crewname))return SendClientMessage(playerid, ORANGE, "/createcrew [Wie soll deine Crew heißen?(MAX 32 Zeichen])]");
    format(Crewpfad,sizeof(Crewpfad),"/Crews/%i.ini", CrewID++);
    {
    if(strcmp(dini_Get(Crewpfad,"Crewname"),Crewname,true)==0)
    {


    new string[90];
    format(string, sizeof(string), "SYSTEM: Die Crew mit dem Namen %s wurde erfolgreich erstellt!", Crewname);
    SendClientMessage(playerid, GRUN, string);
    SendClientMessage(playerid, ORANGE, "• CREW SYSTEM •");
    SendClientMessage(playerid, ORANGE, " Lade nun Leute mit /ceinladen, in deiner Crew ein!");
    PlayerDaten[playerid][pCrewLeader] = 1;
    PlayerDaten[playerid][pCrewCreated] = 1;
    dini_Create(Crewpfad);
    dini_Set(Crewpfad,"Crewleiter",SpielerName(playerid));
    dini_Set(Crewpfad,"Crewname", Crewname);
    }
    else
    {
    new string[90];
    format(string, sizeof(string), "FEHLER: Die Crew mit dem Namen %s Existiert bereits!", Crewname);
    SendClientMessage(playerid, ROT, string);
    return 1;


    }
    }
    return 1;
    }

  • Bitte krrigieren bei Fehler:

    Spoiler anzeigen


    ocmd:crewerstellen(playerid, params[])
    {
    if(PlayerDaten[playerid][pEinfuerung] == 1)return SendClientMessage(playerid,ORANGE," Du bist noch in der Einführung!");
    if(PlayerDaten[playerid][pLogin] == 0)return SendClientMessage(playerid,ORANGE ," Du bist nicht Eingeloggt!");
    //if(PlayerDaten[playerid][pCrewCreated] == 1)return SendClientMessage(playerid, ORANGE, " Du hast bereits eine Crew erstellt!");
    //if(PlayerDaten[playerid][pLevel] == 25)return SendClientMessage(playerid, ORANGE, " Um eine Crew erstellen zu können benötigst du Level 25!");
    //if(PlayerDaten[playerid][pGeld] < 75000)return SendClientMessage(playerid, ORANGE, " Zum erstellen einer Crew wird 75.000$ benötigt!");
    new Crewname[32], Crewpfad[32];
    if(sscanf(params, "s[32]", Crewname))return SendClientMessage(playerid, ORANGE, "/createcrew [Wie soll deine Crew heißen?(MAX 32 Zeichen])]");
    new variable;
    for(new i;i<MAX_CREWS;i++)
    {
    format(Crewpfad,sizeof(Crewpfad),"/Crews/%i.ini", i);
    if(strcmp(dini_Get(Crewpfad,"Crewname"),Crewname,true)==0)variable++;
    if(i==MAX_CREWS && variable > 0)
    {
    new string[90];
    format(string, sizeof(string), "FEHLER: Die Crew mit dem Namen %s Existiert bereits!", Crewname);
    SendClientMessage(playerid, ROT, string);
    break;
    }
    if(i==MAX_CREWS && variable==0)
    {
    new string[90];
    format(string, sizeof(string), "SYSTEM: Die Crew mit dem Namen %s wurde erfolgreich erstellt!", Crewname);
    SendClientMessage(playerid, GRUN, string);
    SendClientMessage(playerid, ORANGE, "• CREW SYSTEM •");
    SendClientMessage(playerid, ORANGE, " Lade nun Leute mit /ceinladen, in deiner Crew ein!");
    PlayerDaten[playerid][pCrewLeader] = 1;
    PlayerDaten[playerid][pCrewCreated] = 1;
    dini_Create(Crewpfad);
    dini_Set(Crewpfad,"Crewleiter",SpielerName(playerid));
    dini_Set(Crewpfad,"Crewname", Crewname);
    break;
    }
    }
    return 1;
    }

  • So ich habe jetzt mal ein wenig rum gebastelt und ...
    Es geht immer noch nicht :D



    Es kann doch wohl nicht zu schwer sein, eine Abfrage zu machen die überprüfen soll ob es den Crewnamen schon gibt oder NICHT :(


    Hier mein neuer Code:


    ocmd:crewerstellen(playerid, params[])
    {
    for(new crewid=1;crewid<MAX_CREWS;crewid++)
    {
    if(PlayerDaten[playerid][pEinfuerung] == 1)return SendClientMessage(playerid,ORANGE," Du bist noch in der Einführung!");
    if(PlayerDaten[playerid][pLogin] == 0)return SendClientMessage(playerid,ORANGE ," Du bist nicht Eingeloggt!");
    {
    new name[32], Crewdatei[50];
    format(Crewdatei,50,"/Crews/%d.ini",crewid);
    if(sscanf(params,"s[32]", name)) return SendClientMessage(playerid,ORANGE," Benutzung: /crewerstellen [Crewname]");
    if(strlen(name) > 32)return SendClientMessage(playerid,ROT," Der Crewname darf Maximal nur 32 Zeichen groß sein!");
    if(!strcmp(dini_Get(Crewdatei,"Crewname"),name,false))
    {
    new string[90];
    format(string, sizeof(string), "SYSTEM: Die Crew mit dem Namen %s wurde erfolgreich erstellt!", name);
    SendClientMessage(playerid, GRUN, string);
    SendClientMessage(playerid, ORANGE, "• CREW SYSTEM •");
    SendClientMessage(playerid, ORANGE, " Lade nun Leute mit /ceinladen, in deiner Crew ein!");
    CrewCreate(name);
    return 1;
    }
    else
    {
    SCM(playerid, ORANGE, " Gibts schon!");
    return 1;
    }
    }
    }
    return 1;
    }



    Ich hoffe es kann mir einer mal weiter helfen, ich zerbreche langsam aber sicher dran :D

  • Bau das ganze mal so auf!



    ocmd:crewerstellen(playerid,params[])
    {
    new name[55];
    if(sscanf(params,"s",name))return SendClientMessage(playerid,ORANGE," Benutzung: /crewerstellen [Crewname]");
    new datei[75];
    format(datei,75,"/Crews/%s.ini", name);
    if(dini_Exists(datei))return SCM(playerid, ORANGE, " Gibts schon!");
    new string[90];
    format(string, sizeof(string), "SYSTEM: Die Crew mit dem Namen %s wurde erfolgreich erstellt!", name);
    SendClientMessage(playerid, GRUN, string);
    SendClientMessage(playerid, ORANGE, "• CREW SYSTEM •");
    SendClientMessage(playerid, ORANGE, " Lade nun Leute mit /ceinladen, in deiner Crew ein!");
    dini_Create(datei);
    }

  • Dieser Code wird mir nichts bringen da du:


    format(datei,75,"/Crews/%s.ini", name);




    Mit einem 'string' arbeitest, ich habe die Datei aber als Integer angegeben/erstellt.
    Um später besser zu zuordnen wie viele Crews es gibt, und um diese später wie ich es gewohnt bin auszulesen.


    Ich benötige Bloß nur die Funktion mit welcher man das alles bewältigen kann, mehr verlang ich nicht :D

  • Beitrag von Equ ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.