---> Wie kann ich /createcar Befehl bearbeiten <---

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
    ich möchte meinen /createcar Befehl verändern, oder in einer Weise auch verbessern,
    mir will aber partu nich Einfallen wie ich das machen soll. Ich hoffe ihr Breadfischer, könnt mir auf die Sprünge helfen, und mir so zeigen,
    das auch ein Mensch wie ASS das versteht.
    Bitte schreibt nicht, wenn ihr A keine Ahnung habt und B nichts zum Thema zitieren habt, da Meinungsfreiheit ja Erlaubt ist könnt ihr eure Meinung, gerne mir
    per PN senden, aber dieser Thread soll nur zur Hilfe Dienen.


    Ich möchte eingeben können.
    ./createcar Hydra
    ./createcar Hotring
    ./createcar Monstertruck
    ./createcar RC Helikopter
    ./createcar Hunter
    usw.


    Aber wie mache ich das ???
    Ich habe bereits einen Befehl, den ich eingebe
    und der funktioniert auch, doch ich muss eine zahl eingeben,
    ich möchte das man Beides kann.


    Hier mein Befehl.
    Ich erwarte nur das ihr mir einen kleinen Anstupser gibt, mehr nicht.


    if(strcmp(cmd,"/createcar",true)==0)
    {
    if(IsPlayerAnAdmin(playerid,5))
    {
    tmp = strtok(cmdtext,idx);
    if(!tmp[0]) return SendClientMessage(playerid,COLOR_WHITE,"INFO: /createcar [vehicleid]");
    new carid = strval(tmp);
    if(carid<400||carid>612)return ErrorMsg(playerid,"Ungültige Autoid.");
    new Float:xc,Float:yc,Float:zc,Float:rc;
    GetPlayerPos(playerid,xc,yc,zc);
    GetPlayerFacingAngle(playerid,rc);
    new car;
    car=CreateVehicleEx(carid,xc,yc,zc,rc,-1,-1,0);
    istkaputt[car]=0;
    PutPlayerInVehicle(playerid,car,0);
    LinkVehicleToInterior(car,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(car,GetPlayerVirtualWorld(playerid));
    //new string[128];
    format(string,sizeof(string),"Vom Admin %s erstellt",SpielerName(playerid));
    DestroyDynamic3DTextLabel(autotext[GetPlayerVehicleID(playerid)]);
    autotext[GetPlayerVehicleID(playerid)]=CreateDynamic3DTextLabel(string,COLOR_ORANGE,xc,yc,zc,25,INVALID_PLAYER_ID,GetPlayerVehicleID(playerid),0,-1,-1,-1,25.0);
    autostring[car]="erstellt von";
    carcheck(car,"/createcar");
    return 1;
    }
    return 1;
    }


    MfG Der Unbekannte ASS

  • Als erstes überprüfst du, ob der Spieler eine Zahl oder Buchstaben eingegeben hat.
    Wenn er eine Zahl eingegeben hast, kannst du wie gewohnt das Auto spawnen lassen.


    Wenn er einen Text eingegeben hat, musst du mit einer Schleife und strfind oder strcmp herausfinden,
    welches Auto welche ID hat.


    Spoiler anzeigen
    new Cars[][] =
    {
    "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",
    "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",
    "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",
    "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 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",
    "Police Car (LSPD)",
    "Police Car (SFPD)",
    "Police Car (LVPD)",
    "Police Ranger",
    "Picador",
    "S.W.A.T. Van",
    "Alpha",
    "Phoenix",
    "Glendale",
    "Sadler",
    "Luggage Trailer",
    "Luggage Trailer",
    "Stair Trailer",
    "Boxville",
    "Farm Plow",
    "Utility Trailer"
    };

  • new x[256];
    x = strtok(cmdtext, idx);
    if(strcmp(x,"Hydra",true) == 0)
    So könntest du arbeiten, um nach createcar ein Wort raus zu finden.


    //Edit
    Bei dir könntest du direkt mit tmp anstatt die definierungen von x arbeiten

    KleineHilfe 2.0

  • Du meinst ich soll das so machen.
    if(strcmp(tmp,"Hydra",true) == 0)
    Aber was soll ich machen, wenn der Spieler das eingegeben hat, dann muss ja eine Hydra erstellt werden.
    Also


    if(strcmp(tmp,"Hydra",true) == 0)
    {
    //was soll hier rein ???
    }


    Und wo soll das rein ???


    ocmd:createcar(playerid,params[])
    {
    new carid;
    if(sscanf(params,"i",carid))return SendClientMessage(playerid,FARBE_WEISS,"Benutzung: /createcar [Auto ID]");
    if(GetPVarInt(playerid,"Adminlevel") >= 5)
    {
    if(carid<400||carid>612)return ErrorMsg(playerid,"Ungültige Autoid.");
    new Float:xc,Float:yc,Float:zc,Float:rc;
    GetPlayerPos(playerid,xc,yc,zc);
    GetPlayerFacingAngle(playerid,rc);
    new car;
    car=CreateVehicle(carid,xc,yc,zc,rc,-1,-1,0);
    PutPlayerInVehicle(playerid,car,0);
    LinkVehicleToInterior(car,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(car,GetPlayerVirtualWorld(playerid));
    new string[128];
    format(string,sizeof(string),"Vom Admin %s erstellt",SpielerName(playerid));
    DestroyDynamic3DTextLabel(autotext[GetPlayerVehicleID(playerid)]);
    autotext[GetPlayerVehicleID(playerid)]=CreateDynamic3DTextLabel(string,FARBE_HELLGRÜN,xc,yc,zc,25,INVALID_PLAYER_ID,GetPlayerVehicleID(playerid),0,-1,-1,-1,25.0);
    autostring[car]="erstellt von";
    SetVehicleNumberPlate(carid,"~>Admincar<~");
    if(strcmp(tmp,"Hydra",true) == 0)
    {
    //So ???
    }
    return 1;
    }
    return 1;
    }

  • if(sscanf(params,"i",carid))return SendClientMessage(playerid,FARBE_WEISS,"Benutzung: /createcar [Auto ID]");


    Das ist schonmal das erste...
    Willst du dass man die ID des Autos eingibt, oder den Autoname?


    Ich kenn mich mit sscanf nicht so aus, aber so verhinderst du, dass der Spieler einen Namen eingibt.

  • Ich weiß nicht ob du mit sscanf arbeitest, wenn nein -> mach es so wie ichs geschrieben habe + fahrzeug erstellung, wo liegt da genau dein Problem?


    Sscanf


    if(sscanf(params,"s,carid))return SendClientMessage(playerid,FARBE_WEISS,"Benutzung: /createcar [Name]");


    & dann abfragen ob carid == Hydra ist verpackt im strcmp.
    Beispiel habe ich bereits gepostet.
    Beispiel2.


    if(strcmp(tmp,"Hydra",true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,-1, "FEHLER: /createcar [NAME]]");
    return 1;
    }
    //Fahrzeug erstellen
    return 1;
    }

    KleineHilfe 2.0

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich verstehe das alles nicht, warum geht das denn nicht einfacher ???
    Es ist mein Wunsch, sowas zu Scripten, doch diesen Wunsch wird mir nie einer Erfüllen.
    Ich finde es traurig, das ich mein einzigen Wunsch zum Server nicht bekomme, ihr habt mir ja zwar auch schon geholfen, dafür auch Dankeschön,
    aber ich verstehe davon nichts, ich weiss nicht wo ich das einfügen soll. Wenn ihr nicht antworten wollt, dann lasst es bitte auch, ich möchte hier jetzt auch keine Spammerrei erreichen oder sonstiges. Ich weiss natürlich, das niemand, mir was vorscripten muss. Ich stehe nicht auf Rätsel oder sonstiges, also gebt mir einfach die Codes, aber die kann ich nicht erwarten, weil ich sie niemals bekommen werde, da kommen dann wieder User an und sagen, hahaha lern Scripten oder such hier tutorials. Dadurch lernt man nichts, man scriptet es einfach nur ab, ich habe durch euch schon ein bisschen was gelernt.
    Aber naja schade...

  • Ich verstehe das alles nicht, warum geht das denn nicht einfacher ???
    Es ist mein Wunsch, sowas zu Scripten, doch diesen Wunsch wird mir nie einer Erfüllen.
    Ich finde es traurig, das ich mein einzigen Wunsch zum Server nicht bekomme, ihr habt mir ja zwar auch schon geholfen, dafür auch Dankeschön,
    aber ich verstehe davon nichts, ich weiss nicht wo ich das einfügen soll. Wenn ihr nicht antworten wollt, dann lasst es bitte auch, ich möchte hier jetzt auch keine Spammerrei erreichen oder sonstiges. Ich weiss natürlich, das niemand, mir was vorscripten muss. Ich stehe nicht auf Rätsel oder sonstiges, also gebt mir einfach die Codes, aber die kann ich nicht erwarten, weil ich sie niemals bekommen werde, da kommen dann wieder User an und sagen, hahaha lern Scripten oder such hier tutorials. Dadurch lernt man nichts, man scriptet es einfach nur ab, ich habe durch euch schon ein bisschen was gelernt.
    Aber naja schade...


    Mit den Codeschnipseln meinerseits währe nur logisches denken angebracht, und wenn du "Scripten" wirklich lernen mcöhtest dann hättest du evt mal im Wiki geschaut was strtok, strcmp bezweckt um schon mal zu "verstehen" wie die Funktion arbeitet. Dir alles vor zu kauen, da lernst du == 0 und ist bestimmt auch nicht das, was du möchtest wenn du es auch "verstehen" möchtest was du c&p'st. Hör auf Romane zu verfassen und lets go to wiki :)

    KleineHilfe 2.0

  • Mit den Codeschnipseln meinerseits währe nur logisches denken angebracht, und wenn du "Scripten" wirklich lernen mcöhtest dann hättest du evt mal im Wiki geschaut was strtok, strcmp bezweckt um schon mal zu "verstehen" wie die Funktion arbeitet. Dir alles vor zu kauen, da lernst du == 0 und ist bestimmt auch nicht das, was du möchtest wenn du es auch "verstehen" möchtest was du c&p'st. Hör auf Romane zu verfassen und lets go to wiki :)


    Anscheinend kann ich Romane besserr verfassen als Scripten, von Tutorial lernt man nichts