Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const char *Conversations[4] =
- {
- "Mx0_A04_CON015",
- "MX0_A04_CON016",
- "MX0_A04_CON017",
- "MX0_A04_CON018"
- };
- class MX0_Area4_Controller_DLS : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Timer_Expired(GameObject *obj,int number);
- int ReceivedParam;
- bool DidAttachScripts;
- int SenderID1;
- int SenderID2;
- int SenderID3;
- int SenderID4;
- int SenderID5;
- int SenderID6;
- int SenderID7;
- int SenderID8;
- int SenderID9;
- int SenderID10;
- int SenderID11;
- int SenderID12;
- int SenderID13;
- int SenderID14;
- int SenderID15;
- bool ObeliskDestroyed;
- int SenderID17;
- bool DidSendCustoms2;
- int GDI_ReinforceIndex;
- int SenderID18;
- int SenderID19;
- int ConversationTwiddler;
- bool DidSendCustom;
- };
- void MX0_Area4_Controller_DLS::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&ReceivedParam, 4, 1);
- Auto_Save_Variable(&DidAttachScripts, 1, 2);
- Auto_Save_Variable(&SenderID1, 4, 3);
- Auto_Save_Variable(&SenderID2, 4, 4);
- Auto_Save_Variable(&SenderID3, 4, 5);
- Auto_Save_Variable(&SenderID4, 4, 6);
- Auto_Save_Variable(&SenderID5, 4, 7);
- Auto_Save_Variable(&SenderID6, 4, 8);
- Auto_Save_Variable(&SenderID7, 4, 9);
- Auto_Save_Variable(&SenderID8, 4, 10);
- Auto_Save_Variable(&SenderID9, 4, 11);
- Auto_Save_Variable(&SenderID10, 4, 12);
- Auto_Save_Variable(&SenderID11, 4, 13);
- Auto_Save_Variable(&SenderID12, 4, 14);
- Auto_Save_Variable(&SenderID13, 4, 15);
- Auto_Save_Variable(&SenderID14, 4, 16);
- Auto_Save_Variable(&SenderID15, 4, 17);
- Auto_Save_Variable(&ObeliskDestroyed, 1, 18);
- Auto_Save_Variable(&SenderID17, 4, 19);
- Auto_Save_Variable(&DidSendCustoms2, 1, 20);
- Auto_Save_Variable(&GDI_ReinforceIndex, 4, 21);
- Auto_Save_Variable(&SenderID18, 4, 22);
- Auto_Save_Variable(&SenderID19, 4, 23);
- Auto_Save_Variable(&ConversationTwiddler, 4, 24);
- Auto_Save_Variable(&DidSendCustom, 1, 25);
- }
- void MX0_Area4_Controller_DLS::Created(GameObject *obj)
- {
- ReceivedParam = 0;
- DidAttachScripts = false;
- Commands->Scale_AI_Awareness(3.000000, 1.000000);
- SenderID17 = 0;
- ObeliskDestroyed = false;
- GDI_ReinforceIndex = 0;
- ConversationTwiddler = 0;
- DidSendCustom = false;
- }
- void MX0_Area4_Controller_DLS::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 445018)
- {
- GameObject *SenderID12Obj = Commands->Find_Object(SenderID12));
- Commands->Destroy_Object(SenderID12Obj);
- }
- else if(type == 445000)
- {
- ReceivedParam = param;
- if(param == 1 && !DidAttachedScripts)
- {
- DidAttachScripts = true;
- Commands->Start_Timer(obj, this, 3, 0);
- GameObject *SenderID1Obj = Commands->Find_Object(SenderID1);
- Commands->Attach_Script(SenderID1Obj, "MX0_Vehicle_DLS", "1500018, 1500019, 0, 0, 0.5f");
- Commands->Attach_Script(SenderID1Obj, "MX0_GDI_Killed_DLS", "1");
- GameObject *SenderID2Obj = Commands->Find_Object(SenderID2);
- Commands->Attach_Script(SenderID2Obj, "MX0_Vehicle_DLS", "1500022, 1500023, 0, 0, 1.0f");
- Commands->Attach_Script(SenderID2Obj, "MX0_GDI_Killed_DLS", "2");
- Commands->Attach_Script(SenderID2Obj, "M00_Damage_Modifier_DME", ".10f,1,1,1,1");
- GameObject *SenderID3Obj = Commands->Find_Object(SenderID3);
- Commands->Attach_Script(SenderID3Obj, "MX0_Vehicle_DLS", "1500027, 1500028, 1500029, 0, 1.0f");
- GameObject *SenderID9Obj = Commands->Find_Object(SenderID9);
- Commands->Attach_Script(SenderID9Obj, "MX0_GDI_Soldier_DLS", "1500049, 1500050, 0, 0, 0.8f");
- GameObject *RocketSoldier = Commands->Create_Object("GDI_RocketSoldier_0", Vector3(51.644001, 27.306000, 4.850000));
- Commands->Attach_Script(RocketSoldier, "M00_Send_Object_ID", "1500017, 12, 0.0f");
- Commands->Attach_Script(RocketSoldier, "MX0_GDI_Soldier_DLS", "1500053, 1500070, 0, 0, 0.8f");
- Commands->Send_Custom_Event(obj, SenderID1Obj, 445002, 445010, 0);
- }
- }
- else if(type == 9035)
- {
- switch(param)
- {
- case 1:
- SenderID1 = Commands->Get_ID(sender);
- break;
- case 3:
- SenderID2 = Commands->Get_ID(sender);
- break;
- case 4:
- SenderID3 = Commands->Get_ID(sender);
- break;
- case 5:
- SenderID4 = Commands->Get_ID(sender);
- break;
- case 6:
- SenderID5 = Commands->Get_ID(sender);
- break;
- case 8:
- SenderID6 = Commands->Get_ID(sender);
- break;
- case 9:
- SenderID7 = Commands->Get_ID(sender);
- break;
- case 10:
- SenderID8 = Commands->Get_ID(sender);
- break;
- case 11:
- SenderID9 = Commands->Get_ID(sender);
- break;
- case 12:
- SenderID10 = Commands->Get_ID(sender);
- break;
- case 13:
- SenderID11 = Commands->Get_ID(sender);
- break;
- case 14:
- SenderID12 = Commands->Get_ID(sender);
- break;
- case 15:
- SenderID13 = Commands->Get_ID(sender);
- break;
- case 16:
- SenderID14 = Commands->Get_ID(sender);
- break;
- case 17:
- SenderID15 = Commands->Get_ID(sender);
- break;
- case 18:
- SenderID17 = Commands->Get_ID(sender);
- break;
- case 19:
- SenderID18 = Commands->Get_ID(sender);
- break;
- case 20:
- SenderID19 = Commands->Get_ID(sender);
- break;
- default:
- break;
- }
- }
- else if(type == 445007)
- {
- GameObject *SearchObj1 = Commands->Find_Object(1500015);
- Commands->Send_Custom_Event(obj, SearchObj1, 445007, SenderID14, 0);
- GameObject *SearchObj2 = Commands->Find_Object(1500016);
- Commands->Send_Custom_Event(obj, SearchObj2, 445007, SenderID14, 0);
- }
- else if(type == 445008)
- {
- GameObject *SenderID15Obj = Commands->Find_Object(SenderID15);
- Commands->Apply_Damage(SenderID15Obj, 50000, "STEEL", 0);
- }
- else if(type == 445009)
- Commands->Mission_Complete(true);
- else if(type == 445019)
- {
- GDI_ReinforceIndex++;
- if(GDI_ReinforceIndex == 2)
- {
- SenderID19 = 0;
- GameObject *SearchObj1 = Commands->Find_Object(1500102);
- Vector3 SearchObjPos = Commands->Get_Position(SearchObj1);
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", SearchObjPos);
- Commands->Set_Facing(CinObject, Commands->Get_Facing(SearchObj1));
- Commands->Attach_Script(CinObject, "Test_Cinematic", "MX0_GDI_Reinforce_Area4.txt");
- }
- }
- }
- void MX0_Area4_Controller_DLS::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 0)
- {
- if(ReceivedParam <= 0)
- {
- if(!DidSendCustom)
- {
- DidSendCustom = true;
- GameObject *SenderID1Obj = Find_Object(SenderID1);
- Commands->Send_Custom_Event(obj, SenderID1Obj, 445002, 445020, 0);
- }
- Commands->Start_Timer(obj, this, 2, 0);
- }
- else
- {
- GameObject *SenderID1Obj = Commands->Find_Object(SenderID1);
- Commands->Send_Custom_Event(obj, SenderID1Obj, 445001, 1, 0);
- GameObject *SenderID2Obj = Commands->Find_Object(SenderID2);
- Commands->Send_Custom_Event(obj, SenderID2Obj, 445001, 1, 0);
- GameObject *SenderID3Obj = Commands->Find_Object(SenderID3);
- Commands->Send_Custom_Event(obj, SenderID3Obj, 445001, 1, 0);
- GameObject *SenderID9Obj = Commands->Find_Object(SenderID9);
- Commands->Send_Custom_Event(obj, SenderID9Obj, 445006, 1, 0);
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10);
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445006, 1, 0);
- GameObject *SenderID11Obj = Commands->Find_Object(SenderID11);
- Commands->Send_Custom_Event(obj, SenderID11Obj, 445006, 1, 0);
- GameObject *SenderID4Obj = Commands->Find_Object(SenderID4);
- Commands->Attach_Script(SenderID4Obj, "MX0_Vehicle_DLS", "1500033, 1500034, 0, 0, 0.4f");
- GameObject *SenderID5Obj = Commands->Find_Object(SenderID5);
- Commands->Attach_Script(SenderID5Obj, "MX0_Vehicle_DLS", "0, 0, 0, 0, 0.0f");
- GameObject *SenderID15Obj = Commands->Find_Object(SenderID15);
- Commands->Attach_Script(SenderID15Obj, "MX0_Vehicle_DLS", "1500084, 1500085, 0, 0, 1.0f");
- Commands->Start_Timer(obj, this, 2, 1);
- Commands->Send_Custom_Event(obj, SenderID1Obj, 9037, 0, 0);
- Commands->Send_Custom_Event(obj, SenderID9Obj, 445002, 445012, 4.000000);
- }
- }
- else if(number == 1)
- {
- if(ReceivedParam <= 1)
- {
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10);
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445002, 445021, 0);
- Commands->Start_Timer(obj, this, 6, 1);
- }
- else
- {
- GameObject *SenderID4Obj = Commands->Find_Object(SenderID4);
- Commands->Send_Custom_Event(obj, SenderID4Obj, 445001, 1, 0);
- GameObject *SearchObj1 = Commands->Find_Object(1500020);
- Commands->Send_Custom_Event(obj, SearchObj1, 445003, 1, 0);
- Commands->Start_Timer(obj, this, 0, 2);
- GameObject *SenderID9Obj = Commands->Find_Object(SenderID9);
- Commands->Send_Custom_Event(obj, SenderID9Obj, 445002, 445013, 4.000000);
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10);
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445006, 1, 0);
- GameObject *SenderID11Obj = Commands->Find_Object(SenderID11);
- Commands->Send_Custom_Event(obj, SenderID11Obj, 445006, 1, 0);
- int Random = Commands->Get_Random_Int(0, 3);
- GameObject *SenderID18Obj = Commands->Find_Object(SenderID18);
- Commands->Send_Custom_Event(obj, SenderID18Obj, 445006, Random, 0);
- GameObject *SenderID19Obj = Commands->Find_Object(SenderID19);
- Commands->Send_Custom_Event(obj, SenderID19Obj, 445006, Random, 0);
- }
- }
- else if(number == 2)
- {
- if(ReceivedParam == 1)
- {
- if(ConversationTwiddler == 4)
- ConversationTwiddler = 0;
- int Conversation = Commands->Create_Conversation(Conversations[ConversationTwiddler], 100, 200, false);
- Commands->Join_Conversation(obj, Conversation, false, true, true);
- Commands->Start_Conversation(Conversation, 10);
- ConversationTwiddler++;
- Commands->Start_Timer(obj, this, 5, 2);
- }
- else if(ReceivedParam == 2)
- Commands->Start_Timer(obj, this, 5, 2);
- else if(ReceivedParam == 3)
- {
- Commands->Enable_Spawner(1500042, true);
- Commands->Enable_Spawner(1500044, true);
- GameObject *SearchObj1 = Find_Object(1500039);
- Commands->Send_Custom_Event(obj, SearchObj1, 445002, 1, 0);
- GameObject *SenderID3Obj = Commands->Find_Object(SenderID3);
- Commands->Send_Custom_Event(obj, SenderID3Obj, 445001, 2, 0);
- GameObject *SenderID15Obj = Commands->Find_Object(SenderID15);
- Commands->Send_Custom_Event(obj, SenderID15Obj, 445001, 1, 0);
- Commands->Start_Timer(obj, this, 8, 3);
- GameObject *SearchObj2 = Commands->Find_Object(1500102);
- Vector3 SearchObj2Pos = Commands->Get_Position(SearchObj2);
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", SearchObj2Pos);
- GameObject *SearchObj3 = Commands->Find_Object(1500102);
- Commands->Set_Facing(CinObject, Commands->Get_Facing(SearchObj3));
- Commands->Attach_Script(CinObject, "Test_Cinematic", "MX0_GDI_Reinforce_Area4.txt");
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10);
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445006, 1, 0);
- GameObject *SenderID11Obj = Commands->Find_Object(SenderID11);
- Commands->Send_Custom_Event(obj, SenderID11Obj, 445006, 1, 0);
- int Random = Commands->Get_Random_Int(0, 3);
- GameObject *SenderID18Obj = Commands->Find_Object(SenderID18);
- Commands->Send_Custom_Event(obj, SenderID18Obj, 445006, Random, 0);
- GameObject *SenderID19Obj = Commands->Find_Object(SenderID19);
- Commands->Send_Custom_Event(obj, SenderID19Obj, 445006, Random, 0);
- }
- }
- else if(number == 3)
- {
- if(ReceivedParam == 1)
- {
- if(ConversationTwiddler == 4)
- ConversationTwiddler = 0;
- int Conversation = Commands->Create_Conversation(Conversations[ConversationTwiddler], 100, 200, false);
- Commands->Join_Conversation(obj, Conversation, false, true, true);
- Commands->Start_Conversation(Conversation, 10);
- ConversationTwiddler++;
- Commands->Start_Timer(obj, this, 5, 3);
- }
- else if(ReceivedParam == 2)
- Commands->Start_Timer(obj, this, 5, 3);
- else if(ReceivedParam == 3)
- {
- Commands->Create_2D_Sound("MX0_A4_Orca_Mix");
- GameObject *CinObject = Create_Object("Invisible_Object", Vector3(0,0,0));
- Commands->Set_Facing(CinObject, 0);
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X0E_Obelisk.txt");
- GameObject *SenderID13Obj = Commands->Find_Object(SenderID13);
- Commands->Destroy_Object(SenderID13Obj);
- Commands->Start_Timer(obj, this, 5, 7);
- Commands->Start_Timer(obj, this, 10, 8);
- ObeliskDestroyed = true;
- Commands->Start_Timer(obj, this, 8, 10);
- Commands->Start_Timer(obj, v5, 2, 4);
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10);
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445006, 1, 0);
- GameObject *SenderID11Obj = Commands->Find_Object(SenderID11);
- Commands->Send_Custom_Event(obj, SenderID11Obj, 445006, 1, 0);
- int Random = Commands->Get_Random_Int(0, 3);
- GameObject *SenderID18Obj = Commands->Find_Object(SenderID18);
- Commands->Send_Custom_Event(obj, SenderID18Obj, 445006, Random, 0);
- GameObject *SenderID19Obj = Commands->Find_Object(SenderID19);
- Commands->Send_Custom_Event(obj, SenderID19Obj, 445006, Random, 0);
- }
- }
- else if(number == 4)
- {
- if(ReceivedParam == 1)
- {
- if(ConversationTwiddler == 4)
- ConversationTwiddler = 0;
- int Conversation = Commands->Create_Conversation(Conversations[ConversationTwiddler], 100, 200, false);
- Commands->Join_Conversation(obj, Conversation, false, true, true);
- Commands->Start_Conversation(Conversation, 10);
- ConversationTwiddler++;
- Commands->Start_Timer(obj, this, 5, 4);
- }
- else if(ReceivedParam == 2)
- Commands->Start_Timer(obj, this, 5, 4);
- else if(ReceivedParam == 3)
- {
- if(Commands->Find_Object(1500015) || Commands->Find_Object(1500016))
- {
- Commands->Start_Timer(obj, this, 5, 7);
- Commands->Start_Timer(obj, this, 10, 8);
- ObeliskDestroyed = false;
- if(!DidSendCustoms2)
- {
- DidSendCustoms2 = true;
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10);
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445002, 445015, 9);
- GameObject *SearchObj1 = Commands->Find_Object(1500015);
- Commands->Send_Custom_Event(obj, SearchObj1, 9037, 0, 0);
- GameObject *SearchObj2 = Commands->Find_Object(1500016);
- Commands->Send_Custom_Event(obj, SearchObj2, 9037, 0, 0);
- Commands->Start_Timer(obj, this, 20, 12);
- Commands->Start_Timer(obj, this, 24, 13);
- }
- Commands->Start_Timer(obj, this, 5, 4);
- }
- else
- {
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10);
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445002, 445016, 0);
- GameObject *SenderID9Obj = Commands->Find_Object(SenderID9);
- Commands->Send_Custom_Event(obj, SenderID9Obj, 445002, 445017, 2);
- GameObject *SenderID6Obj = Commands->Find_Object(SenderID6);
- Commands->Send_Custom_Event(obj, SenderID6Obj, 445002, SenderID8, 0);
- GameObject *SenderID7Obj = Commands->Find_Object(SenderID7);
- Commands->Send_Custom_Event(obj, SenderID7Obj, 445002, SenderID8, 0);
- Commands->Start_Timer(obj, this, 5, 5);
- }
- }
- }
- else if(number == 5)
- {
- if(ReceivedParam == 1)
- {
- if(ConversationTwiddler == 4)
- ConversationTwiddler = 0;
- int Conversation = Commands->Create_Conversation(Conversations[ConversationTwiddler], 100, 200, false);
- Commands->Join_Conversation(obj, Conversation, false, true, true);
- Commands->Start_Conversation(Conversation, 10);
- ConversationTwiddler++;
- Commands->Start_Timer(obj, this, 5, 5);
- }
- else if(ReceivedParam == 2)
- Commands->Start_Timer(obj, this, 5, 5);
- else if(ReceivedParam == 3)
- {
- Commands->Fade_Background_Music("Renegade_A10_Outro.mp3", 1, 1);
- int MX0_A04_CON010 = Commands->Create_Conversation("MX0_A04_CON010", 100, 200, false);
- Commands->Join_Conversation(0, MX0_A04_CON010, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON010, 1);
- Commands->Start_Timer(obj, this, 5, 11);
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Vector3(0,0,0));
- Commands->Set_Facing(CinObject, 0);
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X0D_A10_Crash.txt");
- Commands->Start_Timer(obj, this, 6, 6);
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10);
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445006, 1, 0);
- GameObject *SenderID11Obj = Commands->Find_Object(SenderID11);
- Commands->Send_Custom_Event(obj, SenderID11Obj, 445006, 1, 0);
- int Random = Commands->Get_Random_Int(0, 3);
- GameObject *SenderID18Obj = Commands->Find_Object(SenderID18);
- Commands->Send_Custom_Event(obj, SenderID18Obj, 445006, Random, 0);
- GameObject *SenderID19Obj = Commands->Find_Object(SenderID19);
- Commands->Send_Custom_Event(obj, SenderID19Obj, 445006, Random, 0);
- }
- }
- else if(number == 6)
- {
- int MX0_A04_CON012 = Commands->Create_Conversation("MX0_A04_CON012", 100, 200, false);
- Commands->Join_Conversation(0, MX0_A04_CON012, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON012, 1);
- GameObject *SearchObj1 = Commands->Find_Object(1500087);
- Vector3 SearchObj1Pos = Commands->Get_Position(SearchObj1);
- GameObject *RocketSoldier = Commands->Create_Object("Nod_RocketSoldier_1Off", SearchObj1Pos);
- Commands->Attach_Script(RocketSoldier, "MX0_Plant_Ion_Beacon_DLS", "");
- Commands->Start_Timer(obj, this, 22, 14);
- Commands->Start_Timer(obj, this, 25, 9);
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10);
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445006, 1, 0);
- GameObject *SenderID11Obj = Commands->Find_Object(SenderID11);
- Commands->Send_Custom_Event(obj, SenderID11Obj, 445006, 1, 0);
- int Random = Commands->Get_Random_Int(0, 3);
- GameObject *SenderID18Obj = Commands->Find_Object(SenderID18);
- Commands->Send_Custom_Event(obj, SenderID18Obj, 445006, Random, 0);
- GameObject *SenderID19Obj = Commands->Find_Object(SenderID19);
- Commands->Send_Custom_Event(obj, SenderID19Obj, 445006, Random, 0);
- }
- else if(number == 7)
- {
- if(ObeliskDestroyed)
- {
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Vector3(0,0,0));
- Commands->Set_Facing(CinObject, 0);
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X0C_Flyovers_01.txt");
- }
- }
- else if(number == 8)
- {
- if(ObeliskDestroyed)
- {
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Vector3(0,0,0));
- Commands->Set_Facing(CinObject, 0);
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X0C_Flyovers_02.txt");
- }
- }
- else if(number == 9)
- {
- GameObject *SenderID17Obj = Commands->Find_Object(SenderID17);
- Commands->Destroy_Object(SenderID17Obj);
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Vector3(0,0,0));
- Commands->Set_Facing(CinObject, 0);
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X0Z_Finale.txt");
- }
- else if(number == 10)
- {
- int MX0_A04_CON005 = Commands->Create_Conversation("MX0_A04_CON005", 100, 200, false);
- Commands->Join_Conversation(0, MX0_A04_CON005, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON005, 1);
- GameObject *SenderID10Obj = Commands->Find_Object(SenderID10));
- Commands->Send_Custom_Event(obj, SenderID10Obj, 445002, 445014, 3);
- }
- else if(number == 11)
- {
- int MX0_A04_CON011 = Commands->Create_Conversation("MX0_A04_CON011", 100, 200, false);
- Commands->Join_Conversation(0, MX0_A04_CON011, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON011, 1);
- }
- else if(number == 12)
- {
- GameObject *SearchObj1 = Commands->Find_Object(1500015);
- Commands->Apply_Damage(SearchObj1, 50000, "STEEL", 0);
- }
- else if(number == 13)
- {
- GameObject *SearchObj1 = Commands->Find_Object(1500016);
- Commands->Apply_Damage(SearchObj1, 50000, "STEEL", 0);
- }
- else if(number == 14)
- {
- Commands->Set_Screen_Fade_Color(1, 1, 1, 0.200000);
- Commands->Set_Screen_Fade_Opacity(1, 0.200000);
- }
- }
- class MX0_Area4_Zone_DLS : public ScriptImpClass
- {
- void Entered(GameObject *obj,GameObject *enterer);
- bool SendCustom;
- };
- void MX0_Area4_Zone_DLS::Entered(GameObject *obj,GameObject *enterer)
- {
- if(Commands->Is_A_Star(enterer) && SendCustom)
- {
- int Area = Get_Int_Parameter("Area");
- GameObject *SearchObj = Commands->Find_Object(1500017);
- Commands->Send_Custom_Event(SearchObj, SearchObj, 445000, Area, 0);
- SendCustom = false;
- }
- }
- class MX0_Vehicle_DLS : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Enemy_Seen(GameObject *obj,GameObject *enemy);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- int Attack_Loc0;
- int Attack_Loc1;
- int Attack_Loc2;
- int Attack_Loc3;
- int AttackIndex;
- float Speed;
- int AttackArray[4];
- };
- void MX0_Vehicle_DLS::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&AttackArray, 16, 1);
- Auto_Save_Variable(&AttackIndex, 4, 2);
- Auto_Save_Variable(&Speed, 4, 3);
- }
- void MX0_Vehicle_DLS::Created(GameObject *obj)
- {
- Commands->Enable_Enemy_Seen(obj, true);
- Commands->Enable_Engine(obj, true);
- Attack_Loc0 = Get_Int_Parameter("Attack_Loc0");
- Attack_Loc1 = Get_Int_Parameter("Attack_Loc1");
- Attack_Loc2 = Get_Int_Parameter("Attack_Loc2");
- Attack_Loc3 = Get_Int_Parameter("Attack_Loc3");
- AttackArray[0] = Attack_Loc0;
- AttackArray[1] = Attack_Loc1;
- AttackArray[2] = Attack_Loc2;
- AttackArray[3] = Attack_Loc3;
- AttackIndex = 0;
- Speed = Get_Float_Parameter("Speed");
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Movement(Commands->Find_Object(1500024), Speed, 5.000000); // wouldnt make much sense going to there but i was just guessing.
- Params.Set_Attack(Commands->Get_Position(Commands->Find_Object(Attack_Loc0)), 1000, 0, true);
- Params.AttackForceFire = true; // probably.
- Commands->Action_Attack(obj, Params);
- }
- void MX0_Vehicle_DLS::Enemy_Seen(GameObject *obj,GameObject *enemy)
- {
- int EnemyID = Commands->Get_ID(enemy);
- int ID = Commands->Get_ID(obj);
- Commands->Debug_Message("ID %d sees Enemy ID %d \n", ID, EnemyID);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(enemy, 200, 5, true);
- Params.MoveSpeed = Speed;
- Params.MoveArrivedDistance = 5.000000;
- // probably missing things.
- Commands->Action_Attack(obj, Params);
- }
- void MX0_Vehicle_DLS::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 445001)
- {
- AttackIndex = param;
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(Commands->Get_Position(Commands->Find_Object(AttackArray[AttackIndex])), 1000, 0, true);
- Params.MoveSpeed = Speed;
- Params.MoveArrivedDistance = 5.000000;
- Params.AttackForceFire = true; // probably.
- Commands->Action_Attack(obj, Params);
- Commands->Debug_Message("Attack_Loc [%d] = %d \n", AttackIndex, AttackArray[AttackIndex]);
- }
- else if(type == 445002)
- {
- if(param == 445010)
- {
- int MX0_A04_CON001 = Commands->Create_Conversation("MX0_A04_CON001", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON001, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON001, 0);
- Commands->Monitor_Conversation(obj, MX0_A04_CON001);
- }
- else if(param == 445020)
- {
- int MX0_A04_CON013 = Commands->Create_Conversation("MX0_A04_CON013", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON013, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON013, 10);
- }
- }
- }
- void MX0_Vehicle_DLS::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(action_id == 0)
- {
- if(complete_reason == ACTION_COMPLETE_CONVERSATION_ENDED)
- {
- int MX0_A04_CON002 = Commands->Create_Conversation("MX0_A04_CON002", 100, 200, false);
- Commands->Join_Conversation(0, MX0_A04_CON002, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON002, 1);
- }
- }
- else if(action_id == 1)
- {
- if(complete_reason == ACTION_COMPLETE_CONVERSATION_ENDED)
- {
- int MX0_A04_CON003 = Commands->Create_Conversation("MX0_A04_CON003", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON003, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON003, 1);
- }
- }
- else if(action_id == 10)
- Commands->Debug_Message("Action_Complete");
- }
- class MX0_Obelisk_Weapon_DLS : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Timer_Expired(GameObject *obj,int number);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Destroyed(GameObject *obj);
- bool AttackEnabled;
- int AttackObjID;
- int EffectID;
- int SenderID1;
- int SenderID2;
- int SenderID3;
- };
- void MX0_Obelisk_Weapon_DLS::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&AttackEnabled, 1, 1);
- Auto_Save_Variable(&AttackObjID, 4, 2);
- Auto_Save_Variable(&EffectID, 4, 3);
- Auto_Save_Variable(&SenderID1, 4, 4);
- Auto_Save_Variable(&SenderID2, 4, 5);
- Auto_Save_Variable(&SenderID3, 4, 6);
- }
- void MX0_Obelisk_Weapon_DLS::Created(GameObject *obj)
- {
- EffectID = 0;
- AttackObjID = 0;
- AttackEnabled = true;
- Commands->Set_Player_Type(obj, 0);
- Commands->Set_Is_Rendered(obj, false);
- Commands->Enable_Hibernation(obj, false);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Effect = Commands->Create_Object("Obelisk Effect", Pos);
- if(Effect)
- {
- EffectID = Commands->Get_ID(Effect);
- Commands->Set_Animation_Frame(Effect, "OBL_POWERUP.OBL_POWERUP", 0);
- }
- }
- void MX0_Obelisk_Weapon_DLS::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 445003)
- Commands->Send_Custom_Event(obj, obj, 2, SenderID1, 0);
- else if(type == 445004)
- Commands->Send_Custom_Event(obj, obj, 2, SenderID2, 1);
- else if(type == 445005)
- Commands->Send_Custom_Event(obj, obj, 2, SenderID3, 0);
- else if(type == 9035)
- {
- if(param == 1)
- SenderID1 = Commands->Get_ID(sender);
- else if(param == 2)
- SenderID2 = Commands->Get_ID(sender);
- else if(param == 3)
- SenderID3 = Commands->Get_ID(sender);
- }
- else if(type == 1)
- {
- if(param)
- {
- Commands->Enable_Enemy_Seen(obj, true);
- AttackEnabled = true;
- }
- else
- {
- Commands->Enable_Enemy_Seen(obj, false);
- AttackEnabled = false;
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 0);
- Params.Set_Attack(obj, 0, 0, true);
- Commands->Action_Attack(obj, Params);
- Commands->Action_Reset(obj, 100);
- if(EffectID)
- {
- GameObject *Effect = Commands->Find_Object(EffectID);
- if(Effect)
- Commands->Set_Animation_Frame(Effect, "OBL_POWERUP.OBL_POWERUP", 0);
- }
- }
- }
- else if(type == 2)
- {
- if(AttackEnabled)
- {
- GameObject *SearchObj = Commands->Find_Object(param);
- if(SearchObj)
- {
- Vector3 SearchObjPos = Commands->Get_Position(SearchObj);
- Vector3 Pos = Commands->Get_Position(obj);
- float Distance = Commands->Get_Distance(SearchObjPos, Pos);
- float Max_Range = Get_Float_Parameter("Max_Range");
- if(Distance <= 15.0 || Distance >= Max_Range)
- {
- if(EffectID)
- {
- GameObject *Effect = Commands->Find_Object(EffectID);
- if(Effect)
- Commands->Set_Animation_Frame(Effect, "OBL_POWERUP.OBL_POWERUP", 0);
- Commands->Action_Reset(obj, 100);
- }
- }
- else
- {
- AttackObjID = param;
- AttackEnabled = false;
- Commands->Start_Timer(obj, this, 2.500000, 1);
- GameObject *Effect = Commands->Find_Object(EffectID);
- if(Effect)
- Commands->Set_Animation_Frame(Effect, "OBL_POWERUP.OBL_POWERUP", 1);
- Commands->Create_Sound("Obelisk_Warm_Up", Pos, obj);
- }
- }
- }
- }
- }
- void MX0_Obelisk_Weapon_DLS::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 1)
- {
- GameObject *SearchObj = Commands->Find_Object(AttackObjID);
- if(SearchObj)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- Vector3 SearchObjPos = Commands->Get_Position(SearchObj);
- float Distance = Commands->Get_Distance(Pos, SearchObjPos);
- float Max_Range = Get_Float_Parameter("Max_Range");
- if(Distance <= 15.0 || Distance >= Max_Range)
- {
- if(EffectID)
- {
- GameObject *Effect = Commands->Find_Object(EffectID);
- if(Effect)
- Commands->Set_Animation_Frame(Effect, "OBL_POWERUP.OBL_POWERUP", 0);
- }
- Commands->Action_Reset(obj, 100);
- AttackEnabled = true;
- }
- else
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 0);
- Params.Set_Attack(SearchObj, 1000, 0, true);
- Commands->Action_Attack(obj, Params);
- AttackObjID = 0;
- Commands->Start_Timer(obj, this, 2, 2);
- }
- }
- else
- {
- if(EffectID)
- {
- GameObject *Effect = Commands->Find_Object(EffectID);
- if(Effect)
- Commands->Set_Animation_Frame(Effect, "OBL_POWERUP.OBL_POWERUP", 0);
- }
- Commands->Action_Reset(obj, 100);
- AttackEnabled = true;
- }
- }
- else if(number == 2)
- {
- if(EffectID)
- {
- GameObject *Effect = Commands->Find_Object(EffectID);
- if(Effect)
- Commands->Set_Animation_Frame(Effect, "OBL_POWERUP.OBL_POWERUP", 0);
- }
- AttackEnabled = true;
- }
- }
- void MX0_Obelisk_Weapon_DLS::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(!action_id)
- Commands->Debug_Message("Action_Complete Obelisk Firing");
- }
- void MX0_Obelisk_Weapon_DLS::Destroyed(GameObject *obj)
- {
- if(EffectID)
- {
- GameObject *Effect = Commands->Find_Object(EffectID);
- if(Effect)
- Commands->Set_Animation_Frame(Effect, "OBL_POWERUP.OBL_POWERUP", 0);
- }
- }
- class MX0_GDI_Killed_DLS : public ScriptImpClass
- {
- void Damaged(GameObject *obj,GameObject *damager,float amount);
- void Killed(GameObject *obj,GameObject *killer);
- };
- void MX0_GDI_Killed_DLS::Damaged(GameObject *obj,GameObject *damager,float amount)
- {
- // Probably Damaged, but I'm not entirely sure.
- GameObject *SearchObj = Find_Object(1500020);
- if(damager == SearchObj && SearchObj)
- Commands->Apply_Damage(obj, 50000, "STEEL", 0);
- }
- void MX0_GDI_Killed_DLS::Killed(GameObject *obj,GameObject *killer)
- {
- // Probably Killed.
- int Unit_ID = Get_Int_Parameter(a1, "Unit_ID") - 1;
- if(Unit_ID)
- {
- if(Unit_ID - 1)
- {
- if (!(Unit_ID - 2))
- {
- GameObject *SearchObj = Find_Object(1500017);
- Commands->Send_Custom_Event(obj, SearchObj, 445019, 1, 1);
- }
- }
- else
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *DesMed = Commands->Create_Object("MX0_GDI_Medium_Tank_Destroyed", Pos);
- Commands->Set_Facing(DesMed, Commands->Get_Facing(obj));
- }
- }
- else
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Officer = Commands->Create_Object("GDI_Minigunner_1Off", Pos);
- Commands->Set_Facing(Officer, 0);
- Commands->Attach_Script(Officer, "M00_Send_Object_ID", "1500020, 2, 0.0f");
- Commands->Attach_Script(Officer, "MX0_GDI_Soldier_DLS", "0,0,0,0,0.0f");
- Commands->Send_Custom_Event(obj, Officer, 445002, 445011, 0);
- GameObject *SearchObj = Commands->Find_Object(1500020);
- Commands->Send_Custom_Event(obj, SearchObj, 445004, 1, 1065353216);
- }
- }
- class MX0_GDI_Soldier_DLS : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Enemy_Seen(GameObject *obj,GameObject *enemy);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Timer_Expired(GameObject *obj,int number);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- };
- void MX0_GDI_Soldier_DLS::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&AttackArray, 16, 1);
- Auto_Save_Variable(&AttackIndex, 4, 2);
- Auto_Save_Variable(&Speed, 4, 3);
- Auto_Save_Variable(&MoveAttemptCount, 4, 4);
- }
- void MX0_GDI_Soldier_DLS::Created(GameObject *obj)
- {
- Commands->Enable_Enemy_Seen(obj, true);
- Commands->Enable_Engine(obj, true);
- AttackArray[0] = Get_Int_Parameter("Attack_Loc0");
- AttackArray[1] = Get_Int_Parameter("Attack_Loc1");
- AttackArray[2] = Get_Int_Parameter("Attack_Loc2");
- AttackArray[3] = Get_Int_Parameter("Attack_Loc3");
- AttackIndex = 0;
- Speed = Get_Float_Parameter("Speed");
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(Commands->Get_Position(Commands->Find_Object(AttackArray[0])), 1000, 0, true);
- Params.MoveSpeed = Speed;
- Params.AttackForceFire = true;
- Commands->Action_Attack(obj, Params);
- }
- void MX0_GDI_Soldier_DLS::Enemy_Seen(GameObject *obj,GameObject *enemy)
- {
- int EnemyID = Commands->Get_ID(enemy);
- int ID = Commands->Get_ID(obj);
- Commands->Debug_Message("ID %d sees Enemy ID %d \n", ID, EnemyID);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(enemy, 200.000000, 5.000000, true);
- Params.MoveSpeed = Speed;
- Params.MoveArrivedDistance = 5.000000;
- Commands->Action_Attack(obj, Params);
- }
- void MX0_GDI_Soldier_DLS::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 445006)
- {
- AttackIndex = param;
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(Commands->Get_Position(Commands->Find_Object(AttackArray[AttackIndex])), 1000, 0, true);
- Params.MoveSpeed = Speed;
- Params.MoveArrivedDistance = 5.000000;
- Params.AttackForceFire = true;
- Params.MoveCrouched = Commands->Get_Random_Int(0, 1);
- Commands->Action_Attack(obj, Params);
- Commands->Debug_Message("Attack_Loc [%d] = %d \n", AttackIndex, AttackArray[AttackIndex]);
- }
- else if(type == 445002)
- {
- switch(param)
- {
- case 445011:
- Commands->Innate_Disable(obj);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 1);
- Params.Set_Animation("H_A_A0A0_L51", true);
- Commands->Action_Play_Animation(obj, Params);
- int MX0_A04_CON019 = Commands->Create_Conversation("MX0_A04_CON019", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON019, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON019, 10);
- break;
- case 445012:
- int MX0_A04_CON003 = Commands->Create_Conversation("MX0_A04_CON003", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON003, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON003, 445012);
- Commands->Fade_Background_Music("Level 0 Nod base.mp3", 2, 2);
- break;
- case 445013:
- int MX0_A04_CON004 = Commands->Create_Conversation("MX0_A04_CON004", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON004, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON004, 445013);
- break;
- case 445014:
- int MX0_A04_CON006 = Commands->Create_Conversation("MX0_A04_CON006", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON006, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON006, 445014);
- break;
- case 445015:
- int MX0_A04_CON007 = Commands->Create_Conversation("MX0_A04_CON007", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON007, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON007, 445015);
- break;
- case 445016:
- int MX0_A04_CON008 = Commands->Create_Conversation("MX0_A04_CON008", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON008, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON008, 445016);
- break;
- case 445017:
- int MX0_A04_CON009 = Commands->Create_Conversation("MX0_A04_CON009", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON009, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON009, 445017);
- break;
- case 445021:
- int MX0_A04_CON014 = Commands->Create_Conversation("MX0_A04_CON014", 100, 200, false);
- Commands->Join_Conversation(obj, MX0_A04_CON014, false, true, true);
- Commands->Start_Conversation(MX0_A04_CON014, 445021);
- break;
- default:
- break;
- }
- }
- }
- void MX0_GDI_Soldier_DLS::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 445006) // never happens
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 445006);
- Params.Set_Attack(Commands->Get_Position(Commands->Find_Object(AttackArray[AttackIndex])), 1000, 0, true);
- Params.MoveSpeed = Speed;
- Params.MoveArrivedDistance = 5.000000;
- Params.AttackForceFire = true;
- Commands->Action_Attack(obj, Params);
- }
- }
- void MX0_GDI_Soldier_DLS::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(action_id == 445006) // this actually never happens.
- {
- if(complete_reason && MoveAttemptCount < 4)
- {
- MoveAttemptCount++;
- Commands->Start_Timer(obj, this, 4, 445006);
- Commands->Debug_Message("Attempt %d for MX0_SOLDIER_MOVE on loc %d"); // They didnt put the variables in here.
- }
- }
- else if(action_id == 10)
- Commands->Debug_Message("Action_Complete");
- }
- class MX0_Gun_Emplacement_DLS : public ScriptImpClass
- {
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Timer_Expired(GameObject *obj,int number);
- bool AttackingRight;
- };
- void MX0_Gun_Emplacement_DLS::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 445002)
- Timer_Expired(obj, 0); // Direct call upon Timer_Expired event of this script.
- }
- void MX0_Gun_Emplacement_DLS::Timer_Expired(GameObject *obj,int number)
- {
- if(!number)
- {
- GameObject *AttackObj = 0;
- if(AttackingRight)
- {
- AttackingRight = false;
- AttackObj = Commands->Find_Object(Get_Int_Parameter("Left_Point"));
- }
- else
- {
- AttackingRight = true;
- AttackObj = Commands->Find_Object(Get_Int_Parameter("Right_Point"));
- }
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(AttackObj, 1000, 0, true);
- Params.AttackForceFire = true;
- Commands->Action_Attack(obj, Params);
- Commands->Start_Timer(obj, this, 4, 0);
- }
- }
- class MX0_Nod_RocketSoldier_DLS : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Enemy_Seen(GameObject *obj,GameObject *enemy);
- };
- void MX0_Nod_RocketSoldier_DLS::Created(GameObject *obj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 0);
- Params.Set_Movement(Commands->Find_Object(Get_Int_Parameter("Stationary_Point")), 0.800000, 1.000000);
- Commands->Action_Goto(obj, Params);
- }
- void MX0_Nod_RocketSoldier_DLS::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 445002)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(Commands->Find_Object(param), 150.000000, 0, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- void MX0_Nod_RocketSoldier_DLS::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(!action_id && !complete_reason)
- Commands->Set_Innate_Is_Stationary(obj, true);
- }
- void MX0_Nod_RocketSoldier_DLS::Enemy_Seen(GameObject *obj,GameObject *enemy)
- {
- // Most likely Enemy_Seen but its nowhere in this script activated, maybe in another script?
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(enemy, 150.000000, 0, true);
- Commands->Action_Attack(obj, Params);
- }
- class MX0_SAM_DLS : public ScriptImpClass
- {
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- };
- void MX0_SAM_DLS::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 445007)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 1);
- Params.Set_Attack(Commands->Find_Object(1500081), 250.000000, 0, true);
- Params.AttackForceFire = true;
- Commands->Action_Attack(obj, Params);
- }
- }
- class MX0_Nod_Bunker_DLS : public ScriptImpClass
- {
- void Enemy_Seen(GameObject *obj, GameObject *enemy);
- };
- void MX0_Nod_Bunker_DLS::Enemy_Seen(GameObject *obj, GameObject *enemy)
- {
- // VERY unsure if this is Enemy_Seen i had no clues to find it out really...
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(enemy, 1000, 0, false);
- Commands->Action_Attack(obj, Params);
- }
- class MX0_Plant_Ion_Beacon_DLS : public ScriptImpClass
- {
- void Created(GameObject *obj);
- };
- void MX0_Plant_Ion_Beacon_DLS::Created(GameObject *obj)
- {
- Commands->Give_PowerUp(obj, "POW_IonCannonBeacon_Ai", false);
- Commands->Select_Weapon(obj, "Weapon_IonCannonBeacon_Ai");
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 10);
- Params.Set_Attack(Commands->Get_Position(obj), 5.000000, 0, true);
- Params.AttackForceFire = true;
- Commands->Action_Attack(obj, Params);
- }
- class MX0_Explosive_Barrels_DLS : public ScriptImpClass
- {
- void Sound_Heard(GameObject *obj,const CombatSound & sound);
- void Killed(GameObject *obj,GameObject *killer);
- };
- void MX0_Explosive_Barrels_DLS::Sound_Heard(GameObject *obj,const CombatSound & sound)
- {
- // Probably this event so the barrels around the barrel being shot explode aswell.
- if(sound.sound == Get_Int_Parameter("Logical_Sound"))
- Commands->Apply_Damage(obj, 50000, "STEEL", 0);
- }
- void MX0_Explosive_Barrels_DLS::Killed(GameObject *obj,GameObject *killer)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- Commands->Create_Explosion("Air Explosions Twiddler", Pos, obj);
- Commands->Create_Logical_Sound(obj, Get_Int_Parameter("Logical_Sound"), Pos, Get_Float_Parameter("Radius"));
- }
- class MX0_MissionStart_DME : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Timer_Expired(GameObject *obj,int number);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- int ParamObjID1;
- int ParamObjID2;
- bool DidGotParamObjID1;
- int ParamObjID3;
- int Sniper1ID;
- int Sniper2ID;
- int ConversationTwiddler;
- bool DidStartMX0CON006;
- };
- void MX0_MissionStart_DME::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&ParamObjID1, 4, 1);
- Auto_Save_Variable(&ParamObjID2, 4, 2);
- Auto_Save_Variable(&DidGotParamObjID1, 1, 3);
- Auto_Save_Variable(&ParamObjID3, 4, 4);
- Auto_Save_Variable(&Sniper1ID, 4, 5);
- Auto_Save_Variable(&Sniper2ID, 4, 6);
- Auto_Save_Variable(&ConversationTwiddler, 4, 7);
- Auto_Save_Variable(&DidStartMX0CON006, 1, 8);
- }
- void MX0_MissionStart_DME::Created(GameObject *obj)
- {
- DidStartMX0CON006 = false;
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Select_Weapon(Star, "");
- Commands->Fade_Background_Music("renegade_intro_no_vox.mp3", 0, 1);
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Vector3(0,0,0)); // Or Commands->Get_Position(Commands->Find_Object(1200001))
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X00_Intro.txt");
- }
- void MX0_MissionStart_DME::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(action_id == 100001)
- Commands->Start_Timer(obj, this, 2, 119);
- else if(action_id == 100002)
- Commands->Start_Timer(obj, this, 2, 120);
- else if(action_id == 100004)
- {
- GameObject *SearchObj = Commands->Find_Object(1200015);
- Commands->Send_Custom_Event(obj, SearchObj, 110, 0, 0);
- }
- }
- void MX0_MissionStart_DME::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 142)
- {
- int MX0_ENGINEER1_048 = Commands->Create_Conversation("MX0_ENGINEER1_048", 97, 2000, false);
- GameObject *SearchObj = Commands->Find_Object(ParamObjID1);
- Commands->Join_Conversation(SearchObj, MX0_ENGINEER1_048, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation(Star, MX0_ENGINEER1_048, true, true, true);
- Commands->Start_Conversation(MX0_ENGINEER1_048, 100048);
- Commands->Monitor_Conversation(obj, MX0_ENGINEER1_048);
- }
- else if(number == 136)
- {
- GameObject *SearchObj1 = Commands->Find_Object(Sniper1ID);
- if(SearchObj1)
- {
- GameObject *SearchObj2 = Commands->Find_Object(ParamObjID1);
- Commands->Send_Custom_Event(obj, SearchObj2, 136, Sniper1ID, 0);
- GameObject *SearchObj3 = Commands->Find_Object(ParamObjID2);
- Commands->Send_Custom_Event(obj, SearchObj3, 136, Sniper1ID, 0);
- Commands->Start_Timer(obj, this, 3, 136);
- }
- }
- else if(number == 134)
- {
- GameObject *SearchObj = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, SearchObj, 202, 0, 0);
- }
- else if(number == 133)
- {
- GameObject *SearchObj1 = Commands->Find_Object(1200043);
- Vector3 SearchObj1Pos = Commands->Get_Position(SearchObj1);
- GameObject *SearchObj2 = Commands->Find_Object(1200044);
- Vector3 SearchObj2Pos = Commands->Get_Position(SearchObj2);
- GameObject *Sniper1 = Commands->Create_Object("NOD_Minigunner_2SF", SearchObj1Pos);
- Commands->Attach_Script(Sniper1, "M00_Soldier_Powerup_Disable", "");
- Commands->Attach_Script(Sniper1, "M00_Send_Object_ID", "1200001, 1, 0.0f");
- Commands->Attach_Script(Sniper1, "MX0_SniperAction", "1200045");
- Commands->Attach_Script(Sniper1, "MX0_KillNotify", "");
- Sniper1ID = Commands->Get_ID(Sniper1);
- GameObject *Sniper2 = Commands->Create_Object("NOD_Minigunner_2SF", SearchObj2Pos);
- Commands->Attach_Script(Sniper2, "M00_Soldier_Powerup_Disable", "");
- Commands->Attach_Script(Sniper2, "M00_Send_Object_ID", "1200001, 2, 0.0f");
- Commands->Attach_Script(Sniper2, "MX0_SniperAction", "1200045");
- Sniper2ID = Commands->Get_ID(Sniper2);
- }
- else if(number == 124)
- {
- GameObject *SearchObj1 = Commands->Find_Object(Sniper1ID);
- if(SearchObj1)
- {
- GameObject *SearchObj2 = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj2, 100007, 0, 0);
- }
- }
- else if(number == 119)
- Commands->Send_Custom_Event(obj, obj, 100002, 0, 0); // Right..... its there and its no mistake but its just inefficient.
- else if(number == 120)
- {
- if(ParamObjID3 <= 1)
- {
- Commands->Send_Custom_Event(obj, obj, 100003, 0, 0);
- Commands->Start_Timer(obj, this, 5, 120);
- }
- }
- else if(number == 127)
- Commands->Set_HUD_Help_Text(8576, Vector3(0.196000, 0.882000, 0.196000));
- else if(number == 128)
- Commands->Set_HUD_Help_Text(8577, Vector3(0.196000, 0.882000, 0.196000));
- else if(number == 118)
- Commands->Set_HUD_Help_Text(8578, Vector3(0.196000, 0.882000, 0.196000));
- else if(number == 117)
- {
- Commands->Set_Background_Music("Level0_pt1_music.mp3");
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Give_PowerUp(Star, "POW_AutoRifle_Player", false);
- Commands->Give_PowerUp(Star, "POW_AutoRifle_Player", false);
- Commands->Select_Weapon(Star, "Weapon_AutoRifle_Player");
- Commands->Attach_Script(Star, "Havoc_Script", "");
- }
- }
- void MX0_MissionStart_DME::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 138)
- {
- if(!DidStartMX0CON006)
- {
- int MX0CON018 = Commands->Create_Conversation("MX0CON018", 97, 2000, false);
- GameObject *SearchObj = Commands->Find_Object(ParamObjID1);
- Commands->Join_Conversation(SearchObj, MX0CON018, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation(Star, MX0CON018, true, true, true);
- Commands->Start_Conversation(MX0CON018, 100018);
- Commands->Monitor_Conversation(obj, MX0CON018);
- Commands->Start_Timer(obj, this, 3, 142);
- }
- }
- else if(type == 136)
- Commands->Start_Timer(obj, this, 2, 136);
- else if(type == 114)
- {
- GameObject *SearchObj1 = Commands->Find_Object(Sniper1ID);
- Commands->Send_Custom_Event(obj, SearchObj1, 114, 0, 0);
- GameObject *SearchObj2 = Commands->Find_Object(Sniper2ID);
- Commands->Send_Custom_Event(obj, SearchObj2, 114, 0, 0);
- }
- else if(type == 223)
- Commands->Send_Custom_Event(obj, sender, 223, Sniper1ID, 0);
- else if(type == 224)
- Commands->Send_Custom_Event(obj, sender, 224, Sniper2ID, 0);
- else if(type == 9035)
- {
- if(param == 1)
- Sniper1ID = Commands->Get_ID(sender);
- else
- {
- Sniper2ID = Commands->Get_ID(sender);
- Commands->Start_Timer(obj, this, 2, 134);
- }
- }
- else if(type == 99)
- {
- ParamObjID3 = 0;
- // These are all CORRECT floats.
- GameObject *Blocker1 = Commands->Create_Object("Large_Blocker", Vector3(-148.070999f, -31.267000f, -0.306000f));
- Commands->Set_Facing(Blocker1, -30.000000f);
- Commands->Set_Is_Rendered(Blocker1, false);
- GameObject *Blocker2 = Commands->Create_Object("Large_Blocker", Vector3(-148.233994f, -31.542000f, 1.357000f));
- Commands->Set_Facing(Blocker2, -30.000000f);
- Commands->Set_Is_Rendered(Blocker2, false);
- Commands->Start_Timer(obj, this, 0.500000, 117);
- Commands->Start_Timer(obj, this, 3, 127);
- Commands->Start_Timer(obj, this, 6, 128);
- Commands->Start_Timer(obj, this, 9, 118);
- Commands->Start_Timer(obj, this, 1, 133);
- }
- else if(type == 130)
- {
- GameObject *SearchObj1 = Commands->Find_Object(ParamObjID1);
- Commands->Send_Custom_Event(obj, SearchObj1, 131, 0, 0);
- GameObject *SearchObj2 = Commands->Find_Object(ParamObjID2);
- Commands->Send_Custom_Event(obj, SearchObj2, 131, 0, 0);
- }
- else if(type == 132)
- {
- GameObject *SearchObj = Commands->Find_Object(ParamObjID1);
- Commands->Send_Custom_Event(obj, SearchObj, 132, 0, 0);
- }
- else if(type == 111)
- {
- GameObject *SearchObj1 = Commands->Find_Object(ParamObjID1);
- Commands->Send_Custom_Event(obj, SearchObj1, 112, 0, 0);
- GameObject *SearchObj2 = Commands->Find_Object(ParamObjID2);
- Commands->Send_Custom_Event(obj, SearchObj2, 112, 0, 0);
- }
- else if(type == 102)
- {
- ParamObjID3 = param;
- GameObject *SearchObj1 = Commands->Find_Object(ParamObjID1);
- Commands->Send_Custom_Event(obj, SearchObj1, 108, param, 0);
- GameObject *SearchObj2 = Commands->Find_Object(ParamObjID2);
- Commands->Send_Custom_Event(obj, SearchObj2, 108, param, 0);
- }
- else if(type == 103)
- {
- if(DidGotParamObjID1)
- ParamObjID2 = param; // Engineer2
- else
- {
- DidGotParamObjID1 = true;
- ParamObjID1 = param; // Engineer1
- }
- }
- else if(type == 104)
- {
- if(param == 1)
- Commands->Send_Custom_Event(obj, sender, 105, ParamObjID1, 0);
- else if(param == 2)
- Commands->Send_Custom_Event(obj, sender, 106, ParamObjID2, 0);
- }
- else if(type == 100001)
- {
- int MX0CON001 = Commands->Create_Conversation("MX0CON001", 99, 2000, false);
- GameObject *SearchObj = Commands->Find_Object(ParamObjID2);
- Commands->Join_Conversation(SearchObj, MX0CON001, false, true, true);
- Commands->Start_Conversation(MX0CON001, 100001);
- Commands->Monitor_Conversation(obj, MX0CON001);
- }
- else if(number == 100002)
- {
- int MX0CON002 = Commands->Create_Conversation("MX0CON002", 97, 2000, false);
- GameObject *SearchObj1 = Commands->Find_Object(ParamObjID1);
- Commands->Join_Conversation(SearchObj1, MX0CON002, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation_Facing(SearchObj1, MX0CON002, Commands->Get_ID(Star));
- GameObject *SearchObj2 = Commands->Find_Object(ParamObjID2);
- Commands->Join_Conversation(SearchObj2, MX0CON002, false, true, true);
- Commands->Join_Conversation_Facing(SearchObj2, MX0CON002, Commands->Get_ID(Star));
- Commands->Join_Conversation(Star, MX0CON002, true, true, true);
- Commands->Start_Conversation(MX0CON002, 100002);
- Commands->Monitor_Conversation(obj, MX0CON002);
- }
- else if(number == 100003)
- {
- const char *MX0CON003_Conversations[4] =
- {
- "MX0CON003",
- "MX0CON003alt1",
- "MX0CON003alt2",
- "MX0CON003alt3"
- };
- int Random = Commands->Get_Random_Int(0, 4);
- int Conversation = Commands->Create_Conversation(MX0CON003_Conversations[Random], 97, 2000, false);
- GameObject *SearchObj = Commands->Find_Object(ParamObjID2);
- Commands->Join_Conversation(SearchObj, Conversation, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation_Facing(SearchObj, Conversation, Commands->Get_ID(Star));
- Commands->Join_Conversation(Star, Conversation, true, true, true);
- Commands->Start_Conversation(Conversation, 100003);
- Commands->Monitor_Conversation(obj, Conversation);
- }
- else if(number == 100004)
- {
- int MX0CON004 = Commands->Create_Conversation("MX0CON004", 95, 2000, false);
- GameObject *SearchObj1 = Commands->Find_Object(ParamObjID1);
- Commands->Join_Conversation(SearchObj1, MX0CON004, true, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation_Facing(SearchObj, MX0CON004, Commands->Get_ID(Star));
- Commands->Join_Conversation(Star, MX0CON004, true, true, true);
- Commands->Start_Conversation(MX0CON004, 100004);
- Commands->Monitor_Conversation(obj, MX0CON004);
- Commands->Innate_Disable(SearchObj1);
- GameObject *SearchObj2 = Commands->Find_Object(ParamObjID2);
- Commands->Innate_Disable(SearchObj2);
- }
- else if(number == 100005)
- {
- int MX0CON005 = Commands->Create_Conversation("MX0CON005", 97, 2000, false);
- GameObject *SearchObj = Commands->Find_Object(ParamObjID2);
- Commands->Join_Conversation(SearchObj, MX0CON005, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation_Facing(SearchObj, MX0CON005, Commands->Get_ID(Star));
- Commands->Join_Conversation(Star, MX0CON005, true, true, true);
- Commands->Start_Conversation(MX0CON005, 100005);
- Commands->Monitor_Conversation(obj, MX0CON005);
- }
- else if(number == 100006)
- {
- GameObject *SearchObj1 = Commands->Find_Object(Sniper1ID);
- if(SearchObj1)
- {
- GameObject *SearchObj2 = Commands->Find_Object(ParamObjID2);
- Commands->Send_Custom_Event(obj, SearchObj2, 125, 0, 0);
- Commands->Start_Timer(obj, this, 5, 124);
- int MX0CON006 = Commands->Create_Conversation("MX0CON006", 97, 2000, false);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation_Facing(SearchObj, MX0CON006, Commands->Get_ID(Star));
- Commands->Join_Conversation(Star, MX0CON006, true, true, true);
- Commands->Start_Conversation(MX0CON006, 100006);
- Commands->Monitor_Conversation(obj, MX0CON006);
- DidStartMX0CON006 = true;
- }
- }
- else if(type == 100007)
- {
- if(Commands->Find_Object(Sniper1ID))
- {
- const char *MX0CON0_Conversations[6] =
- {
- "MX0CON012",
- "MX0CON013",
- "MX0CON014",
- "MX0CON015",
- "MX0CON016",
- "MX0CON017"
- };
- GameObject *SearchObj = 0;
- if(ConversationTwiddler == 0 || ConversationTwiddler == 2 || ConversationTwiddler == 4)
- GameObject *SearchObj = Commands->Find_Object(ParamObjID1);
- if(ConversationTwiddler == 1 || ConversationTwiddler == 3 || ConversationTwiddler == 5)
- GameObject *SearchObj = Commands->Find_Object(ParamObjID2);
- int Conversation = Commands->Create_Conversation(MX0CON0_Conversations[ConversationTwiddler], 97, 2000, false);
- Commands->Join_Conversation(SearchObj, Conversation, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation(Star, Conversation, true, true, true);
- Commands->Start_Conversation(Conversation, 100007);
- Commands->Monitor_Conversation(obj, Conversation);
- if(ConversationTwiddler < 5)
- ConversationTwiddler++;
- if(ConversationTwiddler >= 5)
- ConversationTwiddler = 0;
- Commands->Start_Timer(obj, this, 5, 124);
- }
- }
- }
- class MX0_Engineer1 : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Timer_Expired(GameObject *obj,int number);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Damaged(GameObject *obj,GameObject *damager,float amount);
- void Animation_Complete(GameObject *obj,const char *animation_name);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- float Health;
- int Unknown1;
- int Unknown2;
- bool DoingDmgAnim;
- float Health2;
- };
- void MX0_Engineer1::Created(GameObject *obj)
- {
- DoingDmgAnim = false;
- Unknown2 = 0;
- Unknown3 = 0;
- Health = Commands->Get_Health(obj;
- Commands->Start_Timer(obj, this, 4, 121);
- Commands->Start_Timer(obj, this, 4, 122);
- int ID = Commands->Get_ID(obj);
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj, 103, ID, 0);
- }
- void MX0_Engineer1::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 116)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this 96, 101);
- Params.Set_Movement(Commands->Get_Position(Commands->Find_Object(Unknown3)), 0.800000, 1.000000);
- Commands->Action_Goto(obj, Params);
- }
- else if(number == 121)
- Commands->Set_Innate_Is_Stationary(obj, true);
- else if(number == 122)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this 96, 101);
- Params.Set_Movement(Commands->Get_Position(Commands->Find_Object(1200029)), 0.800000, 0.800000);
- Commands->Action_Goto(obj, Params);
- }
- }
- void MX0_Engineer1::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(action_id == 113)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 96, 101);
- Params.Set_Movement(Commands->Get_Position(Commands->Find_Object(1200029)), 0.800000, 0.800000);
- Commands->Action_Goto(obj, Params);
- }
- else if(action_id == 135)
- DoingDmgAnim = false;
- else if(action_id == 101)
- {
- int ActionID = Commands->Get_ActionID(obj);
- if(ActionID != 101 && complete_reason == 1)
- Commands->Start_Timer(obj, this, 5, 116);
- if(Unknown2 == 3 && !complete_reason)
- {
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj, 100004, 0, 0);
- }
- }
- }
- void MX0_Engineer1::Damaged(GameObject *obj,GameObject *damager,float amount)
- {
- Health2 = Commands->Get_Health(obj);
- float CalcHealth = Health - Get_Float_Parameter("Damage_multiplier") * (Health - Health2);
- Commands->Set_Health(obj, CalcHealth);
- Health2 = CalcHealth;
- Health = CalcHealth;
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- if(damager == Star && !DoingDmgAnim)
- {
- DoingDmgAnim = true;
- const char *HitConversation[4] =
- {
- "MX0CON008",
- "MX0CON009",
- "MX0CON010",
- "MX0CON011"
- };
- int Random = Commands->Get_Random_Int(0, 4);
- int Conversation = Commands->Create_Conversation(HitConversation[Random], 97, 2000, false);
- Commands->Join_Conversation(obj, Conversation, false, true, true);
- Commands->Join_Conversation(Star, Conversation, true, true, true);
- Commands->Start_Conversation(Conversation, 100008);
- Commands->Monitor_Conversation(obj, Conversation);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 135);
- Params.Set_Animation("H_A_J21C", false);
- Commands->Action_Play_Animation(obj, Params);
- }
- }
- void MX0_Engineer1::Animation_Complete(GameObject *obj,const char *animation_name)
- {
- if(strcmp(animation_name, "H_A_J21C") == 0)
- DoingDmgAnim = false;
- }
- void MX0_Engineer1::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 136)
- {
- GameObject *SearchObj1 = Commands->Find_Object(param);
- Commands->Unlock_Soldier_Facing(obj);
- if(SearchObj1)
- {
- Commands->Lock_Soldier_Facing(obj, SearchObj1, true);
- int GotoLoc[3] =
- {
- 1200010,
- 1200022,
- 1200039
- };
- int Random = Commands->Get_Random_Int(0, 3);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 97, 137);
- Params.Set_Movement(Commands->Find_Object(GotoLoc[Random]), 0.300000, 0.200000, true);
- Commands->Action_Goto(obj, Params);
- }
- }
- else if(type == 131)
- {
- Commands->Action_Reset(obj, 100);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 97, 131);
- Params.Set_Movement(Commands->Find_Object(1200006), 0.800000, 1.000000);
- Commands->Action_Goto(obj, Params);
- }
- else if(type == 132)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Lock_Soldier_Facing(obj, Star, true);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 97, 113);
- Params.Set_Animation("h_a_b0c0", true);
- Commands->Action_Play_Animation(obj, Params);
- }
- else if(type == 112)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 1);
- Params.Set_Movement(Commands->Find_Object(1200021), 1.200000, 1.000000, true);
- Params.Set_Attack(Commands->Find_Object(1200017), 250.000000, 0, true);
- Params.AttackForceFire = true;
- Commands->Action_Attack(obj, Params);
- }
- else if(type == 108)
- *((_DWORD *)this + 9) = param;
- else if(type == 100)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 96, 101);
- Params.Set_Movement(Commands->Get_Position(Commands->Find_Object(param)), 0.800000, 0.800000);
- Commands->Action_Goto(obj, Params);
- }
- }
- class MX0_Engineer2 : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Timer_Expired(GameObject *obj,int number);
- void Damaged(GameObject *obj,GameObject *damager,float amount);
- void Animation_Complete(GameObject *obj,const char *animation_name);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- float Health2;
- float Health;
- int Unknown1;
- int Unknown2;
- bool DoingDmgAnim;
- int Unknown3;
- };
- void MX0_Engineer2::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&Health2, 4, 1);
- Auto_Save_Variable(&Health, 4, 2);
- Auto_Save_Variable(&Unknown1, 4, 3);
- Auto_Save_Variable(&Unknown2, 4, 4);
- Auto_Save_Variable(&DoingDmgAnim, 1, 5);
- Auto_Save_Variable(&Unknown3, 4, 6);
- }
- void MX0_Engineer2::Created(GameObject *obj)
- {
- Unknown3 = 0;
- Unknown1 = 0;
- Unknown2 = 0;
- Health = Commands->Get_Health(obj);
- DoingDmgAnim = false;
- Commands->Start_Timer(obj, this, 4, 121);
- Commands->Start_Timer(obj, this, 3.500000, 123);
- int ID = Commands->Get_ID(obj);
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj, 103, ID, 0);
- }
- void MX0_Engineer2::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(action_id == 113)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 96, 101);
- Params.Set_Movement(Commands->Get_Position(Commands->Find_Object(1200026)), 0.800000, 0.800000);
- Commands->Action_Goto(obj, Params);
- Commands->Send_Custom_Event(obj, obj, 100005, 0, 0.600000);
- }
- else if(action_id == 135)
- DoingDmgAnim = false;
- else if(action_id == 101)
- {
- int ActionID = Commands->Get_ActionID(obj);
- if(ActionID != 101 && !Commands->Is_Performing_Pathfind_Action(obj) && (complete_reason == 1 || complete_reason == 3))
- Commands->Start_Timer(obj, this, 5, 116);
- if(Unknown1 == 4 && !complete_reason)
- {
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj, 132, 0, 0);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Lock_Soldier_Facing(obj, Star, true);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 97, 113);
- Params.Set_Animation("h_a_b0c0", true);
- Commands->Action_Play_Animation(obj, Params);
- }
- }
- }
- void MX0_Engineer2::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 137)
- {
- GameObject *SearchObj = Commands->Find_Object(Unknown3);
- Commands->Unlock_Soldier_Facing(obj);
- if(SearchObj)
- {
- Commands->Lock_Soldier_Facing(obj, SearchObj, true);
- int GotoLoc[3] =
- {
- 1200011,
- 1200021,
- 1200040
- };
- int Random = Commands->Get_Random_Int(0, 3);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 97, 137);
- Params.Set_Movement(Commands->Find_Object(GotoLoc[Random]), 0.300000, 0.200000, true);
- Commands->Action_Goto(obj, Params);
- }
- }
- else if(number == 116)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 96, 101);
- Params.Set_Movement(Commands->Get_Position(Commands->Find_Object(Unknown2)), 0.800000, 1.000000);
- Commands->Action_Goto(obj, Params);
- }
- else if(number == 121)
- Commands->Set_Innate_Is_Stationary(obj, true);
- else if(number == 123)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 98, 113);
- Params.Set_Animation("H_A_A0A0_L32", false);
- Commands->Action_Play_Animation(obj, Params);
- }
- }
- void MX0_Engineer2::Damaged(GameObject *obj,GameObject *damager,float amount)
- {
- Health2 = Commands->Get_Health(obj);
- float CalcHealth = Health - Get_Float_Parameter("Damage_multiplier") * (Health - Health2);
- Commands->Set_Health(obj, CalcHealth);
- Health = CalcHealth;
- Health2 = CalcHealth;
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- if(damager == Star && !DoingDmgAnim)
- {
- DoingDmgAnim = true;
- const char *HitConversation[4] =
- {
- "MX0CON008",
- "MX0CON009",
- "MX0CON010",
- "MX0CON011"
- };
- int Random = Commands->Get_Random_Int(0, 4);
- int Conversation = Commands->Create_Conversation(HitConversation[Random], 97, 2000, false);
- Commands->Join_Conversation(obj, Conversation, false, true, true);
- Commands->Join_Conversation(Star, Conversation, true, true, true);
- Commands->Start_Conversation(Conversation, 100008);
- Commands->Monitor_Conversation(obj, Conversation);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 135);
- Params.Set_Animation("H_A_J21C", false);
- Commands->Action_Play_Animation(obj, Params);
- }
- }
- void MX0_Engineer2::Animation_Complete(GameObject *obj,const char *animation_name)
- {
- if(strcmp(animation_name, "H_A_J21C") == 0)
- DoingDmgAnim = false;
- }
- void MX0_Engineer2::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 136)
- {
- Unknown3 = param;
- Commands->Start_Timer(obj, this, 5, 137);
- }
- else if(type == 131)
- {
- Commands->Action_Reset(obj, 100);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 97, 131);
- Params.Set_Movement(Commands->Find_Object(1200007), 0.800000, 1.000000);
- Commands->Action_Goto(obj, Params);
- }
- else if(type == 125)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Vector3 StarPos = Commands->Get_Position(Star);
- float Facing = atan2(StarPos.X - Pos.X, StarPos.Y, Pos.Y) * 57.295776; // I did not check if this calculation makes any sense i just simply read what it said.
- Commands->Set_Facing(obj, Facing);
- Commands->Action_Reset(obj, 100);
- Commands->Set_Animation(obj, "H_A_A0A0_L53", false, "", 0, -1, true); // or -4? dunno if that makes sense
- }
- else if(type == 112)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 95, 1);
- Params.Set_Movement(Commands->Find_Object(1200022), 1.200000, 1.000000, true);
- Params.Set_Attack(Commands->Find_Object(1200017), 250.000000, 0, true);
- Params.AttackForceFire = true;
- Commands->Action_Attack(obj, Params);
- }
- else if(type == 108)
- Unknown1 = param;
- else if(type == 100)
- {
- Unknown2 = param;
- ActionParamsStruct Params;
- Params.Set_Basic(this 96, 101);
- Params.Set_Movement(Commands->Get_Position(Commands->Find_Object(Unknown2)), 0.800000, 0.800000);
- Commands->Action_Goto(obj, Params);
- }
- }
- class MX0_Engineer_Return : public ScriptImpClass
- {
- void Killed(GameObject *obj, GameObject *killer);
- bool Unknown;
- };
- void MX0_Engineer_Return::Killed(GameObject *obj, GameObject *killer)
- {
- // Could be any event but im guessing on Killed.
- if(!Unknown)
- {
- Unknown = true;
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, this, 130, 1, 0);
- }
- }
- class MX0_Engineer_Goto : public ScriptImpClass
- {
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Entered(GameObject *obj, GameObject *enterer);
- bool DidSend;
- };
- void MX0_Engineer_Goto::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 105)
- {
- GameObject *SearchObj = Commands->Find_Object(param);
- Commands->Send_Custom_Event(obj, SearchObj, 100, Get_Int_Parameter("GotoDest1"), 0);
- }
- else if(type == 106)
- {
- GameObject *SearchObj = Commands->Find_Object(param);
- Commands->Send_Custom_Event(obj, SearchObj, 100, Get_Int_Parameter("GotoDest2"), 0);
- }
- }
- void MX0_Engineer_Goto::Entered(GameObject *obj, GameObject *enterer)
- {
- if(!DidSend)
- {
- DidSend = true;
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj, 102, Get_Int_Parameter("Count"), 0);
- Commands->Send_Custom_Event(obj, SearchObj, 104, 1, 0);
- Commands->Send_Custom_Event(obj, SearchObj, 104, 2, 0);
- }
- }
- class MX0_Engineer_Goto2 : public ScriptImpClass
- {
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Timer_Expired(GameObject *obj,int number);
- void Entered(GameObject *obj,GameObject *enterer);
- bool DidSend;
- };
- void MX0_Engineer_Goto2::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 105)
- {
- GameObject *SearchObj = Commands->Find_Object(param);
- Commands->Send_Custom_Event(obj, SearchObj, 100, Get_Int_Parameter("GotoDest1"), 0);
- }
- else if(type == 106)
- {
- GameObject *SearchObj = Commands->Find_Object(param);
- Commands->Send_Custom_Event(obj, SearchObj, 100, Get_Int_Parameter("GotoDest2"), 0);
- }
- else if(type == 110)
- {
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj, 115, 1, 0);
- Commands->Send_Custom_Event(obj, SearchObj, 102, Get_Int_Parameter("Count"), 0);
- Commands->Send_Custom_Event(obj, SearchObj, 104, 1, 0);
- Commands->Send_Custom_Event(obj, SearchObj, 104, 2, 0);
- }
- }
- void MX0_Engineer_Goto2::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 126)
- Commands->Set_HUD_Help_Text(8579, Vector3(0.196000, 0.882000, 0.196000));
- }
- void MX0_Engineer_Goto2::Entered(GameObject *obj,GameObject *enterer)
- {
- if(!DidSend)
- {
- DidSend = true;
- if(Get_Int_Parameter("Count") == 5)
- {
- Commands->Start_Timer(obj, this, 3, 126);
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj, 136, 0, 0);
- Commands->Send_Custom_Event(obj, SearchObj, 100006, 1, 0);
- }
- }
- }
- class MX0_Kill_Sniper : public ScriptImpClass
- {
- void Killed(GameObject *obj,GameObject *killer);
- bool DidSend;
- };
- void MX0_Kill_Sniper::Killed(GameObject *obj,GameObject *killer)
- {
- // Killed assumed.
- if(!DidSend)
- {
- DidSend = true;
- GameObject *SearchObj1 = Commands->Find_Object(1200017);
- if(SearchObj1)
- {
- GameObject *SearchObj2 = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj2, 111, 0, 0);
- }
- }
- }
- class MX0_NOD_TroopDrop : public ScriptImpClass
- {
- void Timer_Expired(GameObject *obj,int number);
- void Entered(GameObject *obj,GameObject *enterer);
- bool DidSend;
- };
- void MX0_NOD_TroopDrop::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 109)
- {
- GameObject *CinPosObj1 = Commands->Find_Object(1200018);
- Vector3 CinPos1 = Commands->Get_Position(CinPosObj1);
- GameObject *CinObject1 = Commands->Create_Object("Invisible_Object", CinPos1);
- Commands->Set_Facing(CinObject1, Commands->Get_Facing(CinPosObj1));
- Commands->Attach_Script(CinObject1, "Test_Cinematic", "MX0_C130Troopdrop.txt");
- GameObject *CinPosObj2 = Commands->Find_Object(1200020);
- Vector3 CinPos2 = Commands->Get_Position(CinPosObj1);
- GameObject *CinObject2 = Commands->Create_Object("Invisible_Object", CinPos2);
- Commands->Set_Facing(CinObject2, Commands->Get_Facing(CinPosObj2));
- Commands->Attach_Script(CinObject2, "Test_Cinematic", "MX0_C130Troopdrop2.txt");
- }
- }
- void MX0_NOD_TroopDrop::Entered(GameObject *obj,GameObject *enterer)
- {
- if(!DidSend)
- {
- DidSend = true;
- GameObject *CinPosObj1 = Commands->Find_Object(1200018);
- Vector3 CinPos1 = Commands->Get_Position(CinPosObj1);
- GameObject *CinObject1 = Commands->Create_Object("Invisible_Object", CinPos1);
- Commands->Set_Facing(CinObject1, Commands->Get_Facing(CinPosObj1));
- Commands->Attach_Script(CinObject1, "Test_Cinematic", "MX0_C130Troopdrop.txt");
- GameObject *CinPosObj2 = Commands->Find_Object(1200020);
- Vector3 CinPos2 = Commands->Get_Position(CinPosObj1);
- GameObject *CinObject2 = Commands->Create_Object("Invisible_Object", CinPos2);
- Commands->Set_Facing(CinObject2, Commands->Get_Facing(CinPosObj2));
- Commands->Attach_Script(CinObject2, "Test_Cinematic", "MX0_C130Troopdrop2.txt");
- Commands->Start_Timer(obj, this, 3, 109);
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj, 114, 0, 0);
- }
- }
- class MX0_AmbientBattle : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Timer_Expired(GameObject *obj,int number);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- int SoundID;
- };
- void MX0_AmbientBattle::Created(GameObject *obj)
- {
- Timer_Expired(obj, 107);
- }
- void MX0_AmbientBattle::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 107)
- {
- SoundID = Commands->Create_Sound("MX0_AmbientBattle_DME", Commands->Get_Position(obj), obj);
- Commands->Monitor_Sound(obj, SoundID);
- }
- }
- void MX0_AmbientBattle::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 1000000001 && param == SoundID)
- Commands->Start_Timer(obj, this, 3, 107);
- }
- class MX0_SniperAction : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Damaged(GameObject *obj,GameObject *damager,float amount);
- void Timer_Expired(GameObject *obj,int number);
- float Health;
- };
- void MX0_SniperAction::Created(GameObject *obj)
- {
- Health = Commands->Get_Health(obj);
- Commands->Innate_Disable(obj);
- }
- void MX0_SniperAction::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 114)
- Commands->Start_Timer(obj, this, 5, 108);
- }
- void MX0_SniperAction::Damaged(GameObject *obj,GameObject *damager,float amount)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- if(damager == Star)
- {
- Commands->Apply_Damage(obj, 10000, "BlamoKiller", Star);
- bool Encyclopedia = Commands->Reveal_Encyclopedia_Character(41);
- if(Encyclopedia)
- Commands->Display_Encyclopedia_Event_UI();
- }
- else
- Commands->Apply_Damage(obj, 10000, "BlamoKiller", 0);
- }
- void MX0_SniperAction::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 108)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 99, 1);
- Params.Set_Attack(Commadns->Find_Object(Get_Int_Parameter("FaceObj")), 250.000000, 0, true);
- Params.AttackForceFire = true;
- Commands->Action_Attack(obj, Params);
- }
- }
- class MX0_KillNotify : public ScriptImpClass
- {
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Timer_Expired(GameObject *obj,int number);
- void Killed(GameObject *obj,GameObject *killer);
- int Unknown;
- };
- void MX0_KillNotify::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 114)
- {
- Commands->Start_Timer(obj, this, 3, 139);
- Commands->Start_Timer(obj, this, 7, 140);
- }
- }
- void MX0_KillNotify::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 139)
- {
- int MX0CON020 = Commands->Create_Conversation("MX0CON020", 95, 2000, false);
- Commands->Join_Conversation(obj, MX0CON020, true, true, true);
- Commands->Start_Conversation(MX0CON020, 100020);
- Commands->Monitor_Conversation(obj, MX0CON020);
- }
- else if(number == 140)
- {
- int MX0CON021 = Commands->Create_Conversation("MX0CON021", 99, 2000, false);
- Commands->Join_Conversation(obj, MX0CON021, true, true, true);
- Commands->Start_Conversation(MX0CON021, 100021);
- Commands->Monitor_Conversation(obj, MX0CON021);
- Commands->Start_Timer(obj, this, 5, 141);
- }
- else if(number == 141)
- {
- if(Unknown)
- {
- const char *Conversations[6] =
- {
- "Mx0_NODSNIPER_Alt01",
- "Mx0_NODSNIPER_Alt02",
- "Mx0_NODSNIPER_Alt03",
- "Mx0_NODSNIPER_Alt04",
- "Mx0_NODSNIPER_Alt05",
- "Mx0_NODSNIPER_Alt06"
- };
- int Random = Commands->Get_Random_Int(0, 6);
- int Conversation = Commands->Create_Conversation(Conversations[Random], 95, 2000, false);
- Commands->Join_Conversation(obj, Conversation, true, true, true);
- Commands->Start_Conversation(Conversation, 100021);
- Commands->Monitor_Conversation(obj, Conversation);
- Commands->Start-Timer(obj, this, 5, 141);
- }
- }
- }
- void MX0_KillNotify::Killed(GameObject *obj,GameObject *killer)
- {
- // Killed assumed
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- if(killer == Star)
- {
- GameObject *SearchObj = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, SearchObj, 138, 0, 0);
- }
- }
- class DAK_MX0_Sec_3_Humvee : public ScriptImpClass
- {
- void Unknown(int this, int a2, int a3);
- };
- void DAK_MX0_Sec_3_Humvee::Unknown(int this, int a2, int a3)
- {
- //Commands->Find_Object is used too, but I couldn't really identify what object was being looked for. The only valid IDs I could find were the waypath IDs.
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 100);
- Params.Set_Movement(0, 0.500000, 5.000000);
- Params.WaypathID = 1400035; // assumed
- Params.WaypointStartID = 1400037; // assumed
- Params.WaypointEndID = 1400038; // assumed
- Params.MovePathfind = true; // assumed
- Commands->Action_Goto(obj, Params);
- Commands->Debug_Message("***** DAK_MX0_Sec_3_Humvee:Entered code exectued.\n");
- }
- class MX0_A03_NOD_PLACED_MINIGUNNER : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- };
- void MX0_A03_NOD_PLACED_MINIGUNNER::Created(GameObject *obj)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- Commands->Set_Innate_Soldier_Home_Location(obj, Pos, 5.000000);
- Commands->Innate_Disable(obj);
- Commands->Set_Innate_Is_Stationary(obj, true);
- }
- void MX0_A03_NOD_PLACED_MINIGUNNER::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- // Custom assumed
- if(type == 417)
- {
- Commands->Innate_Enable(obj);
- Commands->Set_Innate_Is_Stationary(obj, false);
- }
- }
- class MX0_GDI_ORCA : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Entered(GameObject *obj,GameObject *enterer);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- bool Trigger;
- int FindObjID;
- };
- void MX0_GDI_ORCA::Created(GameObject *obj)
- {
- Trigger = true;
- }
- void MX0_GDI_ORCA::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(action_id == 1 && complete_reason == ACTION_COMPLETE_CONVERSATION_ENDED)
- {
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Vector3(0,0,0));
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X0F_Harvester.txt");
- Commands->Send_Custom_Event(obj, obj, 1, 0, 1.500000);
- GameObject *Harvester = Commands->Find_Object(1400001);
- Commands->Commands->Send_Custom_Event(obj, Harvester, 413, 4, 7);
- Commands->Send_Custom_Event(obj, Harvester, 413, 3, 9);
- Commands->Send_Custom_Event(obj, Harvester, 413, 3, 10);
- Commands->Send_Custom_Event(obj, obj, 2, 0, 9.500000);
- }
- }
- void MX0_GDI_ORCA::Entered(GameObject *obj,GameObject *enterer)
- {
- if(Trigger)
- {
- Commands->Fade_Background_Music("Level 0 Tiberium.mp3", 2, 2);
- int MX0_A03_02 = Commands->Create_Conversation("MX0_A03_02", 0, 0, false);
- Commands->Join_Conversation(0, MX0_A03_02, true, true, true);
- Commands->Start_Conversation(MX0_A03_02, 1);
- Commands->Monitor_Conversation(obj, MX0_A03_02);
- GameObject *SearchObj = Commands->Find_Object(1400057);
- Commands->Attach_Script(SearchObj, "Test_Cinematic", "XG_A03_Tank_Drop.txt");
- Trigger = false;
- }
- }
- void MX0_GDI_ORCA::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 1)
- {
- int MX0_A03_03 = Commands->Create_Conversation("MX0_A03_03", 0, 0, true);
- Commands->Join_Conversation(0, MX0_A03_03, true, true, true);
- Commands->Start_Conversation(MX0_A03_03, 1);
- }
- else if(type == 2)
- {
- GameObject *SearchObj = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, SearchObj, 9035, 12, 0);
- GameObject *SearchObj2 = Commands->Find_Object(FindObjID);
- int MX0_A03_04 = Commands->Create_Conversation("MX0_A03_04", 0, 0, 1);
- Commands->Join_Conversation(SearchObj2, MX0_A03_04, false, false, true);
- Commands->Join_Conversation(0, MX0_A03_04, true, true, true);
- Commadns->Start_Conversation(MX0_A03_04, 2);
- Commands->Send_Custom_Event(obj, SearchObj2, 5, 0, 0);
- Commands->Send_Custom_Event(obj, SerachObj2, 3, 0, 10);
- }
- else if(type == 3)
- FindObjID = param;
- }
- class MX0_NOD_INFANTRY : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Animation_Complete(GameObject *obj,const char *animation_name);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Killed(GameObject *obj,GameObject *killer);
- int troop_num;
- };
- void MX0_NOD_INFANTRY::Created(GameObject *obj)
- {
- troop_num = Get_Int_Parameter("troop_num");
- GameObject *SearchObj = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, SearchObj, 406, 0, 0);
- if(troop_num)
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1400041,15,0");
- else
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1400041,17,0");
- }
- void MX0_NOD_INFANTRY::Animation_Complete(GameObject *obj,const char *animation_name)
- {
- if(strcmp("S_A_Human.H_A_TroopDrop", animation_name) == 0)
- Commands->Send_Custom_Event(obj, obj, 1, 0, 0.330000);
- }
- void MX0_NOD_INFANTRY::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(!action_id)
- Commands->Set_Innate_Is_Stationary(obj, true);
- }
- void MX0_NOD_INFANTRY::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type)
- {
- if(type == 1)
- {
- Commands->Action_Reset(obj, 100);
- if(troop_num == 1)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 0);
- Params.Set_Movement(Commands->Find_Object(1400153), 0.800000, 0.250000);
- Commands->Action_Goto(obj, Params);
- }
- else
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 0);
- Params.Set_Movement(Commands->Find_Object(1400155), 0.800000, 0.250000);
- Commands->Action_Goto(obj, Params);
- }
- }
- }
- else
- {
- if(sender)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 1);
- Params.Set_Attack(sender, 100.000000, 0.750000, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- }
- void MX0_NOD_INFANTRY::Killed(GameObject *obj,GameObject *killer)
- {
- // Killed assumed
- GameObject *SearchObj = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, SearchObj, 407, 0, 2); // 0 param assumed
- }
- class MX0_A03_GDI_INFANTRY : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- int troop_num;
- int VehicleID;
- };
- void MX0_A03_GDI_INFANTRY::Created(GameObject *obj)
- {
- troop_num = Get_Int_Parameter("troop_num");
- Commands->Attach_Script(obj, "M00_Damage_Modifier_DME", "0.15,0,1,1,1");
- if(troop_num == 1)
- {
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1400041,3,0");
- Commands->Action_Reset(obj, 100);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 91, 0);
- Params.Set_Movement(Commands->Find_Object(1400138), 0.800000, 0.250000);
- Commands->Action_Goto(obj, Params);
- }
- else if(troop_num == 2)
- {
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1400041,5,0");
- Commands->Action_Reset(obj, 100);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 91, 0);
- Params.Set_Movement(Commands->Find_Object(1400139), 0.800000, 0.250000);
- Commands->Action_Goto(obj, Params);
- }
- else if(troop_num == 3)
- {
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1400041,7,0");
- Commands->Action_Reset(obj, 100);
- VehicleID = 1400001; // Harvester
- ActionParamsStruct Params;
- Params.Set_Basic(this, 91, 1);
- Params.Set_Movement(Commands->Find_Object(1400140), 0.800000, 0.250000);
- Commands->Action_Goto(obj, Params);
- }
- }
- void MX0_A03_GDI_INFANTRY::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(action_id)
- {
- if(action_id == 1)
- {
- Commands->Set_Innate_Is_Stationary(obj, true);
- Commands->Send_Custom_Event(obj, obj, 0, 0, 0);
- }
- else if(action_id == 2)
- {
- VehicleID = 1400081; // Buggy
- Commands->Send_Custom_Event(obj, obj, 0, 0, 0);
- }
- }
- else
- Commands->Set_Innate_Is_Stationary(obj, true);
- }
- void MX0_A03_GDI_INFANTRY::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(!type)
- {
- GameObject *Vehicle = Commands->Find_Object(VehicleID);
- if(Vehicle)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 2);
- Params.Set_Attack(Vehicle, 60.000000, 0.250000, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- }
- class MX0_A03_GDI_TROOP_DROP_ZONE_DAK : public ScriptImpClass
- {
- void Created(GameObject *obj);
- bool CanDrop;
- };
- void MX0_A03_GDI_TROOP_DROP_ZONE_DAK::Created(GameObject *obj)
- {
- //Created assumed
- if(CanDrop)
- {
- GameObject *DropLocation = Commands->Find_Object(1400053);
- Commands->Attach_Script(DropLocation, "Test_Cinematic", "MX0_A03_GDI_TroopDrop.txt");
- CanDrop = false;
- }
- }
- class MX0_A03_GDI_TANK_DROP_ZONE_DAK : public ScriptImpClass
- {
- void Created(GameObject *obj);
- bool CanDrop;
- };
- void MX0_A03_GDI_TANK_DROP_ZONE_DAK::Created(GameObject *obj)
- {
- //Created assumed
- if(CanDrop)
- {
- GameObject *DropLocation = Commands->Find_Object(1400057);
- Commands->Attach_Script(DropLocation, "Test_Cinematic", "XG_A03_Tank_Drop.txt");
- CanDrop = false;
- }
- }
- class MX0_A03_CONTROLLER_DAK : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- int SenderID1;
- int SenderID2;
- int SenderID3;
- int SenderID4;
- int SenderID5;
- int SenderID6;
- int SenderID7;
- int Counter1;
- int Counter2;
- int SenderID8;
- int SenderID9;
- int Unknown;
- bool Received408;
- bool Received415;
- bool Toggle405;
- int Counter3;
- };
- void MX0_A03_CONTROLLER_DAK::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&SenderID1, 4, 1);
- Auto_Save_Variable(&SenderID5, 4, 2);
- Auto_Save_Variable(&SenderID6, 4, 3);
- Auto_Save_Variable(&SenderID7, 4, 4);
- Auto_Save_Variable(&SenderID4, 4, 5);
- Auto_Save_Variable(&SenderID2, 4, 6);
- Auto_Save_Variable(&SenderID3, 4, 7);
- Auto_Save_Variable(&Counter1, 4, 8);
- Auto_Save_Variable(&Counter2, 4, 9);
- Auto_Save_Variable(&SenderID8, 4, 10);
- Auto_Save_Variable(&SenderID9, 4, 11);
- Auto_Save_Variable(&Unknown, 4, 12);
- Auto_Save_Variable(&Received408, 1, 14);
- Auto_Save_Variable(&Counter3, 4, 15);
- Auto_Save_Variable(&Received415, 1, 16);
- Auto_Save_Variable(&Toggle405, 1, 17);
- }
- void MX0_A03_CONTROLLER_DAK::Created(GameObject *obj)
- {
- Counter3 = 1;
- Received408 = false;
- Received415 = false;
- Counter1 = 0;
- Counter2 = 0;
- Toggle405 = true;
- }
- void MX0_A03_CONTROLLER_DAK::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(!type)
- {
- if(Received408 && Received415 && Toggle405)
- {
- Commands->Send_Custom_Event(obj, obj, 405, 0, 0);
- GameObject *SearchObj = Commands->Find_Object(1400069);
- Commands->Send_Custom_Event(obj, SearchObj, 414, 0, 0);
- }
- }
- else if(type == 403)
- Counter1++;
- else if(type == 404)
- Counter1--;
- else if(type == 406)
- Counter2++;
- else if(type == 407)
- {
- Counter2--;
- if(!Counter2 && Counter3 < 5 && !Received408)
- {
- GameObject *SearchObj = Commands->Find_Object(1400152);
- Vector3 Pos = Commands->Get_Position(SearchObj);
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Pos);
- Commands->Attach_Script(CinObject, "Test_Cinematic", "MX0_A03_NOD_LedgeDrop.txt");
- Counter3++;
- }
- }
- else if(type == 401)
- {
- Commands->Scale_AI_Awareness(2.000000, 1.000000);
- GameObject *SearchObj1 = Commands->Find_Object(1400042);
- if(SearchObj1)
- {
- Commands->Debug_Message("***** sending custom, dropping humvee, attaching script\n");
- Commands->Attach_Script(SearchObj1, "Test_Cinematic", "XG_A03_HumveeDrop_B.txt");
- }
- GameObject *Buggy = Commands->Find_Object(1400081);
- Commands->Send_Custom_Event(obj, Buggy, 1, 0, 0);
- GameObject *SearchObj2 = Commands->Find_Object(SenderID2);
- Commands->Attach_Script(SearchObj2, "MX0_A03_GDI_TROOPER_ONE", "");
- Commands->Send_Custom_Event(obj, SearchObj2, 1, 0, 2);
- GameObject SearchObj3 = Commands->Find_Object(1400150);
- Commands->Send_Custom_Event(obj, SearchObj3, 417, 0, 0);
- }
- else if(type == 415)
- {
- Received415 = true;
- Commands->Send_Custom_Event(obj, obj, 0, 0, 0);
- }
- else if(type == 9035)
- {
- switch(param)
- {
- case 1:
- SenderID1 = Commands->Get_ID(sender);
- break;
- case 2:
- Commands->Send_Custom_Event(obj, sender, 9035, SenderID1, 0);
- break;
- case 3:
- SenderID5 = Commands->Get_ID(sender);
- break;
- case 4:
- Commands->Send_Custom_Event(obj, sender, 9035, SenderID5, 0);
- break;
- case 5:
- SenderID6 = Commands->Get_ID(sender);
- break;
- case 6:
- Commands->Send_Custom_Event(obj, sender, 9035, SenderID6, 0);
- break;
- case 7:
- SenderID7 = Commands->Get_ID(sender);
- break;
- case 8:
- Commands->Send_Custom_Event(obj, sender, 9035, SenderID7, 0);
- break;
- case 9:
- SenderID4 = Commands->Get_ID(sender);
- break;
- case 10:
- Commands->Send_Custom_Event(obj, sender, 9035, SenderID4, 0);
- break;
- case 11:
- SenderID2 = Commands->Get_ID(sender);
- Commands->Debug_Message("***** DAK ***** A03: recieved trooper1 ID.\n");
- break;
- case 12:
- Commands->Send_Custom_Event(obj, sender, 9035, SenderID2, 0);
- break;
- case 13:
- SenderID3 = Commands->Get_ID(sender);
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1500017,10,1.0f");
- break;
- case 14:
- Commands->Send_Custom_Event(obj, sender, 9035, SenderID3, 0);
- break;
- case 15:
- SenderID8 = Commands->Get_ID(sender);
- break;
- case 16:
- Commands->Send_Custom_Event(obj, sender, 9035, SenderID8, 0);
- break;
- case 17:
- SenderID9 = Commands->Get_ID(sender);
- break;
- case 18:
- Commands->Send_Custom_Event(obj, sender, 9035, SenderID9, 0);
- break;
- }
- }
- else if(type == 408) // Guessed it was kinda weird how it was put together but i think its 408
- {
- Received408 = true;
- GameObject *SearchObj1 = Commands->Find_Object(SenderID2);
- if(Toggle405)
- {
- if(SearchObj1)
- {
- GameObject *SearchObj2 = COmmands->Find_Object(SenderID2);
- int MX0_A03_08 = Commands->Create_Conversation("MX0_A03_08", 0, 0, false);
- Commands->Join_Conversatoin(SearchObj2, MX0_A03_08, false, false, true);
- Commands->Start_Conversation(MX0_A03_08, 0);
- }
- else
- Commands->Send_Custom_Event(obj, obj, 0, 0, 0);
- }
- Commands->Send_Custom_Event(obj, SearchObj1, 4, 0, 0);
- Commands->Send_Custom_Event(obj, obj, 0, 0, 0);
- }
- else if(type == 405) // Guessed it was kinda weird how it was put together but i think its 405
- {
- Toggle405 = false;
- GameObject *SearchObj1 = Commands->Find_Object(1500051);
- Vector3 Pos = Commands->Get_Position(SearchObj1);
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Pos);
- Commands->Set_Facing(CinObject, 0);
- Commands->Attach_Script(CinObject, "Test_Cinematic", "MX0_GDI_TroopDrop_Area4.txt");
- GameObject *SearchObj2 = Commands->Find_Object(SenderID4);
- if(SearchObj2)
- {
- Commands->Action_Reset(SearchObj2, 100);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 91, 1);
- Params.Set_Movement(0, 1.000000, 1.000000);
- Params.WaypathID = 1400058;
- Params.MovePathfind = true;
- Commands->Action_Goto(SearchObj2, Params);
- }
- GameObject *SearchObj3 = Commands->Find_Object(SenderID1);
- Commands->Send_Custom_Event(obj, SearchObj3, 3, 0, 1.250000);
- GameObject *SearchObj4 = Commands->Find_Object(SenderID2);
- Commadns->Send_Custom_Event(obj, SearchObj4, 2, 0, 0);
- }
- }
- class MX0_A03_HUMVEE : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- int Targets[4];
- int TargetIndex;
- int CurTarget;
- };
- void MX0_A03_HUMVEE::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&Targets, 12, 1);
- Auto_Save_Variable(&TargetIndex, 4, 2);
- Auto_Save_Variable(&CurTarget, 4, 3);
- }
- void MX0_A03_HUMVEE::Created(GameObject *obj)
- {
- TargetIndex = 1;
- Targets[1] = 1400081; // Buggy
- Targets[2] = 1400001; // Harvy
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1400041,1,0");
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1500017,1,1.0f");
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1500020,1,1.0f");
- int MX0_A03_01 = Commands->Create_Conversation("MX0_A03_01", 0, 0, false);
- Commands->Join_Conversation(0, MX0_A03_01, true, true, true);
- Commands->Start_Conversation(MX0_A03_01, 1);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 0);
- Params.Set_Movement(0, 0.500000, 1.000000);
- Params.WaypathID = 1400043;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- void MX0_A03_HUMVEE::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(action_id == 0)
- {
- CurTarget = Targets[TargetIndex];
- GameObject *TargetObj = Commands->Find_Object(CurTarget);
- if(TargetObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 1);
- Params.Set_Attack(TargetObj, 60.000000, 0.250000, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- else if(action_id == 1)
- {
- TargetIndex++;
- CurTarget = Targets[TargetIndex];
- GameObject *TargetObj = Commands->Find_Object(CurTarget);
- if(TargetObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 1);
- Params.Set_Attack(TargetObj, 60.000000, 0.250000, true);
- Commands->Action_Attack(obj, Params);
- }
- else
- Commands->Innate_Enable(obj);
- }
- }
- void MX0_A03_HUMVEE::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 1)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 1);
- Params.Set_Attack(0, 20.000000, 0, true);
- Commands->Modify_Action(obj, 1, Params, false, true);
- float Random = Commands->Get_Random(1.000000, 3.000000);
- Commands->Send_Custom_Event(obj, obj, 2, 0, Random);
- }
- else if(type == 2)
- {
- GameObject *TargetObj = Commands->Find_Object(CurTarget);
- if(TargetObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 1);
- Params.Set_Attack(TargetObj, 60.000000, 0.250000, true); // Most likely...
- Commands->Modify_Action(obj, 1, Params, false, true);
- float Random = Commands->Get_Random(3.000000, 6.000000);
- Commands->Send_Custom_Event(obj, obj, 1, 0, Random);
- }
- }
- else if(type == 3)
- {
- Commands->Debug_Message("***** DAK ***** Humvee: Recieved custom to move to section 4.\n");
- Commands->Action_Reset(obj, 100);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 2);
- Params.Set_Movement(0, 0.500000, 1.000000);
- Params.WaypathID = 1400070;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- }
- class MX0_A03_TANK : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- int Targets[5];
- int TargetIndex;
- int CurTarget;
- };
- void MX0_A03_TANK::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&Targets, 20, 1);
- Auto_Save_Variable(&TargetIndex, 4, 2);
- Auto_Save_Variable(&CurTarget, 4, 3);
- }
- void MX0_A03_TANK::Created(GameObject *obj)
- {
- TargetIndex = 1;
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1400041,9,0");
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1500017,3,1.0f");
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1500020,3,1.0f");
- Targets[1] = 1400144; // Left turret
- Targets[2] = 1400146; // Right turret
- Targets[3] = 1400001; // Harvy
- Targets[4] = 1400081; // Buggy
- Commands->Send_Custom_Event(obj, obj, 0, 0, 1.000000);
- }
- void MX0_A03_TANK::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(!action_id)
- {
- TargetIndex++;
- Commands->Send_Custom_Event(obj, obj, 0, 0, 1.000000);
- }
- }
- void MX0_A03_TANK::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(!type)
- {
- CurTarget = Targets[TargetIndex];
- GameObject *TargetObj = Commands->Find_Object(CurTarget);
- if(TargetObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 0);
- Params.Set_Attack(TargetObj, 60.000000, 0.250000, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- }
- class MX0_A03_NOD_BUGGIE : public ScriptImpClass
- {
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Killed(GameObject *obj,GameObject *killer);
- };
- void MX0_A03_NOD_BUGGIE::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 1)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 0, 0); // 0 priority is strange, but I couldn't really find another one.
- Params.Set_Movement(0, 0.250000, 1.000000);
- Params.WaypathID = 1400096;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- }
- void MX0_A03_NOD_BUGGIE::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(!action_id)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 0, 0); // 0 priority is strange, but I couldn't really find another one.
- Params.Set_Movement(0, 0.330000, 1.000000);
- Params.WaypathID = 1400096;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- }
- void MX0_A03_NOD_BUGGIE::Killed(GameObject *obj,GameObject *killer)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Minigunner = Commands->Create_Object("Nod_Minigunner_0", Pos);
- Commands->Attach_Script(Minigunner, "MX0_A03_NOD_TROOPER_TIB_DEATH", "");
- }
- class MX0_A03_NOD_TROOPER_TIB_DEATH : public ScriptImpClass
- {
- void Killed(GameObject *obj,GameObject *killer);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- int ParamNumber;
- };
- void MX0_A03_NOD_TROOPER_TIB_DEATH::Killed(GameObject *obj,GameObject *killer)
- {
- GameObject *Controller = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, Controller, 415, 0, 2.000000);
- }
- void MX0_A03_NOD_TROOPER_TIB_DEATH::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 9035)
- ParamNumber = param;
- }
- class MX0_A03_NOD_HARVESTER : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Animation_Complete(GameObject *obj,const char *animation_name);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Killed(GameObject *obj,GameObject *killer);
- bool WayBegin;
- };
- void MX0_A03_NOD_HARVESTER::Created(GameObject *obj)
- {
- Commands->Set_Health(obj, 1200.000000);
- WayBegin = false;
- ActionParamsStruct Params;
- Params.Set_Basic(this, 0, 0);
- Params.Set_Movement(0, 0.250000, 1.000000);
- Params.WaypathID = 1400093;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- void MX0_A03_NOD_HARVESTER::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- Commands->Set_Animation(obj, "V_NOD_HRVSTR.V_NOD_HRVSTR", false, "", 0, -1, false); // or -4 dunno if that makes sense
- }
- void MX0_A03_NOD_HARVESTER::Animation_Complete(GameObject *obj,const char *animation_name)
- {
- if(WayBegin)
- {
- WayBegin = false;
- ActionParamsStruct Params;
- Params.Set_Basic(this, 0, 0);
- Params.Set_Movement(0, 0.250000, 1.000000);
- Params.WaypathID = 1400093;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- else
- {
- WayBegin = true;
- ActionParamsStruct Params;
- Params.Set_Basic(this, 0, 0);
- Params.Set_Movement(0, 0.250000, 1.000000);
- Params.WaypathID = 1400093;
- Params.WaypointStartID = 1400095;
- Params.WaypointEndID = 1400094;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- }
- void MX0_A03_NOD_HARVESTER::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 413)
- Commands->Apply_Damage(obj, 200, "EXPLOSIVE", 0);
- }
- void MX0_A03_NOD_HARVESTER::Killed(GameObject *obj,GameObject *killer)
- {
- GameObject *Controller = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, Controller, 408, 0, 0);
- }
- class MX0_A03_GDI_TROOPER_ONE : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- bool HarvyAlive;
- };
- void MX0_A03_GDI_TROOPER_ONE::Created(GameObject *obj)
- {
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1500017,3,1.0f");
- Commands->Innate_Disable(obj);
- HarvyAlive = true;
- }
- void MX0_A03_GDI_TROOPER_ONE::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(action_id == 1)
- {
- Commands->Set_Innate_Is_Stationary(obj, true);
- Commands->Innate_Enable(obj);
- }
- }
- void MX0_A03_GDI_TROOPER_ONE::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 1)
- {
- Commands->Action_Reset(obj, 100);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 91, 0);
- Params.Set_Movement(0, 0.800000, 1.000000);
- Params.WaypathID = 1400117;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- else if(type == 2)
- {
- Commands->Action_Reset(obj, 100);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 91, 2);
- Params.Set_Movement(0, 0.800000, 1.000000);
- Params.WaypathID = 1400132;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- else if(type == 3)
- {
- if(HarvyAlive)
- {
- int MX0_A03_05 = Commands->Create_Conversation("MX0_A03_05", 0, 0, true);
- Commands->Join_Conversation(obj, MX0_A03_05, false, false, true);
- Commands->Start_Conversation(MX0_A03_05, 0);
- Commands->Send_Custom_Event(obj, obj, 3, 0, 7.000000);
- }
- }
- else if(type == 4)
- HarvyAlive = false;
- else if(type == 5)
- {
- Commands->Action_Reset(obj, 100);
- GameObject *Buggy = Commands->Find_Object(1400081);
- if(Buggy)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(90, 3);
- Params.Set_Attack(Buggy, 60.000000, 0.250000, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- else if(type == 0)
- {
- Commands->Action_Reset(obj, 100);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 91, 1);
- Params.Set_Movement(0, 0.800000, 1.000000);
- Params.WaypathID = 1400124;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- }
- }
- class MX0_A03_HAVOC_TANK : public ScriptImpClass
- {
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- bool Trigger;
- };
- void MX0_A03_HAVOC_TANK::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == CUSTOM_EVENT_VEHICLE_ENTERED && Trigger)
- {
- GameObject *Controller = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, Controller, 401, 0, 0);
- Trigger = false;
- }
- }
- class MX0_A03_FIRST_PLAYER_ZONE : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Entered(GameObject *obj,GameObject *enterer);
- int UnknownID;
- bool Trigger;
- };
- void MX0_A03_FIRST_PLAYER_ZONE::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&UnknownID, 4, 1);
- Auto_Save_Variable(&Trigger, 1, 1);
- }
- void MX0_A03_FIRST_PLAYER_ZONE::Entered(GameObject *obj,GameObject *enterer)
- {
- if(Trigger)
- {
- Trigger = false;
- GameObject *Controller = Commands->Find_Object(1400041);
- GameObject *SearchObj = Commands->Find_Object(UnknownID);
- if(SearchObj)
- {
- Commands->Action_Reset(SearchObj, 100);
- Commands->Send_Custom_Event(obj, SearchObj, 0, 0, 0);
- }
- GameObject *DropLocationObj = Commands->Find_Object(1400152);
- Vector3 DropLocation = Commands->Get_Position(DropLocationObj);
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", DropLocation);
- Commands->Attach_Script(CinObject, "Test_Cinematic", "MX0_A03_NOD_LedgeDrop.txt");
- }
- }
- class MX0_A03_TROOPER_ONE_TEST : public ScriptImpClass
- {
- void Created(GameObject *obj);
- };
- void MX0_A03_TROOPER_ONE_TEST::Created(GameObject *obj)
- {
- // Created assumed
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1400041,11,0.0f");
- }
- class MX0_A03_NOD_TURRET : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Killed(GameObject *obj,GameObject *killer);
- };
- void MX0_A03_NOD_TURRET::Created(GameObject *obj)
- {
- GameObject *Controller = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, Controller, 403, 0, 0);
- }
- void MX0_A03_NOD_TURRET::Killed(GameObject *obj,GameObject *killer)
- {
- GameObject *Controller = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, Controller, 404, 0, 0);
- }
- class MX0_A03_END_ZONE : public ScriptImpClass
- {
- void Entered(GameObject *obj,GameObject *enterer);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- int UnknownID;
- bool Trigger;
- };
- void MX0_A03_END_ZONE::Entered(GameObject *obj,GameObject *enterer)
- {
- if(Trigger)
- {
- Trigger = false;
- GameObject *Controller = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, Controller, 9035, 12, 0);
- GameObject *SearchObj = Commands->Find_Object(UnknownID);
- Commands->Send_Custom_Event(obj, SearchObj, 4, 0, 0);
- Commands->Send_Custom_Event(obj, Controller, 405, 1, 0);
- }
- }
- void MX0_A03_END_ZONE::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 414)
- Trigger = false;
- else if(type == 9035)
- UnknownID = param;
- }
- class MX0_A02_Controller : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Timer_Expired(GameObject *obj,int number);
- int StoreObjIDs[9];
- int HumveeID;
- int MedID;
- int APCID;
- int BlockageID;
- bool DidCreateBeginning;
- bool CallReinforcements;
- bool Unknown1;
- bool NodActive;
- bool CanSendCustomToUnknown;
- bool DroppedEngineers;
- bool Unknown2;
- bool Area3Started;
- int SendCustomTo;
- int ReinforcementsIndex;
- int ParamObjID1;
- int ParamObjID2;
- int WhatEnemy;
- int StoreIndex;
- int SenderID1;
- int SenderID2;
- int SendParam;
- int SendParam2;
- int EnemyDeaths;
- int WhatIndex;
- };
- void MX0_A02_Controller::Register_Auto_Save_Variables() // int this
- {
- Auto_Save_Variable(&StoreObjIDs, 36, 1);
- Auto_Save_Variable(&CallReinforcements, 1, 2);
- Auto_Save_Variable(&ReinforcementsIndex, 4, 3);
- Auto_Save_Variable(&HumveeID, 4, 4);
- Auto_Save_Variable(&MedID, 4, 5);
- Auto_Save_Variable(&APCID, 4, 6);
- Auto_Save_Variable(&ParamObjID1, 4, 7);
- Auto_Save_Variable(&ParamObjID2, 4, 8);
- Auto_Save_Variable(&Unknown1, 1, 9);
- Auto_Save_Variable(&WhatEnemy, 4, 10);
- Auto_Save_Variable(&NodActive, 1, 11);
- Auto_Save_Variable(&StoreIndex, 4, 12);
- Auto_Save_Variable(&CanSendCustomToUnknown, 1, 13);
- Auto_Save_Variable(&BlockageID, 4, 14);
- Auto_Save_Variable(&DroppedEngineers, 1, 15);
- Auto_Save_Variable(&Unknown2, 1, 16);
- Auto_Save_Variable(&SendCustomTo, 4, 17);
- Auto_Save_Variable(&SenderID1, 4, 18);
- Auto_Save_Variable(&SenderID2, 4, 19);
- Auto_Save_Variable(&SendParam, 4, 20);
- Auto_Save_Variable(&SendParam2, 4, 21);
- Auto_Save_Variable(&Area3Started, 1, 22);
- Auto_Save_Variable(&EnemyDeaths, 4, 23);
- Auto_Save_Variable(&WhatIndex, 4, 24);
- Auto_Save_Variable(&DidCreateBeginning, 1, 25);
- }
- void MX0_A02_Controller::Created(GameObject *obj)
- {
- DidCreateBeginning = false;
- CallReinforcements = false;
- Unknown1 = false;
- NodActive= true;
- CanSendCustomToUnknown = false;
- DroppedEngineers = false;
- Unknown2 = false;
- Area3Started = false;
- SendCustomTo = 0;
- ReinforcementsIndex = 0;
- HumveeID = 0;
- MedID = 0;
- APCID = 0;
- ParamObjID1 = 0;
- ParamObjID2 = 0;
- BlockageID = 0;
- WhatEnemy = 0;
- StoreIndex = 0;
- SenderID1 = 0;
- SenderID2 = 0;
- SendParam = 0;
- SendParam2 = 0;
- EnemyDeaths = 0;
- WhatIndex = 1;
- }
- void MX0_A02_Controller::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 203)
- {
- int Index = 8;
- do
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[x]);
- Commands->Send_Custom_Event(obj, SearchObj, 203, 0, 0);
- Index--;
- }
- while(x);
- Commands->Destroy_Object(obj);
- }
- else if(type == 225)
- {
- if(sender)
- Commands->Send_Custom_Event(obj, sender, 213, ParamObjID1, 0);
- }
- else if(type == 226)
- {
- if(sender)
- Commands->Send_Custom_Event(obj, sender, 214, ParamObjID2, 0);
- }
- else if(type == 223)
- ParamObjID1 = param;
- else if(type == 224)
- ParamObjID2 = param;
- else if(type == 202)
- {
- if(!DidCreateBeginning)
- {
- DidCreateBeginning = true;
- GameObject SearchObj1 = Commands->Find_Object(1100006);
- if(SearchObj1)
- {
- Vector3 Pos = Commands->Get_Position(SearchObj1);
- GameObject *Minigunner = Commands->Create_Object("MX0_GDI_MiniGunner_0_B", Pos);
- if(Minigunner)
- {
- Commands->Attach_Script(Minigunner, "MX0_A02_ACTOR", "0");
- StoreObjIDs[1] = Commands->Get_ID(Minigunner);
- Commands->Send_Custom_Event(Minigunner, Minigunner, 204, 1, 0.100000);
- Commands->Attach_Script(Minigunner, "M00_Send_Object_ID", "1400041,11,0.0f");
- }
- }
- GameObject *SearchObj2 = Commands->Find_Object(1100010);
- if(SearchObj2)
- {
- Vector3 Pos = Commands->Get_Position(SearchObj2);
- GameObject *Officer = Commands->Create_Object("MX0_GDI_MiniGunner_1Off", Pos);
- if(Officer)
- {
- Commands->Attach_Script(Officer, "MX0_A02_ACTOR", "0");
- StoreObjIDs[2] = Commands->Get_ID(Officer);
- Commands->Send_Custom_Event(Officer, Officer, 204, 2, 0.100000);
- }
- }
- GameObject *SearchObj3 = Commands->Find_Object(1100008);
- if(SearchObj3)
- {
- Vector3 Pos = Commands->Get_Position(SearchObj3);
- GameObject *Rocketer = Commands->Create_Object("MX0_GDI_RocketSoldier_1Off", Pos);
- if(Rocketer)
- {
- Commands->Attach_Script(Rocketer, "MX0_A02_ACTOR", "0");
- StoreObjIDs[3] = Commands->Get_ID(Rocketer);
- Commands->Send_Custom_Event(Rocketer, Rocketer, 204, 3, 0.100000);
- }
- }
- GameObject *SearchObj4 = Commands->Find_Object(1100012);
- if(SearchObj4)
- {
- Vector3 Pos = Commands->Get_Position(SearchObj4);
- GameObject *Minigunner = Commands->Create_Object("MX0_GDI_MiniGunner_0", Pos);
- if(Minigunner)
- {
- Commands->Attach_Script(Minigunner, "MX0_A02_ACTOR", "0");
- StoreObjIDs[4] = Commands->Get_ID(Minigunner);
- Commands->Send_Custom_Event(Minigunner, Minigunner, 204, 4, 0.100000);
- }
- }
- GameObject *SearchObj5 = Commands->Find_Object(1100014);
- if(SearchObj5)
- {
- Vector3 Pos = Commands->Get_Position(SearchObj5);
- GameObject *Minigunner = Commands->Create_Object("MX0_GDI_MiniGunner_0", Pos);
- if(Minigunner)
- {
- Commands->Attach_Script(Minigunner, "MX0_A02_ACTOR", "0");
- StoreObjIDs[5] = Commands->Get_ID(Minigunner);
- Commands->Send_Custom_Event(Minigunner, Minigunner, 204, 5, 0.100000);
- }
- }
- GameObject *SearchObj6 = Commands->Find_Object(1100016);
- if(SearchObj6)
- {
- Vector3 Pos = Commands->Get_Position(SearchObj6);
- GameObject *Minigunner = Commands->Create_Object("MX0_GDI_MiniGunner_0", Pos);
- if(Minigunner)
- {
- Commands->Attach_Script(Minigunner, "MX0_A02_ACTOR", "0");
- StoreObjIDs[6] = Commands->Get_ID(Minigunner);
- Commands->Send_Custom_Event(Minigunner, Minigunner, 204, 6, 0.100000);
- }
- }
- GameObject *SearchObj7 = Commands->Find_Object(1100018);
- if(SearchObj7)
- {
- Vector3 Pos = Commands->Get_Position(SearchObj7);
- GameObject *Minigunner = Commands->Create_Object("MX0_Nod_Minigunner_0", Pos);
- if(Minigunner)
- {
- Commands->Attach_Script(Minigunner, "MX0_A02_ACTOR", "0");
- StoreObjIDs[7] = Commands->Get_ID(Minigunner);
- Commands->Send_Custom_Event(Minigunner, Minigunner, 204, 7, 0.100000);
- }
- }
- GameObject *SearchObj8 = Commands->Find_Object(1100020);
- if(SearchObj8)
- {
- Vector3 Pos = Commands->Get_Position(SearchObj8);
- GameObject *Minigunner = Commands->Create_Object("MX0_Nod_Minigunner_0", Pos);
- if(Minigunner)
- {
- Commands->Attach_Script(Minigunner, "MX0_A02_ACTOR", "0");
- StoreObjIDs[8] = Commands->Get_ID(Minigunner);
- Commands->Send_Custom_Event(Minigunner, Minigunner, 204, 8, 0.100000);
- }
- }
- CallReinforcements = true;
- ReinforcementsIndex = 1;
- Commands->Start_Timer(obj, this, 1, 204);
- GameObject *Humvee = Commands->Create_Object("MX0_GDI_Humm-Vee_destroyed", Vector3(-0.052450, -0.070244, 1.050000));
- if(Humvee)
- {
- Commands->Attach_Script(Humvee, "MX0_A02_GDI_VEHICLE", "");
- Commands->Set_Facing(Humvee, 50.000000);
- HumveeID = Commands->Get_ID(Humvee);
- }
- GameObject *Med = Commands->Create_Object("MX0_GDI_Medium_Tank_Dec", Vector3(-0.049715, -0.086541, 1.216000));
- if(Med)
- {
- Commands->Attach_Script(Med, "MX0_A02_GDI_VEHICLE", "");
- Commands->Set_Facing(Med, -0.218750);
- MedID = Commands->Get_ID(Med);
- }
- GameObject *APC = Commands->Create_Object("MX0_GDI_APC", Vector3(-0.044152, -0.080186, 1.050000));
- if(APC)
- {
- Commands->Attach_Script(APC, "MX0_A02_GDI_APC", "");
- Commands->Set_Facing(APC, -0.099609);
- APCID = Commands->Get_ID(APC);
- }
- GameObject *Blockage = Commands->Create_Object("Simple_Level_x0_A02_Blockage", Vector3(-0.058968, -0.106412, 0.181000));
- if(Blockage)
- {
- BlockageID = Commands->Get_ID(Blockage);
- Commands->Set_Facing(Blockage, -0.109375);
- }
- GameObject *Controller = Commands->Find_Object(1200001);
- Commands->Send_Custom_Event(obj, Controller, 223, 0, 0);
- Commands->Send_Custom_Event(obj, Controller, 224, 0, 0);
- Commands->Start_Timer(obj, this, 1, 220);
- }
- }
- else if(type == 209)
- {
- if(sender)
- {
- if(param >= 5)
- {
- int Random = Commands->Get_Random(1, 5);
- if(Random > 4)
- Random = 4;
- Commands->Send_Custom_Event(obj, sender, 209, StoreObjIDs[Random], 0);
- }
- else
- {
- int Random = Commands->Get_Random(5, 9);
- if(Random > 8)
- Random = 8;
- Commands->Send_Custom_Event(obj, sender, 209, StoreObjIDs[Random], 0);
- }
- }
- }
- else if(type == 215)
- {
- if(Unknown1)
- {
- CallReinforcements = false;
- Commands->Start_Timer(obj, this, 1, 207);
- }
- else
- {
- Unknown1 = true;
- GameObject *SearchObj1 = Commands->Find_Object(ParamObjID1);
- if(SearchObj1)
- {
- GameObject *SearchObj2 = Commands->Find_Object(StoreObjIDs[3]);
- CallReinforcements = false;
- if(SearchObj2)
- Commands->Send_Custom_Event(obj, SearchObj2, 213, ParamObjID1, 0);
- GameObject *SearchObj3 = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj3, 217, 0, 0);
- GameObject *SearchObj4 = Commands->Find_Object(APCID);
- Commands->Send_Custom_Event(obj, SearchObj4, 215, 0, 0);
- Commands->Start_Timer(obj, this, 1, 207);
- }
- else
- {
- GameObject *SearchObj2 = 0;
- if(Commands->Find_Object(ParamObjID2) && (SearchObj2 = Commands->Find_Object(StoreObjIDs[3])))
- Commands->Send_Custom_Event(obj, SearchObj2, 214, ParamObjID2, 0);
- GameObject *SearchObj3 = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj3, 217, 0, 0);
- GameObject *SearchObj4 = Commands->Find_Object(APCID);
- Commands->Send_Custom_Event(obj, SearchObj4, 215, 0, 0);
- Commands->Start_Timer(obj, this, 1, 207);
- }
- }
- }
- else if(type == 212)
- {
- CallReinforcements = false;
- Commands->Start_Timer(obj, this, 1, 207);
- }
- else if(type == 222)
- {
- int Index = 5;
- do
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[Index]);
- Commands->Send_Custom_Event(obj, SearchObj, 205, 0, 0);
- Index++;
- }
- while(Index <= 8)
- NodActive = false;
- WhatEnemy = 0;
- Commands->Create_2D_Sound("MX0_NODOFFICER_044");
- }
- else if(type == 218)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj, 218, 0, 0);
- }
- else if(type == 219)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj, 219, 0, 0);
- }
- else if(type == 220)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj, 220, 0, 0);
- }
- else if(type == 221)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[3]);
- Commands->Send_Custom_Event(obj, SearchObj, 221, 0, 0);
- }
- else if(type == 227)
- {
- int Random = Commands->Get_Random_Int(1, 5);
- if(Random > 4)
- Random = 4;
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[Random]);
- if(SearchObj)
- {
- if(SendParam > 9)
- SendParam = 0;
- Commands->Send_Custom_Event(obj, SearchObj, 229, SendParam, 0);
- SendParam++;
- }
- }
- else if(type == 228)
- {
- GameObject *SearchObj = Commands->Find_Object(param);
- if(SearchObj)
- {
- if(SendParam2 > 3)
- SendParam2 = 0;
- Commands->Send_Custom_Event(obj, SearchObj, 230, SendParam2, 0);
- SendParam2++;
- }
- }
- else if(type == 235)
- {
- WhatEnemy++;
- StoreIndex = 0;
- NodActive = false;
- }
- else if(type == 232)
- {
- int Index = 6;
- int Count2 = 0;
- do
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[Index]);
- if(StoreObjIDs[6] == param || !SearchObj)
- StoreObjIDs[6] = 0;
- if(!StoreObjIDs[6])
- {
- EnemyDeaths++;
- Count2++;
- }
- Index++;
- }
- while(Index < 9);
- if(EnemyDeaths > 2 && EnemyDeaths < 99)
- {
- EnemyDeaths = 99
- Commands->Fade_Background_Music("Level 0 Hero.mp3", 2, 2);
- }
- if(DroppedEngineers)
- {
- GameObject *Spawner1 = Commands->Find_Object(1100026);
- Commands->Destroy_Object(Spawner1);
- GameObject *Spawner2 = Commands->Find_Object(1100027);
- Commands->Destroy_Object(Spawner2);
- GameObject *Spawner3 = Commands->Find_Object(1100028);
- Commands->Destroy_Object(Spawner3);
- }
- else
- {
- if(NodActive && StoreIndex == param && StoreIndex)
- {
- WhatEnemy++;
- StoreIndex = 0;
- NodActive = false;
- }
- if(!CanSendCustomToUnknown)
- {
- CanSendCustomToUnknown = true;
- if(!NodActive)
- {
- if(!Count2)
- Commands->Start-Timer(obj, this, 3, 208);
- else
- {
- switch(WhatEnemy)
- {
- case 0:
- GameObject *Minigunner = Commands->Create_Object("MX0_Nod_Minigunner_0", Vector3(unknown, unknown, 6.404000));
- if(Minigunner)
- {
- NodActive = true;
- Count2--;
- Commands->Attach_Script(Minigunner, "MX0_A02_ACTOR", "1");
- int Index = 5;
- do
- {
- if(!StoreObjIDs[Index])
- {
- StoreObjIDs[Index] = Commands->Get_ID(Minigunner);
- StoreIndex = Index;
- Commands->Send_Custom_Event(Minigunner, Minigunner, 204, Index, 0.100000);
- Index = 9;
- }
- Index++;
- }
- while(Index < 9);
- }
- break;
- case 1:
- GameObject *Minigunner = Commands->Create_Object("MX0_Nod_Minigunner_0", Vector3(unknown, unknown, 4.415000));
- if(Minigunner)
- {
- NodActive = true;
- Count2--;
- Commands->Attach_Script(Minigunner, "MX0_A02_ACTOR", "2");
- int Index = 5;
- do
- {
- if(!StoreObjIDs[Index])
- {
- StoreObjIDs[Index] = Commands->Get_ID(Minigunner);
- StoreIndex = Index;
- Commands->Send_Custom_Event(Minigunner, Minigunner, 204, Index, 0.100000);
- Index = 9;
- }
- Index++;
- }
- while(Index < 9);
- }
- break;
- case 2:
- GameObject *Rocketer = Commands->Create_Object("Nod_RocketSoldier_0", Vector3(unknown, unknown, 6.404000));
- if(Rocketer)
- {
- NodActive = true;
- Count2--;
- Commands->Attach_Script(Rocketer, "MX0_A02_ACTOR", "3");
- int Index = 5;
- do
- {
- if(!StoreObjIDs[Index])
- {
- StoreObjIDs[Index] = Commands->Get_ID(Rocketer);
- StoreIndex = 0;
- Commands->Send_Custom_Event(Rocketer, Rocketer, 204, Index, 0.100000);
- Index = 9;
- }
- }
- while(Index < 9)
- }
- break;
- case 3:
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Vector3(unknown, unknown, 9.000000));
- if(CinObject)
- {
- NodActive = true;
- Commands->Set_Facing(CinObject, unknown);
- Commands->Attach_Script(CinObject, "MX0_A02_HELICOPTER", "0");
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X0I_Drop02_A02_E01.txt");
- Commands->Start_Timer(obj, this, 20, 209);
- }
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj, 242, 0, 10);
- break;
- case 4:
- WhatEnemy = 5;
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Vector3(unknown, unknown, 9.600000));
- if(CinObject)
- {
- NodActive = true;
- Commands->Set_Facing(CinObject, 90.000000);
- Commands->Attach_Script(CinObject, "MX0_A02_HELICOPTER", "1");
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X0I_Drop02_A02_E02.txt");
- }
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj, 243, 0, 10);
- break;
- default:
- break;
- }
- int Index = 5;
- do
- {
- if(!StoreObjIDs[Index])
- {
- int SpawnerID = 0;
- switch(Index)
- {
- case 6:
- SpawnerID = 1100026;
- break;
- case 7:
- SpawnerID = 1100027;
- break;
- case 8:
- SpawnerID = 1100028;
- break;
- }
- GameObject *GeneratedObj = Commands->Trigger_Spawner(SpawnerID);
- if(GeneratedObj)
- {
- Commands->Attach_Script(GeneratedObj, "MX0_A02_ACTOR", "0");
- StoreObjIDs[Index] = Commands->Get_ID(GeneratedObj);
- Commands->Send_Custom_Event(GeneratedObj, GeneratedObj, 204, Index, 0.100000);
- Commands->Send_Custom_Event(obj, GeneratedObj, 205, 0, 0.1000000);
- Index = 9;
- }
- }
- Index++;
- }
- while(Index < 9);
- }
- Commands->Start_Timer(obj, this, 3, 208);
- }
- }
- }
- }
- else if(type == 233)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[1]);
- if(SearchObj && Commands->Find_Object(StoreObjIDs[StoreIndex]))
- Commands->Send_Custom_Event(obj, SearchObj, 233, 0, 0);
- }
- else if(type == 234)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- if(SearchObj && Commands->Find_Object(StoreObjIDs[StoreIndex]))
- Commands->Send_Custom_Event(obj, SearchObj, 234, StoreObjIDs[StoreIndex], 0);
- }
- else if(type == 236)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj, 236, 0, 0);
- }
- else if(type == 237)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[4]);
- if(SearchObj && Commands->Find_Object(StoreObjIDs[StoreIndex]))
- Commands->Send_Custom_Event(obj, SearchObj, 237, StoreObjIDs[StoreIndex], 0);
- }
- else if(type == 239)
- {
- GameObject *SearchObj = Commands->Find_Object(APCID);
- Commands->Send_Custom_Event(obj, SearchObj, 210, 0, 2);
- }
- else if(type == 240)
- {
- if(!Commands->Find_Object(APCID)
- Commands->Send_Custom_Event(obj, sender, 240, 0, 0);
- else
- Commands->Send_Custom_Event(obj, sender, 240, APCID, 0);
- }
- else if(type == 241)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj, 241, 0, 0);
- }
- else if(type == 244)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[3]);
- Commands->Send_Custom_Event(obj, SearchObj, 244, 0, 0);
- }
- else if(type == 245)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[4]);
- Commands->Send_Custom_Event(obj, SearchObj, 245, 0, 0);
- }
- else if(type == 246)
- {
- if(!Unknown2)
- {
- Unknown2 = true;
- Unknown1 = false;
- GameObject *SearchObj1 = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj1, 246, 0, 0.500000);
- GameObject *SearchObj2 = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj2, 246, 0, 1.500000);
- Commands->Start_Timer(obj, this, 1, 212);
- }
- }
- else if(type == 250)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[4]);
- Commands->Send_Custom_Event(obj, SearchObj, 250, 0, 0);
- }
- else if(type == 251)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj, 251, 0, 0);
- }
- else if(type == 252)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj, 252, 0, 0);
- }
- else if(type == 253)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[3]);
- Commands->Send_Custom_Event(obj, SearchObj, 253, 0, 0);
- }
- else if(type == 254)
- {
- Commands->Create_2D_Sound("MX0_GDIEAGLEBASE_110");
- Commands->Start_Timer(obj, this, 5, 218);
- }
- else if(type == 255)
- {
- if(sender)
- {
- SenderID1 = Commands->Get_ID(sender);
- Commands->Send_Custom_Event(obj, this, 255, MedID, 0);
- }
- }
- else if(type == 256)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[1]);
- if(SearchObj)
- {
- Commands->Send_Custom_Event(obj, SearchObj, 257, 0, 0);
- Commands->Start_Timer(obj, this, 5, 219);
- }
- }
- else if(type == 258)
- SenderID2 = Commands->Get_ID(sender);
- else if(type == 262)
- {
- Area3Started = true;
- GameObject *A03_Controller = Commands->Find_Object(1400041);
- Commands->Send_Custom_Event(obj, A03_Controller, 401, 0, 2);
- GameObject *SearchObj = Commands->Find_Object(SenderID2);
- Commands->Send_Custom_Event(obj, SearchObj, 263, 0, 0);
- }
- else if(type == 264)
- {
- GameObject *Blockage = Commands->Find_Object(BlockageID);
- if(Blockage)
- {
- Commands->Create_Explosion("Ground Explosion 01 - Harmless", Vector3(unknown, unknown, 0.181000), 0);
- Commands->Set_Animation(Blockage, "AG_L0_BLOCKAGE1.AG_L0_BLOCKAGE1", 0, 0, 0, unknown, 0);
- Commands->Start_Timer(obj, this, 2, 221);
- }
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj, 265, 0, 0);
- Commands->Start_Timer(obj, this, 1, 222);
- }
- else if(type == 267)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[3]);
- Commands->Send_Custom_Event(obj, SearchObj, 267, 0, 0);
- }
- else if(type == 268)
- {
- int Offset = 32;
- int Index = 1;
- do
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[Index]);
- Commands->Send_Custom_Event(obj, SearchObj, 268, 0, 0);
- Index++;
- }
- while(Index < 5);
- }
- }
- void MX0_A02_Controller::Timer_Expired(GameObject *obj,int number)
- {
- if(number == 204)
- {
- if(CallReinforcements)
- {
- switch(ReinforcementsIndex)
- {
- case 1:
- case 4:
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj, 211, ReinforcementsIndex, 0);
- break;
- case 2:
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[3]);
- Commands->Send_Custom_Event(obj, SearchObj, 211, ReinforcementsIndex, 0);
- break;
- case 5:
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj, 211, ReinforcementsIndex, 0);
- break;
- case 3:
- case 6:
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[4]);
- Commands->Send_Custom_Event(obj, SearchObj, 211, ReinforcementsIndex, 0);
- break;
- case 7:
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[4]);
- Commands->Send_Custom_Event(obj, SearchObj, 211, ReinforcementsIndex, 0);
- break;
- case 8:
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj, 211, ReinforcementsIndex, 0);
- break;
- case 9:
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj, 211, ReinforcementsIndex, 0);
- break;
- case 10:
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[3]);
- Commands->Send_Custom_Event(obj, SearchObj, 211, ReinforcementsIndex, 0);
- break;
- case 11:
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[4]);
- Commands->Send_Custom_Event(obj, SearchObj, 211, ReinforcementsIndex, 0);
- break;
- default:
- break;
- }
- ReinforcementsIndex++;
- if(ReinforcementsIndex > 11)
- ReinforcementsIndex = 1;
- float Random = Commands->Get_Random(2, 4.999900);
- if(Random > 4)
- Random = 4;
- Commands->Start_Timer(obj, this, Random, 204);
- }
- }
- else if(type == 207)
- {
- if(Unknown1)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Vector3 StarPos = Commands->Get_Position(Star);
- if(Commands->Get_Distance(Pos, StarPos) > 30.0)
- {
- int Random = Commands->Get_Random(1, 5);
- if(Random > 4)
- Random = 4;
- Gameobject *SearchObj = Commands->Find_Object(StoreObjIDs[Random]);
- Commands->Send_Custom_Event(obj, SearchObj, 231, 0, 0);
- }
- Commands->Start_Timer(obj, this, 3, 207);
- }
- }
- else if(type == 208)
- {
- if(CanSendCustomToUnknown)
- {
- CanSendCustomToUnknown = false;
- Commands->Send_Custom_Event(obj, notaclue);
- }
- }
- else if(type == 209)
- Commands->Send_Custom_Event(obj, obj, 235, 0, 0);
- else if(type == 212)
- {
- NodActive = false;
- CanSendCustomToUnknown = true;
- DroppedEngineers = true;
- Unknown1 = false;
- GameObject *CinObject = Commands->Create_Object("Invisible_Object", Vector3(unknown, unknown, 1.093000));
- Commands->Set_Facing(CinObject, unknown);
- Commands->Attach_Script(CinObject, "Test_Cinematic", "X0I_GDI_Drop02_Engineer.txt");
- GameObject *BuildingController = Commands->Find_Object(1700006); // if this one gets destroyed that background sound of weapon fire goes away.
- Commands->Destroy_Object(BuildingController);
- int Index = 5;
- do
- {
- if(StoreObjIDs[Index])
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[Index]);
- Commands->Send_Custom_Event(obj, SearchObj, 247, 0, 0);
- }
- Index++;
- }
- while(Index < 9);
- Commands->Create_2D_Sound("MX0_NODSOLDIER1_101");
- Commands->Start_Timer(obj, this, 3, 213);
- }
- else if(number == 213)
- {
- int Index = 1;
- do
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[Index]);
- Commands->Send_Custom_Event(obj, SearchObj, 248, 0, 0);
- Commands->Send_Custom_Event(obj, SearchObj, 249, 0, 0);
- }
- while(Index < 5)
- }
- else if(number == 218)
- Commands->Create_2D_Sound("MX0_GDIEAGLEBASE_116");
- else if(number == 219)
- {
- if(SendCustomTo < 3 && !Area3Started)
- {
- if(!SendCustomTo)
- {
- GameObject *SearchObj = Commands->Find_Object(SenderID2);
- Commands->Send_Custom_Event(obj, SearchObj, 259, 0, 0);
- SendCustomTo++;
- Commands->Start_Timer(obj, this, 5, 219);
- }
- if(!(SendCustomTo - 1))
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[1]);
- Commands->Send_Custom_Event(obj, SearchObj, 260, 0, 0);
- SendCustomTo++;
- Commands->Start_Timer(obj, this, 5, 219);
- }
- if((SendCustomTo - 1) == 1)
- {
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[2]);
- Commands->Send_Custom_Event(obj, SearchObj, 261, 0, 0);
- SendCustomTo++;
- Commands->Start_Timer(obj, this, 5, 219);
- }
- }
- }
- else if(number == 220)
- {
- if(!DroppedEngineers)
- {
- GameObject *SearchObj1 = Commands->Find_Object(1100023);
- int RandomExpLoc = Commands->Get_Random_Int(1, 17);
- if(RandomExpLoc > 16)
- RandomExpLoc = 16;
- RandomExpLoc -= 1;
- int ExpObjID = 0;
- switch(RandomExpLoc)
- {
- case 0:
- ExpObjID = 1100006;
- case 1:
- ExpObjID = 1100007;
- case 2:
- ExpObjID = 0;
- case 3:
- ExpObjID = 1100011;
- case 4:
- ExpObjID = 1100008;
- case 5:
- ExpObjID = 0;
- case 6:
- ExpObjID = 1100012;
- case 7:
- ExpObjID = 1100013;
- case 8:
- ExpObjID = 0;
- case 9:
- ExpObjID = 1100015;
- case 10:
- ExpObjID = 1100016;
- case 11:
- ExpObjID = 0;
- case 12:
- ExpObjID = 1100018;
- case 13:
- ExpObjID = 1100019;
- case 14:
- ExpObjID = 0;
- case 15:
- ExpObjID = 1100021;
- }
- GameObject *ExplosionObj = Commands->Find_Object(ExpObjID);
- if(ExplosionObj)
- {
- Vector3 Pos = Commands->Get_Position(ExplosionObj);
- float RandomXOff = Commands->Get_Random(-2.000000, 2.999900);
- if(RandomXOff > 2)
- RandomXOff = 2;
- Pos.X += RandomXOff;
- float RandomYOff = Commands->Get_Random(-2.000000, 2.999900);
- if(RandomYOff > 2)
- RandomYOff = 2;
- Pos.Y += RandomYOff;
- Commands->Create_Explosion("Explosion_MX0", Pos, obj);
- }
- float TimerLength = Commands->Get_Random(3, 6.999900);
- if(TimerLength > 6)
- TimerLength = 6;
- Commands->Start_Timer(obj, this, TimerLength, 220);
- }
- }
- else if(number == 221)
- {
- GameObject *Blockage = Commands->Find_Object(BlockageID);
- Commands->Destroy_Object(Blockage);
- }
- else if(number == 222)
- {
- WhatIndex++;
- if(WhatIndex > 4)
- WhatIndex = 2;
- GameObject *SearchObj = Commands->Find_Object(StoreObjIDs[WhatIndex]);
- Commands->Send_Custom_Event(obj, SearchObj, 269, 0, 0);
- Commands->Start_Timer(obj, this, 5, 222);
- }
- }
- class MX0_A02_ACTOR : public ScriptImpClass
- {
- void Register_Auto_Save_Variables();
- void Created(GameObject *obj);
- void Damaged(GameObject *obj,GameObject *damager,float amount);
- void Killed(GameObject *obj,GameObject *killer);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- void Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason);
- void Enemy_Seen(GameObject *obj,GameObject *enemy);
- void Timer_Expired(GameObject *obj,int number);
- void MX0_A02_Say_Something(GameObject *obj, int Number, int Unknown);
- float Health;
- float Armour;
- bool Active;
- int Unknown;
- int MoveIndex;
- bool Unknown2;
- bool StarNear;
- bool Died;
- int ParamObjID1;
- int ParamObjID2;
- int DestroyedMedID;
- };
- void MX0_A02_ACTOR::Register_Auto_Save_Variables()
- {
- Auto_Save_Variable(&Unknown2, 1, 1);
- Auto_Save_Variable(&Health, 4, 2);
- Auto_Save_Variable(&Unknown, 4, 3);
- Auto_Save_Variable(&StarNear, 1, 4);
- Auto_Save_Variable(&MoveIndex, 4, 5);
- Auto_Save_Variable(&Armour, 4, 6);
- Auto_Save_Variable(&ParamObjID1, 4, 7);
- Auto_Save_Variable(&ParamObjID2, 4, 8);
- Auto_Save_Variable(&Active, 1, 9);
- Auto_Save_Variable(&Died, 1, 10);
- Auto_Save_Variable(&DestroyedMedID, 4, 11);
- }
- void MX0_A02_ACTOR::Created(GameObject *obj)
- {
- Commands->Attach_Script(obj, "M00_Soldier_Powerup_Disable", "");
- Active = true;
- Health = Commands->Get_Health(obj);
- Armour = Commands->Get_Shield_Strength(obj);
- Commands->Innate_Disable(obj);
- Unknown = 0;
- MoveIndex = 0;
- Unknown2 = false;
- StarNear = false;
- Died = false;
- ParamObjID1 = 0;
- ParamObjID2 = 0;
- DestroyedMedID = 0;
- Commands->Enable_Enemy_Seen(obj, false);
- int ActorID = Get_Int_Parameter("ActorID");
- if(ActorID)
- {
- switch(ActorID - 1)
- {
- case 0:
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 209);
- Params.Set_Movement(Vector3(unknown, unknown, 6.000000), 0.800000, 0.500000);
- Commands->Action_Goto(obj, Params);
- Commands->Enable_Enemy_Seen(obj, true);
- break;
- case 1:
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 211);
- Params.Set_Movement(Vector3(unknown, unknown, 3.944000), 0.800000, 0.500000);
- Commands->Action_Goto(obj, Params);
- Commands->Enable_Enemy_Seen(obj, Params);
- break;
- case 2:
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 213);
- Params.Set_Movement(Vector3(unknown, unknown, 6.000000), 0.800000, 0.500000);
- Commands->Action_Goto(obj, Params);
- break;
- case 3:
- ActionParamsStruct Params;
- Params.Set_Basic(100, 216);
- Params.Set_Movement(0, 0.800000, 0.500000);
- Params.WaypathID = 1100029;
- Params.MovePathfind = true;
- Commands->Action_Goto(obj, Params);
- Commands->Action_Goto(obj, Params);
- Unknown2 = true;
- Commands->Start_Timer(obj, this, 20.000000, 214);
- break;
- case 4:
- // Flamethrower :D
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 217);
- Params.Set_Attack(Commands->Get_A_Star(Commands->Get_Position(obj)), 300.000000, 0, true);
- Params.Set_Movement(0, 0.800000, 0.500000);
- Params.WaypathID = 1100034;
- Params.MovePathfind = true;
- Commands->Action_Attack(obj, Params);
- Unknown2 = true;
- Commands->Start_Timer(obj, this, 10, 210);
- Commands->Trigger_Weapon(obj, true, Vector3(unknown, unknown, 0.069000), true);
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 244, 0, 0);
- break;
- case 5:
- Unknown2 = true;
- Commands->Start_Timer(obj, this, 2, 210);
- break;
- case 6:
- Commands->Start_Timer(obj, this, 4, 216);
- break;
- case 7:
- Commands->Start_Timer(obj, this, 4, 217);
- break;
- default:
- return;
- }
- }
- else
- Commands->Send_Custom_Event(obj, obj, 207, 0, 0);
- }
- void MX0_A02_ACTOR::Damaged(GameObject *obj,GameObject *damager,float amount)
- {
- if(Active)
- {
- if(Active)
- Armour = Commands->Get_Shield_Strength(obj);
- else
- {
- if(StarNear)
- Armour -= 1.0;
- Commands->Set_Shield_Strength(obj, Armour);
- Commands->Set_Health(obj, Health);
- }
- if(StarNear)
- {
- if(damager)
- {
- if(MoveIndex >= 5)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 201);
- Params.Set_Attack(damager, 300.000000, 0, false);
- Commands->Action_Attack(obj, Params);
- }
- else
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- if(damager != Star && Commands->Get_Player_Type(obj) != Commands->Get_Player_Type(damager))
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 201);
- Params.Set_Attack(damager, 300.000000, 0, false);
- if(MoveIndex >= 5)
- MoveIndex = 0;
- Commands->Action_Attack(obj, Params);
- }
- }
- }
- }
- else if(!Died && Unknown2)
- {
- Died = true;
- int ActorID = Get_Int_Parameter("ActorID") - 1;
- if(ActorID)
- {
- if(ActorID == 1)
- {
- Commands->Debug_Message("XXXX INSERT FALLING DEATH ANIMATION HERE.\n");
- Commands->Apply_Damage(obj, 10000, "Blamokiller", obj);
- }
- else
- {
- Commands->Debug_Message("XXXX INSERT FALLING DEATH ANIMATION HERE.\n");
- Commands->Apply_Damage(obj, 10000, "Blamokiller", obj);
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 236, 0, 0);
- }
- }
- }
- }
- }
- void MX0_A02_ACTOR::Killed(GameObject *obj,GameObject *killer)
- {
- if(Active)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- if(Controller)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- if(killer == Star)
- Commands->Send_Custom_Event(obj, Controller, 227, 0, 0);
- else if(killer)
- Commands->Send_Custom_Event(obj, Controller, 228, Commands->Get_ID(killer), 0);
- }
- if(MoveIndex >= 5)
- Commands->Send_Custom_Event(obj, Controller, 232, MoveIndex, 0.100000);
- }
- }
- void MX0_A02_ACTOR::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(Active)
- {
- if(type == 203)
- {
- Active = false;
- StarNear = false;
- }
- else if(type == 208)
- StarNear = false;
- else if(type == 204)
- MoveIndex = param;
- else if(type == 205)
- Unknown2 = true;
- else if(type == 206)
- Unknown2 = false;
- else if(type == 207)
- {
- Commands->Start_Timer(obj, this, 0.100000, 203);
- StarNear = true;
- }
- else if(type == 209)
- {
- if(StarNear && Commands->Find_Object(param))
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 201);
- Params.Set_Attack(0, 300.000000, 0, true);
- Commands->Action_Attack(obj, Params);
- if(MoveIndex >= 5)
- MoveIndex = 0;
- }
- }
- else if(type == 211)
- {
- int Priority = 100;
- const char *Speech;
- switch (param)
- {
- case 1:
- Speech = "MX0_GDITROOPER2_051";
- break;
- case 2:
- Speech = "MX0_GDITROOPER3_053";
- break;
- case 3:
- Speech = "MX0_GDITROOPER4_054";
- break;
- case 4:
- Speech = "MX0_GDITROOPER2_056";
- break;
- case 5:
- Speech = "MX0_GDITROOPER1_057";
- break;
- case 6:
- Speech = "MX0_GDITROOPER4_058";
- break;
- case 7:
- Speech = "MX0_GDITROOPER4_060";
- break;
- case 8:
- Speech = "MX0_GDITROOPER2_062";
- break;
- case 9:
- Speech = "MX0_GDITROOPER1_063";
- break;
- case 10:
- Speech = "MX0_GDITROOPER3_064";
- break;
- case 11:
- Speech = "MX0_GDITROOPER4_065";
- break;
- case 205:
- Speech = "MX0_GDITROOPER2_069";
- break;
- case 202:
- Speech = "MX0_GDITROOPER1_066";
- break;
- case 203:
- Speech = "MX0_GDITROOPER2_067";
- break;
- case 204:
- Speech = "MX0_GDITROOPER1_068";
- break;
- case 206:
- Priority = 99;
- Speech = "MX0_GDITROOPER3_070";
- break;
- case 207:
- Speech = "MX0_GDITROOPER1_071";
- break;
- case 208:
- Speech = "MX0_GDITROOPER4_072";
- break;
- case 209:
- Speech = "MX0_GDITROOPER3_073";
- break;
- case 210:
- Speech = "MX0_GDITROOPER2_074";
- break;
- case 211:
- Speech = "MX0_GDITROOPER1_075";
- break;
- case 212:
- Speech = "MX0_GDITROOPER4_076";
- break;
- case 213:
- Speech = "MX0_GDITROOPER2_078";
- break;
- case 215:
- Speech = "MX0_GDITROOPER1_ALT09";
- break;
- case 216:
- Speech = "MX0_GDITROOPER4_ALT07";
- break;
- case 214:
- case 217:
- Speech = "MX0_GDITROOPER3_ALT13";
- break;
- case 218:
- Speech = "MX0_GDITROOPER1_ALT10";
- break;
- case 219:
- Speech = "MX0_GDITROOPER2_ALT01";
- break;
- case 220:
- Speech = "MX0_GDITROOPER4_ALT06";
- break;
- case 221:
- Speech = "MX0_GDITROOPER1_079";
- break;
- case 222:
- Speech = "MX0_GDITROOPER2_082";
- break;
- case 223:
- Speech = "MX0_GDITROOPER3_081";
- break;
- case 224:
- Speech = "MX0_GDITROOPER4_080";
- break;
- case 225:
- Speech = "MX0_GDITROOPER1_086";
- break;
- case 226:
- Speech = "MX0_GDITROOPER1_088";
- break;
- case 227:
- Speech = "MX0_GDITROOPER2_093";
- break;
- case 228:
- Speech = "MX0_GDITROOPER2_092";
- break;
- case 229:
- Speech = "MX0_GDITROOPER2_095";
- break;
- case 230:
- Speech = "MX0_GDITROOPER3_096";
- break;
- case 231:
- Speech = "MX0_GDITROOPER4_097";
- break;
- case 232:
- Speech = "MX0_GDITROOPER1_099";
- break;
- case 233:
- Speech = "MX0_GDITROOPER2_098";
- break;
- case 234:
- Speech = "MX0_GDITROOPER2_105";
- break;
- case 235:
- Speech = "MX0_GDITROOPER4_106";
- break;
- case 236:
- Speech = "MX0_GDITROOPER1_107";
- break;
- case 237:
- Speech = "MX0_GDITROOPER2_108";
- break;
- case 238:
- Speech = "MX0_GDITROOPER3_109";
- break;
- case 239:
- Speech = "MX0_ENGINEER1_115";
- break;
- case 240:
- Speech = "MX0_ENGINEER1_118";
- break;
- case 241:
- Speech = "MX0_GDITROOPER1_119";
- break;
- case 242:
- Speech = "MX0_ENGINEER2_120";
- break;
- case 243:
- Speech = "MX0_GDITROOPER1_121";
- break;
- case 244:
- Speech = "MX0_GDITROOPER2_122";
- break;
- case 245:
- Speech = "MX0_ENGINEER2_123";
- break;
- case 246:
- Speech = "MX0_GDITROOPER3_090";
- break;
- case 247:
- Speech = "MX0_A02_SPEECH_WRONGWAY_01";
- break;
- case 248:
- Speech = "MX0_A02_SPEECH_WRONGWAY_02";
- break;
- case 249:
- Speech = "MX0_A02_SPEECH_WRONGWAY_03";
- break;
- default:
- Speech = "MX0_A02_PREAMB_01";
- break;
- }
- int Conversation = Commands->Create_Conversation(Speech, Priority, 300, false);
- Commands->Join_Conversation(obj, Convervastion, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation(Star, Conversation, false, false, false);
- Commands->Start_Conversation(Conversation, param);
- Commands->Monitor_Conversation(obj, Conversation);
- }
- else if(type == 213)
- {
- StarNear = false;
- GameObject *SearchObj1 = Commands->Find_Object(param);
- if(SearchObj1)
- {
- ParamObjID1 = Commands->Get_ID(SearchObj1);
- GameObject *SearchObj2 = Commands->Find_Object(1100024); // I think this is the object where that rocket launcher guy goes to when he says: Captain Havoc, this way sir.
- if(SearchObj2)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 202);
- Params.Set_Movement(Commands->Get_Position(SearchObj2), 0.800000, 0.500000);
- Commands->Action_Goto(obj, Params);
- }
- }
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 226, 0, 0);
- }
- else if(type == 214)
- {
- StarNear = false;
- GameObject *SearchObj1 = Commands->Find_Object(param);
- if(SearchObj1)
- {
- ParamObjID2 = Commands->Get_ID(SearchObj1);
- GameObject *SearchObj2 = Commands->Find_Object(1100024); // I think this is the object where that rocket launcher guy goes to when he says: Captain Havoc, this way sir.
- if(SearchObj2)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 203);
- Params.Set_Movement(Commands->Get_Position(SearchObj2), 0.800000, 0.500000);
- Commands->Action_Goto(obj, Params);
- }
- else
- Commands->Send_Custom_Event(obj, obj, 207, 0, 0);
- }
- else
- Commands->Send_Custom_Event(obj, obj, 207, 0, 0);
- }
- else if(type == 217)
- Commands->Start_Timer(obj, this, 1, 206);
- else if(type == 219)
- {
- int MX0_GDITROOPER1_068 = Commands->Create_Conversation("MX0_GDITROOPER1_068", 100, 300, false);
- Commands->Join_Conversation(obj, MX0_GDITROOPER1_068, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation(Star, MX0_GDITROOPER1_068, false, false, false);
- Commands->Start_Conversation(MX0_GDITROOPER1_068, 204);
- Commands->Monitor_Conversation(obj, MX0_GDITROOPER1_068);
- }
- else if(type == 220)
- {
- StarNear = false;
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Vector3 StarPos = Commands->Get_Position(Star);
- if(Commands->Get_Distance(Pos, StarPos) <= 50.0)
- {
- int MX0_GDITROOPER2_069 = Commands->Create_Conversation("MX0_GDITROOPER2_069", 100, 300, false);
- Commands->Join_Conversation(obj, MX0_GDITROOPER2_069, false, true, true);
- Commands->Join_Conversation(Star, MX0_GDITROOPER2_069, false, false, false);
- Commands->Start_Conversation(MX0_GDITROOPER2_069, 205);
- Commands->Monitor_Conversation(obj, MX0_GDITROOPER2_069);
- }
- else
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 208);
- Params.Set_Movement(Star, 0.800000, 3.000000);
- Commands->Action_Goto(obj, Params);
- }
- }
- else if(type == 221)
- {
- int MX0_GDITROOPER3_070 = Commands->Create_Conversation("MX0_GDITROOPER3_070", 99, 300, false);
- Commands->Join_Conversation(obj, MX0_GDITROOPER3_070, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation(Star, MX0_GDITROOPER3_070, false, false, false);
- Commands->Start_Conversation(MX0_GDITROOPER3_070, 206);
- Commands->Monitor_Conversation(obj, MX0_GDITROOPER3_070);
- }
- else if(type == 229)
- {
- if(StarNear)
- MX0_A02_Say_Something(this, obj, param + 211, 0); // MX0_A02_Say_Something
- }
- else if(type == 230)
- {
- if(StarNear)
- MX0_A02_Say_Something(this, obj, param + 207, 0);
- }
- else if(type == 231)
- MX0_A02_Say_Something(this, obj, MoveIndex + 220, 0);
- else if(type == 233)
- MX0_A02_Say_Something(this, obj, 225, 0);
- else if(type == 234)
- {
- GameObject *SearchObj = Commands->Find_Object(param);
- if(SearchObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 210);
- Params.Set_Attack(SearchObj, 300.000000, 0, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- else if(type == 236)
- MX0_A02_Say_Something(obj, this, 226, 0);
- else if(type == 237)
- {
- GameObject *SearchObj = Commands->Find_Object(param);
- if(SearchObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 212);
- Params.Set_Attack(SearchObj, 300.000000, 0, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- else if(type == 240)
- {
- GameObject *SearchObj = Commands->Find_Object(param);
- if(SearchObj)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 239, 0, 1);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 214);
- Params.Set_Attack(SearchObj, 300.000000, 0, false);
- Commands->Action_Attack(obj, Params);
- }
- else
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 215);
- Params.Set_Movement(Vector3(-78.442001, -78.043999, 6.404000), 0.800000, 0.500000); // Correct floats
- Commands->Action_Goto(obj, Params);
- }
- }
- else if(type == 241)
- MX0_A02_Say_Something(this, obj, 227, 0);
- else if(type == 242)
- MX0_A02_Say_Something(this, obj, 228, 0);
- else if(type == 243)
- MX0_A02_Say_Something(this, obj, 229, 0);
- else if(type == 244)
- MX0_A02_Say_Something(this, obj, 230, 0);
- else if(type == 245)
- MX0_A02_Say_Something(this, obj, 231, 0);
- else if(type == 246)
- {
- if(MoveIndex == 1)
- MX0_A02_Say_Something(this, obj, 227, 0);
- else
- MX0_A02_Say_Something(this, obj, 233, 0);
- }
- else if(type == 247)
- {
- GameObject *EdgeLocation = Commands->Find_Object(1100021);
- switch(MoveIndex)
- {
- case 5:
- EdgeLocation = Commands->Find_Object(1100014);
- break;
- case 6:
- EdgeLocation = Commands->Find_Object(1100016);
- break;
- case 7:
- EdgeLocation = Commands->Find_Object(1100018);
- break;
- case 8:
- EdgeLocation = Commands->Find_Object(1100020);
- break;
- default:
- break;
- }
- if(EdgeLocation)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 218);
- Params.Set_Movement(Commands->Get_Position(EdgeLocation), 0.800000, 0.500000);
- Commands->Action_Goto(obj, Params);
- }
- }
- else if(type == 248)
- {
- Vector3 MoveLocation = Vector3(-105.302002, -60.340000, 0); // correct float
- switch(MoveIndex)
- {
- case 1:
- MoveLocation = Vector3(-78.739998, -60.340000, 0); // correct float
- break;
- case 2:
- MoveLocation = Vector3(-90.786003, -65.491997, 0); // correct float
- break;
- case 3:
- MoveLocation = Vector3(-94.755997, -59.509998, 0); // correct float
- break;
- case 4:
- MoveLocation = Vector3(-104.988998, -49.282001, 0); // correct float
- break;
- default:
- break;
- }
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 201);
- Params.Set_Movement(MoveLocation, 0.200000, 3.000000);
- Commands->Action_Goto(obj, Params);
- }
- else if(type == 249)
- MX0_A02_Say_Something(this, obj, 234, 0);
- else if(type == 250)
- MX0_A02_Say_Something(this, obj, 235, 0);
- else if(type == 251)
- MX0_A02_Say_Something(this, obj, 236, 0);
- else if(type == 252)
- MX0_A02_Say_Something(this, obj, 237, 0);
- else if(type == 253)
- MX0_A02_Say_Something(this, obj, 238, 0);
- else if(type == 255)
- {
- MX0_A02_Say_Something(this, obj, 239, 0);
- GameObject *SearchObj = Commands->Find_Object(param);
- if(SearchObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 219);
- Params.Set_Movement(Commands->Get_Position(SearchObj), 0.800000, 3.000000);
- Commands->Action_Goto(obj, Params);
- }
- }
- else if(type == 257)
- MX0_A02_Say_Something(this, obj, 241, 0);
- else if(type == 259)
- MX0_A02_Say_Something(this, obj, 242, 0);
- else if(type == 260)
- MX0_A02_Say_Something(this, obj, 243, 0);
- else if(type == 261)
- MX0_A02_Say_Something(this, obj, 244, 0);
- else if(type == 263)
- MX0_A02_Say_Something(this, obj, 245, 0);
- else if(type == 265)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 201);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Params.Set_Movement(Star, 0.800000, 10.000000);
- Commands->Action_Goto(obj, Params);
- }
- else if(type == 267)
- MX0_A02_Say_Something(this, obj, 246, 0);
- else if(type == 268)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 201);
- Params.Set_Attack(Vector3(-85.660004,-73.309998,22.809999), 300.000000, 0, true); // floats are correct
- Commands->Action_Attack(obj, Params);
- }
- else if(type == 269)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(obj);
- Vector3 StarPos = Commands->Get_Position(Star);
- if(Commands->Get_Distance(Pos, StarPos) < 10.0)
- {
- if(MoveIndex == 2)
- MX0_A02_Say_Something(this, obj, 247, 1);
- else if(MoveIndex == 3)
- MX0_A02_Say_Something(this, obj, 248, 1);
- else if(MoveIndex == 4)
- MX0_A02_Say_Something(this, obj, 249, 1);
- }
- }
- }
- void MX0_A02_ACTOR::Action_Complete(GameObject *obj,int action_id,ActionCompleteReason complete_reason)
- {
- if(Active)
- {
- if(complete_reason == ACTION_COMPLETE_CONVERSATION_ENDED || complete_reason == ACTION_COMPLETE_CONVERSATION_INTERRUPTED || complete_reason == ACTION_COMPLETE_CONVERSATION_UNABLE_TO_INIT)
- {
- if(action_id == 202)
- {
- StarNear = true;
- Commands->Start_Timer(obj, this, 0.100000, 203);
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 218, 0, 0);
- }
- else if(action_id == 203)
- {
- StarNear = true;
- Commands->Start_Timer(obj, this, 0.100000, 203);
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 220, 0, 0);
- }
- else if(action_id == 204)
- {
- StarNear = true;
- Commands->Start_Timer(obj, this, 0.100000, 203);
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 221, 0, 0);
- }
- else if(action_id == 205)
- {
- StarNear = true;
- Commands->Start_Timer(obj, this, 0.100000, 203);
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 219, 0, 0);
- }
- else if(action_id == 206)
- {
- StarNear = true;
- Commands->Start_Timer(obj, this, 0.100000, 203);
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 222, 0, 0);
- }
- else if(action_id == 225)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 234, 0, 0);
- }
- else if(action_id == 234)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 250, 0, 0);
- }
- else if(action_id == 235)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 251, 0, 0);
- }
- else if(action_id == 236)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 252, 0, 0);
- }
- else if(action_id == 237)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 253, 0, 0);
- }
- else if(action_id == 238)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 254, 0, 0);
- }
- else if(action_id == 240)
- {
- Commands->Create_2D_Sound("MX0_GDIEAGLEBASE_117");
- Commands->Set_HUD_Help_Text(8387, Vector3(0.196000, 0.882000, 0.196000));
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 256, 0, 0);
- }
- else if(action_id == 245)
- {
- GameObject *SearchObj = Commands->Find_Object(1100024);
- if(SearchObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 221);
- Params.Set_Movement(Commands->Get_Position(SearchObj), 0.800000, 5.000000);
- Commands->Action_Goto(obj, Params);
- }
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 264, 0, 0);
- }
- else if(action_id == 229)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 268, 0, 0);
- }
- }
- else
- {
- if(action_id == 202)
- {
- GameObject *SearchObj = Commands->Find_Object(ParamObjID1);
- if(!SearchObj)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 226, 0, 0);
- }
- else
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 204);
- Params.Set_Attack(0, 300.000000, 0, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- else if(action_id == 203)
- {
- GameObject *SearchObj = Commands->Find_Object(ParamObjID2);
- if(SearchObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 205);
- Params.Set_Attack(SearchObj, 300.000000, 0, true);
- Commands->Action_Attack(obj, Params);
- }
- else
- Commands->Send_Custom_Event(obj, obj, 207, 0, 0);
- }
- else if(action_id == 204)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 226, 0, 0);
- }
- else if(action_id == 205)
- Commands->Send_Custom_Event(obj, obj, 207, 0, 0);
- else if(action_id == 206 || action_id == 207)
- {
- if(StarNear && (GameObject *Controller = Commands->Find_Object(1100000)))
- Commands->Send_Custom_Event(obj, Controller, 209, MoveIndex, 0);
- }
- else if(action_id == 208)
- {
- int MX0_GDITROOPER2_069 = Commands->Create_Conversation("MX0_GDITROOPER2_069", 100, 300, false);
- Commands->Join_Conversation(obj, MX0_GDITROOPER2_069, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation(Star, MX0_GDITROOPER2_069, false, false, false);
- Commands->Start_Conversation(MX0_GDITROOPER2_069, 205);
- Commands->Monitor_Conversation(obj, MX0_GDITROOPER2_069);
- }
- else if(action_id == 209)
- {
- Unknown2 = true;
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 233, 0, 0);
- }
- else if(action_id == 211)
- {
- Unknown2 = true;
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 237, 0, 0);
- }
- else if(action_id == 213)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 240, 0, 0);
- }
- else if(action_id == 214)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 267, 0, 0);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 215);
- Params.Set_Movement(Vector3(unknown, unknown, 6.404000), 0.800000, 0.500000);
- Commands->Action_Goto(obj, Params);
- }
- else if(action_id == 215)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 235, 0, 0);
- Commands->Destroy_Object(obj);
- }
- else if(action_id == 216)
- Commands->Enable_Enemy_Seen(obj, true);
- else if(action_id == 217)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 201);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Params.Set_Attack(Star, 30.000000, 0, true);
- Params.Set_Movement(Star, 0.800000, 1.000000);
- Commands->Action_Attack(obj, Params);
- }
- else if(action_id == 218)
- Commands->Apply_Damage(obj, 10000, "Blamokiller", 0);
- else if(action_id == 219)
- {
- GameObject *SearchObj = Commands->Find_Object(DestroyedMedID);
- if(SearchObj)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 201);
- Params.Set_Attack(SearchObj, 300.000000, 0, false);
- Commands->Action_Attack(obj, Params);
- Commands->Start_Timer(obj, this, 5, 215);
- }
- }
- else if(action_id == 220)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 201);
- Params.Set_Attack(Vector3(unknown, unknown, 0.100000), 0, 0, true);
- Commands->Action_Attack(obj, Params);
- }
- }
- }
- }
- void MX0_A02_ACTOR::Enemy_Seen(GameObject *obj,GameObject *enemy)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 201);
- Params.Set_Attack(enemy, 300.000000, 0, true);
- Commands->Action_Attack(obj, Params);
- }
- void MX0_A02_ACTOR::Timer_Expired(GameObject *obj,int number)
- {
- if(Active)
- {
- if(number == 202)
- {
- GameObject *LedgeLocation = 0;
- switch(MoveIndex)
- {
- case 1:
- LedgeLocation = Commands->Find_Object(1100007);
- break;
- case 2:
- LedgeLocation = Commands->Find_Object(1100011);
- break;
- case 3:
- LedgeLocation = Commands->Find_Object(1100009);
- break;
- case 4:
- LedgeLocation = Commands->Find_Object(1100013);
- break;
- case 5:
- LedgeLocation = Commands->Find_Object(1100015);
- break;
- case 6:
- LedgeLocation = Commands->Find_Object(1100017);
- break;
- case 7:
- LedgeLocation = Commands->Find_Object(1100019);
- break;
- case 8:
- LedgeLocation = Commands->Find_Object(1100021);
- break;
- default:
- LedgeLocation = Commands->Find_Object(1100021);
- break;
- }
- if(LedgeLocation)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 206);
- Params.Set_Movement(Commands->Get_Position(LedgeLocation), 0.800000, 0.500000);
- Commands->Action_Attack(obj, Params);
- }
- float Random = Commands->Get_Random(0, 4.999900);
- if(Random > 4)
- Random = 4;
- Commands->Start_Timer(obj, this, Random, 203);
- }
- else if(number == 203)
- {
- GameObject *LedgeLocation = 0;
- switch(MoveIndex)
- {
- case 1:
- LedgeLocation = Commands->Find_Object(1100006);
- break;
- case 2:
- LedgeLocation = Commands->Find_Object(1100010);
- break;
- case 3:
- LedgeLocation = Commands->Find_Object(1100008);
- break;
- case 4:
- LedgeLocation = Commands->Find_Object(1100012);
- break;
- case 5:
- LedgeLocation = Commands->Find_Object(1100014);
- break;
- case 6:
- LedgeLocation = Commands->Find_Object(1100016);
- break;
- case 7:
- LedgeLocation = Commands->Find_Object(1100018);
- break;
- case 8:
- LedgeLocation = Commands->Find_Object(1100020);
- break;
- case default:
- LedgeLocation = Commands->Find_Object(1100021);
- break;
- }
- if(LedgeLocation)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 207);
- Params.Set_Movement(Commands->Get_Position(LedgeLocation), 0.800000, 0.500000);
- Commands->Action_Goto(obj, Params);
- }
- float Random = Commands->Get_Random(0, 4.999900);
- if(Random > 4)
- Random = 4;
- Commands->Start_Timer(obj, this, Random, 202);
- }
- else if(number == 205)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Vector3 StarPos = Commands->Get_Position(Star);
- if(Commands->Get_Distance(Pos, StarPos) >= 50.0)
- Commands->Start_Timer(obj, this, 1, 205);
- else
- {
- StarNear = false;
- if(Active)
- {
- int MX0_GDITROOPER1_066 = Commands->Create_Conversation("MX0_GDITROOPER1_066", 100, 300, false);
- Commands->Join_Conversation(obj, MX0_GDITROOPER1_066, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation(Star, MX0_GDITROOPER1_066, false, false, false);
- Commands->Start_Conversation(MX0_GDITROOPER1_066, 202);
- Commands->Monitor_Conversation(obj, MX0_GDITROOPER1_066);
- }
- }
- }
- else if(number == 206)
- {
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Vector3 StarPos = Commands->Get_Position(Star);
- if(Commands->Get_Distance(Pos, StarPos) >= 50.0)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 201);
- Params.Set_Movement(StarPos, 0.800000, 0.500000);
- Commands->Action_Goto(obj, Params);
- Commands->Start_Timer(obj, this, 1, 206);
- }
- else
- {
- StarNear = false;
- MX0_A02_Say_Something(this, obj, 203, 1);
- }
- }
- else if(number == 210)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 245, 0, 1);
- Commands->Apply_Damage(obj, 10000, "Blamokiller", obj);
- }
- else if(number == 214)
- Commands->Apply_Damage(obj, 10000, "Blamokiller", obj);
- else if(number == 215)
- {
- GameObject *DestroyedMed = Commands->Find_Object(DestroyedMedID); // DestroyedMed assumed
- if(DestroyedMed)
- {
- Vector3 Pos = Commands->Get_Position(DestroyedMed);
- float Facing = Commands->Get_Facing(DestroyedMed);
- Commands->Destroy_Object(DestroyedMed);
- GameObject *Med = Commands->Create_Object("GDI_Medium_Tank_Player", Pos);
- if(Med)
- {
- Commands->Attach_Script(obj, "M00_Send_Object_ID", "1400041,13,0.0f"); // I know that I put obj here..
- Commands->Set_Facing(Med, Facing);
- MX0_A02_Say_Something(this, obj, 240, 1);
- Commands->Attach_Script(Med, "MX0_A02_GDI_MEDTANK", "");
- }
- }
- }
- else if(number == 216)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 255, 0, 1);
- }
- else if(number == 217)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 258, 0, 1);
- ActionParamsStruct Params;
- Params.Set_Basic(this, 100, 220);
- Params.Set_Movement(Vector3(unknown, unknown, 0.100000), 0.800000, 1.000000);
- Commands->Action_Goto(obj, Params);
- }
- }
- }
- void MX0_A02_ACTOR::MX0_A02_Say_Something(GameObject *obj, int Number, int Unknown)
- {
- if(Active)
- {
- int Priority = 100;
- switch(Number)
- {
- case 1:
- Speech = "MX0_GDITROOPER2_051";
- break;
- case 2:
- Speech = "MX0_GDITROOPER3_053";
- break;
- case 3:
- Speech = "MX0_GDITROOPER4_054";
- break;
- case 4:
- Speech = "MX0_GDITROOPER2_056";
- break;
- case 5:
- Speech = "MX0_GDITROOPER1_057";
- break;
- case 6:
- Speech = "MX0_GDITROOPER4_058";
- break;
- case 7:
- Speech = "MX0_GDITROOPER4_060";
- break;
- case 8:
- Speech = "MX0_GDITROOPER2_062";
- break;
- case 9:
- Speech = "MX0_GDITROOPER1_063";
- break;
- case 10:
- Speech = "MX0_GDITROOPER3_064";
- break;
- case 11:
- Speech = "MX0_GDITROOPER4_065";
- break;
- case 205:
- Speech = "MX0_GDITROOPER2_069";
- break;
- case 202:
- Speech = "MX0_GDITROOPER1_066";
- break;
- case 203:
- Speech = "MX0_GDITROOPER2_067";
- break;
- case 204:
- Speech = "MX0_GDITROOPER1_068";
- break;
- case 206:
- Priority = 99;
- Speech = "MX0_GDITROOPER3_070";
- break;
- case 207:
- Speech = "MX0_GDITROOPER1_071";
- break;
- case 208:
- Speech = "MX0_GDITROOPER4_072";
- break;
- case 209:
- Speech = "MX0_GDITROOPER3_073";
- break;
- case 210:
- Speech = "MX0_GDITROOPER2_074";
- break;
- case 211:
- Speech = "MX0_GDITROOPER1_075";
- break;
- case 212:
- Speech = "MX0_GDITROOPER4_076";
- break;
- case 213:
- Speech = "MX0_GDITROOPER2_078";
- break;
- case 215:
- Speech = "MX0_GDITROOPER1_ALT09";
- break;
- case 216:
- Speech = "MX0_GDITROOPER4_ALT07";
- break;
- case 214:
- case 217:
- Speech = "MX0_GDITROOPER3_ALT13";
- break;
- case 218:
- Speech = "MX0_GDITROOPER1_ALT10";
- break;
- case 219:
- Speech = "MX0_GDITROOPER2_ALT01";
- break;
- case 220:
- Speech = "MX0_GDITROOPER4_ALT06";
- break;
- case 221:
- Speech = "MX0_GDITROOPER1_079";
- break;
- case 222:
- Speech = "MX0_GDITROOPER2_082";
- break;
- case 223:
- Speech = "MX0_GDITROOPER3_081";
- break;
- case 224:
- Speech = "MX0_GDITROOPER4_080";
- break;
- case 225:
- Speech = "MX0_GDITROOPER1_086";
- break;
- case 226:
- Speech = "MX0_GDITROOPER1_088";
- break;
- case 227:
- Speech = "MX0_GDITROOPER2_093";
- break;
- case 228:
- Speech = "MX0_GDITROOPER2_092";
- break;
- case 229:
- Speech = "MX0_GDITROOPER2_095";
- break;
- case 230:
- Speech = "MX0_GDITROOPER3_096";
- break;
- case 231:
- Speech = "MX0_GDITROOPER4_097";
- break;
- case 232:
- Speech = "MX0_GDITROOPER1_099";
- break;
- case 233:
- Speech = "MX0_GDITROOPER2_098";
- break;
- case 234:
- Speech = "MX0_GDITROOPER2_105";
- break;
- case 235:
- Speech = "MX0_GDITROOPER4_106";
- break;
- case 236:
- Speech = "MX0_GDITROOPER1_107";
- break;
- case 237:
- Speech = "MX0_GDITROOPER2_108";
- break;
- case 238:
- Speech = "MX0_GDITROOPER3_109";
- break;
- case 239:
- Speech = "MX0_ENGINEER1_115";
- break;
- case 240:
- Speech = "MX0_ENGINEER1_118";
- break;
- case 241:
- Speech = "MX0_GDITROOPER1_119";
- break;
- case 242:
- Speech = "MX0_ENGINEER2_120";
- break;
- case 243:
- Speech = "MX0_GDITROOPER1_121";
- break;
- case 244:
- Speech = "MX0_GDITROOPER2_122";
- break;
- case 245:
- Speech = "MX0_ENGINEER2_123";
- break;
- case 246:
- Speech = "MX0_GDITROOPER3_090";
- break;
- case 247:
- Speech = "MX0_A02_SPEECH_WRONGWAY_01";
- break;
- case 248:
- Speech = "MX0_A02_SPEECH_WRONGWAY_02";
- break;
- case 249:
- Speech = "MX0_A02_SPEECH_WRONGWAY_03";
- break;
- default:
- Speech = "MX0_A02_PREAMB_01";
- break;
- }
- int Conversation = Commands->Create_Conversation(Speech, Priority, 300, false);
- Commands->Join_Conversation(obj, Conversation, false, true, true);
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- Commands->Join_Conversation(Star, Conversation, false, false, false);
- Commands->Start_Conversation(Conversation, number);
- Commands->Monitor_Conversation(obj, Conversation);
- }
- }
- class MX0_A02_GDI_VEHICLE : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Damaged(GameObject *obj,GameObject *damager,float amount);
- };
- void MX0_A02_GDI_VEHICLE::Created(GameObject *obj)
- {
- //Created assumed
- Commands->Set_Health(obj, 10.000000);
- }
- void MX0_A02_GDI_VEHICLE::Damaged(GameObject *obj,GameObject *damager,float amount)
- {
- //Damaged assumed
- Commands->Set_Health(obj, 10.000000);
- }
- class MX0_A02_GDI_MEDTANK : public ScriptImpClass
- {
- void Damaged(GameObject *obj,GameObject *damager,float amount);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- bool Entered;
- };
- void MX0_A02_GDI_MEDTANK::Damaged(GameObject *obj,GameObject *damager,float amount)
- {
- Commands->Set_Health(obj, Commands->Get_Max_Health(obj));
- }
- void MX0_A02_GDI_MEDTANK::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == CUSTOM_EVENT_VEHICLE_ENTERED && !Entered)
- {
- Entered = true;
- Commands->Fade_Background_Music("Level 0 Tiberium.mp3", 2, 2);
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 262, 0, 0);
- }
- }
- class MX0_A02_GDI_APC : public ScriptImpClass
- {
- void Damaged(GameObject *obj,GameObject *damager,float amount);
- void Enemy_Seen(GameObject *obj,GameObject *enemy);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- bool Damageable;
- };
- void MX0_A02_GDI_APC::Damaged(GameObject *obj,GameObject *damager,float amount)
- {
- if(!Damageable)
- Commadns->Set_Health(obj, Commands->Get_Max_Health(obj));
- }
- void MX0_A02_GDI_APC::Enemy_Seen(GameObject *obj,GameObject *enemy)
- {
- ActionParamsStruct Params;
- Params.Set_Basic(this, 90, 201);
- Params.Set_Attack(enemy, 300.000000, 0, true);
- Commands->Action_Attack(obj, Params);
- }
- void MX0_A02_GDI_APC::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- if(type == 210)
- Commands->Apply_Damage(obj, 10000, "Blamokiller", sender);
- else if(type == 215)
- {
- Commands->Innate_Enable(obj);
- Commands->Enable_Enemy_Seen(obj, true);
- }
- }
- class MX0_A02_ZONE_STARTUP : public ScriptImpClass
- {
- void Entered(GameObject *obj,GameObject *enterer);
- };
- void MX0_A02_ZONE_STARTUP::Entered(GameObject *obj,GameObject *enterer)
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 215, 0, 0);
- Commands->Destroy_Object(obj);
- }
- class MX0_A02_HELICOPTER : public ScriptImpClass
- {
- void Created(GameObject *obj);
- void Timer_Expired(GameObject *obj,int number);
- void Custom(GameObject *obj,int type,int param,GameObject *sender);
- };
- void MX0_A02_HELICOPTER::Created(GameObject *obj)
- {
- int ActorID = Get_Int_Parameter("ActorID");
- if(ActorID)
- Commands->Start_Timer(obj, this, 23, 211);
- }
- void MX0_A02_HELICOPTER::Timer_Expired(GameObject *obj,int number)
- {
- if(Get_Int_Parameter("ActorID"))
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 246, 0, 0);
- }
- else
- {
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 241, 0, 0);
- }
- }
- void MX0_A02_HELICOPTER::Custom(GameObject *obj,int type,int param,GameObject *sender)
- {
- //Custom assumed
- if(type == 211)
- Commands->Apply_Damage(obj, 10000, "Blamokiller", 0);
- }
- class MX0_A02_DEFAULT_OFF : public ScriptImpClass
- {
- void Damaged(GameObject *obj,GameObject *damager,float amount);
- };
- void MX0_A02_DEFAULT_OFF::Damaged(GameObject *obj,GameObject *damager,float amount)
- {
- //Damaged assumed
- Vector3 Pos = Commands->Get_Position(obj);
- GameObject *Star = Commands->Get_A_Star(Pos);
- if(damager != Star)
- Commands->Apply_Damage(obj, 10000, "Blamokiller", obj);
- }
- class MX0_A02_ZONE_DEFAULT_ON : public ScriptImpClass
- {
- void Killed(GameObject *obj,GameObject *killer);
- };
- void MX0_A02_ZONE_DEFAULT_ON::Killed(GameObject *obj,GameObject *killer)
- {
- // Killed assumed
- GameObject *Controller = Commands->Find_Object(1100000);
- Commands->Send_Custom_Event(obj, Controller, 202, 0, 0);
- Commands->Send_Custom_Event(obj, Controller, 223, 1200017, 0);
- Commands->Send_Custom_Event(obj, Controller, 224, 1200023, 0);
- }
- ScriptRegistrant<MX0_A02_ZONE_DEFAULT_ON> MX0_A02_ZONE_DEFAULT_ON_Registrant("MX0_A02_ZONE_DEFAULT_ON", "")
- ScriptRegistrant<MX0_A02_DEFAULT_OFF> MX0_A02_DEFAULT_OFF_Registrant("MX0_A02_DEFAULT_OFF", "")
- ScriptRegistrant<MX0_A02_HELICOPTER> MX0_A02_HELICOPTER_Registrant("MX0_A02_HELICOPTER", "ActorID=0:int")
- ScriptRegistrant<MX0_A02_ZONE_STARTUP> MX0_A02_ZONE_STARTUP_Registrant("MX0_A02_ZONE_STARTUP", "")
- ScriptRegistrant<MX0_A02_GDI_APC> MX0_A02_GDI_APC_Registrant("MX0_A02_GDI_APC", "")
- ScriptRegistrant<MX0_A02_GDI_MEDTANK> MX0_A02_GDI_MEDTANK_Registrant("MX0_A02_GDI_MEDTANK", "");
- ScriptRegistrant<MX0_A02_GDI_VEHICLE> MX0_A02_GDI_VEHICLE_Registrant("MX0_A02_GDI_VEHICLE", "");
- ScriptRegistrant<MX0_A02_ACTOR> MX0_A02_ACTOR_Registrant("MX0_A02_ACTOR", "ActorID=0:int");
- ScriptRegistrant<MX0_A02_Controller> MX0_A02_Controller_Registrant("MX0_A02_Controller", "");
- ScriptRegistrant<MX0_A03_END_ZONE> MX0_A03_END_ZONE_Registrant("MX0_A03_END_ZONE", "");
- ScriptRegistrant<MX0_A03_NOD_TURRET> MX0_A03_NOD_TURRET_Registrant("MX0_A03_NOD_TURRET", "");
- ScriptRegistrant<MX0_A03_TROOPER_ONE_TEST> MX0_A03_TROOPER_ONE_TEST_Registrant("MX0_A03_TROOPER_ONE_TEST", "");
- ScriptRegistrant<MX0_A03_FIRST_PLAYER_ZONE> MX0_A03_FIRST_PLAYER_ZONE_Registrant("MX0_A03_FIRST_PLAYER_ZONE", "");
- ScriptRegistrant<MX0_A03_HAVOC_TANK> MX0_A03_HAVOC_TANK_Registrant("MX0_A03_HAVOC_TANK", "");
- ScriptRegistrant<MX0_A03_GDI_TROOPER_ONE> MX0_A03_GDI_TROOPER_ONE_Registrant("MX0_A03_GDI_TROOPER_ONE", "");
- ScriptRegistrant<MX0_A03_NOD_HARVESTER> MX0_A03_NOD_HARVESTER_Registrant("MX0_A03_NOD_HARVESTER", "");
- ScriptRegistrant<MX0_A03_NOD_TROOPER_TIB_DEATH> MX0_A03_NOD_TROOPER_TIB_DEATH_Registrant("MX0_A03_NOD_TROOPER_TIB_DEATH", "");
- ScriptRegistrant<MX0_A03_NOD_BUGGIE> MX0_A03_NOD_BUGGIE_Registrant("MX0_A03_NOD_BUGGIE", "");
- ScriptRegistrant<MX0_A03_TANK> MX0_A03_TANK_Registrant("MX0_A03_TANK", "");
- ScriptRegistrant<MX0_A03_HUMVEE> MX0_A03_HUMVEE_Registrant("MX0_A03_HUMVEE", "");
- ScriptRegistrant<MX0_A03_CONTROLLER_DAK> MX0_A03_CONTROLLER_DAK_Registrant("MX0_A03_CONTROLLER_DAK", "");
- ScriptRegistrant<MX0_A03_GDI_TANK_DROP_ZONE_DAK> MX0_A03_GDI_TANK_DROP_ZONE_DAK_Registrant("MX0_A03_GDI_TANK_DROP_ZONE_DAK", "");
- ScriptRegistrant<MX0_A03_GDI_TROOP_DROP_ZONE_DAK> MX0_A03_GDI_TROOP_DROP_ZONE_DAK_Registrant("MX0_A03_GDI_TROOP_DROP_ZONE_DAK", "");
- ScriptRegistrant<MX0_A03_GDI_INFANTRY> MX0_A03_GDI_INFANTRY_Registrant("MX0_A03_GDI_INFANTRY", "troop_num:int");
- ScriptRegistrant<MX0_NOD_INFANTRY> MX0_NOD_INFANTRY_Registrant("MX0_NOD_INFANTRY", "troop_num:int");
- ScriptRegistrant<MX0_GDI_ORCA> MX0_GDI_ORCA_Registrant("MX0_GDI_ORCA", "");
- ScriptRegistrant<MX0_A03_NOD_PLACED_MINIGUNNER> MX0_A03_NOD_PLACED_MINIGUNNER_Registrant("MX0_A03_NOD_PLACED_MINIGUNNER", "");
- ScriptRegistrant<DAK_MX0_Sec_3_Humvee> DAK_MX0_Sec_3_Humvee_Registrant("DAK_MX0_Sec_3_Humvee", "");
- ScriptRegistrant<MX0_KillNotify> MX0_KillNotify_Registrant("MX0_KillNotify", "");
- ScriptRegistrant<MX0_SniperAction> MX0_SniperAction_Registrant("MX0_SniperAction", "FaceObj:int");
- ScriptRegistrant<MX0_AmbientBattle> MX0_AmbientBattle_Registrant("MX0_AmbientBattle", "");
- ScriptRegistrant<MX0_NOD_TroopDrop> MX0_NOD_TroopDrop_Registrant("MX0_NOD_TroopDrop", "");
- ScriptRegistrant<MX0_Kill_Sniper> MX0_Kill_Sniper_Registrant("MX0_Kill_Sniper", "");
- ScriptRegistrant<MX0_Engineer_Goto2> MX0_Engineer_Goto2_Registrant("MX0_Engineer_Goto2", "GotoDest1:int, GotoDest2:int, Count:int");
- ScriptRegistrant<MX0_Engineer_Goto> MX0_Engineer_Goto_Registrant("MX0_Engineer_Goto", "GotoDest1:int, GotoDest2:int, Count:int");
- ScriptRegistrant<MX0_Engineer_Return> MX0_Engineer_Return_Registrant("MX0_Engineer_Return", "");
- ScriptRegistrant<MX0_Engineer2> MX0_Engineer2_Registrant("MX0_Engineer2", "Damage_multiplier:float");
- ScriptRegistrant<MX0_Engineer1> MX0_Engineer1_Registrant("MX0_Engineer1", "Damage_multiplier:float");
- ScriptRegistrant<MX0_MissionStart_DME> MX0_MissionStart_DME_Registrant("MX0_MissionStart_DME", "");
- ScriptRegistrant<MX0_Explosive_Barrels_DLS> MX0_Explosive_Barrels_DLS_Registrant("MX0_Explosive_Barrels_DLS", "Logical_Sound=0:int, Radius:float");
- ScriptRegistrant<MX0_Plant_Ion_Beacon_DLS> MX0_Plant_Ion_Beacon_DLS_Registrant("MX0_Plant_Ion_Beacon_DLS", "");
- ScriptRegistrant<MX0_Nod_Bunker_DLS> MX0_Nod_Bunker_DLS_Registrant("MX0_Nod_Bunker_DLS", "");
- ScriptRegistrant<MX0_SAM_DLS> MX0_SAM_DLS_Registrant("MX0_SAM_DLS", "");
- ScriptRegistrant<MX0_Nod_RocketSoldier_DLS> MX0_Nod_RocketSoldier_DLS_Registrant("MX0_Nod_RocketSoldier_DLS", "Stationary_Point=0:int");
- ScriptRegistrant<MX0_Gun_Emplacement_DLS> MX0_Gun_Emplacement_DLS_Registrant("MX0_Gun_Emplacement_DLS", "Left_Point=0:int, Right_Point=0:int");
- ScriptRegistrant<MX0_GDI_Soldier_DLS> MX0_GDI_Soldier_DLS_Registrant("MX0_GDI_Soldier_DLS", "Attack_Loc0=0:int, Attack_Loc1=0:int, Attack_Loc2=0:int, Attack_Loc3=0:int, Speed=1.0:float");
- ScriptRegistrant<MX0_GDI_Killed_DLS> MX0_GDI_Killed_DLS_Registrant("MX0_GDI_Killed_DLS", "Unit_ID=0:int");
- ScriptRegistrant<MX0_Obelisk_Weapon_DLS> MX0_Obelisk_Weapon_DLS_Registrant("MX0_Obelisk_Weapon_DLS", "Max_Range=75.0f:float");
- ScriptRegistrant<MX0_Vehicle_DLS> MX0_Vehicle_DLS_Registrant("MX0_Vehicle_DLS", "Attack_Loc0=0:int, Attack_Loc1=0:int, Attack_Loc2=0:int, Attack_Loc3=0:int, Speed=1.0:float");
- ScriptRegistrant<MX0_Area4_Zone_DLS> MX0_Area4_Zone_DLS_Registrant("MX0_Area4_Zone_DLS", "Area=0:int");
- ScriptRegistrant<MX0_Area4_Controller_DLS> MX0_Area4_Controller_DLS_Registrant("MX0_Area4_Controller_DLS", "");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement