Beiträge von JOK3R

    Hab das System komplett mal umgeändert
    if(dialogid == DIALOG_GARAGE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du bist in keinem Fahrzeug!");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du bist nicht der Fahrer des Fahrzeuges!");
    if(HouseInfo[house][hgInside] >= HouseInfo[house][hgMaxAutos])
    {
    SendClientMessage(playerid, COLOR_RED, "[ERROR] Deine Garage ist voll!");
    }
    else
    {
    for(new slot=0;slot<MAX_PLAYER_VEHS;slot++)
    {
    HouseInfo[house][hgInside] ++;
    PrivatCarInfo[slot][playerid][pfStored] = 1;
    DestroyVehicle(PrivatCarInfo[slot][playerid][pf_IDx]);
    SendClientMessage(playerid, COLOR_GREEN, "[GARAGE] Fahrzeug wurde erfolgreich in der Garage abgestellt.");
    mysql_format(handle, query, sizeof(query), "UPDATE privatcars SET pfStored='%i' WHERE ID='%i'", PrivatCarInfo[slot][playerid][pfStored], PrivatCarInfo[slot][playerid][pf_ID]);
    printf("query: %s", query);
    mysql_pquery(handle, query);
    UpdateHouse(house);
    SaveHouse(house);
    }
    }
    }
    if(listitem == 1)
    {
    if(listitem == 1)
    {
    for(new slot=0;slot<MAX_PLAYER_VEHS;slot++)
    {
    if(PrivatCarInfo[slot][playerid][pfStored] == 1)
    {
    for(new i; i < HouseInfo[house][hgInside]; i++)
    {
    format(string, sizeof(string), "%s{FFFF00}%i. {FFFFFF}Fahrzeug %i\n", string, i, PrivatCarInfo[slot][playerid][pfModel]);
    }
    ShowPlayerDialog(playerid, DIALOG_GARAGE2, DIALOG_STYLE_LIST, "{FFFF00}Fahrzeuge", string, "Rausholen", "Zurück");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_GARAGE3, DIALOG_STYLE_MSGBOX, "{FFFF00}Garagenmenü", "{FFFFFF}Du hast zurzeit kein {FFFF00}Fahrzeug {FFFFFF} in deiner Garage.", "Okay", "");
    }
    }
    }
    }
    }
    }
    if(dialogid == DIALOG_GARAGE2)
    {
    if(response == 1)
    {
    for(new slot=0;slot<MAX_PLAYER_VEHS;slot++)
    {
    PrivatCarInfo[slot][playerid][pf_IDx] = CreateVehicle(PrivatCarInfo[slot][playerid][pfModel], HouseInfo[house][hgX], HouseInfo[house][hgY], HouseInfo[house][hgZ], PrivatCarInfo[slot][playerid][pfR], PrivatCarInfo[slot][playerid][pfCarColor1], PrivatCarInfo[slot][playerid][pfCarColor2], 0);
    Tankmenge[PrivatCarInfo[slot][playerid][pf_IDx]] = GasMax[GetVehicleModel(PrivatCarInfo[slot][playerid][pf_IDx])-400];
    format(string,sizeof(string),"%s", PrivatCarInfo[slot][playerid][pfKennzeichen]);
    SetVehicleNumberPlate(PrivatCarInfo[slot][playerid][pf_IDx], string);
    HouseInfo[house][hgInside] --;
    PrivatCarInfo[slot][playerid][pfStored] = 0;
    SendClientMessage(playerid, COLOR_GREEN, "[GARAGE] Fahrzeug wurde erfolgreich aus der Garage rausgeholt.");
    PutPlayerInVehicle(playerid, PrivatCarInfo[slot][playerid][pf_IDx], 0);
    mysql_format(handle, query, sizeof(query), "UPDATE privatcars SET pfStored='%i' WHERE ID='%i'", PrivatCarInfo[slot][playerid][pfStored], PrivatCarInfo[slot][playerid][pf_ID]);
    printf("query: %s", query);
    mysql_pquery(handle, query);
    UpdateHouse(house);
    SaveHouse(house);
    }
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_TABLIST_HEADERS, "{FFFF00}Garagenmenü",
    "#\tOption\n\
    {FFFF00}1.\t{FFFFFF}Parken\n\
    {FFFF00}2.\t{FFFFFF}Rausnehmen", "Auswählen", "Abbrechen");
    }
    }
    Aber da es kommt immer noch das Dialog wo steht das ich keine Fahrzeuge in der Garage habe.

    Okay jetzt habe ich wirklich alles umgestellt.
    Aber es ist immer noch wie im oberen Screenshot das alle 5 Nummerierung die Fahrzeug ID 560 haben aber das dialog soll ja nur 2 fahrzeuge zeigen
    Einmal den Infernus 411 und dann den Sultan 560.

    Hab [MAX_PLAYERS] eingefüt und [playerid] hinter die PrivatCarInfo eingefügt.
    Was mache ich bei dem Dialog wo ich schon [playerid] habe ? was füge ich an zweiter stelle ein ?

    So sieht das komplette Dialog aus.
    if(dialogid == DIALOG_GARAGE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du bist in keinem Fahrzeug!");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du bist nicht der Fahrer des Fahrzeuges!");
    if(HouseInfo[house][hgInside] >= HouseInfo[house][hgMaxAutos])
    {
    SendClientMessage(playerid, COLOR_RED, "[ERROR] Deine Garage ist voll!");
    }
    else
    {
    HouseInfo[house][hgInside] ++;
    PrivatCarInfo[playerid][pfStored] = 1;
    DestroyVehicle(PrivatCarInfo[playerid][pf_IDx]);
    SendClientMessage(playerid, COLOR_GREEN, "[GARAGE] Fahrzeug wurde erfolgreich in der Garage abgestellt.");
    mysql_format(handle, query, sizeof(query), "UPDATE privatcars SET pfStored='%i' WHERE ID='%i'", PrivatCarInfo[playerid][pfStored], PrivatCarInfo[playerid][pf_ID]);
    printf("query: %s", query);
    mysql_pquery(handle, query);
    UpdateHouse(house);
    SaveHouse(house);
    }
    }
    if(listitem == 1)
    {
    if(listitem == 1)
    {
    if(PrivatCarInfo[playerid][pfStored] == 1)
    {
    for(new i; i < 5; i++)
    {
    format(string, sizeof(string), "%s{FFFF00}%i. {FFFFFF}Fahrzeug %i\n", string, i, PrivatCarInfo[playerid][pfModel]);
    }
    ShowPlayerDialog(playerid, DIALOG_GARAGE2, DIALOG_STYLE_LIST, "{FFFF00}Fahrzeuge", string, "Rausholen", "Zurück");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_GARAGE3, DIALOG_STYLE_MSGBOX, "{FFFF00}Garagenmenü", "{FFFFFF}Du hast zurzeit kein {FFFF00}Fahrzeug {FFFFFF} in deiner Garage.", "Okay", "");
    }
    }
    }
    }
    }

    Jetzt sieht das ganze so aus

    Nur Müsste an Erster stelle Der Infernus sein und an Zweiter stelle dann der Sultan also 411 und dann 560.
    Ich habe mit dem [ i ] errors bekommen.

    Ich hätte da eine Kleine fragen bezüglich zu Dialogen.
    Und zwar geht es darum Ich habe ein Garagen System angefangen und Wollte das wenn man die Autos aus der Garage rausholt das die in einem Listen-Dialog untereinander mit Nummerierung aufgereiht sind
    z.B
    1. Fahrzeug 411
    2 Fahrzeug 560
    Nun ist meine Frage wie man dies umsetzen könnte.
    Ich habe so mit dem Code angefangen:
    if(listitem == 1)
    {
    if(PrivatCarInfo[playerid][pfStored] == 1)
    {
    for(new i; i < 5; i++)
    {
    format(string, sizeof(string), "{FFFF00}%i. {FFFFFF}Fahrzeug %i\n", i, PrivatCarInfo[playerid][pfModel]);
    ShowPlayerDialog(playerid, DIALOG_GARAGE2, DIALOG_STYLE_LIST, "{FFFF00}Fahrzeuge", string, "Rausholen", "Zurück");
    }
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_GARAGE3, DIALOG_STYLE_MSGBOX, "{FFFF00}Garagenmenü", "{FFFFFF}Du hast zurzeit kein {FFFF00}Fahrzeug {FFFFFF} in deiner Garage.", "Okay", "");
    }
    }
    nur glaube ich das die for schleife falsch ist weil nur ein Auto immer nur angezeigt wird.
    Hoffe mir kann das prinzip einer Erklären.


    MfG
    Jonny

    Mein Held des Tages danke :)
    Es gibt nur noch ein Problem mit dem System und zwar wenn ich dann die Übersicht aufrufe

    Steht bei Besitzer immer noch Frei :x wie behebe ich das bei OnDialogResponse ?


    Hab das oben bei DialogResponse so stehen
    new house = pInfo[playerid][pHaus]


    Und dann das Dialog


    if(dialogid == DIALOG_HOUSE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    format(string, sizeof(string), "{FFFF00}Haus Übersicht:\n\nBesitzer: {FFFFFF}%s\n{FFFF00}Aktuelle Mieter: {FFFFFF}%d\n{FFFF00}Aktueller Mietpreis: {FFFFFF}%s", HouseInfo[house][hOwner], HouseInfo[house][hMieter], NiceMoney(HouseInfo[house][hRent]));
    ShowPlayerDialog(playerid, DIALOG_HOUSE2, DIALOG_STYLE_MSGBOX, "{FFFF00}Haus Übersicht", string, "Zurück", "");
    }
    }
    }

    Beim laden lasse ich die Häuser auch in der Console printen.

    public OnHouseLoad()
    {
    new rows;
    cache_get_row_count(rows);
    if(!rows)return 1;
    for(new i=0; i<rows; i++)
    {
    new id = getFreeHouseID();
    cache_get_value_name_int(i, "ID", HouseInfo[id][hID]);
    cache_get_value_name_int(i, "hOwned", HouseInfo[id][hOwned]);
    cache_get_value(i, "hOwner", HouseInfo[id][hOwner], 64);
    cache_get_value_name_int(i, "hMieter", HouseInfo[id][hMieter]);
    cache_get_value_name_int(i, "hMaxMieter", HouseInfo[id][hMaxMieter]);
    cache_get_value_name_int(i, "hPreis", HouseInfo[id][hPreis]);
    cache_get_value_name_float(i, "hX", HouseInfo[id][hX]);
    cache_get_value_name_float(i, "hY", HouseInfo[id][hY]);
    cache_get_value_name_float(i, "hZ", HouseInfo[id][hZ]);
    cache_get_value_name_float(i, "ihX", HouseInfo[id][ihX]);
    cache_get_value_name_float(i, "ihY", HouseInfo[id][ihY]);
    cache_get_value_name_float(i, "ihZ", HouseInfo[id][ihZ]);
    cache_get_value_name_int(i, "hInterior", HouseInfo[id][hInterior]);
    cache_get_value_name_int(i, "hTill", HouseInfo[id][hTill]);
    UpdateHouse(id);
    printf("HausID: %i, Owned: %i, Besitzer:%s, Preis:%i, %f, %f, %f, %f, %f, %f, Interior:%i, Steuern:%i", HouseInfo[id][hID], HouseInfo[id][hOwned], HouseInfo[id][hOwner], HouseInfo[id][hPreis], HouseInfo[id][hX], HouseInfo[id][hY], HouseInfo[id][hZ], HouseInfo[id][ihX], HouseInfo[id][ihY], HouseInfo[id][ihZ], HouseInfo[id][hInterior], HouseInfo[id][hTill]);
    }
    print("<-| [HOUSES] Es wurden alle Häuser erfolgreich geladen.");
    return 1;
    }

    Hab das mal etwas angepasst aber das funktioniert nicht wirklich
    ocmd:housemenu(playerid, params[])
    {
    if(pInfo[playerid][pHaus] == -1) return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du besitzt kein Haus!");
    new h = pInfo[playerid][pHaus];
    printf("Owned: %i", HouseInfo[h][hOwned]);
    if(HouseInfo[h][hOwned] == 0) return SendClientMessage(playerid, COLOR_RED, "[ERROR] Dieses Haus gehört dir nicht!");
    new int = GetPlayerInterior(playerid);
    new Float:houseX, Float:houseY, Float:houseZ;
    if(int == HouseInfo[h][hInterior]) //ggf Anpassen
    {
    //im Haus
    houseX = HouseInfo[h][ihX];
    houseY = HouseInfo[h][ihY];
    houseZ = HouseInfo[h][ihZ];
    }
    else
    {
    //Ausserhalb des hauses
    houseX = HouseInfo[h][hX];
    houseY = HouseInfo[h][hY];
    houseZ = HouseInfo[h][hZ];
    }
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, houseX, houseY, houseZ)) return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du bist nicht in deinem Haus!");
    ShowPlayerDialog(playerid, DIALOG_HOUSE, DIALOG_STYLE_TABLIST_HEADERS, "{FFFF00}Hausmenü",
    "#\tOption\n\
    {FFFF00}1.\t{FFFFFF}Übersicht", "Auswählen", "Abbrechen");
    return 1;
    }
    Egal bei welchem Haus ich den Command ausführe steht dann "Dieses Haus gehört dir nicht!"
    Und in der Console ist Owned: 0 geprintet.

    ocmd:housemenu(playerid, params[])
    {
    if(pInfo[playerid][pHaus] == -1)return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du besitzt kein Haus!");
    for(new i=0; i<sizeof(HouseInfo); i++)
    {
    if(pInfo[playerid][pHaus] == i)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    printf("Playercoords: %f, %f, %f", X, Y, Z);
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ]))return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du bist nicht an deinem Haus!");
    printf("Housecoords: %f, %f, %f", HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ]);
    ShowPlayerDialog(playerid, DIALOG_HOUSE, DIALOG_STYLE_TABLIST_HEADERS, "{FFFF00}Hausmenü",
    "#\tOption\n\
    {FFFF00}1.\t{FFFFFF}Übersicht", "Auswählen", "Abbrechen");
    }
    }
    return 1;
    }

    Hab das mit dem hOwned eingefügt aber jetzt funktioniert der Befehl nicht. Es kommt auch keine nachricht wie "Dieser befehlt existiert nicht"
    //Edit
    HouseInfo[pInfo[playerid][pHaus]][ihX] ist genau das gleiche ohne Schleife es passiert in HausID2 und HausID3 obwhol ich HausID2 besitze.


    //Edit
    Ich habe anstatt die Interior Koordinaten mal die Haus Icon Koordinaten genommen und Jetzt wird das Dialog nur noch bei HausID 3 gezeigt obwohl ich HausID 2 besitze.

    Okay das hat Schonmal geklappt. Nur ist jetzt die HausID3 das Problem dort bekomme ich auch das Dialog.
    Kann man da noch sowas wie "HouseInfo[i][hOwned]" mit einbringen ? und wenn ja wäre das dann ==0 ?

    Jetzt funktioniert es wirklich nur noch in der HausID1 obwohl ich dieses Haus halt nicht besitze.
    In meinem Haus steht dann wieder "Du bist nicht in deinem Haus"

    Guten Abend Breadfish Community,
    Ich versuche es kurz und knackig. Es geht um den befehl /housemenu der nicht richtig bei mir Funktioniert.
    Dieser befehl funktioniert außerhalb des Hauses und sobald ich in dem Interior drinnen bin heißt es "Du bist nicht in deinem Haus!"
    Ich habe auch die Koordinaten geprintet und Komischerweise sind die Interior Koordinaten von einem Anderem Haus und zwar der HausID 1.


    In dem Zweitem Bild sieht man das Ich die HausID 2 Besitze und auch die Koordinaten vom dem Interior mit meiner Position übereinstimmen.


    Hier ist mal der befehl Ich habe bis jetzt alles versucht aber Jedesmal ist es immer "Du bist nicht in deinem Haus!"
    ocmd:housemenu(playerid, params[])
    {
    if(pInfo[playerid][pHaus] == -1)return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du besitzt kein Haus!");
    for(new i=0; i<sizeof(HouseInfo); i++)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    printf("Playercoords: %f, %f, %f", X, Y, Z);
    if(IsPlayerInRangeOfPoint(playerid, 50.0, HouseInfo[i][ihX], HouseInfo[i][ihY], HouseInfo[i][ihZ]))return SendClientMessage(playerid, COLOR_RED, "[ERROR] Du bist nicht in deinem Haus!");
    printf("Housecoords: %f, %f, %f", HouseInfo[i][ihX], HouseInfo[i][ihY], HouseInfo[i][ihZ]);
    ShowPlayerDialog(playerid, DIALOG_HOUSE, DIALOG_STYLE_TABLIST_HEADERS, "{FFFF00}Hausmenü",
    "#\tOption\n\
    {FFFF00}1.\t{FFFFFF}Übersicht", "Auswählen", "Abbrechen");
    }
    return 1;
    }


    Ich hoffe mir kann einer Helfen :)


    Mit freundlichen Grüßen.
    Jonny

    Weil Asmir auf dem Server 3-4 Jahr gespielt hat Und er auch alles genau weiß.
    Und wir vergleichen auch nichts mit dem altem WestCoast sondern wollen nur hinweißen das es von dem Altem script von 2010 angelegt ist.

    Das war mir schon bewusst. Da ich aber leider nie die Zeit früher hatte konnte ich nie Auf WestCoast wirklich spielen .
    Wir haben auch nichts mit dem damaligen Team zutun.