Hilfe zur Erstellung eines Last-Car-Standing-Derbys

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 zusammen.


    Ich habe folgende Idee:
    Spieler teleportieren sich auf ein Dach eines Hauses, werden direkt in die VID 504 gesteckt und nach Ablauf eines Timers von 60 Sekunden (Zeit um der Derby beizutreten) geht das Derby los und es dürfen keine neuen Spieler mehr beitreten. Die Vehikel erhalten eine erhöhte Max-Health. Das Ziel soll sein, dass die Spieler sich gegenseitig mit den Autos zerstören - ohne Waffen - oder versuchen die jeweiligen Spieler vom Dach zu schupsen. Der Sieger ist der, der am Ende als einziger auf dem Dach überlebt hat. Kein Zeitlimit.


    Was ich bis jetzt habe:
    Ich habe die Area-Koordinaten des Dachs um zu überprüfen, ob der Spieler sich noch oben befindet, oder bereits heruntergefallen sein könnte. Außerdem habe ich die Koordinaten der Vehikel-Positionen auf dem Dach.


    Was ich brauche:
    Gibt es eine bessere Möglichkeit zu überprüfen ob der Spieler heruntergefallen ist, als mit der Area? Wie kann ich verhindern, dass z.B. Hubschrauber / Flieger von oben nicht das Spiel stören? Wie ermittle ich, wer noch auf dem Dach ist und der Gewinner ist? Wie kann ich den Spieler nach Eingabe des Join-Befehls automatisch in ein freies noch verfügbares Auto setzen? Wie erhöhe ich die Max-Health der Autos? Und wie hoch darf Max-Health wirklich sein?


    Das wäre soweit alles. Falls ihr das beantworten könntet, wäre es echt super. Solltet ihr bereits ein fertiges Script haben, wäre das auch toll - muss aber nicht sein.


    PS: Das soll nicht als eigenständiger Gamemode / Filterscript laufen, sondern es wird ein Teil eines Gamemodes mit mehreren Dingen.


    Danke.

  • - via Streamerplugin eine Area erstellen (CreateDynamicCube)
    - Mit einer Char-Array arbeiten oder nochbesser bitarray
    - 1 Command, welcher eingegeben werden kann wenn das event aktiv ist dazu 1 globale variabel welche du setzen kannst
    wenn das race begonnen hat damit du dies bei dem befehl abfragen kannst und der spiele rnicht mehr hin geportet wird.
    - Fahrzeug erstellen CreateVehicle bei der eingabe des befehls , PutPlayerInVehicle http://wiki.sa-mp.com/wiki/PutPlayerInVehicle
    und zum erhöhen des lebens des Autos SetVehicleHealth http://wiki.sa-mp.com/wiki/SetVehicleHealth_DE
    - Um den sieger zu ermitteln kannst du die spieleranzahl auch in einer globalen variabel speichern , welche du runterzählen lassen kanst bei
    dem Callback OnPlayerLeaveDynamicArea und mit IsPlayerInDynamicArea könntest du noch die id raus bekommen, welche zuletzt in der area
    ist.


    - Um Feinde von außen fern zu halten kannst du über die array gehen da du hier ein wert setzt , wenn der spieler beitritt zum beispiel auf 1.
    sollte der wo von außen rein kommt in den bereich den wert nicht haben so kickst du ihn oder machst sonst was.


    - Anderfalls machst du das Viereck größer und um die spieler richtig zu platzieren kannst du eine position saven und dazu immer ein
    wert dazu rechnen bis zu einem bestimmten limit und danach die rotation und so weiter verfahren.

  • Hi,


    danke für die Antwort.


    Einen Streamer möchte ich (noch) nicht einsetzen. Ich kann aktuell schon mittels IsPlayerInArea prüfen, ob dieser innerhalb der Koordinaten ist. Das Problem ist, wenn man die Area ein wenig größer als das Dach macht, dass die Spieler am Boden des Hauses auch noch innerhalb der Koordinaten sind und somit die Area nicht verlassen haben.


    Zum Thema Feinde:
    Was ist, wenn ich die Derby-Spieler in eine virtuelle Welt versetze?


    Danke.


  • Wenn die Feine nicht in der gleichen sind, dann sollten die nicht stören und werden von den Derbyspielern nicht gesehen.


    MfG

  • änder doch IsPlayerInArea ab und prüfe noch ab ob der spieler sich in dem bereich der maximalen und minimalen höhe befindet aber eins kannst du mir glauben das , das ganze mit dem streamer plugin besser funktioniert da hier ein callback aufgerufen wird und du das ganze viel einfacher handhaben kannst. Aber mit einem timer ist das natürlich auch zu machen welcher sich immer wiederholt während des derbys

  • Hi,


    danke euch beiden.


    Jetzt habe ich noch ein Problem. Seit 0.3x sollte SA-MP die Vehikel doch in eigener Regie streamen? Das Problem ist, dass wenn ich die mit SA-MP mitgelieferten Vehikel-Koordinaten aus dem Singleplayer einbinde, kann ich im Spiel nur knapp 20 Derby-Autos (VID 504) erstellen. Danach mag er keine mehr erstellen... warum auch immer. Weiß einer wieso? Muss man in der server.cfg noch was ändern, damit der mehr Autos zulässt? Wenn ich gar keine Autos in den Gamemode einfüge, kann ich viel viel mehr Derby-Autos erstellen.


    Danke.