【総合】トピック立てるまでもない質問【Mod制作】

フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999

返信する

:
不正プログラムによるアクセスを防ぐため、reCaptcha 認証コードの入力を強制しています。表示されている 2 つのワードをテキストフィールドにご入力ください。

BBCode: OFF
スマイリー: OFF
トピックのレビュー
   

ファイルを添付します

展開ビュー トピックのレビュー: 【総合】トピック立てるまでもない質問【Mod制作】

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by にわか » 2017年8月12日(土) 20:36

Forge1.12でつるはしや斧などのツール類を追加するのに参考になるサイトを教えていただきたいです。
私が調べた限りではどのサイトを見てもRegistryの方法が古かったり、単純なアイテムの追加しか無く、ツールの追加方法がわかりません。
それとも、今までのものから少し変えればいいだけなのでしょうか。
ご教授いただければ幸いです。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by loliwew_sfs » 2017年8月08日(火) 20:58

範囲を決めてその範囲にブロックを出現させるような処理をしたいのですが、
ブロックを出現させるようなメソッドはありますか?

forgeのバージョンは1.12です。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by TestA3D » 2017年8月01日(火) 21:11

Java8の現行updateでは,forge開発環境が実行できない場合があるようです.一応このような情報があります.

ご回答有り難うございます。
やってみたいと思います。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by elise_blacklab » 2017年8月01日(火) 20:58

TestA3D さんが書きました:このようなエラーが出て、実行ができません。

Java8の現行updateでは,forge開発環境が実行できない場合があるようです.一応このような情報があります.
viewtopic.php?f=39&t=34101#p299862

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by TestA3D » 2017年8月01日(火) 19:59

こんにちは。
Modding初心者です。
先日Moddingを始めようと思い、eclipseとforgeをダウンロードしました。
↓以下の2つのサイト
http://www.gamekidworkshop.com/2016/04/23/minecraft%E3%80%81%E8%87%AA%E5%88%86%E3%81%A7mod%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%EF%BC%88helloworld%EF%BC%81%EF%BC%89/
http://www.watermelonheadman.com/mc172-modding-5/
を参考に、環境構築をしてみたのですが、いざ実行してみるとエラーになりました...。
↓ログ
2017-08-01 19:20:15,526 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
2017-08-01 19:20:15,533 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
[19:20:15] [main/INFO] [GradleStart]: Extra: []
[19:20:15] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/Test A 3D/.gradle/caches/minecraft/assets, --assetIndex, 1.12, --accessToken{REDACTED}, --version, 1.12, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
[19:20:16] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[19:20:16] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[19:20:16] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
[19:20:16] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
[19:20:16] [main/INFO] [FML]: Forge Mod Loader version 14.21.1.2387 for Minecraft 1.12 loading
[19:20:16] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_131, running on Windows 10:amd64:10.0, installed at C:\Minecraft\Modding\eclipse\javaEclipse_4.7\pleiades\eclipse\jre\jre
[19:20:16] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[19:20:16] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
[19:20:16] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
[19:20:16] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
[19:20:16] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[19:20:16] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[19:20:16] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[19:20:16] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[19:20:16] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[19:20:16] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
2017-08-01 19:20:17,194 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
2017-08-01 19:20:19,849 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
2017-08-01 19:20:19,861 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
[19:20:20] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[19:20:28] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[19:20:28] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[19:20:28] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[19:20:33] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[19:20:33] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
[19:20:33] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
[19:20:33] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[19:20:39] [main/INFO]: Setting user: Player4
[19:20:59] [main/INFO]: LWJGL Version: 2.9.4
[19:20:59] [main/ERROR]: Couldn't set pixel format
org.lwjgl.LWJGLException: Pixel format not accelerated
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method) ~[lwjgl-2.9.4-nightly-20150209.jar:?]
at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52) ~[lwjgl-2.9.4-nightly-20150209.jar:?]
at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247) ~[lwjgl-2.9.4-nightly-20150209.jar:?]
at org.lwjgl.opengl.Display.createWindow(Display.java:306) ~[lwjgl-2.9.4-nightly-20150209.jar:?]
at org.lwjgl.opengl.Display.create(Display.java:848) ~[lwjgl-2.9.4-nightly-20150209.jar:?]
at org.lwjgl.opengl.Display.create(Display.java:757) ~[lwjgl-2.9.4-nightly-20150209.jar:?]
at net.minecraft.client.Minecraft.createDisplay(Minecraft.java:669) [Minecraft.class:?]
at net.minecraft.client.Minecraft.init(Minecraft.java:499) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:416) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
at GradleStart.main(GradleStart.java:26) [start/:?]
[19:21:00] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: ---- Minecraft Crash Report ----
// Sorry :(

