Autos 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
  • Quick and Dirty:
    dcmd_spawn (playerid, cmd[]) {
    new ModelID;
    if (sscanf (cmd, "i", ModelID)) {
    SendClientMessage (playerid, COLOR_GREEN, "VERWENDUNG: /spawn [ModelID]");
    return 1;
    }

    new Float:X, Float:Y, Float:Z, Float:A; // Speichert die Position des Spielers
    GetPlayerPos (playerid, X, Y, Z); // Spieler Position auselsen
    GetPlayerFacingAngle (playerid, A); // Spieler Sichtruchtung auslesen
    new v = CreateVehicle (ModelID, X, Y, Z, A, 1, 1, 5000); // Fahrzeug erstellen
    PutPlayerInVehicle (playerid, v, 0); // Spieler in Fahrzeug stecken

    return 1;
    }
    Benötigt dcmd und sscanf (siehe samp wiki). Und ja, ich weiß das es overkill ist, sscanf für einen Parameter zu benutzen. kann man aber auch leichter ändern ;)

    90% der Breadfish Mitglieder sind kiddys, wenn du mir auch zustimmst dann kopiere diesen Text in deine Signatur!

  • bei onplayercommandtext kommt der dcmd (...) Kram rein.
    Und wenn das Vehikel nicht spawnt weiß ich nicht, das ding funzt bei mir super (wenn auch ein wenig "ausgereifter" in der funktions vielfalt ;) )

    90% der Breadfish Mitglieder sind kiddys, wenn du mir auch zustimmst dann kopiere diesen Text in deine Signatur!

  • habe mich an nen Movie Script gemacht


    Und du braucht man ja Cars


    Und ja, ahm geht leider nicht
    Kommt immer Unknown Command


    Habe bei Public Command:
    dcmd(spawn, 4, cmdtext);


    Unter Command:
    dcmd_spawn (playerid, cmd[]) {
    new ModelID;
    if (sscanf (cmd, "i", ModelID)) {
    SendClientMessage (playerid, COLOR_GREEN, "VERWENDUNG: /spawn [ModelID]");
    return 1;
    }


    new Float:X, Float:Y, Float:Z, Float:A; // Speichert die Position des Spielers
    GetPlayerPos (playerid, X, Y, Z); // Spieler Position auselsen
    GetPlayerFacingAngle (playerid, A); // Spieler Sichtruchtung auslesen
    new v = CreateVehicle (ModelID, X, Y, Z, A, 1, 1, 5000); // Fahrzeug erstellen
    PutPlayerInVehicle (playerid, v, 0); // Spieler in Fahrzeug stecken


    return 1;
    }


    Oben bei Defines:
    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    Und ganz unten:
    stock sscanf(string[], format[], {Float,_}:...)
    {
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs();
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if (ch >= '0' && ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return 1;
    }
    }
    while ((ch = string[stringPos]) && ch != ' ');
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    ch,
    num = 0;
    while ((ch = string[stringPos++]))
    {
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    case ' ':
    {
    break;
    }
    default:
    {
    return 1;
    }
    }
    }
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {
    new tmp[25];
    strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2);
    setarg(paramPos, 0, _:floatstr(tmp));
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != ' ')
    {
    setarg(paramPos, i++, ch);
    }
    if (!i) return 1;
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != ' ')
    {
    stringPos++;
    }
    while (string[stringPos] == ' ')
    {
    stringPos++;
    }
    paramPos++;
    }
    while (format[formatPos] == 'z') formatPos++;
    return format[formatPos];
    }


  • dcmd(spawn, 4, cmdtext); // Kann nicht gehen
    dcmd(spawn, 5, cmdtext); // Wie lang war noch gleich die Zeichenkette "spawn" ? A: 5 Zeichen


    Das war jetzt einfach :wacko:

    90% der Breadfish Mitglieder sind kiddys, wenn du mir auch zustimmst dann kopiere diesen Text in deine Signatur!

  • ^^ danke


    Noch 3 Fragen


    1. wie kann ich so machen, das man Farbe auch aussuchen kann
    2. Wie kann ich es so machen, dass wen jemand ein Auto Spawnt, das für alle eine Messege angezeigt wird, wer gespawnt hat, welches Fahrzeug und die Fahrzeug ID
    3. wie genau der Befehl ist um wieder das Fahrzeug löschen zu lassen


    Sorry, meine Scripterfahrungen sind nicht die besten, dazu bin ich ja hier

  • Weitere Parameter hinzufügen


    dcmd_spawn (playerid, cmd[])
    {
    new ModelID;
    new farbe1;
    new farbe2;
    if (sscanf (cmd, "iii", ModelID,farbe1,farbe2))
    {
    SendClientMessage (playerid, COLOR_GREEN, "VERWENDUNG: /spawn [ModelID]");
    return 1;
    }


    new Float:X, Float:Y, Float:Z, Float:A; // Speichert die Position des Spielers
    GetPlayerPos (playerid, X, Y, Z); // Spieler Position auselsen
    GetPlayerFacingAngle (playerid, A); // Spieler Sichtruchtung auslesen
    new v = CreateVehicle (ModelID, X, Y, Z, A, farbe1, farbe2, 5000); // Fahrzeug erstellen
    PutPlayerInVehicle (playerid, v, 0); // Spieler in Fahrzeug stecken


    new string[256];
    new playername[MAX_PLAYER_NAME];
    new VID;
    GetPlayerName(playerid,playername,sizeof(playername));
    VID = GetPlayerVehicleID(playerid);
    format(string,sizeof(string),"Spieler %s hate das Vehicle mit der MID %i und der ID %i gespawnt",playername,ModelID,VID);
    SendClientMessageToAll(farbe,string);
    return 1;
    }


    Sollte funktionieren.
    Nur das mit dem Namen weiß ich nicht


    Zum Löschen


    DestroyVehicle(vehicleid);

    Einmal editiert, zuletzt von Hagi ()


  • dcmd_delcar (playerid, cmd[])
    {
    new VID;
    if (sscanf (cmd, "i", VID))
    {
    SendClientMessage (playerid, COLOR_GREEN, "VERWENDUNG: /delcar [VID]");
    return 1;
    }


    DestroyVehicle(VID);
    new string[256];
    format(string,sizeof(string),"Du hast das Auto mit der ID %i gelöscht",VID);
    SendClientMessage(playerid,farbe,string);
    }

  • Ja geht auch


    if (strcmp("/delcar", cmdtext, true, 10) == 0)
    }
    new VID = GetPlayerVehicleID(playerid);
    DestroyVehicle(VID);
    new string[256];
    format(string,sizeof(string),"Du hast das Auto mit der ID %i gelöscht",VID);
    SendClientMessage(playerid,farbe,string);
    }