Autos laden nicht

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
  • Dann ändere mal beim Laden:
    mysql_fetch_field("kennzeichen",data); format(cInfo[i][kennzeichen], 64, data);
    zu:
    mysql_fetch_field("kennzeichen",data); format(cInfo[i][kennzeichen], 64, data);
    printf("Kennzeichen (%d) = %s", i, cInfo[i][kennzeichen]);


    Was wird dir so im Server Log ausgegeben, wenn du den Server startest?

  • Habe den Fehler gefunden


    mysql_fetch_field("kennzeichen",data); format(cInfo[i][kennzeichen], 64, data);


    Musste so (großes K)


    mysql_fetch_field("Kennzeichen",data); format(cInfo[i][Kennzeichen], 64, data);



    //EDIT


    Jetzt hätte ich noch die Frage, ein Spieler soll maximal 5 Autos besitzen, und das soll in die spalte slot eingetragen werden sprich bei dem user in der Tabelle Autos wie kann ich das machen?

    Einmal editiert, zuletzt von timm462f ()

  • Also ich habe die DB so:



    Das letzte Fahrzeug einfach kurz wegdenken.


    Ich will jetzt wenn sich der User ein neues Fahrzeug zulegt, dass der Slot +1 Geht aber das soll auch nur bei diesen Spieler passieren und nicht die ganze Spalte immer +1


  • saveCarToDB(playerid,carid)
    {
    //new query[128];
    format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r,farbe1,farbe2,kennzeichen,zugelassen) VALUES ('%i','%i','%f','%f','%f','%f','%i','%i','LS-000','0')",PlayerInfo[playerid][pMySQLID],cInfo[carid][carmodel],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r],cInfo[carid][color_1],cInfo[carid][color_2]);
    mysql_query(query);
    return 1;
    }
    createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r,c1,c2)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]!=0)continue;
    cInfo[i][besitzer]=PlayerInfo[playerid][pMySQLID];
    cInfo[i][c_x]=x;
    cInfo[i][c_y]=y;
    cInfo[i][c_z]=z;
    cInfo[i][c_r]=r;
    cInfo[i][color_1]=c1;
    cInfo[i][color_2]=c2;
    cInfo[i][carmodel]=modelid;
    cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,c1,c2,-1);
    new string[128];
    SetVehicleNumberPlate(cInfo[i][id_x],"LS-000");
    saveCarToDB(playerid,i);
    return 1;
    }
    return 1;
    }

  • saveCarToDB(playerid,carid)
    {
    //new query[128];
    format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r,farbe1,farbe2,kennzeichen,zugelassen,slot) VALUES ('%i','%i','%f','%f','%f','%f','%i','%i','LS-000','0','%d')",PlayerInfo[playerid][pMySQLID],cInfo[carid][carmodel],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r],cInfo[carid][color_1],cInfo[carid][color_2],cInfo[carid][slot]);
    mysql_query(query);
    return 1;
    }
    createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r,c1,c2)
    {
    new sCount;
    for(new i=0; i<sizeof(cInfo); i++) if(cInfo[i][besitzer] == PlayerInfo[playerid][pMySQLID]) sCount++;
    if(sCount >= 5) return SendClientMessage(playerid, 0xFF0000FF, "Error: Alle Slots belegt (Maximal 5).");
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]!=0)continue;
    cInfo[i][besitzer]=PlayerInfo[playerid][pMySQLID];
    cInfo[i][slot]=sCount;
    cInfo[i][c_x]=x;
    cInfo[i][c_y]=y;
    cInfo[i][c_z]=z;
    cInfo[i][c_r]=r;
    cInfo[i][color_1]=c1;
    cInfo[i][color_2]=c2;
    cInfo[i][carmodel]=modelid;
    cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,c1,c2,-1);
    new string[128];
    SetVehicleNumberPlate(cInfo[i][id_x],"LS-000");
    saveCarToDB(playerid,i);
    return 1;
    }
    return 1;
    }
    Versuche es so.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Okay geht danke


    //Edit


    Ich ahbe hier diesen Code bisher und ich möchte wenn der User den Befehl ausführt es so aussieht



    Und wenn der Spieler halt das Fahrzeug ausgewält hat das die befehle wie /Carlock,/Findcar usw. nur halt für dieses Fahrzeug gelten und wenn man ein anderes auswählt halt das andere



    ocmd:carkey(playerid,params[])
    {
    new query[333],string[444];
    format(query,sizeof(query),"SELCET * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][pMySQLID]);
    mysql_query(query);
    format(string,sizeof(string),"%s",getVehicleName(GetVehicleModel(playerid)));
    ShowPlayerDialog(playerid,DIALOG_CARKEY,DIALOG_STYLE_LIST,"Fahrzeuge",string,"Auswählen","Beenden");
    return 1;
    }



    static const carNames[212][20 char] = {
    !"Landstalker", !"Bravura", !"Buffalo", !"Linerunner", !"Perrenial", !"Sentinel", !"Dumper", !"Firetruck", !"Trashmaster", !"Stretch", !"Manana",
    !"Infernus", !"Voodoo", !"Pony", !"Mule", !"Cheetah", !"Ambulance", !"Leviathan", !"Moonbeam", !"Esperanto", !"Taxi", !"Washington", !"Bobcat",
    !"Whoopee", !"BF Injection", !"Hunter", !"Premier", !"Enforcer", !"Securicar", !"Banshee", !"Predator", !"Bus", !"Rhino", !"Barracks", !"Hotknife",
    !"Trailer 1", !"Previon", !"Coach", !"Cabbie", !"Stallion", !"Rumpo", !"RC Bandit", !"Romero", !"Packer", !"Monster", !"Admiral", !"Squalo",
    !"Seasparrow", !"Pizzaboy", !"Tram", !"Trailer 2", !"Turismo", !"Speeder", !"Reefer", !"Tropic", !"Flatbed", !"Yankee", !"Caddy", !"Solair",
    !"Berkley's RC Van", !"Skimmer", !"PCJ-600", !"Faggio", !"Freeway", !"RC Baron", !"RC Raider", !"Glendale", !"Oceanic", !"Sanchez", !"Sparrow",
    !"Patriot", !"Quad", !"Coastguard", !"Dinghy", !"Hermes", !"Sabre", !"Rustler", !"ZR-350", !"Walton", !"Regina", !"Comet", !"BMX", !"Burrito",
    !"Camper", !"Marquis", !"Baggage", !"Dozer", !"Maverick", !"News Chopper", !"Rancher", !"FBI Rancher", !"Virgo", !"Greenwood", !"Jetmax", !"Hotring",
    !"Sandking", !"Blista Compact", !"Police Maverick", !"Boxvillde", !"Benson", !"Mesa", !"RC Goblin", !"Hotring Racer A", !"Hotring Racer B",
    !"Bloodring Banger", !"Rancher", !"Super GT", !"Elegant", !"Journey", !"Bike", !"Mountain Bike", !"Beagle", !"Cropduster",!"Stunt", !"Tanker",
    !"Roadtrain", !"Nebula", !"Majestic", !"Buccaneer", !"Shamal", !"Hydra", !"FCR-900", !"NRG-500", !"HPV1000", !"Cement Truck", !"Tow Truck", !"Fortune",
    !"Cadrona", !"FBI Truck", !"Willard", !"Forklift", !"Tractor", !"Combine", !"Feltzer", !"Remington", !"Slamvan", !"Blade", !"Freight", !"Streak",
    !"Vortex", !"Vincent", !"Bullet", !"Clover", !"Sadler", !"Firetruck LA", !"Hustler", !"Intruder", !"Primo", !"Cargobob", !"Tampa", !"Sunrise", !"Merit",
    !"Utility", !"Nevada", !"Yosemite", !"Windsor", !"Monster A", !"Monster B", !"Uranus", !"Jester", !"Sultan", !"Stratum", !"Elegy", !"Raindance",
    !"RC Tiger", !"Flash", !"Tahoma", !"Savanna", !"Bandito", !"Freight Flat", !"Streak Carriage", !"Kart", !"Mower", !"Dune", !"Sweeper", !"Broadway",
    !"Tornado", !"AT-400", !"DFT-30", !"Huntley", !"Stafford", !"BF-400", !"News Van", !"Tug", !"Trailer 3", !"Emperor", !"Wayfarer", !"Euros", !"Hotdog",
    !"Club", !"Freight Carriage", !"Trailer 4", !"Andromada", !"Dodo", !"RC Cam", !"Launch", !"Police Car (LSPD)", !"Police Car (SFPD)",
    !"Police Car (LVPD)", !"Police Ranger", !"Picador", !"S.W.A.T", !"Alpha", !"Phoenix", !"Glendale", !"Sadler", !"Luggage Trailer A",
    !"Luggage Trailer B", !"Stairs", !"Boxville", !"Tiller", !"Utility Trailer"
    };
    stock getVehicleName(model) {
    static buffer[32];
    return strunpack(buffer,carNames[(model)-400],sizeof buffer),buffer;
    }

    Einmal editiert, zuletzt von timm462f ()

  • Das kannst du auch ohne die Datenbank anzusprechen machen.
    Versuche es so:
    ocmd:carkey(playerid,params[])
    {
    new string[512], bool:found, model;
    for(new s = 1; s <= 5; s++)
    {
    found = false;
    for(new i = 0; i < sizeof(cInfo); i++)
    {
    if(cInfo[i][besitzer] == PlayerInfo[playerid][pMySQLID] && cInfo[i][slot] == s)
    {
    found = true;
    model = cInfo[i][carmodel];
    if(model >= 400 && model <= 611) format(string,sizeof(string),"%s{FF0000}%d) %s\n",string, s, getVehicleName(model));
    else format(string,sizeof(string),"%s{00FF00}%d) -Schlüssel frei-\n",string, s);
    break;
    }
    }
    if(!found) format(string,sizeof(string),"%s{00FF00}%d) -Schlüssel frei-\n",string, s);
    }
    ShowPlayerDialog(playerid,DIALOG_CARKEY,DIALOG_STYLE_LIST,"Fahrzeuge",string,"Auswählen","Beenden");
    return 1;
    }

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry () aus folgendem Grund: Color-Code verbessert

  • Was wird dir so im Server Log ausgegeben?
    ocmd:carkey(playerid,params[])
    {
    new string[512], bool:found, model;
    for(new s = 0; s <= 4; s++)
    {
    found = false;
    printf("Starte Slot %d", s);
    for(new i = 0; i < sizeof(cInfo); i++)
    {
    printf("i: %d -> Besitzer: %d == %d / Slot: %d", i, cInfo[i][besitzer], PlayerInfo[playerid][pMySQLID], cInfo[i][slot]);
    if(cInfo[i][besitzer] == PlayerInfo[playerid][pMySQLID] && cInfo[i][slot] == s)
    {
    found = true;
    model = cInfo[i][carmodel];
    printf("model: %d", model);
    if(model >= 400 && model <= 611) format(string,sizeof(string),"%s{FF0000}%d) %s\n",string, s, getVehicleName(model));
    else format(string,sizeof(string),"%s{00FF00}%d) -Schlüssel frei-\n",string, s);
    break;
    }
    }
    printf("found = false");
    if(!found) format(string,sizeof(string),"%s{00FF00}%d) -Schlüssel frei-\n",string, s);
    }
    ShowPlayerDialog(playerid,DIALOG_CARKEY,DIALOG_STYLE_LIST,"Fahrzeuge",string,"Auswählen","Beenden");
    return 1;
    }

  • Versuche mal das


    und Poste mal den Stock, wo du die Fahrzeuge lädst.

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • Da steht jetzt im jeden slot Infernus aber es gibt auch andere Fahrzeuge