Time: 8/1/17 7:21 PM
Description: Initializing game

org.lwjgl.LWJGLException: Pixel format not accelerated
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
at org.lwjgl.opengl.Display.createWindow(Display.java:306)
at org.lwjgl.opengl.Display.create(Display.java:848)
at org.lwjgl.opengl.Display.create(Display.java:757)
at org.lwjgl.opengl.Display.create(Display.java:739)
at net.minecraft.client.Minecraft.createDisplay(Minecraft.java:689)
at net.minecraft.client.Minecraft.init(Minecraft.java:499)
at net.minecraft.client.Minecraft.run(Minecraft.java:416)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:26)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
at org.lwjgl.opengl.Display.createWindow(Display.java:306)
at org.lwjgl.opengl.Display.create(Display.java:848)
at org.lwjgl.opengl.Display.create(Display.java:757)
at org.lwjgl.opengl.Display.create(Display.java:739)
at net.minecraft.client.Minecraft.createDisplay(Minecraft.java:689)
at net.minecraft.client.Minecraft.init(Minecraft.java:499)

-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.Minecraft.run(Minecraft.java:416)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:26)

-- System Details --
Details:
Minecraft Version: 1.12
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_131, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 795458984 bytes (758 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML:
Loaded coremods (and transformers):
Launched Version: 1.12
LWJGL: 2.9.4
OpenGL: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
GL Caps:
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs:
Current Language: ~~ERROR~~ NullPointerException: null
Profiler Position: N/A (disabled)
CPU: <unknown>
[19:21:00] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Minecraft\Modding\forge\forge-1.12-14.21.1.2387-mdk\run\.\crash-reports\crash-2017-08-01_19.21.00-client.txt
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release

このようなエラーが出て、実行ができません。
Google翻訳にかけてみても意味の分からない結果でした。
このトピックの他の質問も確認し、
わたしのPCはIntelなのでドライバーのアップデートも試しましたが結果は同じでした。
初歩的な質問で申し訳ございませんが、
解決方法がわかる方は教えていたたげれば幸いです。
以下、実行環境です。
***** OS情報 *****
OS名:Microsoft Windows 10 Home 64 ビット
ServicePack:0
詳細なバージョン:10.0.15063
***** コンピュータ情報 *****
製造元:Dell Inc.
型番:Inspiron N5010
メモリ:5942 MB
***** CPU情報 *****
プロセッサ名:Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHz
最大CPUクロック:2394 MHz
現在のCPUクロック:2261 MHz
コア/スレッド数:2/4
***** ビデオカード情報 *****
ビデオチップ:Intel(R) HD Graphics
VRAM:2747 MB
ドライバ:8.15.10.2900
***** Java情報 *****
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
****実行の構成****
スクショが入り切らなかったので、zipを添付します。
Screenshots.zip
(112.2 KiB) ダウンロード数: 1 回


Minecraft 1.12
Forge1.12
forge-1.12-14.21.1.2387-mdk

Eclipse Java EE IDE for Web Developers.
Version: Oxygen Release (4.7.0)
Build id: 20170620-1800

何か足りない情報等ありましたら教えてください。
よろしくお願いします。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by Safuto » 2017年7月31日(月) 17:15

ありがとうございます
参考にして試してみます!!

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by elise_blacklab » 2017年7月31日(月) 15:33

(PostNo.69612) さんが書きました:Modを作っていて実行すると「エラー: メイン・クラスnet.minecraft.launchwrapper.Launchが見つからなかったかロードできませんでした
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release」
とエラーが出ます。
誰か解決策お願いします。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by (PostNo.69612) » 2017年7月31日(月) 15:29

Modを作っていて実行すると「エラー: メイン・クラスnet.minecraft.launchwrapper.Launchが見つからなかったかロードできませんでした
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release」
とエラーが出ます。
誰か解決策お願いします。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by elise_blacklab » 2017年7月31日(月) 15:01

Safuto さんが書きました:まずは簡単な防具を追加しようと思ったのですが、WsagatmodArmer.javaの☆の行に型 GameRegistry のメソッド register(K) は引数 (Item, ResourceLocation) に適用できませんと出てしまいます。どうしたら修正できるのでしょうか?

1.12はまだ検証していないのですが1.11以降はregister用にEventが発火するようになっています.
http://minecraftjp.info/modding/index.php/1.11%E3%81%AE%E3%82%A2%E3%82%A4%E3%83%86%E3%83%A0%E8%BF%BD%E5%8A%A0

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by Safuto » 2017年7月31日(月) 09:56

先週mod開発を始めた初心者です。
まずは簡単な防具を追加しようと思ったのですが、WsagatmodArmer.javaの☆の行に型 GameRegistry のメソッド register(K) は引数 (Item, ResourceLocation) に適用できませんと出てしまいます。どうしたら修正できるのでしょうか?
初歩的な質問で申し訳ないのですがよろしくお願いします。

マイクラver: 1.12
forge :14.21.1.2387
java : Java SE Development Kit 8u131



■以下ソースコード


・Wasgatmod.java
コード: 全て選択
package toka.wasgatmod.main;

import org.apache.logging.log4j.Logger;

import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import toka.wasgatmod.proxy.CommonProxy;

@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.MOD_VERSION)
public class Wasgatmod {
   
