64 lines
2.1 KiB
Plaintext
64 lines
2.1 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Generic On Pressed Respawn Button
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
// * June 1: moved RestoreEffects into plot include
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Brent
|
|
//:: Created On: November
|
|
//:://////////////////////////////////////////////
|
|
#include "nw_i0_plot"
|
|
#include "nw_i0_generic"
|
|
|
|
// * Applies an XP and GP penalty
|
|
// * to the player respawning
|
|
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.10 * GetGold(oDead));
|
|
// * a cap of 10 000gp taken from you
|
|
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));
|
|
|
|
}
|
|
|
|
// Resurrection Shrine Script
|
|
// July 2002
|
|
// By: Dalantriel
|
|
// Teleports player to res shrine and returns factions towards neutral
|
|
// if the primary NPC of that faction still lives
|
|
|
|
void main()
|
|
{
|
|
object oRespawner = GetLastRespawnButtonPresser();
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectResurrection(),oRespawner);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
|
|
RemoveEffects(oRespawner);
|
|
|
|
// Adjust the player faction to neutral (11) for Defender and Merchant
|
|
AdjustReputation(oRespawner, GetObjectByTag("Henrick"), 11);
|
|
AdjustReputation(oRespawner, GetObjectByTag("Belonor"), 11);
|
|
|
|
location respawnLoc;
|
|
respawnLoc = GetLocation(GetObjectByTag("Respoint"));
|
|
AssignCommand(oRespawner, JumpToLocation(respawnLoc));
|
|
ActionCastSpellAtObject (SPELL_HEAL, oRespawner, METAMAGIC_ANY, TRUE, 1, PROJECTILE_PATH_TYPE_DEFAULT, FALSE);
|
|
|
|
}
|