Jump to content

Recommended Posts

Posted

Hi,

i am making a magic mod and now i am running out of ideas.

What i have :

A custom ore that drops a dust called shadow dust. It's used for all kind of magic.

A machine called magic injector. It's used to inject magic into wands and some other items.

4 different wands. Wooden, iron and golden ones that can made in a crafting table. A blaze wand is made with a magic altar, only if you allready have an iron wand.

Wands can have different amounts of magic injected, have different recharge speed and amount of usage before they need to reload.

Injectable magics are Flamethrower, Lightning bolt, light, growing vines for climbing, short distance teleporter, growth like bonemeal, spawn cob webs, mining and ice water.

Diamonds can be injected with magic to gems used for other things, like long distance teleporter.

A jar, that at the moment can only take a heart of an undead (rearly droped by custom zombie mob) . The heart will bump and as faster it bumps, as more mobs are in 20 block range around it.

An altar, that has an main block with 4 pedestrals around. It's used for crafting high tier stuff, like the blaze wand and a magic chest with 9 slots, that will randomly increase his own inventar.

A custom dimension, that looks like the overworld, but with lakes out of poison liquid and a structure, i want to expand to a dungeon under earth.

Iron can be injected with magic for tools (something between iron and diamond) and a full set of armor.

Strings can be injected with magic to magic string, that's used to make a robe.

Armor and robe will ingrease the durabillity and power of wands and rise the chances of altar crafting and lower the misscrafting on an altar.

The portal to the custom dimension can only be activated with golden or blaze wand.

A glas injected with magic will take the texture of blocks beside, when placed, but you can walk through.

Rune stones that can be arranged around the altar to ingrease the chances of getting increments back and reduce the problem, that sometimes no magic happens, but increment are gone.

There are 24 different runes that can be crafted on the altar and then combined (clicked on) the rune stones. Every rune also changes behavor of the altar, depending on what kind of rune it is. Each rne has differend recipe.

 

Now i am running out of ideas. What can i do next?

What do you think is missing?

 

  • 3 weeks later...
Posted
On 9/6/2017 at 0:03 PM, Dustpuppy said:

Some picture of what i have and what's going on.

 

 

