Sign in to follow this  
ozmods

how hard is it to add new models

Recommended Posts

Hello!

 

So I followed the conversation and tried it myself. I carefully arranged the mod structure like Ago described it. Including the structure of the curtainspack.jar

 

I noticed on server startup I get the following log messages. Maybe thats the same what ozmods is getting? I can craft the item correctly, but I also get that brown bag with the question mark.

 

First:

[01:57:54 PM] INFORMATION model: Created item template 22764 for blue curtain

 

A bit further down:

Spoiler

 

[01:57:55 PM] WARNUNG com.wurmonline.server.Items: Problem getting Template for item blue curtain (11477061517058) @1534,975- No item template with id 22765
com.wurmonline.server.items.NoSuchTemplateException: No item template with id 22765
    at com.wurmonline.server.items.ItemTemplateFactory.getTemplate(ItemTemplateFactory.java:88)
    at com.wurmonline.server.Items.loadAllZoneItems(Items.java:943)
    at com.wurmonline.server.Server.startRunning(Server.java:842)
    at com.wurmonline.server.ServerLauncher.runServer$1(ServerLauncher.java:119)
    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 org.gotti.wurmunlimited.modloader.server.ProxyServerHook$1$1.invoke(ProxyServerHook.java:56)
    at org.gotti.wurmunlimited.modloader.classhooks.HookManager.invoke(HookManager.java:344)
    at com.wurmonline.server.ServerLauncher.runServer(ServerLauncher.java)
    at com.wurmonline.server.gui.WurmServerGuiController.startGame(WurmServerGuiController.java:1221)
    at com.wurmonline.server.gui.WurmServerGuiController.startBtnClicked(WurmServerGuiController.java:141)
    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 sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
    at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
    at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Node.fireEvent(Node.java:8413)
    at javafx.scene.control.Button.fire(Button.java:185)
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
    at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:417)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
    at com.sun.glass.ui.View.notifyMouse(View.java:937)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
    at java.lang.Thread.run(Thread.java:745)


 

 

 

 

 

Edited by Arduin

Share this post


Link to post
Share on other sites

I don't get a model for the hitchinpost, too. But the hitchingpost mod doesn't produce this exception. Thats weird. But there are no additional entries in the client log. So this bag is been shown for both my curtains and the hitchingpost

 

VK7gdKO.png

 

Another Edit:

 

Is this maybe related to the serverpacks mod in some way? I never touched the properties file. Do I have to write something in there too, so the files are being propagated to my client? Currently all entries in that file are commented out. Also the client serverpacks mod has no properties file, intended?

 

Spoiler

classname=org.gotti.wurmunlimited.mods.serverpacks.ServerPackMod
classpath=serverpacks.jar
#Set a fixed port. If no port is selected a random free port will be used
#serverPort=8787
# Use this to announce a different server name or IP address to the clients
# By default the setting "External Server IP Address" will be used for pack URLs
# This setting may be required when doing port forwarding in the router
#publicServerAddress=
# Use this to announce a different server port to the client
# By default the serverPort or the automaticly choosen port will be used
# This setting may be required when doing port forwarding in the router
#publicServerPort=
# Sets a different address for the HTTP server to bind to. Can be 0.0.0.0 to
# bind to all interfaces. Default is external ip in server settings.
#internalServerAddress=

 

Yet another Edit:

I double checked, the client doesn't seem to load the packs of my testmod and your hitchingpost mod. No pack files in the client folder

 

Final Edit:

I just added the contents of the hitchingpostpack by hand into the graphics.jar of the client and added the entries to the mapping file. It works, so it seems to be serverpacks related? Tada:

 

fcwAP2L.jpg

Edited by Arduin

Share this post


Link to post
Share on other sites

On the server you should get log messages like this:

[05:30:13 PM] INFORMATION org.gotti.wurmunlimited.mods.serverpacks.ServerPackMod: Added pack A0553A65523FE3159852CCAF022C54E021E81492 for pack mods\hitchingpost\hitchingpostpack.jar

[05:30:13 PM] INFORMATION org.gotti.wurmunlimited.mods.serverpacks.ServerPackMod: Added pack 206FC8F745BA32FB7D9A6B9D99566CA7FD3A8587 for pack mods\curtains\curtainspack.jar

 

On the client with the serverpacks mod for the client installed you'll get those messages in the console window

