Zum Hauptinhalt springen

Tycoon

Zoo-Tycoon: Tiere erforschen, passives Einkommen erzielen, züchten, Prestige erlangen, erkunden und handeln.

Privatv0.1Wirtschaft & Crafting
BenötigtTypeWriter0.9.0-beta-177 (BTC build)Entity extensionGUI extensionVaultVehicle extensionoptionalPacketEventsoptionalRPG CoreoptionalTemporaryDimension extensionoptionalMySql extensionoptionalMiniPlaceholdersoptional

Für das BornToCraft-Netzwerk entwickelt. Diese Erweiterung ist zu Referenzzwecken dokumentiert und wird nicht verteilt.

Überblick​

Tycoon ist ein Zoo-Spielmodus. Spieler töten Mobs, um Forschungskategorien freizuschalten, füttern einen Katalysator und nutzen ein Brennstoff-Item, um Tiere zu erforschen, und platzieren ihre Tiere dann in ihrem Zoo, um passives Einkommen zu erzielen. Tiere steigen im Level auf, können für dauerhafte Boni mit Prestige aufgewertet, auf zeitgesteuerte Expeditionen geschickt, gezüchtet, verschmolzen, auf einem Spielermarkt gehandelt oder für Verträge übergeben werden.

Alles ist datengesteuert. Jede Art ist eine Animal Definition, jedes System (Forschungskategorien, Herausforderungen, Personal, Dekorationen, Verträge, Zucht, Shops) ist ein Manifest-Entry, und die Wirtschaftsregeln liegen in einer einzigen Tycoon Economy Config. Die Spieleroberfläche ist ein einziges Menü, das Tycoon Control Panel, dessen Layouts im Web-Panel gebaut werden: Der Code füllt nur Live-Daten ein und hängt die Klicks an.

Die knappe Ressource ist der Platz im Zoo, nicht Geld. Die Kapazität eines Spielers wächst mit seinem Zoo-Berufslevel, jede Art kostet eine Anzahl Plätze, und der Ertrag skaliert mit diesen Kosten. Platzierte Tiere werden nur ihrem Besitzer angezeigt, sodass sich alle Spieler eine Welt teilen können.

Dies ist eine private Erweiterung des BTC-Builds von TypeWriter (BTC Core, Paper oder Folia), als Referenz dokumentiert.

Funktionen​

  • Forschungsbaum — Mob-Kills schalten Research Categories frei; jedes Tier benötigt einen voll aufgeladenen Katalysator und ein Brennstoff-Item für den finalen Wurf.
  • Zoo-Platz und Platzierung — Arten kosten Plätze; Tiere werden auf deklarierten Positionen einer Placement Group platziert, ein Tier pro Position.
  • Passives Einkommen — platzierte Tiere zahlen im Lauf der Zeit Ertrag, skaliert nach Seltenheit, Level, Prestige, Zufriedenheit, Personal und Dekorationen, mit begrenztem Offline-Nachholen.
  • Zufriedenheit — 0 bis 100, multipliziert den Ertrag; Überfüllung ist ihre einzige Strafe, Füttern und Dekorationen erhöhen sie.
  • Level und Prestige — XP-Kurve und Level-Obergrenze in der Wirtschaftskonfiguration; Prestige setzt ein Tier auf Level 1 zurück, gegen einen dauerhaften Ertragsbonus.
  • Fusion und Zucht — Fusion zweier Tiere derselben Art und rezeptbasierte Zucht mit einer Brutzeit.
  • Expeditionen — schicke ein Tier auf eine zeitgesteuerte Idle-Mission und hole das Ergebnis bei der Rückkehr ab.
  • Abenteuerkarte — eine temporäre Dimension, aus einer Vorlagenwelt geklont, Chunk für Chunk mit einer Ermüdungsanzeige erkundet, wobei Tiere als Reittiere geritten werden.
  • Soziale Wirtschaft — rotierender Delivery Shop, Spielermarkt, Tierverträge, tägliche und wöchentliche Herausforderungen, Zoo-Personal, Dekorationen und eine Bestenliste.

Installation​

  1. Installiere TypeWriter mit dem BTC-Build (BTC Core auf Paper oder Folia).
  2. Installiere die erforderlichen Erweiterungen: Entity (Tiermodelle und Fake-Entities) und GUI (das Bedienfeld).
  3. Installiere Vault mit einem Wirtschafts-Plugin. Alle Kosten und Belohnungen in Geld laufen über Vault.
  4. Optionale Erweiterungen: Vehicle mit PacketEvents für Reittiere, RPG Core für das Zoo-Berufslevel, TemporaryDimension für die Abenteuerkarte (sie benötigt den SlimeWorldManager von BTC Core) und MySql mit Redis für die serverübergreifende Bestenliste und den Markt. MiniPlaceholders wird für die Platzhalter benötigt.
  5. Lege die Tycoon-JAR in plugins/Typewriter/extensions/ ab und starte den Server neu.

