Beiträge von Jeffry

    Doch, weil es desöfteren von My(SQL) Syntax Fehler auspucken kann.

    Poste bitte mal ein Beispiel, bei dem ein vorhandener, optional gesetzter Tick, in MySQL, einen Fehler erzeugt.
    Das dürfte ja kein Problem sein, wenn es so oft vorkommt.
    Ansonsten solltest du von deiner Aussage, dass es falsch ist, Abstand nehmen. Falsch ist es in gepostetem Code ohnehin nicht.



    Meiner Erfahrung nach kommt es fast immer zu Fehlern durch fehlende Ticks, daher wie gesagt die Empfehlung für Anfänger, die Ticks immer zu setzen. Das heißt ja im Umkehrschluss nicht, dass man ihnen nicht erklärt, dass sie optional sind. Es fängt nur nicht jeder als Profi an, daher gilt Anfangs erst mal, Fehler so gut wie möglich zu vermeiden. Das ist meine Meinung und Erfahrung.

    Aber ist nur meine Meinung.

    Das macht es aber keineswegs falsch.
    In vielen Fällen sind sie eben optional.


    Wenn es deine Meinung ist, dann ist das in Ordnung.
    Ich hingegen empfehle es, vor allem MySQL Anfängern, die ` und ' zu nutzen, um Fehler zu vermeiden.

    Also alle 10 Minuten sollen die News gezeigt werden...

    Heißt er stürzt genau dann ab, wenn er die ersten Nachrichten senden will.


    Ja, dann entferne mal das AudioHideMessage Include/Filterscript und teste es dann.

    Auch nochmal dazu, die Ticks sind einfach falsch. Genauso wie die Anführungszeichen..

    Nein.


    Sowohl die ` bei den Spaltenbezeichnern, als auch die ' bei den Werten sind ein Garant dafür, dass es auf jeden Fall klappt, da ein Wert als String (z.B.) ohne ' nicht funktioniert, und eine Spalte die z.B. Alter heißt ohne ` auch nicht funktioniert. Es ist daher zu empfehlen, wenn man sicher gehen will, diese immer zu setzen.

    Könnte dann dort ein Problem sein, denn in dem Code oben ist nichts falsch.


    Wie oft wird das serverNews denn per Timer aufgerufen (alle wieviele Minuten)?
    Stürzt es immer nach den 10 Minuten ab?
    Funktioniert es, wenn du die Include entfernst?

    meint ihr das hier

    Nein, du hattest '&f' stehen, es muss aber '%f' heißen.
    Die Ticks sind dort schon richtig.


    Aber du kannst die drei Queries zu einem zusammenführen, mache es so:
    public OnPlayerBuyCar(playerid,Model,Preis,Autohaus)//CARSYS
    {
    if(IsPlayerConnected(playerid) && !Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]])
    {
    CallRemoteFunction("M_GivePlayerMoney","id",playerid,-Preis);
    Gas[Model] = GetGasMax(GetVehicleModel(Model));
    SetParkPlatz(playerid,Autohaus);
    new name[MAX_PLAYER_NAME], str[700], x = Dtc_PlayerKey[playerid];
    GetPlayerName(playerid, name, sizeof name);
    mysql_format(handle, str, sizeof(str), "INSERT INTO `carsystem` (`CarOwner`) VALUES ('%s_%d');", name, x);
    mysql_pquery(handle, str);
    format(str, sizeof(str), "UPDATE `carsystem` SET `CarModel`='%d', `CarPos_X`='%f', `CarPos_Y`='%f', `CarPos_Z`='%f', `CarPos_A`='%f', `CarNitro`='0', `CarHyd`='0', `CarWheel`='0', `CarAusp`='0'",
    Model, PlayerCar[playerid][x][CarPos_x], PlayerCar[playerid][x][CarPos_y], PlayerCar[playerid][x][CarPos_z],PlayerCar[playerid][x][CarRotate]);
    format(str, sizeof(str), "%s, `CarSideL`='0', `CarSideR`='0', `CarFB`='0', `CarRB`='0', `CarSpoiler`='0', `CarRoof`='0', `CarHood`='0', `CarVents`='0', `CarLamps`='0'",str);
    format(str, sizeof(str), "%s, `CarPJ`='0', `CarC1`='0', `CarC2`='0', `Preis`='%d', `Neon`='0' , `Plate`='0', `Number`='GBN-0', `Gesperrt`='0', `Sperrpreis`='0', `Kralle`='0' WHERE `CarOwner` = '%s_%d'", str, Preis, name, x);
    mysql_pquery(handle, str);
    OnPlayerCarLogin(playerid);
    printf("OnPlayerBuyCar (%s_%d)",name,x);
    }
    return 1;
    }
    Das spart Ressourcen.

    ahh ok dann habe ich quasi (gestern Abend) den Falschen Code gesendet :o

    Jein, zumindest nicht den, den das crashdetect Plugin ausgegeben hat. ;)
    Ist ja kein Problem, jetzt hast du den richtigen gepostet.


    Poste bitte die serverNews - Funktion aus deinem Code.


    So klappt es:

    Das wird zwar kompiliert, aber funktionieren wird es nicht.



    Der Code von Anfang an an sich macht schon keinen Sinn, da man sich als Admin keine Waffen geben kann (kein sscanf in dem Abschnitt) und man als Spieler nur gebannt würde, wenn man sich eine Waffe gibt, über den Befehl gesteuert.
    Des Weiteren würde nicht der Spieler selbst gebannt werden, sondern der Spieler, den er per params eingibt.
    Außerdem wird in sscanf die ammo nicht ausgelesen.


    Es wäre gut zu wissen, wie denn "Antiwaffensystem" überhaupt aufgerufen wird, und mit welchen Daten, denn so wird es nicht funktionieren.

    Bin wie gesagt mit dem Crashdetector noch nicht viel "gearbeitet" da ich bislang das nicht benötigt habe....

    Das crashdetect Plugin gibt seinen Error-Report im server_log.txt aus.
    Was du gepostet hast ist der Standard-Report von SA-MP, der allerdings für den Leser wenig bis gar nicht hilfreich ist.

    Das würde ich so schreiben, ist übersichtlicher als es mit if zu machen.
    Deine Variante würde auch nicht klappen, da er da auf die Kommazahlen prüfen würde (Punkt = Komma).
    switch(weaponid)
    {
    case 0..18,35..46: { }
    default: return SendClientMessage(playerid, COLOR_GREY, "Error: Ungültige Waffe!");
    }

    Das sieht aber schon besser aus.
    Kannst du bitte mal diese drei Queries per print im Server Log ausgeben lassen, und posten was im Server Log steht, wenn du ein Fahrzeug kaufst?


    [17:18:40] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE `carsystem` SET `CarModel`='550',`CarPos_X`='1707.003784'", callback: "(null)", format: "(null)"
    [17:18:40] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE `carsystem` SET `CarSideL`='0',`CarSideR`='0',`CarFB`='0'", callback: "(null)", format: "(null)"
    [17:18:40] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE `carsystem` SET `CarPJ`='0',`CarC1`='0',`CarC2`='0',`Prei", callback: "(null)", format: "(null)"

    Da dort keine Fehlermeldung ausgegeben wird kann ich dir dazu leider nichts sagen.
    Es kann möglich sein, dass der Code nicht für die aktuelle SA-MP Version gemacht wurde, und es daher Kompatibilitätsprobleme gibt, aber ohne eine Fehlermeldung lässt sich da nur raten.