Jump to content

Profession Framework Mod


Fenris_Wolf

Recommended Posts

  • 2 months later...
  • 2 weeks later...

Ok,

 

So I inserted the lines to re-name weapon as per your (chef) example...

 

So far a renamed pistol has worked great!!  But applying this to an SKS, worked only initially.... a reload via 'Stripper clip', reverted  the name back...  At least I think that is what caused it to revert.

 

 

 

Link to comment
Share on other sites

1 hour ago, Arsenal26 said:

But applying this to an SKS, worked only initially.... a reload via 'Stripper clip', reverted  the name back...  At least I think that is what caused it to revert.

Stripper clip wouldn't cause that..I but renaming firearms really doesnt work so well...due to the way attachments go on..it decides if a attachment fits by reading the display name...and occasionally ORGM replaces a gun with a new copy (copying all attachments and condition, but not name), but that usually only happens after ORGM gets updated.

I'm not sure what would have caused it in this case, but the renaming of firearms this way is not advised.

Link to comment
Share on other sites

21 minutes ago, Fenris_Wolf said:

Stripper clip wouldn't cause that..I but renaming firearms really doesnt work so well...due to the way attachments go on..it decides if a attachment fits by reading the display name...and occasionally ORGM replaces a gun with a new copy (copying all attachments and condition, but not name), but that usually only happens after ORGM gets updated.

I'm not sure what would have caused it in this case, but the renaming of firearms this way is not advised.

 

K.... so no "Bin Laden's - Gold plated AK-47"

 

 

Link to comment
Share on other sites

  • 1 year later...

1.1-beta uploaded to github (build 41 compatible)

 

  • added spawn key to profession tables, for custom spawn locations.

  • added clothing key to profession tables, for adding/editting character creation clothing options.

  • added SundayDriver2, SpeedDemon2, and BaseballPlayer2 as profession traits.

  • fixed trait key removeInMP being overwritten by requiresSleepEnabled

  • fixed trait key requiresSleepEnabled applying wrong value

  • Refactored functions in the client file into the main ProfessionFramework table.

  • Rewrote and expanded internal documentation in LDoc syntax

  • Included HTML documentation for the API in the docs folder.

Link to comment
Share on other sites

1 minute ago, Dr_Cox1911 said:

Should I push this new version to Steam? Or should I wait till you lift it out of the beta status?

Lets wait for now, I still need to do more testing and had a few features i wanted to implement, plus more updated examples and touchups on the documentation.

Just didn't want to hold back the github version since the clothing features for custom profession outfits are handy ^_^

Link to comment
Share on other sites

12 hours ago, Arsenal26 said:

Noticed this awhile back, not sure if I mentioned it... 

 

Adding SpeedDemon to a New Profession does not remove it from the available traits list... So you'll have it, but it will then be possible to pick it again, and have it twice ?

Make sure you're adding SpeedDemon2 not SpeedDemon, since that's the profession version of the trait.

SpeedDemon2 was missing from earlier versions (added into the beta) and should be mutually exclusive with the regular version

Link to comment
Share on other sites

8 hours ago, Fenris_Wolf said:

Make sure you're adding SpeedDemon2 not SpeedDemon, since that's the profession version of the trait.

SpeedDemon2 was missing from earlier versions (added into the beta) and should be mutually exclusive with the regular version

 

Roger that, Thanks!

 

Link to comment
Share on other sites

  • 2 weeks later...

FYI... getting this error after 41.17

 

 

 


