Adminbefehl: Auto spawnen!

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
  • Hallo Com,


    Also ich habe folgende Frage:


    Wie kann ich ein Befehl machen, dass ich Autos spawnen kann ohne die ID wissen zu müssen?
    z.B: "/infernus" oder "/nrg" oder "/burrito" "/sultan" "/rancher" "/maverick"


    Also es soll ein Befehl sein, dass wenn ich z.B. "/nrg" eingebe, der Spieler automatisch in einem NRG-500 sitzt...


    Danke schonmal für Antworten,



    Narushi

  • Dazu musst du in deinem Script ein neues Auto spawnen lassen, im Script muss die ID festgelegt sein.
    z.B.:
    new vehicle;
    new Float:X,Float:Y,Float:Z);
    GetPlayerPos(playerid,X,Y,Z);
    CreateVehicle(ID,X,Y,Z,....);
    PutPlayerInVehicle(...);


    Grobe Vorlage, dürfte dir aber weiterhelfen.

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.

  • Deshalb ja, bei CreateVehicle soll er ja die zu spawnende ID eingeben, den Rest mit strcmp oder ocmd oder frag Gott was er will wird er ja wohl selbst einfügen können.

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.

  • Zitat

    Dazu musst du in deinem Script ein neues Auto spawnen lassen, im Script muss die ID festgelegt sein.

    Wie meinst du das denn?
    Soetwas wie: "#define Landstalker 400" ?
    und wie mache ich das dann ^^ ?

  • Nein, so z.B.:


    if(strcmp(cmdtext, "/maverick", true) == 0)
    {
    new vehicle;
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(X,Y,Z);
    CreateVehicle(487,X,Y,Z,0,1,0,60);
    PutPlayerInVehicle(playerid,vehicle,1);
    return 1;
    }
    Statt /maverick nimmst du dann einfach /nrg und tauschst bei CreateVehicle die ID 487 mit der ID von der NRG aus, bspw.

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.

  • Dann müsstest du dir die Vehicle ID merken und dann per /veh ein Fahrzeug erstellen.
    Das ist 1 Befehl und alle Fahrzeuge. ;)

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.

  • Und ob das geht Leute:


    Erstmal musst du die Namen definieren. Folgendes ganz nach oben ins Script:
    new VehicleNames[][] =
    {
    "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", "Previon", "Coach", "Cabbie",
    "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
    "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "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", "Boxville", "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", "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"
    };


    Nun kommt dein Befehl ins Spiel. Ich empfehle dcmd. Mit folgendem Code ermittelst du die ID aus dem Namen:
    new model[64];
    if(sscanf(params, "s", model))
    {
    return SendClientMessage(playerid, WHITE, "Verwendung: /spawncar [Model]");
    }


    new spawncar = -1;
    if(!IsNumeric(model))
    {
    for(new sauto=0; sauto < 212; sauto++)
    {
    if(!strcmp(VehicleNames[sauto], model, true))
    {
    spawncar = sauto+400;
    break;
    }
    }
    }
    if(IsNumeric(model)) spawncar = strval(model);
    if(spawncar == -1) return SendClientMessage(playerid, ROT, "Unbekannter Fahrzeugname!");


    Das ganze läuft wie folgt: Du kannst in deinem Befehl nun einen String eingeben.
    Die Funktion IsNumeric prüft, ob es sich um ausschließlich Zahlen (Integer), oder um Buchstaben und Zahlen (String) handelt.
    Wenn es ein String ist wird versucht, den Namen auszulesen. Dafür loopt die Schleife durch alle vorher definierten Namen und gibt bei einem Treffer die Modelid dem Integer "spawncar" über.
    Sollte es sich bei dem eingegebenen Text jedoch um eine Zahl handeln, ist dies die direkte ID, und auch diese wird "spawncar" übergeben.


    Da wir "spawncar" vorher mit -1 definiert haben, und bei keinem Treffer die Zahl auch nicht verändert wird, können wir so überprüfen, ob der String nun ein Fahrzeug enthält oder nicht.


    Du kannst also mit diesem Schnipsel sowohl eine ID, als auch einen Namen eingeben. Dabei muss der Name jedoch mit dem im Fahrzeugarray übereinstimmen.
    Mit spawncar kannst du nun beliebig weiterarbeiten. Es enthält die Modelid


    Bitteschön :rolleyes:


    /edit: Hier noch der Code für IsNumeric. Einfach irgendwo ins Script:
    IsNumeric(const string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    {
    if (string[i] > '9' || string[i] < '0') return 0;
    }
    return 1;
    }