generated from Jaysyn/ModuleTemplate
120 lines
5.1 KiB
Plaintext
120 lines
5.1 KiB
Plaintext
void CreatePortal()
|
|
{
|
|
|
|
object oExitwaypoint = GetObjectByTag("TempASExitportal");
|
|
location lLocation = GetLocation(oExitwaypoint);
|
|
CreateObject(OBJECT_TYPE_PLACEABLE,"bh_tas_exitport",lLocation);
|
|
|
|
}
|
|
|
|
void DestroyTemplePortal()
|
|
{
|
|
object oDestroy = GetObjectByTag("BH_TAS_Exitportal");
|
|
DestroyObject(oDestroy);
|
|
object oBlue = GetObjectByTag("BH_BlueControl");
|
|
object oYellow = GetObjectByTag("BH_YellowControl");
|
|
object oGreen = GetObjectByTag("BH_GreenControl");
|
|
object oRed = GetObjectByTag("BH_RedControl");
|
|
|
|
AssignCommand(oBlue,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
AssignCommand(oYellow,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
AssignCommand(oGreen,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
AssignCommand(oRed,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
|
|
int nActive = GetLocalInt (oBlue,"X2_L_PLC_ACTIVATED_STATE");
|
|
SetLocalInt(oBlue,"X2_L_PLC_ACTIVATED_STATE",!nActive);
|
|
|
|
nActive = GetLocalInt(oYellow,"X2_L_PLC_ACTIVATED_STATE");
|
|
SetLocalInt(oYellow,"X2_L_PLC_ACTIVATED_STATE",!nActive);
|
|
|
|
nActive = GetLocalInt(oGreen,"X2_L_PLC_ACTIVATED_STATE");
|
|
SetLocalInt(oGreen,"X2_L_PLC_ACTIVATED_STATE",!nActive);
|
|
|
|
nActive = GetLocalInt(oRed,"X2_L_PLC_ACTIVATED_STATE");
|
|
SetLocalInt(oRed,"X2_L_PLC_ACTIVATED_STATE",!nActive);
|
|
}
|
|
|
|
void main()
|
|
{
|
|
object oPC;
|
|
oPC=GetLastUsedBy();
|
|
if (!GetIsPC(oPC)) return;
|
|
object oBlue = GetObjectByTag("BH_BlueControl");
|
|
object oYellow = GetObjectByTag("BH_YellowControl");
|
|
object oGreen = GetObjectByTag("BH_GreenControl");
|
|
object oRed = GetObjectByTag("BH_RedControl");
|
|
|
|
object oControlSwitch1 = GetObjectByTag("BH_ControlSwitch1");
|
|
object oControlSwitch2 = GetObjectByTag("BH_ControlSwitch2");
|
|
object oControlSwitch3 = GetObjectByTag("BH_ControlSwitch3");
|
|
object oControlSwitch4 = GetObjectByTag("BH_ControlSwitch4");
|
|
|
|
//If all the colored triggers are activated then activate the main Console and create a portal.
|
|
int nTrigsActive = GetLocalInt(oPC,"nColorTrigsActivated");
|
|
if (nTrigsActive == 4)
|
|
{
|
|
//If a portal has already been created then we destroy it before creating a new one.
|
|
object oDestroy = GetObjectByTag("BH_TAS_Exitportal");
|
|
DestroyObject(oDestroy);
|
|
//Set the triggeractivated to 5. Now the main control should not work again for the same player until he resets the triggers.
|
|
SetLocalInt(oPC,"nColorTrigsActivated",5);
|
|
PlaySound("al_mg_crystalev1");
|
|
//Just in case any of the control switches are already activated, we deactivate them all.
|
|
FloatingTextStringOnCreature("Standby.....Loading Coordinates....",oPC);
|
|
AssignCommand(oControlSwitch1,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
DelayCommand(1.0,AssignCommand(oControlSwitch2,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE)));
|
|
DelayCommand(2.0,AssignCommand(oControlSwitch3,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE)));
|
|
DelayCommand(3.0,AssignCommand(oControlSwitch4,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE)));
|
|
DelayCommand(4.0,FloatingTextStringOnCreature("Charging up Flux Capacitors.....",oPC));
|
|
//Now we reactivate all the control switches.
|
|
DelayCommand(5.0,AssignCommand(oControlSwitch1,ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE)));
|
|
DelayCommand(6.0,AssignCommand(oControlSwitch2,ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE)));
|
|
DelayCommand(7.0,AssignCommand(oControlSwitch3,ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE)));
|
|
DelayCommand(8.0,AssignCommand(oControlSwitch4,ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE)));
|
|
DelayCommand(9.0,PlaySound("al_mg_sourceston"));
|
|
DelayCommand(10.0,CreatePortal());
|
|
DelayCommand(11.0,FloatingTextStringOnCreature("Portal Active.....Shutdown begins in twenty seconds.",oPC));
|
|
//Shut everything down 20 seconds after its been activated.
|
|
DelayCommand(30.0,DestroyTemplePortal());
|
|
|
|
return;
|
|
}
|
|
if (nTrigsActive == 5)
|
|
{
|
|
FloatingTextStringOnCreature("Shutting down main console and all auxilary flux power.",oPC);
|
|
DestroyTemplePortal();
|
|
SetLocalInt(oPC,"nColorTrigsActivated",0);
|
|
/*
|
|
object oDestroy = GetObjectByTag("BH_TAS_Exitportal");
|
|
DestroyObject(oDestroy);
|
|
|
|
FloatingTextStringOnCreature("Shutting down main console and all auxilary power.",oPC);
|
|
AssignCommand(oBlue,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
AssignCommand(oYellow,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
AssignCommand(oGreen,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
AssignCommand(oRed,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
|
|
|
int nActive = GetLocalInt (oBlue,"X2_L_PLC_ACTIVATED_STATE");
|
|
SetLocalInt(oBlue,"X2_L_PLC_ACTIVATED_STATE",!nActive);
|
|
|
|
nActive = GetLocalInt(oYellow,"X2_L_PLC_ACTIVATED_STATE");
|
|
SetLocalInt(oYellow,"X2_L_PLC_ACTIVATED_STATE",!nActive);
|
|
|
|
nActive = GetLocalInt(oGreen,"X2_L_PLC_ACTIVATED_STATE");
|
|
SetLocalInt(oGreen,"X2_L_PLC_ACTIVATED_STATE",!nActive);
|
|
|
|
nActive = GetLocalInt(oRed,"X2_L_PLC_ACTIVATED_STATE");
|
|
SetLocalInt(oRed,"X2_L_PLC_ACTIVATED_STATE",!nActive);
|
|
|
|
SetLocalInt(oPC,"nColorTrigsActivated",0);
|
|
*/
|
|
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
FloatingTextStringOnCreature("The main console needs flux power to operate.",oPC);
|
|
}
|
|
|
|
}
|