Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[要望] ネタアイテム「ドカン」の実装方法と例外アイテムについて考える #334

Open
waxsd100 opened this issue Jun 14, 2024 · 8 comments
Assignees
Labels
提案 機能追加。実装したらクローズ。

Comments

@waxsd100
Copy link
Collaborator

waxsd100 commented Jun 14, 2024

アイデアのカテゴリー

アイテム・TUSBメモリー

アイデア概要

TUSBv12からある、地下世界の最後にあるネタアイテム「ドカン」を実装したい。
https://x.com/wakokara/status/1220880374693130240
EPFwOVBUYAArsan
EPHbAdrVUAAsy7X

しかし、double型はInfinityを扱えるというバグに近い裏技を使用しているため

  • 今のTUSBv13のスプレッドシート管理の場合は上記アイテムは管理できず、
    giveコマンドでもパーサーの問題で与えられないので現状のTUSB管理方式だと扱えない。
    (ルートテーブルで扱えるかは未確認)
  • Attributeが見えてこそのネタアイテムなのに、武器アイテム方針のAttributeは非表示にするという仕様で意味ないアイテムになる。

なので以下の条件下なら、シート管理の例外的に除外して直配置しても問題ないという内部ルール決めてから設置したい。

  • Worldで唯一のアイテム(トロフィー的な役割)で武器や攻略などには一切影響しない
  • アイテムの設置場所と設置は責任者を立てて管理と責任を持つ
    • 場所とかはどこか公開場所に記載しておく
    • 問題or責任不在 とかになったら消す
  • 例外アイテムは何個までなら問題ないというのを決めて、増えすぎないようにする
  • 追記: 村人の取引に使えない

これにより、直配置した時の問題点はある程度対処できる(運用で対処する方針)

  • アイテムの調整をするときいちいちワールド内に入って調整をしないといけなくなる(更新の手間がかかる)
  • 誰がそのアイテムの更新とかを管理するのか
  • 無作為に設置され、管理しきれない。
  • 攻略に関係しない(いつでも消せるレベルのアイテム)のみ例外にしとくことで、魔導書バグのようなことを防ぐ

アイデアの要望理由

  • TUSBv12から存在する人気なネタアイテムの一つ。
    • ネタアイテムなどのユーモア含めてのTUSBなのでv13ではだいぶ少なくなってしまったけどユーモアを残したい
  • 解析して実際に頭に被れれば、使えるというところまでがコンセプトなのでLoreごまかしではなく、実際に反映させたい
  • 今回はドカンだけ槍玉に挙げたけども、シートとか外部管理するほうがむしろコストかかるアイテム類の事も考えると
    一定のルールと条件のみ、シート無しでの直置きはセーフという例外処理を作りたい
    • 制作者の頭とか、明らかに1箇所にしか置かない固有アイテムなのに
      種類が多いものとかしょっちゅう変更する可能性あるやつとか
      「攻略に一切関係ない割に、設置で外部ツール使う労力が大きいやつ」は
      今のうちに軽減策を考えときたい。
    • 制作者の頭とかが最たる例で、リリース直前でスキン変更、制作者の増減とかで揉める

実現方法

  1. もし、システムに影響があるなどあればシステム除外用のignoreタグやネタアイテムとしてのカテゴライズで影響で内容にする。
  2. これならば「シート管理の例外的に除外して直配置」しても問題ない条件を決める
    (シート管理しないことによるデメリットを防ぐ)
  3. 場所と内容を決めて、@waxsd100 が設置と管理する

使用するシステム

Infinity Item Editor で生成されたアイテムをホットバーもしくはストラクチャーブロック経由でバニラ環境に移動する
https://www.reddit.com/r/PhoenixSC/comments/eed9gv/infinity_and_infinity_of_movement_speed_bug/

コマンド例

No response

@waxsd100 waxsd100 added the 提案 機能追加。実装したらクローズ。 label Jun 14, 2024
@waxsd100
Copy link
Collaborator Author

