const DEFAULT_DECAY_RATE := 10.0; // minutes. .... /////////////////////////////////////////////////////////// // Purpose: Returns the loyalty decay rate. // Params: none // Returns: decayrate The rate at which loyalty decays at in minutes. /////////////////////////////////////////////////////////// function GetDecayRate( byref mobNPC ) var rate := 1.0; var masta := SystemFindObjectBySerial(mobNPC.master); var skill; if (!masta || masta == error) rate := 5.0; skill := GetEffectiveSkill(SystemFindObjectBySerial(mobNPC.master, SYSFIND_SEARCH_OFFLINE_MOBILES), SKILLID_TAMING); else skill := GetEffectiveSkill(masta, SKILLID_TAMING); endif var hungermod := CDbl(mobNPC.getprop("HungerLevel")); hungermod := 1.0 - (hungermod/200.0); rate := CInt(hungermod * CDbl(rate * CDbl(skill / 10.00) * 60.0 * DEFAULT_DECAY_RATE)); if (rate < 1) rate := 1; endif return rate; endfunction