Beiträge von Jeffry

    Versuche mal folgendes.
    Lösche beim Laden:
    cache_get_field_content( 0, "IP", PlayerInfo[playerid][pIP], handle, 16);


    Entferne beim Speichern:
    GetPlayerIp(playerid, PlayerInfo[playerid][pIP], 16);


    Und füge bei OnPlayerConnect (falls nicht dort) das ein:
    GetPlayerIp(playerid, PlayerInfo[playerid][pIP], 16);

    Ah, sorry. Jetzt habe ich mich selbst mit den Klammern durcheinander gebracht. :wacko:
    Habe es oben editiert, hier auch nochmal:
    if(dialogid == DIALOG_VERSICHERN)
    {
    new string[512];
    if(response == 1)
    {
    for(new i=0; i<MAX_AUTOS; i++)
    {
    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);

    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    format(string, sizeof(string), "%s%s (ID: %d)\n", string, PlayerVehicle[CarInfo[i][modelID]-400], id);
    id++;
    }
    }
    if(id == 0) SendClientMessage(playerid, 0xFF0000FF, "Error: Du hast kein Fahrzeug.");
    else if(listitem == 0) ShowPlayerDialog(playerid, DIALOG_VERSICHERUNG1, DIALOG_STYLE_LIST, "Welches Fahrzeug?", string, "Ok", "Abbrechen");
    else if(listitem == 1) ShowPlayerDialog(playerid, DIALOG_VERSICHERUNG2, DIALOG_STYLE_LIST, "Welches Fahrzeug?", string, "Ok", "Abbrechen");
    else if(listitem == 2) ShowPlayerDialog(playerid, DIALOG_VERSICHERUNG3, DIALOG_STYLE_LIST, "Welches Fahrzeug?", string, "Ok", "Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, error, "Du hast den Vorgang abgebrochen.");
    }
    }


    Der Dialog war eine Ebene zu weit drinnen.

    Wenn die Zeit im Server mit der Echtzeit synchronisiert ist geht das nicht so einfach. Dann musst du alles davon entfernen und deinen eigenen Zeitzähler machen (Variablen für H/M/S).

    1.)
    Beim Anzeigen des Textes der einen Zeilenumbruch hat:


    new string[512];
    format(string, sizeof(string), variable);
    for(new i=0; i<strlen(string); i++) if(string[i] == '~') string[i] = '\n';
    ShowPlayerDialog(playerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Titel",string,"Schließen",""); variable = Die Variable in der der Text steht.


    Und so speicherst du es in der Datenbank:

    Zitat

    Dieser Zeilenumbruch~wird nun beachtet.


    ~ ist dann das Zeichen für einen Umbruch.



    2.)
    http://www.w3schools.com/sql/sql_func_count.asp


    3.)
    Mit einem SELECT und dann den Cache auslesen.

    public OnPlayerDeath(playerid, killerid, reason)
    {
    SetTimerEx("TodesTimer", 10000, false, "i", playerid); //Der hier geht
    new money = random(40)+10;
    new vehicleid = GetPlayerVehicleID(playerid);
    if(IsPlayerInVehicle(playerid,vehicleid))
    {
    SendClientMessage(playerid,ROT,"TOT1"); //Kamikaze mit Flugzeug gemacht aber es kam nichts
    }
    else
    {
    if(GetPlayerMoney(playerid) < money) money = GetPlayerMoney(playerid);
    GivePlayerMoney(playerid,-money);
    if(killerid != INVALID_PLAYER_ID)
    {
    GivePlayerMoney(killerid,money);
    SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
    SoldatErledigtText(killerid,money);
    }
    GestorbenText(playerid,money);
    SendClientMessage(playerid,ROT,"TOT"); //Auchh ier kommt nichts trotz Spurng aus Höhe mit folgenden Tot
    SetTimerEx("TodesTimer", 10000, false, "i", playerid); //Auch der geht net
    }
    return 1;
    }

    printf("Länge: %d", strlen(Haus[HausID][hMieter1]));
    if(strlen(Haus[HausID][hMieter1]) < 1)
    {
    printf("Aufgerufen");
    format(SQL1, sizeof(SQL1), "UPDATE hauser SET Mieter1 = '%s' WHERE ID = '%d'",GetName(playerid), HausID);
    mysql_query(SQL1);
    printf("Query: %s", SQL1);
    return 1;
    }


    Was steht so im Server Log?

    mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password, IP) VALUES ('%e', '%e', '%s')", PlayerInfo[playerid][pName], PlayerInfo[playerid][pIP], buf);
    zu:
    mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password, IP) VALUES ('%e', '%e', '%s')", PlayerInfo[playerid][pName], buf, PlayerInfo[playerid][pIP]);




    PlayerInfo[playerid][pIP] = cache_get_field_content( 0, "IP", PlayerInfo[playerid][pIP], handle, 16);
    zu:
    cache_get_field_content( 0, "IP", PlayerInfo[playerid][pIP], handle, 16);

    Hier fehlt die IP, das muss so sein:
    public OnPlayerSpawn(playerid)
    {
    new query[128];
    mysql_format(handle, query, sizeof(query), "UPDATE users SET IP = '%s' WHERE name = '%e'", PlayerInfo[playerid][pIP], PlayerInfo[playerid][pName]);
    mysql_pquery(handle, query);
    return 1;
    }