Updated Jasperre's AI
Updated Jasperre's AI to 1.4, fixed a few other coding bugs & fully compiled module.
This commit is contained in:
@@ -11,17 +11,10 @@
|
||||
//:: Created On: September 2003
|
||||
//:://////////////////////////////////////////////
|
||||
#include "x2_inc_ws_smith"
|
||||
//#include "x2_inc_cutscene"
|
||||
|
||||
|
||||
|
||||
//void StartCutscene(object oPC);
|
||||
//void StartCutscene2(object oPC);
|
||||
void CopyUpgradeItem(object oItem, object oPC);
|
||||
void MakeNewWeapon(object oPC);
|
||||
|
||||
//int nCutsceneNumber = 114;
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
@@ -33,273 +26,8 @@ void main()
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//ActionPauseConversation();
|
||||
|
||||
//if(GetTag(GetArea(oPC)) != "HellbreathTavern")
|
||||
{
|
||||
//Only show the cutscene once
|
||||
//if (GetLocalInt(oPC, "X2_Chapter2SmithCut") == 1)
|
||||
//{
|
||||
// MakeNewWeapon(oPC);
|
||||
// return;
|
||||
// }
|
||||
// SetLocalInt(oPC, "X2_Chapter2SmithCut", 1);
|
||||
// DelayCommand(0.7, StartCutscene(oPC));
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
//Only show the cutscene once
|
||||
//if (GetLocalInt(oPC, "X2_Chapter3SmithCut") == 1)
|
||||
//{
|
||||
//MakeNewWeapon(oPC);
|
||||
//return;
|
||||
//}
|
||||
// SetLocalInt(oPC, "X2_Chapter3SmithCut", 1);
|
||||
// DelayCommand(0.7, StartCutscene2(oPC));
|
||||
//}
|
||||
|
||||
//Set Cutscene 114 as active for all future calls to Cut_ commands
|
||||
//CutSetActiveCutscene(nCutsceneNumber, CUT_DELAY_TYPE_CONSTANT);
|
||||
|
||||
//AssignCommand(oPC, ClearAllActions());
|
||||
//Fade PCs to black
|
||||
//BlackScreen(oPC);
|
||||
//CutSetActiveCutsceneForObject(oPC, nCutsceneNumber, TRUE);
|
||||
//CutDisableAbort(nCutsceneNumber);
|
||||
|
||||
//CutSetCutsceneMode(0.5, oPC, TRUE, TRUE, TRUE, TRUE); // pc invis - keep and freeze associates
|
||||
|
||||
//CutFadeFromBlack(1.5, oPC, FADE_SPEED_MEDIUM, FALSE);
|
||||
|
||||
|
||||
//}
|
||||
|
||||
//void StartCutscene(object oPC)
|
||||
//{
|
||||
|
||||
//Change the Music
|
||||
//object oArea = GetArea(oPC);
|
||||
//MusicBattlePlay(oArea);
|
||||
// Cutscene actors and objects.
|
||||
// Invisible creature "takes" item
|
||||
|
||||
//location lLoc = GetLocation(GetNearestObjectByTag("SpawnHere"));
|
||||
//object oHelper = CreateObject(OBJECT_TYPE_CREATURE, "x2_helper", lLoc);
|
||||
//object oSmith = OBJECT_SELF;
|
||||
//object oForge = GetNearestObjectByTag("x2_magic_forge");
|
||||
|
||||
//CutSetActiveCutsceneForObject(oHelper, nCutsceneNumber);
|
||||
//CutSetActiveCutsceneForObject(oSmith, nCutsceneNumber);
|
||||
//CutSetActiveCutsceneForObject(oForge, nCutsceneNumber);
|
||||
|
||||
//CutApplyEffectToObject2(0.0, DURATION_TYPE_PERMANENT, EffectCutsceneGhost(), oHelper);
|
||||
//Locations
|
||||
//location lForge = GetLocation(GetNearestObjectByTag("X2_Forge"));
|
||||
|
||||
//Camera waypoints
|
||||
//object oCamera1 = GetNearestObjectByTag("wp_cut114_camera1");
|
||||
//location lCamera1 = GetLocation(GetNearestObjectByTag("wp_cut114_camera1"));
|
||||
//location lCamera2 = GetLocation(GetNearestObjectByTag("wp_cut114_camera2"));
|
||||
|
||||
//Make a copy of the PC to move about
|
||||
//location lStart = GetLocation(oPC);
|
||||
//object oCopy = CutCreatePCCopy(oPC, lStart, "Cut114PCCopy");
|
||||
//ChangeToStandardFaction(oCopy, STANDARD_FACTION_COMMONER);
|
||||
//CutSetActiveCutsceneForObject(oCopy, nCutsceneNumber);
|
||||
|
||||
// Camera movements (includes moving the PC as the camera.
|
||||
//////////////////////////////////////////////////////////
|
||||
//CutJumpToObject(0.0, oPC, oCamera1, TRUE);
|
||||
//CutSetCamera(0.0, oPC, CAMERA_MODE_TOP_DOWN, 90.0, 10.0, 75.0,
|
||||
// CAMERA_TRANSITION_TYPE_SNAP);
|
||||
//CutSetCamera(0.2, oPC, CAMERA_MODE_TOP_DOWN, 150.0, 13.0, 50.0,
|
||||
//CAMERA_TRANSITION_TYPE_SLOW);
|
||||
|
||||
//CutActionMoveToLocation(0.2, oPC, lCamera2, FALSE, FALSE);
|
||||
// Smith chants
|
||||
//CutPlayAnimation(0.7, oSmith, ANIMATION_LOOPING_MEDITATE, 6.0, FALSE);
|
||||
// CutPlaySound(0.5, oSmith, "al_mg_chntmagic1", FALSE);
|
||||
|
||||
|
||||
// * Make creature invisible and non bumpable
|
||||
// effect eInvis = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
|
||||
// ApplyEffectToObject(DURATION_TYPE_PERMANENT, eInvis, oHelper);
|
||||
//effect eNoBump = EffectCutsceneGhost();
|
||||
//CutApplyEffectToObject2(0.0, DURATION_TYPE_PERMANENT, eNoBump, oHelper);
|
||||
|
||||
//object oItem = GetRightHandWeapon(oCopy);
|
||||
// object oItem2 = GetRightHandWeapon(oPC);
|
||||
|
||||
// SpeakString("OLD " + GetName(oItem));
|
||||
// object oNewItem = CopyItem(oItem, oHelper, TRUE);
|
||||
// SpeakString("NEW " + GetName(oNewItem));
|
||||
|
||||
//AssignCommand(oPC, ActionUnequipItem(oItem)); // * unequip the item
|
||||
//object oNewItem = CopyItem(oItem, oCopy, TRUE);
|
||||
|
||||
// DelayCommand(2.0, AssignCommand(oCopy, ActionGiveItem(oNewItem, oHelper)));
|
||||
|
||||
//DestroyObject(oItem, 2.0);
|
||||
//DestroyObject(oItem2, 2.0);
|
||||
//CutClearAllActions(1.5, oHelper, FALSE);
|
||||
//CutActionEquipItem(2.4, oHelper, oNewItem, INVENTORY_SLOT_RIGHTHAND);
|
||||
|
||||
// Runs up to forge
|
||||
|
||||
//CutActionMoveToLocation(3.0, oHelper, lForge, FALSE, FALSE);
|
||||
|
||||
// * Need visual effects to hide the sword moving from you to the object
|
||||
// Light up Forge
|
||||
// effect eStrike = EffectVisualEffect(VFX_FNF_STRIKE_HOLY);
|
||||
//effect eShake = EffectVisualEffect(VFX_FNF_SCREEN_BUMP);
|
||||
//effect eLink = EffectLinkEffects(eStrike, eShake);
|
||||
//CutApplyEffectToObject2(5.0, DURATION_TYPE_INSTANT, eLink, oForge);
|
||||
//CutPlayAnimation(5.0, oForge, ANIMATION_PLACEABLE_ACTIVATE, 5.0, FALSE);
|
||||
|
||||
// effect eRing = EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD);
|
||||
// CutApplyEffectToObject(6.1, DURATION_TYPE_TEMPORARY, VFX_DUR_ELEMENTAL_SHIELD, oHelper, 0.7);
|
||||
|
||||
// Item is enhanced
|
||||
//DelayCommand(6.0, wsEnhanceItem(oHelper, oPC));
|
||||
|
||||
//Copy the upgraded item into the PCs inventory
|
||||
//DelayCommand(7.0, CopyUpgradeItem(oNewItem, oPC));
|
||||
|
||||
//CutPlayAnimation(6.0, oHelper, ANIMATION_FIREFORGET_VICTORY2, 3.0, FALSE);
|
||||
|
||||
// Weapon Given back to player
|
||||
//CutClearAllActions(7.5, oHelper, FALSE, FALSE);
|
||||
//CutActionMoveToObject(8.0, oHelper, oCopy, TRUE);
|
||||
// DelayCommand(9.7, AssignCommand(oHelper, ActionGiveItem(oNewItem, oCopy)));
|
||||
//DelayCommand(11.0, AssignCommand(oCopy, ActionEquipItem(oNewItem, INVENTORY_SLOT_RIGHTHAND)));
|
||||
//CutPlayAnimation(12.0, oCopy, ANIMATION_FIREFORGET_VICTORY2, 2.0);
|
||||
// End Cutscene
|
||||
|
||||
//CutFadeOutAndIn(13.0, oPC);
|
||||
|
||||
|
||||
//Clean up actors...
|
||||
//CutDestroyObject(14.3, oHelper);
|
||||
|
||||
//CutDisableCutscene(nCutsceneNumber, 14.5, 14.5, RESTORE_TYPE_COPY);
|
||||
|
||||
// * Resume conversation - Cleanup
|
||||
|
||||
//DelayCommand(15.5, ActionResumeConversation());
|
||||
|
||||
}
|
||||
|
||||
//void StartCutscene2(object oPC)
|
||||
{
|
||||
//Change the Music
|
||||
//object oArea = GetArea(oPC);
|
||||
//MusicBattlePlay(oArea);
|
||||
// Cutscene actors and objects.
|
||||
// Invisible creature "takes" item
|
||||
|
||||
//location lLoc = GetLocation(GetNearestObjectByTag("SpawnHere"));
|
||||
//object oHelper = CreateObject(OBJECT_TYPE_CREATURE, "x2_helper", lLoc);
|
||||
//object oSmith = OBJECT_SELF;
|
||||
//object oForge = GetNearestObjectByTag("x2_magic_forge");
|
||||
|
||||
//CutSetActiveCutsceneForObject(oHelper, nCutsceneNumber);
|
||||
//CutSetActiveCutsceneForObject(oSmith, nCutsceneNumber);
|
||||
//CutSetActiveCutsceneForObject(oForge, nCutsceneNumber);
|
||||
//Locations
|
||||
// location lForge = GetLocation(GetNearestObjectByTag("X2_Forge"));
|
||||
|
||||
//Camera waypoints
|
||||
//object oCamera1 = GetNearestObjectByTag("wp_cut114_camera1");
|
||||
// location lCamera1 = GetLocation(GetNearestObjectByTag("wp_cut114_camera1"));
|
||||
//location lCamera2 = GetLocation(GetNearestObjectByTag("wp_cut114_camera2"));
|
||||
|
||||
//Make a copy of the PC to move about
|
||||
//location lStart = GetLocation(GetNearestObjectByTag("hx_smith_wp", oPC));
|
||||
//object oCopy = CutCreatePCCopy(oPC, lStart, "Cut114PCCopy");
|
||||
//ChangeToStandardFaction(oCopy, STANDARD_FACTION_COMMONER);
|
||||
//CutSetActiveCutsceneForObject(oCopy, nCutsceneNumber);
|
||||
|
||||
// Camera movements (includes moving the PC as the camera.
|
||||
//////////////////////////////////////////////////////////
|
||||
//CutJumpToObject(0.0, oPC, oCamera1, TRUE);
|
||||
//CutSetCamera(0.0, oPC, CAMERA_MODE_TOP_DOWN, 40.0, 6.0, 80.0,
|
||||
// CAMERA_TRANSITION_TYPE_SNAP);
|
||||
// CutSetCamera(0.2, oPC, CAMERA_MODE_TOP_DOWN, 40.0, 3.0, 80.0,
|
||||
// CAMERA_TRANSITION_TYPE_VERY_SLOW);
|
||||
// Smith chants
|
||||
//CutPlayAnimation(0.7, oSmith, ANIMATION_LOOPING_MEDITATE, 6.0, FALSE);
|
||||
//CutPlaySound(0.5, oSmith, "al_mg_chntmagic1", FALSE);
|
||||
|
||||
|
||||
// * Make creature invisible and non bumpable
|
||||
// effect eInvis = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
|
||||
// ApplyEffectToObject(DURATION_TYPE_PERMANENT, eInvis, oHelper);
|
||||
//effect eNoBump = EffectCutsceneGhost();
|
||||
// CutApplyEffectToObject2(0.0, DURATION_TYPE_PERMANENT, eNoBump, oHelper);
|
||||
|
||||
// object oItem = GetRightHandWeapon(oCopy);
|
||||
// object oItem2 = GetRightHandWeapon(oPC);
|
||||
|
||||
// SpeakString("OLD " + GetName(oItem));
|
||||
// object oNewItem = CopyItem(oItem, oHelper, TRUE);
|
||||
// SpeakString("NEW " + GetName(oNewItem));
|
||||
|
||||
//AssignCommand(oPC, ActionUnequipItem(oItem)); // * unequip the item
|
||||
//object oNewItem = CopyItem(oItem, oCopy, TRUE);
|
||||
|
||||
//
|
||||
//DelayCommand(2.0, AssignCommand(oCopy, ActionGiveItem(oNewItem, oHelper)));
|
||||
|
||||
// DestroyObject(oItem, 2.0);
|
||||
// DestroyObject(oItem2, 2.0);
|
||||
//CutClearAllActions(1.5, oHelper, FALSE);
|
||||
//CutActionEquipItem(2.4, oHelper, oNewItem, INVENTORY_SLOT_RIGHTHAND);
|
||||
|
||||
// Runs up to forge
|
||||
|
||||
//CutActionMoveToLocation(3.0, oHelper, lForge, FALSE, FALSE);
|
||||
|
||||
// * Need visual effects to hide the sword moving from you to the object
|
||||
// Light up Forge
|
||||
//effect eStrike = EffectVisualEffect(VFX_FNF_STRIKE_HOLY);
|
||||
//effect eShake = EffectVisualEffect(VFX_FNF_SCREEN_BUMP);
|
||||
//effect eLink = EffectLinkEffects(eStrike, eShake);
|
||||
//CutApplyEffectToObject2(5.0, DURATION_TYPE_INSTANT, eLink, oForge);
|
||||
//CutPlayAnimation(5.0, oForge, ANIMATION_PLACEABLE_ACTIVATE, 5.0, FALSE);
|
||||
|
||||
//effect eRing = EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD);
|
||||
//CutApplyEffectToObject(6.1, DURATION_TYPE_TEMPORARY, VFX_DUR_ELEMENTAL_SHIELD, oHelper, 0.7);
|
||||
|
||||
// Item is enhanced
|
||||
// DelayCommand(6.0, wsEnhanceItem(oHelper, oPC));
|
||||
|
||||
//Copy the upgraded item into the PCs inventory
|
||||
//DelayCommand(7.0, CopyUpgradeItem(oNewItem, oPC));
|
||||
|
||||
//CutPlayAnimation(6.0, oHelper, ANIMATION_FIREFORGET_VICTORY2, 3.0, FALSE);
|
||||
|
||||
// Weapon Given back to player
|
||||
//CutClearAllActions(7.5, oHelper, FALSE, FALSE);
|
||||
//CutActionMoveToObject(8.0, oHelper, oCopy, TRUE);
|
||||
//DelayCommand(9.7, AssignCommand(oHelper, ActionGiveItem(oNewItem, oCopy)));
|
||||
//DelayCommand(11.0, AssignCommand(oCopy, ActionEquipItem(oNewItem, INVENTORY_SLOT_RIGHTHAND)));
|
||||
// CutPlayAnimation(12.0, oCopy, ANIMATION_FIREFORGET_VICTORY2, 2.0);
|
||||
// End Cutscene
|
||||
|
||||
//CutFadeOutAndIn(13.0, oPC);
|
||||
|
||||
|
||||
//Clean up actors...
|
||||
//CutDestroyObject(14.3, oHelper);
|
||||
|
||||
//CutDisableCutscene(nCutsceneNumber, 14.5, 14.5, RESTORE_TYPE_COPY);
|
||||
|
||||
// * Resume conversation - Cleanup
|
||||
|
||||
// DelayCommand(15.5, ActionResumeConversation());
|
||||
//}
|
||||
|
||||
void CopyUpgradeItem(object oItem, object oPC)
|
||||
{
|
||||
object oNewItem = CopyItem(oItem, oPC, TRUE);
|
||||
|
Reference in New Issue
Block a user