Erste Schritte​

So fügst du ein erstes Tier hinzu und lässt Spieler es erforschen:

  1. Öffne im TypeWriter-Web-Panel eine Static-Seite und füge ein Tycoon Data Artifact hinzu. Füge auch ein Tycoon Market Artifact hinzu, wenn du den Spielermarkt möchtest. Ändere ihre artifactId nicht.
  2. Füge eine Research Category hinzu. Setze displayName, requiredMobKills und optional trackedMobTypes (leer bedeutet, dass jeder Mob zählt).
  3. Füge eine Animal Definition hinzu. Setze entityDefinition (das Modell), category (die ID der Kategorie), rarity, spaceCost und baseRevenueRate. Liste die acceptedCatalystItems (einen Materialnamen als itemId und einen powerValue), den catalystPowerRequired und das fuelItem auf. Füge die neue Tier-ID zu den animals der Kategorie hinzu.
  4. Füge eine Tycoon Placement Group mit mindestens einer Position hinzu, damit Spieler einen Ort haben, an dem sie das Tier ablegen können.
  5. Füge eine Tycoon Economy Config hinzu. Ohne sie werden die eingebauten Standardwerte verwendet.
  6. Baue die Oberfläche: Füge ein Tycoon Control Panel mit seinen Layouts und Views hinzu und eine Tycoon Menu Config mit den Item-Vorlagen jeder Liste. Öffne das Panel über einen Command-Entry deiner Wahl.
  7. Veröffentliche. Ein Spieler tötet Mobs, bis die Kategorie freigeschaltet wird, startet im Forschungsbildschirm den Katalysator des Tiers, füttert ihn mit Katalysator-Items und nutzt dann das Brennstoff-Item (oder du löst Catalyst Activate aus), um die Forschung zu versuchen.
hinweis

Eine in der Tycoon Menu Config leer gelassene Listenvorlage wird als leerer Slot dargestellt. Der Code erfindet nichts.

So funktioniert es​

Forschung​

Das Töten eines Mobs zählt für jede Research Category, die seinen Typ verfolgt. Bei requiredMobKills wird die Kategorie freigeschaltet, außer requiredCategory ist noch nicht freigeschaltet (die Action Category Unlock beachtet das ebenfalls).

Ein Tier wird in zwei Stufen erforscht. Zuerst füttert der Spieler Katalysator-Items: Ein Rechtsklick auf eine Entity mit einem in acceptedCatalystItems aufgeführten Item fügt dessen powerValue hinzu. Erreicht die Kraft catalystPowerRequired, würfelt die Verwendung des fuelItem die Forschung aus. Die Chance ist successChance multipliziert mit dem Fanggewicht der Seltenheit. Bei Erfolg erhält der Spieler das Tier oder die alternativeRewards, wenn er die Art bereits besitzt. Der Katalysator wird in beiden Fällen verbraucht. Die Rechtsklick-Geste reagiert nur bei einem Tier, dessen Katalysator bereits gestartet wurde (zum Beispiel im Forschungsbildschirm des Bedienfelds). Die Action Catalyst Activate würfelt die Forschung für einen voll aufgeladenen Katalysator ohne das Brennstoff-Item aus.

SeltenheitErtragsmultiplikatorFanggewichtReittier-Ermüdung (s)
COMMON1.01.0120
UNCOMMON1.50.6180
RARE2.50.25300
EPIC5.00.08480
LEGENDARY10.00.02900

Zoo, Platz und Zufriedenheit​

Die Kapazität ist baseSpaceCapacity plus spacePerZooLevel für jedes Level des in zooProfessionId genannten RPG-Core-Berufs (das Level ist 1, wenn leer oder wenn RPG Core fehlt). maxPlacedPerSpecies begrenzt, wie viele Individuen einer Art gleichzeitig stehen. Jenseits von overcrowding.thresholdPercent der Kapazität sinkt die Zufriedenheit. Die Zufriedenheit verändert den Ertrag zwischen revenueMultiplierAtZero und revenueMultiplierAtMax.

