提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
7行目: | 7行目: | ||
「net.minecraft.stats.Achievement」は、「net.minecraft.stats.StatBase」のサブクラスで、実績の名称(例えば、「所持品の確認」)や実績ツリー([http://minecraft-ja.gamepedia.com/%E5%AE%9F%E7%B8%BE#.E3.82.A4.E3.83.B3.E3.82.BF.E3.83.BC.E3.83.95.E3.82.A7.E3.83.BC.E3.82.B9 Minecraft Wiki/実績#インターフェース])内の位置などを格納するクラスです。 | 「net.minecraft.stats.Achievement」は、「net.minecraft.stats.StatBase」のサブクラスで、実績の名称(例えば、「所持品の確認」)や実績ツリー([http://minecraft-ja.gamepedia.com/%E5%AE%9F%E7%B8%BE#.E3.82.A4.E3.83.B3.E3.82.BF.E3.83.BC.E3.83.95.E3.82.A7.E3.83.BC.E3.82.B9 Minecraft Wiki/実績#インターフェース])内の位置などを格納するクラスです。 | ||
− | + | Forgeは、ある実績のまとまりを「ページ」として、SwingのCardLayoutのように切り替える機能を追加しています。この機能によって、例えばModごとに(あるいはModの主要な目標ごとに)新しいページを追加することで、一つのページのまとまりが失われるのを防ぐことができるでしょう。 | |
− | + | この「ページ」は、「net.minecraftforge.common.AchievementPage」を使って表現します。「AchievementPage」のコンストラクタの第一引数には、「AchievementPage」の名前を渡します。バニラの「AchievementPage」の名前は、「Minecraft」となっています。[[ローカライズについて|ローカライズ機能]]は用意されていないので、欲しい方は継承等で対応しましょう。可変長引数である第二引数には、この「AchievementPage」に含む「Achievement」のインスタンスを渡します。 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | この「ページ」は、「net.minecraftforge.common. | ||
− | |||
− | |||
− | |||
− | |||
+ | 「Achievement」のインスタンスは、「Achievement#registerStat」を呼び出すことでゲーム内に実績として追加することができます。 | ||
また、「AchievementPage」のインスタンスは、staticメソッド「AchievementPage#registerAchievementPage」を呼び出して登録する必要があります。 | また、「AchievementPage」のインスタンスは、staticメソッド「AchievementPage#registerAchievementPage」を呼び出して登録する必要があります。 | ||
− | プレイヤーに実績を獲得させるときは、「net.minecraft.entity.player.EntityPlayer# | + | プレイヤーに実績を獲得させるときは、「net.minecraft.entity.player.EntityPlayer#addStat」を呼び出します。この関数の第一引数はStatBase型を取り、「Achievement」を渡します。「EntityPlayer#addStat」には、第二引数としてint型の「amount」を取るものもありますが、これは「統計」の操作に関与します。「統計」は「Achievement」と同じく「StatBase」のサブクラスである「net.minecrfat.stats.StatBasic」で表現します。こちらも扱ってみたい方は、[[1.11の統計追加]]を参照するとよいでしょう。 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | バニラの実績は、「net.minecraft.stats.AchievementList」にバニラのAchievementのstaticなインスタンスがあります。 | ||
=== 落下実績の追加 === | === 落下実績の追加 === | ||
39行目: | 22行目: | ||
15mの落下でHard Landing(難着陸)、30mの落下でHigh Flyer(高く飛ぶ者、野心家)を獲得します。 | 15mの落下でHard Landing(難着陸)、30mの落下でHigh Flyer(高く飛ぶ者、野心家)を獲得します。 | ||
− | |||
− | |||
==== ソースコード ==== | ==== ソースコード ==== |