約 1,066,976 件
https://w.atwiki.jp/kasukomod/pages/15.html
このページの情報を利用することで、ハッシュ衝突で実質400個も使えなかったMODナンバーを30倍以上に増やすことができます。 NxxxXXXX_Xxx 情報を応用して問題の少ない文字列に変更していきましょう。 レポート1 _の文字はカテゴリ識別ではなく、アイテム番号の一部です 従来の8桁_3桁というナンバリングは単に可読性を求めた場合の物で、実際は9桁3桁でも問題なく処理されます。 レポート2 例としてN006KASUXE00とN108KASU_E00から得られるハッシュ値が共に0428B27Eである等、単に一部の文字列が違えば問題がないという訳ではなく、一文字変更した程度ではあらゆる文字列で衝突が発生してしまいます。 レポート3 10の倍数はぶつかりやすいという言い伝えですが、正確には10の倍数に限った事象ではありません。 まずNXXXは3桁でなく2桁+αとして処理されるため、XXXで3桁分の集合という訳にはいかない仕様になってしまっています。 巡回冗長検査で、ハッシュ値を求める多項式として0x1aという値を採用し、x 4+x 3+x 1を加算して設計上問題のない範囲への集合を狙った様ですが、そもそもそこに問題があったということになります。 つまり、暗号化に使える元の数を制限してあるために、そもそも出来る暗号のパターンが限られているということです。 結果としては_を他の文字に変えると_の領域に一切かぶらない文字は多数見つかりました。ただし_以外の文字同士の間にも衝突集合が必ず存在し、絶対に衝突が起きないという文字はやはり存在しません。 データベースの機能を活用して衝突する集合を回避しながら運用する事で、使用可能なmodナンバーを大きく拡大する事は簡単です。
https://w.atwiki.jp/akasatanahama/pages/22.html
テクスチャや言語ファイルなどのリソースを作成する。 テクスチャ ※ver 1.8から、テクスチャの指定方法が変わった。ここで説明するのはver 1.7のもの。 16×16・32×32・64×64ならForgeが読み込んでくれる。 また、透過pngを利用することもできる。 太字の箇所は自分でフォルダを作る。 アイテム "C /forge/src/main/resources/assets/aluminiummod/textures/items/"の中にプログラム内で指定した名前のpng形式で保存。 ブロック "C /forge/src/main/resources/assets/aluminiummod/textures/blocks/"の中にアイテムと同様の形式で保存。 言語ファイル "C /forge/src/main/resources/assets/aluminiummod/lang/"の中にlang形式で保存。 指定しなかった言語は英語で表示される。 基本的には、何も設定しなかったときに出てくる、item.~.nameなどを使う。 言語の設定は全体で共通なので、バニラまたは他MODと登録名がかぶると後に読み込まれたほうが適用される。 バニラで使われていない文字列にすることはもちろん、他のMODともかぶらないように工夫する必要がある。 コード内で、設定された言語の文字列を取得したい場合は、staticメソッドのStatCollector.translateToLocal(String)を使えばよい。 アルミニウムとアルミニウムブロックを英語・日本語で設定したい場合。 英語(アメリカ) "en_US.lang"というファイルを作り、メモ帳などで開いて、 en_US.lang item.aluminium.name=Aluminium tile.blockAluminium.name=Aluminium Block と書いて保存する。 日本語 "ja_JP.lang"というファイルを作り、英語と同様に、 ja_JP.lang item.aluminium.name=アルミニウム tile.blockAluminium.name=アルミニウムブロック と書く。ただし、日本語の場合は最初の行は読み込まれないので空白にする。また、メモ帳で指定できる4種の文字コードの中ではUTF-8のみで成功した。(ANSI…文字化け Unicode…読み込まれない Unicode big endian…読み込まれない) コメント この項目に関する質問などをどうぞ。 上の通りにやったのですが、どうしてもアイテムの名前が文字化けしてしまいます。ちゃんとUTF-8にエンコードが設定されていたのになぜでしょうか? - sake 2016-09-06 22 43 06 私達も原因が分かりません。申し訳ありません。 - 赤砂蛇凪浜 2016-09-17 14 09 52 詳細は分かりませんが、改行コードなどが問題がある可能性もありますよ - anatawa12 2016-12-16 00 35 53 テクスチャについてですが、ここに書いてある通りにしても、反映されません。MOD名に大文字が入っているからでしょうか? - あるふぁ 2017-05-14 17 59 39 このチュートリアルでは、modidに"AluminiumMod"を使用しています。また、テクスチャの追加の際はmodnameは関係ありません。MODのIDに大文字が入っている場合、"assets"と"textures"の間のフォルダ名(modidに対応する部分)は全て小文字にしてください。例:IDが"AluminiumMod"の場合"aluminiummod"にする。テクスチャの読み込みに失敗している場合は、Minecraft実行時に現れる「コンソール」タブにエラーログが出力されていることもありますので、ご確認ください。 - 赤砂蛇凪浜 2017-05-17 17 29 18 ".../assets/()" - あるふぁ 2017-05-19 18 53 16 すみません。間違えました。"...\assets\(小文字名)\textuers\..."にしたら出ました!ありがとうございます - あるふぁ 2017-05-19 18 54 46 名前
https://w.atwiki.jp/portal2_mod/pages/14.html
ダウンロードしたbspファイルを
https://w.atwiki.jp/akasatanahama/pages/21.html
概要 何の機能もない基本的なブロックを追加する。 ソースコード AluminiumMod.java package tutorial.aluminiummod; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; @Mod(modid = "AluminiumMod", name = "Aluminium Mod", version = "1.0.0") public class AluminiumMod { public static Item aluminium; //追加するブロックの宣言 public static Block blockAluminium; @EventHandler public void perInit(FMLPreInitializationEvent event) { aluminium = new Item() .setCreativeTab(CreativeTabs.tabMaterials) .setUnlocalizedName("aluminium") .setTextureName("aluminiummod aluminium"); GameRegistry.registerItem(aluminium, "aluminium"); //Blockを継承したクラスのインスタンスを生成し、代入する。 blockAluminium = new AluminiumBlock(Material.rock) //システム名の登録 .setBlockName("blockAluminium") //テクスチャ名の登録 .setBlockTextureName("aluminiummod aluminium_block"); //GameRegistryへの登録 GameRegistry.registerBlock(blockAluminium, "blockAluminium"); } } AluminiumBlock.java package tutorial.aluminiummod; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; public class AluminiumBlock extends Block { public AluminiumBlock(Material material) { super(material); //クリエイティブタブの登録 this.setCreativeTab(CreativeTabs.tabBlock); //硬さの設定 this.setHardness(5.0F); //爆破耐性の設定 this.setResistance(10.0F); //ブロックの上を歩いた時の音を登録する。 this.setStepSound(Block.soundTypeMetal); //回収するのに必要なツールを設定する。 this.setHarvestLevel("pickaxe", 2); //明るさの設定 this.setLightLevel(0.0F); } } 解説 Block minecraftのブロックはすべてこのクラスを継承している。 modで追加するブロックもこのクラスを継承することになる。 コンストラクタ(Material material) そのブロックのマテリアルを設定する。 Materialにまとめれているので確認されたし。 Block setBlockName(String name) ブロックのシステム名を登録するメソッド。 Block setBlockTextureName(String name) ブロックのテクスチャを登録するメソッド。 アイテムと同様。 Block setCreativeTab(CreativeTabs tab) ブロックをクリエイティブタブに登録するメソッド。 アイテムと同様。 Block setHardness(float hardness) ブロックの硬さを設定する。 数値を上げると硬くなる。 黒曜石は50.0F。金・ラピスラズリ以外の圧縮ブロックが5.0F。net.minecraft.block.Blockを参照。 Block setResistance(float resistance) ブロックの爆破耐性を設定する。 数値を上げると耐えられる爆発力が高くなる。 黒曜石は2000.0F。圧縮ブロックは10.0F。こちらもnet.minecraft.block.Blockを参照。 Block setStepSound(StepSound sound) ブロックの上を歩いたり、破壊したりしたときになる音の種類を設定する。 void setHarvestLevel(String type, int level) typeで適正ツールの種類を指定、levelでレベルを指定する。 レベルは高いほど要求するツールが強力なものになる。 Block setLightLevel(float level) ブロックの光度を設定する。 ここで渡した値に15をかけたものが光源レベルになる。 0.0~1.0以外は無効。 GameRegistry Block registerBlock(Block block, String name) GameRegistryに追加ブロックを登録するメソッド。 使用例 オファレンブロックを追加する部分。 メタデータなどを使っている箇所は省略した。 +オファレンMOD OfalenModCore.java package nahama.ofalenmod; /*略*/ /**@author Akasata Nahama*/ @Mod(modid = OfalenModCore.MODID, name = OfalenModCore.MODNAME, version = OfalenModCore.VERSION) public class OfalenModCore { public static final String MODID = "OfalenMod"; public static final String MODNAME = "Ofalen Mod"; public static final String VERSION = "[1.7.10]1.0.0"; /*略*/ /**最初に行われる処理。アイテム・ブロックの追加などを行う*/ @EventHandler public void preInit(FMLPreInitializationEvent event) { /*略*/ //ブロックを設定するメソッドを実行 OfalenModBlockCore.registerBlock(); /*略*/ } /*略*/ } OfalenModBlockCore.java package nahama.ofalenmod.core; /*略*/ public class OfalenModBlockCore { /*略*/ public static Block blockOfalen; /*略*/ /**ブロックを設定する*/ public static void registerBlock () { /*略*/ blockOfalen = new OfalenBlock() .setBlockName("blockOfalen") .setBlockTextureName("ofalenmod ofalen_block-"); GameRegistry.registerBlock(blockOfalen, ItemOfalenBlock.class, "blockOfalen"); /*略*/ } } OfalenBlock.java package nahama.ofalenmod.block; /*略*/ public class OfalenBlock extends Block { /*略*/ public OfalenBlock() { super(Material.rock); this.setCreativeTab(OfalenModCore.tabOfalen); this.setHardness(7.5F); this.setResistance(15.0F); this.setStepSound(Block.soundTypeMetal); this.setLightLevel(1.0F); this.setHarvestLevel("pickaxe", 3); } /*略*/ } このままテストプレイをしてみると、テクスチャがない状態ではピンクと黒のデフォルトテクスチャになってしまう。 また、名前も、tile.blockAluminium.nameとなる。 これらの解決方法は次回。 コメント この項目に関する質問などをどうぞ。 アルミニウムモッドの時のブロック作成法はないのですか。 - # 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/medalofhonor/pages/34.html
目次 MODとは? MOHシリーズのMODの入手方法 MOH Filesの使い方 MODの使い方 複数のMODを同時に使用するときの注意点 MOHAA SHとMOHAA BTのMODについて 日本語字幕版MOHAA特有のMODの不都合について MODとは? MODとはModificationの略称で、ゲームの内容をユーザーが改善、改変などする行為の総称です。 例としてはFPSの金字塔「Half-Life」のMod「Counter-Strike」が有名です。 MODを推奨している企業もあり、前述のCounter-StrikeのようにMODが製品化され発売されるという例もあります。 MOD開発を視野に入れているゲームは多くの場合SDK(Software Development Kit)などMOD開発ツールが公式にリリースされています。 MODの種類は武器の性能を調節したりテクスチャ・モデルを変更したり追加する小さなものから元のゲームの内容やシステムを変えてしまうMODまで幅広くあり、 活発なMOD開発や魅力的なMODの登場は古いPCゲームの人気を後押しすることにも一役買っています。 MOHシリーズのMODの入手方法 MOHシリーズに限らずMODが入手できるサイトとして最も有名なものにFileFront(http //www.filefront.com/)と呼ばれる海外のファイルアップロードサイトがあります。 その中でMOHシリーズのMODを探したい場合はFileFrontが運営するMedal of Honor Files(http //medalofhonor.filefront.com/ 以後MOH Filesと表記)というMOHシリーズのファイル情報をまとめたサイトを利用するのがお勧めです。 ただMOH Filesにすべて載っているというわけではなく、MOH Filesを経由せずにアップロードされたファイルは掲載されないのでそういったファイルを探す場合はFileFrontで直接検索する必要があります。 MOH Filesの使い方 まずはMOH Filesにアクセスします。 アドレスは http //medalofhonor.filefront.com/ です。 画像に写っているFile Searchではキーワードを入力することでファイルを検索することができます。 トップページでは最新のニュースや新しくリリースされたMODの情報などが掲載されています。 ページの左側にあるのがメニューです。 例としてアライドアサルトのMODを入手してみましょう。 赤丸のところをクリックして下さい。 カテゴリー別に表示されます。 今回は武器MODを入手してみようと思います。 ファイル一覧が表示されます。 AK-47 Assault RifleというMODを選択してみましょう。 MODの詳細情報が表示され、MODの説明や画像、コメントなどが見れます。 ページを下にスクロールさせるかClick here to Download this Fileをクリックすると どのサーバーからファイルをダウンロードするかという項目が出てきます。 画像は古いものですが、現在選択できるサーバーはFileFront(アメリカ)だけです。 Download Now!をクリックして下さい。 FileFrontのダウンロードページに飛びます。 Download Now!をクリックします。 Thank you for downloading zzzdarkangelak47.zipと表示され、しばらくするとファイルのダウンロードが始まります。 始まらない場合はclick hereを選択すると始まります。 ファイルのダウンロードが終われば乳は完了です。 MODの使い方 先ほどダウンロードしたファイルを解凍すると色々と入っていると思いますが、pk3という拡張子のファイルがMODファイルです。 パシフィックアサルトではrezという拡張子も使われています。 これを指定されたゲームフォルダの中に入れればOKです。 インストーラーがついていない場合は手動で入れることになります。 大抵のMODには説明書のreadme.txtが入っているのでそちらもしっかり読んでおきましょう。 通常のMODならMOHAAのMODはmainフォルダ、MOHAA SHのMODはMaintaフォルダ、MOHAAのMODはmainttフォルダ、MOHPAの場合はmainフォルダに入れます。 MODを消したい場合はそのフォルダから削除して下さい。 フォルダパスは標準設定でゲームをインストールしているなら以下の通りになります。 ゲームフォルダの場所が分からない場合はゲームの起動用ショートカットを右クリックして プロパティを開き「ファイルの場所を開く(T)」をクリックするとゲームフォルダが開きます。 ・MOHAAの場合 C \Program Files\EA GAMES\Medal of Honor Allied Assault\main ・MOHAA SHの場合 C \Program Files\EA GAMES\Medal of Honor Allied Assault\mainta ・MOHAA BTの場合 C \Program Files\EA GAMES\Medal of Honor Allied Assault\maintt ・MOHPAの場合 C \Program Files\EA Games\Medal of Honor Pacific Assault(tm)\main 複数のMODを同時に使用するときの注意点 複数のMODを同時に使うとMODのデータが干渉してしまいMODが正常に機能しなくなる場合があります。 例えば同じ部分のテクスチャを変更するMODは同時に使うことができません。 また、どうやらMODの量が多すぎるとオーバーフローして落ちることがあるそうです。 (おそらく読み込むファイルの数の制限は512、サーバー起動時にて確認) 元のデータを改造して作られたMODは改造元の同名のデータを上書きする形で適応されますが そのタイプのMODを複数使用する場合はファイル名の順番で上から読み込まれていきます。 なので、ファイル名を変更することでMODを読み込む順番を変えることができます。 工夫すれば読み込む順番を制御することでMODを改造することなく自分好みの組み合わせにすることができます。 MOHAA SHとMOHAA BTのMODについて mainフォルダにMODが入っている状態でMOHAA SH又はMOHAA BTを起動するとmainフォルダにあるMODも読み込んでしまいます。 MOHAAのMODがSH・BTに対応していなかったり無印(MOHAA)のMODがSH・BT側のMODと干渉してしまうと正常に機能しなくなる場合があります。 SH・BTでMODを使う場合はmainフォルダにあるMODをすべて退避させた方がいいでしょう。 日本語字幕版MOHAA特有のMODの不都合について 詳しくは「日本語環境におけるMODのエラーについて」をご覧下さい。
https://w.atwiki.jp/wasesaba/pages/18.html
MOD(わせひろのブロマガより引用) チャット系 NihngoMOD 便利系 DigAll CutAll MineAll CraftGuide 装備&アイテム AdvancedTools AmuletMOD フックショットMOD WeaponMOD チェスト系 MultipageChest 工業系 ForestoryforMinecraft Applied Energistics RailCraft MineFactoryReloaded MystCraft PlasmaCraft ThermalExpansion BuildCraft ・AdditionalPipes ・AdvancedFiller ・ExtraTanks ・LogisticsPipes ・QuarryPlus ・powerConverters IndusrialCraft ・GregTechMOD ・AdvancedSolarPanels
https://w.atwiki.jp/torauto/pages/35.html
MOD banner_ani.gif タイトル SELFKILL.com 更新日時 2005/8/26 3 46 URL http //selfkill.com/webv3/content/cms.php?action=overview rubrik=all maxentries=10 title=Herzlich%20Willkommen 備考 膨大な数のMOD、MAP、TOOLなどが紹介されてます。必見です。MODだけでなくNEWSも活発な様子。
https://w.atwiki.jp/akasatanahama/pages/18.html
まずは、MOD製作の環境を整える。 Windowsの場合 JDK(Java SE Development Kit) ここ からほしいバージョン(JDK8u31は動作確認済み)の「JDK」(JREではない)を選択、ダウンロード画面に行く。 利用規約を読んで「Accept License Agreement」をクリックする。 自分のOSのものを選んでダウンロードする。 ダウンロードしたexeを実行し、出てくる画面に従いインストールする。 Forge ここ のRecommendedを探す。 「src」をクリックし、AdFoc.usというページに行く。 右上に「SKIP」というボタンが出るので、そこをクリックし、ダウンロードする。(下の方にダウンロードなどのボタンが出ても広告である。) ダウンロードしたzipファイルを解凍する。(日本語の入っていない場所を推奨。今後は例として"C /forge"を使用。ワークスペースを複数作る場合などは変えてよい。) "C /forge"の中でエクスプローラの上のアドレスバーに「cmd」と入力、コマンドプロンプトを開く。 コマンドプロンプトに「gradlew setupDecompWorkspace」と入力、デコンパイル環境を作る。しばらくして「BUILD SUCCESSFUL」と出たら成功。 コマンドプロンプトに「gradlew eclipse」と入力、Eclipse用の環境を作る。こちらも「BUILD SUCCESSFUL」と出たら成功。 Eclipse ここ からほしいバージョンのボタンをクリック、ダウンロードページへ行く。 「Java」の「Standard Edition」をダウンロードする。 ダウンロードしたzipファイルを解凍する。(こちらも日本語の入っていない場所を推奨。例"C /Eclipse") "C /Eclipse/pleiades/eclipse/eclipse.exe"を実行。 ワークスペースを"C /forge/eclipse"に設定。 Eclipseが起動したら左上の「実行」(緑の丸に白い三角のボタン)をクリックし、動作確認をする。 Minecraftが起動したら成功。 既存のセーブデータをテストプレイに使用したい場合、"C /forge/eclipse/saves"に入れればよい。 他のMODをテストプレイに使用したい場合、"C /forge/eclipse/mods"に入れればよい プログラミング時に使うフォントを変更したい場合は、「ウィンドウ」>「設定」>「一般」>「外観」>「色とフォント」>「基本」>「テキストフォント」を編集すればよい。 Eclipseの使い方の詳しい解説は他のサイトなどで調べるといいかもしれません。 Windows 10の場合、Lhaplusで解凍すると「このアプリはお使いのPCでは実行できません」と出るようです。エクスプローラー標準の機能や、7-Zipなどで解凍してください。 Gradle ここ からBinary only distributionをダウンロードする。 ダウンロードしたzipファイルを解凍する。(きちんと保管できる場所にする。例"C /Program Files/gradle") コントロールパネルを開き、「システムとセキュリティ」>「システム」>「システムの詳細設定」(左の帯にある)>「詳細設定」>「環境変数」を開く。 システム環境変数の「Path」の「編集」をクリックする。 もともとある変数値を消さないように注意し、末尾に";C /Program Files/gradle/bin"と入力する。 コマンドプロンプトを"C /forge"で開き、「gradle」と入力して動作確認をする。これも「BULD SUCCESSFUL」と出たら成功。 MODを作成したら、"C /forge"でコマンドプロンプトを開き、「gradle build」と入力。"C /forge/build/libs(最初はない)"に"modid-1.0.jar"があれば出力成功。"modid-1.0.jar"をMinecraftのmodsフォルダに入れればMODを導入できる。 画像編集ソフト 16x16サイズのドット絵を描けるソフトを用意する。 自分で使いやすいツールを探すといい。 (凪浜は現在「paint.net」というツールを使わせていただいています。) +前に使っていた「PictBear」のインストール方法を簡単に説明 ここ の「PictBearをダウンロード」をクリック、ダウンロードする。 ダウンロードした"pb204.exe"を実行し、インストールする。 インストール時に指定したフォルダにプログラムが入るので、それを実行すれば使える。 コメント この項目に関する質問などをどうぞ。 C /forgeでcmdを開きgradle build - さくら 2016-04-02 12 39 43 (申し訳ないです 間違えて投稿してしまいました)と打っても、’gradle’は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出てしまいます。 どうしたら良いか申し訳ないですが教えて下さい。(gradlew gradlew.bat build.gradle これらのファイルは入っています) - さくら 2016-04-02 12 43 15 (追記です 連続書き込み申し訳ありません) 前には4回ほど出力に成功しています。その時はgradlew.batを開いてからcmdを開くとできていたのですが、やはり出来ません - さくら 2016-04-02 12 46 54 Gradleを再インストールしたり、システム環境変数の設定をやり直したりしてみてください。私も理解できていない部分があるので、あまり役に立たないかもしれません。すみません。 - 赤砂蛇凪浜 2016-04-04 07 42 05 返信有り難うございます gradleをforgeと同じ場所においてしまっていたのでProgramFiles(×86)に再度入れたところ無事出来ました!ありがとうございました! お騒がせしました - さくら 2016-04-04 12 19 05 最新のeclipse(4.6Neon,64bit,standard)をダウンロード、解凍し、ワークスペースの設定までは順調に行えたのですが、「実行」ボタンを押しても「実行構成」 - モアイさん 2016-09-25 12 42 01 ↑続き 「実行構成」という画面が出てきてMincraftを起動できません。どのような設定を行えばよいのでしょうか? - モアイさん 2016-09-25 12 43 25 forgeのワークスペース設定に失敗している可能性があります。"gradlew setupDecompWorkspace"や"gradlew eclipse"をもう一度実行してみてください。 - 赤砂蛇凪浜 2016-09-26 18 14 20 ありがとうございます!正常にminecraftが起動しました! - モアイさん 2016-09-27 18 47 29 cドライブのProgram FilesにGradleというファイルを作り、その後gradle3.1,binといってアドレスのところにcmd.exeとうってコマンドプロンプトを起動し、gradleを実行してもFAILURE Build failed with an exceptionとでてBUILD FAILEDとでます。ご指導お願いします - shu_hrg 2016-10-23 20 56 31 ミスのようですのでコメントを編集させていただきました。コマンドプロンプトは"C /forge"で起動してください。解説がわかりにくかったため修正しました。 - 赤砂蛇凪浜 2016-10-24 08 08 16 Forgeなんですが、1.8以降のForgeには" / src"がありません。代わりの”□mdk"でもよろしいでしょうか? - でんでん 2016-12-10 07 23 22 問題ありません。1.8以降のチュートリアルも今後実装予定です。 - Tom Kate 2016-12-10 10 37 10 ありがとうございます。楽しみに待ってます。 - でんでん 2016-12-24 17 56 38 名前
https://w.atwiki.jp/lotdwiki/pages/15.html
ゲームMOD LastManIN Invasionゲームモードを元に、LastMan(最後の男)が死ぬまでサバイバルするゲームモード。ゾンビは走らせたりゲボなどによる感染システムなど細かく設定できる。また死んだプレイヤーはゾンビとして復活することもでき、このゲームモードで有名なTrinという鯖があり、時間帯によるが大体満員(最大8人)という人気さ。 ※どうやら公式サイトでは正式にリリースされているわけではなく、現在Trinという海外鯖のみでプレイが可能の模様。関連の最新ファイルもこの鯖に接続したときのみダウンロードされる(速度は早め)。また、無理やり鯖を建てることはできないことはないが不足ファイルがあるためか、参加してから一定時間(数秒から数分)で「Host is not ready.」とでて鯖が落ちるまたはプレイヤーが切断されてしまう。(LANでも同様。非Dedicated Serverにすると解決できないこともないが正常に稼動していない可能性が高い) BladeIN 便利な管理者機能(GUIによるマップ変更、リスタートやキックやバンなど)やその他カスタムキャラクターなどがある。LastManINと共通する部分が多いが、こちらは基本的なInvasionを元にしておりゾンビプレイヤーなどはない。まれにオフィシャル鯖が建つ。ゾンビは走らなくともとにかくゾンビの数の多さで単純に楽しい。 カスタムキャラクター(BladeINV 1.1 MODにて) Julia 女のカスタムキャラクタースキン。 「JuliaC」と「BinJulia」をSystemフォルダへ、「Julia.utx」をTexturesフォルダへコピーする。 その後、iniファイル(例えば、Server.ini)で、「ServerPackages=」のあるセクションに「ServerPackages=JuliaC」を追記する。 UMBRELLA アンブレラ特殊部隊のキャラクタースキン。 解凍後、同名フォルダ(Textures、System、Animations)をそれぞれ上書きする。 その後、上記Juliaスキン同様、iniファイルに、「ServerPackages=Corp」を追記する。
https://w.atwiki.jp/akasatanahama/pages/131.html
概要 Forgeのシステムを利用してコンフィグ(Config, Configuration 設定)を追加する。 FMLのコンフィグGUIを利用し、Minecraftを起動したままゲーム内で変更できるようにする。 「Mods」ボタンで表示されるリストからMODを選択し、左下の「Config」ボタンを押すことで画面を開くことができる。 また、コンフィグファイルはデフォルトでは".minecraft/config/AluminiumMod.cfg"に保存されるが、これを直接編集しても設定を変更できる。 (開発環境では"C /forge/eclipse/config/AluminiumMod.cfg") 利用例がソースコード内で示されているが、ブロックやアイテムを追加していないため、コメントアウトを解除しただけでは動作しない。 Minecraft 1.7.10 Forge 10.13.4.1558 前提:MODの情報の登録 ソースコード AluminiumMod.java package tutorial.aluminiummod.common; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Metadata; import cpw.mods.fml.common.ModMetadata; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import tutorial.aluminiummod.common.core.AluminiumModConfigCore; import tutorial.aluminiummod.common.core.AluminiumModInfoCore; import tutorial.aluminiummod.common.generator.AluminiumOreGenerator; import tutorial.aluminiummod.common.handler.AluminiumModEventHandler; @Mod(modid = AluminiumMod.MOD_ID, name = AluminiumMod.MOD_NAME, version = AluminiumMod.MOD_VERSION, guiFactory = "tutorial.aluminiummod.client.gui.AluminiumModGuiFactory") public class AluminiumMod { public static final String MOD_ID = "AluminiumMod"; public static final String MOD_NAME = "Aluminium Mod"; public static final String MOD_VERSION = "1.0.0"; @Metadata(MOD_ID) private static ModMetadata meta; @EventHandler public void perInit(FMLPreInitializationEvent event) { // MODの情報を登録する。 AluminiumModInfoCore.registerInfo(meta); // コンフィグを読み込む。 AluminiumModConfigCore.loadConfig(event); // ブロックやアイテムの追加はここで行う。 } @EventHandler public void init(FMLInitializationEvent event) { // EventHandlerを登録する。 FMLCommonHandler.instance().bus().register(new AluminiumModEventHandler()); // 利用のサンプル。「レシピの追加」を参照。簡潔化のためこのチュートリアルではアルミニウム鉱石やアルミニウムインゴットは追加していない。 // GameRegistry.addSmelting(AluminiumMod.oreAluminium, new ItemStack(AluminiumMod.ingotAluminium, AluminiumModConfigCore.amountSmelting), 0.7F); // 利用のサンプル。「鉱石の追加」を参照。 GameRegistry.registerWorldGenerator(new AluminiumOreGenerator(), 0); } } AluminiumModGuiFactory.java package tutorial.aluminiummod.client.gui; import cpw.mods.fml.client.IModGuiFactory; import cpw.mods.fml.client.config.GuiConfig; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraftforge.common.config.ConfigElement; import tutorial.aluminiummod.common.AluminiumMod; import tutorial.aluminiummod.common.core.AluminiumModConfigCore; import java.util.Set; public class AluminiumModGuiFactory implements IModGuiFactory { @Override public void initialize(Minecraft minecraftInstance) { } @Override public Class ? extends GuiScreen mainConfigGuiClass() { return AluminiumModConfigGui.class; } @Override public Set RuntimeOptionCategoryElement runtimeGuiCategories() { return null; } @Override public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element) { return null; } public static class AluminiumModConfigGui extends GuiConfig { public AluminiumModConfigGui(GuiScreen parent) { super(parent, (new ConfigElement Object (AluminiumModConfigCore.cfg.getCategory(AluminiumModConfigCore.GENERAL))).getChildElements(), AluminiumMod.MOD_ID, false, false, AluminiumMod.MOD_NAME); } } } AluminiumModInfoCore.java package tutorial.aluminiummod.common.core; import cpw.mods.fml.common.ModMetadata; import tutorial.aluminiummod.common.AluminiumMod; public class AluminiumModInfoCore { public static void registerInfo(ModMetadata meta) { meta.modId = AluminiumMod.MOD_ID; meta.name = AluminiumMod.MOD_NAME; meta.description = "This mod adds Aluminium."; meta.version = AluminiumMod.MOD_VERSION; meta.url = "http //www.tntmodders.com"; meta.authorList.add("Akasata Nahama"); meta.authorList.add("Tom Kate"); meta.credits = ""; meta.logoFile = "assets/aluminiummod/logo.png"; meta.autogenerated = false; } } AluminiumModConfigCore.java package tutorial.aluminiummod.common.core; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.common.config.Configuration; import tutorial.aluminiummod.common.AluminiumMod; public class AluminiumModConfigCore { public static final String GENERAL = "General"; private static final String DIFFICULTY = GENERAL + ".Difficulty"; public static Configuration cfg; public static boolean isGeneratorEnabled = true; public static byte amountSmelting = 1; public static void loadConfig(FMLPreInitializationEvent event) { // net.minecraftforge.common.config.Configurationのインスタンスを生成する。 cfg = new Configuration(event.getSuggestedConfigurationFile(), AluminiumMod.MOD_VERSION, true); // 初期化する。 initConfig(); // コンフィグファイルの内容を変数と同期させる。 syncConfig(); } /** コンフィグを初期化する。 */ private static void initConfig() { // カテゴリのコメントなどを設定する。 // General cfg.addCustomCategoryComment(GENERAL, "A settings of Aluminium Mod."); cfg.setCategoryLanguageKey(GENERAL, "config.aluminium.category.general"); // Difficulty cfg.addCustomCategoryComment(DIFFICULTY, "The settings of difficulty."); cfg.setCategoryLanguageKey(DIFFICULTY, "config.aluminium.category.difficulty"); cfg.setCategoryRequiresMcRestart(DIFFICULTY, true); } /** コンフィグを同期する。 */ public static void syncConfig() { // 各項目の設定値を反映させる。 // General isGeneratorEnabled = cfg.getBoolean("enabledGenerator", GENERAL, isGeneratorEnabled, "Aluminium Ore will be generated when this setting is true.", "config.aluminium.prop.enabledGenerator"); // Difficulty amountSmelting = (byte) cfg.getInt("amountSmelting", DIFFICULTY, amountSmelting, 1, Byte.MAX_VALUE, "Smelting amount of Aluminium Ingot from Aluminium Ore.", "config.aluminium.prop.amountSmelting"); // 設定内容をコンフィグファイルに保存する。 cfg.save(); } } AluminiumModEventHandler.java package tutorial.aluminiummod.common.handler; import cpw.mods.fml.client.event.ConfigChangedEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import tutorial.aluminiummod.common.AluminiumMod; import tutorial.aluminiummod.common.core.AluminiumModConfigCore; public class AluminiumModEventHandler { @SubscribeEvent public void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) { // コンフィグが変更された時に呼ばれる。 if (event.modID.equals(AluminiumMod.MOD_ID)) AluminiumModConfigCore.syncConfig(); } } AluminiumOreGenerator.java package tutorial.aluminiummod.common.generator; import cpw.mods.fml.common.IWorldGenerator; import net.minecraft.world.World; import net.minecraft.world.WorldProviderSurface; import net.minecraft.world.chunk.IChunkProvider; import tutorial.aluminiummod.common.core.AluminiumModConfigCore; import java.util.Random; public class AluminiumOreGenerator implements IWorldGenerator { @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { // コンフィグで有効化されていれば生成を行う。 if (AluminiumModConfigCore.isGeneratorEnabled world.provider instanceof WorldProviderSurface) generateOre(world, random, chunkX 4, chunkZ 4); } private void generateOre(World world, Random random, int x, int z) { for (int i = 0; i 10; i++) { int genX = x + random.nextInt(16); int genY = 1 + random.nextInt(15); int genZ = z + random.nextInt(16); // サンプル。簡潔化のためこのチュートリアルではアルミニウム鉱石を追加していない。 // new WorldGenMinable(AluminiumMod.oreAluminium, 0, 20, Blocks.stone).generate(world, random, genX, genY, genZ); } } } en_US.lang // Config config.aluminium.category.general=Localized General Category config.aluminium.category.general.tooltip=Localized General Category Tooltip config.aluminium.prop.enabledGenerator=Localized Generator Enabled config.aluminium.prop.enabledGenerator.tooltip=Localized Generator Enabled Tooltip config.aluminium.category.difficulty=Localized Difficulty Category config.aluminium.category.difficulty.tooltip=Localized Difficulty Category Tooltip config.aluminium.prop.amountSmelting=Localized Smelting Amount config.aluminium.prop.amountSmelting.tooltip=Localized Smelting Amount Tooltip ja_JP.lang // コンフィグ config.aluminium.category.general=全般 config.aluminium.category.general.tooltip=全般のツールチップ config.aluminium.prop.enabledGenerator=鉱石生成の有効化 config.aluminium.prop.enabledGenerator.tooltip=鉱石生成の有効化のツールチップ config.aluminium.category.difficulty=難易度 config.aluminium.category.difficulty.tooltip=難易度のツールチップ config.aluminium.prop.amountSmelting=製錬量 config.aluminium.prop.amountSmelting.tooltip=製錬量のツールチップ 解説 AluminiumModConfigCore void initConfig() コンフィグを初期化するメソッド。 カテゴリの設定や説明文を変更する。 void syncConfig() コンフィグを同期するメソッド。 AluminiumModConfigCoreの変数を更新し、cfgファイルを保存する。 AluminiumModEventHandler 指定したイベントが発生したとき、そのイベントを引数としたメソッドが呼び出される。 今回はFMLのシステムにのみ登録しているが、Forgeにも多くのイベントが用意されている。 チュートリアル「Eventの利用」は今後作成予定。 void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) コンフィグGUIで項目が変更されたとき、Eventを受け取って呼び出される。 このMODのコンフィグGUIが更新されたなら、コンフィグを同期する。 コンフィグGUIのメイン画面で「Done」ボタンが押されたとき、変更があれば呼び出されている。 @Mod このアノテーションを付けたクラスがFMLに認識される。 String guiFactory MODのGuiFactoryを登録する。 IModGuiFactoryを継承したクラスのパスを渡す。 FMLPreInitializationEvent preInitの引数で渡されている。 File getSuggestedConfigurationFile() 推奨されるコンフィグファイルのFile。 "(プロフィールフォルダ)/config/(modid).cfg"を返す。 Configuration Forgeが用意しているクラス。 cfgファイルから読み込んだデータを保持し、操作を受け付ける。 コンストラクタ(File file, String configVersion, boolean caseSensitiveCustomCategories) fileはcfgファイルの位置。(必須) configVersionは読み込み時cfgファイルの冒頭に記載される文字列。(任意) caseSensitiveCustomCategoriesをtrueにするとカテゴリ名に小文字が使える。falseだとすべて大文字になる。(任意、デフォルトfalse) void addCustomCategoryComment(String category, String comment) categoryのカテゴリコメントを指定する。 保存時に上書きされる。 Configuration setCategoryLanguageKey(String category, String langKey) categoryの言語キーを指定する。 コンフィグGUIでの表示に利用される。 Configuration setCategoryRequiresMcRestart(String category, boolean requiresMcRestart) category内の項目の変更を反映する際、Minecraftの再起動が必要かどうか設定する。 trueにすると、コンフィグGUIでのTooltipや変更時にメッセージが表示される。 setCategoryRequiresWorldRestartもある。 boolean getBoolean(String name, String category, boolean defaultValue, String comment, String langKey) カテゴリ「category」内の項目名「name」で設定された値を取得する。 値が読み込まれていなかった場合(新規生成時など)はdefaultValueが返ってきて、保存時に新しくその値で生成される。 コメントは、保存時に「comment」に上書きされる。 langファイルで「langKey」の翻訳を指定しておくことで、コンフィグGUIで翻訳されて表示される。 int getInt(String name, String category, int defaultValue, int minValue, int maxValue, String comment, String langKey) getBooleanのint版。 値はminValue以上maxValue以下で返ってくるが、cfgファイルでの設定値は上書きされない。 コンフィグGUIの設定変更では範囲に収まるように上書きされる。 boolean, intの他にfloat, String, String[]なども用意されている。 void save() 変更された設定を反映し、cfgファイルに保存する。 GuiConfig コンフィグGUIのためのベースクラス。 コンストラクタ(GuiScreen parentScreen, List IConfigElement configElements, String modID, boolean allRequireWorldRestart, boolean allRequireMcRestart, String title) configElementsはコンフィグの要素のリスト。 「allRequireWorldRestart」、「allRequireMcRestart」はtrueにするとTooltipにメッセージが追加される。 titleはGUI上部に表示されるタイトル文字列。 ConfigElement Forgeのコメントには、「FMLのConfigGuiとForgeのConfigurationクラスの間の不一致を埋める」と書いてある。 総称型。 List IConfigElement getChildElements() カテゴリ内の項目やカテゴリをリストにして返す。 EventBus イベントとそのリスナーを管理するためのクラス。 void register(Object target) イベントのリスナーを登録する。 targetのクラス内にある@SubscribeEventがつけられたメソッドが、その引数によって対応したイベントに紐づけられる。 使用例 オファレンMODの[1.7.10]2.0.0のソースコードを掲載予定です。 しばらくお待ちください。 コメント この項目に関する質問などをどうぞ。 コンパイル時に、"ブートストラップ・クラスパスが-source 1.6と一緒に設定されていません"と出るのですがどうしたら良いのでしょうか? - mod初心者 2017-04-21 15 03 12 ちなみに上のはgradleの[compileJava, compileTestJava].eachのit.options.compilerArgs += ['-source', '1.7', '-target', '1.7']で直りましたけど、 - mod初心者 2017-04-21 15 26 51 「入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。」が残ってます。上のは間違えました、['-source', '1.8', '-target', '1.8']です。 - mod初心者 2017-04-21 15 51 17 言い直すと、build.gradleの[compileJava, compileTestJava].eachのit.options.compilerArgs += ['-source', '1.8', '-target', '1.8']で直りましたが、「入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。」が残ってます。 - mod初心者 2017-05-14 17 35 57 返信が遅くなってしまい申し訳ありません。ビルドが成功しているなら、そのままでも動作はするはずです。今回の場合、ConfigElementが総称型であるためにAluminiumModConfigGuiのコンストラクタにある以下の部分で警告が出ているようです。 (new ConfigElement(/* 略 */)).getChildElements()チュートリアルの該当部分を以下のように修正しましたので、ご確認ください。 (new ConfigElement Object (/* 略 */)).getChildElements()同様の警告は、以下をbuild.gradle内に追記することで、詳細を表示できます。 compileJava {options.compilerArgs += '-Xlint unchecked'}また、"ブートストラップ・クラスパスが…"の警告は、ビルド時に指定されたJavaのバージョンとビルドに使用しているバージョンが違うために発生しているようです。 - 赤砂蛇凪浜 2017-05-17 17 12 16 直りました!ありがとうございました! - Mod初心者 2017-05-18 18 32 47 メニュー画面のmodボタンを押しAluminiumModを選択すると、「disable」が赤くなります。 - mod初心者 2017-05-21 07 15 11 それは、FMLのMOD無効化ボタンです。MOD側が対応していないため赤くなるようです。@ModでcanBeDeactivatedをtrueにすると白くできます。しかし、FMLが機能を完成させておらず、利用できません。完成してもほとんどのMODが利用できないため、今後の更新も無いようです。 - 赤砂蛇凪浜 2017-05-24 14 18 02 そうなんですね。 - mod初心者 2017-05-24 15 14 13 分かりました。 - mod初心者 2017-05-24 15 14 43 名前