   @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.COMMON_PROXY_CLASS)
   public static CommonProxy proxy;
   
   @Instance
   public static Wasgatmod inctance;
   
   public static Logger logger;
   
   @EventHandler
   public void preInit(FMLPreInitializationEvent event) {
      proxy.preInit(event);
      
   }
   @EventHandler
   public void init(FMLInitializationEvent event) {
      proxy.init(event);
      
   }
   @EventHandler
   public void postInit(FMLPostInitializationEvent event) {
      proxy.postInit(event);
      
}
   }



・ClientProxy.java
コード: 全て選択
package toka.wasgatmod.proxy;

import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import toka.wasgatmod.init.WasgatmodArmor;

public class ClientProxy  extends CommonProxy {
   
   @Override
   public void preInit(FMLPreInitializationEvent event) {
      super.preInit(event);
      
      WasgatmodArmor.init();
   }
   @Override
   public void init(FMLInitializationEvent event) {
      super.init(event);
      
      WasgatmodArmor.registerRenders();
   }
   @Override
   public void postInit(FMLPostInitializationEvent event) {
      super.postInit(event);
      
   }

}


・CommonProxy.java
コード: 全て選択
package toka.wasgatmod.proxy;

import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

public class CommonProxy {
   public void preInit(FMLPreInitializationEvent event) {
      
   }
   public void init(FMLInitializationEvent event) {
      
   }
   public void postInit(FMLPostInitializationEvent event) {
      
   }

}


・WsagatmodArmer.java
コード: 全て選択
package toka.wasgatmod.init;

import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.registry.GameRegistry;
import toka.wasgatmod.main.Reference;

public class WasgatmodArmor {

   public static void init() {
   
   }
   
   
   
   public static Item registerItem(Item item, String registryName) {
      return registerItem(item, registryName, null);
   }
   