Offline verdient ein Spieler höchstens offlineCatchup.maxHours Stunden lang mit offlineCatchup.rate der Online-Rate, einmalig beim Wiederverbinden berechnet.

Level, Prestige, Fusion und Zucht​

maxAnimalLevel und xpCurve legen die Level fest. Auf dem maximalen Level setzt Prestige ein Individuum auf Level 1 zurück und addiert prestigeRevenueBonus zu seinem Ertrag, bis zu maxPrestige.

Fusion nimmt zwei Reservetiere einer Art mit demselben Level und Prestige (mindestens fusionMinLevel), entfernt sie und startet eine Brutzeit. Zucht ordnet zwei Elternarten (in beliebiger Reihenfolge) einem Rezept mit requiredParentLevel, incubationSeconds, cost und consumesParents zu. Wenn das Ei schlüpft, kann rarityUpgradeChance der Aktion die Seltenheit um eine Stufe erhöhen und cosmeticMutationChance einen Mutations-Skin vergeben.

Personal, Dekorationen und Herausforderungen​

Personal hat eine role (REVENUE_COLLECTOR, CARETAKER, EXPEDITION_GUIDE, RESEARCHER), hireCost und einen stündlichen upkeepPerHour; ein Mitglied, das nicht bezahlt werden kann, wird entlassen. Dekorationen fügen happinessBonus und revenueBonus hinzu und sind durch maxPerPlayer begrenzt. Herausforderungen verfolgen einen challengeType über einen DAILY- oder WEEKLY-Zeitraum und zahlen rewardMoney und rewardCommands. Animal Contracts verlangen Tiere nach Art oder Kategorie, Mindestlevel und Anzahl.

Menüs​

Tycoon Control Panel ist ein Menü mit Views. Die Seite definiert alles, was der Spieler sieht:

  • layoutPool enthält einen Wurzel-frame (oder mainLayoutId benennt ihn). Frames mit variablem Inhalt verwenden die Layout-ID @view.
  • views deklariert die Bildschirme. Eine View gibt ihr Layout pro Frame an oder über die Namenskonvention <viewId>_<frameId>. defaultViewId ist die zuerst geöffnete View.
  • Ein Tab-Slot trägt das Tag view:<viewId>; der aktive Tab wird durch den gemeinsamen View-Stil hervorgehoben.
  • Inhalts-Items verwenden einen buttonType der Form tycoon_button:TYPE oder tycoon_button:TYPE:argument. Die Erweiterung füllt Live-Daten in die Tags des Items und hängt die Klicks an.
  • Ein Menü wird mit dem Ziel <viewId> oder <viewId>:<argument> (zum Beispiel einer Forschungskategorie-ID) auf einer View geöffnet.

Button-Typen nach Bildschirm:

BildschirmButton-Typen
Zoo und BestiariumZOO_INFO, BESTIARY_ENTRY, BESTIARY_SPECIES_ENTRY, SPECIES_MANAGE_INFO, PLACEMENT_SLOT_ENTRY, SPECIES_LEVEL_ENTRY, BESTIARY_PANEL_ENTRY, PLACED_ENTRY
ForschungRESEARCH_CATEGORY_ENTRY, RESEARCH_ANIMAL_ENTRY, RESEARCH_CATEGORY
Expeditionen und ReittiereEXPEDITION_ENTRY, EXPEDITION_START_ENTRY, MOUNT_ENTRY
AbenteuerADVENTURE_CHUNK_ENTRY, ADVENTURE_INFO
WirtschaftSHOP_ENTRY, PRESTIGE_ENTRY, MARKET_ENTRY, MARKET_MINE_ENTRY, MARKET_SELL_ENTRY, ANIMAL_CONTRACT_ENTRY, STAFF_ENTRY, STAFF_INFO
SozialesRANKING_SORT, RANKING_ENTRY, CHALLENGE_ENTRY
Zucht und DekorationenBREEDING_PARENT_ENTRY, BREEDING_EGG_ENTRY, BREEDING_INFO, DECORATION_ENTRY, DECORATION_PLACED_ENTRY
ListenLIST_PAGER:<listId>[:<pageSize>] (wird nur angezeigt, wenn die Liste nicht auf einen Bildschirm passt)

Reihenfolgebasierte Einträge (die _ENTRY-Typen) stellen pro markiertem Slot ein Element dar, in der Reihenfolge der Slots. Die Item-Vorlage jeder Liste mit ihren Tags wie {animal_name} oder {remaining_time} stammt aus der Tycoon Menu Config. Derselbe Entry nennt die Views, die von Forschungskategorien (researchViewId), Expeditions-Slots (expeditionViewId) und dem Bestiarium (bestiaryViewId) geöffnet werden.

