- 161
- 0
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
AustereTony написал(а):Создай свой эффект для зелья, вешай эффект в AttackEntityEvent на цель, а в LivingUpdateEvent проверяй на наличие эффекта и исполняй свой код.
AustereTony написал(а):Вот тут я кидал ссылку на гайд: Тема
Этот гайд устарел, но я реализовал эффекты на 1.7.10 так что вполне годно.
hohserg написал(а):https://mcforge.readthedocs.io/en/latest/datastorage/extendedentityproperties/
Dahaka написал(а):Если моб твой, то можешь этот таймер всунуть просто в его класс. Если для любого моба, только IEEP самое адекватное решение.
И никаких static!!
В гугле забанили что ли?asdqwertypro написал(а):и вопрос: а почему static нельзя? что он вообще даёт?
Dahaka написал(а):В гугле забанили что ли?asdqwertypro написал(а):и вопрос: а почему static нельзя? что он вообще даёт?
Как можно писать моды не зная таких вещей?
asdqwertypro написал(а):Dahaka написал(а):В гугле забанили что ли?asdqwertypro написал(а):и вопрос: а почему static нельзя? что он вообще даёт?
Как можно писать моды не зная таких вещей?
1 - да. вирусня на компе гугл стёрла и переустановка гугла не помогла. щас через дермяндекс сижу...
2 - ну... знаю что эту фигню надо писать перед регистром предметов, блоков... а так - всё работает и норм.
3? - ну так что мне надо сделать чтобы при ударе мобу ставилось значение 200 в dellay ???
asdqwertypro написал(а):ой... мне проще одну строку написать чем зелье создавать... токо вот какую строку? как мобу поставить переменную dellay со значением 200??? потом в onUpdate просто отнимать это значение
hohserg написал(а):https://mcforge.readthedocs.io/en/latest/datastorage/extendedentityproperties/
Dahaka написал(а):Тебе уже ответили.
hohserg написал(а):https://mcforge.readthedocs.io/en/latest/datastorage/extendedentityproperties/
Это единственное адекватное решение. В твоем случае можно даже не синхронизировать с клиентом.
Ловишь ивент боли и устанавливаешь таймер.
[08:41:31] [Server thread/ERROR]: Encountered an unexpected exception
net.minecraft.util.ReportedException: Ticking memory connection
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:198) ~[NetworkSystem.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) ~[MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) ~[MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) ~[IntegratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
Caused by: java.lang.NullPointerException
at ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47) ~[Taser.class:?]
at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164) ~[ItemStack.class:?]
at net.minecraft.server.management.ItemInWorldManager.tryUseItem(ItemInWorldManager.java:345) ~[ItemInWorldManager.class:?]
at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:576) ~[NetHandlerPlayServer.class:?]
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74) ~[C08PacketPlayerBlockPlacement.class:?]
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122) ~[C08PacketPlayerBlockPlacement.class:?]
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) ~[NetworkManager.class:?]
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) ~[NetworkSystem.class:?]
... 5 more
[08:41:31] [Server thread/ERROR]: This crash report has been saved to: C:\forgemodding\eclipse\.\crash-reports\crash-2017-04-18_08.41.31-server.txt
[08:41:31] [Server thread/INFO]: Stopping server
[08:41:31] [Server thread/INFO]: Saving players
[08:41:31] [Server thread/INFO]: Saving worlds
[08:41:31] [Server thread/INFO]: Saving chunks for level 'generator'/Overworld
[08:41:31] [Server thread/INFO]: Saving chunks for level 'generator'/Nether
[08:41:31] [Server thread/INFO]: Saving chunks for level 'generator'/The End
[08:41:31] [Server thread/INFO] [FML]: Unloading dimension 0
[08:41:31] [Server thread/INFO] [FML]: Unloading dimension -1
[08:41:31] [Server thread/INFO] [FML]: Unloading dimension 1
[08:41:31] [Server thread/INFO] [FML]: Applying holder lookups
[08:41:31] [Server thread/INFO] [FML]: Holder lookups applied
[08:41:31] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
[08:41:32] [Client thread/FATAL]: Unreported exception thrown!
java.lang.NullPointerException
at ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47) ~[Taser.class:?]
at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164) ~[ItemStack.class:?]
at net.minecraft.client.multiplayer.PlayerControllerMP.sendUseItem(PlayerControllerMP.java:430) ~[PlayerControllerMP.class:?]
at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1558) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.runTick(Minecraft.java:2045) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1040) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
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 net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
at GradleStart.main(Unknown Source) [start/:?]
[08:41:32] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: ---- Minecraft Crash Report ----
// There are four lights!
Time: 18.04.17 8:41
Description: Unexpected error
java.lang.NullPointerException: Unexpected error
at ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47)
at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164)
at net.minecraft.client.multiplayer.PlayerControllerMP.sendUseItem(PlayerControllerMP.java:430)
at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1558)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:2045)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1040)
at net.minecraft.client.Minecraft.run(Minecraft.java:962)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47)
at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164)
at net.minecraft.client.multiplayer.PlayerControllerMP.sendUseItem(PlayerControllerMP.java:430)
at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1558)
-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityClientPlayerMP['Player533'/180, l='MpServer', x=160,21, y=66,62, z=1406,98]]
Chunk stats: MultiplayerChunkCache: 400, 400
Level seed: 0
Level generator: ID 00 - default, ver 1. Features enabled: false
Level generator options:
Level spawn location: World: (-256,64,-160), Chunk: (at 0,4,0 in -16,-10; contains blocks -256,0,-160 to -241,255,-145), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
Level time: 192579 game time, 156352 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 78 total; [EntityCreeper['Крипер'/256, l='MpServer', x=92,56, y=16,00, z=1447,00], EntityCreeper['Крипер'/257, l='MpServer', x=212,56, y=46,00, z=1474,50], EntityCreeper['Крипер'/258, l='MpServer', x=210,41, y=46,00, z=1479,69], EntityCreeper['Крипер'/259, l='MpServer', x=212,16, y=47,00, z=1481,25], EntityCreeper['Крипер'/260, l='MpServer', x=211,00, y=46,00, z=1475,44], EntityCreeper['Крипер'/261, l='MpServer', x=210,31, y=46,00, z=1474,31], EntityBat['Летучая мышь'/263, l='MpServer', x=149,28, y=34,89, z=1335,97], EntityBat['Летучая мышь'/270, l='MpServer', x=88,81, y=40,07, z=1467,03], EntityZombie['Зомби'/181, l='MpServer', x=157,94, y=21,00, z=1400,50], EntityClientPlayerMP['Player533'/180, l='MpServer', x=160,21, y=66,62, z=1406,98], EntityEnderman['Эндермен'/183, l='MpServer', x=172,47, y=48,00, z=1381,50], EntityZombie['Зомби'/184, l='MpServer', x=144,41, y=21,00, z=1390,97], EntityCreeper['Крипер'/185, l='MpServer', x=186,97, y=41,00, z=1413,59], EntityBat['Летучая мышь'/186, l='MpServer', x=138,56, y=15,20, z=1398,00], EntityZombie['Зомби'/187, l='MpServer', x=134,44, y=23,00, z=1401,91], EntityEnderman['Эндермен'/188, l='MpServer', x=173,53, y=69,00, z=1422,06], EntitySkeleton['Скелет'/189, l='MpServer', x=128,50, y=24,00, z=1411,50], EntityZombie['Зомби'/190, l='MpServer', x=130,53, y=24,00, z=1412,03], EntitySkeleton['Скелет'/191, l='MpServer', x=132,84, y=27,00, z=1390,28], EntityCreeper['Крипер'/192, l='MpServer', x=128,50, y=26,00, z=1377,50], EntityCreeper['Крипер'/193, l='MpServer', x=131,66, y=26,00, z=1381,56], EntityCreeper['Крипер'/194, l='MpServer', x=129,50, y=26,00, z=1384,50], EntityCreeper['Крипер'/195, l='MpServer', x=130,72, y=26,00, z=1381,00], EntitySpider['Паук'/196, l='MpServer', x=132,78, y=26,00, z=1382,98], EntityWitch['Ведьма'/197, l='MpServer', x=204,50, y=50,00, z=1411,50], EntityCreeper['Крипер'/198, l='MpServer', x=186,63, y=57,00, z=1429,50], EntityCreeper['Крипер'/199, l='MpServer', x=179,70, y=59,00, z=1425,73], EntityZombie['Зомби'/200, l='MpServer', x=187,31, y=57,00, z=1431,41], EntityZombie['Зомби'/201, l='MpServer', x=183,50, y=59,00, z=1424,97], EntitySkeleton['Скелет'/202, l='MpServer', x=188,22, y=57,00, z=1431,56], EntityZombie['Зомби'/203, l='MpServer', x=196,41, y=59,00, z=1432,00], EntityCreeper['Крипер'/204, l='MpServer', x=130,03, y=23,00, z=1371,53], EntityCreeper['Крипер'/205, l='MpServer', x=206,50, y=41,00, z=1427,50], EntityZombie['Зомби'/206, l='MpServer', x=196,47, y=60,00, z=1430,97], EntityZombie['Зомби'/207, l='MpServer', x=199,50, y=58,00, z=1431,50], EntitySpider['Паук'/208, l='MpServer', x=121,88, y=16,00, z=1396,53], EntitySpider['Паук'/209, l='MpServer', x=123,00, y=16,00, z=1399,16], EntityZombie['Зомби'/210, l='MpServer', x=152,66, y=22,00, z=1449,09], EntityBat['Летучая мышь'/211, l='MpServer', x=126,50, y=27,10, z=1383,56], EntityCreeper['Крипер'/212, l='MpServer', x=127,50, y=26,00, z=1378,50], EntityBat['Летучая мышь'/213, l='MpServer', x=128,19, y=27,07, z=1382,78], EntityCreeper['Крипер'/214, l='MpServer', x=132,68, y=26,00, z=1384,30], EntitySkeleton['Скелет'/215, l='MpServer', x=127,50, y=26,00, z=1383,50], EntityBat['Летучая мышь'/216, l='MpServer', x=113,75, y=52,10, z=1382,94], EntityCreeper['Крипер'/217, l='MpServer', x=217,50, y=42,00, z=1418,50], EntityCreeper['Крипер'/218, l='MpServer', x=211,50, y=50,00, z=1413,50], EntityZombie['Зомби'/219, l='MpServer', x=129,00, y=21,00, z=1442,56], EntityZombie['Зомби'/220, l='MpServer', x=131,50, y=23,00, z=1446,56], EntityBat['Летучая мышь'/221, l='MpServer', x=123,31, y=24,26, z=1436,44], EntityCreeper['Крипер'/222, l='MpServer', x=123,88, y=19,00, z=1433,75], EntityZombie['Зомби'/223, l='MpServer', x=132,66, y=47,00, z=1361,66], EntitySpider['Паук'/224, l='MpServer', x=212,13, y=44,00, z=1436,75], EntityCreeper['Крипер'/225, l='MpServer', x=216,41, y=53,00, z=1429,00], EntityEnderman['Эндермен'/226, l='MpServer', x=103,50, y=19,00, z=1403,50], EntityZombie['Зомби'/227, l='MpServer', x=170,34, y=37,00, z=1466,31], EntityZombie['Зомби'/228, l='MpServer', x=171,38, y=37,00, z=1466,66], EntitySpider['Паук'/229, l='MpServer', x=159,72, y=27,00, z=1465,72], EntityZombie['Зомби'/230, l='MpServer', x=230,50, y=32,00, z=1414,50], EntitySkeleton['Скелет'/231, l='MpServer', x=233,69, y=32,00, z=1414,66], EntitySkeleton['Скелет'/232, l='MpServer', x=232,50, y=32,00, z=1409,84], EntityCreeper['Крипер'/233, l='MpServer', x=141,50, y=35,00, z=1341,50], EntitySkeleton['Скелет'/234, l='MpServer', x=231,50, y=33,00, z=1373,50], EntityZombie['Зомби'/235, l='MpServer', x=238,53, y=32,00, z=1428,13], EntityZombie['Зомби'/236, l='MpServer', x=219,91, y=49,00, z=1436,47], EntitySquid['Спрут'/237, l='MpServer', x=195,50, y=58,00, z=1468,50], EntitySquid['Спрут'/238, l='MpServer', x=205,41, y=61,38, z=1467,94], EntitySquid['Спрут'/239, l='MpServer', x=202,53, y=59,00, z=1469,50], EntitySquid['Спрут'/240, l='MpServer', x=203,47, y=57,09, z=1466,69], EntitySquid['Спрут'/241, l='MpServer', x=201,38, y=60,31, z=1462,22], EntityCreeper['Крипер'/242, l='MpServer', x=107,38, y=38,00, z=1455,03], EntityCreeper['Крипер'/244, l='MpServer', x=239,50, y=29,00, z=1450,50], EntityCreeper['Крипер'/245, l='MpServer', x=220,09, y=37,00, z=1463,53], EntityCreeper['Крипер'/246, l='MpServer', x=214,50, y=46,00, z=1468,50], EntitySquid['Спрут'/247, l='MpServer', x=206,50, y=59,00, z=1469,50], EntityCreeper['Крипер'/248, l='MpServer', x=153,03, y=26,00, z=1473,53], EntitySkeleton['Скелет'/249, l='MpServer', x=87,50, y=19,00, z=1421,50], EntityBat['Летучая мышь'/254, l='MpServer', x=98,59, y=37,01, z=1462,28], EntityCreeper['Крипер'/255, l='MpServer', x=91,41, y=16,00, z=1452,03]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2567)
at net.minecraft.client.Minecraft.run(Minecraft.java:991)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)
Dahaka написал(а):Тебе уже ответили.
hohserg написал(а):https://mcforge.readthedocs.io/en/latest/datastorage/extendedentityproperties/
Это единственное адекватное решение. В твоем случае можно даже не синхронизировать с клиентом.
Ловишь ивент боли и устанавливаешь таймер.
AustereTony написал(а):Вот тут я кидал ссылку на гайд: Тема
Этот гайд устарел, но я реализовал эффекты на 1.7.10 так что вполне годно.
public static Potion customPotion;
public void preInit(FMLPreInitializationEvent event) {
Potion[] potionTypes = null;
for (Field f : Potion.class.getDeclaredFields()) {
f.setAccessible(true);
try {
if (f.getName().equals("potionTypes") || f.getName().equals("field_76425_a")) {
Field modfield = Field.class.getDeclaredField("modifiers");
modfield.setAccessible(true);
modfield.setInt(f, f.getModifiers() & ~Modifier.FINAL);
potionTypes = (Potion[])f.get(null);
final Potion[] newPotionTypes = new Potion[256];
System.arraycopy(potionTypes, 0, newPotionTypes, 0, potionTypes.length);
f.set(null, newPotionTypes);
}
}
catch (Exception e) {
System.err.println("Severe error, please report this to the mod author:");
System.err.println(e);
}
}
MinecraftForge.EVENT_BUS.register(new EventHooks());
}
public void load(FMLInitializationEvent event) {
customPotion = (new PotionTaser(458, false, 0)).setIconIndex(0, 0).setPotionName("potion.customPotion");
}
asdqwertypro написал(а):Код:ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47) ~[Taser.class:?]
и ещё: там на сайте было сказано не удалять @ForgeSubscribe но он красным выделен и там ток 2 фикса:
создать аннотацию или Fix project setup
AustereTony написал(а):Ты в PreInit создаешь массив для эффектов размером в 256, а при регистрации эффекта даёшь ему id 458.
Doc написал(а):asdqwertypro написал(а):Код:ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47) ~[Taser.class:?]
и ещё: там на сайте было сказано не удалять @ForgeSubscribe но он красным выделен и там ток 2 фикса:
создать аннотацию или Fix project setup
Строчка 47 вызывает ошибку.
Используй @SubscribeEvent
Doc написал(а):asdqwertypro написал(а):Код:ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47) ~[Taser.class:?]
и ещё: там на сайте было сказано не удалять @ForgeSubscribe но он красным выделен и там ток 2 фикса:
создать аннотацию или Fix project setup
Строчка 47 вызывает ошибку.
Используй @SubscribeEvent
Doc написал(а):asdqwertypro написал(а):Код:ru.gamer.hackmod.Taser.onItemRightClick(Taser.java:47) ~[Taser.class:?]
и ещё: там на сайте было сказано не удалять @ForgeSubscribe но он красным выделен и там ток 2 фикса:
создать аннотацию или Fix project setup
Строчка 47 вызывает ошибку.
Используй @SubscribeEvent
AustereTony написал(а):Покажи класс своего предмета. Что ты такого пытаешься сделать в onItemRightClick?
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entity) {
entity.addPotionEffect (new PotionEffect (Main.customPotion.id, 200, 1));
}