Beiträge von Opa_Schlumpf

    Jetzt mal der ganze Code:
    stock CheckPlayerBan(playerid)
    {
    SendClientMessage(playerid,COLOR_ROT,"Sie wurden von diesen Server gebannt!");
    new serial[50],string[125];
    printf("allg %i 01",playerid);
    gpci(playerid,serial,sizeof(serial));
    printf("allg %i 02",playerid);
    printf("Serial: %s",serial);
    new rightstate=MySQLCheckField("banlist","BanSerial",serial);
    printf("State: %i",rightstate);
    new time=strval(MySQLGetData("banlist","BanTime","BanSerial",serial));
    printf("Time: %i",time);
    new isip=strcmp(MySQLGetData("banlist","BanIP","BanSerial",serial),GetIPasRangeIP(playerid),true);
    printf("IsIP: %i",isip);
    if(rightstate==1 && time==0 && isip==0)
    {
    printf("perma");
    SendClientMessage(playerid,COLOR_ROT,"Sie wurden von diesen Server gebannt!");
    printf("perma 01");
    SendClientMessage(playerid,COLOR_ROT,"Art: Permanenter Spielausschluss");
    printf("perma 02");
    format(string,sizeof(string),"Admin: %s",MySQLGetData("banlist","Banner","BanSerial",serial));
    printf("perma 03");
    SendClientMessage(playerid,COLOR_ROT,string);
    printf("perma 04");
    format(string,sizeof(string),"Grund: %s",MySQLGetData("banlist","BanReason","BanSerial",serial));
    printf("perma 05");
    SendClientMessage(playerid,COLOR_ROT,string);
    printf("perma 06");
    Kick(playerid);
    return 1;
    }
    if(rightstate==1 && time!=0 && isip==0)
    {
    printf("time 01");
    if(gettime()<time)
    {
    printf("time 02");
    new year,month,day,hour,minute,second;
    TimestampToDate(time, year, month, day, hour, minute, second, 0, 0);
    SendClientMessage(playerid,COLOR_ROT,"Sie wurden von diesen Server gebannt!");
    format(string,sizeof(string),"Art: Zeitlich begrenzter Ban (bis %02i.%02i.%04i %02i:%02i)",day,month,year,hour,minute);
    SendClientMessage(playerid,COLOR_ROT,string);
    format(string,sizeof(string),"Admin: %s",MySQLGetData("banlist","Banner","BanSerial",serial));
    SendClientMessage(playerid,COLOR_ROT,string);
    format(string,sizeof(string),"Grund: %s",MySQLGetData("banlist","BanReason","BanSerial",serial));
    SendClientMessage(playerid,COLOR_ROT,string);
    printf("time 03");
    Kick(playerid);
    printf("time 04");
    return 1;
    }
    else MySQLDestroyDataField("banlist","BanSerial",serial);
    }
    return 1;
    }


    Was habe ich probiert?
    Wenn es mit den Texten mache braucht er ~6 Anläufe danach kommen alle Texte und man wird gekickt.
    Ohne Texte braucht er ~3 Anläufe und wird gekickt..
    Wenn ich dieses stock bei OnPlayerConnect ausklammere funktioniert das Script wie immer...
    Daher kann es nur daran liegen..
    Die Datenbank und die Abfragen haben keine Fehler da ich bereits jede Variable printe..


    Warum braucht er mehrere Connect versuche um es richtig zu machen?
    Immerhin sind es ja nur paar Variablen,Abfragen und Befehle wie jedes andere System...


    Danke schonmal für eure Zeit.

    So..


    habe mal zwei kleine Tests gemacht und zwar.


    Wenn ich den Text drinnen lasse muss er 3 mal neu connecten also 3 mal "Server is restarting" und wird danach gekickt.
    Dann habe ich nurnoch Kick(playerid); übergelassen und er brauchte nur 2 Anläufe..


    Komisch..
    Die Variablen waren bei beiden Verbindungsversuche komplett gleich..

    Eben nicht.
    Zuerst dauert es eine Zeit und dann kommt einfach..
    The Server is restarting..


    Was scripte ich eig. immer für komplizierte Sachen :D


    Ja aber ich sehe an den prints genau wie weit er es macht..
    Und er macht die ganzen Commands durch..
    Der Server crasht ja nicht irgendwie der Spieler..
    Ich probier mal jede Zeile durch..

    Guten Tag.


    Auch ich brauche wiedermal einen Rat...


    Gleich mal der Code:
    printf("time 02");
    new year,month,day,hour,minute,second;
    //TimestampToDate(strval(time, year, month, day, hour, minute, second, 0, 0);
    SendClientMessage(playerid,COLOR_ROT,"Sie wurden von diesen Server gebannt!");
    format(string,sizeof(string),"Art: Zeitlich begrenzter Ban (bis %02i.%02i.%04i %02i:%02i)",day,month,year,hour,minute);
    SendClientMessage(playerid,COLOR_ROT,string);
    format(string,sizeof(string),"Admin: %s",MySQLGetData("banlist","Banner","BanSerial",serial));
    SendClientMessage(playerid,COLOR_ROT,string);
    format(string,sizeof(string),"Grund: %s",MySQLGetData("banlist","BanReason","BanSerial",serial));
    SendClientMessage(playerid,COLOR_ROT,string);
    printf("time 03");
    Kick(playerid);
    printf("time 04");
    Es wird alles soweit ausgeführt und "time 04" ausgegeben.
    Aber Ingame erscheint kein Text nichts und Ingame kommt nach gefühlten 10 Sekunden "The Server is restarting".
    Obwohl er weiter läuft..


    Das ganze befindet sich unter OnPlayerConnect...


    MySQL kann alles auslesen usw..


    Hoffe ihr könnt mir diesmal helfen was nicht so oft der Fall war :P


    EDIT//
    Habe eine zweite Abfrage drinnen nur mit dem Perma Ban..
    Sind andere MySQL Abfragen usw. aber es funktioniert wieder nicht.
    Kann man eigentlich schon ab OnPlayerConnect Nachrichten etc. schreiben und einen Spieler kicken?

    Schau dir MrMonat an..
    Der erklärt alles.
    Von der Server Installation und der ersten Zeile bishin zu komplexeren Sachen...


    Versuch am besten Anfangs die Arten der Variablen und die Anwendung zu lernen.
    Wennst das raus hast brauchst nurnoch die Funktionen lernen und schon bist du mitten drinnen..

    So wirst keinen finden ich würde es so machen:
    Schau dir Tutorials an usw.
    Denk logisch und schau immer warum diese Funktion im Tutorial verwendet wird.
    Verwende dazu am besten das Wiki.


    Wenn was nicht klappt kannst ja immernoch hier einen Thread aufmachen und nachfragen was falsch ist.
    Und somit lernst du wieder dazu..


    Eigeninitiative ist angesagt..

    Also ich werde mir das Spiel die nächsten Wochen sicher nicht kaufen.
    Ich hasse Zombie Spiele wo die Zombies dumm sind und das sind sie.
    In WarZ kann man einfach von denen davonlaufen denn sie können ja nicht sprinten oder ähnliches.
    Daher braucht man auch nicht taktisch und leise vorgehen.


    Sonst gefällt mir das Konzept richtig gut.

    Mach mal das speichern so: