Haussystem umschreiben

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
  • Hallo,


    ich würde gerne nun mein Haussystem von MySQL R39-3 zu R41 umschreiben. Das ganze schein soweit gut zu klappen allerdings komme ich bei 2 Dingen nicht weiter.


    Nummer 1:



    public OnHausesLoad()
    {
    new num_rows;
    cache_get_data(num_rows,handle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeHausID();
    cache_get_value_name_float(i, "x", hInfo[id][h_x]); //Float
    cache_get_value_name_float(i, "y", hInfo[id][h_y]); //Float
    cache_get_value_name_float(i, "z", hInfo[id][h_z]); //Float
    cache_get_value_name_float(i, "x", hInfo[id][ih_x]); //Float
    cache_get_value_name_float(i, "y", hInfo[id][ih_y]); //Float
    cache_get_value_name_float(i, "z", hInfo[id][ih_z]); //Float
    cache_get_value_name_int(i, "h_interior", hInfo[id][h_interior]); //Float
    new tmp_name[MAX_PLAYER_NAME];
    cache_get_value_name(i, "besitzer", tmp_name); //Float
    strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
    cache_get_value_name_int(i, "id",hInfo[id][h_id]); //Float
    cache_get_value_name_int(i, "h_preis",hInfo[id][h_preis]); //Float
    new string[128];
    if(!strlen(hInfo[id][h_besitzer]))
    {
    hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
    hInfo[id][h_text]=Create3DTextLabel(string, COLOR_RED, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    else
    {
    hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
    hInfo[id][h_text]=Create3DTextLabel(string, COLOR_BUSBLUE, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    }
    return 1;
    }


    Code
    C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn(2039) : error 017: undefined symbol "cache_get_data"
    In Zeile 4 von dem Editor hier


    Nummer 2:



    saveHaus(id)
    {
    new query[128];
    format(query, sizeof(query), "UPDATE haus SET besitzer='%s', h_preis='%i' WHERE id='%i'", hInfo[id][h_besitzer], hInfo[id][h_preis], hInfo[id][h_id]);
    mysql_function_query(handle, query, false, "", "");
    return 1;
    }


    Code
    C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn(2039) : error 017: undefined symbol "cache_get_data"
    
    
    
    
    Zeile 5
  • Danke für deine Hilfe.


    Das ganze habe ich nun auch so gemacht und es wirft keine Fehler aus.


    Nun habe ich aber noch das Problem mit


    mysql_function_query(handle, query, false, "", "");


    Ich habe versucht hier mit mysql_pquery zu arbeiten allerdings kriege ich immer ein tagmistach

  • Das Compilen klappt. Sobald ich das Haus erstelle kriege ich noch einen Error angezeigt bzw etwas was ich nicht wirklich entschlüsseln kann. Ich arbeite mit der pawn.cfg um weitere Logs zu erhalten.


    Hier scheint ein Fehler drin zu sein



    new query[512];
    format(query, sizeof(query),"INSERT INTO haus (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis) VALUES ('%f', '%f', '%f', '0.0', '0.0', '0.0', '0', '1')",xc, yc, zc);
    mysql_pquery(handle, query, "OnHausCreated", "i", id);


    alter Code aus MySQL R39-3



    new query[256];
    format(query, sizeof(query),
    "INSERT INTO haus (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis) VALUES ('%f', '%f', '%f', '0.0', '0.0', '0.0', '0', '1')",
    xc, yc, zc);
    mysql_function_query(handle, query, true, "OnHausCreated", "i", id);

  • Leider etwas womit wir glaub alle nichts anfangen können.



    Code
    [15:05:58] [plugins/mysql] èÈs (C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn:2101)

    Zeile 2101
    wäre


    mysql_pquery(handle, query,"OnHausCreated", "i", id);


    Ich füge sonst mal eben den OnHausCreated hinzu vielleicht is da auch der Fehler



    public OnHausCreated(id)
    {
    hInfo[id][h_id]=cache_insert_id();
    }

  • Oh, ja das stimmt, das ist nicht sehr hilfreich. Das scheint noch ein Fehler im Plugin zu sein, hin und wieder treten solche Meldungen auf, die sich nicht erklären lassen.
    Du kannst es mal so versuchen, mit return am Ende, ob das hilft:
    public OnHausCreated(id)
    {
    hInfo[id][h_id]=cache_insert_id();
    return 1;
    }


    Falls nicht, versuche es mal mit mysql_tquery anstatt mysql_pquery.
    Falls auch das nicht hilft, lass dir das Query mal per print ausgeben, wird das dann korrekt angezeigt?

  • Aus dem Print wird alles Richtig ausgegeben.


    Die veränderung von pquery in tquery hat nur eine veränderung in den logs gegeben



    Code
    [15:28:19] [ERROR] xŸV (C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn:2100)


    und auch das return führt zu keinen weiteren details.



    Code
    [15:28:19] INSERT INTO haus (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis) VALUES ('738.555847', '-1342.297241', '13.523264', '0.0', '0.0', '0.0', '0', '1')

    // Edit


    Problem hat sich erledigt eine Datenbanktabelle hatte gefehlt-