Befehle​

Befehle sind Entries, ihre Namen und Berechtigungen werden also im Panel bearbeitet. Jeder wird registriert, indem man den Entry auf einer Seite platziert.

BefehlBeschreibung
/tycoonadmin give <player> <animal>Gibt einem Online-Spieler ein Tier. Erfordert die in permission gesetzte Berechtigung (Standard tycoon.admin).
/tycoonadmin remove <player> <animal>Entfernt das am wenigsten fortgeschrittene Individuum einer Art.
/tycoonadmin setlevel <player> <animal> <level>Setzt das Level jedes Individuums einer Art, auf maxAnimalLevel begrenzt.
/tycoonadmin unlockcategory <player> <category>Schaltet eine Forschungskategorie frei.
/tycoonadmin info [player]Zeigt das Zooprofil eines Spielers.
/tycoonadmin resetfatigue [player]Setzt die Abenteuer-Ermüdung zurück.
/tycoonadmin spawnshop <shop>Lässt sofort einen Händler eines Delivery Shops spawnen.
/tycoonadmin saveSchreibt alle Tycoon-Daten auf die Festplatte.
/collecterSammelt den angesammelten Ertrag ein. Für alle offen, sofern permission nicht gesetzt ist.
/visiter <player>Teleportiert zum Standort eines anderen Spielers, um seinen Zoo zu besuchen. Für alle offen, sofern permission nicht gesetzt ist.

Die obigen Namen sind die Standardwerte von Tycoon Admin Command, Tycoon Collect Command und Tycoon Visit Command; ändere commandName, um sie umzubenennen. Befehle zum Öffnen von Menüs (zum Beispiel /zoo) gehören nicht zu dieser Erweiterung: Erstelle sie mit einem Command-Entry der Basic-Erweiterung, der das Control Panel auslöst.

Berechtigungen​

BerechtigungErlaubt
tycoon.adminDen gesamten /tycoonadmin-Baum. Das ist der Standard des Felds permission des Admin-Befehls und kann dort geändert werden.

Das Feld permission der Befehle Collect und Visit ist standardmäßig leer (keine Berechtigung nötig).

Platzhalter​

MiniPlaceholders-Tags der Expansion tycoon, über TypeWriter bereitgestellt. <id> ist eine Tierdefinitions-ID, <cat> eine Forschungskategorie-ID, <n> ein Expeditions-Slot-Index ab 0. Alle lesen das Profil des betrachtenden Spielers.

Summen​

PlatzhalterLiefert
<tycoon_total_animals>Anzahl der besessenen Tiere.
<tycoon_total_species>Anzahl der besessenen Arten.
<tycoon_placed_animals>Im Zoo platzierte Tiere.
<tycoon_unplaced_animals>Tiere in der Reserve.
<tycoon_total_revenue>Gesamter erzielter Ertrag, mit 2 Dezimalstellen.
<tycoon_total_revenue_raw>Gesamter erzielter Ertrag, als ganze Zahl.
<tycoon_categories_unlocked>, <tycoon_categories_total>, <tycoon_categories_locked>Freigeschaltete, verfolgte und noch gesperrte Forschungskategorien.
<tycoon_milestones_count>Erreichte Sammlungs-Meilensteine.
<tycoon_prestige_total>Gesamte Prestige-Anzahl über alle Tiere.
<tycoon_expeditions_active>Aktive Expeditionen.
<tycoon_expeditions_completed>Immer 0.
<tycoon_zoo_visitors>Zoo-Besucher.
<tycoon_active_mount_id>ID des gewählten Reittiers oder none.
<tycoon_last_revenue_collect>Zeitpunkt der letzten Einsammlung (HH:mm:ss).

Forschungskategorien​

PlatzhalterLiefert
<tycoon_category_unlocked:cat>true, wenn freigeschaltet.
<tycoon_category_mobs_killed:cat>Getötete verfolgte Mobs.
<tycoon_category_required_kills:cat>Zum Freischalten nötige Kills.
<tycoon_category_progress_percent:cat>Fortschritt in Prozent.
<tycoon_category_name:cat>Anzeigename.

Tiere​

