Page 1 of 1

Strange Life value [Coregina RC3]

Posted: Tue Jun 05, 2007 8:41 am
by Developer Silver
A really strange bug (?) happens in our live shard with latest 097 Linux core: sometimes Life and MaxLife of NPCs gets very high without a reason... so high that on next reboot POL can't start saying Life is out of value for that NPC... :?

Running RecalcVitals() on NPC, reset MaxLife to right value.

Here's our GetLifeMaximumValue function:

Code: Select all

exported function GetLifeMaximumValue(who)
	var pf := GetObjProperty(who, "PF");
	if(pf)
		return pf * 100;
	else
		return 10000;			// default: 100
	endif
endfunction
In latest error happening we saw: cprop PF was 4, Life was something about 1.900.000.000 and MaxLife was 79548 :shock:

Even if we can debug our scripts to search for a point where Life could be wrongly set too high, MaxLife cannot be set by script... so I think there's a problem in core... :sad:

Any idea?

P.S.: could this this the cause of our often SaveWorldState error

Posted: Thu Jun 07, 2007 10:59 am
by OWHorus
Hello,

we have a similar function for this and no problems at all.

I would recommend you change your script to:

Code: Select all

var pf := CInt(GetObjProperty(who. "PF"));
The CInt() will ensure that you always have a valid integer, and when the CProp is missing, it will return 0, so the 'if' below will work too.

OWHorus[/code]

Posted: Thu Jun 07, 2007 1:19 pm
by Developer Silver
Mmmmh.. the else case should run if variable is 0 or an error... CInt() is useless... :?