Abgespeicherte Position auslesen!

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Morgen,


    Ich wollte meine abgespeicherte Position auslesen aus der Datenbank, aber bekomme MySQL Errors:
    [10:07:52] [WARNING] cache_get_field_content_float - no active cache
    [10:07:52] [WARNING] cache_get_field_content_float - no active cache
    [10:07:52] [WARNING] cache_get_field_content_float - no active cache


    Spieler[playerid][PosX] = cache_get_field_content_float(0,"PosX",handle);
    Spieler[playerid][PosY] = cache_get_field_content_float(0,"PosY",handle);
    Spieler[playerid][PosZ] = cache_get_field_content_float(0,"PosZ",handle);



    Google konnte mir auch nichts sagen.

  • Zeig mal die Funktion womit du die Query an den Server sendest.
    Hast du da den Cache aktiviert?

  • @Kevin1: Meinst du das?
    public OnPasswortCheck(playerid)
    {
    new row,field;
    cache_get_data(row,field,handle);
    if(row == 1)
    {
    Spieler[playerid][eingeloggt] = 1;
    Spieler[playerid][PosX] = cache_get_field_content_float(0,"PosX",handle);
    Spieler[playerid][PosY] = cache_get_field_content_float(0,"PosY",handle);
    Spieler[playerid][PosZ] = cache_get_field_content_float(0,"PosZ",handle);
    SetPlayerPos(playerid,Spieler[playerid][PosX],Spieler[playerid][PosY],Spieler[playerid][PosZ]);
    printf("%f%f%f",Spieler[playerid][PosX],Spieler[playerid][PosY],Spieler[playerid][PosZ]);
    return 1;
    }
    else
    {
    new string[500];
    format(string,sizeof(string),"{FF4000}Benutzername{FFFFFF}: %s\nHerzlich Willkommen auf {FF4000}German Next Generation v1!{FFFFFF}\nDein Account wurde in unserer Datenbank gefunden. Gebe dein Passwort ein:",Name(playerid));
    ShowPlayerDialog(playerid,DIALOG_LO,DIALOG_STYLE_INPUT,"{FF4000}German Next Generation:{FFFFFF} Login:",string,"Weiter","Abbrechen");
    }
    return 1;
    }

    Einmal editiert, zuletzt von BaRkS ()

  • Nach der Log würde ich sagen du hast bei der mysql_function_query den Cache auf false gesetzt, kann das sein ?

  • Ich toten Gräber, aber habe das genau so:




    sInfo[playerid][lastx] = cache_get_field_content_float(0,"lastx"); sInfo[playerid][lasty] = cache_get_field_content_float(0,"lasty"); sInfo[playerid][lastz] = cache_get_field_content_float(0,"lastz");
    und habe auch alles wie immer abgespeichert, Datenbank einträge erstellt und alles. Aber nun meckert er folgendes:



    D:\-r\gamemodes\pmml.pwn(2098) : warning 213: tag mismatchD:\-\gamemodes\-l.pwn(2099) : warning 213: tag mismatchD:\-\gamemodes\-.pwn(2100) : warning 213: tag mismatch
    Kann Jemand helfen? :/

    Einmal editiert, zuletzt von Maxwell187 ()

  • Japp, hatte das vergessen^^ die Errors sind nun weg, jedoch speichert er nicht die x, y, und z nicht ein.



    new query[1024]; format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',lastx='%f',lasty='%f',lastz='%f',regspawn='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][lastx],sInfo[playerid][lasty],sInfo[playerid][lastz],sInfo[playerid][regspawn],sInfo[playerid][db_id]); mysql_function_query(dbhandle,query,false,"","");

  • Bekommst du was in die MySQL-Log geschrieben?
    Wenn ja, dann zeig mal her.

  • format(query,sizeof query,"UPDATE user SET level=%d,money=%d,alevel=%d,fraktion=%d,rang=%d,lastx=%f,lasty=%f,lastz=%f,regspawn=%d WHERE id=%d",
    sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][lastx],sInfo[playerid][lasty],
    sInfo[playerid][lastz],sInfo[playerid][regspawn],sInfo[playerid][db_id]);
    Konnte da so keinen Fehler entdecken, versuch es trotzdem mal.

  • Überall wo man parameter angibt müssen ein ' ' rein.
    Bsp.:

    SQL
    UPDATE user SET level='%d',money='%d',alevel='%d',fraktion='%d',rang='%d',lastx='%f',lasty='%f',lastz='%f',regspawn='%d' WHERE id='%d'


    Damit ist der SQL Code nun richtig ohne Fehler.

  • Überall wo man parameter angibt müssen ein ' ' rein.


    Da liegst du aber falsch.
    So weit ich weiß, müssen die ' ' nur bei Strings gesetzt werden.
    fraktion=%d //Hier braucht man die nicht - Integer
    fraktion=%f //Hier braucht man die nicht - Float
    fraktion=%i //Hier braucht man die nicht - Integer
    fraktion='%s' //Hier braucht man die - String

  • Beides probiert, aber speichern tut er die Koordinaten nicht. :/


    /e: Am Plugin selbst kann es aber nicht liegen oder?


    /e2: Hat sich erledigt, es hat nicht an der Funktion selbst gelegen. Ich trottel vergas die Position mit "GetPlayerPos();" abzufragen :/


    Danke trotzdem!

    2 Mal editiert, zuletzt von Maxwell187 ()