PlatzhalterLiefert
<tycoon_animal_level:id>, <tycoon_animal_xp:id>, <tycoon_animal_prestige:id>Level, XP und Prestige-Anzahl des besessenen Tiers.
<tycoon_animal_owned:id>, <tycoon_animal_placed:id>true oder false.
<tycoon_animal_count:id>, <tycoon_animal_placed_count:id>Besessene und platzierte Individuen.
<tycoon_animal_rarity:id>, <tycoon_animal_rarity_color:id>Name der Seltenheit und ihre Hex-Farbe.
<tycoon_animal_custom_name:id>Eigener Name.
<tycoon_animal_display_name:id>Anzeigename der Definition.
<tycoon_animal_is_mountable:id>, <tycoon_animal_mount_speed:id>, <tycoon_animal_fatigue_capacity:id>Reittier-Einstellungen der Definition.
<tycoon_animal_max_level:id>maxAnimalLevel der Wirtschaftskonfiguration.
<tycoon_animal_space_cost:id>, <tycoon_animal_revenue_rate:id>, <tycoon_animal_fusion_level:id>spaceCost, baseRevenueRate, fusionMinLevel.
<tycoon_animal_catalyst_progress:id>Füllstand des Katalysators in Prozent.
<tycoon_animal_catalyst_power:id>, <tycoon_animal_catalyst_items:id>Katalysator-Kraft und Anzahl der gespendeten Item-Typen.
<tycoon_placed_happiness:id>, <tycoon_placed_biome:id>, <tycoon_placed_world:id>, <tycoon_placed_coords:id>, <tycoon_placed_chunk:id>Details des platzierten Tiers.
<tycoon_prestige_bonus:id>Prestige-Bonus des Tiers.

Expeditionen​

PlatzhalterLiefert
<tycoon_expedition_count>Verwendete Expeditions-Slots.
<tycoon_expedition_animal:n>Tier-ID von Slot n.
<tycoon_expedition_remaining_seconds:n>, <tycoon_expedition_remaining_minutes:n>Zeit bis zur Rückkehr.
<tycoon_expedition_duration_hours:n>Gesamtdauer in Stunden.
<tycoon_expedition_ready:n>true, wenn zum Einsammeln bereit.

Entries​

27 Einträge, aus dem Quellcode der Erweiterung generiert.

Aktionen9
Befehle3
Artefakte2
Manifeste13

Fehlerbehebung​

Das Menü öffnet sich leer. Die Vorlagen der Tycoon Menu Config sind standardmäßig leere Slots, und der layoutPool muss die von mainLayoutId und views genannten Layouts enthalten. Suche im Log nach der Menü-ID.

Ein Klick auf eine Forschungskategorie oder einen Expeditions-Slot führt zurück zur Übersicht. Die View-IDs in researchViewId, expeditionViewId und bestiaryViewId der Menükonfiguration (Standardwerte tycoon_recherches, tycoon_expeditions, tycoon_bestiaire) müssen zu den IDs deiner views passen. Andernfalls fällt die Engine auf die Standard-View zurück.

Eine Kategorie wird nie freigeschaltet. trackedMobTypes wird mit dem kleingeschriebenen Entity-Typnamen verglichen; eine leere Liste zählt jeden Mob. Eine Kategorie mit requiredCategory kann erst über die Action Category Unlock freigeschaltet werden, sobald diese Kategorie freigeschaltet ist.

Ein Tier lässt sich nicht platzieren. Es benötigt eine freie Position in einer Placement Group, deren maxSpaceCost mindestens den spaceCost des Tiers beträgt, genug freien Platz unter der Kapazität und ein Zoo-Level von mindestens requiredZooLevel. Ändere die Reihenfolge von positions auf einem Live-Server nicht: Slot-IDs werden aus ihrem Index abgeleitet.

Kosten und Belohnungen in Geld bewirken nichts. Sie laufen über Vault. Installiere Vault und ein Wirtschafts-Plugin.

Die Abenteuerkarte oder Reittiere sind nicht verfügbar. Sie benötigen die Erweiterung TemporaryDimension (mit dem SlimeWorldManager von BTC Core) und die Vehicle-Erweiterung mit PacketEvents. Ohne Redis bleiben Bestenliste und Markt lokal auf dem Server.

Eine Fusion oder Zucht bringt nichts. Die Fusion benötigt zwei Reservetiere mit gleichem Level und gleichem Prestige sowie mindestens fusionMinLevel; platzierte Tiere werden ignoriert. Der Schlupf wird erst ausgewürfelt, wenn das Ei bereit ist, also nach incubationHours: Dann gelten rarityUpgradeChance und cosmeticMutationChance der Fusion-Aktion.

Verwandte Erweiterungen​

  • BTC Sky — Inseln und Forschung im selben BTC-Build.
  • Machine — datengesteuerte Maschinen für Inseln.