メインコンテンツまでスキップ

Tycoon

動物園タイクーン:動物を研究し、不労所得を得て、繁殖、プレステージ、探索、取引を行います。

プライベートv0.1経済とクラフト
必要TypeWriter0.9.0-beta-177 (BTC build)Entity extensionGUI extensionVaultVehicle extension任意PacketEvents任意RPG Core任意TemporaryDimension extension任意MySql extension任意MiniPlaceholders任意

BornToCraft ネットワーク向けに作られた拡張機能です。参照用にドキュメント化されており、配布されていません。

概要​

Tycoon は、動物園のゲームモードです。プレイヤーはモブを倒してリサーチカテゴリを解放し、触媒を与え、燃料アイテムを使って動物をリサーチし、その動物を動物園に配置して、不労所得を得ます。動物はレベルが上がり、恒久的なボーナスのためにプレステージでき、時間制の探検に送り出したり、繁殖させたり、融合させたり、プレイヤーマーケットで取引したり、契約のために引き渡したりできます。

すべてはデータ駆動です。各種は Animal Definition で、各システム(リサーチカテゴリ、チャレンジ、スタッフ、装飾、契約、繁殖、ショップ)は manifest エントリで、経済のルールは 1 つの Tycoon Economy Config にあります。プレイヤー向けのインターフェースは、1 つのメニュー Tycoon Control Panel で、そのレイアウトは Web パネルで作成します。コードは、ライブデータを埋め込み、クリックを割り当てるだけです。

不足するリソースは、お金ではなく、動物園のスペースです。プレイヤーの収容力は、動物園の職業レベルとともに増え、どの種も一定数のスペースを必要とし、収益はそのコストに比例します。配置された動物は、オーナーにだけ表示されるため、すべてのプレイヤーが 1 つのワールドを共有できます。

これは、BTC ビルドの TypeWriter(BTC Core、Paper または Folia)の非公開の拡張機能で、参考のために文書化されています。

機能​

  • リサーチツリー — モブの討伐で Research Categories が解放されます。各動物には、満たされた触媒と、最終判定のための燃料アイテムが必要です。
  • 動物園のスペースと配置 — 種ごとにスペースを消費します。動物は、Placement Group で宣言された位置に、1 つの位置に 1 匹ずつ配置されます。
  • 不労所得 — 配置された動物は、時間とともに収益を生みます。レア度、レベル、プレステージ、幸福度、スタッフ、装飾によって増減し、オフライン中の取り戻しには上限があります。
  • 幸福度 — 0〜100 で、収益に掛かります。ペナルティは過密のみで、餌やりと装飾が幸福度を上げます。
  • レベルとプレステージ — XP 曲線とレベルの上限は、経済設定にあります。Prestige は、恒久的な収益ボーナスと引き換えに、動物をレベル 1 に戻します。
  • 融合と繁殖 — 同じ種の 2 匹の Fusion と、孵化時間のあるレシピベースの Breeding。
  • 探検 — 動物を時間制の放置型ミッションに送り出し、帰還時に結果を受け取ります。
  • アドベンチャーマップ — テンプレートのワールドから複製される一時的なディメンション。疲労ゲージを持ちながらチャンクごとに探索し、動物に乗り物として乗れます。
  • ソーシャルな経済 — ローテーションする Delivery Shop、プレイヤーマーケット、動物の契約、デイリーとウィークリーのチャレンジ、動物園のスタッフ、装飾、リーダーボード。

インストール​

  1. BTC ビルド(Paper または Folia 上の BTC Core)で TypeWriter をインストールします。
  2. 必須の拡張機能をインストールします。Entity(動物のモデルと偽のエンティティ)と、GUI(コントロールパネル)です。
  3. 経済プラグインとともに Vault をインストールします。お金に関するすべてのコストと報酬は、Vault を使います。
  4. 任意の拡張機能: 乗り物のための、PacketEvents を備えた Vehicle、動物園の職業レベルのための RPG Core、アドベンチャーマップのための TemporaryDimension(BTC Core の SlimeWorldManager が必要)、サーバー間のリーダーボードとマーケットのための、Redis を備えた MySql。プレースホルダーには MiniPlaceholders が必要です。
  5. Tycoon の JAR を plugins/Typewriter/extensions/ に置き、サーバーを再起動します。

