Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/*:://////////////////////////////////////////////
 | 
						|
//:: Spell Name Imprisonment
 | 
						|
//:: Spell FileName PHS_S_ImprisonC
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
//:: Spell Effects Applied / Notes
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
    This is used, when a PC is in the area, it randomly does globes
 | 
						|
    around the area to make it look pretty.
 | 
						|
 | 
						|
    Goes in the imprisonment area's on heartbeat.
 | 
						|
 | 
						|
    Change: Since it is just a sphere under the earth, uncommented the main
 | 
						|
    of this script. Still will be useful for other things however (Planes!)
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
//:: Created By: Jasperre
 | 
						|
//::////////////////////////////////////////////*/
 | 
						|
 | 
						|
#include "PHS_INC_CONSTANTS"
 | 
						|
 | 
						|
// Creates a random globe effect at a random location (using oWP, as the
 | 
						|
// center of the area)
 | 
						|
void GlobeRandom(location lWP);
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
/*
 | 
						|
    // Get WP
 | 
						|
    object oWP = GetWaypointByTag(PHS_S_IMPRISONMENT_TARGET);
 | 
						|
 | 
						|
    // Get PC to target
 | 
						|
    object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oWP);
 | 
						|
 | 
						|
    // If not valid, stop
 | 
						|
    if(!GetIsObjectValid(oPC)) return;
 | 
						|
 | 
						|
    // Get WP location
 | 
						|
    location lWP = GetLocation(oWP);
 | 
						|
 | 
						|
    // Do 6 of these each heartbeat
 | 
						|
    GlobeRandom(lWP);
 | 
						|
    GlobeRandom(lWP);
 | 
						|
    GlobeRandom(lWP);
 | 
						|
    GlobeRandom(lWP);
 | 
						|
    GlobeRandom(lWP);
 | 
						|
    GlobeRandom(lWP);
 | 
						|
*/
 | 
						|
}
 | 
						|
 | 
						|
// Creates a random globe effect at a random location (using oWP, as the
 | 
						|
// center of the area)
 | 
						|
void GlobeRandom(location lWP)
 | 
						|
{
 | 
						|
    // Get a random location around lWP
 | 
						|
    // The area is 40x40, so we want a random point up to 20M from the location.
 | 
						|
    vector vOld = GetPositionFromLocation(lWP);
 | 
						|
    // X and Y are randomly 20M from the centre.
 | 
						|
    float fNewX = vOld.x + IntToFloat(Random(40) - 20);
 | 
						|
    float fNewY = vOld.y + IntToFloat(Random(40) - 20);
 | 
						|
    // Z - it will be 1 to 6 meters
 | 
						|
    float fNewZ = vOld.z + IntToFloat(d6());
 | 
						|
    vector vNew = Vector(fNewX, fNewY, fNewZ);
 | 
						|
    // Create new location
 | 
						|
    location lGlobe = Location(OBJECT_SELF, vNew, 0.0);
 | 
						|
 | 
						|
    // Declare effects
 | 
						|
    effect eGlobe = EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY);
 | 
						|
    effect eUse = EffectVisualEffect(VFX_IMP_GLOBE_USE);
 | 
						|
    float fRandom = IntToFloat(d6());
 | 
						|
    float fDelay = 5.0;
 | 
						|
    float fDelayRandom = fRandom + 3.4;
 | 
						|
 | 
						|
    // Apply Effects
 | 
						|
    DelayCommand(fRandom, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eGlobe, lGlobe, fDelay));
 | 
						|
    DelayCommand(fDelayRandom, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eUse, lGlobe));
 | 
						|
}
 |