one issue is know what areas are close to what respawn locations:
you can fix this one way buy putting a variable on your area with the tag of the way point, then altering respawn script.
or alter respawn script to see what area in then decide but I have a script for you let me test it then I will post it....
Edit add...script:
//::///////////////////////////////////////////////
//:: Generic On Pressed Respawn Button
//:: Copyright © 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
// * June 1: moved RestoreEffects into plot include
*/
//:://////////////////////////////////////////////
//:: Created By: Brent
//:: Created On: November
//:://////////////////////////////////////////////
#include "nw_i0_plot"
// * 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));
}
//////////////////////////////////////////////////////////////////////////////
void main()
{
object oRespawner = GetLastRespawnButtonPresser();
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
RemoveEffects(oRespawner);
//NOTE: Be sure to have a string variable on your areas called "respawn_loc"
// then have that variable match the closest respawn loc. or this case a waypoint "wp_respwn1"
string sArea = GetTag(GetArea(oRespawner));
string sObjWay=GetLocalString(GetArea(oRespawner),"respawn_loc");
object oSpawnPoint = GetObjectByTag(sObjWay);
AssignCommand(oRespawner,JumpToLocation(GetLocation(oSpawnPoint)));
}
Modifié par Greyfort, 17 janvier 2011 - 02:42 .