   public static Item registerItem(Item item, String registryName, CreativeTabs tab) {
      ☆GameRegistry.register(item, new ResourceLocation(Reference.MOD_ID, registryName));
      return item;
   }
   
public static void registerRenders() {
   }
   
public static void registerRender(Item item) {

   Minecraft.getMinecraft().getRenderItem().getItemModelMesher()
   .register(item, 0, new ModelResourceLocation(item.getRegistryName(),"inventory"));
   
    }
}

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by 駆け出し » 2017年7月29日(土) 19:35

こんにちは。Minecraft 1.11.2で、Playerに対しPlayerが与えたダメージや歩いた距離をもとに、effect(攻撃力増加など)を付与するModを制作したいと考えています。すでに、effectをユーザーに対して付与する部分の実装はとりあえず終わったのですが、playerの行動を取得する部分で行き詰まってしまいました。JAVAを触り始めてまだほとんど日付がたっていないので、つたないコードとなっておりますが、ごようしゃください。

(1)ユーザーが移動した距離を取得する(本当は歩く/走る距離がほしい)
コード: 全て選択
       @SubscribeEvent
   public void onLivingUpdate(LivingUpdateEvent event)
   {
      int index;
      Entity et = event.getEntity();
      double distance;
      
                //プレイヤーのEntityかどうかを判定する(豚などでも呼ばれるため)
      if((index = CoreModData.PlayerList.indexOf(et)) == -1)
         return;
      
                //プレイヤーが動いた距離を取得(プレイヤーが動いていなくても呼ばれるため、動いているかをチェックする)
      if((distance = pi.getWalkDistance(index,et.posX, et.posY, et.posZ)) < 0.01)
         return ; //not walked
      //距離を保存
      pi.AddData(Effect_def.moveSpeed, index, distance);
      
      return;
   }
//(別ファイル)
        public double getWalkDistance(int index,double x,double y,double z)
   {
      PlayerClass_s p;
      double ret;

      p = array.get(index);
      ret = Math.sqrt((x-p.x)*(x-p.x) + (y-p.y)*(y-p.y) + (z-p.z)*(z-p.z));

      p.x = x;
      p.y = y;
      p.z = z;

      array.set(index, p);

      return ret ; //*  0.6; しても合わない
   }


これで、動いた距離を取得しているのですが、統計情報と合わないのです。
また、これだと、上にも書きましたが、エリトラなどでとんだ距離もおそらく含まれてしまうのではないでしょうか?
・やりたいこと
1.単純に歩く/走った距離を取得したい。
2.できれば、泳いだ距離も取得したい。

(2)形になっていないもの
1.playerのいる場所の光源レベル/液体の中かどうか
2.playerのhp(maxHealthではなく、現在のhp)

これらのことについて、アドバイスを頂けないでしょうか?
長くなってしまいましたが、ご教示よろしくお願いします。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by mka » 2017年7月25日(火) 15:34

解決しました。失礼しました。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by mka » 2017年7月23日(日) 17:33

指定スロットのみロストを防止する方法にはどのようなものがあるでしょうか。
具体的にはDQMのようにプレイヤーのインベントリの一部を保護したいのですが、知識が無くコード上でどのように記述すればよいのかわかりません。

また、プレイヤーのインベントリGUIをリソースパックでなくMODのソースから得るにはどうすればよいのでしょうか。
バージョン1.7.10でforge10.13.4です。よろしくお願いします。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by ark10 » 2017年7月19日(水) 19:55

CTMを使うのは諦めて、Facingで代用します。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by ark10 » 2017年7月17日(月) 15:16

ブロックを追加するmodを作っています。
minecraftのバージョンは1.11.2で、eclipseで開発しています。
ブロックのテクスチャにCTMを使いたいのですが、run内のmodsにoptifineを入れたところ、クラッシュしてしまいます。
調べてみたところ、eclipseの開発環境内にoptifineを導入するのは困難なようですが、なんとかしてCTMを使うことは出来ないでしょうか?

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by gatya1129 » 2017年7月16日(日) 16:08

