Vehicle
Überblick
Mit Vehicle können Spieler benutzerdefinierte Fahrzeuge besitzen, rufen und fahren: Autos, Boote, fliegende Reittiere. Du definierst einen Fahrzeugtyp einmal (sein Aussehen, Geschwindigkeit, Leben, Treibstoff, Kampf und Fortschritt), und jeder Spieler besitzt Instanzen davon, mit eigenem Level, Treibstoff, Leben, Schild und Skin, in einem Artifact gespeichert. Ein Spieler ruft ein Fahrzeug über das Garagenmenü oder eine Aktion, fährt es mit den Bewegungstasten und verstaut es wieder.
Das Fahrzeug besteht aus zwei Teilen. Eine unsichtbare Träger-Entity trägt die Physik und den Passagier. An ihr hängt ein Visual: ein angezeigtes Item, ein Vanilla-Mob, ein BetterModel-Modell oder ein BTCMobs-Mob. Du kannst also ein einfaches Item für ein günstiges Fahrzeug oder ein animiertes Modell für ein Aushängeschild verwenden.
Fahren, Treibstoff, Schaden, Fähigkeiten und Levelaufstieg sind alle für TypeWriter bereitgestellt: Sie lösen Events aus, stellen Facts bereit, und Fähigkeiten führen beliebige Listen von TypeWriter-Aktionen aus. Es läuft auf dem BTC-Build von TypeWriter und benötigt BTC-Core-Funktionen.
Funktionen
- Vier Bewegungstypen —
GROUND,WATER,AMPHIBIOUSundAIR, jeweils mit eigenem Träger. - Vier Visuals —
display(Item),vanilla(Mob),bettermodelundbtcmobs, wobei das Modell pro Spieler aufgelöst wird. - Treibstoff — ein Tank, ein Verbrauch pro Sekunde, akzeptierte Treibstoff-Items und eine Auftank-Aktion.
- Leben und Schild — Treffer werden zuerst vom Schild absorbiert; bei 0 Leben wird das Fahrzeug zerstört und muss repariert werden.
- Level und Werte — eine konfigurierbare XP-Kurve und ein Wertebonus pro Level.
- Kampf — Linksklick-Angriff mit Reichweite, Cooldown und Ausdauerkosten, ein Aufladen über die gehaltene Sprungtaste und optionaler Kollisionsschaden.
- Fähigkeiten — aktivierbare Fähigkeiten mit Cooldown und Ausdauerkosten, die beliebige TypeWriter-Aktionen ausführen.
- Garagenmenü — ein paginiertes Menü der Fahrzeuge des Spielers, auf einem GUI-Layout aufgebaut.
- Besitzlimit — ein Basislimit, das per Berechtigung erhöht wird.
- Events und Facts — Kollision, Treibstoff leer, Levelaufstieg, Angriff, Treffer durch Aufladen, zerstört und Ausdauer erschöpft.
Installation
- Installiere die Erweiterungen BTCMobs und Basic (beide sind als Abhängigkeiten deklariert) sowie die Erweiterung GUI für das Garagenmenü. Siehe BTCMobs.
- Installiere PacketEvents. Ohne es ist die Steuerung deaktiviert, und das Log meldet
PacketEvents not found! WASD steering will be disabled. - Installiere optional BetterModel, um das Visual
bettermodelzu verwenden. - Lege die Vehicle-JAR in
plugins/Typewriter/extensions/ab und starte den Server neu.
Erste Schritte
- Öffne im TypeWriter-Web-Panel eine statische Page und füge ein Vehicle Storage-Artifact hinzu.
- Füge einen Vehicle Config-Entry hinzu und setze
storageauf das Artifact. Ohne es werden Fahrzeugdaten weder geladen noch gespeichert, und das Log meldetAucun stockage designe. - Füge eine Vehicle Definition hinzu: Wähle
movement(GROUND), einvisual(displaymit einem Material wieMINECART) und passestats,fuel(füge ein Item zuallowedFuelshinzu) undcombatan. - Füge eine Spawn Vehicle-Aktion hinzu, die auf die Definition verweist, und löse sie über einen Befehl, einen NPC oder ein Event aus. Der erste Aufruf gibt dem Spieler ein neues Fahrzeug dieses Typs, mit Treibstoff und Leben gefüllt, und setzt ihn darauf.
- Füge für eine Garage ein mit
layoutPoolgebautes Vehicle Garage Menu hinzu und löse dann Open Vehicle Garage aus. - Füge Refill Vehicle Fuel und Repair Vehicle an einer Tankstelle oder einem Garagen-NPC hinzu. Veröffentliche und teste.
Vehicle registriert keinen eigenen Befehl. Rufe, verstaue und repariere über Aktionen, das Garagenmenü oder TypeWriter-Befehls-Entries.
Funktionsweise
Der Träger hängt von movement ab: GROUND verwendet einen vom Server bewegten Rüstungsständer, WATER und AMPHIBIOUS verwenden ein Boot, das der Client selbst simuliert, und AIR verwendet einen Happy Ghast. Bei Booten fährt der Server nicht selbst: Er validiert jeden Tick und setzt das Fahrzeug zurück, wenn es maxSpeed überschreitet, wenn der Tank leer ist oder (bei GROUND) wenn es eine Flüssigkeit betritt.
Die Steuerung verwendet die Eingabepakete des Spielers: vorwärts, rückwärts, links, rechts, Sprung und Schleichen. Beim Absteigen wird das Fahrzeug verstaut (es wird despawnt und die Daten werden gespeichert).
Eine Fahrzeuginstanz hat Level, XP, Leben, Schild, Treibstoff und Skin. Werte werden mit 1 + statBonusPerLevel * (level - 1) multipliziert (nicht die Schwerkraft). Die zum Verlassen eines Levels nötigen XP betragen baseXp * level ^ xpGrowth. Bei maxLevel endet die XP.
Menüs
Vehicle Garage Menu wird wie jedes GUI-Menü gebaut: ein layoutPool, eine mainLayoutId, optionale views und eine baseMenuId, um ein gemeinsames Grundgerüst zu erben. Platziere Items mit diesen Button-Typen (der buttonType eines Items):
| Button-Typ | Verhalten |
|---|---|
vehicle_button:VEHICLE_SLOT#<n> | Zeigt das n-te Fahrzeug des Spielers (nach Instanz-ID sortiert); ein Klick ruft es. Leer, wenn der Spieler weniger besitzt. |
vehicle_button:VEHICLE_SPAWN | Ruft das aktive Fahrzeug. |
vehicle_button:VEHICLE_DESPAWN | Verstaut das genutzte Fahrzeug und schließt das Menü. |
vehicle_button:VEHICLE_INFO | Gibt Level, Treibstoff und Leben des aktiven Fahrzeugs im Chat aus. |
vehicle_button:NAV_BACK | Geht zum vorherigen Menü zurück. |
vehicle_button:NAV_CLOSE | Schließt das Menü. |
vehicleDisplay legt fest, wie ein Fahrzeug-Slot aussieht: ein item, ein nameFormat und lore, mit den Tokens %name%, %level%, %max_level%, %fuel%, %max_fuel%, %health%, %max_health% und %shield%. Ein Item, das du für einen Button platzierst, behält seinen eigenen Namen und seine Lore, wenn die Page sie definiert.
Berechtigungen
| Berechtigung | Gewährt |
|---|---|
typewriter.vehicle.limit.<n> | Erhöht das Besitzlimit um <n>, wenn ein Vehicle Ownership Limit-Entry sie liest (der höchste Wert zählt). |
Die Erweiterung definiert keine weitere Berechtigung.
Platzhalter
Zwei Facts können über TypeWriter als Platzhalter gelesen werden: Vehicle Ownership Limit und Vehicles Owned Count, die jeweils eine Zahl zurückgeben. Die Erweiterung registriert keinen eigenen Platzhalter.
Entries
25 Einträge, aus dem Quellcode der Erweiterung generiert.
Aktionen9
- Activate Vehicle AbilityActivate Vehicle Ability
- Add Vehicle XPAdd Vehicle XP
- Open Vehicle GarageOpen Vehicle Garage
- Refill Vehicle FuelRefill Vehicle Fuel
- Repair VehicleRepair Vehicle
- Set Vehicle SkinSet Vehicle Skin
- Spawn VehicleSpawn Vehicle
- Vehicle AttackVehicle Attack
- Vehicle ChargeVehicle Charge
Ereignisse7
- On Vehicle AttackOn Vehicle Attack
- On Vehicle Charge HitOn Vehicle Charge Hit
- On Vehicle CollisionOn Vehicle Collision
- On Vehicle DestroyedOn Vehicle Destroyed
- On Vehicle Fuel EmptyOn Vehicle Fuel Empty
- On Vehicle Level UpOn Vehicle Level Up
- On Vehicle Stamina DepleteOn Vehicle Stamina Deplete
Fakten4
- Vehicle Charge Meter FactVehicle Charge Meter
- Vehicle LimitVehicle Ownership Limit
- Vehicle Owned CountVehicles Owned Count
- Vehicle Stamina FactVehicle Stamina
Artefakte1
- Vehicle StorageVehicle Storage Artifact
Manifeste4
- Vehicle AbilityVehicle Ability
- Vehicle ConfigVehicle Global Configuration
- Vehicle DefinitionVehicle Definition
- Vehicle Garage MenuVehicle Garage Menu
Fehlerbehebung
Nach einem Neustart wird nichts gespeichert. vehicle_config hat kein storage, oder es verweist auf ein fehlendes Artifact. Das Log meldet Aucun stockage designe dans 'vehicle_config'. Setze das Artifact in storage.
Das Fahrzeug bewegt sich nicht mit WASD. PacketEvents fehlt, daher ist die Steuerung deaktiviert. Installiere es und starte neu.
Das Fahrzeug springt zurück oder bewegt sich nicht. Der Server setzt zurück, wenn sich das Fahrzeug schneller als stats.maxSpeed (Blöcke pro Tick) bewegt, wenn fuel 0 ist (und löst On Vehicle Fuel Empty aus) oder bei GROUND, wenn es Wasser oder Lava betritt. Erhöhe maxSpeed, tanke auf oder wechsle zu AMPHIBIOUS.
Ce vehicule n'est pas disponible pour le moment. Das Visual konnte nicht erstellt werden: eine Modell-ID, die in BetterModel nicht existiert, eine unbekannte BTCMobs-mobId oder ein display-Material, das kein Item ist. Suche im Log nach non spawne oder visuel.
Das Spawnen wird mit der Limit-Nachricht abgelehnt. Der Spieler besitzt bereits baseOwnershipLimit Fahrzeuge (standardmäßig 1). Das Limit schließt Berechtigungen nur ein, wenn du einen Vehicle-Ownership-Limit-Entry erstellt hast; andernfalls gilt nur baseOwnershipLimit.
This vehicle is destroyed — repair it before summoning it again. Das Leben hat 0 erreicht. Führe Repair Vehicle aus: Es verbraucht repair.amount von repair.item und stellt healthPerRepair Leben des aktiven Fahrzeugs wieder her.
Eine Fähigkeit bewirkt nichts. Sie muss in abilities der Fahrzeugdefinition aufgeführt sein, und der Spieler muss fahren, genug Ausdauer haben und keinen Cooldown haben; jeder Fehlschlag sendet eine Nachricht aus vehicle_config.