Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Modifying House Keeper Attributes?!

Newbie Spellweaver
Joined
Apr 17, 2013
Messages
46
Reaction score
13
I know its possible, as I've seen it done @ CoA, wonder if anyone has any idea how it is done?!

I know HK is kept in binary, but I don't see any changes when HK is modified / used. What am I missing?
 
Newbie Spellweaver
Joined
Apr 17, 2013
Messages
46
Reaction score
13
I think you are right, bit I don't think they have it all time. They were refreshing HK list every hour or something even faster due to list being server wide.

I found table in objectdb, but when I extracted DB file from FDB, it does not look much like the one in DB.

What would be best way to make change in ObjectDB and export into db file to replace one in FDB?



Never mind, figured out after watching mupu's video. Got them all @ 100 in all fields.
 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Jul 25, 2021
Messages
22
Reaction score
18
You can use the following lua code to modify your housekeeper attributes:

WriteServantValue( id , EM_HouseServantValueType_Tired, 0 )
WriteServantValue( id , EM_HouseServantValueType_Value0, 100 ) --Intimacy
WriteServantValue( id , EM_HouseServantValueType_Value1, 100 ) --Charm

WriteServantValue( id , EM_HouseServantValueType_Value3, 100 ) --Magic
WriteServantValue( id , EM_HouseServantValueType_Value4, 100 ) --Battle
WriteServantValue( id , EM_HouseServantValueType_Value5, 100 ) --Protection
WriteServantValue( id , EM_HouseServantValueType_Value6, 100 ) --Cooking
WriteServantValue( id , EM_HouseServantValueType_Value7, 100 ) --Crafting

The range of id is 0-5, corresponding to each of your housekeepers.



I added an item and used it to make all 6 housekeeper attributes full. The following is the lua code:

function LuaI_244912()
for i = 0 , 5 , 1 do
local temp_max_value0 = readservantvalue( i, em_houseservantvaluetype_maxvalue0 )
local temp_max_value1 = readservantvalue( i, em_houseservantvaluetype_maxvalue1 )
local temp_max_value3 = readservantvalue( i, em_houseservantvaluetype_maxvalue3 )
local temp_max_value4 = readservantvalue( i, em_houseservantvaluetype_maxvalue4 )
local temp_max_value5 = readservantvalue( i, em_houseservantvaluetype_maxvalue5 )
local temp_max_value6 = readservantvalue( i, em_houseservantvaluetype_maxvalue6 )
local temp_max_value7 = readservantvalue( i, em_houseservantvaluetype_maxvalue7 )
writeservantvalue( i , em_houseservantvaluetype_tired, 0 )
writeservantvalue( i , em_houseservantvaluetype_value0, temp_max_value0 )
writeservantvalue( i , em_houseservantvaluetype_value1, temp_max_value1 )
writeservantvalue( i , em_houseservantvaluetype_value3, temp_max_value3 )
writeservantvalue( i , em_houseservantvaluetype_value4, temp_max_value4 )
writeservantvalue( i , em_houseservantvaluetype_value5, temp_max_value5 )
writeservantvalue( i , em_houseservantvaluetype_value6, temp_max_value6 )
writeservantvalue( i , em_houseservantvaluetype_value7, temp_max_value7 )
end
ScriptMessage( OwnerID(), OwnerID(), 1, "Successfully used!", C_SYSTEM )
end
 
Last edited:
Upvote 0
Elite Diviner
Joined
Sep 12, 2020
Messages
442
Reaction score
224
@chandler

Nice lua code , how ever where would you place this, the house keepers don't have a ID in game, Iam assuming they have one so szluainitscript.
 
Upvote 0
Newbie Spellweaver
Joined
Jul 25, 2021
Messages
22
Reaction score
18
I created a new item and linked it to the lua method above. After using this item, the player’s 6 house keepers attributes are all full.

The IDs of the 6 house keepers are 0, 1, 2, 3, 4, and 5.

 
Upvote 0
Newbie Spellweaver
Joined
Apr 17, 2013
Messages
46
Reaction score
13
That looks cool. Will have to try it. Thank you!

Is it possible to create similar lua to remove tiredness for HK?

How about to + dura gear with an item, like they are doing on CoA?

In my case, I made changes to database, exported it to a file and as long as I have it on server (not needed on client) all HK start with 100 in all fields, and I changed cost to 100 gold instead of 200000 for first one. (this way you can get one as soon as you start playing)
 
Upvote 0
Newbie Spellweaver
Joined
Jul 25, 2021
Messages
22
Reaction score
18
writeservantvalue( i , em_houseservantvaluetype_tired, 0 )

This code sets the tireness to 0.

If you want to reduce the increased tireness of each conversation, you need to modify the FN_HOUSESERVANT_CheckTired method in 01816.lua
 
Upvote 0
Back
Top