はじめに​

最初の動物を追加し、プレイヤーにリサーチさせます。

  1. TypeWriter の Web パネルで static ページを開き、Tycoon Data Artifact を追加します。プレイヤーマーケットが必要な場合は、Tycoon Market Artifact も追加します。それらの artifactId は変更しないでください。
  2. Research Category を追加します。displayName、requiredMobKills、必要に応じて trackedMobTypes(空の場合はすべてのモブが対象)を設定します。
  3. Animal Definition を追加します。entityDefinition(モデル)、category(カテゴリの ID)、rarity、spaceCost、baseRevenueRate を設定します。acceptedCatalystItems(素材名の itemId と powerValue)、catalystPowerRequired、fuelItem を列挙します。新しい動物の ID を、カテゴリの animals に追加します。
  4. 少なくとも 1 つの位置を持つ Tycoon Placement Group を追加し、プレイヤーが動物を置く場所を用意します。
  5. Tycoon Economy Config を追加します。これがない場合は、組み込みのデフォルトが使われます。
  6. インターフェースを作成します。レイアウトとビューを持つ Tycoon Control Panel と、すべてのリストのアイテムテンプレートを持つ Tycoon Menu Config を追加します。パネルは、自分で選んだコマンドエントリから開きます。
  7. パブリッシュします。プレイヤーは、カテゴリが解放されるまでモブを倒し、リサーチ画面から動物の触媒を開始し、触媒アイテムを与え、その後燃料アイテムを使って(または Catalyst Activate をトリガーして)、リサーチを試みます。
注記

Tycoon Menu Config で、リストのテンプレートを空のままにすると、空のスロットとして描画されます。コードが何かを補うことはありません。

仕組み​

リサーチ​

モブを倒すと、そのタイプを追跡しているすべての Research Category にカウントされます。requiredMobKills に達すると、カテゴリが解放されます。ただし、requiredCategory がまだ解放されていない場合を除きます(Category Unlock アクションにも、同じルールが適用されます)。

動物は、2 つの段階でリサーチされます。最初に、プレイヤーが触媒アイテムを与えます。acceptedCatalystItems に列挙されたアイテムでエンティティを右クリックすると、その powerValue が加算されます。パワーが catalystPowerRequired に達したら、fuelItem を使うと、リサーチの判定が行われます。確率は、successChance に、レア度の捕獲ウェイトを掛けたものです。成功すると、プレイヤーは動物を入手し、すでにその種を持っている場合は alternativeRewards を受け取ります。触媒は、どちらの場合も消費されます。右クリックの操作が反応するのは、触媒がすでに開始されている動物(たとえば、コントロールパネルのリサーチ画面から)に対してだけです。Catalyst Activate アクションは、満たされた触媒について、燃料アイテムなしでリサーチの判定を行います。

レア度収益の倍率捕獲ウェイト騎乗時の疲労(秒)
COMMON1.01.0120
UNCOMMON1.50.6180
RARE2.50.25300
EPIC5.00.08480
LEGENDARY10.00.02900

動物園、スペース、幸福度​

収容力は、baseSpaceCapacity に、zooProfessionId で指定された RPG Core の職業のレベルごとに spacePerZooLevel を加えたものです(空の場合、または RPG Core がない場合、レベルは 1 です)。maxPlacedPerSpecies は、1 つの種の個体を同時に何匹まで立たせるかを制限します。収容力の overcrowding.thresholdPercent を超えると、幸福度が下がります。幸福度は、収益を revenueMultiplierAtZero と revenueMultiplierAtMax の間で変化させます。

オフライン中は、プレイヤーは最大で offlineCatchup.maxHours 時間分、オンライン時の offlineCatchup.rate の割合で収益を得て、再接続時に一度だけ計算されます。

レベル、プレステージ、融合、繁殖​

