Auto nach kauf Random spawnen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • [22:53:25] [ERROR] xCMySQLQuery::Execute[carSavedToDB(i)] - (error #1054) Unknown column 'model' in 'field list'


    Auf Anfrage in PN:


    In deiner Datenbank fehlt die Spalte "model", die solltest du hinzufügen.


    Um das andere Problem kümmern wir uns später, zu erst muss die Datenbank laufen, dann behebt sich der Rest oft von selbst.

  • Zeig mal bitte die Funktion "carSavedToDB"..

    public carSavedToDB(carid)
    {
    cInfo[carid][db_id]=cache_insert_id(dbhandle);
    return 1;
    }


    saveCarToDB(playerid,carid)
    {
    new query[128];
    format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",sInfo[playerid][db_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
    mysql_function_query(dbhandle,query,true,"carSavedToDB","i",carid);
    return 1;
    }


    Jeffry: das mit der Datenbank ist weg spawnt aber immernoch auf 1 parkplatz

  • Ok, das sollte kein Problem mehr sein, das zu beheben.
    Könntest du bitte den aktuellen Code posten, so wie du ihn momentan hast (wie im ersten Post, nur eben aktuell), es wurde ja schon ziemlich viel dran geändert.
    Sonst muss ich mir aus den 20 Posts davor deine Änderungen zusammenreimen, und das wird garantiert nichts.


  • enum autohausEnum{
    Float:s_x,
    Float:s_y,
    Float:s_z,
    Float:s_r
    }


    enum autohauscarEnum{
    model,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    c_preis,
    ah_id,
    id_x
    }


    new ahCars[][autohauscarEnum] = {
    {411,-1668.7550,1205.7421,20.8833,272.0864,1200000},
    {541,-1663.4056,1220.9622,20.8833,211.1151,900000},
    {412,2134.5305,-1130.4222,25.5472,119.9674,60000}
    };
    new Float:RandomSpawn[][27] ={
    {-31.5830,-276.6498,5.3175,269.5427},//die spawns wo sie spawnen können
    {-31.4291,-286.8210,5.3192,270.3276},
    {-31.5830,-276.6498,5.3175,269.5427},
    {-30.5126,-280.0215,5.3186,269.2653},
    {-31.2262,-283.4319,5.3170,269.3367},
    {-31.4291,-286.8210,5.3192,270.3276},
    {-30.6872,-290.2162,5.3215,270.0367},
    {-31.2113,-293.6188,5.3206,270.5205},
    {-30.9714,-296.9427,5.3215,269.7877},
    {-0.9785,-301.1555,5.3132,89.2128},
    {-0.3900,-304.6669,5.3173,90.0018},
    {-0.4273,-308.1667,5.3223,89.5486},
    {-0.0562,-311.6645,5.3220,90.0193},
    {-0.2071,-315.2568,5.3215,89.2483},
    {-0.6865,-318.7336,5.3232,89.6181},
    {-0.5670,-322.2784,5.3224,89.8154},
    {-0.7787,-325.8391,5.3220,88.6041},
    {-0.5788,-329.3296,5.3211,89.3954},
    {-0.8341,-332.8588,5.3224,89.2498},
    {-0.3046,-336.4436,5.3222,88.9489},
    {-0.7694,-339.8704,5.3236,89.9762},
    {-0.8461,-343.4076,5.3248,89.5425},
    {-0.5109,-346.9451,5.3220,89.8589},
    {-0.5799,-350.4830,5.3219,89.6116},
    {-0.2762,-354.0208,5.3204,89.5558},
    {-0.0255,-357.5459,5.3205,89.8315},
    {-0.6771,-361.0365,5.3217,88.9111},
    {-1.2926,-364.7119,5.3221,89.1589}
    };


    //Ongam
    createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]!=0)continue;
    cInfo[i][besitzer]=sInfo[playerid][db_id];
    cInfo[i][c_x]=x;
    cInfo[i][c_y]=y;
    cInfo[i][c_z]=z;
    cInfo[i][c_r]=r;
    cInfo[i][model]=modelid;
    cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
    saveCarToDB(playerid,i);
    return 1;
    }
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    new vID=GetPlayerVehicleID(playerid);
    for(new i=0; i<sizeof(ahCars); i++)
    {
    if(ahCars[i][id_x]!=vID)continue;
    SetPVarInt(playerid,"buyCarID",i);
    new string[265];
    format(string,sizeof(string),"Mochten sie das Fahrzeug für %i$ kaufen?",ahCars[i][c_preis]);
    ShowPlayerDialog(playerid,DIALOG_AUTOHAUS,DIALOG_STYLE_MSGBOX,"Autokauf",string,"Ja","Nein");
    break;
    }
    return 1;
    }
    return 1;
    }



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_AUTOHAUS)
    {
    if(response)
    {
    new id=GetPVarInt(playerid,"buyCarID");
    if(GetPlayerMoney(playerid)<ahCars[id][c_preis])
    {
    SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    new rand = random(sizeof(RandomSpawn));
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    createPlayerCar(playerid,ahCars[id][model],RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2],RandomSpawn[rand][3]);
    SendClientMessage(playerid,LEUCHTENDBLAU,"Herzlichen Glückwunsch zu ihren Kauf");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Dann eben nicht ...");
    }
    return 1;
    }


    Muss bei
    new Float:RandomSpawn[][27] ={ und bei
    new ahCars[][autohauscarEnum] = {
    die erste klammer leer bleiben ?

  • Ja, die Klammer muss da sein, aber du solltest es zu
    new Float:RandomSpawn[][4] ={
    ändern.
    [] = Zeilen
    [4] = Spalten



    Also der Code funktioniert eigentlich.
    Kannst du unter
    new rand = random(sizeof(RandomSpawn));
    das einfügen?
    printf("rand = %d (aus: %d)", rand, sizeof(RandomSpawn));


    Was wird dann geprintet wenn du ein Auto kaufst?
    (Vielleicht war es auch nur Zufall, dass das Auto auf dem gleichen Parkplatz zwei mal kommt, die Chance liegt immerhin bei mehr als 3,5 Prozent. :D )

  • printf("rand = %d (aus: %d)", rand, sizeof(RandomSpawn));



    so habe das auch eingefügt und sie spawnen alle auf den gleichen Parkplatz :/

  • Wie gesagt, poste bitte was im Server Log steht wenn du die Autos kaufst, deshalb ja der print. ;)

    da kommt nichts in den Server Logs


    [20:49:11] Loaded.
    [20:49:11] Loading plugin: mysql
    [20:49:11] >> plugin.mysql: R34 successfully loaded.
    [20:49:11] Loaded.
    [20:49:11] Loaded 2 plugins.


    [20:49:11]
    [20:49:11] Filterscripts
    [20:49:11] ---------------
    [20:49:11] Loading filterscript 'tacho1.amx'...
    [20:49:11]
    --------------------------------------
    [20:49:11] Tachosystem [S1] by ErikSon
    [20:49:11] --------------------------------------


    [20:49:11] Loaded 1 filterscripts.


    [20:49:12]
    ----------------------------------
    [20:49:12] Red-Game0v3r-Reallife by Snake
    [20:49:12] ----------------------------------


    [20:49:12] Number of vehicle models: 4
    [20:50:11] Incoming connection: 127.0.0.1:54103
    [20:50:11] [join] [RGR]Snake has joined the server (0:127.0.0.1)

  • Hast du überhaupt ein Auto gekauft nachdem du den Server betreten hast, und wenn ja, hast du den print eingefügt?


    Hatte i-was falsch



    [21:15:53] Loaded.
    [21:15:53] Loading plugin: mysql
    [21:15:53] >> plugin.mysql: R34 successfully loaded.
    [21:15:53] Loaded.
    [21:15:53] Loaded 2 plugins.


    [21:15:54]
    [21:15:54] Filterscripts
    [21:15:54] ---------------
    [21:15:54] Loading filterscript 'tacho1.amx'...
    [21:15:54]
    --------------------------------------
    [21:15:54] Tachosystem [S1] by ErikSon
    [21:15:54] --------------------------------------


    [21:15:54] Loaded 1 filterscripts.


    [21:15:54]
    ----------------------------------
    [21:15:54] Red-Game0v3r-Reallife by Snake
    [21:15:54] ----------------------------------


    [21:15:54] Number of vehicle models: 4
    [21:16:14] Incoming connection: 127.0.0.1:63173
    [21:16:14] [join] [RGR]Snake has joined the server (0:127.0.0.1)
    [21:17:50] rand = 27 (aus: 28)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das Auto müsste auf dem 27. Parkplatz gespawnt haben. Wenn du es jetzt nicht nur ein mal probierst sondern öfters, dann wirst du sehen, dass unterschiedliche Werte geprintet werden. Somit sollten die Autos auch zufällig auf einem Parkplatz landen wenn du sie kaufst.

  • Beitrag von xSnake ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Das Auto müsste auf dem 27. Parkplatz gespawnt haben. Wenn du es jetzt nicht nur ein mal probierst sondern öfters, dann wirst du sehen, dass unterschiedliche Werte geprintet werden. Somit sollten die Autos auch zufällig auf einem Parkplatz landen wenn du sie kaufst.

    Danke hat funktioniert,eine frage wenn eun Spieler ein Auto kauft spawnt es an der Trucker Base und ich das der Spieler ein checkpoint gesetzt kriegt wo das Auto steht geht das wenn ja wie
    SetplayerCheckpoint(playerid
    So wäre mein Anfang

  • Poste den Code mit dem du das Auto an dieser Trucker Base spawnen lässt und erkläre deine Frage nochmal genauer und nicht so wirr.


    if(dialogid==DIALOG_AUTOHAUS)
    {
    if(response)
    {
    new id=GetPVarInt(playerid,"buyCarID");
    if(GetPlayerMoney(playerid)<ahCars[id][c_preis])
    {
    SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    new rand = random(sizeof(RandomSpawn));
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    createPlayerCar(playerid,ahCars[id][model],RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2],RandomSpawn[rand][3]);
    SendClientMessage(playerid,LEUCHTENDBLAU,"Herzlichen Glückwunsch zu ihren Kauf");
    SendClientMessage(playerid,LEUCHTENDBLAU,"Es wurde dir ein Marker auf der Map gesetzt");
    SendClientMessage(playerid,LEUCHTENDBLAU,"Du kannst nun dein Fahrzeug hinter der Truckerbase in Ls abholen");
    printf("rand = %d (aus: %d)", rand, sizeof(RandomSpawn));
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Dann eben nicht ...");
    }
    return 1;
    }


    Das ist mein Code
    und ich will das so machen spieler xxx kauft sich ein car z.b Infernus der wird an der TruckerBase gespawnt und ich will nun das direkt wenn er den gekauft hat ein Checkpoint gesezt wird da wo das Auto steht und wie mach ich das ? also den anfang weiß ich
    SetPlayerCheckpoint(playerid,

  • Achso, der gleiche Code, hättest das mal gleich gesagt. :D


    SetPlayerCheckpoint(playerid, RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2], 5.0);


    Unter dem "createPlayerCar" einfügen.
    Dann hast du den Checkpoint dort wo das Auto ist (was du mit der Trucker Base meinst weiß ich nicht).

  • Achso, der gleiche Code, hättest das mal gleich gesagt. :D


    SetPlayerCheckpoint(playerid, RandomSpawn[rand][0],RandomSpawn[rand][1],RandomSpawn[rand][2], 5.0);


    Unter dem "createPlayerCar" einfügen.
    Dann hast du den Checkpoint dort wo das Auto ist (was du mit der Trucker Base meinst weiß ich nicht).

    @Danke ja genau so mein ich das :D
    /closed