Beiträge von LeonMrBonnie

    Die Funktion ist schon relativ alt und hatte anfangs SQLite genutzt wegen dem DB_Escape...
    SendBan schickt nur eine Chatnachricht ab, mehr nicht.


    Aber Nein, es treten keine Fehler auf. Sobald man connectet kommt wie gesagt nur die "Incoming connection:" Nachricht und das wars. Crashdetect ist auch drauf.
    Nach einem Restart des Servers funktioniert ja auch auf einmal alles.

    Irgendwas stimmt mit meinem Bannsystem nicht.
    Sobald ich jemanden banne, kann diese Person auch wenn sie entbannt ist den Server nicht betreten.
    Sobald man connecten will kommt sofort "Server closed the connection." und es passiert nichtsmehr.
    Im Log steht auch nur: "[12:20:59] [connection] incoming connection: **.**.**.**:***** id: 0" (IP zensiert)
    Nach einem Restart funktioniert es wieder, und man sieht dann auch die Banninfo.
    Es ist auch egal mit welchem Accountnamen man sich einloggt, sogar wenn die IP nicht gebannt wurde, kommt man nichtmehr auf den Server.


    Banbefehl:

    CMD:ban(playerid, params[])
    {
    if(pInfo[playerid][pAdmin] < 2) return SendCmdMessage(playerid);


    new targetid, Reason[128];
    if(sscanf(params, "us[128]", targetid, Reason)) return SendUsageMessage(playerid,"/ban [ID/Name] [Grund]");

    if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"Der gewählte Spieler ist nicht auf dem Server.");
    if(strlen(Reason) > 128) return SendErrorMessage(playerid,"Der gewählte Grund ist zu lang.");

    printf("[warning] %s bannt %s mit dem Grund %s",GetName(playerid),GetName(targetid),Reason);
    BanWithReasonNoIP(playerid, targetid, Reason);



    return 1;
    }

    BanWithReasonNoIP:

    BanWithReasonNoIP(playerid = INVALID_PLAYER_ID, targetid, reason[])
    {
    if(playerid == INVALID_PLAYER_ID) return 1;
    new Query[256], string[145], day, month, year, second, minute, hour, datestring[24], timestring[24];
    getdate(day, month, year);
    gettime(hour, minute, second);
    format(datestring, sizeof(datestring), "%02d.%02d.%d", year, month, day);
    format(timestring, sizeof(timestring), "%02d:%02d:%02d", hour, minute, second);



    mysql_format(handle,Query, sizeof(Query), "INSERT INTO `banned` (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`, `STAMP`, `DBID`) VALUES ('%e', 'N/A', '%e', '%e', '%e', '%e','0','%d')", DB_Escape(GetName(targetid)), DB_Escape(reason), DB_Escape(GetName(playerid)), DB_Escape(datestring), DB_Escape(timestring),pInfo[targetid][pDbID]);
    mysql_pquery(handle,Query);
    format(string, sizeof(string), "BAN: %s hat %s permanent gebannt. [Grund: %s]", GetName(playerid), GetName(targetid), reason);
    SendBan(string);
    format(string, sizeof(string), "%s bannt %s [Grund: %s]",GetName(playerid),GetName(targetid),reason);
    Log(string,"ban");
    BanCounter++;
    TogglePlayerControllable(targetid,0);
    SetTimerEx("KickTimer", 100, true, "i", targetid);
    return 1;
    }


    Ich seh einfach den Fehler nicht...

    Hallo,
    ich biete hiermit mein selbstgeschriebenes 100% Selfmade Deathmatch Script zum Verkauf an.
    Das Script hat insgesamt ca. 13.000 Zeilen und basiert auf MySQL. (R41-4)
    Es wurde sehr viel auf Dynamik geachtet, und es wurde so wenig wie möglich hardcoded.
    Meinen Dev-Blog dazu kann man hier betrachten: [Dev-Blog] Deathmatch Gamemode (Nichtmehr aktuell)
    Vor dem Kauf darf man das Script natürlich betrachten und im Einsatz sehen.
    Ich gebe beim Kauf einen Monat Support für das Script.


    Zahlungsart: Paysafecard
    Preis: 30€ VHB

    Also meine Monitore sind auch beide von BenQ und ich kann mich nicht beschweren.
    Die Bewertungen schauen ja auch vielversprechend aus also würd ich mal sagen; Ja.

    Aktivier mal -d3, compile das Script neu und versuch dann den Fehler zu reproduzieren.
    Dann zeigt er die genaue Zeile an, in der, der Fehler gefunden wurde.


    Brauchst du garnicht;
    PlayerTextDrawSetString(pID,bcpdcard[2][pID], str);
    Hier ist jedesmal die playerid und der Index vertauscht.