Autos spawnen beim neustart aufeinander.

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
  • Huhu Liebe Menschen,


    ich versuche seit kurzem mir das scripten beizubringen, da ich so gern die Erfahrung sammeln möchte, einen eigenen Server zu erstellen. Ich habe mir auf Youtube Tutorials angeschaut, und dadurch habe ich ein eigenes Script schon mal. Es gibt schon einiges...nur ein Problem gibt es bei dem spawnen von Autos. Wenn ich mir ein Auto spawne, dann klappt das auch sehr gut, nur wenn ich mehrere spawne und den Server neustarte, dann sehe ich, dass sich alle gespawnten Fahrzeuge aufeinander legen und durch jedes Fahrzeug geht, und es dadurch zu Frame-Drop führt. In der Datenbank werden alle Autos nach dem schließen oder neustart des Servers auf der selben Koordinate gesetzt.


    Hat jemand da eine Lösung?

  • Spawnst du die auf einer gemappten Oberfläche?

  • Das SSpawnst du die auf einer gemappten Oberfläche?

    Das Script ist bis auf zwei Sachen noch gar nicht gemappt. Ist ein Selfmade..Aber nein. Es ist überall so. Die Autos spawnen nach meiner Beobachtung immer dort, wo ich die Autos erstellt habe (An der Spawnstelle)

  • wie spawnst du die autos ? Mit einem fs?


    Am besten spawnst du sie stellst ab wo du willst machst /save und gibst die coords manuell ein.


    Du meintest die spawnen aufeinander und jetzt schreibste das die dort spawnen wo du die erstellt hast xd

  • wie spawnst du die autos ? Mit einem fs?


    Am besten spawnst du sie stellst ab wo du willst machst /save und gibst die coords manuell ein.


    Du meintest die spawnen aufeinander und jetzt schreibste das die dort spawnen wo du die erstellt hast xd

    Okay sorry, war ziemlich doof formuliert.


    Ich spawne die Autos mit dem Befehle "/createcar [playerid [modelid]. Wobei ich eher lieber "/veh model farbe farbe" hätte, aber gut.
    Mit dem /save ist eigentlich sehr gut, aber es ist auf Dauer dann irgendwann ziemlich Lästig, die Koordis manuell einzutragen.


    Aber ja, ich spawne Beispielweise ein Auto am BSN. Mach restart und es spawnt halt dort. Wenn ich mehrere erstelle, spawnen die ALLE am BSN, wo ich das ERSTE Auto erstellt habe.

  • Und wie lässt du sie speichern und laden?

  • Dann hast du irgendwo einen fehler. Was sagt die mysql log?

  • Dann poste den befehl und alles was dazu gehört

  • Dann poste den befehl und alles was dazu gehört

    1. Das gehört mit dazu:


    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);
    new string[128];
    format(string,sizeof(string),"Das Auto cInfo[%i] wurde erstellt.",i);
    SendClientMessageToAll(ROT,string);
    saveCarToDB(playerid,i);
    return 1;
    }
    return 1;
    }


    2. Das ist der Befehl:


    ocmd:createcar(playerid,params[])
    {
    if(!isAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Dein Adminrang ist zu niedrig.");
    new mID,pID;
    if(sscanf(params,"ui",pID,mID))return SendClientMessage(playerid,ROT,"INFO: /createcar [playerid] [model]");
    if(mID<400||mID>611)return SendClientMessage(playerid,ROT,"Ungültiges Model.");
    new Float:xc,Float:yc,Float:zc,Float:rc;
    GetPlayerPos(pID,xc,yc,zc);
    GetPlayerFacingAngle(pID,rc);
    createPlayerCar(pID,mID,xc,yc,zc,rc);
    return 1;
    }




    Edit:



    loadPlayerCars(playerid)
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,true,"OnPlayerCarsLoad","i",playerid);
    return 1;
    }



    Das ist alles was ich finden konnte.

    Einmal editiert, zuletzt von Jiren ()

  • Also heißt das, dass da was fehlt, richtig? :)




    Code
    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;
    }
  • Zb
    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')",PlayerInfo[playerid][id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]); //2043
    mysql_function,query(dbhandle,query,false,"",""); //2044
    Return 1;
    }

  • Zb
    . 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')",PlayerInfo[playerid][id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]); //2043mysql_function,query(dbhandle,query,false,"",""); //2044Return 1;}

    Das sollte die Funktion sein. Ist dort etwas auffälliges?