Zeigt Fahrzeugname nicht an -.-

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
  • Tag
    Mache einen /cars Befehl wo alle Cars angezeigt werden, die man besitzt.


    if(!strcmp("/cars", cmdtext, true))
    {
    new strr[60];
    SendClientMessage(playerid, Grey, "{D0D6D1}|~~~~~~ {22D63D} Deine Fahrzeuge{D0D6D1} ~~~~~~|");
    new countr = 1;
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    format(strr, sizeof strr, "/Cars/%d.ini", i);
    if(fexist(strr))
    {
    if(!strcmp(PlayerCar[i][Key], sendername, false))
    {
    new str[128];
    format(str, sizeof str, "Fahrzeug: %d: %s, ID: %d", countr, CarNames[PlayerCar[i][model]-400], PlayerCar[i][NSID]);
    SendClientMessage(playerid, Grey, str);
    countr++;
    }
    }
    }
    if(countr == 1) SendClientMessage(playerid, Grey, "Du besitzt kein Fahrzeug!");
    return 1;
    }



    Zum Problem:
    Ich will ja den Fahrzeugname anzeigen mit dem CarNames in
    format(str, sizeof str, "Fahrzeug: %d: %s, ID: %d", countr, CarNames[PlayerCar[i][model]-400], PlayerCar[i][NSID]);
    Aber das will irgendwie nicht. Errors/Warnings keine, aber wenn ich im Game /cars mache steht dort: "SERVER: Unknowm Command."
    Habe jetzt rausgefunden, dass diese Zeile den Befehl /cars komplett beendet. Der Rest läuft garnicht mehr durch.
    Hier das new CarNames:


    new CarNames[212][] = {
    "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"
    };



    Bitte helft mir ich verzweifel gleich X(

  • Kleine Frage:


    Du speicherst die Fahrzeuge doch in einer Datei und diese heißt doch bestimmt mit namen und nicht nur mit einer Zahl oder?


    format(strr, sizeof strr, "/Cars/%d.ini", i);
    Weil sonst ladet er ja nur wenn z.B. MAX_VEHICLES auf 2 ist die Cars aus diesen Dateien:


    /Cars/0.ini
    /Cars/1.ini


    Ich glaube da liegt der Fehler :huh:

  • danfai:
    Habe ich schon probiert es werden alle Variablen bis format(str, sizeof str kommt korrekt hineingeschrieben in die Log-Datei.


    Zunno:
    Nein die dateien heißen schon 0.ini, 1.ini, 2.ini usw.
    Weil wenn ich es nach dem Fahrzeugnamen benennen würde, dann könnte man ja jedes Car nur einmal kaufen.

  • Zunno:
    Nein die dateien heißen schon 0.ini, 1.ini, 2.ini usw.
    Weil wenn ich es nach dem Fahrzeugnamen benennen würde, dann könnte man ja jedes Car nur einmal kaufen.


    nunja , ich speichere die privat cars auf die NAmen der jeweiligen spieler ab (DT_Cars)
    Dort werden die Cars mit namen gespeichert und dahinter eine zahl für die nummer des cars
    z.B. Zunno0.dtcar & Zunno1.dtcar
    und so sieht der string aus wie ich es lade:
    format(str, sizeof str, "/DT_Cars/%s%d.dtcar", name,Dtc_PlayerKey[playerid]);
    Vieleicht hilft dir das ja weiter

  • Ne Zunno das passt bei mir schon alles so und von DT_Cars will ich schonmal garnichts wissen ^^
    danfai:


    enum car_info
    {
    model,
    Float:px,
    Float:py,
    Float:pz,
    Float:pa,
    vid,
    Key[MAX_PLAYER_NAME],
    c1,
    c2,
    Text3D:NS,
    ABC[15],
    Fuel,
    NSID,
    BuyPrice,
    Lock,
    Nitro,
    Hyd,
    Wheel,
    Auspuff,
    SeiteL,
    SeiteR,
    FB,
    RB,
    Spoiler,
    Roof,
    Hood,
    Vent,
    Lamp,
    Paintjob,
    JobCar,
    FrakCar,
    Job,
    Frak,
    Dist
    }
    new PlayerCar[MAX_VEHICLES][car_info];


  • if(!strcmp("/cars", cmdtext, true))
    {
    new strr[60];
    SendClientMessage(playerid, Grey, "{D0D6D1}|~~~~~~ {22D63D} Deine Fahrzeuge{D0D6D1} ~~~~~~|");
    new countr = 1;
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    format(strr, sizeof strr, "/Cars/%d.ini", i);
    if(fexist(strr))
    {
    if(!strcmp(PlayerCar[i][Key], sendername, false))
    {
    new str[128];
    format(str, sizeof str, "Fahrzeug: %d: %s, ID: %d", countr, CarNames[PlayerCar[i][model]-400], PlayerCar[i][NSID]);
    SendClientMessage(playerid, Grey, str);
    countr++;
    }
    }
    }
    if(countr == 1) SendClientMessage(playerid, Grey, "Du besitzt kein Fahrzeug!");
    return 1;
    return 1;
    }
    Versuche erstmal, ob so "SERVER: Unknowm Command." nicht mehr erscheint.

  • "countr" gehört nicht mit in die format-Funktion.
    format(str, sizeof str, "Fahrzeug: %d: %s, ID: %d", CarNames[PlayerCar[i][model]-400], PlayerCar[i][NSID]);


    Im übrigen würd ich das sowieso anders lösen. Deklarier countr als boolean und setz es in der if Abfrage auf true. Die Schleife über die ini Dateien ist bei vielen Fahrzeugen übrigends der absolute Performancekiller.


    EDIT: Wenn countr die Fahrzeuganzahl sein soll, dann initialisiere sie mit dem Defaultwert 0 und änder unten die Abfrage, sonst macht das Ergebnis keinen Sinn.

    Einmal editiert, zuletzt von Nostraa ()

  • danfai: Die wird in LoH Standartgemäß mit dem Spielernamen und OnPlayerCommandText belegt.


    LoRdCrUnChEr: Das "Server: Unknown Command" kommt warscheinlich daher, da dann 0 returnt wird. Und mit 2 mal return 1; löst sich das auch nicht [ getestet ]


    Kevin: Moment ich probiers mal


    Nostraa: Dann ist aber ein Parameter zu wenig ;) Wie danfai gesagt hat ist das die Anzahl des Fahrzeuges.


    //Edit: Kevin: Nein funktioniert nicht.