maxAnimalLevel と xpCurve が、レベルを決めます。最大レベルで、Prestige は 1 匹の個体をレベル 1 に戻し、maxPrestige を上限として、prestigeRevenueBonus を収益に加えます。

Fusion は、同じ種で、レベルとプレステージが同じ(少なくとも fusionMinLevel)の、予備の動物 2 匹を取り、それらを削除して孵化を開始します。Breeding は、2 つの親の種(順不同)を、requiredParentLevel、incubationSeconds、cost、consumesParents を持つレシピと照合します。 卵が孵化するとき、アクションの rarityUpgradeChance でレア度が 1 段階上がることがあり、cosmeticMutationChance で突然変異スキンが付くことがあります。

スタッフ、装飾、チャレンジ​

Staff のメンバーは、role(REVENUE_COLLECTOR、CARETAKER、EXPEDITION_GUIDE、RESEARCHER)、hireCost、時間ごとの upkeepPerHour を持ちます。支払えなくなったメンバーは、解雇されます。Decorations は、happinessBonus と revenueBonus を加え、maxPerPlayer で上限が決まります。Challenges は、DAILY または WEEKLY の期間にわたって challengeType を追跡し、rewardMoney と rewardCommands を支払います。Animal Contracts は、種またはカテゴリ、最低レベル、数で、動物を求めます。

メニュー​

Tycoon Control Panel は、ビューを持つメニューです。ページが、プレイヤーに見えるすべてを定義します。

  • layoutPool は、ルートの frame を保持します(または mainLayoutId がそれを指定します)。可変コンテンツのフレームは、レイアウト ID @view を使います。
  • views は画面を宣言します。ビューは、フレームごとにレイアウトを指定するか、命名規則 <viewId>_<frameId> に従います。defaultViewId は、最初に開かれるビューです。
  • タブのスロットはタグ view:<viewId> を持ち、アクティブなタブは、共通のビューのスタイルで強調表示されます。
  • コンテンツのアイテムは、tycoon_button:TYPE または tycoon_button:TYPE:argument の形式の buttonType を使います。拡張機能は、アイテムのタグにライブデータを埋め込み、クリックを割り当てます。
  • メニューは、ターゲット <viewId> または <viewId>:<argument>(たとえば、リサーチカテゴリの ID)で、ビューを指定して開きます。

画面ごとのボタンタイプ:

画面ボタンタイプ
動物園と図鑑ZOO_INFO, BESTIARY_ENTRY, BESTIARY_SPECIES_ENTRY, SPECIES_MANAGE_INFO, PLACEMENT_SLOT_ENTRY, SPECIES_LEVEL_ENTRY, BESTIARY_PANEL_ENTRY, PLACED_ENTRY
リサーチRESEARCH_CATEGORY_ENTRY, RESEARCH_ANIMAL_ENTRY, RESEARCH_CATEGORY
探検と騎乗EXPEDITION_ENTRY, EXPEDITION_START_ENTRY, MOUNT_ENTRY
アドベンチャーADVENTURE_CHUNK_ENTRY, ADVENTURE_INFO
経済SHOP_ENTRY, PRESTIGE_ENTRY, MARKET_ENTRY, MARKET_MINE_ENTRY, MARKET_SELL_ENTRY, ANIMAL_CONTRACT_ENTRY, STAFF_ENTRY, STAFF_INFO
ソーシャルRANKING_SORT, RANKING_ENTRY, CHALLENGE_ENTRY
繁殖と装飾BREEDING_PARENT_ENTRY, BREEDING_EGG_ENTRY, BREEDING_INFO, DECORATION_ENTRY, DECORATION_PLACED_ENTRY
リストLIST_PAGER:<listId>[:<pageSize>](リストが 1 画面に収まらない場合にのみ表示)

順序ベースのエントリ(_ENTRY タイプ)は、タグ付きスロットごとに、スロットの順序で 1 つの要素を描画します。{animal_name} や {remaining_time} などのタグを持つ、各リストのアイテムテンプレートは、Tycoon Menu Config から取得されます。同じエントリが、リサーチカテゴリ(researchViewId)、探検スロット(expeditionViewId)、図鑑(bestiaryViewId)で開かれるビューも指定します。

