Fahrzeugen Namen zuordnen

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
  • Nabend,
    ich möchte bei der Feuerwehr den Fahrzeugen spezielle Namen geben...


    Im Moment werden die Namen aller Fahrzeuge so gespeichert:
    new VehicleName[][] = {
    "Landstalker",
    "Bravura",
    "Buffalo",
    "Linerunner",
    // und so weiter... Die ganzen Fahrzeuge halt...
    "Boxville",
    "Farm Plow",
    "Utility Trailer"
    };


    Im Tacho zeige ich den Namen an mit:
    VehicleName[GetVehicleModel(vehicleid)-400]


    Jetzt will ich beim Tacho überprüfen, ob es ein Feuerwehrauto ist (Fahrzeuge sind bei mir mit Arrays erstellt und ich hab nen public IsAFeuerwehrcar), und wenn ja, für jedes Feherwehrauto einen speziellen Namen laden...


    Dacht ich mir so:
    new FeuerwehrVehsNamen[][] = {
    "Drehleiter",
    "Löschfahrzeug",
    "Einsatzleitfahrzeug",
    "Löschfahrzeug"
    // usw...
    };


    Die Fahrzeuge sind so erstellt:
    FeuerwehrVehs[0] = CreateStaticVehicleEx(...... // Drehleiter
    FeuerwehrVehs[1] = CreateStaticVehicleEx(...... // Löschfahrzeug
    FeuerwehrVehs[2] = CreateStaticVehicleEx(...... // Einsatzleitfahrzeug
    FeuerwehrVehs[3] = CreateStaticVehicleEx(...... // Löschfahrzeug


    Aber irgendwie komm ich da nicht weiter.. Wie teile ich die FeuerwehrVehsNamen den FeuerwehrVehs zu?


    MfG

  • Prüfung, ob es ein Feuerwehrauto ist:


    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 407) // 407 ist das Löschfahrzeug
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 544) //544 ist das mit der Leiter

    mfg RedDragon 8)


    Was ist GFKD?


    Ein revolutionärer Clan, dessen Eröffnung kurz bevorsteht.
    Mehr Informationen folgen bald.


  • new VehicleName[][] = {
    "Landstalker",
    "Bravura",
    "Buffalo",
    "Linerunner",
    // und so weiter... Die ganzen Fahrzeuge halt...
    "Boxville",
    "Farm Plow",
    "Utility Trailer"
    };



    Änder halt die Namen in der oberen Array anstatt noch ein paar mehr zu erstellen und es unnötig kompliziert zu machen, notfalls kannst du auch die Vehicle ID bei OnPlayerEnterVehicle abfragen und den dazugehörigen Namen in nen Textdraw was weiß ich packen um eben beide Namen zu haben.


    LG

  • Anstatt die ID's abzufragen von den Feuerwehrwagen empfehle ich einfach den Array zu benutzen sonst wäre es ja Unnötig diesen Array zu benutzen.


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new Fahrzeug = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new i=0;i<sizeof(FeuerwehrVehs);i++)
    {
    if(Fahrzeug == FeuerwehrVehs[i])
    {
    SendClientMessage(playerid,FARBE_OLIVE,"Du bist in ein Feuerwehr Fahrzeug eingestiegen!");
    }
    }
    }
    return 1;
    }

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • @-PhoeniX-
    Genau das will ich ja nicht. Ich habe mehrere Firetrucks, die alle unterschiedliche Namen haben sollen.. Oder der FBI Rancher wird bei der POL auch noch genutzt, also kann ich die Namen nicht verallgemeinern..


    Und einfach mal die Vehicleid zu prüfen geht nicht, weil wie gesagt, der Firetruck auch mehrmals genutzt wird und da verschiedene Namen sind.. Ein Firetruck ist z.B. nen Löschfahrzeug, der andere soll aber nen Hilfeleistungsfahrzeug als Namen haben, beim 3. soll dan Rüstwagen stehen (als Beispiel)...


    Deshalb wollt ich wissen wie ich die FeuerwehrVehsNamen den FeuerwehrVehs zuteilen kann.


    //EDIT:
    @ZKX:


    Ich möchts aber gern so haben:
    new FeuerwehrVehsNamen[][] = {
    "Drehleiter",
    "Löschfahrzeug",
    "Einsatzleitfahrzeug",
    "Löschfahrzeug"
    // usw...
    };
    und das dann den Fahrzeugen zuteilen... FeuerwehrVehs[0] soll das erste in FeuerwehrVehsNamen sein, FeuerwehrVehs[1] das 2. etc.. Das muss doch möglich sein, oder?^^

  • Ich kann mir ehrlichgesagt nicht vorstellen das das mehr Code ist und auch noch komplizierter..
    Hab jetzt das mal versucht:


    new Fahrzeug = GetPlayerVehicleID(playerid);
    new fzgnameSTRING[256];
    if (IsAFeuerwehrCar(GetPlayerVehicleID(playerid)))
    {
    if(Fahrzeug == FeuerwehrVehs[1])
    {
    fzgnameSTRING = "Drehleiter";
    }
    if(Fahrzeug == FeuerwehrVehs[2])
    {
    fzgnameSTRING = "Löschfahrzeug";
    }
    if(Fahrzeug == FeuerwehrVehs[3])
    {
    fzgnameSTRING = "Einsatzleitwagen";
    }
    }
    else
    {
    fzgnameSTRING = VehicleName[GetVehicleModel(vehicleid)-400];
    }


    Bekomm ich folgenden Error:


    Code
    error 047: array sizes do not match, or destination array is too small


    Ist diese Zeile:
    fzgnameSTRING = VehicleName[GetVehicleModel(vehicleid)-400];


    Was ist da falsch bzw. wie muss das richtig heissen?


    Und jetzt muss ich also für meine 20 Feuerwehrfahrzeuge if(Fahrzeug == FeuerwehrVehs[...]) machen? Mit meiner Liste wärs ja eig. einfacher.. ^^

  • -.- diese unbelehrbaren leute tu doch einfach das was man dier empfiehlt es hat schon gründe, dein code geht nun nit, da VehicleName ein "Endlosstring" ist und diesen in einen String einfügen willst der ein ende hat, wenn du das machen wilst musste das schon anders...


    format(fzgnameSTRING,sizeof(fzgnameSTRING),"%s",VehicleName[GetVehicleModel(vehicleid)-400]);


    So nun zu der Schon mehrmals angesprochenen Methode, bei dieser hättest du genau 0 Zeiulen weniger Code wenn du willst kann ich es dir machen, musst nur den gasamten new VehicleName[][] = { posten.

  • Ok habs jetzt begriffen dass die Methode nicht so gut ist.. ^^


    Habs jetzt mit format gemacht, bei FW-Fahrzeugen zeigt er auch die Namen an, bei allen anderen aber zeigt er gar nichts an... Wo ist der fehler?


    new Fahrzeug = GetPlayerVehicleID(playerid);
    new fzgnameSTRING[256];
    if (IsAFeuerwehrCar(GetPlayerVehicleID(playerid)))
    {
    if(Fahrzeug == FeuerwehrVehs[1])
    {
    fzgnameSTRING = "Drehleiter";
    }
    if(Fahrzeug == FeuerwehrVehs[2])
    {
    fzgnameSTRING = "Löschfahrzeug";
    }
    if(Fahrzeug == FeuerwehrVehs[3])
    {
    fzgnameSTRING = "Einsatzleitwagen";
    }
    }
    else
    {
    format(fzgnameSTRING,sizeof(fzgnameSTRING),"%s",VehicleName[GetVehicleModel(vehicleid)-400]);
    }

  • zeig mal den gesamten VehicleName[][] = { ...
    Dann mach deinen Code den du geschrieben hast raus und bau die namens erkennung wieder ein wie sie vorher war, ich schreibe dir VehicleName so um wie du es haben willst.

  • new VehicleName[][] = {
    "Landstalker",
    "Bravura",
    "Buffalo",
    "Linerunner",
    "Pereniel",
    "Sentinel",
    "Dumper",
    "Firetruck",
    "Trashmaster",
    "Stretch",
    "Manana",
    "Infernus",
    "Voodoo",
    "Pony",
    "Mule",
    "Cheetah",
    "Ambulance",
    "Leviathan",
    "Moonbeam",
    "Esperanto",
    "Taxi",
    "Washington",
    "Bobcat",
    "Mr Whoopee",
    "BF Injection",
    "Hunter",
    "Premier",
    "Enforcer",
    "Securicar",
    "Banshee",
    "Predator",
    "Bus",
    "Rhino",
    "Barracks",
    "Hotknife",
    "Trailer",
    "Previon",
    "Coach",
    "Cabbie",
    "Stallion",
    "Rumpo",
    "RC Bandit",
    "Romero",
    "Packer",
    "Monster Truck",
    "Admiral",
    "Squalo",
    "Seasparrow",
    "Pizzaboy",
    "Tram",
    "Trailer",
    "Turismo",
    "Speeder",
    "Reefer",
    "Tropic",
    "Flatbed",
    "Yankee",
    "Caddy",
    "Solair",
    "Berkley's RC Van",
    "Skimmer",
    "PCJ-600",
    "Roller",
    "Freeway",
    "RC Baron",
    "RC Raider",
    "Glendale",
    "Oceanic",
    "Sanchez",
    "Sparrow",
    "Patriot",
    "Quad",
    "Coastguard",
    "Dinghy",
    "Hermes",
    "Sabre",
    "Rustler",
    "ZR-350",
    "Walton",
    "Regina",
    "Comet",
    "Fahrrad",
    "Burrito",
    "Camper",
    "Marquis",
    "Baggage",
    "Dozer",
    "Maverick",
    "News Chopper",
    "Rancher",
    "FBI Rancher",
    "Virgo",
    "Greenwood",
    "Jetmax",
    "Hotring",
    "Sandking",
    "Blista Compact",
    "Police Maverick",
    "Boxville",
    "Benson",
    "Mesa",
    "RC Goblin",
    "Hotring Racer",
    "Hotring Racer",
    "Bloodring Banger",
    "Rancher",
    "Super GT",
    "Elegant",
    "Journey",
    "Bike",
    "Mountain Bike",
    "Beagle",
    "Cropdust",
    "Stunt",
    "Tanker",
    "RoadTrain",
    "Nebula",
    "Majestic",
    "Buccaneer",
    "Shamal",
    "Hydra",
    "FCR-900",
    "NRG-500",
    "HPV1000",
    "Cement Truck",
    "Tow Truck",
    "Fortune",
    "Cadrona",
    "FBI Truck",
    "Willard",
    "Forklift",
    "Traktor",
    "Combine",
    "Feltzer",
    "Remington",
    "Slamvan",
    "Blade",
    "Freight",
    "Streak",
    "Vortex",
    "Vincent",
    "Bullet",
    "Clover",
    "Sadler",
    "Firetruck",
    "Hustler",
    "Intruder",
    "Primo",
    "Cargobob",
    "Tampa",
    "Sunrise",
    "Merit",
    "Utility",
    "Nevada",
    "Yosemite",
    "Windsor",
    "Monster Truck",
    "Monster Truck",
    "Uranus",
    "Jester",
    "Sultan",
    "Stratum",
    "Elegy",
    "Raindance",
    "RC Tiger",
    "Flash",
    "Tahoma",
    "Savanna",
    "Bandito",
    "Freight",
    "Trailer",
    "Kart",
    "Mower",
    "Duneride",
    "Sweeper",
    "Broadway",
    "Tornado",
    "AT-400",
    "DFT-30",
    "Huntley",
    "Stafford",
    "BF-400",
    "Newsvan",
    "Tug",
    "Trailer",
    "Emperor",
    "Wayfarer",
    "Euros",
    "Hotdog",
    "Club",
    "Trailer",
    "Trailer",
    "Andromada",
    "Dodo",
    "RC Cam",
    "Launch",
    "Streifenwagen",
    "Streifenwagen",
    "Streifenwagen",
    "Polizei Ranger",
    "Picador",
    "S.W.A.T. Van",
    "Alpha",
    "Phoenix",
    "Glendale",
    "Sadler",
    "Luggage Trailer",
    "Luggage Trailer",
    "Stair Trailer",
    "Boxville",
    "Farm Plow",
    "Utility Trailer"
    };


    Vielen Dank für deine Hilfe.


    //EDIT:
    Hab den Fehler gefunden, funktioniert einwandfrei.. Bin eben in nen FeuerwehrVeh[4] eingestiegen, und bei ihm wurde ja auch kein Name angegeben, deshalb wurde ncihts angezeigt.. Kleiner Denkfehler.. ;)