Beiträge von Caglar

    Wie wird num_rows definiert?


    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, Database);


    Geprintet wird alles ohne Fehler.

    Ich lade die Fahrzeuge aus der Datenbank und füge Sie dann zum Dialog hinzu.
    Wenn ich über 3 Fahrzeuge habe, zeigt er mir das Dialog nicht mehr an, wieso?
    new String[2048] = "", globalId;
    if(mode == 1) {
    for(new i = 0; i < num_rows; i++) {
    globalId = cache_get_field_content_int(i, "Id", Database);
    new Item[128] = "";
    for(new x = 0; x < MAX_VEHICLES; x++) {
    if(VehicleInfo[x][vId] == globalId) {
    PlayerInfo[playerid][pCarselection][i] = x;
    format(Item, sizeof(Item), "%s (Id: %i)\n", VehicleNames[VehicleInfo[x][vModelId] - 400], VehicleInfo[x][vId]);
    printf("%s", Item);
    continue;
    }
    }
    printf("%s%s", String, Item);
    format(String, sizeof(String), "%s%s", String, Item);
    }
    ShowPlayerDialog(playerid, DIALOG_PV_1, DIALOG_STYLE_LIST, "{FFFFFF}Fahrzeuge", String, "Schließen", "Zurück");
    return 1;
    }


    Was ist daran fehlerhaft?
    Du hast nur die einfache Variante genutzt, obwohl es prinzipiell genau das selbe ist, da die Funktion genau so alle Spieler durchgeht.
    Wenn du schon was korrigierst, dann argumentiere es auch je nach dem, wie du es tust.

    public OnPlayerText(playerid, text[]) {
    new String[144], Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name);
    format(String, sizeof(String), "{FFFFFF}%s {EBEBEB}sagt: %s", Name, text);
    for(new i = 0; i < MAX_PLAYERS; i ++) {
    if(IsPlayerConnected(i)) {
    SendClientMessage(i, 0xFFFFFFFFF, String);
    }
    }
    return 0;
    }


    Das habe ich für dich ja oben gemacht. Du kannst die Variablen auch anpassen, wo liegt das Problem?

    Ich möchte das Wetter jede Stunde je nach dem wie viel Uhr es ist ändern.
    Bspw. soll es von 18 bis 4 Uhr dunkel sein, ab 5 Uhr immer etwas heller werden.
    Ich weiß zwar wie ich das anstelle, aber mit der Reihenfolge von den IDs komme ich durcheinander.
    Hat da jemand vielleicht was für mich?

    public OnCarsSaved(vehicleid) {
    new num_rows, num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows) {
    new query[164];
    format(query,sizeof(query),"INSERT INTO autos (x,y,z,r,paintjob,Color1,Color2,Spoiler,Hood,Roof,Sideskirt) VALUES('%f','%f','%f','%f','%i','%i','%i','%i','%i')",vInfo[vehicleid][v_x],vInfo[vehicleid][v_y],vInfo[vehicleid][v_z],vInfo[vehicleid][v_r],vInfo[vehicleid][v_paintjob],vInfo[vehicleid][v_Color1],vInfo[vehicleid][v_Color2],vInfo[vehicleid][v_spoiler],vInfo[vehicleid][v_hood],vInfo[vehicleid][v_roof],vInfo[vehicleid][v_sideskirt]);
    mysql_function_query(dbhandle,query,false,"","");
    format(query,sizeof(query),"INSERT INTO autos (Lamps,Nitro,Exhaust,Wheels,Stereo,Hydraulics,Front_Bumper,Rear_Bumper,Vent_Left,Vent_Right) VALUES ('%i','%i','%i','%i','%i','%i','%i','%i','%i','%i')",vInfo[vehicleid][v_lamps],vInfo[vehicleid][v_nitro],vInfo[vehicleid][v_exhaust],vInfo[vehicleid][v_wheels],vInfo[vehicleid][v_stereo],vInfo[vehicleid][v_hydraulics],vInfo[vehicleid][v_front_bumper],vInfo[vehicleid][v_rear_bumper],vInfo[vehicleid][v_vent_left],vInfo[vehicleid][v_vent_right]);
    mysql_function_query(dbhandle,query,false,"","");
    } else {
    new query[200];
    format(query,sizeof(query),"UPDATE autos SET x='%f',y='%f',z='%f',r='%f',paintjob='%i',Color1='%i' WHERE id='%i'",vInfo[vehicleid][v_x],vInfo[vehicleid][v_y],vInfo[vehicleid][v_z],vInfo[vehicleid][v_r],vInfo[vehicleid][v_paintjob],vInfo[vehicleid][v_Color1],vInfo[vehicleid][v_Color2], vInfo[vehicleid][v_db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    format(query,sizeof(query),"UPDATE autos SET Color2='%i',Spoiler='%i',Hood='%i',Roof='%i',Sideskirt='%i' WHERE id='%i'",vInfo[vehicleid][v_Color1],vInfo[vehicleid][v_spoiler],vInfo[vehicleid][v_hood],vInfo[vehicleid][v_roof],vInfo[vehicleid][v_sideskirt],vInfo[vehicleid][v_db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    format(query,sizeof(query),"UPDATE autos SET Lamps='%i',Nitro='%i',Exhaust='%i',Wheels='%i',Stereo='%i' WHERE id='%i'",vInfo[vehicleid][v_lamps],vInfo[vehicleid][v_nitro],vInfo[vehicleid][v_exhaust],vInfo[vehicleid][v_wheels],vInfo[vehicleid][v_stereo],vInfo[vehicleid][v_db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    format(query,sizeof(query),"UPDATE autos SET Hydraulics='%i',Front_Bumper='%i',Rear_Bumper='%i',Vent_Left='%i',Vent_Right='%i' WHERE id='%i'",vInfo[vehicleid][v_hydraulics],vInfo[vehicleid][v_front_bumper],vInfo[vehicleid][v_rear_bumper],vInfo[vehicleid][v_vent_left],vInfo[vehicleid][v_vent_right],vInfo[vehicleid][v_db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    }
    }

    Ich hoffe, dass ich im richtigen Bereich bin.
    Ich bin auf der Suche nach einer Map und zwar soll es ein Interior für Autoteile sein.
    Sprich, ein Shop bei dem man Autoteile wie Schlösser oder ein Werkzeugkasten.


    Wäre nett, wenn jemand was vor sich liegen hat, da ich selbst nichts fand und Mappen ist nicht
    wirklich meine Stärke.

    Da das erste Angebot wohl nicht ernst gemeint war, in welcher Preisklasse befinden wir uns denn, wenn du eine APP für mich coden würdest?


    Gruß

    Es kommt auf das Produkt an, und auf die Arbeitszeit.
    Der Preis kann sich je nach dem ob es nun nur ein Radio sein soll ohne großartige Funktionen, ob es ein schönes Design haben soll oder eher keins, varrieren.

    Hab's nicht getestet
    new registerPasswort[MAX_PLAYERS][64];
    new registerAlter[MAX_PLAYERS];
    new registerGeschlecht[MAX_PLAYERS];
    new registerWohnort[MAX_PLAYERS];


    //OnDialogeResponse
    if(dialogid == DIALOG_REGISTER) {
    if(!response) {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    if(!strlen(inputtext)) {
    SendClientMessage(playerid,Grau,"Du hast kein Passwort in das Feld geschrieben !");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrierung","Bitte gib dein gewünschtes Passwort ein:","Register","Abbrechen");
    return 1;
    } else {
    registerPasswort[playerid] = inputtext;
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter","Gib bitte dein Alter an\nz.B. 23.05.1995","Weiter","Abbrechen");
    return 1;
    }
    }

    if(dialogid == DIALOG_ALTER) {
    if(!response) {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    if(!strlen(inputtext) || !isNumeric(inputtext)) {
    SendClientMessage(playerid,Grau,"Du musst deinen Alter angeben.");
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter","Gib bitte dein Alter an\nz.B. 23.05.1995","Weiter","Abbrechen");
    return 1;
    } else {
    registerAlter[playerid] = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_MSGBOX,"Geschlecht","Bitte gib dein Geschlecht an","männlich","weiblich");
    return 1;
    }
    }

    if(dialogid == DIALOG_GESCHLECHT) {
    registerGeschlecht[playerid] = 0;
    if(!response) {
    registerGeschlecht[playerid] = 1;
    }
    ShowPlayerDialog(playerid,DIALOG_WOHNORT,DIALOG_STYLE_LIST,"Wohnort","Los Santos\nLas Venturas\nSan Fiero","Fertig","Abbrechen");
    return 1;
    }


    if(dialogid == DIALOG_WOHNORT) {
    if(!response) {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    switch(listitem) {
    // Las Venturas
    case 1: {
    registerWohnort[playerid] = 1;
    }
    // San Fierro
    case 2: {
    registerWohnort[playerid] = 2;
    }
    // Los Santos
    default: {
    registerWohnort[playerid] = 0;
    }
    Register(playerid,inputtext);
    }
    }


    Edit:
    Hier noch mal die Funktion für isNumeric
    isNumeric(const string[]) {
    for(new i = 0, j = strlen(string); i < j; i++) {
    if (string[i] > '9' || string[i] < '0') return 0;
    }
    return 1;
    }

    Wie kann ich herrausfinden ob bzw. vor welchem Fahrzeug ein Spieler steht ?
    Ich möchte für die Motorreperatur, dass der Spieler vor der Haube ein Befehl ausführt und dann soll
    a) das Fahrzeug erkannt werden, vor dem sich der Spieler findet und
    b) ob der Spieler überhaupt vor einem Fahrzeug steht


    Wie könnte man es am besten umsetzen?

    Vielen dank dir für deine Hilfe ! :)
    Eine Frage, was ist dieses Wrapper ?


    Zum Nachteil, ist es nicht möglich das CP in die hdocs zu packen (beispiel XAMPP) und dann einfach immer das neue Verzeichnis eines neu erstellten Servers zu wählen ?


    //e: könntest du mir ganz kurz per ts bei der installation helfen.. ?

    http://forum.sa-mp.de/handelse…tern-windows/#post2064042
    Sponsore auch Server. Kannst dir das ja gerne unter die Lupe nehmen. Link gibt es per Pn.

    Ich habe da ein kleines Problem.
    Ich speichere die Spielerfahrzeuge in der Datenbank und lade die Fahrzeuge auch von der Datenbank.
    Die Fraktionsfahrzeuge etc. erstelle ich aber direkt im Script selbst.


    Mein Problem ist, dass ich die Spielerfahrzeuge nur dann erstelle, wenn diese nicht zerstört sind etc.
    Ich habe aber eine Variable für die Fahrzeuge und somit muss ich die ID auch, wenn das Fahrzeug nicht erstellt worden ist, zuweisen.
    Dann gibt es aber Probleme damit, dass bspw. die Mods, der Tank etc. den Fraktions oder Jobsfahrzeugen zugewiesen wird (also ein ID Bug).



    public OnGameModeInit() {
    new Query[256];
    format(Query, sizeof(Query), "SELECT * FROM `vehicles`");
    mysql_tquery(Database, Query, "LoadCars");

    Taxifahrzeug[0] = AddStaticVehicleEx(420, 2402.2002000, -1543.4004000, 23.8000000, 0.0000000, 6, 6, 120); // Taxi
    Taxifahrzeug[1] = AddStaticVehicleEx(420, 2393.2000000, -1543.4004000, 23.8000000, 0.0000000, 6, 6, 120); // Taxi
    Taxifahrzeug[2] = AddStaticVehicleEx(420, 2396.2002000, -1543.4004000, 23.8000000, 0.0000000, 6, 6, 120); // Taxi
    Taxifahrzeug[3] = AddStaticVehicleEx(420, 2399.2002000, -1543.4004000, 23.8000000, 0.0000000, 6, 6, 120); // Taxi
    Taxifahrzeug[4] = AddStaticVehicleEx(420, 2405.2002000, -1543.4004000, 23.8000000, 0.0000000, 6, 6, 120); // Taxi
    Taxifahrzeug[5] = AddStaticVehicleEx(420, 2411.2002000, -1543.4004000, 23.8000000, 0.0000000, 6, 6, 120); // Taxi
    Taxifahrzeug[6] = AddStaticVehicleEx(420, 2408.2002000, -1543.4004000, 23.8000000, 0.0000000, 6, 6, 120); // Taxi
    Taxifahrzeug[7] = AddStaticVehicleEx(420, 2414.2002000, -1543.4004000, 23.8000000, 0.0000000, 6, 6, 120); // Taxi
    Taxifahrzeug[8] = AddStaticVehicleEx(420, 2417.2002000, -1543.4004000, 23.8000000, 0.0000000, 6, 6, 120); // Taxi
    }


    public LoadCars() {
    new num_fields, num_rows;
    cache_get_data(num_rows, num_fields, Database);
    if(!num_rows) return 1;


    new vehId;
    for(new i = 0; i < num_rows; i++) {
    vehId = i;
    //....
    if(VehicleInfo[vehId][vX] != 0 && VehicleInfo[vehId][vY] != 0 && VehicleInfo[vehId][vZ] != 0 && VehicleInfo[vehId][vA] != 0) {
    VehicleInfo[vehId][vVehicleId] = AddStaticVehicleEx(VehicleInfo[vehId][vModelId], VehicleInfo[vehId][vX], VehicleInfo[vehId][vY], VehicleInfo[vehId][vZ], VehicleInfo[vehId][vA], VehicleInfo[vehId][vColor_1], VehicleInfo[vehId][vColor_2], -1);
    }
    //....
    }

    Was kann ich denn dagegen nun tun?


    Edit:
    Ich habe nochmals nachgedacht und habe mir überlegt das Fahrzeug einfach in eine virtuelle Welt zu packen.
    Klappt nun prima :D


    Genau das war ja meine Frage. Dachte vllt. es gäbe eine alternative.
    Ich habe es so gemacht, funktioniert auch prima. Danke Jeffry!