コマンド​

コマンドはエントリなので、その名前と権限はパネルで編集します。各コマンドは、そのエントリをページに置くことで登録されます。

コマンド説明
/tycoonadmin give <player> <animal>オンラインのプレイヤーに動物を与えます。permission に設定された権限が必要です(デフォルトは tycoon.admin)。
/tycoonadmin remove <player> <animal>ある種の、最も進んでいない個体を削除します。
/tycoonadmin setlevel <player> <animal> <level>ある種のすべての個体のレベルを設定します。maxAnimalLevel に丸められます。
/tycoonadmin unlockcategory <player> <category>リサーチカテゴリを解放します。
/tycoonadmin info [player]プレイヤーの動物園プロファイルを表示します。
/tycoonadmin resetfatigue [player]アドベンチャーの疲労をリセットします。
/tycoonadmin spawnshop <shop>デリバリーショップの商人を今すぐスポーンさせます。
/tycoonadmin saveすべての Tycoon のデータをディスクに書き込みます。
/collecter蓄積された収益を回収します。permission が設定されていない限り、全員が使えます。
/visiter <player>他のプレイヤーの動物園を訪れるため、その場所にテレポートします。permission が設定されていない限り、全員が使えます。

上記の名前は、Tycoon Admin Command、Tycoon Collect Command、Tycoon Visit Command のデフォルトです。名前を変えるには、commandName を変更します。メニューを開くコマンド(たとえば /zoo)は、この拡張機能には含まれません。Basic 拡張機能のコマンドエントリで、Control Panel をトリガーするものを作成してください。

権限​

権限許可される内容
tycoon.admin/tycoonadmin のツリー全体。これは、admin コマンドの permission フィールドのデフォルトで、そこで変更できます。

collect と visit のコマンドの permission フィールドは、デフォルトでは空です(権限は不要)。

プレースホルダー​

TypeWriter を通じて提供される、tycoon エクスパンションの MiniPlaceholders のタグです。<id> は動物の定義の ID、<cat> はリサーチカテゴリの ID、<n> は 0 から始まる探検スロットのインデックスです。すべて、閲覧しているプレイヤーのプロファイルを読み取ります。

合計​

プレースホルダー返す値
<tycoon_total_animals>所有している動物の数。
<tycoon_total_species>所有している種の数。
<tycoon_placed_animals>動物園に配置されている動物。
<tycoon_unplaced_animals>予備にいる動物。
<tycoon_total_revenue>獲得した総収益(小数点以下 2 桁)。
<tycoon_total_revenue_raw>獲得した総収益(整数)。
<tycoon_categories_unlocked>, <tycoon_categories_total>, <tycoon_categories_locked>解放済み、追跡中、まだロック中のリサーチカテゴリ。
<tycoon_milestones_count>達成したコレクションのマイルストーン。
<tycoon_prestige_total>全動物にわたる、プレステージの総回数。
<tycoon_expeditions_active>アクティブな探検。
<tycoon_expeditions_completed>常に 0。
<tycoon_zoo_visitors>動物園の訪問者。
<tycoon_active_mount_id>選択中の乗り物の ID。なければ none。
<tycoon_last_revenue_collect>最後に回収した時刻(HH:mm:ss)。

リサーチカテゴリ​

プレースホルダー返す値
<tycoon_category_unlocked:cat>解放済みなら true。
<tycoon_category_mobs_killed:cat>倒した、追跡対象のモブ。
<tycoon_category_required_kills:cat>解放に必要な討伐数。
<tycoon_category_progress_percent:cat>パーセントでの進行状況。
<tycoon_category_name:cat>表示名。

動物​

