Beiträge von Lionel_Jermani

    Vielen Dank erst einmal für deine Antwort, aber was ist daran nicht Deutsch? xD Ich hab mich vlt. ein bisschen ungeschickt ausgedrückt, da gebe ich dir recht.


    Also, jedes Team hat seine eigene .txt Datei. Wenn ein Spieler eingeladen wird, dann wird der in die Text Datei hinzugefügt. Dies wird dann so gespeichert: Name|Name1|Name2|Name3|Name4|Name5
    Wenn jetzt aber jemand aus dem Team rausgeworfen wird, dann muss natürlich der Name des Spielers auch aus der Team.txt Datei verschwinden. Dazu brauche ich eine Funktion, die nach den Namen des Spielers sucht und diesen dann löscht.


    Ich hoffe du verstehst jetzt was ich meine :D


    EDIT: "Warum speicherst du die Namen nicht getrennt von einem Zeilenumbruch?


    Dann ließt du einfach einen Namen bis zum Zeichen "\n" ein und löscht diesen dann gegebenenfalls.
    Jedenfalls wenn ich das so richtig verstanden habe, da nicht ganz klar ist was du machen willst. "


    Wenn ich die in jeweils einer neuen Zeile speichern lasse, dann habe ich viel zu viele Leerzeilen in dem Befehl /foff.


    COMMAND:foff(playerid)
    {
    new string[MAX_STRING];
    format(iStr, sizeof(iStr), "[FACTION] OFFLINE %s members:", PlayerInfo[playerid][PTeamName]);
    SendClientMessage(playerid, COLOR_HELPEROOC, iStr);
    format(string,sizeof(string), "fLogs/%s.fam.log",PlayerInfo[playerid][PTeamName]);
    new File:hFile = fopen(string, io_read);
    while(fread(hFile,string)) SendClientMSG(playerid, COLOR_LIGHTGREY, string); //hier wird die Datei so abgelesen Name1Name2Name3NameName5Name6
    fclose(hFile);


    return 1;
    }

    Guten Abend,


    ich habe folgendes Problem: Ich möchte ein /foff Befehl scripten. Dazu habe ich für jedes Team eine eigene .txt Datei angelegt. Wenn der Spieler invited wird dann sieht das so aus: Michael_JohnsonDominic_Vancini
    Nun weiß ich nicht, wie eine Zeile gelöscht wird, falls zum Beispiel Dominic_Vancini uninvited wird. Ist ein bisschen dumm, wenn dann Spieler angezeigt werden, die gefeuert wurden!


    Ich habe es versucht mit diesem Code, aber nichts hat geklappt. Was ich eigentlich brauch ist eine Funktion, die die Datei nach dem Spielernamen scannt und diesen dann löscht.
    new File:hFile;
    hFile = fopen(str, io_append);

    format(Cube,sizeof(Cube),"\n\r");
    while(fread(hFile, string))
    {
    // if(!strcmp(string, PlayerName(iPlayer), false)){
    if(strcmp(string, PlayerName(iPlayer), false, strlen(PlayerName(iPlayer))) == 0){
    fdeleteline(str, string);
    fwrite(str, Cube);


    }
    }
    fclose(hFile);//end*/
    Liebe Grüße,


    Lionel


    PS: Vielen Dank für eure Hilfe schonmal im voraus

    Hey Leute,


    ich hab selber ein /ojail command gescripted. Das Problem ist nur, wenn ich jemanden /ojaile wird der nur für 0 minuten gejailt und ich möchte das der so gejailt wird, wie es im Commandtext angegeben ist.
    Vielen Dank für eure Hilfe!!
    if(strcmp(cmd,"/ojail",true)==0)
    {
    if(PlayerInfo[playerid][power] >= 2)
    {
    new tmp[256], reason[256];
    // new output[256];
    new nick[MAX_STRING];
    new stringa[MAX_STRING];
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientUsage(playerid, cmd, "[Name] [time] [reason] <-- obbligatory");
    return 1;
    }
    format(nick,sizeof(nick),"%s.dudb.sav",tmp);
    new time;
    time = strval(tmp);
    /* if(!strval(tmp))
    {
    SendClientUsage(playerid, cmd, "[Name] [time] [reason] <-- obbligatory");
    return 1;
    }*/
    /* if(time > 500)
    {
    SendClientWarning(playerid, "Max jail time its 500 minutes");
    return 1;
    }
    if(time < 1)
    {
    SendClientWarning(playerid, "Minimum jail time its 1 minutes");
    return 1;
    }*/
    reason = strrest(cmdtext,idx);
    if(!strlen(reason))
    {
    SendClientUsage(playerid, cmd, "[Name] [time] [reason] <-- obbligatory");
    return 1;
    }
    SendClientMessage(playerid, COLOR_WHITE, nick);
    if(dini_Exists(nick))
    {
    /*if(dini_Int(nick,"power") >= PlayerInfo[playerid][power])
    {
    SendClientMessage(playerid,COLOR_RED,"DONT TRY TO BAN A ADMIN !");
    format(stringa,sizeof(stringa),"[WARNING]%s tried to ban admin %s",PlayerName(playerid),PlayerName(giveplayerid));
    SendAdminMessage(COLOR_RED,stringa);
    return 1;
    }*/
    dini_IntSet(nick,"jail",1);
    //dini_IntSet(nick,"jailtime",output);
    format(stringa,sizeof(stringa),"(%s), Succesfully jailed for %d secconds.",nick,time);
    SendClientInfo(playerid, stringa);
    /*format(stringa,sizeof(stringa),"Reason: %s",reason);
    SendClientMessage(playerid,COLOR_GREY,stringa);*/
    dini_Set(nick,"jailedby",PlayerName(playerid));
    //dini_Set(nick,"jailedbyreason",reason);
    dini_IntSet(nick,"jailtime",tmp);
    new currentdate[MAX_STRING],year,month,day;
    getdate(year,month,day);
    format(currentdate,sizeof(currentdate),"%d/%d/%d",day,month,year);


    dini_Set(nick,"date",currentdate);
    return 1;
    }
    else
    {
    format(stringa,sizeof(stringa),"%s (%s), Account not found",tmp,nick);
    SendClientError(playerid, stringa);
    return 1;
    }
    }
    return 1;
      }