Nexus Modding > Scripting

The AI and You

<< < (5/20) > >>

The_Small_Time_Modder:
heres the file your asking for.


--- Code: ---//Basic objective structure:
//mission terminates, if either one of the two sides has no ships left

MACHINE "Objectives"

//main STATE
//majority of code is executed here
STATE monitor
RULE event In
:action
//OBJECTIVE INITIALISATION

//make sure, that both objectives are counted as "primary objectives"
SetObjectivePrimary(1, 1);
SetObjectivePrimary(2, 1);

//make sure, that both objectives are counted as "uncompleted"
MissionObjective(1,#OBJECTIVE_UNCOMPLETED);
MissionObjective(2,#OBJECTIVE_UNCOMPLETED);
:end
END

//the even FatalDamaged gets executed every time, a ship is being evacuated or even destroyed
RULE event FatalDamaged
//it is only executed, if the FatalDamaged ship is a player ship
condition E.ship:race=#race_player
:action
//Selects all player ships
SelectShips(1, s.race=#race_player);

//IF there are no player ships left
//THEN change STATE to Mission_failed
If(AllNumOf(1)=0, ChangeState(Mission_failed,0));
:end
END

//the even FatalDamaged gets executed every time, a ship is being evacuated or even destroyed
RULE event FatalDamaged
//it is only executed, if the FatalDamaged ship is an enemy ship
condition E.ship:race=#race_raptor
:action
//Selects all enemy ships
SelectShips(2, s.race=#race_raptor);

//IF there are no enemy ships left
//THEN change STATE to Mission_won
If(AllNumOf(2)=0, ChangeState(Mission_won,0));
:end
END

END //STATE monitor

STATE Mission_failed

RULE event In
:action
//Show a "Mission_lost" title
Title(0,0,0,"Mission_lost");

//Set both objectives to "failed"
MissionObjective(1, #OBJECTIVE_FAILED);
MissionObjective(2, #OBJECTIVE_FAILED);

//wait 10 seconds before quitting the mission
Delay(0,10,uQuitMission(0),0);
:end
END

END //STATE Mission_failed

STATE Mission_won

RULE event In
:action
//Show a "Mission_won" title
Title(0,0,0,"Mission_won");

//Set both objectives to "completed"
MissionObjective(1, #OBJECTIVE_COMPLETED);
MissionObjective(2, #OBJECTIVE_COMPLETED);

//wait 10 seconds before quitting the mission
Delay(0,10,uQuitMission(1),0);
:end
END

END //STATE Mission_won

END //MACHINE "Objectives"

--- End code ---

I hope im giving you the information thats helping you out man. I also appreciate you taking time to reply to my posts on here, for which i applaud you.  :D

EDIT: i also want to say i havent touched this file either, though i plan to soon, again with your assistance, if able... ;)

The_Small_Time_Modder:
OH WAIT A SECOND....  :o

When you were talking about this...


--- Quote ---Couple of things: you have two machines that are named the same, check that.

--- End quote ---

did you mean this part? if so i didnt change that!  :o


--- Code: ---MACHINE "INNER_AI"
#include "default_ai.mach"
END

--- End code ---

That may be the problem right there!  :D

Mularac:
Try changing the name of that machine to something else.
And if that doesn't work, I'm gonna have to see the content of the default_ai.mach file.

The_Small_Time_Modder:
Do you have any suggestions/reccomendations as to what i should name it? Im thinking SECONDARY_AI...

Mularac:
I would leave that as Inner_AI (as it is, in fact, an inner ai) and name the upper one to MAIN_AI or RAPTOR_AI

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version