Auto löschen nach Disconnect

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
  • Hallo


    ich möchte gerne das normale spieler auto was beim login spawnt beim logout/disconnect wieder löschen da sonst beim login jeweils 1 auto dazu kommt


    der disconnect code im pwn format


    public OnPlayerDisconnect(playerid, reason)
    {
    SetPlayerColor(playerid,CL_GRAU);
    saveplayer(playerid);
    resetplayer(playerid);


    //Spielerautos löschen
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][SID]==0)continue;
    if(cInfo[i][besitzer] != sInfo[playerid][db_id])continue;
    new query[289];

    format(query,sizeof(query),"UPDATE Spielerautos SET X='%f',Y='%f',Z='%f',ROTATION='%f' WHERE DB_ID='%i'",cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],cInfo[i][DB_ID]);
    mysql_function_query(dbhandle,query,false,"","");
    DestroyVehicle(cInfo[i][SID]);
    printf("%i gelöscht",cInfo[i][SID]);
    }
    return 1;
    }

  • format(query,sizeof(query),"DELETE FROM Spielerautos WHERE DB_ID='%i'",cInfo[i][DB_ID]);



    Also insgesamt so:
    public OnPlayerDisconnect(playerid, reason)
    {
    SetPlayerColor(playerid,CL_GRAU);
    saveplayer(playerid);
    resetplayer(playerid);


    //Spielerautos löschen
    new query[289];
    format(query,sizeof(query),"DELETE FROM Spielerautos WHERE DB_ID='%i'",cInfo[i][DB_ID]);
    mysql_function_query(dbhandle,query,false,"","");
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][SID]==0)continue;
    if(cInfo[i][besitzer] != sInfo[playerid][db_id])continue;
    DestroyVehicle(cInfo[i][SID]);
    printf("%i gelöscht",cInfo[i][SID]);
    }
    return 1;
    }


    Achte darauf, dass du die Variablen auch zurücksetzt wenn du das Auto löschst.

  • [quote='Jane','index.php?page=Thread&postID=1943477#post1943477']format(query,sizeof(query),"UPDATE Spielerautos SET X='%f',Y='%f',Z='%f',ROTATION='%f' WHERE DB_ID='%i'",cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],cInfo[i][DB_ID]); mysql_function_query(dbhandle,query,false,"","");


    war wohl nix mit copy&paste-->aber egal


    nun zum erstellen der fahrzeuge


    createplayercar(playerid,model,Float:x,Float:y,Float:z,Float:rota,Farb1,Farb2,respawn)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][SID] !=0)
    continue;
    cInfo[i][besitzer] = sInfo[playerid][db_id];
    cInfo[i][modelID] = model;
    cInfo[i][carx] = x;
    cInfo[i][cary] = y;
    cInfo[i][carz] = z;
    cInfo[i][carrota] = rota;
    cInfo[i][Farbe1] = Farb1;
    cInfo[i][Farbe2] = Farb2;
    cInfo[i][SID]= CreateVehicle(model,x,y,z,rota,Farb1,Farb2,respawn);
    SaveCarToDB(playerid,i,model,Farb1,Farb2,respawn);
    return 1;
    }
    return 1;
    }
    ocmd:playercspawn(playerid,params[])
    {
    if(sInfo[playerid][alevel]>=7)
    {
    if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
    {
    new pID,vID,Float:x,Float:y,Float:z,Float:rota;
    new Farb1,Farb2,respawn;
    if(sscanf(params,"uiiii",pID,vID,Farb1,Farb2,respawn))return SendClientMessage(playerid,CL_WHITE,"ERROR: /cspawn [id][vID][farb1][farb2][respawn(-1 nein), 1->ja]");
    GetPlayerPos(pID,x,y,z);
    GetPlayerFacingAngle(pID,rota);
    createplayercar(pID,vID,Float:x,Float:y,Float:z,Float:rota,Farb1,Farb2,respawn);
    SendClientMessage(playerid,CL_HROT,"Du hast den befehl benutzt.");
    return 1;
    }
    }
    SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
    return 1;
    }


    freecarid()
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][SID]==0)return i;
    }
    return 0;
    }
    loadcars(playerid)
    {
    new query[200];
    format(query,sizeof(query),"SELECT * FROM Spielerautos WHERE BESITZER='%i'",sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,true,"PlayerCarsLoad","i",playerid);

    return 1;
    }
    SaveCarToDB(playerid,i,modelid,farb1,farb2,respawn)
    {
    new query[200];
    new Float:rotation;
    GetVehicleZAngle(modelid,Float:rotation);//-->da muss hin wo es gepeichert wird
    format(query,sizeof(query),"INSERT INTO Spielerautos(BESITZER,MODEL,X,Y,Z,ROTATION,FARBE1,FARBE2,RESPAWN,KENNZEICHEN)VALUES('%i','%i','%f','%f','%f','%f','%i','%i','%i','%s')",sInfo[playerid][db_id],modelid,cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],farb1,farb2,respawn,cInfo[i][kennzeichen]);
    mysql_function_query(dbhandle,query,true,"CarSavedDB","i",i);
    return 1;
    }





    ich hoffe + OnPlayerDisconnect(siehe oben) das reicht :D


    wenn nicht bitte melden


    edit hat keiner eine idee=?

    Einmal editiert, zuletzt von Jane ()