Added CCOH and missing areas Changed some areas to be craftable, Fixed some on death issues, Fixed the Gaurd
222 lines
7.5 KiB
Plaintext
222 lines
7.5 KiB
Plaintext
void NewLocation(object oPC, location lPC, int iDirection, int iMapSkill);
|
|
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
object oMap = GetLocalObject(oPC,"oMapUsed");
|
|
DeleteLocalObject(oPC,"oMapUsed");
|
|
|
|
location lNewLoc1;
|
|
location lNewLoc2;
|
|
location lNewLoc3;
|
|
location lNewLoc4;
|
|
location lNewLoc5;
|
|
location lNewLoc6;
|
|
location lNewLoc7;
|
|
location lNewLoc8;
|
|
location lNewLoc9;
|
|
location lNewLoc10;
|
|
location lNewLoc11;
|
|
location lNewLoc12;
|
|
location lNewLoc13;
|
|
location lNewLoc14;
|
|
location lNewLoc15;
|
|
location lNewLoc16;
|
|
location lStartLoc = GetLocation(oPC);
|
|
|
|
string sAreaTag = GetTag(GetArea(oPC));
|
|
string sAreaName = GetName(GetArea(oPC));
|
|
|
|
|
|
//Map location variables
|
|
string sMapAreaTag = GetLocalString(oMap,"sMapAreaTag");
|
|
string sMapAreaName = GetLocalString(oMap,"sMapAreaName");
|
|
float fMapUsedX = GetLocalFloat(oMap,"fMapPositionX");
|
|
float fMapUsedY = GetLocalFloat(oMap,"fMapPositionY");
|
|
float fMapUsedZ = GetLocalFloat(oMap,"fMapPositionZ");
|
|
float fMapOrientation = GetFacing(oPC);
|
|
object oMapArea = GetObjectByTag(sMapAreaTag);
|
|
//May need to filter out all non-area object types in case of
|
|
//tag-related issues.. i.e. area tag matching a sword item tag.
|
|
|
|
vector vMap = Vector(fMapUsedX,fMapUsedY,fMapUsedZ);
|
|
int iMapSkill = GetLocalInt(oMap,"iMapUsedSkill");
|
|
location lPC = Location(oMapArea,vMap,fMapOrientation);
|
|
|
|
|
|
FloatingTextStringOnCreature("You unfurl the map and attempt to get your bearings...",oPC,FALSE);
|
|
AssignCommand(oPC,ActionPlayAnimation(ANIMATION_FIREFORGET_READ,0.2,4.0));
|
|
|
|
if (sAreaTag!=sMapAreaTag)
|
|
{
|
|
AssignCommand(oPC,DelayCommand(4.1,FloatingTextStringOnCreature("This map does not apear to be for this area.",oPC,FALSE)));
|
|
AssignCommand(oPC,DelayCommand(4.2,ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD,1.0,1.0)));
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
|
|
NewLocation(oPC,lPC,1,iMapSkill);
|
|
lNewLoc1 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,2,iMapSkill);
|
|
lNewLoc2 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,3,iMapSkill);
|
|
lNewLoc3 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,4,iMapSkill);
|
|
lNewLoc4 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,5,iMapSkill);
|
|
lNewLoc5 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,6,iMapSkill);
|
|
lNewLoc6 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,7,iMapSkill);
|
|
lNewLoc7 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,8,iMapSkill);
|
|
lNewLoc8 = GetLocalLocation(oPC,"lLoc1");
|
|
if (iMapSkill>700)
|
|
{
|
|
NewLocation(oPC,lPC,9,iMapSkill);
|
|
lNewLoc9 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,10,iMapSkill);
|
|
lNewLoc10 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,11,iMapSkill);
|
|
lNewLoc11 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,12,iMapSkill);
|
|
lNewLoc12 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,13,iMapSkill);
|
|
lNewLoc13 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,14,iMapSkill);
|
|
lNewLoc14 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,15,iMapSkill);
|
|
lNewLoc15 = GetLocalLocation(oPC,"lLoc1");
|
|
NewLocation(oPC,lPC,16,iMapSkill);
|
|
lNewLoc16 = GetLocalLocation(oPC,"lLoc1");
|
|
}
|
|
DeleteLocalLocation(oPC,"lLoc1");
|
|
|
|
//This section of script provides an on-PC 'hook' so that
|
|
//you can check for this varibale in any 'trigger' areas
|
|
//So that the trigger is not activated by the PC being
|
|
//sent to that trigger by this script.. since the PC is not
|
|
//really at the trigger location.
|
|
|
|
SetLocalInt(oPC,"iPCUsedMap",99);
|
|
|
|
//------ This value is erased after the PC is sent back to
|
|
//their original location.
|
|
|
|
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectCutsceneGhost(),oPC,9.0);
|
|
//BlackScreen(oPC);
|
|
AssignCommand(oPC,ActionJumpToLocation(lNewLoc1));
|
|
DelayCommand(0.5,AssignCommand(oPC,ActionJumpToLocation(lNewLoc2)));
|
|
DelayCommand(1.0,AssignCommand(oPC,ActionJumpToLocation(lNewLoc3)));
|
|
DelayCommand(1.5,AssignCommand(oPC,ActionJumpToLocation(lNewLoc4)));
|
|
DelayCommand(2.0,AssignCommand(oPC,ActionJumpToLocation(lNewLoc5)));
|
|
DelayCommand(2.5,AssignCommand(oPC,ActionJumpToLocation(lNewLoc6)));
|
|
DelayCommand(3.0,AssignCommand(oPC,ActionJumpToLocation(lNewLoc7)));
|
|
DelayCommand(3.5,AssignCommand(oPC,ActionJumpToLocation(lNewLoc8)));
|
|
if (iMapSkill>700)
|
|
{
|
|
DelayCommand(4.0,AssignCommand(oPC,ActionJumpToLocation(lNewLoc9)));
|
|
DelayCommand(4.5,AssignCommand(oPC,ActionJumpToLocation(lNewLoc10)));
|
|
DelayCommand(5.0,AssignCommand(oPC,ActionJumpToLocation(lNewLoc11)));
|
|
DelayCommand(5.5,AssignCommand(oPC,ActionJumpToLocation(lNewLoc12)));
|
|
DelayCommand(6.0,AssignCommand(oPC,ActionJumpToLocation(lNewLoc13)));
|
|
DelayCommand(6.5,AssignCommand(oPC,ActionJumpToLocation(lNewLoc14)));
|
|
DelayCommand(7.0,AssignCommand(oPC,ActionJumpToLocation(lNewLoc15)));
|
|
DelayCommand(7.5,AssignCommand(oPC,ActionJumpToLocation(lNewLoc15)));
|
|
DelayCommand(8.0,AssignCommand(oPC,ActionJumpToLocation(lStartLoc)));
|
|
DelayCommand(8.1,AssignCommand(oPC,DeleteLocalInt(oPC,"iPCUsedMap")));
|
|
DelayCommand(8.2,AssignCommand(oPC,FloatingTextStringOnCreature("You carefully study the map and get your bearings..",oPC,FALSE)));
|
|
}
|
|
else
|
|
{
|
|
DelayCommand(4.0,AssignCommand(oPC,ActionJumpToLocation(lStartLoc)));
|
|
DelayCommand(4.1,AssignCommand(oPC,DeleteLocalInt(oPC,"iPCUsedMap")));
|
|
DelayCommand(4.2,AssignCommand(oPC,FloatingTextStringOnCreature("You carefully study the map and get your bearings..",oPC,FALSE)));
|
|
}
|
|
|
|
|
|
//DelayCommand(4.1,StopFade(oPC));
|
|
}
|
|
|
|
|
|
|
|
void NewLocation(object oPC, location lPC, int iDirection, int iMapSkill)
|
|
{
|
|
location lNewLoc;
|
|
location lSelf = lPC;
|
|
vector vSelf = GetPositionFromLocation(lPC);
|
|
object oArea = GetArea(oPC);
|
|
vector vNewLoc;
|
|
int vDirection;
|
|
float fSelf;
|
|
float fDistance;
|
|
float fDistanceMax;
|
|
location lSelf2;
|
|
fSelf = GetFacing(oPC);
|
|
fDistanceMax = 45.0;
|
|
if (iDirection>8)
|
|
{
|
|
iDirection=iDirection-8;
|
|
fDistanceMax=30.0;
|
|
}
|
|
switch (iDirection)
|
|
{
|
|
case 1:{fSelf=fSelf+45.0;break;}
|
|
case 2:{fSelf=fSelf+90.0;break;}
|
|
case 3:{fSelf=fSelf+135.0;break;}
|
|
case 4:{fSelf=fSelf+180.0;break;}
|
|
case 5:{fSelf=fSelf+225.0;break;}
|
|
case 6:{fSelf=fSelf+270.0;break;}
|
|
case 7:{fSelf=fSelf+315.0;break;}
|
|
default:{break;}
|
|
}
|
|
|
|
fDistance = fDistanceMax / (1000.0/IntToFloat(iMapSkill));
|
|
vNewLoc = vSelf + (AngleToVector(fSelf) * fDistance);
|
|
lSelf2 = Location(oArea,vNewLoc,fSelf);
|
|
SetLocalLocation(oPC,"lLoc1",lSelf2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
FloatingTextStringOnCreature("You unfurl the map and attempt to get your bearings...",oPC,FALSE);
|
|
|
|
string sAreaResRef = GetResRef(GetArea(oPC));
|
|
string sAreaName = GetName(GetArea(oPC));
|
|
string sMapArea = GetLocalString(oPC,"sMapAreaResRef");
|
|
string sMapName = GetLocalString(oPC,"sMapAreaName");
|
|
|
|
DeleteLocalString(oPC,"sMapAreaResRef");
|
|
DeleteLocalString(oPC,"sMapAreaName");
|
|
|
|
AssignCommand(oPC,ActionPlayAnimation(ANIMATION_FIREFORGET_READ,0.2,10.0));
|
|
|
|
if (sAreaResRef!=sMapArea)
|
|
{
|
|
AssignCommand(oPC,DelayCommand(9.5,FloatingTextStringOnCreature("This map does not apear to be for this area.",oPC,FALSE)));
|
|
AssignCommand(oPC,DelayCommand(10.0,ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD,1.0,1.0)));
|
|
return;
|
|
}
|
|
|
|
AssignCommand(oPC,DelayCommand(9.5,FloatingTextStringOnCreature("You carefully study the map and get your bearings..",oPC,FALSE)));
|
|
AssignCommand(oPC,DelayCommand(10.0,ActionPlayAnimation(ANIMATION_LOOPING_LOOK_FAR,1.0,4.0)));
|
|
DelayCommand(10.0,ExploreAreaForPlayer(GetArea(oPC),oPC));
|
|
|
|
}
|