GF Haussystem auf MySQL ?

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
  • Hey, da ich mich noch nicht so gut mit MySQL auskenne, und es gerade mal geschafft habe, Login Register durch ein Tutorial auf MySQL zu kriegen, will ich jetzt daher auch alles andere auf MySQL machen.
    Ich habe das normale GF-Haussystem wozu es diesen tollen Generator im Internet gibt, der die Zeilen für die property.cfg macht.


    Aber wie kann ich das ganze jetzt umschreiben ?
    Ich habe wirklich 0 Ahnung!


    Das hier ist alles
    forward LoadProperty();
    public LoadProperty()
    {
    new arrCoords[29][64];
    new strFromFile2[256];
    new File: file = fopen("property.cfg", io_read);
    if (file)
    {
    new idx;
    while (idx < sizeof(HouseInfo))
    {
    fread(file, strFromFile2);
    split(strFromFile2, arrCoords, ',');
    HouseInfo[idx][hEntrancex] = floatstr(arrCoords[0]);
    HouseInfo[idx][hEntrancey] = floatstr(arrCoords[1]);
    HouseInfo[idx][hEntrancez] = floatstr(arrCoords[2]);
    HouseInfo[idx][hExitx] = floatstr(arrCoords[3]);
    HouseInfo[idx][hExity] = floatstr(arrCoords[4]);
    HouseInfo[idx][hExitz] = floatstr(arrCoords[5]);
    HouseInfo[idx][hHealthx] = strval(arrCoords[6]);
    HouseInfo[idx][hHealthy] = strval(arrCoords[7]);
    HouseInfo[idx][hHealthz] = strval(arrCoords[8]);
    HouseInfo[idx][hArmourx] = strval(arrCoords[9]);
    HouseInfo[idx][hArmoury] = strval(arrCoords[10]);
    HouseInfo[idx][hArmourz] = strval(arrCoords[11]);
    //printf("HouseInfo hEntrancez %f",HouseInfo[idx][hEntrancez]);
    strmid(HouseInfo[idx][hOwner], arrCoords[12], 0, strlen(arrCoords[12]), 255);
    strmid(HouseInfo[idx][hDiscription], arrCoords[13], 0, strlen(arrCoords[13]), 255);
    HouseInfo[idx][hValue] = strval(arrCoords[14]);
    HouseInfo[idx][hHel] = strval(arrCoords[15]);
    HouseInfo[idx][hArm] = strval(arrCoords[16]);
    HouseInfo[idx][hInt] = strval(arrCoords[17]);
    HouseInfo[idx][hLock] = strval(arrCoords[18]);
    HouseInfo[idx][hOwned] = strval(arrCoords[19]);
    HouseInfo[idx][hRooms] = strval(arrCoords[20]);
    HouseInfo[idx][hRent] = strval(arrCoords[21]);
    HouseInfo[idx][hRentabil] = strval(arrCoords[22]);
    HouseInfo[idx][hTakings] = strval(arrCoords[23]);
    HouseInfo[idx][hVec] = strval(arrCoords[24]);
    if(HouseInfo[idx][hVec] == 457)
    {
    HouseInfo[idx][hVec] = 411;
    }
    HouseInfo[idx][hVcol1] = strval(arrCoords[25]);
    HouseInfo[idx][hVcol2] = strval(arrCoords[26]);
    HouseInfo[idx][hDate] = strval(arrCoords[27]);
    HouseInfo[idx][hLevel] = strval(arrCoords[28]);
    //printf("HouseInfo:%d Owner:%s hTakings %d hVec %d",idx,HouseInfo[idx][hOwner],HouseInfo[idx][hTakings],HouseInfo[idx][hVec]);
    //LOGSPAMM
    idx++;
    }
    fclose(file);
    }
    return 1;
    }


    forward DateProp(playerid);
    public DateProp(playerid)
    {
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername, sizeof(playername));
    new curdate = getdate();
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if (strcmp(playername, HouseInfo[h][hOwner], true) == 0)
    {
    HouseInfo[h][hDate] = curdate;
    OnPropUpdate();
    }
    }
    return 1;
    }


    forward Checkprop();
    public Checkprop()
    {
    new olddate;
    new string[256];
    new curdate = getdate();
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(HouseInfo[h][hOwned] == 1 && HouseInfo[h][hDate] > 9)
    {
    olddate = HouseInfo[h][hDate];
    if(curdate-olddate >= 5)
    {
    HouseInfo[h][hHel] = 0;
    HouseInfo[h][hArm] = 0;
    HouseInfo[h][hHealthx] = 0;
    HouseInfo[h][hHealthy] = 0;
    HouseInfo[h][hHealthz] = 0;
    HouseInfo[h][hArmourx] = 0;
    HouseInfo[h][hArmoury] = 0;
    HouseInfo[h][hArmourz] = 0;
    HouseInfo[h][hLock] = 1;
    HouseInfo[h][hOwned] = 0;
    HouseInfo[h][hVec] = 418;
    HouseInfo[h][hVcol1] = -1;
    HouseInfo[h][hVcol2] = -1;
    strmid(HouseInfo[h][hOwner], "Niemand", 0, strlen("Niemand"), 255);
    format(string, sizeof(string), "_",HouseInfo[h][hValue]);
    SendClientMessageToAll(TEAM_BALLAS_COLOR, string);
    OnPropUpdate();
    }
    }
    }
    return 1;
    }
    public OnPropUpdate()
    {
    new idx;
    new File: file2;
    while (idx < sizeof(HouseInfo))
    {
    new coordsstring[256];
    format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%d,%d,%d,%d,%d,%d,%s,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
    HouseInfo[idx][hEntrancex],
    HouseInfo[idx][hEntrancey],
    HouseInfo[idx][hEntrancez],
    HouseInfo[idx][hExitx],
    HouseInfo[idx][hExity],
    HouseInfo[idx][hExitz],
    HouseInfo[idx][hHealthx],
    HouseInfo[idx][hHealthy],
    HouseInfo[idx][hHealthz],
    HouseInfo[idx][hArmourx],
    HouseInfo[idx][hArmoury],
    HouseInfo[idx][hArmourz],
    HouseInfo[idx][hOwner],
    HouseInfo[idx][hDiscription],
    HouseInfo[idx][hValue],
    HouseInfo[idx][hHel],
    HouseInfo[idx][hArm],
    HouseInfo[idx][hInt],
    HouseInfo[idx][hLock],
    HouseInfo[idx][hOwned],
    HouseInfo[idx][hRooms],
    HouseInfo[idx][hRent],
    HouseInfo[idx][hRentabil],
    HouseInfo[idx][hTakings],
    HouseInfo[idx][hVec],
    HouseInfo[idx][hVcol1],
    HouseInfo[idx][hVcol2],
    HouseInfo[idx][hDate],
    HouseInfo[idx][hLevel]);
    if(idx == 0)
    {
    file2 = fopen("property.cfg", io_write);
    }
    else
    {
    file2 = fopen("property.cfg", io_append);
    }
    fwrite(file2, coordsstring);
    idx++;
    fclose(file2);
    }
    idx = 0;
    return 1;
    }


    Ich hoffe ihr könnt helfen :)


    Mit freundlichen Grüßen
    Jens

  • Ich weiß nicht was ich da mit mysql_query machen muss und dann irgendwie mit SELECT und bla bla ich habe keine ahnung.
    Sagen wir wie in Mathe wenn du eine Formel hast, und sie umformen musst, du aber nicht die Formel zum Umformen weißt, so geht es mir.


    Ich weiß nicht wie ich was einsetzen soll,also auch nicht welche Daten wie in die Formel und welche Formel ich wo anwende...


    MfG
    Me


    PS: Sorry für meine schlechte Ausdrucksweise...


  • Dann solltest du dich damit mehr befassen.
    ___________________________________________
    (INSERT) Wenn es letztendlich dynamisch sein soll.
    ___________________________________________


    Mit dem SQL Befehl SELECT und UPDATE
    und wenn du es richtig willst mit dem splitten eines strings stichwort sscanf 2.8.1
    http://forum.sa-mp.com/showthread.php?t=120356


    und je nach plugin mit den entsprechenden funktionen ob
    mysql_fetch_row oder mysql_fetch_row_format
    Tipp um alles auszulesen benötigt man eine schleife je nach dem for-schleife oder while.
    Nachteil
    for-schleife: Du brauchst einen konstanten wert läst sich jedoch ermitteln aus der jeweiligen tabelle.
    Vorteil schneller als while schleife


    while: Nachteil:Langsamer als for-loop
    Vorteil: ließ nur soviel aus wie vorhanden ist. Daher keinen konstanten werd nach dem man dies zählen lassen sollte.


    Links:
    http://forum.sa-mp.com/showthread.php?t=120356
    http://dev.mysql.com/doc/refman/5.1/de/select.html
    http://dev.mysql.com/doc/refman/5.1/de/update.html
    http://wiki.sa-mp.com/wiki/MySQL
    oder
    http://wiki.sa-mp.com/wiki/MySQL_Plugin


    Weiteres nützliches
    http://forum.sa-mp.com/showthread.php?t=186495

  • Sagt mir leider garnichts, du hast dir echt viel Mühe gemacht, aber ich kann das einfach nicht umformen -.-


    Könnte das einer machen an diesen Sachen die ich da habe ? Wenn ich das habe, dann krieg ich das auch mit BIZZ und SBIZZZ und sonstigen Speichersachen hin, wie z.b. Zeitungen etc.


    Wäre echt nett.


    MfG
    Me