-
Notifications
You must be signed in to change notification settings - Fork 0
cooltime
rukky321 edited this page May 24, 2025
·
4 revisions
アイテム使用時に使用した時間とCTを記録する
(現在の時間) >= (使用した時間) + (CT) となっていれば CTが終わっていると判定できる
- アイテムの使用時に
system:cooltime/general/check_ct_< mainhand / slot >を実行してクールタイムが終了しているかを確認する - 返り値が1であればクールタイムが終了しているので処理を行う
- 返り値が0であればまだクールタイムが終了していないのでそれを表示する
- アイテムの使用後に
system:cooltime/general/set_ct_< mainhand / slot >を実行してクールタイムを再設定する
check.mcfunction
# メインハンドのCTが終わってるか調べる
execute store result score $check main run function system:cooltime/general/check_ct_mainhand
# CTが終わっていればスキル実行
execuite if score $check main matches 1 run function <スキル関数>
# CTが終わっていなければそれを表示
execuite unless score $check main matches 1 run function <CT中表示関数>
skill.mcfunction (スキル関数)
# スキルごとの処理
function nanka:skill
# スキルによるCTを計算してストレージに入れる
execute store result storage example: tmp.cooltime int 1 run function ct:keisan
# CTを設定する
function system:cooltime/general/set_ct_mainhand with storage example: tmpデータ構造や関係する関数を書いてく
| スコアホルダー | オブジェクト | 値の説明 | 備考 |
|---|---|---|---|
| $ct_timer | main | ctカウント用のタイマー | 0~ 999,999,999で1tickごとに増加 |
minecraft:custom_data.cpvp.cooltime以下に保存しています
以下、アイテムタグ一覧
| タグ名 | 値の範囲 | 値の説明 | 備考 |
|---|---|---|---|
| time_use | int型 0~2147483647 | アイテムを使用したtick | タイマースコアの値が入る |
| cooltime | int型 0~2147483647 | そのアイテムのcooltime(tick) | スキル効果などでcooltimeを減らす場合はここをいじってる |
アイテム作ったりする中で使う可能性があると思う関数(実装予定含む)の説明を書いて行きます
system/cooltime/general/(関数名)で呼び出す
| 関数名(パス) | 説明 | 引数 | 対象 | 返り値 | 詳細 |
|---|---|---|---|---|---|
| set_ct_mainhand | メインハンドにCTを設定 | int cooltime クールタイム | 実行者 | 失敗 : 0 成功 : 1 |
なし |
| set_ct_by_slot | 特定のスロットアイテムにCTを設定 | マクロ int slot アイテムスロット int cooltime クールタイム |
実行者 | 失敗 : 0 成功 : 1 |
なし |
| 関数名(パス) | 説明 | 引数 | 対象 | 返り値 | 詳細 |
|---|---|---|---|---|---|
| get_ct_mainhand | メインハンドの残りCT取得 | なし | 実行者 | 失敗 : 0 成功 : 残りCT(tick) |
CTの残り時間をtickで取得 |
| get_ct_by_slot | 特定のスロットの残りCT取得 | マクロ int slot 取得するスロット |
実行者 | 失敗 : 0 成功 : 残りCT(tick) |
CTの残り時間をtickで取得 |
| check_ct_mainhand | メインハンドのCTチェック | なし | 実行者 | 失敗 : 0 成功 : 1 |
CTが終わったかを取得 |
| check_ct_by_slot | 特定のスロットCTチェック | マクロ int slot 取得するスロット |
実行者 | 失敗 : 0 成功 : 1 |
CTが終わったかを取得 |
| 関数名(パス) | 説明 | 引数 | 対象 | 詳細 |
|---|---|---|---|---|
| reset_all | 全CTリセット | なし | 実行者 | 全てのスロットに対して実行するのでそれなりに重い |
| reset_mainhand | メインハンドのCTリセット | なし | 実行者 | なし |
| reset_slot | 特定のスロットのアイテムのCTリセット | マクロ int slot 取得するスロット |
実行者 | なし |
| reduce_slot | 特定のスロットのアイテムのCTを減らす | マクロ int slot 対象スロット int time 減らす時間(tick) |
実行者 | 残り時間以上の値を入れても問題なく動く |
要望あるなら言ってくれれば追加します