Posted June 6, 2016 So I'm been playing around with the Rod of Eruption and the Wand of the Sea and neither will work. I've tried all kinds of settings but it is always the same. The rod will plant and then will get up to the 50dmg message of.. [19:29:32] The rod of eruption starts to pulsate with a bright light, drawing from the ground. But then when the next message is due to appear at 75dmg nothing happens. The damage continues to be taken until the item disappears. I've been trying to take a look at the code to see if there are any clues as to why it is not working since it is not just me but several people have been having this issue. It makes me wonder if it was disabled somehow? private boolean pollHatching() { if(this.isAbility()) { if(this.isPlanted()) { if((int)this.damage == 3) { Server.getInstance().broadCastMessage("The " + this.getName() + " starts to emanate a weird worrying sound.", this.getTileX(), this.getTileY(), this.isOnSurface(), 50); this.setRarity((byte)2); } if((int)this.damage == 50) { Server.getInstance().broadCastMessage("The " + this.getName() + " starts to pulsate with a bright light, drawing from the ground.", this.getTileX(), this.getTileY(), this.isOnSurface(), 50); this.setRarity((byte)3); } if((int)this.damage == 75) { Server.getInstance().broadCastMessage("The ground around " + this.getName() + " is shivering and heaving! Something big is going to happen here soon! You have to get far away!", this.getTileX(), this.getTileY(), this.isOnSurface(), 50); } else if((int)this.damage == 95) { Server.getInstance().broadCastMessage(LoginHandler.raiseFirstLetter(this.getName() + " is now completely covered in cracks. Run!"), this.getTileX(), this.getTileY(), this.isOnSurface(), 50); } else if((int)this.damage == 99) { Server.getInstance().broadCastMessage(LoginHandler.raiseFirstLetter(this.getNameWithGenus() + " is gonna explode! Too late to run..."), this.getTileX(), this.getTileY(), this.isOnSurface(), 20); } } } else if((int)this.damage == 85) { Server.getInstance().broadCastMessage("Cracks are starting to form on " + this.getNameWithGenus() + ".", this.getTileX(), this.getTileY(), this.isOnSurface(), 20); } else if((int)this.damage == 95) { Server.getInstance().broadCastMessage(LoginHandler.raiseFirstLetter(this.getNameWithGenus() + " is now completely covered in cracks."), this.getTileX(), this.getTileY(), this.isOnSurface(), 20); } else if((int)this.damage == 99) { Server.getInstance().broadCastMessage(LoginHandler.raiseFirstLetter(this.getNameWithGenus() + " stirs as something emerges from it!"), this.getTileX(), this.getTileY(), this.isOnSurface(), 20); } return this.setDamage(this.damage + 1.0F); } It is when it gets to if((int)this.damage == 75) { That the code just seems to stop working. The code for the actual terraforming events is is the TerraformingTask.class I have also tried other things like making a focus zone and then changing it in the database to focuszone 1 (which is a volcano). That didn't work either Share this post Link to post Share on other sites
Posted June 6, 2016 (edited) I've spawned a couple of volcanos on my server using the Rod Of Eruption, as well as the water terraforming event from the Wand Of Seas. If they made a change to Rod of Eruption, it was recent because I have spawned them before. I will look into it. Edited June 6, 2016 by WesncIsMe Share this post Link to post Share on other sites
Posted June 6, 2016 I noticed this as well, I am not sure which update broke it or why it is broken. Those else if's look wrong, and I don't see it triggering an actual volcano creation only sending messages.... Share this post Link to post Share on other sites
Posted June 6, 2016 Yeah I've heard that it worked before one of the newer updates. We have noticed that after dmg71 it is becoming unplanted, not sure if that has anything to do with it? Me and some of my friends are going to keep looking into it and see if we can't fix this for everyone. Share this post Link to post Share on other sites
Posted June 6, 2016 Oh Xyp, this is the trigger for the terraforming event further down the code.. the bit that checks to see if the item id is 1009 is the RoE when it checks the decay. final boolean checkDecay() { if(this.isHugeAltar()) { return false; } else if(this.qualityLevel > 0.0F && this.damage < 100.0F) { return false; } else { boolean decayed = true; if(this.ownerId != -10L) { Creature task = null; try { task = Server.getInstance().getCreature(this.getOwnerId()); try { Action changes = task.getCurrentAction(); if(changes.getSubjectId() == this.id) { changes.stop(false); } } catch (NoSuchActionException var10) { ; } Communicator changes1 = task.getCommunicator(); if(this.isEgg()) { changes1.sendNormalServerMessage(LoginHandler.raiseFirstLetter(this.getNameWithGenus()) + " hatches!"); this.hatch(); if(this.getTemplateId() == 466) { Item me = null; me = TileRockBehaviour.createRandomGem(); if(me != null) { task.getInventory().insertItem(me, true); changes1.sendNormalServerMessage(LoginHandler.raiseFirstLetter("You find something in the " + this.getName()) + "!"); } } } else { changes1.sendNormalServerMessage(LoginHandler.raiseFirstLetter(this.getNameWithGenus()) + " is useless and you throw it away."); } } catch (NoSuchPlayerException | NoSuchCreatureException var11) { ; } } else { this.sendDecayMess(); if(this.isEgg()) { this.hatch(); } if(this.isPlanted() && this.hatching) { if(this.getTemplateId() == 805) { IslandAdder task1 = new IslandAdder(Server.surfaceMesh, Server.rockMesh); Map changes2 = task1.forceIsland(50, 50, this.getTileX() - 25, this.getTileY() - 25); if(changes2 != null) { Iterator var5 = changes2.entrySet().iterator(); while(var5.hasNext()) { Entry me1 = (Entry)var5.next(); Integer x = (Integer)me1.getKey(); Set set = (Set)me1.getValue(); Iterator var9 = set.iterator(); while(var9.hasNext()) { Integer y = (Integer)var9.next(); Players.getInstance().sendChangedTile(x.intValue(), y.intValue(), true, true); } } } } else if(this.getTemplateId() == 1009) { TerraformingTask task2 = new TerraformingTask(, (byte), this.creator, 2, , true); task2.setCoordinates(); task2.setSXY(this.getTileX(), this.getTileY()); } } } Items.destroyItem(this.id); return decayed; } } Share this post Link to post Share on other sites
Posted June 8, 2016 Well, that code checks to see if it's planted. So I'd guess the code that unplants things when their effective QL drops below 10 is interfering, as a hunch. Share this post Link to post Share on other sites
Posted June 8, 2016 When the damage reaches 71 the rod becomes unplanted. So we think that is the issue.. might try taking the check to see if it's planted out of the code for when it gets higher then 71. If I figure it out I'll let you guys know since I know others are interested. Share this post Link to post Share on other sites
Posted July 19, 2016 (edited) just for reference to people that want this to work. change if(this.isPlanted() && this.hatching) { to if(this.hatching) { in server.jar!\com\wurmonline\server\items\Item.class will disable the isplanted check for wand of the seas and rod of eruption. They will then work as intended. Edited July 19, 2016 by ausimus 1 Share this post Link to post Share on other sites
Posted July 19, 2016 Can this be made into a mod, a lot of server owners really do not want to change the .jar file after every update, Also could have it change the mechanic of the volcano too. Ie lower erruotions etc. Share this post Link to post Share on other sites
Posted July 20, 2016 I'm not very proficient with the modloader but should be possible. Share this post Link to post Share on other sites
Posted July 24, 2016 Threw the fix into a mod for who ever wants it http://www.filedropper.com/customchanges The code for anyone interested, need to define the imports your self if you want to use it. http://pastebin.com/vKpNmPi6 2 Share this post Link to post Share on other sites
Posted February 27, 2017 Does anyone still have a link for this? Current link is dead. 1 Share this post Link to post Share on other sites
Posted March 4, 2017 It's a very simple change without a mod if you really need it. Quote change if(this.isPlanted() && this.hatching) { to if(this.hatching) { in server.jar!\com\wurmonline\server\items\Item.class Share this post Link to post Share on other sites
Posted March 4, 2017 wands where fixed in 1.3 update they now work like there supose to. Share this post Link to post Share on other sites
Posted March 4, 2017 Oh sweet didn't even know they were fixed haha Share this post Link to post Share on other sites
Posted March 4, 2017 Well, there goes my pristine idyllic server.............. ERUPT ALL MOUNTAINS! Share this post Link to post Share on other sites