// * Applies an XP and GP penalty // * to the player respawning void ApplyPenalty(object oDead) { int nXP = GetXP(oDead); int nPenalty = 500 * GetHitDice(oDead); int nHD = GetHitDice(oDead); // * You can not lose a level with this respawning int nMin = ((nHD * (nHD - 1)) / 2) * 1000; int nNewXP = nXP - nPenalty; if (nNewXP < nMin) nNewXP = nMin; SetXP(oDead, nNewXP); int nGoldToTake = FloatToInt(1.00 * GetGold(oDead)); // * a cap of 10 000gp taken from you if (nGoldToTake > 99999) { nGoldToTake = 99999; } AssignCommand(oDead, TakeGoldFromCreature(nGoldToTake, oDead, TRUE)); DelayCommand(4.0, FloatingTextStrRefOnCreature(58299, oDead, FALSE)); DelayCommand(4.8, FloatingTextStrRefOnCreature(58300, oDead, FALSE)); } void main() { object oArea = GetArea(OBJECT_SELF); location lBegLoc = GetLocation(OBJECT_SELF); //The "beggmale001" needs to be changed to whatever your module //names the BLUEPRINT for your custom created creature. You //cannot use a completely standard creature, because then you //won't be able to change the scripts. Just create a regular //instance of an NPC, right click it and pick properties. Switch //to the scripts tag and fill in this script's name under the //on death script. Then close that, and right click on your //newly created NPC and add pick add blueprint. Then from the //advanced tab of the properties for the blueprint, find out //what the blueprint name is. CreateObject(OBJECT_TYPE_CREATURE, "townwatch006", lBegLoc); ApplyPenalty(GetLastKiller()); }