Beiträge von robbi2304

    Hab gerade gesehen gehabt das ich die klammern vergessen habe wodurch der Fehler kam.


    So das ganze habe ich nun mal getestet bzw versuch.


    Ich kriege durch meine pawn.cfg folgendes angezeigt


    [11:28:05] [ERROR] mysql_pquery: invalid connection handle '0' (C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn:800)


    Zeile 800:
    loadFrakCars(){ mysql_pquery(handle,"SELECT * FROM fautos","OnFrakCarsLoad"); //Hier musste das "i" weg return 1;}



    //Edit


    Hat sich erledigt. Hatte in der OnGamemode init die Verbindung zur SQL nicht hergestellt.


    Ein hoch auf @Jeffry

    Danke dir für deine Hilfe.


    Ich bekomme derzeit noch angezeigt das i nicht definiert ist bei der Abfrage der Daten aus der Datenbank.




    cache_get_value_name_int(i, "id", cInfo[id][db_id] );//Integer
    cache_get_value_name_int(i, "model", cInfo[id][model]);//Integer
    cache_get_value_name_int(i, "kaufer", cInfo[id][besitzer]);//Integer
    cache_get_value_name_float(i, "x", cInfo[id][c_x]); //Float
    cache_get_value_name_float(i, "y", cInfo[id][c_y]);//Float
    cache_get_value_name_float(i, "z", cInfo[id][c_z]);//Float
    cache_get_value_name_float(i, "r", cInfo[id][c_r]);//Float
    cache_get_value_name_int(i, "c1", cInfo[id][color1]);//Integer
    cache_get_value_name_int(i, "c2", cInfo[id][color2]);//Integer
    cache_get_value_name_int(i, "c3", cInfo[id][color3]);//Integer
    cache_get_value_name_int(i, "key", cInfo[id][key]);//Integer
    cache_get_value_name_int(i, "c_gesperrt", cInfo[id][c_gespeert] );//Integer

    Ich nutze die MySQL R41.


    // Edit weil weitere Fragen kamen



    Das mit dem Groß & klein ist mir nicht aufgefallen. Habe es aber gerade getestet es beides gleich zu schreiben.
    Allerdings gibt es keine Änderung des Problems.

    Hallo.


    ich würde gerne meine Fraktionsfahrzeuge laden lassen. In OnGameModeInitd habe ich folgendes eingetragen


    LoadFrakCars();


    Hier einmal die LoadFrakCars



    loadFrakCars()
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM fautos");
    mysql_pquery(handle,query,"OnFrakCarsLoad","i");
    return 1;
    }



    forward OnFrakCarsLoad();
    public OnFrakCarsLoad()
    {
    for(new i=0; i<cache_num_rows(); i++)
    {
    new id = getFreeCarID();
    cache_get_value_name_int(i, "id", cInfo[id][db_id] );//Integer
    cache_get_value_name_int(i, "model", cInfo[id][model]);//Integer
    cache_get_value_name_int(i, "kaufer", cInfo[id][pMember]);//Integer
    cache_get_value_name_float(i, "x", cInfo[id][c_x]); //Float
    cache_get_value_name_float(i, "y", cInfo[id][c_y]);//Float
    cache_get_value_name_float(i, "z", cInfo[id][c_z]);//Float
    cache_get_value_name_float(i, "r", cInfo[id][c_r]);//Float
    cache_get_value_name_int(i, "c1", cInfo[id][color1]);//Integer
    cache_get_value_name_int(i, "c2", cInfo[id][color2]);//Integer
    cache_get_value_name_int(i, "c3", cInfo[id][color3]);//Integer
    cache_get_value_name_int(i, "key", cInfo[id][key]);//Integer
    cache_get_value_name_int(i, "c_gesperrt", cInfo[id][c_gespeert] );//Integer
    if(cInfo[id][c_gespeert] == 0)
    {
    cInfo[id][id_x] = CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],cInfo[id][color1],cInfo[id][color2],cInfo[id][color3]);
    }
    }
    return 1;
    }


    Die Autos werden nicht erstellt. Ich weiß nicht welchen Fehler ich hier gemacht habe. Die Autos sollen beim Start des Server erstellt werden.

    In Schleifen bin ich noch nicht sogut. Aber es hat nun geklappt


    // Edit


    Ich muss das Thema doch nochmal aufrollen


    Funktioniert leider noch nicht Richtig. Bzw nur bei einem Spieler aber bei kein anderen



    ocmd:motor(playerid,params[])
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    new Vehicle = GetPlayerVehicleID(playerid), engine,lights,alarm,doors,bonnet,boot,objective;



    //Fahrschule
    if(IsAFahrschule(Vehicle))
    {
    if(PlayerInfo[playerid][pFahrschulmotor]==0)
    {
    SendClientMessage(playerid,COLOR_RED,"Es findet kein Termin in der Fahrschule statt.");
    return 1;
    }
    GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine == VEHICLE_PARAMS_ON)
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
    DestroyVehicle(playerid);



    }
    else
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
    PlayerInfo[playerid][pFahrschulmotor]=0;
    }
    return 1;
    }



    //Bus
    if(IsAbus(Vehicle) && PlayerInfo[playerid][pJob] == 1)
    {
    GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine == VEHICLE_PARAMS_ON)
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
    }
    else
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
    }
    return 1;
    }
    if(IsAOamtCar(Vehicle) && PlayerInfo[playerid][pLeader] == 1)
    {
    GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine == VEHICLE_PARAMS_ON)
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
    }
    else
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
    }
    return 1;
    }



    //Private Fahrzeuge



    for(new id = 0; id < sizeof(cInfo); id++)
    {
    if(cInfo[id][id_x] == Vehicle)
    {



    if(cInfo[id][besitzer] == PlayerInfo[playerid][p_id])
    {
    GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine == 1)
    {
    SetVehicleParamsEx(Vehicle,0,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));



    }
    else
    { new pID;
    SetVehicleParamsEx(Vehicle,1,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
    format(LastDriver[Vehicle],50,"%s",getPlayerName(pID));



    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000FF, "Dieses Fahrzeug gehört nicht dir.");
    }
    return 1;
    }
    SendClientMessage(playerid,COLOR_RED,"Du besitzt keinen Schlüssel für dieses Fahrzeug.");
    return 1;
    }
    return 1;
    }

    Um mal kurz nachzufragen, weil das ja fast der gleiche Code ist, und ich zudem den Code bestimmt einmal im Monat hier sehe:


    Habt ihr den aus einem Tutorial, oder aus einem fertigen Gamemode?

    Der Code stammt aus einem Tutorial von MrMonat



    // Edit falscher Link


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Da ich mal vermute, das du das ganze gerade aus einem Thread von mir kopiert hast verweise ich dich mal auch dort hin



    /createhaus Befehl funktioniert nicht Richtig.

    Ist der Spieler wirklich eingeloggt ?
    Also der bool auf true gesetzt ?


    Sonst speicher den Spieler mal nach der Abfrage



    ocmd:setskin(playerid, params[])
    {
    if(!IsPlayerAnAdmin(playerid, 2))return 0;
    new pID, string[128], skinID;
    if(sscanf(params, "ui", pID, skinID))return SendClientMessage(playerid, COLOR_GRAY, "Tippe: /setskin [Spieler-ID] [Skin-ID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "FEHLER:"HTML_WHITE" Dieser Spieler ist Offline.");
    if(skinID < 0 || skinID > 311)return SendClientMessage(playerid, COLOR_RED2, "Die Skin-ID ist ungültig (verfügbare ID's: 0-311).");
    format(string, sizeof(string), "%s %s hat deinen Skin geändert.", GetAdminRang(playerid), GetSpielerName(playerid));
    SendClientMessage(pID, COLOR_WHITE, string);
    format(string, sizeof(string), "Du hast den Skin von %s geändert.", GetSpielerName(pID));
    SendClientMessage(playerid, COLOR_WHITE, string);
    SetPlayerSkin(pID, skinID);
    pInfo[pID][pSkin] = GetPlayerSkin(pID);
    SavePlayer(playerid);
    return 1;
    }

    Hallo liebe Leute,


    von meinem Haussystem funktioniert der Befehl nicht Richtig.



    ocmd:createhaus(playerid, params[])
    {
    if(!isAdmin(playerid, 3))return
    SendClientMessage(playerid, COLOR_RED, "Dein Adminrang ist zu niedrig.");
    new Float:xc, Float:yc, Float:zc;
    GetPlayerPos(playerid, xc, yc, zc);



    new id=getFreeHausID();
    hInfo[id][h_x]=xc;
    hInfo[id][h_y]=yc;
    hInfo[id][h_z]=zc;
    hInfo[id][ih_x]=266.5044;
    hInfo[id][ih_y]=304.7202;
    hInfo[id][ih_z]=999.1484;
    hInfo[id][h_interior]=2;
    strmid(hInfo[id][h_besitzer], "", 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME);
    hInfo[id][h_preis]=1;
    //In Datenbank abspeichern
    new query[512];
    format(query, sizeof(query),"INSERT INTO haus (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis) VALUES ('%f', '%f', '%f', '0.0', '0.0', '0.0', '0', '1')",xc, yc, zc);
    mysql_pquery(handle, query,"OnHausCreated", "i", id);
    updateHaus(id);
    print(query);
    return 1;
    }


    public OnHausCreated(id){ hInfo[id][h_id]=cache_insert_id(); return 1;}



    updateHaus(id)
    {
    new string[128];
    if(hInfo[id][h_pickup])
    {
    Delete3DTextLabel(hInfo[id][h_text]);
    }
    if(hInfo[id][h_text])
    {
    DestroyPickup(hInfo[id][h_pickup]);
    }
    if(!strlen(hInfo[id][h_besitzer]))
    {
    DestroyPickup(hInfo[id][h_pickup]);
    Delete3DTextLabel(hInfo[id][h_text]);
    hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
    hInfo[id][h_text]=Create3DTextLabel(string, COLOR_RED, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    else
    {
    DestroyPickup(hInfo[id][h_pickup]);
    Delete3DTextLabel(hInfo[id][h_text]);
    hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
    hInfo[id][h_text]=Create3DTextLabel(string, COLOR_BUSBLUE, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    return 1;
    }

    Sobald ich /createhaus eingebe wird das Haus erstellt. Erstelle ich dann aber noch eines, verschwindet das erste Haus und das neue wird erstellt.
    Alle beiden Häuser werden Richtig in die Datenbank eingetragen.


    Welchen Fehler habe ich gemacht ?

    Aus dem Print wird alles Richtig ausgegeben.


    Die veränderung von pquery in tquery hat nur eine veränderung in den logs gegeben



    Code
    [15:28:19] [ERROR] xŸV (C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn:2100)


    und auch das return führt zu keinen weiteren details.



    Code
    [15:28:19] INSERT INTO haus (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis) VALUES ('738.555847', '-1342.297241', '13.523264', '0.0', '0.0', '0.0', '0', '1')

    // Edit


    Problem hat sich erledigt eine Datenbanktabelle hatte gefehlt-

    Leider etwas womit wir glaub alle nichts anfangen können.



    Code
    [15:05:58] [plugins/mysql] èÈs (C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn:2101)

    Zeile 2101
    wäre


    mysql_pquery(handle, query,"OnHausCreated", "i", id);


    Ich füge sonst mal eben den OnHausCreated hinzu vielleicht is da auch der Fehler



    public OnHausCreated(id)
    {
    hInfo[id][h_id]=cache_insert_id();
    }

    Das Compilen klappt. Sobald ich das Haus erstelle kriege ich noch einen Error angezeigt bzw etwas was ich nicht wirklich entschlüsseln kann. Ich arbeite mit der pawn.cfg um weitere Logs zu erhalten.


    Hier scheint ein Fehler drin zu sein



    new query[512];
    format(query, sizeof(query),"INSERT INTO haus (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis) VALUES ('%f', '%f', '%f', '0.0', '0.0', '0.0', '0', '1')",xc, yc, zc);
    mysql_pquery(handle, query, "OnHausCreated", "i", id);


    alter Code aus MySQL R39-3



    new query[256];
    format(query, sizeof(query),
    "INSERT INTO haus (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis) VALUES ('%f', '%f', '%f', '0.0', '0.0', '0.0', '0', '1')",
    xc, yc, zc);
    mysql_function_query(handle, query, true, "OnHausCreated", "i", id);

    Danke für deine Hilfe.


    Das ganze habe ich nun auch so gemacht und es wirft keine Fehler aus.


    Nun habe ich aber noch das Problem mit


    mysql_function_query(handle, query, false, "", "");


    Ich habe versucht hier mit mysql_pquery zu arbeiten allerdings kriege ich immer ein tagmistach

    Hallo,


    ich würde gerne nun mein Haussystem von MySQL R39-3 zu R41 umschreiben. Das ganze schein soweit gut zu klappen allerdings komme ich bei 2 Dingen nicht weiter.


    Nummer 1:



    public OnHausesLoad()
    {
    new num_rows;
    cache_get_data(num_rows,handle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeHausID();
    cache_get_value_name_float(i, "x", hInfo[id][h_x]); //Float
    cache_get_value_name_float(i, "y", hInfo[id][h_y]); //Float
    cache_get_value_name_float(i, "z", hInfo[id][h_z]); //Float
    cache_get_value_name_float(i, "x", hInfo[id][ih_x]); //Float
    cache_get_value_name_float(i, "y", hInfo[id][ih_y]); //Float
    cache_get_value_name_float(i, "z", hInfo[id][ih_z]); //Float
    cache_get_value_name_int(i, "h_interior", hInfo[id][h_interior]); //Float
    new tmp_name[MAX_PLAYER_NAME];
    cache_get_value_name(i, "besitzer", tmp_name); //Float
    strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
    cache_get_value_name_int(i, "id",hInfo[id][h_id]); //Float
    cache_get_value_name_int(i, "h_preis",hInfo[id][h_preis]); //Float
    new string[128];
    if(!strlen(hInfo[id][h_besitzer]))
    {
    hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
    hInfo[id][h_text]=Create3DTextLabel(string, COLOR_RED, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    else
    {
    hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
    hInfo[id][h_text]=Create3DTextLabel(string, COLOR_BUSBLUE, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    }
    return 1;
    }


    Code
    C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn(2039) : error 017: undefined symbol "cache_get_data"
    In Zeile 4 von dem Editor hier


    Nummer 2:



    saveHaus(id)
    {
    new query[128];
    format(query, sizeof(query), "UPDATE haus SET besitzer='%s', h_preis='%i' WHERE id='%i'", hInfo[id][h_besitzer], hInfo[id][h_preis], hInfo[id][h_id]);
    mysql_function_query(handle, query, false, "", "");
    return 1;
    }


    Code
    C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn(2039) : error 017: undefined symbol "cache_get_data"
    
    
    
    
    Zeile 5

    Ich habe scheinbar unbewusst einen Fehler gemacht.


    Er wirft mir den Wert von


    if(pID > -1) { format(string,sizeof(string),"Besitzer %s [%d] Letzterr Fahrer: %s",getPlayerName(pID),pID,LastDriver[vid]); SendClientMessage(playerid,-1,string); }


    Allerdings nicht den


    getPlayerName(pID),


    sondern nur


    ,pID,LastDriver[vid]


    // Edit


    Problem folgender Maßen behoben



    Den Name über getPlayername abgefragt und als string an die Funktion übergeben


    GetPlayerName(i, string, MAX_PLAYER_NAME);


    // Edit


    Doch noch nicht erledigt. Nun wird mir zwar der Name angezeigt wenn ich Ihn abfrage allerdings nicht wenn der /motor befehl verwendet wurde um den letzten Fahrer auszulesen.



    Vielleicht kann mir da noch wer helfen



    ocmd:carinfo(playerid,params[])
    {
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"Du musst dein Fahrzeug verlassen um die Abfrage tätigen zu können.");
    new string[128],vid,Float:x,Float:y,Float:z,pID;
    if(sscanf(params,"d",vid)) return SendClientMessage(playerid,-1,"/carinfo [CARID]");
    if(vid == INVALID_VEHICLE_ID) return SendClientMessage(playerid,-1,"Ungültige Fahrzeug ID");
    GetVehiclePos(vid,x,y,z);
    if(!IsPlayerInRangeOfPoint(playerid,8,x,y,z)) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe des Fahrzeugs das du abrufen möchtest!");
    pID = GetVehicleBesitzer(vid);



    if(strlen(LastDriver[vid]) <= 0)
    {
    if(IsAFahrschule(vid))
    {
    format(string,sizeof(string),"Dieses Fahrzeug gehört der Fahrschule. Letzter Fahrer: %s",LastDriver[GetPlayerVehicleID(p_id)]);
    SendClientMessage(playerid,-1,string);
    print("Privat3");



    }
    else if(IsAOamtCar(vid))
    {
    format(string,sizeof(string),"Dieses Fahrzeug gehört dem Ordnungsamt. Letzter Fahrer: %s vID: %i",LastDriver[GetPlayerVehicleID(pID)],vid);
    SendClientMessage(playerid,-1,string);
    print("Privat2");
    }
    else if(IsABus(vid))
    {
    format(string,sizeof(string),"Dieses Fahrzeug gehört der Bus Organisation. Letzter Fahrer: %s",LastDriver[GetPlayerVehicleID(pID)]);
    SendClientMessage(playerid,-1,string);
    print("Privat1");
    }

    else if(pID == -1)
    {
    SendClientMessage(playerid,COLOR_RED,"Dieses Fahrzeug gehört dem Staat");
    }
    else
    { new i;
    GetPlayerName(i, string, MAX_PLAYER_NAME);
    format(string,sizeof(string),"Besitzer %s [%d]",string,pID);
    SendClientMessage(playerid,-1,string);
    }
    }
    else
    {
    if(pID == -1)
    {
    SendClientMessage(playerid,-1,"Dies ist ein Staatsfahrzeug");
    format(string,sizeof(string),"Letzter Fahrer %s",LastDriver[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid,-1,string);
    }
    else
    {
    format(string,sizeof(string),"Besitzer %s [%d] ",getPlayerName(pID),pID);
    SendClientMessage(playerid,-1,string);
    }
    format(string,sizeof(string),"Letzter Fahrer: %s",LastDriver[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid,-1,string);
    }
    return 1;
    }



    ocmd:motor(playerid,params[])
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    new Vehicle = GetPlayerVehicleID(playerid), engine,lights,alarm,doors,bonnet,boot,objective;



    //Fahrschule
    if(IsAFahrschule(Vehicle))
    {
    if(PlayerInfo[playerid][pFahrschulmotor]==0)
    {
    SendClientMessage(playerid,COLOR_RED,"Es findet kein Termin in der Fahrschule statt.");
    return 1;
    }
    GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine == VEHICLE_PARAMS_ON)
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
    DestroyVehicle(playerid);
    }
    else
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
    PlayerInfo[playerid][pFahrschulmotor]=0;
    format(LastDriver[Vehicle],30,"%s",getPlayerName2(playerid));
    }
    return 1;
    }



    //Bus
    if(IsAbus(Vehicle) && PlayerInfo[playerid][pJob] == 1)
    {
    GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine == VEHICLE_PARAMS_ON)
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
    }
    else
    {
    SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
    format(LastDriver[Vehicle],30,"%s",getPlayerName(playerid));
    }
    return 1;
    }



    //Private Fahrzeuge
    for(new id = 0; id < sizeof(cInfo); id++)
    {
    if(cInfo[id][id_x] == Vehicle)
    {
    if(cInfo[id][besitzer] == PlayerInfo[playerid][p_id])
    {
    GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine == 1)
    {
    SetVehicleParamsEx(Vehicle,0,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);



    }
    else
    {
    SetVehicleParamsEx(Vehicle,1,lights,alarm,doors,bonnet,boot,objective);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
    format(LastDriver[Vehicle],30,"%s",getPlayerName(playerid));



    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000FF, "Dieses Fahrzeug gehört nicht dir.");
    }
    return 1;
    }
    SendClientMessage(playerid,COLOR_RED,"Du besitzt keinen Schlüssel für dieses Fahrzeug.");
    return 1;
    }
    return 1;
    }