Autohaus Problem

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
  • Habn problem beim Autohaus system. eig klappt alles, aber neue position (/parken), neue farben und tuning wird nicht gespeichert....
    Und wenn das auto respawnt ist es schwarz (wahrscheinlich weil bei der farbe ja auch "0" also NICHTS eingetragen wird.


    Kriege dann wenn ich ein fahrzeug kaufe oder parken will diese meldung in der mysql log:
    [WARNING] CMySQLConnection::Disconnect - no connection available


    Hier Der KaufDialog:



    case DIALOG_AUTOHAUS:
    {
    if(response)
    {
    //Autoverkauf notiz
    new id=GetPVarInt(playerid,"buyCarID"),query[265];
    if(PlayerInfo[playerid][pGeld]<ahCars[id][c_preis])
    {
    SendClientMessage(playerid,Weis,"Info: {B90000}Du besitzt nicht genügend Geld umd dieses Fahrzeug zu kaufen.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    if(Iter_Count(SpielerCars[playerid]) == MAX_PRIVAT_AUTOS)
    {
    SendClientMessage(playerid,Weis,"Info: {B90000}Du kannst maximal nur "#MAX_PRIVAT_AUTOS" Fahrzeuge besitzen.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    givePlayerMoney(playerid,-ahCars[id][c_preis]);
    new vehid=getFreeCarID();
    if(vehid==-1) return SCM(playerid,Rot,"Es können derzeit keine Fahrzeuge erstellt werden das Fahrzeug Limit ist erreicht!");
    cInfo[vehid][id_x] =CreateVehicle(ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r],1,1,-1);
    format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r,name,tank) VALUES ('%i','%d','%f','%f','%f','%f','%s','%f')",PlayerInfo[playerid][dbid],ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r],VehicleName[ahCars[id][model]-400],ahCars[id][c_tank]);
    mysql_pquery(dbhandle,query,"carSavedToDB","i",vehid);


    cInfo[vehid][besitzer] = PlayerInfo[playerid][dbid];
    cInfo[vehid][c_x] = ahInfo[ahCars[id][ah_id]][s_x];
    cInfo[vehid][c_y] = ahInfo[ahCars[id][ah_id]][s_y];
    cInfo[vehid][c_z] = ahInfo[ahCars[id][ah_id]][s_z];
    cInfo[vehid][c_r] = ahInfo[ahCars[id][ah_id]][s_r];
    cInfo[vehid][model] = ahCars[id][model];
    cInfo[vehid][Farbe1] = 1;
    cInfo[vehid][Farbe2] = 1;
    cInfo[vehid][Paintjob] = 3;
    cInfo[vehid][ci_tank] = ahCars[id][c_tank];
    Tank[cInfo[vehid][id_x]]=ahCars[id][c_tank];
    TankZeit[cInfo[vehid][id_x]]=-1;
    GetVehicleParamsEx(vehid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehid, false, false, false, false, false, false,false);
    Iter_Add(SpielerCars[playerid],vehid);
    //Fahrzeugparameter
    Motor[vehid] = false;
    Licht[vehid] = false;
    DOOR[vehid] = false;


    SendClientMessage(playerid,Weis,"Du hast das Fahrzeug erfolgreich gekauft.");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,Weis,"Info: {B90000}Du hast den Kauf abgebrochen.");
    }
    return 1;
    }




    der /parken befehl



    ocmd:parken(playerid,params[])
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Weis,"Du musst in deinem Fahrzeug sitzen um es zu Parken");
    new Float:Pos[4], vehid = GetPlayerVehicleID(playerid),scar=IsSpielerCar(playerid,vehid);
    if(scar==-1)return SendClientMessage(playerid,Auto,"**Du besitzt keine Schlüssel für dieses Fahrzeug.");
    if(Motor[vehid] == true)return SendClientMessage(playerid,Auto,"**Schalte vorher den Motor aus, um das Fahrzeug parken zu können.");
    GetVehiclePos(vehid,Pos[0],Pos[1],Pos[2]);
    GetVehicleZAngle(vehid,Pos[3]);
    cInfo[scar][c_x] = Pos[0];
    cInfo[scar][c_y] = Pos[1];
    cInfo[scar][c_z] = Pos[2];
    cInfo[scar][c_r] = Pos[3];
    SendClientMessage(playerid,Auto,"**Du hast dein Fahrzeug umgeparkt.");
    return 1;
    }


  • Es besteht keine Verbindung zur MySQL Datenbank.Prüfe ob deine Daten korrekt sind, und ob vielleicht zuvor noch etwas anderes im MySQL Log steht.

    sollte alles korrekt sein glaube hier, hier meine datenbank



  • forward userSavedToDB(playerid);
    public userSavedToDB(playerid)
    {
    PlayerInfo[playerid][dbid]=cache_insert_id();
    return 1;
    }
    forward carSavedToDB(carid);
    public carSavedToDB(carid)
    {
    cInfo[carid][db_id]=cache_insert_id();
    return 1;
    }


  • Jeffry, meint dass du einen
    new query[512]
    mysql_format(MySQL_Connnectionhandle, query, sizeof(query), "UPDATE `table` SET `columnname` = 'data' WHERE `tableindexcolumn` = 'index'")
    mysql_pquery(MySQL_Connectionhandle, query)


    Irgendwo einfügen musst, da sonst das Script keine Daten zur Datenbank sendet.


    Cache-Funktionen speichern nur MySQL Operationen im Zwischenspeicher.


    http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_pquery


    Der Link zum Multithreaded MySQL-Query vom BlueG plug-in, welches du hoffentlich benutzt

    Einmal editiert, zuletzt von Saintsbury ()

  • Nein, das ist keine Speicherfunktion.
    Du musst das Fahrzeug mit einem UPDATE-Query speichern. Falls du sowas nicht hast, musst du es bei deinem Parken Befehl einbauen.

    meinst du sowas?



    forward OnPlayerCarsLoad(playerid);
    public OnPlayerCarsLoad(playerid)
    {
    if(!cache_num_rows())return 1;
    for(new c=0;c<cache_num_rows();c++)
    {
    new i= getFreeCarID();
    cInfo[i][db_id] = cache_get_field_content_int(c,"id");
    cInfo[i][besitzer] = cache_get_field_content_int(c,"besitzer");
    cInfo[i][model] = cache_get_field_content_int(c,"model");
    cInfo[i][c_x] = cache_get_field_content_float(c,"x");
    cInfo[i][c_y] = cache_get_field_content_float(c,"y");
    cInfo[i][c_z] = cache_get_field_content_float(c,"z");
    cInfo[i][c_r] = cache_get_field_content_float(c,"r");
    cInfo[i][ci_tank] = cache_get_field_content_float(c,"tank");
    cInfo[i][Farbe1] = cache_get_field_content_int(c,"color1");
    cInfo[i][Farbe2] = cache_get_field_content_int(c,"color2");
    cInfo[i][Paintjob] = cache_get_field_content_int(c,"paintjob");
    cInfo[i][Tuning][0] = cache_get_field_content_int(c,"spoiler");
    cInfo[i][Tuning][1] = cache_get_field_content_int(c,"hood");
    cInfo[i][Tuning][2] = cache_get_field_content_int(c,"roof");
    cInfo[i][Tuning][3] = cache_get_field_content_int(c,"sideskirt");
    cInfo[i][Tuning][4] = cache_get_field_content_int(c,"lamps");
    cInfo[i][Tuning][5] = cache_get_field_content_int(c,"nitro");
    cInfo[i][Tuning][6] = cache_get_field_content_int(c,"exhaust");
    cInfo[i][Tuning][7] = cache_get_field_content_int(c,"wheels");
    cInfo[i][Tuning][8] = cache_get_field_content_int(c,"stereo");
    cInfo[i][Tuning][9] = cache_get_field_content_int(c,"hydraulics");
    cInfo[i][Tuning][10] = cache_get_field_content_int(c,"frontbumper");
    cInfo[i][Tuning][11] = cache_get_field_content_int(c,"rearbumper");
    cInfo[i][Tuning][12] = cache_get_field_content_int(c,"ventright");
    cInfo[i][Tuning][13] = cache_get_field_content_int(c,"ventleft");
    cInfo[i][id_x] = CreateVehicle(cInfo[i][model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][Farbe1],cInfo[i][Farbe2],-1);
    Iter_Add(SpielerCars[playerid],i);
    Tank[cInfo[i][id_x]]=cInfo[i][ci_tank];
    TankZeit[cInfo[i][id_x]]=-1;
    AddSCarTuning(i);
    }
    return 1;
    }


  • Nein. In dem Code gibt es kein UPDATE.


    Schaue dir in diesem Tutorial ([jTuT] Fraktions-Fahrzeug-System mit MySQL R39-2) die SaveAllFracVehs-Funktion an, sowas benötigst du.


    forward SavePrivatCar(playerid);
    public SavePrivatCar(playerid)
    {
    if(Iter_Count(SpielerCars[playerid])==0)return 1;
    foreach(new i : SpielerCars[playerid])
    {
    if(cInfo[i][db_id] == 0 || cInfo[i][besitzer] != playerid)continue;
    new query[1024];
    cInfo[i][ci_tank]=Tank[cInfo[i][id_x]];
    mysql_format(dbhandle,query,sizeof query,"UPDATE `autos` SET `x`=%f,`y`=%f,`z`=%f,`r`=%f,`tank`=%f,`color1`=%d,`color2`=%d,`paintjob`=%d,`spoiler`=%d,`hood`=%d,`roof`=%d,`sideskirt`=%d,`lamps`=%d,`nitro`=%d,`exhaust`=%d,`wheels`=%d,`stereo`=%d,`hydraulics`=%d,`frontbumper`=%d,`rearbumper`=%d,`ventright`=%d,`ventleft`=%d WHERE `id`='%d'",
    cInfo[i][c_x], cInfo[i][c_y], cInfo[i][c_z], cInfo[i][c_r], cInfo[i][ci_tank], cInfo[i][Farbe1], cInfo[i][Farbe2], cInfo[i][Paintjob],cInfo[i][Tuning][0],cInfo[i][Tuning][1],cInfo[i][Tuning][2],cInfo[i][Tuning][3],cInfo[i][Tuning][4],cInfo[i][Tuning][5],cInfo[i][Tuning][6],cInfo[i][Tuning][7],
    cInfo[i][Tuning][8],cInfo[i][Tuning][9],cInfo[i][Tuning][10],cInfo[i][Tuning][11],cInfo[i][Tuning][12],cInfo[i][Tuning][13], cInfo[i][db_id]);
    mysql_pquery(dbhandle, query);
    }
    return 1;
    }



  • Füge das am Ende deines Parken Befehls ein, nachdem die Werte zugewiesen sind:
    SavePrivatCar(playerid);

    bringt nichts

  • Was sagt der MySQL Log, wenn du den Parken-Befehl dann so ausführst?

    gerade spnnt der server, seitdem ich das saveplayer umgeändert habe, er erkennt nun keine befehle mehr, also kann ich das parken net testen..


    der code..



    forward savePlayer(playerid);
    public savePlayer(playerid)
    {
    if(!PlayerInfo[playerid][pLogged])return 1;
    new query[1500];
    mysql_format(dbhandle, query, sizeof query, "UPDATE `Benutzerkonten` SET `Geld`=%i,`Level`=%i,`Adminlevel`=%i,`Geschlecht`=%i,`Kleidung`=%i,`Kills`=%i,`Deaths`=%i,`Beruf`=%i,`Fuehrerschein`=%i,`Flugschein`=%i,`Angelschein`=%i,`Waffenschein`=%i,`Fightingstyle`=%i,`Bootsschein`=%i,`Zollpass`=%i,`Motorradschein`=%i ,`Mats`=%i ,`Weed`=%i ,`Savedweed`=%i ,`Savedmats`=%i ,`Drugknollen`=%i ,`Matspakete`=%i ,`Waffengebuehr`=%i ,`Drogengebuehr`=%i,`Selledmats`=%i,`Selledweed`=%i,`Mutezeit`=%i",
    PlayerInfo[playerid][pGeld],PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdminlevel],PlayerInfo[playerid][pGeschlecht],PlayerInfo[playerid][pKleidung],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],
    PlayerInfo[playerid][pBeruf],PlayerInfo[playerid][pFuehrerschein],PlayerInfo[playerid][pFlugschein],PlayerInfo[playerid][pAngelschein],PlayerInfo[playerid][pWaffenschein],PlayerInfo[playerid][pFightingstyle],
    PlayerInfo[playerid][pBootsschein],PlayerInfo[playerid][pZollpass],PlayerInfo[playerid][pMotorradschein],PlayerInfo[playerid][pMats],PlayerInfo[playerid][pWeed],
    PlayerInfo[playerid][pSavedweed],PlayerInfo[playerid][pSavedmats],PlayerInfo[playerid][pDrugknollen],PlayerInfo[playerid][pMatspakete],PlayerInfo[playerid][pWaffengebuehr],PlayerInfo[playerid][pDrogengebuehr],
    PlayerInfo[playerid][pSelledmats],PlayerInfo[playerid][pSelledweed],PlayerInfo[playerid][pMutezeit],PlayerInfo[playerid][pPerso]);
    format(query,sizeof(query)," `Perso`=%i WHERE `Id`='%i'",query,
    PlayerInfo[playerid][pPerso],PlayerInfo[playerid][dbid]);
    mysql_pquery(dbhandle, query);
    print(query);
    return 1;
    }

  • habe jz errors. habe das jz so geschrieben:



    forward savePlayer(playerid);
    public savePlayer(playerid)
    {
    if(!PlayerInfo[playerid][pLogged])return 1;
    new query[1500];
    mysql_format(dbhandle, query, sizeof query, "UPDATE `Benutzerkonten` SET `Geld`=%i,`Level`=%i,`Adminlevel`=%i,`Geschlecht`=%i,`Kleidung`=%i,`Kills`=%i,`Deaths`=%i,`Beruf`=%i,`Fuehrerschein`=%i,`Flugschein`=%i,`Angelschein`=%i,`Waffenschein`=%i,`Fightingstyle`=%i,`Bootsschein`=%i,`Zollpass`=%i,`Motorradschein`=%i ,`Mats`=%i ,`Weed`=%i ,`Savedweed`=%i ,`Savedmats`=%i ,`Drugknollen`=%i ,`Matspakete`=%i ,`Waffengebuehr`=%i ,`Drogengebuehr`=%i,`Selledmats`=%i,`Selledweed`=%i,`Mutezeit`=%i",
    PlayerInfo[playerid][pGeld],PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdminlevel],PlayerInfo[playerid][pGeschlecht],PlayerInfo[playerid][pKleidung],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],
    PlayerInfo[playerid][pBeruf],PlayerInfo[playerid][pFuehrerschein],PlayerInfo[playerid][pFlugschein],PlayerInfo[playerid][pAngelschein],PlayerInfo[playerid][pWaffenschein],PlayerInfo[playerid][pFightingstyle],
    PlayerInfo[playerid][pBootsschein],PlayerInfo[playerid][pZollpass],PlayerInfo[playerid][pMotorradschein],PlayerInfo[playerid][pMats],PlayerInfo[playerid][pWeed],
    PlayerInfo[playerid][pSavedweed],PlayerInfo[playerid][pSavedmats],PlayerInfo[playerid][pDrugknollen],PlayerInfo[playerid][pMatspakete],PlayerInfo[playerid][pWaffengebuehr],PlayerInfo[playerid][pDrogengebuehr],
    PlayerInfo[playerid][pSelledmats],PlayerInfo[playerid][pSelledweed],PlayerInfo[playerid][pMutezeit],PlayerInfo[playerid][pPerso]);
    format(query,sizeof(query)," %s`Perso`=%i WHERE `Id`='%i'",query,[*]PlayerInfo[playerid][pPerso],PlayerInfo[playerid][dbid]); //fehlerzeile
    mysql_pquery(dbhandle, query);
    print(query);
    return 1;
    }



    errors:
    C:\Users\Spiele\Desktop\Fabolous LasVenturas Reallife\gamemodes\lvreallife.pwn(4200) : error 029: invalid expression, assumed zero
    C:\Users\Spiele\Desktop\Fabolous LasVenturas Reallife\gamemodes\lvreallife.pwn(4200) : warning 215: expression has no effect
    C:\Users\Spiele\Desktop\Fabolous LasVenturas Reallife\gamemodes\lvreallife.pwn(4200) : warning 215: expression has no effect
    C:\Users\Spiele\Desktop\Fabolous LasVenturas Reallife\gamemodes\lvreallife.pwn(4200) : error 001: expected token: ";", but found ")"
    C:\Users\Spiele\Desktop\Fabolous LasVenturas Reallife\gamemodes\lvreallife.pwn(4200) : error 029: invalid expression, assumed zero
    C:\Users\Spiele\Desktop\Fabolous LasVenturas Reallife\gamemodes\lvreallife.pwn(4200) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

  • format(query,sizeof(query)," %s`Perso`=%i WHERE `Id`='%i'",query,[*]PlayerInfo[playerid][pPerso],PlayerInfo[playerid][dbid]); //fehlerzeile
    Zu
    format(query,sizeof(query),"%s, `Perso`=%i WHERE `Id`='%i'",query,PlayerInfo[playerid][pPerso],PlayerInfo[playerid][dbid]);