LOG  : General, 1572290333327> STACK TRACE
LOG  : General, 1572290333337> -----------------------------------------
LOG  : General, 1572290333347> Callframe at: setMutualExclusive
LOG  : General, 1572290333356> function: doTraits -- file: 2ProfessionFramework.lua line # 165
ERROR: General, 1572290333367> java.lang.reflect.InvocationTargetException
ERROR: General, 1572290333377>     at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
ERROR: General, 1572290333387>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
ERROR: General, 1572290333397>     at java.lang.reflect.Method.invoke(Method.java:498)
ERROR: General, 1572290333407>     at se.krka.kahlua.integration.expose.caller.MethodCaller.call(MethodCaller.java:61)
ERROR: General, 1572290333418>     at se.krka.kahlua.integration.expose.LuaJavaInvoker.call(LuaJavaInvoker.java:198)
ERROR: General, 1572290333428>     at se.krka.kahlua.integration.expose.LuaJavaInvoker.call(LuaJavaInvoker.java:188)
ERROR: General, 1572290333438>     at se.krka.kahlua.vm.KahluaThread.callJava(KahluaThread.java:186)
ERROR: General, 1572290333448>     at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:1006)
ERROR: General, 1572290333458>     at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:167)
ERROR: General, 1572290333468>     at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1942)
ERROR: General, 1572290333479>     at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1774)
ERROR: General, 1572290333489>     at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:66)
ERROR: General, 1572290333499>     at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java:134)
ERROR: General, 1572290333509>     at zombie.Lua.Event.trigger(Event.java:37)
ERROR: General, 1572290333519>     at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:50)
ERROR: General, 1572290333529>     at zombie.core.Core.ResetLua(Core.java:3481)
ERROR: General, 1572290333539>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
ERROR: General, 1572290333548>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
ERROR: General, 1572290333558>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
ERROR: General, 1572290333568>     at java.lang.reflect.Method.invoke(Method.java:498)
ERROR: General, 1572290333578>     at se.krka.kahlua.integration.expose.caller.MethodCaller.call(MethodCaller.java:61)
ERROR: General, 1572290333588>     at se.krka.kahlua.integration.expose.LuaJavaInvoker.call(LuaJavaInvoker.java:198)
ERROR: General, 1572290333598>     at se.krka.kahlua.integration.expose.LuaJavaInvoker.call(LuaJavaInvoker.java:188)
ERROR: General, 1572290333607>     at se.krka.kahlua.vm.KahluaThread.callJava(KahluaThread.java:186)
ERROR: General, 1572290333617>     at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:1006)
ERROR: General, 1572290333627>     at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:167)
ERROR: General, 1572290333637>     at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1942)
ERROR: General, 1572290333647>     at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1744)
ERROR: General, 1572290333657>     at se.krka.kahlua.integration.LuaCaller.pcall(LuaCaller.java:76)
ERROR: General, 1572290333666>     at zombie.ui.UIElement.onMouseUp(UIElement.java:1137)
ERROR: General, 1572290333676>     at zombie.ui.UIElement.onMouseUp(UIElement.java:1091)
ERROR: General, 1572290333686>     at zombie.ui.UIElement.onMouseUp(UIElement.java:1091)
ERROR: General, 1572290333696>     at zombie.ui.UIManager.update(UIManager.java:767)
ERROR: General, 1572290333706>     at zombie.GameWindow.logic(GameWindow.java:234)
ERROR: General, 1572290333715>     at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
ERROR: General, 1572290333725>     at zombie.GameWindow.frameStep(GameWindow.java:673)
ERROR: General, 1572290333734>     at zombie.GameWindow.run_ez(GameWindow.java:594)
ERROR: General, 1572290333744>     at zombie.GameWindow.mainThread(GameWindow.java:460)
ERROR: General, 1572290333754>     at java.lang.Thread.run(Thread.java:745)
ERROR: General, 1572290333764> Caused by: java.lang.NullPointerException
ERROR: General, 1572290333774>     at zombie.characters.traits.TraitFactory.setMutualExclusive(TraitFactory.java:113)
ERROR: General, 1572290333784>     ... 39 more

 

 

Edited by Arsenal26
Link to comment
Share on other sites

7 minutes ago, Fenris_Wolf said:

 

Heh when initially made the mod, nope. Got PZ through GoG. Not really a big fan of steam.
I do use it now, but basically only for IWBUMS testing and providing support on ORGM's workshop page.

Ah yes. Ofcourse! Forgot about IWBUMS being only on steam xD but I really like steam but then again I have been using steam my whole life haha 

Link to comment
Share on other sites

  • 1 month later...

Added some new experimental features to the github version. 2 new settings for traits:

restricted =  a table list of profession names. If this table exists, any other professions not listed here will be unable to select the trait.

required = a table list of trait names. If this table exists, the traits listed here must be selected before this trait can be chosen.

 

This will allow for some pretty insane character creation depth, and full 'skill-trees' (trait-trees really).

Some light examples of refining the burglar profession:

