Beiträge von robbi2304

    Scheinbar werden meine Autos nicht richtig geladen. Ich kriege den Motor zumindest nicht an und habe das Problem schon diagnostiziert habe aber derzeit keine Lösung.


    Teil aus dem Motor Befehl wo es haken tut



    for(new id = 0; id < sizeof(cInfo); id++)
    {
    if(cInfo[id][id_x] == Vehicle)
    {
    }
    }
    else
    {
    return SendClientMessage(playerid,-1,"Kaputt");
    }


    Cars werden wie folgt geladen




    forward OnPlayerCarsLoad(playerid);
    public OnPlayerCarsLoad(playerid)
    {
    for(new i=0; i<cache_num_rows(); i++)
    {
    new id = getFreeCarID();
    cache_get_value_name_int(i, "id", cInfo[id][db_id]);//Integer
    cache_get_value_name_int(i, "model", cInfo[id][model]);//Integer
    cache_get_value_name_int(i, "besitzer", cInfo[id][besitzer]);//Integer
    cache_get_value_name_float(i, "x", cInfo[id][c_x]); //Float
    cache_get_value_name_float(i, "y", cInfo[id][c_y]);//Float
    cache_get_value_name_float(i, "z", cInfo[id][c_z]);//Float
    cache_get_value_name_float(i, "r", cInfo[id][c_r]);//Float
    cache_get_value_name_int(i, "c1", cInfo[id][color1]);//Integer
    cache_get_value_name_int(i, "c2", cInfo[id][color2]);//Integer
    cache_get_value_name_int(i, "key", cInfo[id][key]);//Integer
    cache_get_value_name_int(i, "c_gesperrt", cInfo[id][c_gespeert]);//Integer
    if(cInfo[id][c_gespeert] == 0)
    {
    cInfo[id][id_x] = CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],cInfo[id][color1],cInfo[id][color2],-1,-1);
    }
    }
    return 1;
    }


    Durch eine Print Abfrage konnte ich herausfinden das nur 1 Fahrzeug wirklich auf dem Fahrer zugelassen ist. Allerdings frage ich mich warum er dann das else von if(cInfo[id][id_x] == Vehicle) ausgibt

    Ich habe mal einen Youtube Link angehängt da es leichter zu verstehen ist als meine Beschreibung. Zuvor befanden sich keine Fahrzeuge in der Verwahrstelle. Weder von anderen Spielern noch von mir. Erst als ich "/abstellen" eingegeben habe.


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Hier hinzu die Codes

    Okay also Interior + id ?


    Nagut das wäre schon eine Gute Idee :D


    So ist alles zuordnungsbar.


    Dann danke ich dir für deine Idee =)

    ocmd:freikaufen(playerid){ if(PlayerInfo[playerid][pLoggedIn]==false)return 1; new string[128],var; for(new i=0; i<sizeof(cInfo); i++) { if(cInfo[i][besitzer] == PlayerInfo[playerid][p_id]) { if(cInfo[i][c_gespeert] == 1) { format(string,sizeof(string),"%s %d \n",string,cInfo[i][model]); var++; } } } if(var>0)return ShowPlayerDialog(playerid,DIALOG_CARFREIKAUFEN_AUSWAHL,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Auswählen","Abbruch"); return SendClientMessage(playerid,COLOR_RED,"Keine gefunden");}

    Nope



    Sobald c_gesperrt nicht gleich 1 ist, brichst du durch das return auch die Schleife ab. Entferne Zeile 13 - 16. Dann, außerhalb der Schleife überprüfst du einfach ob die Variable string per strlen leer ist -> dann zeigst du die Fehlermeldung an.

    Leider auch nicht.


    Bei beiden Befehlen kann ich das 2 Fahrzeug immer wieder und wieder erstellen

    Ich kann derzeit ein Fahrzeug mit diesem Befehl freikaufen. Sobald ich dieses aber freigekauft habe und es ein 2tes Fahrzeug gibt, dann kann ich dieses nicht freikaufen da es angeblich nicht gefunden wird.




    ocmd:freikaufen(playerid)
    {
    if(PlayerInfo[playerid][pLoggedIn]==false)return 1;
    new string[128];
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][besitzer] == PlayerInfo[playerid][p_id])
    {
    if(cInfo[i][c_gespeert] == 1)
    {
    format(string,sizeof(string),"%s %d \n",string,cInfo[i][model]);
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Keine gefunden");
    }
    }
    }
    ShowPlayerDialog(playerid,DIALOG_CARFREIKAUFEN_AUSWAHL,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Auswählen","Abbruch");
    return 1;
    }

    Es sind alle Gebäude in der Datenbank gespeichert und sollen daraus auch geladen werden.



    public OnHausesLoad()
    {
    new num_rows;
    cache_get_row_count(num_rows);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeHausID();
    cache_get_value_name_float(i, "h_x", hInfo[id][h_x]); //Float
    cache_get_value_name_float(i, "h_y", hInfo[id][h_y]); //Float
    cache_get_value_name_float(i, "h_z", hInfo[id][h_z]); //Float
    cache_get_value_name_float(i, "ih_x", hInfo[id][ih_x]); //Float
    cache_get_value_name_float(i, "ih_y", hInfo[id][ih_y]); //Float
    cache_get_value_name_float(i, "ih_z", hInfo[id][ih_z]); //Float
    cache_get_value_name_int(i, "h_interior", hInfo[id][h_interior]); //Float
    new tmp_name[MAX_PLAYER_NAME];
    cache_get_value_name(i, "besitzer", tmp_name); //String
    strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
    cache_get_value_name_int(i, "id",hInfo[id][h_id]); //Float
    cache_get_value_name_int(i, "h_preis",hInfo[id][h_preis]); //Float
    new string[128];
    if(!strlen(hInfo[id][h_besitzer]))
    {
    hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,sizeof(string), "Dieses Haus steht zum Verkauf\n\nKosten: %i$\nTippe /hauskaufen", hInfo[id][h_preis]);
    hInfo[id][h_text]=Create3DTextLabel(string,-1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    else
    {
    hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
    hInfo[id][h_text]=Create3DTextLabel(string,-1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    }
    return 1;
    }


    So lade ich meine Häuser auf dem Server.

    Hallo,


    ich bin gerade an der Überlegung wie ich es struktuierer das jedes Gebäude eine eigene ID hat mit der man über das /find System herausfinden kann welche ID es ist.


    Sollte man die ID kennen ist es möglich direkt dort hinzufinden. Allerdings ist die frage wie ich das Abfrage in welchen GK er sich befindet und das jeder Shop ein anderes GK hat.


    @Jeffry

    Hallo ich versuche gerade Shops über einen DIALOG zu erstellen leider ohne Erfolg. 1 Shop wird erstellt aber sobald der nächste kommt verfällt der letzte Shop. In der Datenbank ist alles richtig gespeichert


    //erledigt