INFORMATION: Got server pack A0553A65523FE3159852CCAF022C54E021E81492 (http://tamias.ago.vpn:62254/serverpacks/A0553A65523FE3159852CCAF022C54E021E81492)

INFORMATION: Got server pack 206FC8F745BA32FB7D9A6B9D99566CA7FD3A8587 (http://tamias.ago.vpn:62254/serverpacks/206FC8F745BA32FB7D9A6B9D99566CA7FD3A8587)

 

and once they have downloaded

INFORMATION: Added server pack 206FC8F745BA32FB7D9A6B9D99566CA7FD3A8587

INFORMATION: Added server pack A0553A65523FE3159852CCAF022C54E021E81492

 

At this point you should be able to see the hitching post and the curtains.

 

If something went wrong there will be errors in the client console.

 

Share this post


Link to post
Share on other sites

Ahhh ok thanks for that hint. I am still new to this ;)

 

Ok works flawless, I just used the model of the coffer as a test. Just two things bother me now, first that exception mentioned a few posts earlier with the ID. Second... the size is wrong :D

 

Edit: Ups, I am dumb, ok forget the size thingy.. I just have found the dimensions specification in the script. Doh!

 

 

Edited by Arduin

Share this post


Link to post
Share on other sites

You probably had different iterations of the scripts over the last days. It's possible that the id changed. My template used "yourname.curtain.blue". If that id was changed then new items will get a new template id.

 

I think the dimensions are not used to render the item. I think there was a different property for a size modifier. It's possible the coffer requires that to render correctly.

Share this post


Link to post
Share on other sites

@Arduincan you please post your mappings.txt file so I can see what you did, specifically the curtain bit

 

@agoto answer your question yes the hitching post works flawlessly.

 

just not sure why the curtains bit isn't working.

Share this post


Link to post
Share on other sites

@agolooooooook what I got working...

man you are a legend thankyou for being patient with me, this is awesome, so now the question remains how do I add more scripts so I can make other t ypes of curtains etc.

 

thankyou sir

 

366220_20171021153324_1.png

Share this post


Link to post
Share on other sites

yeah thanks, man appreciate all the help. I still need your help though lol. how do I get it work so that I can use the other curtain styles, as well??

 

thanks

Share this post


Link to post
Share on other sites

@ozmods very nice! I am glad to see you worked it out :) The curtain looks beautiful

Share this post


Link to post
Share on other sites

you can either copy the .js files and modify them for each curtain type or duplicate and modify the code in the functions. Copying the files is probably the easiest.

Share this post


Link to post
Share on other sites

so in other words I would have xyz_curtainspack1.jar 2 3 and so on??

 

thanks for the help. it's just a shame that I cant bring my car models over to wurm can you imagine driving a car across the wurm world, I think that'd be awesome lol...

 

anyways have a great weekend thanks for all the help. you are one of the most useful and helpful persons on this forum, cheers.

Share this post


Link to post
Share on other sites

No, you can add them all into one file curtainspack.jar. After all the models would probably just be retextured versions of the same dae.

 

But  you'd need multiple versions of the files template.js and recipe.js which make the item known to the server and craftable. It would probably be best to name them accordingly too. Like template-blue-curtains.js and recipe-blue-curtains.js

Edited by ago

Share this post


Link to post
Share on other sites

Oh right yep ive got what your saying now, thanks i will look at it tmrw.

 

cheers once again

Share this post


Link to post
Share on other sites
9 hours ago, ozmods said:

@agolooooooook what I got working...

man you are a legend thankyou for being patient with me, this is awesome, so now the question remains how do I add more scripts so I can make other t ypes of curtains etc.

 

thankyou sir

 

366220_20171021153324_1.png

Glad you got it working. Arkonick sure made a nice curtain model

Edited by Governor
  • Like 1

Share this post


Link to post
Share on other sites

Thanks yeah, just a shame that i had to jump through hoops to get it to work though lol, i would love to b able to release it for others to use... But we all know how that will work out, so i will use it on my own private server instead lol

  • Like 1

Share this post


Link to post
Share on other sites

when I try and and make a copy of the template and recipe files the originals don't show in game, do I need to change an ID from 640 to 41 or something..

 

thansk

Share this post


Link to post
Share on other sites

Hello @ago

 

Can you explain me in any form, how to use eg. an existing chair but with a new style and add it as new item with your scripts at the first page?

Would be nice in german ;)

 

Thanks mate
Eject

Share this post


Link to post
Share on other sites

In the copied scripts you'll have to adjust the item id "yourname.curtain.blue" and the model name "model.decoration.curtains.". The 640 is just the icon number.

Edited by ago
  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this