Jump to content

Dr_Cox1911

Member
  • Posts

    814
  • Joined

Everything posted by Dr_Cox1911

  1. The best setup that I know of is if Jetbrains IntelliJ Community Edition in conjunction with the guide from Konijima. If you follow this setup you will end up with awesome autocompletion and easy access to the decompiled source code to look up how certain things behave.
  2. You should have a round button at the left side (where the heart-symbol is) which has "client" writte on it. Click on it and you will see a small panel with a few buttons for various client settings you can alter. In there you will find the factions button.
  3. This is due to mods altering the inventory. Try it without any mods and see if it works. If yes, then add back in one mod at a time.
  4. For linux hosting I can really recommend the LGSM-scripts. With this hosting is pretty easy and yet so customizable.
  5. I'm currently handling the Steam workshop version, but if Fenris wants someone else to take it over I'm more than willing to give it to someone. If not: @Fenris_Wolf: Should I update to the new version? Back in the day we agreed that you will poke me if I should update the version.
  6. Dr_Cox1911

    TPDOID

    That's done on purpose, just look back almost a year where tooilet paper was horded like crazy. So TIS did this as a little easer egg.
  7. So glad that this massive update is here! Can't wait to give this a proper go tomorrow.
  8. I'm really glad that the mod spotlight is back and hope that it will be published on a somewhat regular basis
  9. Thanks for making this, had it on my todo-list for ages. One thing that is needed for my upcoming mod though: can I target a simple gridsquare (even one that is currently not loaded because no player is around)?
  10. @leon2356I quickly skimmed through the sourcecode and found a couple of mentions of Axeman. Don't know if these are all of them though: IsoGameCharacter.class protected float calculateCombatSpeed() { float f = 1.0F; HandWeapon handWeapon = null; if (getPrimaryHandItem() != null && getPrimaryHandItem() instanceof HandWeapon) { handWeapon = (HandWeapon)getPrimaryHandItem(); f *= ((HandWeapon)getPrimaryHandItem()).getBaseSpeed(); } WeaponType weaponType = WeaponType.getWeaponType(this); if (handWeapon != null && handWeapon.isTwoHandWeapon() && getSecondaryHandItem() != handWeapon) f *= 0.77F; if (handWeapon != null && this.Traits.Axeman.isSet() && handWeapon.getCategories().contains("Axe")) f *= getChopTreeSpeed(); f -= getMoodles().getMoodleLevel(MoodleType.Endurance) * 0.07F; f -= getMoodles().getMoodleLevel(MoodleType.HeavyLoad) * 0.07F; f += getWeaponLevel() * 0.03F; f += getPerkLevel(PerkFactory.Perks.Fitness) * 0.02F; f *= Rand.Next(1.1F, 1.2F); f *= this.combatSpeedModifier; f *= getArmsInjurySpeedModifier(); if (getBodyDamage() != null && getBodyDamage().getThermoregulator() != null) f *= getBodyDamage().getThermoregulator().getCombatModifier(); f = Math.min(1.6F, f); f = Math.max(0.8F, f); if (handWeapon != null && handWeapon.isTwoHandWeapon() && weaponType.type.equalsIgnoreCase("heavy")) f *= 1.2F; return f * GameTime.getAnimSpeedFix(); } public float getChopTreeSpeed() { return (this.Traits.Axeman.isSet() ? 1.25F : 1.0F) * GameTime.getAnimSpeedFix(); } HandWeapon.class public float getSpeedMod(IsoGameCharacter paramIsoGameCharacter) { if (this.ScriptItem.Categories.contains("Blunt")) { int i = paramIsoGameCharacter.getPerkLevel(PerkFactory.Perks.Blunt); if (i >= 10) return 0.65F; if (i >= 9) return 0.68F; if (i >= 8) return 0.71F; if (i >= 7) return 0.74F; if (i >= 6) return 0.77F; if (i >= 5) return 0.8F; if (i >= 4) return 0.83F; if (i >= 3) return 0.86F; if (i >= 2) return 0.9F; if (i >= 1) return 0.95F; } if (this.ScriptItem.Categories.contains("Axe")) { int i = paramIsoGameCharacter.getPerkLevel(PerkFactory.Perks.Axe); float f = 1.0F; if (paramIsoGameCharacter.Traits.Axeman.isSet()) f = 0.95F; if (i >= 10) return 0.65F * f; if (i >= 9) return 0.68F * f; if (i >= 8) return 0.71F * f; if (i >= 7) return 0.74F * f; if (i >= 6) return 0.77F * f; if (i >= 5) return 0.8F * f; if (i >= 4) return 0.83F * f; if (i >= 3) return 0.86F * f; if (i >= 2) return 0.9F * f; if (i >= 1) return 0.95F * f; return 1.0F * f; } if (this.ScriptItem.Categories.contains("Spear")) { int i = paramIsoGameCharacter.getPerkLevel(PerkFactory.Perks.Spear); if (i >= 10) return 0.65F; if (i >= 9) return 0.68F; if (i >= 8) return 0.71F; if (i >= 7) return 0.74F; if (i >= 6) return 0.77F; if (i >= 5) return 0.8F; if (i >= 4) return 0.83F; if (i >= 3) return 0.86F; if (i >= 2) return 0.9F; if (i >= 1) return 0.95F; } return 1.0F; } IsoTree public void WeaponHit(IsoGameCharacter paramIsoGameCharacter, HandWeapon paramHandWeapon) { int i = paramHandWeapon.getConditionLowerChance() * 2 + paramIsoGameCharacter.getMaintenanceMod(); if (!paramHandWeapon.getCategories().contains("Axe")) i = paramHandWeapon.getConditionLowerChance() / 2 + paramIsoGameCharacter.getMaintenanceMod(); if (Rand.NextBool(i)) paramHandWeapon.setCondition(paramHandWeapon.getCondition() - 1); paramIsoGameCharacter.getEmitter().playSound("ChopTree"); WorldSoundManager.instance.addSound(null, this.square.getX(), this.square.getY(), this.square.getZ(), 20, 20, true, 4.0F, 15.0F); setRenderEffect(RenderEffectType.Hit_Tree_Shudder, true); float f = paramHandWeapon.getTreeDamage(); if (paramIsoGameCharacter.Traits.Axeman.isSet() && paramHandWeapon.getCategories().contains("Axe")) f *= 1.5F; this.damage = (int)(this.damage - f); if (this.damage <= 0) { this.square.transmitRemoveItemFromSquare(this); paramIsoGameCharacter.getEmitter().playSound("FallingTree"); this.square.RecalcAllWithNeighbours(true); int j = this.LogYield; byte b; for (b = 0; b < j; b++) { this.square.AddWorldInventoryItem("Base.Log", 0.0F, 0.0F, 0.0F); if (Rand.Next(4) == 0) this.square.AddWorldInventoryItem("Base.TreeBranch", 0.0F, 0.0F, 0.0F); if (Rand.Next(4) == 0) this.square.AddWorldInventoryItem("Base.Twigs", 0.0F, 0.0F, 0.0F); } reset(); CellLoader.isoTreeCache.add(this); for (b = 0; b < IsoPlayer.numPlayers; ) { LosUtil.cachecleared[b] = true; b++; } IsoGridSquare.setRecalcLightTime(-1); GameTime.instance.lightSourceUpdate = 100.0F; LuaEventManager.triggerEvent("OnContainerUpdate"); } LuaEventManager.triggerEvent("OnWeaponHitTree", paramIsoGameCharacter, paramHandWeapon); } I guess those things you would have to mimic in Lua if a baseballbat is equipped and the character wielding it has your trait.
  11. Greetings Tangos! First things first: I've absolutely no knowledge about 3D-models in PZ, but I know a few basic things about modding in PZ (or at least where I can look for info 😁) In order to start modding PZ you should start with the basics, that is script-files for items and Lua for pretty much everything else. @Fenris_Wolfcreated an awesome beginners guide on github, after you have worked your way through this you should have some basic knowledge. The next crucial thing in my opinion is getting familiar with the base Lua files and the Java classes PZ ships with. For the Lua files you will simply need a texteditor to look at, but for the Java classes you will need something to decompile them. Other modders (me included) use JD-GUI for this. Next steps are: look at other mods that do similiar things that you want to achieve. There are so many awesome mods out there with good written code to look at. These will help you get started. That are for me the first steps to start modding in PZ. The other modders are very friendly and all chip in to help a fellow modder in need, so don't despair and either use the forum here or go to the official PZ Discord and participate in the modding-channel.
  12. Would it be possible to Support the Tag Mod from Maris: More Mod tags
  13. Currently at Work, but damn this looks nice!
  14. Dr_Cox1911

    [WIP] Mod Options

    I did previously start something similiar myself. Are your mod options synced to clients as well? I previously wanted a way to let admins change some mod settings right through the game, so my framework consisted of a hookable UI that a mod can add a page to. These settings would then be transfered to the server and propagated to all clients. I never really got it done 100%.
  15. Dr_Cox1911

    PriZon Break

    I'm really eager to try the new menu style, before I play it I can't really tell which control scheme I like more, but this seems pretty sleek. MP news is good as always👍
  16. Greetings ToastyPancakes, as syfy already said we need more info regarding the server. Could you provide the following info: Server hardware Server "type" (V-Server, root, on your gaming machine, ...) Server internet connection Player count RAM addressed to the PZ-server itself That's all I can think of from the top of my head right now. After you posted this info we might see the culprit and can point you in the right direction.
  17. Only thing that I see missing in your list is maybe something like "Framework". I think about something like @Fenris_WolfProfession Framework. I know that there aren't that many mods that would fit in this category, but maybe it's something to consider? Otherwise your list seems pretty complete and I can't think of anything else.
  18. Dr_Cox1911

    Zed OwnerZhip

    Those new lived in details looks so good, can't wait to find all these little things. The MP progress seems like we get a sleek system lying underneath, take your time TIS.
  19. Dr_Cox1911

    Zed Paddling

    MP-progress is looking good! I've got a few questions regarding the zombie update settings interface though. What exactly do these values mean? Especially T1, I have no clue what that means.
  20. Wie wird denn jetzt eigentlich die Übersetzung gepflegt? Das Github Repository aus dem ersten Beitrag gibt es ja nicht mehr.
  21. @WATTOThose are the perks for the current stable build 40.43:
  22. @mendoncaI have the same problem as @Peter Lion, the program doesn't do anything upon executing in Windows 10.
  23. The following is not really a solution to your problem, but might point you in the right direction. The event "OnHitZombie" is called like this in IsoZombie.class: LuaEventManager.triggerEvent("OnHitZombie", this, paramIsoGameCharacter, bodyPartType, paramHandWeapon); So I guess your parameters in your function "CombatOnHitZombie" are wrong. I quickly printed the Event hook to this event, the output is this: LOG : General, 1586779565623> -- SHARED: OnHitZombie(zombie.characters.IsoZombie@2e627dd, zombie.characters.IsoPlayer@427590b4, Head, zombie.inventory.types.HandWeapon@1a4a79f9) LOG : General, 1586779565623> -- LOG : General, 1586779565623> -- LOG : General, 1586779565623> -------------------------------------- LOG : General, 1586779565623> -- CLIENT: OnHitZombie(zombie.characters.IsoZombie@2e627dd, zombie.characters.IsoPlayer@427590b4, Head, zombie.inventory.types.HandWeapon@1a4a79f9) LOG : General, 1586779565623> -- LOG : General, 1586779565623> -- LOG : General, 1586779565623> -------------------------------------- LOG : General, 1586779565623> -- SERVER: OnHitZombie(zombie.characters.IsoZombie@2e627dd, zombie.characters.IsoPlayer@427590b4, Head, zombie.inventory.types.HandWeapon@1a4a79f9) LOG : General, 1586779565623> -- LOG : General, 1586779565623> -- If I did everything right (sorry, kinda rusted regarding PZ modding) you can see that the event is fired from every "game-type" and has the arguments passed to the registered function "IsoZombie zombieThatWasHit, IsoPlayer playerThatHitTheZombie, BodyPartType bodyPartThatWasHit, HandWeapon weaponThatHitTheZombie" Hope this helps you.
  24. @leon2356Will try it out! I have one small suggestion though, you should add the profession framework as a dependency for your workshop mod, so that if people subscribe to your mod they automatically get PFM. @Fenris_WolfShould I bump the version on the workshop?
  25. Dr_Cox1911

    Zed Packets

    So much glory MP news! Can't wait to dive in deep again.
×
×
  • Create New...