Namen anstatt Zahlen (ID's)

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 habe mir ein Gangautohaus gescriptet und nun nur ein Problem. Noch muss man die Modelid und Farb ID angeben, wie könnte ich das machen, das man die Namen nur angeben muss.


    Also ich gebe in den Dialog Infernus ein und dann spawnt der auch einen Infernus.
    Und gebe Schwarz ein und dann ist das Car auch schwarz.


    Wie könnte ich das scriptschonend machen und nicht immer if und else nutzen...denn das wäre ja Resourcend fressend und auch zu viel aufwand^^


    Hoffe jemand hat ne Idee

  • Erstell einen Array mit den Namen und geh ihn mit der Schleife durch. Am Schluss hast du die ID vom Array und zählst 400 dazu.
    Die Farben analog.

    Kalcor: "... it makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."

  • Kannst du mir das mal etwas genau erklären, wie ich das dann mit der Schleife durchgehen soll... habe jetzt die ganzen Namen der Cars ( hatte die schon in meinem Speedometer) doch wie bekomme ich das jetzt genau hin das der inputtext dadurch in die Zahl umgewandelt wird...?


    //edit:


    Habe das jetzt so gedacht, aber wie mache ich das genau mit der Schleife...stehe da etwas auf dem Schlauch xD


    FractinAutoName[GetPVarInt(playerid,"fraktionVehid")+400],

  • Eine Schleife ist etwas grundliegendes und steht in jeder Dokumention -> Google nutzen(!)
    for(new i = 0; i < sizeof(FractinAutoName); i ++)
    {
    if(strcmp (oder wie du willst))
    myid = i+400;
    }
    So in etwa :D

    Kalcor: "... it makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."

  • Das ist aber ehrlichgesagt nicht schonender als 400 if Abfragen direkt zu scripten, oder switch zu nutzen.
    Edit: Schonender wäre es z.B. die Namen nach der Anzahl der Buchstaben zu sortieren.

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • stock GetVehicleModelIDFromName(vname[])
    {
    for(new i = 0; i<211; i++)
    {
    if (strfind(VehicleNames[i], vname, true) != -1)
    {
    return i + 400;
    }
    }
    return -1;
    }
    Wer so blöd ist und das macht, tut mir leid :)
    Schau mal wie wenig Zeilen das sind :whistling:

    Kalcor: "... it makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."

  • Geht doch viel einfacher:
    new CarName[][] =
    {
    "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", "Hustler", "Intruder", "Primo",
    "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
    "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
    "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 Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car",
    "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
    "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
    "Tiller", "Utility Trailer"
    };

    jetzt einfach:
    CarName[modelid-400]);
    edit: ah habs andersrum gedacht^^ ja kannst einfach mit einer Schleife durch alle Einträge gehen und mit strcmp vergleichen

  • Danke für die schnellen Antworten, habs hinbekommen :)