kegare さんが書きました:違いはありません。
それらは、クライアントのワールドを取得することができ、どちらも同じインスタンスが返ってきます。
Worldのインスタンスが生成された後に、EntityPlayerのインスタンスが生成されますが、その際に、Worldが紐付けされています。
どちらを参照されても問題ありませんが、クライアントでしか取得できないことと、nullチェックにはご注意ください。


ありがとうございました!

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by かけだし » 2017年7月15日(土) 20:33

defeatedcrowさん
ありがとうございます。やはり可能なんですね。
右も左も分からない所でしたので助かりました。頑張ります。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by defeatedcrow » 2017年7月15日(土) 20:11

かけだし さんが書きました:アイテムについての質問です。
forge-1.7.10-10.13.4.1558-1.7.10を利用してます。

所持しているだけでポーション効果の付くアイテムを導入しようと考えています。
そしてその効果もアイテムごとにランダム性のある、エンチャントのようなものにしたいと考えています。
そこで質問なのですが、違うポーション効果を持つアイテムを同一アイテムとして登録できるのでしょうか?
互いに効果や名前が同期しないようなものです。
私の力不足もあり他の方法としては、効果アイテムを全て別アイテムとして全列挙して登録するやり方しか思いつかないのですが、それだと追加アイテムの数が多くなってしまうので困っています。

初心者丸出しの質問だとは思いますが、よろしくお願いいたします。


可能ですよ~

アイテムのスタック(ItemStack)にはNBTタグという情報が付けられます。
この機能を使うと、スタック単位で違うデータを持たせることができ、
さらにセーブデータにも保持されるのでセーブ・ロードを挟んでも効果を維持できます。

バニラのエンチャントにも使われているもので、例えばエンチャントの場合はエンチャントの種類とレベルの値(int)を持っています。
また、MODで追加されるような、アイテムや液体を入れる容器アイテムなどでも、中身の情報保持に使われているシステムです。

あなたがやりたい内容であれば、
一例ですがスタックのNBTタグにPotion効果のID、レベルの情報を載せ、
Item所持中によばれる常時処理などで、NBTタグの読み取りを行い、読み取ったID値からPotion効果を逆引きして、プレイヤーに付与するPotionEffectを生成、プレイヤーに効果を与えるような流れになるかと思います。

名前についても、NBTにはString文字列をもたせることも出来るので、それを使ってできると思います。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by かけだし » 2017年7月15日(土) 16:43

アイテムについての質問です。
forge-1.7.10-10.13.4.1558-1.7.10を利用してます。

所持しているだけでポーション効果の付くアイテムを導入しようと考えています。
そしてその効果もアイテムごとにランダム性のある、エンチャントのようなものにしたいと考えています。
そこで質問なのですが、違うポーション効果を持つアイテムを同一アイテムとして登録できるのでしょうか?
互いに効果や名前が同期しないようなものです。
私の力不足もあり他の方法としては、効果アイテムを全て別アイテムとして全列挙して登録するやり方しか思いつかないのですが、それだと追加アイテムの数が多くなってしまうので困っています。

初心者丸出しの質問だとは思いますが、よろしくお願いいたします。

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事 by kegare » 2017年7月14日(金) 16:20

gatya1129 さんが書きました:しょーもない質問です。

コード: 全て選択
Minecraft.getMinecraft().theWorld

コード: 全て選択
Minecraft.getMinecraft().thePlayer.worldObj

この2つは何か違うのでしょうか?また、違うとしたら何が違うのでしょうか?
ご回答お待ちしております。

違いはありません。
それらは、クライアントのワールドを取得することができ、どちらも同じインスタンスが返ってきます。
Worldのインスタンスが生成された後に、EntityPlayerのインスタンスが生成されますが、その際に、Worldが紐付けされています。
どちらを参照されても問題ありませんが、クライアントでしか取得できないことと、nullチェックにはご注意ください。

ページトップ

x