// OnEnter // Set the delay time for each damage applied const float DAMAGE_DELAY = 6.0; // Damage amount to be applied const int DAMAGE_AMOUNT = 5; void PseudoDamage(object oPC); void main() { object oPC = GetEnteringObject(); int iRace = GetRacialType(oPC); if (iRace != RACIAL_TYPE_GNOME || iRace != RACIAL_TYPE_DWARF || iRace != RACIAL_TYPE_HALFLING) return; SetLocalInt(oPC, "DAMAGE_PC", TRUE); PseudoDamage(oPC); } void PseudoDamage(object oPC) { if (!GetIsObjectValid(oPC) || !GetLocalInt(oPC, "DAMAGE_PC")) return; effect eDam = EffectDamage(DAMAGE_AMOUNT, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_ENERGY); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oPC); DelayCommand(DAMAGE_DELAY, PseudoDamage(oPC)); }