All pastes #566483 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-14 13:41 UTC
rendered paste body
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