Bestimmte Cars respawnen lassen

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
  • Ahoi Miteinander,


    ich suche einen CarRespawn-Befehl, der nur bestimmte CarID's respawnt.
    Aber nicht nur irgendeins wo jetzt einfach nur ne if-Abfrage kommt und da steht RespawnCar(carid), sondern ein Befehl, dass nur die Autos respawnt
    werden, die unbenutzt sind, also gerade sinnlos rumstehen^^
    Hoffe auf Antwort^^


    MfG,
    Pain

  • if(strcmp(cmd, "/respawncar", true) == 0)
    {
    tmp = strtok(cmdtext ,idx);
    if(!strlen(tmp))
    {
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    new ja;
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    if(GetPlayerVehicleID(p) == i)
    {
    ja = 1;
    }
    }

    if(ja == 1)
    {
    SetVehicleToRespawn(i);
    }
    }
    SendClientMessage(playerid, COLOR_YELLOW, "Alle unbenutzten Cars respawnt!");
    print("Es wurden alle unbenutzten Cars respawnt!");
    return 1;
    }
    new rid = strval(tmp);
    new resetstring[50];
    SetVehicleToRespawn(rid);
    format(resetstring, sizeof(resetstring), "Du hast das Auto mit der ID %d resettet",rid);
    SendClientMessage(playerid, COLOR_YELLOW, resetstring);
    return 1;
    }


    Sollte gehen, ungetestet^^
    Wenn du keine ID mit angibst, werden alle unbenutzten cars respawnt, wenn du eine mit angibst, wird nur die carid respawnt


    MFG, Robdeflop®

  • dann müsstest du die cars definieren, also z.B. LeaderCar[0] = CreateVehicle...


    Aber du hast ja eben gesagt dass du alle cars respawnen willst die nicht benutzt werden^^


    Zitat

    dass nur die Autos respawnt
    werden, die unbenutzt sind, also gerade sinnlos rumstehen^^


    MFG, Robdeflop®

  • Zitat

    ich suche einen CarRespawn-Befehl, der nur bestimmte CarID's respawnt.

    ^^
    Okay, sagen wir ich definiere jetzt die Autos die ich respawnt haben will als ArmyCar[0], ArmyCar[1], usw.
    Wie würde der Befehl dann aussehen?

  • versuchst mal damit



    new test;


    test = AddStaticVehicle(............);


    dann
    if(strcmp(cmdtext,"/test", true) == 0)
    {
    SetVehicleToRespawn(test);


    return 1;
    }

  • im befehl:


    for(new i = 0; i < MAX_LEADER_CARS; i++)
    {
    SetVehicleToRespawn(ArmyCar[i]);
    }


    MAX_LEADER_CARS musst du mit der maximalen anzahl der leader cars ersetzen. Kannst natürlich auch MAX_VEHICLES nehmen, verbraucht aber mehr rescourcen. Kannst aber auch noch ne abfrage machen, ob ArmyCar[i] existiert, wenn nicht, stoppst du die schleife mit "break;" oda "return 1;". Das geht dann aber nur ohne probleme wenn du die cars nach der reihenfolge richtig definierst, also keine lücke bei dem wert in der eckigen klammer.


    EDIT:
    Spirit, das geht so nicht ganz, dann müsste man im befehl jedes car einzeln reinschreiben, und das wollen wir ja nicht^^


    MFG, Robdeflop®

  • stimmt ^^ das ist ja nur ein Vorschlag gewesen machkann es mit strval machen



    if(!strcmp(strget(cmdtext,0),"/respawn")) {
    if(Spieler[playerid][pAdmin] >= 3) {
    if(!strlen(strget(cmdtext,1)))
    return
    SendClientMessage(playerid,gelb,"Benutze: /respawn");
    new re = strval(strget(cmdtext,2));
    if(re==0) {SetVehicleToRespawn(ID);}
    if(re==1) {SetVehicleToRespawn();}
    if(re==2) {SetVehicleToRespawn();}
    if(re==3) {SetVehicleToRespawn();}
    if(re==4) {SetVehicleToRespawn();}
    if(re==5) {SetVehicleToRespawn();}
    if(re==6) {SetVehicleToRespawn();}
    }
    else
    {
    SendClientMessage(playerid, 0xFF2100FF,"Du darfst diesen Befehl nicht benutzen !");
    }
    return 1;
    }