プレースホルダー返す値
<tycoon_animal_level:id>, <tycoon_animal_xp:id>, <tycoon_animal_prestige:id>所有している動物のレベル、XP、プレステージ回数。
<tycoon_animal_owned:id>, <tycoon_animal_placed:id>true または false。
<tycoon_animal_count:id>, <tycoon_animal_placed_count:id>所有している個体と、配置されている個体。
<tycoon_animal_rarity:id>, <tycoon_animal_rarity_color:id>レア度の名前と、その 16 進数の色。
<tycoon_animal_custom_name:id>カスタム名。
<tycoon_animal_display_name:id>定義の表示名。
<tycoon_animal_is_mountable:id>, <tycoon_animal_mount_speed:id>, <tycoon_animal_fatigue_capacity:id>定義の騎乗の設定。
<tycoon_animal_max_level:id>経済設定の maxAnimalLevel。
<tycoon_animal_space_cost:id>, <tycoon_animal_revenue_rate:id>, <tycoon_animal_fusion_level:id>spaceCost、baseRevenueRate、fusionMinLevel。
<tycoon_animal_catalyst_progress:id>パーセントでの触媒の充填度。
<tycoon_animal_catalyst_power:id>, <tycoon_animal_catalyst_items:id>触媒のパワーと、提供されたアイテムの種類数。
<tycoon_placed_happiness:id>, <tycoon_placed_biome:id>, <tycoon_placed_world:id>, <tycoon_placed_coords:id>, <tycoon_placed_chunk:id>配置された動物の詳細。
<tycoon_prestige_bonus:id>動物のプレステージボーナス。

探検​

プレースホルダー返す値
<tycoon_expedition_count>使用中の探検スロット。
<tycoon_expedition_animal:n>スロット n の動物 ID。
<tycoon_expedition_remaining_seconds:n>, <tycoon_expedition_remaining_minutes:n>帰還までの時間。
<tycoon_expedition_duration_hours:n>時間単位での総所要時間。
<tycoon_expedition_ready:n>回収できる状態なら true。

エントリ​

27 件のエントリー(拡張機能のソースから生成)。

アクション9
コマンド3
アーティファクト2
マニフェスト13

トラブルシューティング​

メニューが空で開く。 Tycoon Menu Config のテンプレートは、デフォルトでは空のスロットで、layoutPool には、mainLayoutId と views で指定されたレイアウトが含まれている必要があります。ログでメニューの ID を確認してください。

リサーチカテゴリや探検スロットをクリックすると、概要に戻る。 メニュー設定の researchViewId、expeditionViewId、bestiaryViewId(デフォルトは tycoon_recherches、tycoon_expeditions、tycoon_bestiaire)のビュー ID が、自分の views の ID と一致している必要があります。そうでないと、エンジンはデフォルトのビューにフォールバックします。

カテゴリがまったく解放されない。 trackedMobTypes は、小文字のエンティティタイプ名と比較されます。空のリストは、すべてのモブを対象にします。requiredCategory を持つカテゴリは、そのカテゴリが解放された後に限り、Category Unlock アクションで解放できます。

動物を配置できない。 Placement Group に、maxSpaceCost が動物の spaceCost 以上である空きの位置があり、収容力に十分な空きスペースがあり、動物園のレベルが少なくとも requiredZooLevel である必要があります。稼働中のサーバーで positions の順序を変えないでください。スロット ID は、そのインデックスから導出されます。

お金に関するコストと報酬が何もしない。 それらは Vault を通じて処理されます。Vault と経済プラグインをインストールしてください。

アドベンチャーマップや乗り物が利用できない。 TemporaryDimension 拡張機能(BTC Core の SlimeWorldManager とともに)と、PacketEvents を備えた Vehicle 拡張機能が必要です。Redis がない場合、リーダーボードとマーケットは、サーバー内でローカルのままです。

融合や繁殖で何も得られない。 融合には、レベルとプレステージが同じで、少なくとも fusionMinLevel である、予備の動物 2 匹が必要です。配置された動物は無視されます。孵化の抽選は卵が準備できたとき、つまり incubationHours の後に一度だけ行われ、その際に Fusion アクションの rarityUpgradeChance と cosmeticMutationChance が適用されます。

関連する拡張機能​

  • BTC Sky — 同じ BTC ビルド上の、島とリサーチ。
  • Machine — 島向けの、データ駆動のマシン。