Beiträge von Jeffry

    Teste es bitte so:

    Spoiler anzeigen
    forward LoadCars_Data();
    public LoadCars_Data()
    {
    new rows, id, createdVehs;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "id");
    if(id < 0 || id >= sizeof(CarInfo)) continue;
    cache_get_field_content(i, "Besitzer", CarInfo[id][Besitzer],handle,34);
    CarInfo[id][modelID] = cache_get_field_content_int(i, "ModelID");
    CarInfo[id][c_x] = cache_get_field_content_float(i, "PosX");
    CarInfo[id][c_y] = cache_get_field_content_float(i, "PosY");
    CarInfo[id][c_z] = cache_get_field_content_float(i, "PosZ");
    CarInfo[id][c_a] = cache_get_field_content_float(i, "PosA");
    CarInfo[id][c_color1] = cache_get_field_content_int(i, "Color1");
    CarInfo[id][c_color2] = cache_get_field_content_int(i, "Color2");
    CarInfo[id][c_Preis] = cache_get_field_content_int(i, "Preis");
    CarInfo[id][c_Gekauft] = cache_get_field_content_int(i, "Gekauft");
    CarInfo[id][c_Versicherung] = cache_get_field_content_int(i, "Versicherung");

    if(CarInfo[id][modelID] >= 400 && CarInfo[id][modelID] <= 611)
    {
    new text[64];
    CarInfo[id][c_vID] = CreateVehicle(CarInfo[id][modelID], CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z], CarInfo[id][c_a], CarInfo[id][c_color1], CarInfo[id][c_color2], -1);
    format(text, sizeof(text), "Besitzer: %s\nKaufpreis: %d\nReparier Kosten: %d",CarInfo[id][Besitzer],CarInfo[id][c_Preis], CarInfo[id][c_Preis] / 10);
    CarInfo[id][Carlable] = Create3DTextLabel(text,0x0FFF00FF,CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z],20.0,0,1);
    Attach3DTextLabelToVehicle(CarInfo[id][Carlable],CarInfo[id][modelID], 0.0, 0.0, 2.0);
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", CarInfo[id][modelID], id);
    }
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
    createdVehs++;
    if(createdVehs == MAX_AUTOS) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_AUTOS) erreicht.");
    }
    return 1;
    }


    Dann dürfte es gehen.

    Ohja, ich merke grade, das das ein Fehler in meinem Tutorial ist. 8|
    Das hatte ich so gar nie getestet.


    Poste bitte den Code mit dem du die Fahrzeuge aus der Datenbank lädst, den aktuellsten. Und einen Screenshot von der Tabelle aus der Datenbank, dann mache ich dir das kurz.
    Den Fehler im Tutorial repariere ich dann natürlich sofort, wenn es bei dir geht.

    Du musst die Position minimal verändern und das Objekt dann ganz langsam bewegen.
    if(IsPlayerInRangeOfPoint(playerid,10,1544.7, -1630.8, 13.2))
    {
    if(PlayerInfo[playerid][pFraktion] == 1)
    {
    MoveObject(Lspdschranke,1544.7, -1630.8, 13.19,0.02,0,0,90);
    SendClientMessage(playerid,Gruen,"Die Schranke schließt sich in 5 Sekunden wieder!");
    SetTimer("Lspdschrankeclose",5000,0);
    return 1;
    }
    }


    public Lspdschrankeclose()
    {
    MoveObject(Lspdschranke,1544.7, -1630.8, 13.2,0.02,0, 90, 90);
    return 1;
    }

    ocmd:versichern(playerid)
    {
    new vrs[128], veh = GetPlayerVehicleID(playerid);
    if(!veh) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du musst in einem Fahrzeug sein.");
    for(new i=0; i<MAX_AUTOS; i++)
    {
    if(CarInfo[i][c_vID] != veh) continue;
    CarInfo[i][c_Versicherung] = 1;
    format(vrs, sizeof(vrs), "%s hat den Wagen(Modell: %d) auf Versicherungsstufe %d versichert.", CarInfo[i][Besitzer], CarInfo[i][modelID], CarInfo[i][c_Versicherung]);
    SendClientMessage(playerid, info, vrs);
    return 1;
    }
    return 1;
    }


    Geht das andere jetzt?

    new bInfo[][buildingsEnum] ={
    {1368.9445,-1279.7567,13.5469, ROTATION_A,285.6350,-41.4551,1001.5156, ROTATION_I,1,"AMMUN1"},//ammunation1
    {1247.9690,-1559.9371,13.5634, ROTATION_A,1710.433715,-1669.379272,20.225049, ROTATION_I,18,"LS Atruim"}//LS Atruim
    };
    Jeweils ersetzen.


    Außerdem muss in dein enum dann noch die b_rotA und b_rotI rein.


    Und dann:
    SetPlayerFacingAngle(playerid, bInfo[i][b_rotA])
    SetPlayerFacingAngle(playerid, bInfo[i][b_rotI])
    A = Außen
    I = Interior

    Versuche es mal so, anstatt der Direktzuweisung.
    format(sInfo[playerid][cOwner], MAX_PLAYER_NAME, SpielerName(playerid));
    printf("Name beim Kauf: %s / %s", sInfo[playerid][cOwner], SpielerName(playerid));


    Falls es nicht geht, poste was der print ausgibt.

    Weil du zufällig beim rein gehen in genau die gleiche Richtung schaust. Stell dich da mal andersherum hin, dann stehst du auch im Interior falsch rum da. ;)

    SQL
    [19:48:00] [DEBUG] cache_get_field_content_float - row: 0, field_name: "maxX", connection: 1
    [19:48:00] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "maxX", data: "144.975"
    [19:48:00] [DEBUG] cache_get_field_content_float - row: 0, field_name: "maxY", connection: 1
    [19:48:00] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "maxY", data: "-84.1551"
    [19:48:00] [DEBUG] cache_get_field_content_float - row: 0, field_name: "minX", connection: 1
    [19:48:00] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "minX", data: "134.394"
    [19:48:00] [DEBUG] cache_get_field_content_float - row: 0, field_name: "minY", connection: 1
    [19:48:00] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "minY", data: "-73.3813"


    maxY und minY sind verkehrt herum. -84 ist kleiner als -73.


    Außerdem:

    SQL
    [19:48:00] [DEBUG] cache_get_field_content_int - row: 0, field_name: "owner", connection: 1
    [19:48:00] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "owner", data: ""
    [19:48:00] [ERROR] cache_get_field_content_int - invalid datatype


    Owner muss in der Tabelle zum Datentyp "INT" geändert werden.

    "str" ist immer leer, da du nichts rein speicherst. Vielleicht liegt es daran?
    Ansonsten poste mal den MySQL Log der kommt, wenn du den Server startest und bei OnGameModeInit "mysql_log(LOG_ALL);" machst.