waxsd100 commented Jun 14, 2024

ひとまず、現状最新バージョン(1.21)のバニラで設置と使えることを確認済み。

以下のファイルをストラクチャーブロックでロードするとサンプルのドカンが出ます

Structure dokan-test
structures.zip

@waxsd100 waxsd100 changed the title [要望] ネタアイテム「ドカン」の実装方法を考える [要望] ネタアイテム「ドカン」の実装方法と例外アイテムについて考える Jun 14, 2024
@waxsd100
Copy link
Collaborator Author

waxsd100 commented Jun 14, 2024

以下の条件下なら、シート管理の例外的に除外して直配置しても問題ないという内部ルール決めたいけども
この条件なら大丈夫そう?

方針を、アイテムの直配置は完全禁止から原則禁止に変更

  • Worldで唯一のアイテム(トロフィー的な役割)で武器や攻略などには一切影響しない
  • アイテムの設置場所と設置は責任者を立てて管理と責任を持つ
    • 場所とかはどこか公開場所に記載しておく
    • 問題or責任不在 とかになったら消す
  • 例外アイテムは何個までなら問題ないというのを決めて、増えすぎないようにする

アイテム設置に関しては
例外アイテム類入ったチェストは、StructureでSaveして初期化時に設置でもいいかもしれない
ネタアイテムなど武器にはならないレベルのユニークアイテムについても別途タグとかのカテゴライズあったほうがいいかも

@aatomu
Copy link
Contributor

aatomu commented Jun 15, 2024

セルに入れるデータをInfinity d にしてるのを stringで読み込んだらいけないかな...
多分python側でnumberで読み取ってるだろうけど

@NePonpon
Copy link
Member

アイテムの翻訳に支障が出なければいい。
あとは、村人の取引に使えないという条件も欲しい。これは自動更新の強みを利用できないから。

アイテムの存在自体はシートに登録してほしい。「出力」にチェックを入れないのであれば問題ない。

@waxsd100
Copy link
Collaborator Author

waxsd100 commented Jun 15, 2024

セルに入れるデータをInfinity d にしてるのを stringで読み込んだらいけないかな... 多分python側でnumberで読み取ってるだろうけど

そもそもJsonの数値型にInfinityは許容されていないから、NaNかパース失敗になる

NBTには許容される型だがJsonそのものには許されない型

@aatomu
Copy link
Contributor

aatomu commented Jun 15, 2024

セルに入れるデータをInfinity d にしてるのを stringで読み込んだらいけないかな... 多分python側でnumberで読み取ってるだろうけど

そもそもJsonの数値型にInfinityは共用されていないから、NaNかパース失敗になる

NBTには許容される型だがJsonそのものには許されない型

それなら.mcfunctionとかにexportさせる必要が出てくるか... シートのままでも行けるんじゃない?
exporterのコード追加(?)がいるけど

@waxsd100
Copy link
Collaborator Author

waxsd100 commented Jun 15, 2024

アイテムの翻訳に支障が出なければいい。 あとは、村人の取引に使えないという条件も欲しい。これは自動更新の強みを利用できないから。

アイテムの存在自体はシートに登録してほしい。「出力」にチェックを入れないのであれば問題ない。

それなら.mcfunctionとかにexportさせる必要が出てくるか... シートのままでも行けるんじゃない? exporterのコード追加(?)がいるけど

の2つの意見を総括すると
生成できないアイテム自体の配置については
アイテム自体はシートに登録し、出力チェックを外す。
実際の設置とかは手動で設置する。

で問題なさそう?


アイテム自体はシートに登録し、出力チェックを外す。

Worldにあるものかどうかわからないので、別のチェックボックス追加必要になるかも(要検討)

@aatomu
Copy link
Contributor

aatomu commented Jun 17, 2024

それでいいと思う

いろは氏に余裕があればstringのcellを読み込めるか聞いてみてだね

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
提案 機能追加。実装したらクローズ。
Projects
None yet
Development

No branches or pull requests

3 participants