Initial upload
Initial upload.
This commit is contained in:
56
_module/nss/onrespawn.nss
Normal file
56
_module/nss/onrespawn.nss
Normal file
@@ -0,0 +1,56 @@
|
||||
// Module : OnPlayerRespawn by Brian "spilth" Kelly
|
||||
// For Neverwinter Nights - Bleeding Tutorial
|
||||
|
||||
#include "nw_i0_plot"
|
||||
#include "bleeding_config"
|
||||
|
||||
void ApplyPenalty(object oDead)
|
||||
{
|
||||
int nXP = GetXP(oDead);
|
||||
int nPenalty = 50 * 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(0.02 * GetGold(oDead));
|
||||
// a cap of 1000gp taken from you
|
||||
if(nHD > 5)
|
||||
{
|
||||
int nGoldToTake = FloatToInt(0.10 * GetGold(oDead));
|
||||
}
|
||||
if (nGoldToTake > 10000)
|
||||
{
|
||||
nGoldToTake = 10000;
|
||||
}
|
||||
AssignCommand(oDead, TakeGoldFromCreature(nGoldToTake, oDead, TRUE));
|
||||
DelayCommand(4.0, FloatingTextStrRefOnCreature(58299, oDead, FALSE));
|
||||
DelayCommand(4.8, FloatingTextStrRefOnCreature(58300, oDead, FALSE));
|
||||
|
||||
}
|
||||
|
||||
void main() {
|
||||
object oPC = GetLastRespawnButtonPresser();
|
||||
object oSpawnPoint = GetObjectByTag("NW_DEATH_TEMPLE");
|
||||
string sArea = GetTag(GetArea(oPC));
|
||||
// Heal them and remove any nasty effects
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPC);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPC)), oPC);
|
||||
RemoveEffects(oPC);
|
||||
ApplyPenalty(oPC);
|
||||
|
||||
|
||||
// Mark them as alive once again
|
||||
// DelayCommand(2.0, SetLocalInt(oPC, "PlayerHealth", PC_HEALTH_ALIVE);
|
||||
SetLocalInt(oPC, "PlayerHealth", PC_HEALTH_ALIVE);
|
||||
// DelayCommand(3.0, SetLocalInt(oPC, "LastHitPoints", GetCurrentHitPoints(oPC)));
|
||||
SetLocalInt(oPC, "LastHitPoints", GetCurrentHitPoints(oPC));
|
||||
AssignCommand(oPC,JumpToLocation(GetLocation(oSpawnPoint)));
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user