Beiträge von Jeffry

    Deshalb sollst du einen aktuellen Versuch machen, ob es nach wie vor auftritt, nach einem Neustart des Servers.


    Wenn es wieder auftritt, poste bitte den aktuellen Log sowie einen Screenshot aus der Datenbank.

    Das Problem hier ist, dass du die Zeilen Zeile für Zeile in das Array schreibst.
    Fehlt dazwischen eine, dann wird das ignoriert, was dazu führt, dass sich die IDs verschieben/überschreiben.


    Du musst die ID aus der Zeile (im Code nachfolgend "row") lesen und mit dieser ID (im Code nachfolgend "hid") in das Array schreiben.


    Das sieht dann so aus:
    case _SQL_HAUS_LOAD:
    {
    cache_get_row_count(rows);
    new row = 0, hid;
    if(rows)
    {
    while(row<rows)
    {
    cache_get_value_name(row,"id",result);
    hid = strval(result);

    HausInfo[hid][hauscreatet] = 1;
    cache_get_value_name(row,"haus_besitzer",result); strmid(HausInfo[hid][haus_besitzer],result,0,strlen(result),24);
    cache_get_value_name(row,"haus_Owned",result); HausInfo[hid][haus_Owned] = strval(result);
    cache_get_value_name(row,"haus_innenraum",result); HausInfo[hid][haus_innenraum] = strval(result);
    cache_get_value_name(row,"haus_miete",result); HausInfo[hid][haus_miete] = strval(result);
    cache_get_value_name(row,"haus_beschreibung",result); strmid(HausInfo[hid][haus_beschreibung],result,0,strlen(result),150);
    cache_get_value_name(row,"haus_locked",result); HausInfo[hid][haus_locked] = strval(result);
    cache_get_value_name(row,"haus_slots",result); HausInfo[hid][haus_slots] = strval(result);
    cache_get_value_name(row,"haus_eingemitetenzaehler",result); HausInfo[hid][haus_eingemitetenzaehler] = strval(result);
    cache_get_value_name(row,"haus_x",result); HausInfo[hid][haus_x] = floatstr(result);
    cache_get_value_name(row,"haus_y",result); HausInfo[hid][haus_y] = floatstr(result);
    cache_get_value_name(row,"haus_z",result); HausInfo[hid][haus_z] = floatstr(result);
    cache_get_value_name(row,"haus_preis",result); HausInfo[hid][haus_preis] = strval(result);
    cache_get_value_name(row,"haus_level",result); HausInfo[hid][haus_level] = strval(result);
    cache_get_value_name(row,"haus_geldkasse",result); HausInfo[hid][haus_geldkasse] = strval(result);
    cache_get_value_name(row,"haus_Opium",result); HausInfo[hid][haus_Opium] = strval(result);
    cache_get_value_name(row,"haus_c4",result); HausInfo[hid][haus_c4] = strval(result);
    cache_get_value_name(row,"haus_Ganja",result); HausInfo[hid][haus_Ganja] = strval(result);
    cache_get_value_name(row,"haus_Kokain",result); HausInfo[hid][haus_Kokain] = strval(result);
    cache_get_value_name(row,"haus_materials",result); HausInfo[hid][haus_materials] = strval(result);
    cache_get_value_name(row,"haus_heal",result); HausInfo[hid][haus_heal] = strval(result);
    cache_get_value_name(row,"haus_armour",result); HausInfo[hid][haus_armour] = strval(result);
    cache_get_value_name(row,"haus_hatheal",result); HausInfo[hid][haus_hatheal] = strval(result);
    cache_get_value_name(row,"haus_hatarmour",result); HausInfo[hid][haus_hatarmour] = strval(result);
    cache_get_value_name(row,"hausgundumper",result); HausInfo[hid][haus_waffenschrank] = strval(result);
    new savestring[20];
    for(new i=0;i<13;i++)
    {
    format(savestring,sizeof(savestring),"hausgun%i",i);
    cache_get_value_name(row,savestring,result);
    HausInfo[hid][haus_gun][i] = strval(result);
    format(savestring,sizeof(savestring),"hausgunammo%i",i);
    cache_get_value_name(row,savestring,result);
    HausInfo[hid][haus_gunammo][i] = strval(result);
    }
    cache_get_value_name(row,"hausmull",result);
    HausInfo[hid][hausmull] = strval(result);
    cache_get_value_name(row,"haus_msg",result);
    strmid(HausInfo[hid][haus_msg],result,0,strlen(result),150);
    HausLabel[hid] = CreateDynamic3DTextLabel("LOAD",HAUSCOLOR,HausInfo[hid][haus_x],HausInfo[hid][haus_y],HausInfo[hid][haus_z] +1,20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0);
    CreateDynamicPickup(19198,1,Homestore[HausInfo[hid][haus_innenraum]][Hx],Homestore[HausInfo[hid][haus_innenraum]][Hy],Homestore[HausInfo[hid][haus_innenraum]][Hz],-1,-1);
    if(HausInfo[hid][haus_Owned] == 1)
    {
    HausInfo[hid][haus_pickup] = CreateDynamicPickup(OWNEDHAUSPICKUP,1,HausInfo[hid][haus_x],HausInfo[hid][haus_y],HausInfo[hid][haus_z],0);
    mysql_tquery(MySqlConnection,"SELECT * FROM accounts","OnQueryFinish","siii","SELECT * FROM accounts",_SQL_HAUSTIME_CHECK,hid,_:MySqlConnection);
    }
    else if(HausInfo[hid][haus_Owned] == 0)
    {
    HausInfo[hid][haus_pickup] = CreateDynamicPickup(NOTOWNEDHAUSPICKUP,1,HausInfo[hid][haus_x],HausInfo[hid][haus_y],HausInfo[hid][haus_z],0);
    }
    UpdateHausLabel(hid,HausInfo[hid][haus_Owned]+1);//funktion 1 wenn das haus ohne besitzer ist,funktion 2 wenn das biz mit besitzer ist
    row++;
    }
    }
    printf("- Häuser geladen %i/%i -",rows,MAX_HAUS);
    print("- Aktivität der Hausbesitzer kontrolliert -");
    return 1;
    }