Beiträge von McStiller

    hInfo[h][hi_x] = 13.3828;


    mysql_format(handle,query,sizeof(query),"INSERT INTO häuser (BesitzerID, Besitzer, X, Y, Z, A, Interior, Preis, Level, iX) VALUES ('%d', '%s', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%f')",hInfo[h][h_ownid],hInfo[h][hOwner],hInfo[h][h_x],hInfo[h][h_y],hInfo[h][h_z],hInfo[h][h_a],hInfo[h][h_int],price,level,hInfo[h][hLock],hInfo[h][hi_x]);mysql_pquery(handle,query);


    Wird so in der Tabelle gespeichert: 1,4013E-45
    MySQL Log:
    [02:34:27] [DEBUG] mysql_format - connection: 1, len: 1200, format: "INSERT INTO häuser (BesitzerID, Besitzer, X, Y, Z, A, Interior, Preis, Level, iX) VALUES ('%d', '%s', '%f', '%f', '%f', '%f', '%..."[02:34:27] [DEBUG] mysql_pquery - connection: 1, query: "INSERT INTO häuser (BesitzerID, Besitzer, X, Y, Z, A, Interior, ", callback: "(null)", format: "(null)"[02:34:27] [DEBUG] CMySQLQuery::Execute[] - starting query execution[02:34:27] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 50.642 milliseconds[02:34:27] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving


    es geht nur um die letzte Koordiante


    Tabellen Typ ist float

    Klar ist der string groß genug. Hätte aber gern das mit den Floates etc entbuggt

    Also ich habe jetzt mal mehrere Fragen...


    1.
    Wenn ich in der Datenbank für eine Float auch float als typ nehme, gibt es Probleme da die Tabelle "," und nicht "." als Trennung der Float nimmt.
    Im Script verwende ich daher zzt. float, z.B: cache_get_field_content_float in der Datenbank jedoch varchar für diesen Wert.


    2.
    strings werden irgendwie überhaupt nicht gelesen und konvertiert....
    Beispiel:
    im Enum definiert: hOwner[MAX_PLAYER_NAME]
    und geladen in der Schleife:
    cache_get_field_content(h,"Besitzer",hInfo[h][hOwner],handle);
    ist hInfo[h][hOwner] immer noch leer....


    3. nachgeprüfte strings.
    Wenn ich %e in der Speicherung verwende werden immer nur die ersten 3 Zeichen in die Datenbank gespeichert. (Dabei ist die Datenbankgröße richtig eingestellt!

    Guten Abend,


    ich suche derzeit ein WBB4 Design, welches nach meiner Vorstellung gestaltet werden soll. Außerdem sollte es gecoded werden.
    Über Preis, und Vorstellung würde ich mich aber gerne privat unterhalten, also nicht zögern mich anzuschreiben.
    Mittelsmann wird natürlich während der Abwicklung dazu gezogen! :)
    Das Design darf nur als Unikat verkauft werden!


    Würde mich über eine Nachricht freuen! :)

    Ja, da der Server nicht solange wartet, bis er vom MySQL Server eine Antwort bekommt, sondern es in einen separaten Thread auslagert.

    Alles klar Danke ! :)


    P.S: Du hast einen kleinen Fehler gemacht:
    if(cache_get_row_count() == 0) pInfo[playerid][pRegStep] = cache_get_field_content_int(0, "Registrierung", handle);[*] else pInfo[playerid][pRegStep] = 0;


    Sollte eigentlich so sein:


    if(cache_get_row_count() == 0){pInfo[playerid][pRegStep] = 0;}else{pInfo[playerid][pRegStep] = cache_get_field_content_int(0, "Registrierung", handle);}


    Du hast es umgedreht :D

    Mache es so:
    public OnUserCheck(playerid){ new string[265]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid,playername,sizeof(playername)); if(cache_get_row_count() == 0) { format(string,sizeof(string),"Herzlich Willkommen {0174DF}%s!\n{FFFFFF}Dein gewählter Benutzername ist: {40FF00}noch frei\n{FFFFFF}Bitte gebe ein gewünschtes Passwort in die Box unten ein:",playername); ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"{33cc33}"S-TAG" {FFFFFF}Registrierung - Passwort (1/3)",string,"Anmelden",""); } else { new query[256]; mysql_format(handle,query,sizeof(query),"SELECT Registrierung FROM Accounts WHERE Name = '%e'",playername); mysql_pquery(handle,query,"OnUserCheck2", "d", playerid); } return 1;}forward OnUserCheck2(playerid);public OnUserCheck2(playerid){ if(cache_get_row_count() == 0) pInfo[playerid][pRegStep] = cache_get_field_content_int(0, "Registrierung", handle); else pInfo[playerid][pRegStep] = 0; if(pInfo[playerid][pRegStep] == 4) { format(string,sizeof(string),"Willkommen zurück, {0174DF}%s\n{FFFFFF}Dieser Nutzername ist bereits vergeben. Bitte gebe dein Passwort in die Box unten ein:",playername); ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{33cc33}"S-TAG"{FFFFFF} Login",string,"Login",""); } else { mysql_format(handle,query,sizeof(query),"DELETE FROM Accounts WHERE Name='%e'",playername); mysql_pquery(handle,query); format(string,sizeof(string),"Herzlich Willkommen {0174DF}%s!\n{FFFFFF}Dein gewählter Benutzername ist: {40FF00}noch frei\n{FFFFFF}Bitte gebe ein gewünschtes Passwort in die Box unten ein:",playername); ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"{33cc33}"S-TAG" {FFFFFF}Registrierung - Passwort (1/3)",string,"Anmelden",""); } return 1;}

    Kann ich die Cache Funktion nur in einem anderen Callback benutzen?
    Gibt es eine andere Möglichkeit, das ganze ohne ein weiteres Callback zu nutzen aus der Datenbank auszulesen?



    Liebe Grüße :)

    Kannst du bitte alles posten, was da dazu gehört, vor dem else etc.

    public InitPlayer(playerid)
    {
    new query[256];
    mysql_format(handle,query,sizeof(query),"UPDATE Accounts SET Geschlecht='%d',Registrierung='%d' WHERE id= '%d'",
    pInfo[playerid][pSex],pInfo[playerid][pRegStep],pInfo[playerid][pID]);
    mysql_pquery(handle,query);
    /*mysql_format(handle,query,sizeof(query),"UPDATE Accounts SET Geschlecht='%d',Registrierung='%d',Alter='%d' WHERE id = '%d'",
    pInfo[playerid][pSex],pInfo[playerid][pRegStep],pInfo[playerid][pAge],pInfo[playerid][pID]);
    mysql_pquery(handle, query);*/
    // GELD
    // SKIN
    pInfo[playerid][pLevel] = 0;
    SendClientMessage(playerid,0xFFFFFF,"Willkommen auf dem Server!");
    return 1;
    }


    public OnUserCheck(playerid)
    {
    new string[265];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    if(cache_get_row_count() == 0)
    {
    format(string,sizeof(string),"Herzlich Willkommen {0174DF}%s!\n{FFFFFF}Dein gewählter Benutzername ist: {40FF00}noch frei\n{FFFFFF}Bitte gebe ein gewünschtes Passwort in die Box unten ein:",playername);
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"{33cc33}"S-TAG" {FFFFFF}Registrierung - Passwort (1/3)",string,"Anmelden","");
    }
    else
    {
    new query[256];
    mysql_format(handle,query,sizeof(query),"SELECT Registrierung FROM Accounts WHERE Name = '%e'",pInfo[playerid][pName]);
    mysql_pquery(handle,query);
    pInfo[playerid][pRegStep] = cache_get_field_content_int(0, "Registrierung", handle);
    if(pInfo[playerid][pRegStep] == 4)
    {
    format(string,sizeof(string),"Willkommen zurück, {0174DF}%s\n{FFFFFF}Dieser Nutzername ist bereits vergeben. Bitte gebe dein Passwort in die Box unten ein:",playername);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{33cc33}"S-TAG"{FFFFFF} Login",string,"Login","");
    }
    else
    {
    mysql_format(handle,query,sizeof(query),"DELETE FROM Accounts WHERE Name='%e'",playername);
    mysql_pquery(handle,query);
    format(string,sizeof(string),"Herzlich Willkommen {0174DF}%s!\n{FFFFFF}Dein gewählter Benutzername ist: {40FF00}noch frei\n{FFFFFF}Bitte gebe ein gewünschtes Passwort in die Box unten ein:",playername);
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"{33cc33}"S-TAG" {FFFFFF}Registrierung - Passwort (1/3)",string,"Anmelden","");
    }
    }
    return 1;
    }



    case DIALOG_AGE:
    {
    if(strlen(inputtext) < 2 || !IsNumeric(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,"{33cc33}"S-TAG" {FFFFFF}Registrierung - Alter (3/3)","{B40431}ERROR:{FFFFFF}Bitte gebe dein richtiges Alter ein!\nBitte gebe nun unten dein Alter an:","Fertig","");
    return 1;
    }
    pInfo[playerid][pAge] = strval(inputtext);
    pInfo[playerid][pRegStep] = 4;
    InitPlayer(playerid);
    }
    }
    return 1;

    mysql_format(handle,query,sizeof(query),"DELETE FROM Accounts WHERE Name='%e'",playername);mysql_pquery(handle,query);
    entfernen. Dann gehts.

    Nein, er soll ihn ja löschen, falls der User während der Registrierung disconnected.

    Hallo,


    Habe ich hier etwa einen Fehler im Query, denn jedes mal wenn jemand dem Server beitritt, wird der Nutzer gelöscht.
    else
    {
    new query[256];
    mysql_format(handle,query,sizeof(query),"SELECT Registrierung FROM Accounts WHERE Name = '%e'",pInfo[playerid][pName]);
    mysql_pquery(handle,query);
    pInfo[playerid][pRegStep] = cache_get_field_content_int(0, "Registrierung", handle);
    if(pInfo[playerid][pRegStep] == 4)
    {
    format(string,sizeof(string),"Willkommen zurück, {0174DF}%s\n{FFFFFF}Dieser Nutzername ist bereits vergeben. Bitte gebe dein Passwort in die Box unten ein:",playername);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{33cc33}"S-TAG"{FFFFFF} Login",string,"Login","");
    }
    else
    {
    mysql_format(handle,query,sizeof(query),"DELETE FROM Accounts WHERE Name='%e'",playername);
    mysql_pquery(handle,query);
    format(string,sizeof(string),"Herzlich Willkommen {0174DF}%s!\n{FFFFFF}Dein gewählter Benutzername ist: {40FF00}noch frei\n{FFFFFF}Bitte gebe ein gewünschtes Passwort in die Box unten ein:",playername);
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"{33cc33}"S-TAG" {FFFFFF}Registrierung - Passwort (1/3)",string,"Anmelden","");
    }