Skip to content
akkiserver-devPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

御伽 / Otogi

式・相・術・具を組み合わせて戦う、Paper向けの異能力PvP。 間合いを取る、術を通す、返しの一撃を狙う。ビルドによって戦い方が変わります。

起動

Java 25 / Paper 26.2 を使用します。

./gradlew.bat build

build/libs/Otogi-0.1.0-all.jar をサーバーの plugins に配置して起動してください。 通常の Otogi-0.1.0.jar にはメニュー用ライブラリを含みません。

Windowsで JAVA_HOME が不正と出る場合は、JDKの bin ではなくJDK本体を指定します。

$env:JAVA_HOME = 'C:/Users/newak/.jdks/temurin-25.0.4'
./gradlew.bat build

遊び方

  1. 運営が自作マップにスポーン・観戦地点・範囲を登録する。マップ設定手順
  2. 各プレイヤーがコンパスの右クリックか /otogi でロビーを開き、ビルドを選んで試合に参加待機を押す。
  3. 運営がロビーでマップ・モードを選び、待機者で試合開始を押す。
  4. 具を持って左クリック、術を持って右クリック。長柄はしゃがみ+左クリックで突き、灯籠は右クリックで封殺。

同時に進行する試合は1つです。マップの地形・ワールドは運営が用意します。プラグインから生成や設置は行いません。 初回はマップ未登録で起動します。/otogi map create <id> から、既存のロード済みワールドを登録してください。 FFAは初期設定で10キル先取・10分。残機戦、拠点制圧も選べます。復帰直後は3秒間の加護があり、攻撃や術の使用で解除されます。 試合終了・退出・プラグイン停止時に、参加前の持ち物、体力、効果、経験値、ゲームモード、位置を戻します。 サイドバーにモードの目標・自分の成績・順位、ボスバーに時間や拠点状況を表示します。参加前のスコアボードも復元します。

コマンド 操作
/otogi / /otogi menu ロビー・戦績・参加待機・操作案内
/otogi build ビルド選択
/otogi build show 選択内容を確認
/otogi build reset 選択を解除
/otogi stats 通算戦績
/otogi game join / leave 参加待機・退出
/otogi game modes モードと勝利条件を確認
/otogi game start <mode> [map] 待機者で開始(otogi.admin)
/otogi game status 試合状況
/otogi game stop 試合終了(otogi.admin)
/otogi reload 設定・翻訳を再読込(otogi.admin)
/otogi map help 自作マップの設定案内
/otogi architect info <id> 能力の実装方式・調整値を確認(otogi.admin)
/otogi architect validate JSON・Luaを反映せずに検証(otogi.admin)

ビルド

初期設定は5枠。式は1つまでで、相・術・具は枠内で自由に選べます。 空のビルドにはランダムで能力を割り当てます。 相・術だけのビルドも選べるため、通常攻撃を使いたい場合は具を1つ選んでください。

分類 実装
式(常時効果) 韋駄天、金剛、金城、生気、浮力、導線、研澄、共鳴
相(自動発動) 不死、隠密、献上、首狩り、拾得、残影、応報、怨恨、反響、先見
術(右クリック) 神隠し、浄化、過速、錨撃、惑乱、鏡界、断界、縁結び、帳
具(通常攻撃) 刀、細剣、長柄、書、輪刃、灯籠、護符

追加の19種は、先に draft に仕様を書いたJSON/Lua版です。合計53種。 狐火・輪灯、天狗の羽団扇、鶴の恩返し、鬼の縫い針、鬼の血脈、天女の羽衣、八咫鏡・返照を同梱しています。 さらに鳴神・白息・鬼宴の術、蛇骨・白兎の具、玉手箱・件の相、一寸法師・修羅の式を選べます。 八尺様・呼び声は予告領域からの術封印、口裂け・二口は命中後の精密な追撃、送り犬・護り牙は連続被弾からの切り返しを担います。 重い判定と描画はJava、短い条件や組み合わせはLuaが担当します。

調整

plugins/Otogi に生成されるファイルを編集して /otogi reload を実行します。

  • config.yml: ビルド枠数、FFAの時間・勝利条件、能力の威力・射程・持続時間。abilities.<id>.name と description で表示も変更できます。
  • combat.yml: 具の威力・判定・攻撃間隔、SFX/VFXの有無・音量。時間はtickです(20tick = 1秒)。
  • lang/ja_jp.json: 翻訳。既存ファイルは起動時に上書きしません。
  • builds.yml: UUIDごとの選択内容。保存時は一時ファイルを経由して置換します。
  • maps/<id>.json: 自作マップのワールド・範囲・スポーン等。地形は変更しません。
  • modes.json: 残機戦と拠点制圧の数値・制限時間。
  • architects/*.json / architects/scripts/*.lua: 追加能力の表示・数値・振る舞い。
  • player-stats.json: 通算戦績。正常終了の試合を一度だけ集計し、途中退出者も含めます。運営による中止は集計しません。

config.yml の能力設定の時間は秒、combat.yml の具設定の時間はtickです。変更した説明とアイテムは、次の試合の配布から反映します。 追加JSONの時間はtickです。試合中の再読み込みは拒否します。YAML・翻訳・能力・モード・マップを全て検証してから反映し、不正な定義があれば動作中の設定を維持します。 削除された能力や変更されたビルド制約は、再読み込み後の選択内容にも反映します。

開発

api/architect が能力の共通インターフェース、core/architect が個別実装です。 能力のインスタンスは共有します。プレイヤー固有の値は ArenaPlayer に置いてください。 命中判定は Targets、ダメージは Combat、演出は CombatEffects / AbilitySupport を通します。 通常・術・範囲・反射を区別し、追加効果の連鎖や、防いだ攻撃からの誤発動を抑えています。

詳細は 実装メモ、JSON・Lua編集、ロビー、当たり判定、ゲーム概要 を参照。

./gradlew.bat test

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages