私が製作したデータパックの多くに必要になるであろうライブラリです。
ライブラリというのもあって中に少々いろんな機能が入ってます。
クレジットと必要であることを明記してくれれば皆さんのデータパック内の依存関係として使用してくれてかまいません。
【Datapacker向け】ライブラリの機能とその使い方(DLだけなら見なくてもいいです)
利き手コンフィグ
/trigger prd.api.config.mainhand
上記のコマンドで利き手の違いを疑似的に対応させることができる…ハズ
prd.api.config.mainhand
というScoreが0なら右利き、2なら左利きとして扱います。
検出系スコア数種類
prd.api.click
uising_itemを用いてクリックしている時間を計測します。(tick単位) コンポーネント「consumable」を使用したアイテムのクリック時間を検知できます
prd.api.sneak
スニークしている時間を計測できます。(tick単位) 検出をスコアで行っている関係上、飛行中や泳ぎ中などでも検出されます
prd.api.point
プレイヤーの経験値ポイントをこのスコアに保存しています。(このスコアを書き換えても経験値ポイントは変わりません)
prd.api.level
上記の経験値ポイントの経験値レベル版です。
prd.api.mainhand.damage
プレイヤーが現在所持しているアイテムの耐久値がどれぐらい減っているかを検出できるスコアです。
Motion取得
function prd.common:all_entity/get_motion
所定のスコア3つにMotionの各数値を10000倍した値を代入します。
prd.common.mob.motion.0
上記funcitonにてMotion[0]が代入されるスコアです
prd.common.mob.motion.1
上記funcitonにてMotion[1]が代入されるスコアです
prd.common.mob.motion.2
上記funcitonにてMotion[2]が代入されるスコアです
function prd.common:get_motion_vector/
実行時、実行者のMotion値で飛ぶベクトルを所定のスコアに代入します…が、前述の通りちゃんと動くかが怪しいです。ちゃんと動くようになりました!
prd.common.mob.result.motion_vector.0
上記のベクトル取得で取得された値のうち、y軸の回転を10000倍して代入されます。
prd.common.mob.result.motion_vector.1
上記のベクトル取得で取得された値のうち、x軸の回転を10000倍して代入されます。
Vetical Move Command
function prd.common:vetical_move/ {“rot”:”角度”,”value”:”速度”}
rotの中に飛ばす角度を、valueの中に飛ばす速度を入力することで、指定した角度へ実行者を指定した速度で飛ばすことができます。(値は上書きされます) 角度の指定方法は“/execute rotated“と同じ書き方です。ワンチャンrotated asもできるかも()
function prd.common:vetical_move_append/ {“rot”:”角度”,”value”:”速度”}
上記のコマンドと同じように動きますが、値が上書きではなく加算されます。
Get Random Command
function prd.common:get_random {“value”:”-21473648..2147483647″}
valueの中に数値(必ず範囲を決めること)を入れて(多分scoreboardと同じ範囲)実行することで4つのそれぞれ違う値の乱数を取得し所定のスコアに代入することができます。
prd.api.random_0
取得した乱数のうち、1番目の物が代入されます
prd.api.random_1
取得した乱数のうち、2番目の物が代入されます
prd.api.random_2
取得した乱数のうち、3番目の物が代入されます
prd.api.random_3
取得した乱数のうち、4番目の物が代入されます
Download Links Viewer
function prd.common:_download_links
functionタグ#prd.common:download_link_functionsに書き込まれたfunctionをすべて実行します。私のデータパックでダウンロードのリンクを表示するために作ったのでこういう名前になってます。functionの名前の通り、実行することでダウンロードのリンク(私の場合埋め込みですが)をtellrawで表示することを目的としています
Key Detect Predicate
しれっとキー検知のpredicateが同梱されてます。
prd.common:key/w
前方向のキーが押されているかをを検知します
prd.common:key/a
左方向のキーが押されているかをを検知します
prd.common:key/s
後ろ方向のキーが押されているかをを検知します
prd.common:key/d
右方向のキーが押されているかをを検知します
prd.common:key/space
ジャンプのキーが押されているかをを検知します
prd.common:key/ctrl
スニークのキーが押されているかをを検知します
Changelog
2024-12-5-内部の変更なしでもライブラリが動くことを確認。ファイル名も変えて置いた
2024-12-03-vetical_moveやget_motion_vectorがチャンク 0 0を読み込んでいないとバグる問題を修正…?
2024-11-22-get_motion_vectorがちゃんと動くように更新。あとpack.pngを追加
2024-11-13-投稿内に機能の説明を追加
2024-11-12-無限にストレージに値が書き込まれる問題を修正
2024-11-11-急遽更新。データパックのDLリンクを表示するfunctionの追加とストレージ変数に導入したことを保存するようにした。
2024-11-10-ページ公開
コメント