Kleine-Scripting-Fragen


  • Beim Disconnecten einfach die Koordinaten des Spielers in der Datenbank speichern und die Funktion rausnehmen die es ermöglicht den Spawn zu wechseln

    Wie @Harbin schön erklärt hat musst die die Koordinaten des Spielers abrufen und diese dann mit Hilfe von Mysql in deiner Datenbank speichern sodass beim nächsten Login die Koordinaten wieder abgerufen werden können

  • Also es schon möglich den letzten Punkt lokal abzuspeichern, aber mit der Datenbank würde das viel einfacher sein.


    dann machst du halt onQuit und dann machst du getElementPosition und dann speicherst du x y z ab


    MfG

  • Kann ich das auch in der DB bei Userdata mit speichern?

    Es ist doch sogar in der Datenbank (unter Userdata) vorgegeben.

    Du musst halt nur eine function erstellen die bei einem Disconnect die Koordinaten des Elements (Spielers) abfragt und abspeichert.
    Dazu könntest du z.B. das System aus der spawnpoints_server.lua kopieren, da du als Admin ja auch den Spawnpunkt "Hier" auswählen kannst.


    Code
    if vioGetElementData ( player, "adminlvl" ) >= 1 then
    local x, y, z = getElementPosition ( player )
    vioSetElementData ( player, "spawnpos_x", x )
    vioSetElementData ( player, "spawnpos_y", y )
    vioSetElementData ( player, "spawnpos_z", z )
    vioSetElementData ( player, "spawnrot_x", getPedRotation ( player ) )
    vioSetElementData ( player, "spawnint", getElementInterior ( player ) )
    vioSetElementData ( player, "spawndim", getElementDimension ( player ) )
    triggerClientEvent ( player, "infobox_start", getRootElement(), "\n\nSpawnpunkt\ngeändert!", 5000, 0, 125, 0 )
    end

    Musst du halt nur überarbeiten!

    Einmal editiert, zuletzt von RavenLoad ()

  • Es ist doch sogar in der Datenbank (unter Userdata) vorgegeben.
    Du musst halt nur eine function erstellen die bei einem Disconnect die Koordinaten des Elements (Spielers) abfragt und abspeichert.
    Dazu könntest du z.B. das System aus der spawnpints_server.lua kopieren, da du als Admin ja auch den Spawnpunkt "Hier" auswählen kannst.


    Code
    if vioGetElementData ( player, "adminlvl" ) >= 1 then
    local x, y, z = getElementPosition ( player )
    vioSetElementData ( player, "spawnpos_x", x )
    vioSetElementData ( player, "spawnpos_y", y )
    vioSetElementData ( player, "spawnpos_z", z )
    vioSetElementData ( player, "spawnrot_x", getPedRotation ( player ) )
    vioSetElementData ( player, "spawnint", getElementInterior ( player ) )
    vioSetElementData ( player, "spawndim", getElementDimension ( player ) )
    triggerClientEvent ( player, "infobox_start", getRootElement(), "\n\nSpawnpunkt\ngeändert!", 5000, 0, 125, 0 )
    end

    Musst du halt nur überarbeiten!

    Hatte daran auch gedacht :)! Werde ich gleich mal ausprobieren!

  • Es ist doch sogar in der Datenbank (unter Userdata) vorgegeben.
    Du musst halt nur eine function erstellen die bei einem Disconnect die Koordinaten des Elements (Spielers) abfragt und abspeichert.
    Dazu könntest du z.B. das System aus der spawnpoints_server.lua kopieren, da du als Admin ja auch den Spawnpunkt "Hier" auswählen kannst.


    Code
    if vioGetElementData ( player, "adminlvl" ) >= 1 then
    local x, y, z = getElementPosition ( player )
    vioSetElementData ( player, "spawnpos_x", x )
    vioSetElementData ( player, "spawnpos_y", y )
    vioSetElementData ( player, "spawnpos_z", z )
    vioSetElementData ( player, "spawnrot_x", getPedRotation ( player ) )
    vioSetElementData ( player, "spawnint", getElementInterior ( player ) )
    vioSetElementData ( player, "spawndim", getElementDimension ( player ) )
    triggerClientEvent ( player, "infobox_start", getRootElement(), "\n\nSpawnpunkt\ngeändert!", 5000, 0, 125, 0 )
    end

    Musst du halt nur überarbeiten!

    Wie kann ich den die Koordinaten in der DB speichern. Hab es nicht so mit mysql :/

  • Wie kann ich den die Koordinaten in der DB speichern. Hab es nicht so mit mysql :/

    Das hier ist der Quellcode aus der spawnpoints_server.lua zum Abspeichern der Koordinaten


    Code
    dbExec ( handler, "UPDATE ?? SET ??=?, ??=?, ??=?, ??=?, ??=?, ??=? WHERE ??=?", "userdata", "Spawnpos_X", vioGetElementData ( player, "spawnpos_x" ), "Spawnpos_Y", vioGetElementData ( player, "spawnpos_y" ), "Spawnpos_Z", vioGetElementData ( player, "spawnpos_z" ), "Spawnrot_X", vioGetElementData ( player, "spawnrot_x" ), "SpawnInterior", vioGetElementData ( player, "spawnint" ), "SpawnDimension", vioGetElementData ( player, "spawndim" ), "UID", playerUID[pname] )
  • Wie kann ich den die Koordinaten in der DB speichern. Hab es nicht so mit mysql :/

    Ich habe dir hier mal was zusammengebastelt. Es sollte funktionieren.


    Ich weiß, es ist 0815 und hätte besser aussehen können, aber für umsonst ^^

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!