Beiträge von Jeffry

    Das weiß ich nicht, da ich keines der beiden Systeme kenne.


    Aber wenn du nur die Anzeige ändern willst, dann kannst du
    format(string, sizeof string, "%d/%d", pData[playerid][P_Exp],pData[playerid][P_MExp]);
    Zu
    format(string, sizeof string, "%d/%d", pData[playerid][P_Exp]*10,pData[playerid][P_MExp]*10);
    ändern.

    if(strcmp("/zgaus", cmdtext , true, 10) == 0)
    {
    new vehicle_id;
    vehicle_id = GetPlayerVehicleID(playerid);
    if(!vehicle_id) return SendClientMessage(playerid, 0xFF0000FF, "Error: Dieser Befehl geht nur in einem Fahrzeug.");
    if(vehicle3Dtext[vehicle_id] == Text3D:-1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Dieses Fahrzeug hat kein Label.");
    Delete3DTextLabel(vehicle3Dtext[vehicle_id]);
    vehicle3Dtext[vehicle_id] = Text3D:-1;
    return 1;
    }

    Unter den Includes:
    new Text3D:vehicle3Dtext[MAX_VEHICLES] = {Text3D:-1,...};


    Der Befehl:
    if(strcmp("/zg", cmdtext , true, 10) == 0)
    {
    new vehicle_id;
    vehicle_id = GetPlayerVehicleID(playerid);
    if(!vehicle_id) return SendClientMessage(playerid, 0xFF0000FF, "Error: Dieser Befehl geht nur in einem Fahrzeug.");
    if(vehicle3Dtext[vehicle_id] != Text3D:-1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Dieses Fahrzeug hat bereits ein Label.");
    vehicle3Dtext[vehicle_id] = Create3DTextLabel("Example Text", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle(vehicle3Dtext[vehicle_id], vehicle_id, 0.0, 0.0, 2.0);
    return 1;
    }

    1.)
    Versuche es dann mal so:
    public OnPlayerCarUpdate_SQL(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    for(new x = 0; x < MaxVeh; x++)
    {
    if(Dtc_PlayerHaveCar[playerid][x])
    {
    print("OnPlayerCarUpdate_SQL 1");
    DestroyObject(Neonrohr[playerid][Neon]);
    DestroyObject(Neonrohr[playerid][Neon1]);
    DestroyVehicle(PlayerCar[playerid][x][CarId]);
    print("OnPlayerCarUpdate_SQL 2");
    Dtc_Carlock[PlayerCar[playerid][x][CarId]] = 0;
    Dtc_LockCar(PlayerCar[playerid][x][CarId]);
    print("OnPlayerCarUpdate_SQL 3");
    new query[256];
    GetPlayerName(playerid, query, MAX_PLAYER_NAME);
    mysql_format(handle, query, sizeof(query), "SELECT * FROM Privatcar WHERE `CarOwner` = '%s_%d'", query,x);
    mysql_pquery(handle, query, "SaveMysqlCars", "sii", query,x,playerid);
    print("OnPlayerCarUpdate_SQL 3");
    }
    }
    }
    return 1;
    }
    Sinnvoll wäre es hier aber auch, die Schleife zu entfernen und "x" als Parameter mitzugeben, damit du nicht alle Fahrzeuge neu erstellen musst (ändert sich ja nur das eine).


    2.)
    Erledigt?


    3.)
    Ist das damit dann auch erledigt?

    Weil man es dynamisch im Spiel ändern kann durch einen Befehl.

    Dann kannst du die Variable ja auch mit dem Befehl ändern.


    Laden kannst du es so:
    mysql_pquery(dbhandle, "SELECT taxvalue FROM tabelle WHERE ...", "OnTaxLoad", ""); //anpassen


    Und dann:
    forward OnTaxLoad();
    public OnTaxLoad()
    {
    taxvalue = cache_get_row_int(0, 0);
    return 1;
    }

    @fishy
    Eine Tabelle löscht man mit "DROP TABLE".
    http://dev.mysql.com/doc/refman/5.7/en/drop-table.html
    _____________________


    Zu den Problemen:
    1.)
    Wie sieht dein /park Befehl aktuell aus? Poste den bitte.
    Warum wird das Fahrzeug beim parken eigentlich neu erstellt? Ist das Absicht, wenn ja, was ist der Grund dafür?


    2.)
    Die Variable für das Query im /carsell Befehl ist zu kurz.
    new string3[32];
    zu:
    new string3[128];


    3.)
    Was hat es mit der CarId auf sich?
    Ändere gegebenenfalls
    mysql_format(handle, str, sizeof(str), "INSERT INTO `Privatcar` (`CarOwner`,`CarModel`,`CarPos_X`,`CarPos_Y`,`CarPos_Z`,`CarPos_A`,`Preis`,`Plate`) VALUES ('%s_%d','%d','%f','%f','%f','%f','%d','N/A');",
    name, x,Model, PlayerCar[playerid][x][CarPos_x], PlayerCar[playerid][x][CarPos_y], PlayerCar[playerid][x][CarPos_z],PlayerCar[playerid][x][CarRotate],Preis);
    zu:
    mysql_format(handle, str, sizeof(str), "INSERT INTO `Privatcar` (`CarOwner`,`CarId`,`CarModel`,`CarPos_X`,`CarPos_Y`,`CarPos_Z`,`CarPos_A`,`Preis`,`Plate`) VALUES ('%s_%d','%d','%d','%f','%f','%f','%f','%d','N/A');",
    name, x, x, Model, PlayerCar[playerid][x][CarPos_x], PlayerCar[playerid][x][CarPos_y], PlayerCar[playerid][x][CarPos_z],PlayerCar[playerid][x][CarRotate],Preis);
    Ich habe jetzt einfach mal angenommen, dass die CarId dem Key entspricht, also hier dem x.
    Falls das nicht passt, ändere das.

    Ändere OnPlayerDisconnect zu:
    public OnPlayerDisconnect(playerid, reason)
    {
    for(new i=0; i<sizeof(aInfo); i++)
    {
    if(aInfo[i][id_x]==0)continue;
    if(aInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
    GetVehiclePos(aInfo[i][id_x],aInfo[i][c_x],aInfo[i][c_y],aInfo[i][c_z]);
    GetVehicleZAngle(aInfo[i][id_x],aInfo[i][c_r]);
    new query[256];
    /*
    Hier das format für das Query um die Fahrzeug-Tabelle zu ändern!
    */
    mysql_function_query(dbhandle,query,false,"","");
    DestroyVehicle(aInfo[i][id_x]);
    aInfo[i][id_x]=0;
    break;
    }
    savePlayer(playerid);
    resetPlayer(playerid);
    loadPlayerCars(playerid);
    return 1;
    }


    Den Login Dialog zu:
    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[256],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    else
    {
    //Keine Eingabe
    SendClientMessage(playerid,grün,"Gibt bitte dein Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }


    Dann sollte das mit dem Login klappen.

    MoveDynamicObject(gate[0], -3195.77759, 1581.97351, 6.48850, 3.0, -90.00000, 0.00000, -180.00000);
    Zu
    MoveDynamicObject(gate[0], -3195.77759, 1581.92351, 6.43850, 0.01, -90.00000, 0.00000, -180.00000);
    Ich habe die Position minimal verändert, und die Geschwindigkeit extrem klein gemacht.


    Beim anderen MoveDynamicObject musst du nur noch die Geschwindigkeit auf 0.01 setzen (oder einen anderen Wert, falls es zu langsam oder zu schnell ist).