On 1:-
DeathActions in shipdata don't work at all if the ship has a JavaScript attached. But I don't think any of Charlie's ships included in RS have a JS script attached. As I remember, he just used this to send comms messages along the lines of "Oh no, there goes my turret!" etc when sub-entries get blown off. Not sure that sub-entries are allowed death-actions anymore. Death Actions in shipdata for a main ship (rather than a subentry) still work, as I've tested Assassin's on 1.71.2 and its running OK. The worst that'll happen is the sub-entries won't send there comms messages, so you probabley could just ignore this.
DeathActions are only needed if you want a ship to do somthing more than just die when it err dies! So unless you want to set a mission variable, send a comms message etc, you don't need to use death actions.
On 2:-
Yep. If you remove the bounty key completeley, that (should) work fine and the game will automaticaly give a ship a bounty if its called as a pirate. However the automatic bounty is quite low. I think its random between about 5 and 30 credits, so if you want to give a higher bounty for a particulary tough ship (eg a SuperCobra Pirate), you'd need to have a sepearte entry like-shiped with just the bounty key and only having the role pirate.
On 3:-
If autoAI is set to true (which it is by default), the ship will automatoically get the AI approprate (a pirateAI if called as a pirate, policeAI if called as a cop). However route1partrol is probabley a bad choice for carriers as the ship will try to dock on reaching the station. Bear in mind that all the ships in the native game are small enough to dock easily. Only Vipers and bounty hunters such as the Cobra would be given this in the un-expanded game. With a really big ship it'll need a modified AI. For the Condor, giving it the role police will cause it to be launched by station as well. Better would be to give it a custom role and place it by script. If you don't want to faff around with adding a script, then giving it the role police should work as long as you set autoAI to false and specify the custom AI in shipdata. If you want to avoid condors crashing into stations a customAI would be needed. I quick hack of route1patrol should do it. This is a very quick hack, but it would make the ship jump out rather than try to dock :-
Code: Select all
{
"HEAD_FOR_PLANET" = {
ENTER = (setCourseToPlanet, "setDesiredRangeTo: 50000.0", checkCourseToDestination);
"COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination);
"WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist");
"DOCKING_REQUESTED" = (performHyperSpaceExit);
"DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_WITCHPOINT");
"ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
"OFFENCE_COMMITTED" = (setTargetToFoundTarget, "markTargetForOffence: 7", deployEscorts, groupAttackTarget);
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: INBOUND_LOOT");
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
UPDATE = (setCourseToPlanet, "setDesiredRangeTo: 50000.0", checkCourseToDestination, scanForOffenders, "pauseAI: 10.0");
EXIT = ();
};
"HEAD_FOR_WITCHPOINT" = {
ENTER = (setCourseToWitchpoint, checkCourseToDestination);
"COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination);
"WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist");
"DOCKING_REQUESTED" = (performHyperSpaceExit);
"DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_PLANET");
"ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
"OFFENCE_COMMITTED" = (setTargetToFoundTarget, "markTargetForOffence: 7", deployEscorts, groupAttackTarget);
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: OUTBOUND_LOOT");
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
UPDATE = (setCourseToWitchpoint, checkCourseToDestination, scanForOffenders, "pauseAI: 10.0");
EXIT = ();
};
"OUTBOUND_LOOT" = {
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
"DOCKING_REQUESTED" = (performHyperSpaceExit);
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
ENTER = ("setSpeedTo: 0.0", performIdle);
EXIT = ();
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: OUTBOUND_LOOT");
"TARGET_FOUND" = (setTargetToFoundTarget, "setAITo: collectLootAI.plist");
"NOTHING_FOUND" = ("setStateTo: OUTBOUND_CHECK");
UPDATE = (scanForLoot, "pauseAI: 10.0");
};
"INBOUND_LOOT" = {
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
"DOCKING_REQUESTED" = (performHyperSpaceExit);
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
ENTER = ("setSpeedTo: 0.0", performIdle);
EXIT = ();
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: INBOUND_LOOT");
"TARGET_FOUND" = (setTargetToFoundTarget, "setAITo: collectLootAI.plist");
"NOTHING_FOUND" = ("setStateTo: INBOUND_CHECK");
UPDATE = (scanForLoot, "pauseAI: 10.0");
};
"INBOUND_CHECK" = {
ENTER = (scanForOffenders, checkForNormalSpace);
EXIT = ();
"OFFENCE_COMMITTED" = (setTargetToFoundTarget, "markTargetForOffence: 7", deployEscorts, groupAttackTarget);
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
RESTARTED = ("setStateTo: INBOUND_LOOT");
"NORMAL_SPACE" = ("setStateTo: HEAD_FOR_PLANET");
"INTERSTELLAR_SPACE" = ("setSpeedFactorTo: 1.0", "pauseAI: 15.0", "setStateTo: HYPER_OUT");
UPDATE = ();
};
"OUTBOUND_CHECK" = {
ENTER = (scanForOffenders, checkForNormalSpace);
EXIT = ();
"OFFENCE_COMMITTED" = (setTargetToFoundTarget, "markTargetForOffence: 7", deployEscorts, groupAttackTarget);
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
RESTARTED = ("setStateTo: OUTBOUND_LOOT");
"NORMAL_SPACE" = ("setStateTo: HEAD_FOR_WITCHPOINT");
"INTERSTELLAR_SPACE" = ("setSpeedFactorTo: 1.0", "pauseAI: 15.0", "setStateTo: HYPER_OUT");
UPDATE = ();
};
"HYPER_OUT" = {ENTER = (); EXIT = (); UPDATE = (performHyperSpaceExit); };
GLOBAL = {ENTER = ("setStateTo: HEAD_FOR_WITCHPOINT"); EXIT = (); UPDATE = (); };
}