Beiträge von Merlin13

    Oh, dann wurde mir das mal falsch erklärt :huh:
    Nach meinem Wissen wird somit jedem Spieler eine Verbindungs-ID zugewiesen und beim Disconnect wird die Verbindung wieder beendet.
    Anscheinend ist das nicht so, vielen Dank für die Aufklärung ^^


    MfG

    Ja, so sollte das richtig sein. Damit hast du die Daten allerdings nur "defined", heißt, jedes Mal wenn du im Script "User" nutzt liest der Compiler dies als "jsql288212".


    Jetzt musst du einen "handle" festlegen, dieser speichert deine Verbindungs-ID.


    Wenn du z.B. jedem User eine Verbindung zur Datenbank ermöglichen willst, müsstest du bei "OnPlayerConnect"
    dbhandle = mysql_connect(Host, User, DB, Password);
    einfügen. Jeder User hat nun seine eigene Verbindung mit der Datenbank, die ID der Verbindung ist in "dbhandle" gespeichert.
    Außerdem muss "dbhandle" dann auch noch als globale Variable deklariert werden. (Name ist variabel, muss nicht unbedingt dbhandle sein).


    Bei OnPlayerDisconnect würde ich dann noch "mysql_close(dbhandle);" einfügen, damit die Verbindung auch wieder getrennt wird.


    Wenn du den runtime error 19 hast stimmt übrigens glaube ich etwas mit einem deiner Plugins nicht, da bin ich mir aber nicht sicher.


    Ich bin selber noch Anfänger, versuche aber möglichst gut zu helfen. Bei Fehlern lasse ich mich gerne korrigieren :)


    MfG

    Mit deiner Version versucht, leider keine Besserung.
    Der print gibt
    UPDATE vehicleData SET modelID = '560', posX = '-1984.3469', posY = '304.3110', posZ = '34.7430', posA = '87.0143', color1 = '0', color2 = '0' WHERE ID = '90' AND uVID = '7'
    aus. ID sowie uVID stimmen, ein Eintrag mit allen Werten 0, bis auf ID(90) und uVID(7) besteht.


    Ich habe keine Ahnung wo das Problem liegen könnte. Im Log gibt es nun keine Fehler mehr.


    MfG


    EDIT: Habs jetzt in eine Abfrage verpackt, dann gehts! Auch wenn es für mich noch immer ein Mysterium ist warum es vorher nicht ging.


    new query[256];
    format(query, sizeof(query), "INSERT INTO vehicleData (uVID, ID, modelID, posX, posY, posZ, posA, color1, color2) VALUES ('%i', '%i', '560', '-1984.3469', '304.3110', '34.7430', '87.0143', '0', '0')", amount+1, pInfo[playerid][id]);
    mysql_function_query(dbhandle, query, false, "", "");


    Vielen Dank Jeffry :)

    Auch wenn ich dir hier nicht helfen kann gehe ich davon aus, dass zur Lösung des Problems die passenden Codeschnipsel benötigt werden. Damit dein Problem möglichst schnell gelöst wird solltest du diese jetzt schon mal posten :)

    Hier erstmal den Log, deine anderen Vorschläge versuche ich möglichst bald. Evtl. reicht dir das auch schon:


    [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'posZ = '34.7430', posA = '87.0143', color1 = '0', color2 = '0' WHERE ID = '90' A' at line 1


    Ist zwar kein Pawn Code, aber so vielleicht etwas übersichtlicher.


    Hier sieht es jetzt so aus als würde die zweite Abfrage Probleme machen, obwohl diese richtig funktioniert. Sonst steht nichts im Log.


    MfG

    Wie ist es möglich, dass


    new query2[128];
    format(query2, sizeof(query2), "UPDATE vehicleData SET modelID = '468', posX = '2123.0874', posY = '-1145.1534' WHERE ID = '%i' AND uVID = '%i'", pInfo[playerid][id], amount+1);
    mysql_function_query(dbhandle, query2, false, "", "");
    format(query2, sizeof(query2), "UPDATE vehicleData SET posZ = '24.6857', posA = '83.9742', color1 = '0', color2 = '0' WHERE ID = '%i' AND uVID = '%i'", pInfo[playerid][id], amount+1);
    mysql_function_query(dbhandle, query2, false, "", "");


    alle Werte perfekt speichert, bei


    new query2[128];
    format(query2, sizeof(query2), "UPDATE vehicleData SET modelID = '560', posX = '-1984.3469', posY = '304.3110' WHERE ID = '%i' AND uVID = '%i'", pInfo[playerid][id], amount+1);
    mysql_function_query(dbhandle, query2, false, "", "");
    format(query2, sizeof(query2), "UPDATE vehicleData SET posZ = '34.7430', posA = '87.0143', color1 = '0', color2 = '0' WHERE ID = '%i' AND uVID = '%i'", pInfo[playerid][id], amount+1);
    mysql_function_query(dbhandle, query2, false, "", "");


    allerdings "modelID", "posX", und "posY" stets auf 0 bleiben? Die restlichen Werte speichern richtig. Ich habe bereits versucht die Größe auf 256 (new query2[256]) zu setzen, kein Unterschied.


    Ich bin so verwirrt, da ich den Code nur kopiert habe und die Werte verändert habe. Ich habe auch versucht die zweite Aktion mit query3 ablaufen zu lassen, gleiches Ergebnis.


    MfG

    Super, genau das was ich gesucht habe!
    Leider läuft es noch nicht so wie geplant.


    new vid = GetClosestVehicle(playerid, 2.0);
    SetVehicleParamsForPlayer(vid, -1, 0, 0);


    Findest du einen Fehler hierbei? Egal ob ich neben oder auf dem Fahrzeug stehe, aufgeschlossen wird es nicht. Bedeutet der 2. Parameter "-1", dass diese Einstellung für alle Spieler gilt? Denn hier gehört eigentlich die Spieler-ID rein.


    Außerdem: Kann ich abfragen ob ein Fahrzeug in unmittelbarer Nähe ist durch:
    if(GetClosestVehicle(playerid, 2.0))
    Sehe ich richtig, dass der if-Block nur ausgeführt wird wenn GetClosestVehicle etwas returnt?


    MfG und vielen Dank


    EDIT: Ich habe das Problem gefunden, zur Lösung bräuchte ich eine Methode um zu überprüfen wie viele Fahrzeuge aktuell auf dem Server existieren. Gibt es da eine einfache Methode?

    Perfekt, hat direkt funktioniert :)


    Nun muss ich die Fahrzeuge nur noch wieder aufschließen können, dies ist mit meinem Wissen allerdings nur möglich solange man in besagtem Fahrzeug sitzt.
    Ich würde dies gerne auch möglich machen wenn man direkt neben dem Fahrzeug steht. Wie wäre das möglich?


    Ich würde mit IsPlayerInRangeOfPoint arbeiten, allerdings ist dieser Punkt ja variabel, außerdem müsste dabei auch die Fahrzeug-ID übergeben werden damit auch das richtige Fahrzeug aufgeschlossen werden kann.


    Irgendwelche Denkanstöße?


    Vielen Dank!

    Wie verschließe ich alle Türen aller Fahrzeuge beim Serverstart?
    Falls dies nicht möglich ist, ich spawne beim Serverstart alle Fahrzeuge mit einer for-Schleife, dort jedes einzelne zu schließen klappt bei mir nicht, wie muss ichs machen?


    for(new i = 0; i < num_rows; i++)
    {
    //unwichtig
    AddStaticVehicle(mid,x,y,z,a,color1,color2);
    SetVehicleParamsForPlayer(i+1, -1, 0, 1);
    }


    Alle Fahrzeuge spawnen, die Türen sind allerdings nicht verschlossen :)

    Passiert das nur bei einem oder allen Spielern? Kennst du den besagten Spieler? / Ist der Server öffentlich? In dem Fall kann man Hacks nicht ausschließen.


    MfG

    Halli Hallo!


    Ich bin zwar noch sehr neu hier, allerdings fühle ich mich schon richtig wohl hier und habe durchweg schnelle Hilfe bei allerlei Problemen erhalten.
    Um mich zu revanchieren würde ich dem Forum gerne etwas gutes tun, allerdings finde ich nirgends die Option etwas zu spenden.


    Ich habe einen alten Thread gefunden, dort wurde ein "Donator-Status" angeboten, allerdings wurde dieser wohl wieder abgeschafft.
    Nun sehe ich aber dennoch einige Foren-Mitglieder mit diesem Status.


    Erhellt mich und verratet mir, wo ich dem Forum spenden kann :)


    PS: Ich habe kein besseres Forum für diese Frage gefunden, ich hoffe ich bin hier richtig.


    MfG