約 5,705,186 件
https://w.atwiki.jp/stgbuilder/pages/488.html
<同封チュートリアル> ①tutorial ヘルプに搭載の標準チュートリアル ヘルプからリファレンスとtutorialへジャンプ可能 ②Spチュートリアル Sp氏により作成されたチュートリアル
https://w.atwiki.jp/tempel/pages/257.html
ゲームは一日一時間!/2日目 チュートリアルミッション ゲームは一日一時間!/2日目 チュートリアルミッションチュートリアルミッションファーストミッション攻略 ポルド基地 チュートリアルミッション フクシアシティ南方向(レーダー画面でSの方向)にポルド基地に通じるリンクポイントがあります。 そこの手前にいるNPC「ポイーン一般兵」に話しかけ、チュートリアルミッションに出発しましょう。 ミッションセンターに飛ばされるので、「ファーストミッション」を選びましょう。 ファーストミッション攻略 ミッションの舞台はベネブ小惑星です。おそらく惑星ベネブを周回する衛星(のひとつ)と思われます。惑星ベネブはもっと先の惑星なので、本来なら敵も強いのですが、このミッションでは弱い敵しか出ないので心配無用です。 ステージ1の最初の1WAVE目、2WAVE目は小さめの敵ロボが数体ずつ登場します。教官が操作方法を教えてくれるので、攻撃しながら操作を覚えましょう。 3WAVE目で少し大きな敵ロボと味方増援が登場します。放っておいても終わりますが、練習と思って攻撃しましょう。3WAVE目を倒すと、次のステージに移動します。 ステージ2では敵味方とも数が多くなります。敵の飛行ロボ(デルビコプター)が残りがちなので、自分で攻撃して倒しましょう。 アクイーア★の手持ち武器「コンパクトガトリング 」は撃ち始めまで(チャージ時間)が長めなのと、マシンガン系の特徴で上手く照準が合わないことがあるので、BD内蔵のメイン武器か手持ちサブ武器を使って倒しましょう。ゼロセイバー★のビットガン改 やアーテメイドAMの内蔵メイン武器なら問題なく倒せると思います。 このミッションでのアニキザデルゴンの攻撃は全然痛くありませんが、ここ以外ではめちゃくちゃ痛いので、次に会ったときは気を付けましょう。 敵ロボをすべて倒すとミッションクリアです。 クリアするとフクシアシティに戻ります。 目の前の「!」のフキダシを出しているNPCに話しかけましょう。行きます!を選ぶとポルド基地に飛ばされます。 ポルド基地 自動で教官のセリフが始まり、ルーキーバッジ*5とダストバスター *1をもらえます。 ここでガレージを使えるようになるので、ガレージに入り、コマンダーをセットします。このうちゼロナイト とゼロセイバーNEXT はLv20、ゼロファイターNEXT はLv25と高いLvがあり、性能も高いので即戦力になります。残り1体は好きなロボをセットしましょう。 コマンドーにセットしたロボにルーキーバッジを装備しましょう。各種性能が上がります。使っても使わなくても初回ログインした日から30日後に消えてなくなるので、出し惜しみしないでちゃんと使いましょう。 ダストバスター はメインで使うロボに装備させたいところですが、カスタマイズしない純正状態だと持たせる余裕がない(デストラクト★とアーテメイド★を選んだ場合はそもそも手持ち武器を持てない)ので、今はまぁ無くてもいいです。あると便利ですが。 教官に2回話しかけると、ミッションセンターに入ってミッションをクリアしてくるよう言われます。 このペースでやってくと30日でとても終わらないなぁ・・・ 次の日へ--->
https://w.atwiki.jp/folclo/pages/76.html
戦闘やクエストで入手したアイテムは、倉庫に送られるの。 倉庫メニューは『道具』『装備』『クエスト』に分かれて保管されてて、一般アイテム、装備アイテム、クエストアイテムが区分されているの。 さっき入手した装備アイテムはメニューの『装備』に入っているわけ。装備アイテムは『装備』ボタンを押して、英雄を選択するだけで、簡単に装備することができるのよ。 英雄アイコンから英雄ごとに直接装備の脱着もできるから、場合に応じて使い分けるといいわね。 せっかくだし、さっき入手したアイテムを装備してみよっか。 倉庫枠には限界があるから、いつでもちゃんと整理して、ドロップアイテムを取りこぼさないようにしなきゃね。
https://w.atwiki.jp/akasatanahama/pages/88.html
アルミニウムモッドの時のブロック作成法はないのですか。 - # 2015-07-04 14 49 30 (7月2日までのこのページのソースコードがみたいです。) - # 2015-07-04 14 51 54 ご意見ありがとうございます。現在修正、もしくは併記予定です。 - Tom Kate 2015-07-05 12 22 45 併記する形で修正いたしました。 - Tom Kate 2015-07-05 13 27 24 とても見やすくなってよかったです。ありがとうございます。 - # 2015-07-05 14 46 28 ブロックの面によってテクスチャを変えるにはどうしたらよいのでしょうか - 名無しさん 2015-07-05 20 20 18 ご意見ありがとうございます。使えるメソッドのgetIcon と registerBlockIconsに追記いたしました。 - Tom Kate 2015-07-06 19 56 48 一時的に削除します。「メタデータを持つブロックの追加」で触れるよう修正する予定です。 - 赤砂蛇凪浜 2015-07-10 21 12 56 遅くなりましたが、修正が完了しました。 - 赤砂蛇凪浜 2015-07-23 12 35 35 申し訳ありません blockAluminium = new AluminiumBlock(Material.rock) の部分でなぜかいつもAluminiumBlockのところにエラーが付きますどうすればよいでしょうか?丸コピペしたソースコードを使ってもそうなります - 名無しさん 2015-09-19 15 28 50 クラッシュレポートをクラウドサービスか何かにおいていただいて、urlを送っていただくことはできますか? - Tom Kate 2015-09-19 15 59 11 クラッシュレポートを見せていただければ、こちらで対応いたします。 - Tom Kate 2015-09-19 15 59 49 net.minecraft.block.Blockを参照 と書かれているのですが、どうやって参照するのですか? - 名無しさん 2015-11-01 17 26 38 AluminiumBlock.javaをeclipse上で開き、...extends Block {...のBlockにカーソルを合わせてF3を押せば、Block.classを表示することができます。Blockにはバニラのブロックを追加している部分があるので、そこを見れば、バニラのブロックがどういう設定をされているかを知ることができます。 - 赤砂蛇凪浜 2015-11-04 19 23 57 ブロックを複数追加し、クリエイティブタブも参考にさせていただき作成できました。ですが、ブロック1、ブロック2と数を増やしていくとタブ内での並び順がバラバラになってしまいます。この場合どうすればよいのでしょうか? - 名無しさん 2016-03-05 20 30 20 forge側の不具合で、既存のワールドのクリエイティブタブにアイテム・ブロックを追加すると順序がばらばらになってしまいます。新しくワールドを作り直すと正しい順で表示されると思います。お試しください。 - 赤砂蛇凪浜 2016-03-06 09 15 21 返信ありがとうございます。ワールドを再生成しましたが直りませんでした。。何か設定し忘れているのでしょうか……。ブロックの並び順はブロックIDで決められているのですよね? - 名無しさん 2016-03-07 19 11 47 はい。ブロックIDはMOD側から指定することができないため、基本的にGameRegistryに登録した順ですね。 - 赤砂蛇凪浜 2016-03-07 20 38 17 多分、そこが自分は理解できてないと思うんです。登録順を並べるにはどうすればいいのでしょう?また、registerBlock(X, "Y");このXとYはどういう値にすればうまく並べれるのでしょうか。今は - 名無しさん 2016-03-07 21 40 26 (○○1, "1")、(○○2, "2")という感じになっています - 名無しさん 2016-03-07 21 41 41 おそらく、GameRegistry.registerBlockを呼び出した順だと思われます。 - 赤砂蛇凪浜 2016-03-08 21 37 25 呼び出し順を変える方法を教えて頂きたいです! - 名無しさん 2016-03-09 23 14 39 コード内で記述する順を変えるだけです。 - 赤砂蛇凪浜 2016-03-10 19 21 04 記述する順番はしっかりならべてるんだけどなぁ・・・。どうしても解決できません。。。メタブロックの追加だとうまく表示できたのでそちらに切り替えることにします。初心者に丁寧に教えていただいてありがとうございました!(涙) - 名無しさん 2016-03-13 20 55 45 基本的にできないことはわかっていることを前提として置いて質問します。何か裏技的な形でブロックid - anatawa12 2016-12-16 01 01 27 続き 裏技的な形でブロックidを指定することはできませんか? - anatawa12 2016-12-16 01 03 10 私達も試したことがないためはっきりとしたことは言えません。すみません。以下は軽く調べてみた結果で、間違っている可能性がありますので、ご了承ください。Forgeのシステムに入り込む形で指定することは可能かもしれませんが、簡単ではないと思います。Forgeのブロック追加処理は、GameRegistryからGameData、FMLControlledNamespacedRegistryを経由して行っているようです。ブロックIDは、GameDataやFMLControlledNamespacedRegistryでItem IDとの対応を見ながら決定しているようです。GameData.getMain()がprotectedに指定されているため、代替メソッドを作ろうとしたらそこで詰まりました。 - 赤砂蛇凪浜 2016-12-17 18 26 34 返信ありがとうございます やっぱり難しいですよね 1.7にはたを1.8のidで追加するmodを作ろうと思ったのですが、、 - anatawa12 2016-12-22 15 51 48 質問です。レッドストーンブロックのようにブロックをレッドストーン動力源にするにはどうすればいいのでしょうか? - 名無しさん 2017-01-07 16 00 06 レッドストーンブロックのクラスであるBlockCompressedPoweredを見るとわかると思いますが、以下のようにすればよいです。canProvidePowerをオーバーライドし、常にtrueを返す。isProvidingWeakPowerをオーバーライドし、常に15を返す。 - 赤砂蛇凪浜 2017-01-10 16 06 40 解決しました!! もうひとつ質問なんですけどブロックが光を透過するようにするにはどうすればいいのでしょう。 - 名無しさん 2017-01-11 20 39 31 こっちも解決しました!! .setLightOpacityというメソッドを使いました。 - 名無しさん 2017-01-14 15 12 24 このブロックを階段にするにはどうすればいいですか? - 名無しさん 2017-02-04 16 05 17 返信が遅くなってしまい申し訳ありません。今後チュートリアルを作成する予定です。また、単純な階段ならば、BlockStairsのインスタンスを生成することで実装できます。以下、そのサンプルです。perInitに追記すれば動作します。stairsAluminium = new BlockStairs(blockAluminium, 0).setBlockName("stairsAluminium").setBlockTextureName("aluminiummod aluminium_block");stairsAluminium.setCreativeTab(CreativeTabs.tabBlock);stairsAluminium.setHarvestLevel("pickaxe", 2);stairsAluminium.useNeighborBrightness = true;GameRegistry.registerBlock(stairsAluminium, "stairsAluminium"); - 赤砂蛇凪浜 2017-02-23 17 46 40
https://w.atwiki.jp/jibunyo/pages/43.html
【タグ:VOCALOID ラマーズP 初音ミク 曲】 作詞:ラマーズP 作曲:ラマーズP 歌唱:初音ミク 歌詞 (fantiaより転載) 初めての街には案内人がいて ビギナーを見定めてパレードに誘う 無償の愛だとか心地よく響いた エスコートな言葉で未来への架け橋 エゴイストが集う賑やかな世界さ 何も知らないまま飛び込むのは恐ろしや 一体どなたなんじゃい 僕らはまだシャイ 御手柔らかコースでお願い ほら落ち着いて一杯 お気に入りのチャイ 摩訶不思議な手品で無限大 弱みを見せたらおしまい 心して歩け冒険者 世界の入り口は振るいかけた地獄さ 乗り越えたら楽園さ 所詮めぐり合わせ運さえ身を任せ 仲間を探すためパレードへ飛び込む ごろ寝してる人や屯してる人も なにもかも自由な治安が蠢いてるんだ 失敗どんなもんなんじゃい 僕らはまだシャイ 陰謀論なんて屈したりしない ふらりと風来 驚天動地も到来 背中合わせ見ぬふりで大問題 様々な種族が喚き 魅力な文化に惹かれて 築き上げた街は今も名を響かせる それもまた人生さ エゴイストが集う賑やかな世界さ 溶け込んだこの心 今宵もまた導いて 聞いて教えて気さくに絡むのさ 一体どなたなんじゃい 僕らはまだシャイ 御手柔らかコースでお願い ほら落ち着いて一杯 お気に入りのチャイ 摩訶不思議な手品で無限大 弱みを見せたらおしまい 心して歩け冒険者 世界の入り口は振るいかけた地獄さ 乗り越えたら楽園さ コメント 名前 コメント
https://w.atwiki.jp/vipdelol/pages/246.html
https://w.atwiki.jp/kusaanko/pages/20.html
このページはCustomFoodsを読んでいることを前提に解説していきます。 特殊設定はすべてJavaScriptで書きます。これはプログラムというものです。プログラムがわからない場合は初級編から徐々に理解していきましょう。 CraftBukkit/Spigotプラグインを作っている方なら読む必要はあまりないと思います。 全てを読むには少し根気が必要です。なぜなら、このページにはあまり画像がないからです。 素早く理解するにはJavaというプログラムを少し理解しておくといいでしょう。 目次 + ... 初級編 応用編 よく使うクラスの解説 初級編 目次 + ... はじめに Objectの利用 変数の利用 プレイヤーにメッセージを送信してみる プレイヤーにポーション効果を付与してみる ランダムな数を使おう if文を使ってみよう 繰り返し文を使ってみよう ブロックをクリックした時にそのブロックの情報を得よう まず、名前.jsで設定したファイルのサンプルを見てみましょう。 ID="BREAD"; name="サンプルフード"; lore="サンプルのためのアイテム。,§c色も変えれる。"; hunger=2; saturation_hunger=1; action="1"; こうなっています。 さて、プレイヤーがクリックしたかつactionが一致した際に呼ばれるイベントを紹介します。 これをjsに追加することでイベントの追加ができます。 eat=function(player,block,event) { ここにプログラム } さて、これだけでは右クリックしても何も起こりません。 試しに「食べる」という動作を書いてみましょう。 eat=function(player,block,event) { eating(player); } これで「食べる」という動作ができます。 ちなみに初期状態(この文を書かない)ではこれが設定してありません。 functionとは、関数というものを作るときのお決まり文です。関数の説明は割愛。 ちなみにこの{}内では最初のカッコにあるplayerとblockという変数が利用できます。 変数とは、PCのメモリーにデータを一時的に保存しておくものです。 ちなみにこのカッコ内には引数とよばれるものが入っています。 よく出てくるので覚えておきましょう。 それでは「eating(player);」の解説をします。 実は自分で書いていないだけですでに function eating(player) { if(player.getGameMode()!=gm_survival player.getGameMode()!=gm_adventure) {return;} player.getItemInHand().setAmount(player.getItemInHand().getAmount()-1); player.setSaturation(player.getSaturation()+saturation_hunger); if(player.getFoodLevel() player.getSaturation()) {player.setSaturation(player.getFoodLevel());} if(player.getFoodLevel() 20) {player.setFoodLevel(player.getFoodLevel()+hunger);}} } という関数が追加されています。 引数にはplayerが設定してあります。 さて、おそらく全く理解できないと思います。処理をすべて日本語に変えてみましょう。 もし、プレイヤーがサバイバルでもアドベンチャーでもなかったら、この処理を終了する。 (この行以降はゲームモードがサバイバルかアドベンチャーの時にのみ実行される。) プレイヤーの今持っているアイテムを1つ減らす。 プレイヤーの隠し満腹度を現在の隠し満腹度+このアイテムの隠し満腹度に設定。 もし、プレイヤーの満腹度より隠し満腹度が多ければ、隠し満腹度を満腹度と同じに設定。 もし、プレイヤーの満腹度が20以下だったら、プレイヤーの満腹度を現在の満腹度+このアイテムの満腹度に設定。 となっています。 初級チュートリアルの前に さて、いよいよプログラミングの開始です。 と、その前にサンプルプログラムを見てもらいましょう。 ID="BREAD"; name="サンプルフード"; lore="サンプルのためのアイテム。,§c色も変えれる。"; hunger=2; saturation_hunger=1; action="1"; eat=function(player,block,event) { } eating(player);は書かなくても処理は実行出来るので、書くかどうかは自由にしてください。 また、これから紹介するプログラムは eat=function(player,block,event) { } この{}の中に書いてください。また、プログラムのルールとして 一文の中で改行しない。 ea tin g(pla yer);のように途中で空白を入れない。 eating( player ); のように、一文以外であれば改行はしてよい。 eat=function(player,block) {eating(player);} と、一行で書いてもよい。 FunctionやFUNCTIONのように、大文字小文字を変えないこと。 文の最後に;をつけ忘れないこと。{}には不要。 Objectの利用 文字列は「String」 数字は「int」 小数点を含む数字は「double」 といった感じにObjectというものが設定してあります。 それぞれ、決まった書き方があります。 文字列であれば"で囲む、 数字であれば小数点を使わない、 小数点を含む数字であれば最後にdをつけるなど いろいろあります。 では、playerはなんのObject何でしょうか? 正解は「越後製菓」ではなく「Player」です。 実はPlayerというのはJavaScriptには存在しません。では、Playerとはいったい何者なんでしょうか。 実はこれ、自作Object何です。 そうです。Objectだって自作できてしまうんです。 ですがJavaScriptに元から入っていないObjectには"で囲んだりするだけでは生成されません。 そこでnew Test()とすることでTestというObjectが作れます。 この生成したObjectは、この後紹介する変数に保存することができます。 変数の利用 さて、playerやblockは変数と紹介しましたが、変数は自分で作ることもできます。 なにか一時的に保存しておきたいものがあればこれを利用すればいいでしょう。 var name; これでnameという変数ができます。 ちなみに初期値というものが設定でき、 var name = "初期値"; こうすることで、初期値というStringが入ったnameが出来上がりました。 それ以外にも var test = new Test(); とすれば、testに新品のTestオブジェクトの入った変数ができました。 また、変数はそれを書いた行以降、同じ{}内であればどこからでも利用できます。ただし、 決して同じ名前の変数を使わないこと。 もちろん、とある変数の使えないところ(var nameとは違う{}の中など)であれば同じ名前でもOKです。 そして、この変数を使うには name と書くだけです。これでnameが"初期値"に置き換わったと思ってください。 ちなみにeat=function(player,block) のplayerとblockはここが実行される時にそれぞれプラグイン側で生成されて、その変数がここにコピーされます。 そしてプラグイン側にあったものと同じものが使える、ということです。 プレイヤーにメッセージを送信してみる player.sendMessage("食べ物を食べました。"); こうすればクリック時にプレイヤーにチャットが出力されます。また、 "食べ物"+"を"+"食べました。" のように、+で""を結合して書くこともできます。 プレイヤーにポーション効果を付与してみる これこそCustomFoodsを入れた理由ではないでしょうか。 食べたときにいろんなポーション効果が付与される。なんて食べ物を追加したかったのでは? それでは伝授しましょう。プラグインを作ったことのある方も必ず見て見てください。 player.addPotionEffect(new org.bukkit.potion.PotionEffect(org.bukkit.potion.PotionEffectType.HUNGER, 10*20, 20)); これでプレイヤーに空腹を10秒間20レベルで実行できます。 なんだか急に難しくなったような気がしますか?では、解説を見てみましょう。 player.addPotionEffect(); ここでプレイヤーにポーションを追加します。ですがこれだけでは何のポーションか、時間やレベルなどが設定されていません。 なのでその情報を得るため、addPotionEffectに引数を渡してあげる必要があります。 new org.bukkit.potion.PotionEffect(org.bukkit.potion.PotionEffectType.HUNGER, 10*20, 20) これがポーションデータです。最初のnew org.bukkit.potion.PotionEffectでポーションデータを生成します。 もちろんこの子にも引数を渡します。 org.bukkit.potion.PotionEffectType.HUNGER, 10*20, 20 org.bukkit.potion.PotionEffectTypeにはポーションIDのようなものが入っています。のようなものなので代わりに数字を入力したりは禁止です。 ちなみに.でそのObject内の変数などが使えます。今回は空腹なのでHUNGERですね。今後紹介するPotionEffectTypeに全てのポーションを記入するのでそれに応じてHUNGERの部分を変更してください。 10*20 ここでは、時間の設定です。マイクラのTick数を設定するので10秒*20Tickで10秒になります。 *は乗数です。コンピューターはこういう計算が得意です。嫌がることはありません。 11-1とすれば10になります。 20 ここでは普通にレベル指定です。 ここでプラグイン経験のある方にお知らせ。 new PotionEffectのようにインポートした状態で記入はできません。なぜならインポートがされていないからです。インポートを使いたいなら importPackage(org.bukkit.potion.PotionEffect); と記入してください。これがjava.script.ScriptEngineの特徴です。 ランダムな数を使おう ランダムな数を使ってたまに毒になるなんてことをやりたくないですか? もちろん、CustomFoodsならできます。 今回はランダムな数を作るだけなのでそのほかの物を見たり応用編を見たりして用途を考えてみてください。 Math.floor( Math.random() * 5 ) ; これで、0-4の数字がランダムに作られます。 var rand = Math.floor( Math.random() * 5 ) ; このようにして変数に保存しておくと便利かも。 if文を使ってみよう if文とは、条件文とも言い、もし~ならば○○を実行といった感じにできます。 CustomFoodsでもプログラムでもよく使うので覚えておきましょう。 if(条件) {プログラム} このように書きます。また、 if(条件) { プログラム } でもOKです。 さて、条件にはbooleanというtrueとfalseの値を入れることのできるObjectを使います。 trueならプログラムを実行、falseならプログラムはスルーという感じです。 var IF = true; if(IF) {プログラム} こうすることでif文にはtrueがあるので、プログラムは実行されます。 ですがこれではifを使う必要はありません。そこで、あるObjectとあるObjectを比較してみます。 var IF1 = true; var IF2 = false; if(IF1==IF2) {プログラム} このように書けば、IF1とIF2を比較し、同じであればプログラムを実行することができます。 では、プログラムは実行されると思いますか? IF1とIF2は違うのでプログラムは実行されません。 では、==とはどういう意味でしょうか? これは、左の値、右の値が同じだったらtrue、違うのであればfalseになります。 他にもあるのでリストを見てみましょう。 文字 trueになる条件 使い方 == 左の値と右の値が同じ Object==Object != 左の値と右の値が違う Object!=Object 左の値が右の値より大きい 数字(小数点可) 数字(小数点可) 左の値が右の値より小さい 数字(小数点可) 数字(小数点可) = 左の値が右の値より大きいか同じ 数字(小数点可) =数字(小数点可) = 左の値が右の値より小さいか同じ 数字(小数点可) =数字(小数点可) こうなっています。 ここで問題。 if(1 0) { if(5 10) { } } このように書くのは面倒じゃないですか?ここで登場するのが 。 if(1 0 5 10) { } こうすれば、if文の中のすべての条件がtrueだったら実行になります。 ほかにも if(1 0||5 10) { } このように||があります。これは、このうちのどれかがtrueならプログラムが実行されます。 また、 if(1 0||5 10 3 5||8 =4) { } このように を使えば、 より左側の条件どれかがtrue、右側もtrueだったら実行となります。 繰り返し文を使ってみよう 繰り返し文は特定のプログラムを繰り返し実行できる物です。 繰り返し分には2つあり、 while for の二つあります。 それぞれ便利なことがあるので見ていきましょう。 while文の特徴 メリット 短く出来る。 デメリット 何回繰り返すというのが作りにくい for文の特徴 メリット 何回繰り返すというのが簡単にできる。 デメリット whileより長くなってしまう。 それぞれ使い方を見てみましょう。 while(条件) {} for(変数初期化;条件;変数の処理) {} whileは条件にifと同じように書きます。簡単ですね。 難しいのはfor文です。少しずつ理解していきましょう。 使用例はこちら for(var i = 0;i 5;i++) {} このように、最初に関数、次にifと同じ条件、ループが終わるたびに行う処理となります。 ちなみにこれは{}内を5回繰り返すものになります。 ブロックをクリックした時にそのブロックの情報を得よう クリックしたブロックを得るにはactionを action="2,4"; のように2か4を設定してください。 そうすると正しくblock変数にクリックしたブロックの情報を得ることができます。 試しにプレイヤーに情報を送信してみます。 player.sendMessage(block.toString()); これで情報が送信されます。Blockオブジェクトには他にも便利なものがあるのでよく使うクラスの解説を見てください。 応用編 目次 + ... はじめに 毒リンゴ 骨付きビーフ 3x3x3採掘ツルハシ はじめに これから紹介するプログラムはあまり紹介をしません。自分で解読してください。 毒リンゴ 食べるとたまに毒にかかる毒リンゴを作ります。 ID="SLIME_BALL"; name="§f毒りんご"; lore="青森産の味がする"; hunger=3; saturation_hunger=1; eat=function(player,block) { var rand = Math.floor( Math.random() * 5 ) ; if(rand==2) { player.sendMessage("毒にかかった!"); player.addPotionEffect(new org.bukkit.potion.PotionEffect(org.bukkit.potion.PotionEffectType.POISON, 3*20, 2)); } eating(player); } 骨付きビーフ 食べると骨が帰ってくるビーフを作ります。 ID="COOKED_BEEF"; name="§f骨付きビーフ"; lore="食べると骨が帰ってくる。"; hunger=4; saturation_hunger=3; eat=function(player,block) { eating(player); player.getInventory().addItem(new org.bukkit.inventory.ItemStack(org.bukkit.Material.BONE,1)); } 3x3x3採掘ツルハシ 引数のeventを利用した一例です。 左クリックすると、クリックしたブロックを中心に3x3x3で採掘。 右クリックすると、クリックしたブロックのみ採掘。 耐久力を減らすだけではツールが壊れないので耐久力が特定の数より大きいとアイテムをなくすようにしてあります。 ID="DIAMOND_PICKAXE"; name="3x3x3採掘ツルハシ"; action="2,4"; eat=function(player,block,event){ if(event.getAction()==org.bukkit.event.block.Action.LEFT_CLICK_BLOCK) { for(var y = block.getY()+1;y block.getY()-2;y--) { for(var x = block.getX()+1;x block.getX()-2;x--) { for(var z = block.getZ()+1;z block.getZ()-2;z--) { if(player.getGameMode()!=gm_creative block.getWorld().getBlockAt(x,y,z).getType()!=org.bukkit.Material.BEDROCK block.getWorld().getBlockAt(x,y,z).getType()!=org.bukkit.Material.AIR) player.getItemInHand().setDurability(player.getItemInHand().getDurability()+1); if(block.getWorld().getBlockAt(x,y,z).getType()!=org.bukkit.Material.BEDROCK) block.getWorld().getBlockAt(x,y,z).breakNaturally(player.getItemInHand()); } } } } if(event.getAction()==org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK) { if(player.getGameMode()!=gm_creative block.getType()!=org.bukkit.Material.BEDROCK block.getType()!=org.bukkit.Material.AIR) {player.getItemInHand().setDurability(player.getItemInHand().getDurability()+1);} if(block.getType()!=org.bukkit.Material.BEDROCK) {block.breakNaturally(player.getItemInHand());} } if(player.getItemInHand().getType().getMaxDurability() player.getItemInHand().getDurability()) player.getItemInHand().setAmount(player.getItemInHand().getAmount()-1); } よく使うクラスの解説 目次 + ... PotionEffect PotionEffectType World Material Block Player ItemStack PotionEffect new org.bukkit.potion.PotionEffect(PotionEffectType) new org.bukkit.potion.PotionEffect(PotionEffectType,ParticleDraw) 1つめは、初級編で紹介した通りです。 2つ目はParticleDrawにtrueもしくはfalseを入れることでパーティクルの表示/非表示を決められます。 true 表示 false 非表示 PotionEffectType org.bukkit.potion.PotionEffectType.値 値のところにHUNGERなどを入れてください。 値 ID 和名 SPEED 1 移動速度上昇 SLOW 2 移動速度低下 FAST_DIGGING 3 採掘速度上昇 SLOW_DIGGING 4 採掘速度低下 INCREASE_DAMAGE 5 攻撃力上昇 HEAL 6 即時回復 HARM 7 即時ダメージ JUMP 8 跳躍力上昇 CONFUSION 9 吐き気 REGENERATION 10 再生能力 DAMAGE_RESISTANCE 11 耐性 FIRE_RESISTANCE 12 火炎耐性 WATER_BREATHING 13 水中呼吸 INVISIBILITY 14 透明化 BLINDNESS 15 盲目 NIGHT_VISION 16 暗視 HUNGER 17 空腹 WEAKNESS 18 弱体化 POISON 19 毒 WITHER 20 ウィザー HEALTH_BOOST 21 体力増強 ABSORPTION 22 衝撃吸収 SATURATION 23 満腹度回復 GLOWING 24 発光 LEVITATION 25 浮遊 LUCK 26 幸運 UNLUCK 27 不運 World org.bukkit.World Worldはnewで作れないのでPlayer.getWorld()やBlock.getWorld()などでWorldを取得しましょう。 これより下はworld.○○の○○の部分を書いていきます。 getBlockAt(X,Y,Z); X,Y,Zの座標のブロックを取得。 戻り値にBlockが設定してある。 getBlockAt(Location); Locationにはplayer.getLocation()などで座標を入れる。 dropItem(Location,ItemStack) Locationにはplayer.getLocation()など、ItemStackにはドロップアイテムの情報を。 spawnEntity(Location,EntityType); 座標にEntityTypeのエンティティを召喚。 Material org.bukkit.Material この後ろに.○○を書く。 アイテム、ブロックたちの一覧はこちら Block org.bukkit.block.Block この後ろに.○○を書く。 getType() そのBlockのMaterialを返す。 getWorld() ブロックの置いてあるワールドを取得 Player org.bukkit.entity.Player これも.○○とかく。newは使えない getInventory() プレイヤーのInventoryを取得。 addPotionEffect(PotionEffect); プレイヤーにポーション効果を付与。 removePotionEffect(org.bukkit.potion.PotionEffectType); プレイヤーから指定したポーション効果を削除。 sendMessage(Message); Messageには""と書いたり、""の変数を使ったりする。 getDisplayName() プレイヤーの表示名を取得。 isSneaking() プレイヤーがスニークしているかどうかを取得 true スニークしている false スニークしていない playSound(Location,Sound,float1,float2) Locationの場所で音を再生。日本語にすると、座標、音、ボリューム、ピッチになる。 Sound stopSound(Sound); Soundに設定した音を止める。 giveExp(lv) lvに与えたい量の整数を入れる。 getLevel() プレイヤーのレベルを取得。 getFoodLevel() プレイヤーの満腹度を取得。最大20. setFoodLevel() プレイヤーの満腹度を設定。最大20。 getSaturation() プレイヤーの隠し満腹度を取得。 setSaturation() プレイヤーの隠し満腹度をセット。 spawnParticle(Particle,X,Y,Z,半径,数) spawnParticle(Particle,Location,半径,数) XYZまたはLocationの場所にParticleを指定した半径に指定した数発生させる。 ItemStack org.bukkit.inventory.ItemStack この後ろに.○○を書く。newが使える。 new org.bukkit.inventory.ItemStack(Material) new org.bukkit.inventory.ItemStack(Material,数) ItemStackを生成する。Material
https://w.atwiki.jp/folclo/pages/80.html
英雄たちのことが気になるー?指揮官としては、まずまずの心がけね。常に皆に目を配るのは大切なことよ。 皆により良い働きをしてもらうために、『強化』について説明するね。『強化』をクリックしてー。 英雄を一度魔力の結晶の状態に戻して、その力を別の英雄に与えることができるの。強化画面では、上部のタブで強化の種類を選択する事ができるわ。今は『能力強化』の画面になってるわね。 『能力強化』では、英雄を素材として、別の英雄の能力値を上昇させることができるの。素材になった英雄は削除されるわ。 『スキル習得』では、英雄の所持しているスキルを、別の英雄に覚えさせることができるの。素材になった英雄は削除されるわ。スキルは最大4つまで習得できるから。 『スキル強化』では、英雄を素材として、スキルのレベルを上昇させることができるの。素材になった英雄は削除されるわ。 強化したいスキルと同じスキルを所持している英雄を素材にすると、成功率が高くなるので覚えておいてね。 『英雄強化』では、英雄のランクを上昇させることができるわ。ランクは英雄の基礎能力値や、レベルアップ時の成長率に関連しているの。 ただし、素材となる英雄は、強化したい英雄と同じランクである必要があるの。 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (英雄強化.png) せっかくだし、能力強化を体験してみよー。『一般合成』をクリックして、『はい』を選択してね。 能力強化を行うと英雄は強く成長するけど、能力強化には回数制限があるの。強化回数と強化上限は英雄カードに記載されているわ。 強化上限に達すると、それ以上の能力強化ができなくなるから、能力強化を行う時には注意が必要ね。
https://w.atwiki.jp/genlip/pages/48.html
はじめに 見出しについているエンピツマークをクリックすると、その見出しの中のみの編集ができます。 画面右上の「編集する」ボタンを押すことでページ全体の編集ができます。 編集のチュートリアルはhttps //w.atwiki.jp/guide/pages/226.htmlが詳しいです。 ここではこのwikiでよく使いそうなものをまとめていきます。 おしらせ 素材画像ページを作りました。 基本 平文 何の記号も使わず、ふつうに文章をかきこめば、このような平文になります。 見出し 行の最初に*。*の数に応じて階層構造。 *大見出し **中見出し ***小見出し 箇条書き 行の最初に-。-の数に応じて階層構造。 -技 -体 -心 --小鈴 と入力すると下記のようになります。 技 体 心小鈴 数字つき箇条書き 行の最初に+。+の数に応じて階層構造。 +技 +体 +心 ++小鈴 と入力すると下記のようになります。 技 体 心小鈴 記号無視 行の最初に半角スペース。そうすると、あらゆる記号をコマンドだと解釈せずにそのまま書き込まれます いままでの*やら-の記号の説明はこうやって作っていたんですね image(){どんなコマンドも無効に} コメントアウト 編集画面にメモ書きを残したいけど、記事として表に出てほしくない。 そんなときは行の最初に//を置くと、そのあとメモ書きしても記事に反映されなくなります。 記述例: //↓ここわかんないから誰か編集して~ (記事内容) //↑ここわかんないから誰か編集して~ 太字・取り消し線・下線・文字カラー 太字にしたい文章をドラッグし、編集画面上の「B太字」ボタンを押すのが楽です。 たとえば あああああいいいいうううう の いいいい だけをドラッグして太字ボタンを押すと あああああ bold(){いいいい}うううう という命令が付記され、結果として あああああいいいいうううう と表示されます。 取り消し線も下線も同じ用にやりましょう。文字色もカラーボタンで行けます。 リンク wiki内の別ページへのリンク コード [[ダメアタ]] 結果 ダメアタ 解説 wikiのページ名を[[]]で包むと、そこへのリンクになります。 ただし、ときどき「階層の中にあるページ」があることに気をつけてください。 たとえば↓のページの名前は「チルノ」だと思いがちですが、 真のページ名は「キャラクター解説/チルノ」です。青字のところをチェックしてください。 表記とリンク先を変えたい コード [[最強妖精 キャラクター解説/チルノ]] 結果 最強妖精 解説 A Bと入力すると、実際のリンク先はBになりますが、表記がAとなります。 別ウィンドウで開かせたい コード [[最強妖精 キャラクター解説/チルノ]] 結果 最強妖精 解説 を2回入力すると、別タブや別ウィンドウで開くリンクになります。 wikiの外のサイトを開かせたい コード [[上海アリス https //www16.big.or.jp/~zun/]] 結果 上海アリス 解説 ページ名のかわりにURLを入力すればそのURLへのリンクになります。 リンクにもなってる画像を作りたい 一般的コード image(画像ファイル名,linkpage=リンク先ページ名,page=画像が貼ってあるページ名,height数字px,inline) サンプルコード image(thumb-1001001.png,linkpage=キャラクター解説/博麗霊夢,page=キャラクター解説,height60px,inline) サンプル結果 解説 ちょっと難しいので、一般的コードをそのまま貼り付けて編集してください。 画像貼り付け 新しく画像をアップロードして貼る 編集画面の上のほうに、このようなメニューがあるはずです。 「画像ボタン」を押し、「画像をアップロードして挿入」をクリック。 そうすると下のような画面が出ます。 ここに画像を投稿します。筆者がよくやる方法は下記の3つ。 ・スマホで撮った画像を、そのままスマホでアップロード (往々にして1MBサイズ制限に引っかかる) ・スマホで撮った画像を、Xで自分にDMする。Xの自分のDM欄からドラッグ&ドロップ ・パソコン画面でWindows+Shift+Sを押し、望みの画面を切り取り、Xで自分へのDMに貼り付け。投稿されたものをドラッグ&ドロップ さて、アップロードすると、記事の中にこのようなコードが生まれます。 image(あああああ.png) 画像がデカすぎるだろ…って思ったら、サイズを調整してください。 image(あああああ.png, width300px) こんなふうに『,width300px』と書き加えると、幅が300ピクセルになります。 ほかにも色んなオプションが書き加えられます。 オプションコード 効果 ,width300px 画像の幅が300ピクセルになる ,height300px 画像の高さが300ピクセルになる ,inline 画像の前後がかってに改行されなくなる ,linkpage=ページ名 特定ページへのリンクにもなる すでにどこかに貼られた画像を貼る 一般コード image(ファイル名, page=そのファイルが貼ってあるページ, height画像高さpx,inline) サンプルコード image(石1.png, page=sozai, height30px,inline) サンプルコード結果 解説 一般コードの『ファイル名』『そのファイルが貼ってあるページ』『画像高さ』を書き換えて使ってください。 サンプルコードでは、sozaiページにある「石1.png」を貼り付けています。 「画像がアップされたページ = いま編集中のページ」なら、page= のオプションを省略することができます。 よくつかうので、筆者はこのコードを辞書登録しちゃったりしてます
https://w.atwiki.jp/besiegejpwiki/pages/115.html
初めてのレベル制作 このページではレベルエディターの初歩の初歩をレクチャーしていきます。 これまでレベルを作ったことがない、レベルの「レ」の字もわからん!って人向け。 簡単なことから始めれば難しくありません。 ここではZONE1を再現して、基本的なレベル制作について学んでみましょう。 解説項目:オブジェクトの配置/クリア条件の設定(初歩の初歩のロジック) STEP1 レベルの構成要素 レベルを作っていく際、材料となるものは大きく分けて2つあります。 ひとつは物理的な構成要素である「オブジェクト」。 家やキューブ、NPCなど、多様な形状があり、 ステージに配置して組み合わせることでレベルの形を作っていきます。 もう一つは、プログラム的な構成要素である「ロジック」。 起動条件である「トリガー」に、実行される動作の「イベント」を紐づけていくことで、ステージにギミックを仕込んだり、勝利条件を設定することができます。 STEP2 オブジェクトの配置 オブジェクトの配置は、レベルエディタウインドウのツールを用いて行います。とりあえずウインドウの一番最初にある家を置いてみましょう。サムネイルをクリックして家を選択、ステージ上の地面をクリックすると家が配置されます。 配置したオブジェクトはツールバーの移動ツールを使って自由に移動させることができます。矢印のアイコンをクリックしてから家をクリック。矢印が出現したはずです。この矢印をドラッグすることで、上下左右に移動させることができます また、角度変更ツールを用いれば角度を、拡大縮小ツールで大きさを変更できます。 上記3ツールはグリッドオプションの数値を変更することで、ステップ量を変更できます。等間隔の配置などで活用してください。 これらのオブジェクトの操作は設定ツールを用いて呼び出すオプション画面で、数値入力することも可能です。設定ツールに切り替えてクリックしてみましょう。 TRANSFORMの入力欄に数値を打ち込むことで、座標と角度、拡大縮小率の変更が可能です。※XYZなどの座標はステージ基準。シビアな位置合わせには数値入力を用いるとよいでしょう STEP3 材料 さて、今回はZONE1の再現を行っていきます。 よく観察してみるとZONE1はレベルエディタに実装されているオブジェクトのみで構成されています。並べてみるとこんな感じ。 これを先ほどのツール類を用いて並べていきます。 ざっくり再現ですが、奥の木は元のサイズより少し大きく、下草は拡大縮小で長さの違いを出しています。わりとそれっぽい?どう?いいんじゃないかな。 STEP4 クリア条件の設定(ロジックの初歩) さて、見た目を再現できたところで、ゲーム的な部分を作っていきましょう。 zone1は家を壊すことでクリアになるステージですが、現段階では家を壊したところで何も起きません。 家を壊した=ステージクリアという設定をしてやらなければいけないわけですね。 この部分を設定するのが「ロジック」になります。 冒頭でプログラム的なもの、と聞いて「難しそう」と思ったかもしれませんが、簡単なものであれば数クリックで組めてしまう程度のものです。(複雑なものの場合は頭がこんがらがりますが…) ロジックはオブジェクトに設定することで構築していきます。 まずはロジックのウインドウを開いてみましょう。設定ツールで配置したオブジェクトを選択し、ロジックのタブに切り替えます。 ADD EVENT TRIGGERと表示されている部分をクリックしてみましょう。 「トリガー」項目が一つ追加されたはずです。 さらに続けてADD EVENTをクリックしてみましょう。 今度は「イベント」項目が追加されたはずです。 「トリガー」はロジックの起動条件で、 「イベント」は実行内容になります。 今この設定ウインドウのトリガーはON LEVELSTERTになっていますが、これは「レベルが開始されたときにイベントを実行する」トリガーです。 イベントの方のINCREASE PROGRESSはといいますと、こちらは達成ゲージを進めるイベントになります。 つまりこの画面のロジックは、「レベルが開始されたとき、10パーセントゲージを進める」といったものになっています。 この状態でシミュレーションを開始すると、ロジックの通り、レベルが始まった瞬間に、画面下部のprogressゲージが10パーセント増えます。おめでとうございます。何かを達成しました。 イベントとトリガーは何種類も用意されており、これらを組み合わせることで複雑なレベルの構築も可能です。詳しくはロジックの項目を参照してください。 少し脱線しましたがzone1の再現に戻りましょう。 zone1は「家を破壊するとクリア」になるステージです。 これをロジックで再現する場合、トリガーは「家の破壊」、イベントは「クリア」になります。 「早速ロジックウインドウで設定を行うことにします。「家の破壊」を検知できるトリガーは「ON DESTROY」です。トリガー欄の矢印をクリックしてトリガーを切り替えましょう。続けて「クリア」のイベントですが、こちらはvictoryの項目を選択します。 これだけで「家を破壊するとクリア」というロジックは完成しました 試しに再生して、家をデストロイしてみましょう ちゃんとデストロイしたらビクトリーしていますね。 問題なく動作しています。 STEP4 レベルの基本設定 これでオブジェクトの配置とロジックの設定は完了しました。 完成!…としてもよいのですが、ベースの地形が違うのでもう少し設定してみましょう。 レベルの地形はレベルエディターウインドウの右上の歯車アイコンをクリックして、 オプション画面で設定することができます。 元々配置されている地形や、明るさなどが違うので、作ったレベルに合う地形を選んであげましょう。 また、この画面では使用するブロックに制限をかけた縛りプレイを設定したり、建造を禁止して、あらかじめ用意したマシンを使用する設定や、対戦用にラベルを表示しなくなる設定などがあります なにはともあれ地形をIPSILONと同じ虚無っぽいものにして完成です ほんものはどっちでしょう おわりに 今回はロジックについては初歩の初歩までしか説明していません。 例えばONENTERを使って踏むとゲージが増える床を作ったり ONKEYPRESSを使ってキー入力でリスポーンさせたりすることができます またイベントのTRANSFORMを使用するとロジックによるオブジェクトの移動が可能になるので 動きのあるギミックのレベルも作ることが可能です マシンの制作とは毛色が違うので戸惑うかもしれませんが 様々に組み合わせてオリジナルのステージを作ってみましょう サンプルロジック集 今回のチュートリアルで制作したレベル