Beiträge von karl_jahnsen

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[256];


    if (strcmp(cmdtext, "/park", true)==0)
    {
    SendClientMessage(playerid, GREEN, "Vehicle ID gespeichert!");
    new ID = GetPlayerVehicleID(playerid);


    new File:pos=fopen("park.txt", io_append);
    format(string, 256, "%d ", ID);
    fwrite(pos, string);
    fclose(pos);
    return 1;
    }
    return 0;
    }


    Sollte es im Endeffekt nicht mit "Return 0;" enden, sofern du es nicht so machen willst? :



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[256];


    if (strcmp(cmdtext, "/park", true)==0)
    {
    SendClientMessage(playerid, GREEN, "Vehicle ID gespeichert!");
    new ID = GetPlayerVehicleID(playerid);


    new File:pos=fopen("park.txt", io_append);
    format(string, 256, "%d ", ID);
    fwrite(pos, string);
    fclose(pos);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED,"Falsche Eingabe");
    return 1;
    }
    }



    MfG

    Hi, ich würde gerne einen /repair-Command erstellen, der in diesen Schritten arbeitet (natürlich für mehrere Spieler gleichzeitig geeignet):


    1. Position des Fahrzeuges sichern
    2. Position des autos nach X,Y,Z (füge ich nachher hinzu) setzen
    3. Timer starten (3-4 sekunden)
    4. Auto auf die oben gespeicherte Position zurücksetzen



    Bei mir hat 1.-3- bereits geklappt, jedoch wurde die Position des Autos danach auf "X,Y,Z" (bei dem einen Bauernhof) gesetzt.


    Die Position bei 1. soll nicht überschrieben werden, wenn z.B. Spieler 1 grade /repair angewendet hat und Spieler 2 eine Sekunde danach den Command benutzt.




    Danke schonmal.



    MfG


    //edit: Hier mal mein Pawn-Code:


    if (strcmp(cmdtext, "/repair",true)==0)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    GetVehiclePos(playerid,X21,Y21,Z21);
    GetVehicleZAngle(playerid,A21);

    SetVehiclePos(GetPlayerVehicleID(playerid),2064.6162,-1831.2639,13.2541);
    SetVehicleZAngle(GetPlayerVehicleID(playerid),90.0000);

    Repair9 = SetTimerEx("Repair",5000,0,"%f%f%f",X21,Y21,Z21);
    }
    return 1;
    }


    public Repair(playerid)
    {
    SetVehiclePos(GetPlayerVehicleID(playerid),X21,Y21,Z21);
    SetVehicleZAngle(GetPlayerVehicleID(playerid),A21);
    KillTimer(Repair9);
    }



    forwards, new´s usw. sind alle richtig drin, genauso wie die Floats.

    Hi, ich brauche mal eure Hilfe...



    Ich möchte, dass bei eingabe von "/fahrzeug [Model-ID] [Farbe1] [Farbe2]" das entsprechende Fahrzeug als "fahrzeug0" gespeichert wird.
    Wenn ich jetzt erneut "/fahrzeug [Model-ID] [Farbe1] [Farbe2]" eingebe, soll das entsprechende Fahrzeug als "fahrzeug1" gespeichert werden.


    Jedoch soll "fahrzeug1" nur diesen Namen zugewiesen bekommen, wenn "farhzeug0" auch noch existiert, ansonsten soll das Fahrzeug den Tag "fahrzeug0" bekommen.




    Wer das jetzt nicht aus Anhieb verstanden hat, bitte melden ;)



    Hier mal mein bisheriger Pawn-Code:


    if(strcmp(cmd, "/fahrzeug", true) == 0)
    {
    new Float:health;
    if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ORANGE, "Hinweis: /fahrzeug [Model-ID] [Farbe1] [Farbe2]");
    return 1;
    }
    new car = GetVehicleModelIDFromName(tmp);
    if (car == -1)
    {
    car = strval(tmp);
    if(car < 400 || car > 611) return SendClientMessage(playerid, RED, "Die Model-ID muss größer als 400 und kleiner als 611 sein!");
    }

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ORANGE, "Hinweis: /fahrzeug [Model-ID] [Farbe1] [Farbe2]");
    return 1;
    }
    new color1 = strval(tmp);


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ORANGE, "Hinweis: /fahrzeug [Model-ID] [Farbe1] [Farbe2]");
    return 1;
    }
    new color2 = strval(tmp);

    if (GetVehicleHealth(fahrzeug0, health) >= 300)
    {
    new Float:X,Float:Y,Float:Z,Float:A;
    GetPlayerPos(playerid, X,Y,Z);
    GetPlayerFacingAngle(playerid, A);
    X += (5 * floatsin(-A, degrees));
    Y += (5 * floatcos(-A, degrees));
    fahrzeug0 = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60);
    format(string, sizeof(string), "Fahrzeug %s(%s) erstellt.", VehNames[GetVehicleModel(fahrzeug0)-400], fahrzeug0);
    SendClientMessage(playerid, GREEN, string);
    Cardestroytimer0 = SetTimer("Cardestroy0",30000,0);
    drivercheck0 = SetTimer("CardestroyDriverCheck0",5000,1);
    return 1;
    }

    else if (GetVehicleHealth(fahrzeug0, health) >= 300)
    while (GetVehicleHealth(fahrzeug1, health) <= 300)
    {
    new Float:X,Float:Y,Float:Z,Float:A;
    GetPlayerPos(playerid, X,Y,Z);
    GetPlayerFacingAngle(playerid, A);
    X += (5 * floatsin(-A, degrees));
    Y += (5 * floatcos(-A, degrees));
    fahrzeug1 = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60);
    format(string, sizeof(string), "Fahrzeug %s(%s) erstellt.", VehNames[GetVehicleModel(fahrzeug1)-400], fahrzeug1);
    SendClientMessage(playerid, GREEN, string);
    Cardestroytimer1 = SetTimer("Cardestroy1",30000,0);
    drivercheck1 = SetTimer("CardestroyDriverCheck1",5000,1);
    return 1;
    }

    else if (GetVehicleHealth(fahrzeug0, health) >= 300)
    while (GetVehicleHealth(fahrzeug1, health) >= 300)
    while (GetVehicleHealth(fahrzeug2, health) <= 300)
    {
    new Float:X,Float:Y,Float:Z,Float:A;
    GetPlayerPos(playerid, X,Y,Z);
    GetPlayerFacingAngle(playerid, A);
    X += (5 * floatsin(-A, degrees));
    Y += (5 * floatcos(-A, degrees));
    fahrzeug2 = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60);
    format(string, sizeof(string), "Fahrzeug %s(%s) erstellt.", VehNames[GetVehicleModel(fahrzeug2)-400], fahrzeug2);
    SendClientMessage(playerid, GREEN, string);
    return 1;
    }

    else if (!IsPlayerInVehicle(i,fahrzeug3))
    while (IsPlayerInVehicle(i,fahrzeug2))
    while (IsPlayerInVehicle(i,fahrzeug1))
    while (IsPlayerInVehicle(i,fahrzeug0))
    {
    new Float:X,Float:Y,Float:Z,Float:A;
    GetPlayerPos(playerid, X,Y,Z);
    GetPlayerFacingAngle(playerid, A);
    X += (5 * floatsin(-A, degrees));
    Y += (5 * floatcos(-A, degrees));
    fahrzeug3 = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60);
    format(string, sizeof(string), "Fahrzeug %s(%s) erstellt.", VehNames[GetVehicleModel(fahrzeug3)-400], fahrzeug3);
    SendClientMessage(playerid, GREEN, string);
    return 1;
    }

    else if (!IsPlayerInVehicle(i,fahrzeug4))
    while (IsPlayerInVehicle(i,fahrzeug3))
    while (IsPlayerInVehicle(i,fahrzeug2))
    while (IsPlayerInVehicle(i,fahrzeug1))
    while (IsPlayerInVehicle(i,fahrzeug0))
    {
    new Float:X,Float:Y,Float:Z,Float:A;
    GetPlayerPos(playerid, X,Y,Z);
    GetPlayerFacingAngle(playerid, A);
    X += (5 * floatsin(-A, degrees));
    Y += (5 * floatcos(-A, degrees));
    fahrzeug4 = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60);
    format(string, sizeof(string), "Fahrzeug %s(%s) erstellt.", VehNames[GetVehicleModel(fahrzeug4)-400], fahrzeug4);
    SendClientMessage(playerid, GREEN, string);
    return 1;
    }

    else if (!IsPlayerInVehicle(i,fahrzeug5))
    while (IsPlayerInVehicle(i,fahrzeug4))
    while (IsPlayerInVehicle(i,fahrzeug3))
    while (IsPlayerInVehicle(i,fahrzeug2))
    while (IsPlayerInVehicle(i,fahrzeug1))
    while (IsPlayerInVehicle(i,fahrzeug0))
    {
    new Float:X,Float:Y,Float:Z,Float:A;
    GetPlayerPos(playerid, X,Y,Z);
    GetPlayerFacingAngle(playerid, A);
    X += (5 * floatsin(-A, degrees));
    Y += (5 * floatcos(-A, degrees));
    fahrzeug5 = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60);
    format(string, sizeof(string), "Fahrzeug %s(%s) erstellt.", VehNames[GetVehicleModel(fahrzeug5)-400], fahrzeug5);
    SendClientMessage(playerid, GREEN, string);
    return 1;
    }
    }
    }
    else SendClientMessage(playerid, RED, "Dein Admin-Level ist nicht ausreichend um diese Aktion auszuführen!");
    return 1;
    }


    Die letzten Zeilen (also die mir fahrzeug3,4,5...) habe ich noch nicht verändert.


    Mein Problem bis jetzt war, dass jedes Auto mit dem Namen "fahrzeug0" gespawnt wurde und das Script "fahrzeug1..." nicht verwendet hat :(


    Vielleicht hat ja jemand ne Idee wie man das machen kann.


    Danke schonmal im Vorraus



    MfG