35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
void Hurt(object oPC, int level, int max, int cnt, int amt)
|
|
{
|
|
if (cnt == 0) AssignCommand(oPC, SpeakString("Testing regen Level: " + IntToString(level-1), TALKVOLUME_WHISPER));
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(amt, DAMAGE_TYPE_DIVINE, DAMAGE_POWER_NORMAL), oPC, 0.2f);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_COM_HIT_DIVINE,FALSE), oPC, 0.0f);
|
|
if (GetIsDead(oPC) == TRUE) {
|
|
// AssignCommand(oPC, SpeakString("dead!"));
|
|
SpeakString(GetName(oPC) + " died at level " + IntToString(level-1) + " hit " + IntToString(cnt+1));
|
|
} else {
|
|
++cnt;
|
|
if (cnt < level) {
|
|
DelayCommand(6.0 / level, Hurt(oPC, level, max, cnt, amt));
|
|
} else {
|
|
++level;
|
|
cnt = 0;
|
|
if (level < max) {
|
|
DelayCommand(6.0 / level, Hurt(oPC, level, max, cnt, amt));
|
|
} else {
|
|
SpeakString(GetName(oPC) + " passed.");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void main()
|
|
{
|
|
object oPC = GetLastUsedBy();
|
|
int level = StringToInt(GetTag(OBJECT_SELF));
|
|
int amt = GetMaxHitPoints(oPC)-1;
|
|
|
|
if (amt > 10000) amt = 10000;
|
|
Hurt(oPC, level+1, level + 4, 0, amt);
|
|
}
|