Definatly, if there is a pic, I cannot see it, also - are long distance teliporters those magic mirrors?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • https://privatebin.net/?0b840573a8db7fcb#8DPu21Wo8wdqDU4nNm1rTrv4GY7qpfDGR87zyWHiNLpB
    • I am writing a code that stores String List in a player capability. And I need to sync it to client so I could access it via Minecraft.getMinecraft.player. I use messages for that and everything works fine until I work with the PlayerClone event. According to the logs it should work just fine but for some reason it just doesn't. You need to reconnect to the world to resync everything (messages do work when I use it in PlayerLoggedInEvent). Here is my code:   CapabilitySync.java public class CapabilitySync { @SubscribeEvent public void onPlayerLogsIn(PlayerLoggedInEvent event) { EntityPlayer player = event.player; //That thing works just fine NetworkHandler.channel.sendTo(new ServerToClient(player), (EntityPlayerMP) player); } @SubscribeEvent public void onPlayerClone(PlayerEvent.Clone event) { EntityPlayer player = event.getEntityPlayer(); IFolder folder = player.getCapability(FolderProvider.FOLDER_CAP, null); IFolder oldfolder = event.getOriginal().getCapability(FolderProvider.FOLDER_CAP, null); folder.setFolders(oldfolder.getFolders()); // This part doesn't work NetworkHandler.channel.sendTo(new ServerToClient(player), (EntityPlayerMP) player); } } NetworkHandler.java public class NetworkHandler { public static SimpleNetworkWrapper channel = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID); public static void init() { channel.registerMessage(ClientToServer.Handler.class, ClientToServer.class, 0, Side.SERVER); channel.registerMessage(ServerToClient.Handler.class, ServerToClient.class, 1, Side.CLIENT); } public static IThreadListener getThreadListener(MessageContext ctx) { return ctx.side == Side.SERVER ? (WorldServer) ctx.getServerHandler().player.world : getClientThreadListener(); } @SideOnly(Side.CLIENT) public static IThreadListener getClientThreadListener() { return Minecraft.getMinecraft(); } } ClientToServer / ServerToClient messages public class ClientToServer implements IMessage { private List<String> folders; private int folders_count; public ClientToServer () {} public ClientToServer (IFolder folder) { this.folders = folder.getFolders(); this.folders_count = folder.size(); } @Override public void fromBytes(ByteBuf buf) { folders = new ArrayList<>(); folders_count = buf.readInt(); for (int i = 0; i < folders_count; i++) { folders.add(ByteBufUtils.readUTF8String(buf)); } } @Override public void toBytes(ByteBuf buf) { buf.writeInt(folders_count); for (int i = 0; i < folders_count; i++) { ByteBufUtils.writeUTF8String(buf, folders.get(i)); } } public List<String> getFolders (){ return this.folders; } public static class Handler implements IMessageHandler<ClientToServer, IMessage> { @Override public IMessage onMessage(ClientToServer message, MessageContext ctx) { EntityPlayerMP serverPlayer = ctx.getServerHandler().player; NetworkHandler.getThreadListener(ctx).addScheduledTask(() -> { IFolder old_folders = serverPlayer.getCapability(FolderProvider.FOLDER_CAP, null); List<String> new_folders = message.getFolders(); old_folders.setFolders(new_folders); }); return null; } } } public class ServerToClient implements IMessage { private List<String> folders; private int folders_count; public ServerToClient() {} public ServerToClient(EntityPlayer server_player) { this.folders = server_player.getCapability(FolderProvider.FOLDER_CAP, null).getFolders(); this.folders_count = folders.size(); } @Override public void fromBytes(ByteBuf buf) { folders = new ArrayList<>(); folders_count = buf.readInt(); for (int i = 0; i < folders_count; i++) { folders.add(ByteBufUtils.readUTF8String(buf)); } } @Override public void toBytes(ByteBuf buf) { buf.writeInt(folders_count); for (int i = 0; i < folders_count; i++) { ByteBufUtils.writeUTF8String(buf, folders.get(i)); } } public List<String> getFolders (){ return this.folders; } public static class Handler implements IMessageHandler<ServerToClient, IMessage> { @Override public IMessage onMessage(ServerToClient message, MessageContext ctx) { NetworkHandler.getThreadListener(ctx).addScheduledTask(() -> { Minecraft mc = Minecraft.getMinecraft(); IFolder old_folders = mc.player.getCapability(FolderProvider.FOLDER_CAP, null); List<String> new_folders = message.getFolders(); old_folders.setFolders(new_folders); }); return null; } } ClientProxy.java (where I access the capability through a client player) public class ClientProxy extends CommonProxy { @SubscribeEvent public void onKeyInput(KeyInputEvent event) { if (Keybinds.KEY_u.isPressed()) { EntityPlayer playerSP = Minecraft.getMinecraft().player; IFolder folder = playerSP.getCapability(FolderProvider.FOLDER_CAP, null); folder.add("UUUUU"); NetworkHandler.channel.sendToServer(new ClientToServer(folder)); } else if (Keybinds.KEY_i.isPressed()) { EntityPlayer playerSP = Minecraft.getMinecraft().player; IFolder folder = playerSP.getCapability(FolderProvider.FOLDER_CAP, null); for (String f : folder.getFolders()) { String message = f; playerSP.sendMessage(new TextComponentString(message)); } }else if (Keybinds.KEY_o.isPressed()) { EntityPlayer playerSP = Minecraft.getMinecraft().player; IFolder folder = playerSP.getCapability(FolderProvider.FOLDER_CAP, null); Minecraft.getMinecraft().displayGuiScreen(new DefaultGUI(folder)); } } }  
    • do you guys want to Mack a youtude video  
    • my game is crashing all the time and i dont know why, pls help   here is the crash report:  https://paste.ee/p/72Wz6
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.