joedobo

Members
  • Content count

    3984
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by joedobo

  1. I'd suggest making an actual model.dae (collada) and then ask in the modding forum how you would go about getting it into the game.
  2. Valrei International. 086

    I don't trust WO to prevent unique creatures from bashing into my deed. (imo, they should be able to bash out of a deed and never spawn on a deed) And thus, I'm looking for suggestions on securing animals. The only one I can come up with is hitching all horses to vehicles. But Hell horses won't stay hitched to a vehicle. Some animals can't be hitched at all. For me I have a greenish brown bear and some hell horses I'm not sure how to protect. Thanks for your ideas in advance.
  3. Code Help Please

    WU vanilla code is very lacking when it comes to java docs. If you askin specific question in modding Discord (or here too) we can probably help advise on what method(s) would be best to get object xyz.
  4. Code Help Please

    Make a method in your mod that does what you want and it can be written with Java. You'll likely only have access to the MyTile object. Although, there are static methods in WU that let you look up information for a tile or volatile zone. Then use Javassist expression editor to replace the return value from the wurm method with the return value from your new method. Javassist page has a tutorial on this. You could use bytecode to change it also but that isn't the easists approach.
  5. How to get started modding?

    Java mainly. You can make some mods with Javascript and the script runner tool in ago's server mod launcher. One area that seems to be different with WU modding is using bytecode to make edits to Java Virtual Machine (JVM). A lot of mods tend to avoid the bytecode path as it is full of pitfalls. But it's also very versatile in that you can do anything with it. To keep things simple I'd stick with with JavaScript via script-runner. Using Java reflection to change various things about vanilla is good. And Java + the action-performer/behaviour-provider in modlauncher is also good.
  6. Client helper mod

    Is it possible to add a fishing macro for the new system? I've been looking into a ways to reimplement the keybind and wait play style. 1. Send fishing comand. 2. choose a location that is at max rod cast distance and directly in front of where the player is facing. Cast the line out to this location. 3. Wait for the fish to bite and auto pull it in. Execute all three of those with a single keybind.
  7. [WIP] Ghost Tower Guard Mod

    Hopefully I've got enough checks in here to stop tower griefing. Here's the two I hope will work best to protect player's deeded zoos. Thanks for the tip@Mthec // NO attacking creatures that aren't threats. if (Arrays.stream(player.getLatestAttackers()) .noneMatch(longId -> longId == target.getWurmId())) { communicator.getPlayer().getCommunicator().sendNormalServerMessage( "Ghosts won't attack a creature that isn't currently or hasn't recently threatened you."); return MessagePolicy.PASS; } // No village permission to attack on deed. @Nullable Village occupiedVillage = Villages.getVillage(target.getTileX(), target.getTileY(), target.isOnSurface()); if (occupiedVillage != null && (!occupiedVillage.isActionAllowed((short)326, player) || !occupiedVillage.isActionAllowed((short)716, player))) { communicator.getPlayer().getCommunicator().sendNormalServerMessage( String.format("Ghosts refuse to help you because village %s has denied you attacking permission", occupiedVillage.getName())); } The others are here if your curious: https://github.com/Joedobo27/GhostTowerGuardMod/blob/cd6a58f42d960e0d6527aac05d4328013d2ac97f/src/main/java/com/joedobo27/gtgm/GhostTower.java#L38 Lastly, I'm have a sporadic issue with initializing Wurm classes (Creature, Player) in the javassist intended init() section. It's really weird so I'd like to somehow catch this when it happens and just just skip the mod. I'd rather have a warning in the log file and have modlauncher skip the mod then have it all crash. I'm not sure how difficult it is to do this.
  8. [WIP] Ghost Tower Guard Mod

    This server mod (for use with Ago's server modlauncher) will add custom guard towers designed for PvE and especially folks who would like the option to not fight . The primary goal with these is to have simple towers not subjected to vanilla WU tower mechanics. My goal is to have few restriction over them. The server owner will be able to configure guard strength. This customed strength could be anything between not being able to kill a rat all the way to one hit killing a venerable red dragon. After asking for help within the tower's range a guard will be created right on top of the mob and immediately start attacking it. It's a ghost so they can just appear wherever, right? Source on GitHub: https://github.com/Joedobo27/GhostTowerGuardMod No releases at the moment as it's not ready. Although, the code is on github if you wanted to clone it and mess around. Requires https://github.com/Joedobo27/jdbCommon/releases https://github.com/ago1024/WurmServerModLauncher/releases I could use some help at this point (1/28/2019). #1) The onPlayerMessage() modloader hook so I can trigger events when players ask for help is loading WU bases classes too early and causing an error: java.lang.RuntimeException: com.wurmonline.server.players.Player class is frozen There is a bunch of these too: [07:25:23 AM] WARNING org.gotti.wurmunlimited.modloader.EarlyLoadingChecker: Mod GhostTowerGuardMod loaded server class com.wurmonline.server.creatures.Creature during phase load When I remove the PlayerMessageListener interface and its required methods the error goes away. #2) Also, I"m not sure if creature AI can be setup to destroy itself if its target no longer exists. I want to create a ghost, have it target and attack the mob. Once the target is dead have the ghost disappear and delete itself. I'm not asking you to do this. I just want to know how difficult it is before I start digging into it. I've never done anything with creature AI.
  9. [WIP] Ghost Tower Guard Mod

    I'm surprised putting things in init doesn't cause a bunch of class frozen problems with javassist edits. Now, if you were careful and didn't use any WU classes it could work out. It's clearly setup that way in ago's creature demo and that has worked for some time.
  10. [WIP] Ghost Tower Guard Mod

    I'm make slow but steady progress with this. I fixed all the early loader problems by relocating code and using long wurmId's instead of wurm objects. Here are some new questions: 1. I'd like to run object clean up code to handle edge cases. Every 6 hours or so I want to check that the GhostTower objects have a matching Wurm item object and if that is lacking remove the tower. I can inject the needed code into say Item.poll() but I don't understand the polling frequency. And I need this to make a proper RNG roll that success about every 6 hours. 2. I foresee some doofus using these to grief people. I'm pretty sure they will attack other players at the moment. Also, it would be easy to build a tower next to a deed and kill all the animals on it. Currently I'm think about these limitations: Ghosts won't attack targets of the same kingdom as the player asking for help. No attacking hitched creatures. does branding make an animal of the same kingdom? things like branding, cared-for, tame, equipped-with-gear are all possible filters for blocking. Any other ideas? 3. Where do others put creature template creation? I put mine in onServerStarted() but that seem too late.
  11. [Req] Fermentation Speed

    One could make a new recipe that creates booze by simply cooking ingredients in a cooker. Although, that might be too fast. Along the lines of this fast, one could probably add a simple creation entry to make it. If we want to just speed up Wurm's booze production it's going to take a bunch of bytecode hacking as there is a lot of this kind of thing in pollDistilling and pollFermenting. They are RNG events tied in with polling frequency in order to achieve some desired overall distill or fermentation time. ////////////////////// //if (Server.rand.nextInt(20) == 0) { // this.pollFermenting(); //}
  12. (request) Turn pelts to hide/leather

    I started to make a scriptrunner javascript mod for this (which is below in the code section) but I ran into a problem where it makes 3kg leathers. That is the standard weight for a leather. I can't figure out how to reduce the weight of the finished product using CreationEntryCreator.createSimpleEntry(). Note that setUseTemplateWeight() doesn't seem to do anything. One could make a custom action performer mod to do this but that is more then I wanted to do. var CreationEntryCreator = Packages.com.wurmonline.server.items.CreationEntryCreator; var SkillList = Packages.com.wurmonline.server.skills.SkillList; var ItemList = Packages.com.wurmonline.server.items.ItemList; var CreationCategories = Packages.com.wurmonline.server.items.CreationCategories var Logger = Packages.java.util.logging.Logger; var logger = Logger.getLogger("com.joedobo27.scriptRunnerMods.pelt-to-leather-creation"); function onServerStarted() { var creation = CreationEntryCreator.createSimpleEntry(SkillList.LEATHERWORKING, ItemList.lye, ItemList.pelt, ItemList.leather, true, true, 0.0, false, false, CreationCategories.RESOURCES); creation.setDepleteFromSource(200); creation.setDepleteFromTarget(200); creation.setUseTemplateWeight(true); logger.info("Pelts can be converted to leather with lye."); } If you want to use this save the code as a .js file and put it in the onServerStarted scriptrunner directory. It may look something like this: WU\WU-Server\mods\scriptrunner\scripts\onServerStarted
  13. Since when did we decided it was okay to make games less fun? If no one wants to use it, it should speak volumes as to how good the addition actually is. It's worth noting that I'm going to do exactly what the OP wants in WU with a mod.
  14. Do you like the new fishing system?

    -1 on the system. I was going to commend why until I saw Retrograde going on and on. Rolf your making a mistake letting that person to do what he does.
  15. I keep seeing people mention fishing afk and I'd like to point out that is a terrible idea to do. I was fishing semi-afk once. I saw the macro question popup. I didn't answer it right away but did answer it about 15 minutes later. I got the question right. low and behold my priest Tarq was banned the next day for Macro. So be it, I don't like talking to GM's so I just moved on. But I'd like to point out its a terrable idea to think you can fish afk. You need to be able to respond the question right away or the GM's will ban you. btw, I'm not at all excited for this convoluted fishing system but lucky I'll just mod it out (or mod the old system back in) in WU.
  16. [RELEASED] Simple Paving Mod

    It works for me so it should as far as I know. I decided to switch to using a common library mod. Delete the "SimplePavingMod" folder inside the "mods" folder. Get the latest release and unpack it into the same folder as server.jar. Get jdbCommon and do the same thing.
  17. [RELEASED] Simple Paving Mod

    This is a WU server mod that makes paving more convenient. To use it simply make a paving item active and use it on a tile. You can change pavement types by making a new pave item active and using it on a paved tile to change things around. You don't need to tear up the old to change it around. -Caves- The default tile here is the plain old cave tile. The chisel is used to remove pavement and it will turn the tile into a cave tile. The tiles don't need to be reinforced or prepped with mortar. This makes it considerably easier to reinforce a cave floor and it's a tradeoff in order to improve creative freedom. -Outside- The default title here is packed dirt. The chisel is used to remove pavement and it will turn the tile into a packed dirt. You can pave whole tiles or the nearest corner. -Bridges- The default tile is whatever the bridge's normal tile is. Using a chisel will remove pavement and return the tile to bridge default type. There are no restriction on the kind of bridges or pavements you can do. (imo) Freedom to do stuff even if it's silly or looks weird is important. If you pave a rope bridge it will look very silly. Putting heaving stone pavers on a wooden bridge may not be realistic but giving the player creative freedom is more important then realism limitations. If you don't like something, don't use it. Required Ago's WurmServerModLauncher: https://github.com/ago1024/WurmServerModLauncher/releases My common librar mod: https://github.com/Joedobo27/jdbCommon/releases Install Get one of the archive releases and unpack it into the folder with server.jar. The archive structure is setup to put the mod in the mods folder. https://github.com/Joedobo27/SimplePavingMod/releases
  18. [ABANDONED] Fishing Ignores Range mod, [SERVER MOD]

    I got a tool now that might solve my old problem of bytecode breaking when WU updates. I hate updating lots of stuff. If it works I'll make this work again. But also want to wait until the new fishing thing is out. It might be okay, but generally I disagree with Tich's game design choices (she did the core of the fishing update) and want to change them so I'm guessing something will need to be changed with it.
  19. This is fishing related mod which will let you: Option to remove proximity requirements. This lets you target any tile (game doesn't let you target more then ~10 tiles away) , start fishing, and move anywhere you want all without the fish action not getting canceled. Option to change it so fishing in caves is more productive. Option to remove the limitation that blocks you from fishing and swimming at the same time. Option to add additional information to the initial fishing message about the fishing action. e.g. "[21:31:48] You throw out the line and start fishing in the deep sea. It's at most -310 deep near here." There are three types of water: pond, lake and deep sea. A pond is a very small body of water. Deep sea is many water tiles and a depth of at least -250. Lake is whatever doesn't fit into the other two. Each water type has restrictions on the type of fish you can catch. For the pond it's roach and perch. For lake it's roach, perch, trout, pike and catfish. Deep sea is everything. Latest release tested on WU 1.1.2.3(b) * Required: Ago's WurmServerModLauncher. https://github.com/ago1024/WurmServerModLauncher/releases * Releases are here: https://github.com/Joedobo27/FishingIgnoresRange/releases/latest * Install: Get one of the archive releases and unpack it into the mods folder. The folder path should look something like this: ~Steam\SteamApps\common\Wurm Unlimited Dedicated Server\mods
  20. What do you look for in a map?

    Keep in mind the maximums slope mounts and vehicles can pass. I've always treated this as a single slope must be less then 40 or the sum of a compound slope must be less then 40. There is an actual formula I believe. The optimal map would be where a significant portion of the map is pretty flat, next largest would be hilly where those hills don't prevent mounted/vehicle movement, and the last and smallest portion are supper steep mountains. Some water is good but water is pretty much wasted space in Wurm and I think it should be kept to a minimum. But if you like the look of that and are playing with few people space is very much a surplus.
  21. Better measuring jug

    Anyone know if the the action method in ItemBehaviour would let use make this? With jug active, drag some water over to cooking container and the game would automatically move however much water is needed for the recipe. This would likely only work if you did water as the last step to eliminate possible alternative recipes.
  22. Priest overhaul testing

    Before I only needed one priest, Paaweeler and now I will need three. All I care about is item enchanting. In my opnion, these changes completely fail at creating a reason to play a priest as a main for PvE.
  23. Priest overhaul testing

    It's possible Wurm could let us convert without premium assuming our toon was a priest before premium time ran out. A toon in this state is a quasi priest. And many of the missing abilities are gone only because the code has special conditional logic to remove them if the toon isn't premium. If I was a business and I actually cared about my customers I'd let toons who where priest before but currently don't have premium be able to use the transfer.
  24. Mod conflicts mod

    In some cases listing modified methods may not help that much. This is because WU likes to use huge catchall-all complex methods. We do some some simple or single purpose methods (like we would expect in Java OOP). But there are also methods that are thousands of lines long with 10 levels deep of if-else logic. It's better then nothing if folks where to list modification. Where would we put such notes? and is there a better way then the author writing notes after every change?
  25. Priest overhaul testing

    Will the faith transfer work for toons who don't currently have premium? I'm likely going to abandon all player gods and go back to the old way of having 3 alt priests, one for each WL god. Will there be a limited window on the free faith swap? Will we be able to transfer to lib freely from any other priest?