-- burglars with mechanics trait and speed demon can also pick this
ProfessionFramework.addTrait('CarThief', {
    name = "UI_trait_CarThief", -- "Car Thief",
    description = "UI_trait_CarThiefDesc", -- "Professional car thief",
    cost = 3,
    restricted = {"burglar"},
    requires = {"Mechanics", "SpeedDemon" },
    xp = {
        [Perks.Electricity] = 1,
        [Perks.Mechanics] = 2,
    },
})

-- burglars with dextrous can pick this
ProfessionFramework.addTrait('SmashNGrab', {
    name = "UI_trait_SmashNGrab", -- "Smash and Grab",
    description = "UI_trait_SmashNGrabDesc", -- "Get in, get out, get paid.",
    cost = 3,
    restricted = {"burglar"},
    requires = {"Dextrous"},
    xp = {
        [Perks.ShortBlunt] = 1,
        [Perks.Sprinting] = 1,
    },
})

 

Some more complex examples:

 

-- the semi-deactivated marksman trait (+20% hit chance)
-- activated as a non-free trait for all professions
ProfessionFramework.addTrait('Marksman2', {
    name = "UI_trait_marksman",
    description = "UI_trait_marksmandesc",
    cost = 5,
    swap = "Marksman", -- swap with the real trait on start
})

-- police and military marksmen can pick sniper training
ProfessionFramework.addTrait('Sniper', {
    name = "UI_trait_Sniper", -- "Sniper",
    description = "UI_trait_SniperDesc", -- "Basic Sniper Training",
    cost = 2,
    required = {"Marksman2"}, -- requires this trait to be selected first
    restricted = {"policeofficer", "veteran"}, -- restricted to these professions
    xp = {
        [Perks.Aiming] = 1,
    },
})


-- military can also pick spec-ops training
ProfessionFramework.addTrait('SpecOps', {
    name = "UI_trait_SpecOps", -- "Spec-Ops Training",
    description = "UI_trait_SpecOpsDesc", -- "Special Forces Training",
    cost = 3,
    restricted = {"veteran"},
    xp = {
        [Perks.Aiming] = 1,
        [Perks.Reloading] = 1,
        [Perks.Strength] = 1,
        [Perks.Fitness] = 1,
    },
})

-- with basic sniper training and spec-ops training, the 
-- spec-ops sniper is now unlocked.
ProfessionFramework.addTrait('SpecSniper', {
    name = "UI_trait_SpecSniper", -- "Spec-Ops Sniper",
    description = "UI_trait_SpecSniperDesc", -- "The Reaper",
    cost = 2,
    required = {"SpecOps", "Sniper"},
    xp = {
        [Perks.Aiming] = 1,
        [Perks.Sneak] = 1,
        [Perks.Lightfoot] = 1,
    },
})

-- spec-ops combat engineering training is also available...
ProfessionFramework.addTrait('SpecEngineer', {
    name = "UI_trait_SpecEngineer", -- "Spec-Ops Engineer",
    description = "UI_trait_SpecEngineerDesc", -- "Any job, any time."
    cost = 4,
    required = {"SpecOps", "Mechanics"},
    xp = {
        [Perks.Mechanics] = 1,
        [Perks.Electricity] = 1,
        [Perks.Maintenance] = 1,
        [Perks.WoodWork] = 1,
    },
    recipes = { "Make Aerosol bomb", "Make Flame bomb", "Make Pipe bomb", "Make Noise generator", "Make Smoke Bomb" }
})

 

 

During the character creation process, changing professions or removing selected traits will also remove any selected traits that are no-longer valid (requirements not met).

 

 

 

Edited by Fenris_Wolf
Link to comment
Share on other sites

  • 2 months later...

Hello, good day,

 Im searching all forum and mods to a way to increase item transfer time, then i found this framework.

 

How can i edit the trait " Dextrous " to increase item transfer time to 100% or more?

Edited by Sheltered
Link to comment
Share on other sites

On 3/6/2020 at 10:38 AM, Sheltered said:

 Im searching all forum and mods to a way to increase item transfer time, then i found this framework.

Framework can't really help you there. It's more for editing cost and other attributes of traits and professions, adding new ones, starting equipment etc.

It doesn't change the mechanics behind those traits.

Link to comment
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
×
×
  • Create New...