Server mit Autos zugemüllt was jetzt ?

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
  • Leute das ist alles Schön und gut.


    Aber ich brauch eine Anständige Anleitung dazu.


    Ich kann ohne Anleitung nichts scripten da ich selber nicht weiß wie es geht.


    Was apolinaris meinte ist zum Beispiel:


    new TestCar[MAX_VEHICLES];


    Dann beim erstellen des Cars einfach:
    TestCar[DIEVEHICLEID]=playerid;


    Dann bei onplayerdisconnect eine Schleife durch alle Autos:

    for(new i; i<MAX_VEHICLES; i++)
    {
    if(TestCar[i]==playerid)
    {
    DestroyVehicle(i);
    }
    }


    //wenn Fehler drinn ist bitte verbessern ;)

    Spoiler anzeigen
    10 Beiträge [X]
    50 Beiträge [X]
    100 Beiträge [X]
    150 Beiträge [X]
    200 Beiträge [X]
    250 Beiträge [X]
    300 Beiträge [X]
    350 Beiträge [X]
    400 Beiträge [X]
    450 Beiträge [X]
    500 Beiträge [X]
    550 Beiträge []
    600 Beiträge []
    650 Beiträge []
    700 Beiträge []
    750 Beiträge []


  • Und wie Funktioniert das dann bei den Anderen Verhicles ?
    Genauso ?


    Muss ich Einfach nur die Schleife reinmachen und alle Autos werden Deleted ?


    Aber wieso unter OnPlayerDisconnect rein ?.... laggt das nicht wenn dauernd wer joint und leavet ?


    Bitte um Bisschen Erklärung bin nicht gerade ein Guter Scripter

  • dann solltest du die schleifen methode anwenden. aber ich hab gerade überlegt, dass es bei OnPlayerDisconnect probleme geben könnte.
    ich bin mir nicht ganz sicher, ob das den gewünschten effekt erziehlt, da man ja nicht ein auto dem spieler zuweisen kann. kann mich aber auch irren. ;)


    //edit


    mir fällt gerade ein, was man machen könnte.


    du könntest nen timer erstellen, der meinetwegen alle 10 sek prüft, ob irgendwo ein leeres fahrzeug steht und die dann löscht.
    das ist die theorie.

  • Das Respawnen bringt ihn aber nicht weiter.


    Also, eigentlich meinte Apollinaris (oder wie auch immer) folgendes:


    New's
    new Auto[MAX_PLAYERS];


    Beim /veh Befehl:

    if(Auto[playerid] != 0)
    {
    return SendClientMessage(playerid, COLOR_RED, "* Du hast bereits ein Fahrzeug gespawnt.");
    }
    Auto[playerid] = CreateVehicle(...);

    Bei OnPlayerDisconnect:
    DestroyVehicle(Auto[playerid]);
    Auto[playerid] = 0;


    Dann noch den Command zum Fahrzeug löschen:
    if(!strcmp(cmdtext, "/delcar", true))
    {
    if(Auto[playerid] != 0)
    {
    DestroyVehicle(Auto[playerid]);
    Auto[playerid] = 0;
    SendClientMessage(playerid, COLOR_GREEN, "* Fahrzeug erfolgreich gelöscht.");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "* Du hast noch kein Fahrzeug gespawnt.");
    }
    return 1;
    }


    Voilá.


    MfG
    ATzeGER_

    the ones who are crazy enough to think that they can change the world, are the ones who do
    - Steve Jobs

  • Beim Spawnen einen Timer (SetTimerEx) erstellen, welcher nach 360000 Millisekunden (= 1 Stunde (?)) aufgerufen wird und das Fahrzeug mittels DestroyVehicle(vehicleid); löscht.

  • Bei mehrerengespaenten Cars könnte es laggs verursachen da es doch sehr Ressourcen fressend ist


    // Reste mal die Methode von atzeger_

    Spoiler anzeigen
    10 Beiträge [X]
    50 Beiträge [X]
    100 Beiträge [X]
    150 Beiträge [X]
    200 Beiträge [X]
    250 Beiträge [X]
    300 Beiträge [X]
    350 Beiträge [X]
    400 Beiträge [X]
    450 Beiträge [X]
    500 Beiträge [X]
    550 Beiträge []
    600 Beiträge []
    650 Beiträge []
    700 Beiträge []
    750 Beiträge []

  • Bei mehrerengespaenten Cars könnte es laggs verursachen da es doch sehr Ressourcen fressend ist

    Dann halt nur einen Timer erstellen, welcher jede Stunde alle gespawnten, unbenutzen Autos löscht.

  • Dann halt nur einen Timer erstellen, welcher jede Stunde alle gespawnten, unbenutzen Autos löscht.


    Wie gesagt: das von atzeger_ ma testen ;)

    Spoiler anzeigen
    10 Beiträge [X]
    50 Beiträge [X]
    100 Beiträge [X]
    150 Beiträge [X]
    200 Beiträge [X]
    250 Beiträge [X]
    300 Beiträge [X]
    350 Beiträge [X]
    400 Beiträge [X]
    450 Beiträge [X]
    500 Beiträge [X]
    550 Beiträge []
    600 Beiträge []
    650 Beiträge []
    700 Beiträge []
    750 Beiträge []

  • also ich hab mir das so vorgestellt:
    #define CAR_AMOUNT 600
    public OnGameModeInit()
    {
    SetTimer("carspawn",10000,1);
    return 1;
    }


    forward carspawn();
    public carspawn()
    {
    new bool:unwanted[CAR_AMOUNT];
    for(new player=0; player<MAX_PLAYERS; player++)
    {
    if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
    }
    for(new car = 1; car <= 420; car++)
    {
    if(!unwanted[car]) SetVehicleToRespawn(car);
    }
    return 1;
    }
    ich hab den timer jetzt mal auf 10 sek gestellt. kann man ja beliebig ändern.


    //edit


    Dies bewirkt jetzt, dass der timer alle 10 sek prüft ob nen unbenutztes auto rumsteht und es dann spawnt.
    aber mir ist aufgefallen, die sollen ja gelöscht werden und nicht neu gespawnt werden. mist. sorry is noch früh.

  • Oder man macht es so:


    Spieler kann nur 3-4 Autos spawnen, wenn man 3 o. 4 gespawnt hat, kann man welche mit /delveh <1-4> löschen, dann kann man wieder neue spawnen, habe ich mal auf einem anderen Server gesehen. ^^


  • Okay Ich möchte aber jetzt angenommen 4 Slots Freihaben für die Autos für Jeden User


    Was muss ich da machen ?


    Mfg