Help! my first mission idea is running away with itself.
Moderators: winston, another_commander
Help! my first mission idea is running away with itself.
Right, here goes,
As I've been chatting about a NPC ship idea in the 3d modeling thread I thought I'd better give an overview of what I'm attempting and ask all those questions that I need to.
The Mission : Needle in a Haystack
Masitech industries have been researching ways to exploit the content of the various gas giants that litter the ooniverse. As part of their research a daring young scientist has set out with a fully crewed bulk carrier (fitted out as a mobile lab complex) to chart and survey said gas giants.
As with all corporate ventures, the competition have been watching jealously.
6 weeks into the mission masitech HQ receive an urgent communication from the carrier. It has been attacked by rogue agents from the competitors. So far there are two distinct foes it could be. (insert company names here)
That was 8 months ago. The carrier should be back by now.
Your mission is simple
1. Find the carrier
2. retrieve anything of use and bring it back
On successful completion of the mission masitech have all they need to begin mining operations, all forms of carrier and associated equip should be added to the game along with a scattering of gas giants and gas mining stations.
Questions
1. (I think this has been discussed before but I'll ask again anyway) Can planets be added to the ooniverse? I was thinking maybe 3-4 gas giants per galactic chart.
2. Is there a way of making it an unlockable feature so as to only be available on mission completion?
3. I'd like to introduce some new kit, the main pieces being A) a robotic forklift kind of thing for the unloading of modules. B) a magnetic harpoon type device (think enterprise/reavers from serenity) for towing detached, unpowered modules. (or generally latching onto anything you want to tow/swing round like a bolos)
4. Blast radius. If something as big as a bulk carrier blows up, especially if it's a gas tanker, it's likely to take anything close to it, with it. is there any way of modifying the quirium mine effect for this purpose?
5. Is this to big. By which I mean, would any oxp of this kind of scale slow game performance disasterously?
6. Is there a way of making it time dependant so you have to race the competition?
7. Has anything like this already been attempted, if so, to what degree of success?
8. Are there any obvious problems I've not considered that would make this impossible from the word go?
All help greatly appreciated
As I've been chatting about a NPC ship idea in the 3d modeling thread I thought I'd better give an overview of what I'm attempting and ask all those questions that I need to.
The Mission : Needle in a Haystack
Masitech industries have been researching ways to exploit the content of the various gas giants that litter the ooniverse. As part of their research a daring young scientist has set out with a fully crewed bulk carrier (fitted out as a mobile lab complex) to chart and survey said gas giants.
As with all corporate ventures, the competition have been watching jealously.
6 weeks into the mission masitech HQ receive an urgent communication from the carrier. It has been attacked by rogue agents from the competitors. So far there are two distinct foes it could be. (insert company names here)
That was 8 months ago. The carrier should be back by now.
Your mission is simple
1. Find the carrier
2. retrieve anything of use and bring it back
On successful completion of the mission masitech have all they need to begin mining operations, all forms of carrier and associated equip should be added to the game along with a scattering of gas giants and gas mining stations.
Questions
1. (I think this has been discussed before but I'll ask again anyway) Can planets be added to the ooniverse? I was thinking maybe 3-4 gas giants per galactic chart.
2. Is there a way of making it an unlockable feature so as to only be available on mission completion?
3. I'd like to introduce some new kit, the main pieces being A) a robotic forklift kind of thing for the unloading of modules. B) a magnetic harpoon type device (think enterprise/reavers from serenity) for towing detached, unpowered modules. (or generally latching onto anything you want to tow/swing round like a bolos)
4. Blast radius. If something as big as a bulk carrier blows up, especially if it's a gas tanker, it's likely to take anything close to it, with it. is there any way of modifying the quirium mine effect for this purpose?
5. Is this to big. By which I mean, would any oxp of this kind of scale slow game performance disasterously?
6. Is there a way of making it time dependant so you have to race the competition?
7. Has anything like this already been attempted, if so, to what degree of success?
8. Are there any obvious problems I've not considered that would make this impossible from the word go?
All help greatly appreciated
... and I'm Barry Hercules, doc.
oops forgot a question.
Gravity wells and the simulation of. can this be done. Another thing that could make the mission time critical could be that once you've found the carrier, you have not only got to beat the competition but also race against a deteriorating orbit.
Gravity wells and the simulation of. can this be done. Another thing that could make the mission time critical could be that once you've found the carrier, you have not only got to beat the competition but also race against a deteriorating orbit.
... and I'm Barry Hercules, doc.
- Captain Hesperus
- Grand High Clock-Tower Poobah
- Posts: 2310
- Joined: Tue Sep 19, 2006 1:10 pm
- Location: Anywhere I can sell Trumbles.....
1. Yes, see LittleBear's Assassins OXP for details on that
2. Yes, pretty much anything in a system can be modified, even the sun. See the Assassins thread in the Expansion Packs forum.
3. Don't know
4. Ditto
5. LittleBear's OXP is probably the largest with as LittleBear might say:
7. Not to my knowledge.
8. Nothing that can't be got around without a bit of kludging and begging around the experienced coders and OXPers on this very BB!
Sorry I can't be more help, but as I have noted in many threads, I can barely speak my native English, let alone code.
Good luck!
Captain Hesperus
2. Yes, pretty much anything in a system can be modified, even the sun. See the Assassins thread in the Expansion Packs forum.
3. Don't know
4. Ditto
5. LittleBear's OXP is probably the largest with as LittleBear might say:
6. Don't know.Littlebear wrote:16 interlinked missions and assassinations, 3 new player ships, lots of new NPC ships, extra stations (including a destroyable station!), a new item of player equipment, 4 new weapons (NPC only), a Defense against the Q-mine is developed, 10 systems gain moons, planets, nebulas, and gas giants & 36 mission briefings with background images.
7. Not to my knowledge.
8. Nothing that can't be got around without a bit of kludging and begging around the experienced coders and OXPers on this very BB!
Sorry I can't be more help, but as I have noted in many threads, I can barely speak my native English, let alone code.
Good luck!
Captain Hesperus
- Captain Hesperus
- Grand High Clock-Tower Poobah
- Posts: 2310
- Joined: Tue Sep 19, 2006 1:10 pm
- Location: Anywhere I can sell Trumbles.....
- LittleBear
- ---- E L I T E ----
- Posts: 2882
- Joined: Tue Apr 04, 2006 7:02 pm
- Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.
Nice ideas there!
On making it available after the mission is finished, might be doable. JS included as a condition in his shipyard data that Galaxy > 0 (ie in 2 to 8 ), so a condition that mymission equal COMPLETE should work.
Gravity wells:- like that one. Could do it two ways. If you want the ship to fall while the player is in the system, then if you put the giant at position XXX YYY ZZZ and in AI tell the ship to go to that position (but give it a very very low top speed), then it would slowly fall out of orbit and be destroyed when it hit the giant. If you wanted it to be a very gradual fall then you could use the timer method Commander McLane posted in the Black Monks thread. On day 1 of the mission add the ship a long way from the giant, if day > 7 (say) add it that bit closer and so on.
The q-mine effect is done with becomeEnergyBlast. You could either spawn a bit of wreakage with deathaction, but give the wreackage timebombAI (and it will blow like a q-mine) or in AI have an Energy Low = SwitchAI to timebombAI, turning the ship into a ticking q-mine when on energy low.
Lifters and such like would be doable by AI (but tricky!). It should be possible to make such a device pylon mounted, so the player could have it. Adding the "missile" (as Oolite would regard it) would be faily easy, but the AIing to make it do what you want would be hard.
On slowdown. If you add loads of ships to the same system, this can cause slowdown, but long scripts don't, as long as you do them in a way that means Oolite only acts on one bit at a time. If you have a series of commands that are only read when Galaxy = X, Planet = Y and mission_stage = Z then it dosen't slow down the game generally, (but might slow it down a bit a this planet if you've gone nuts with the number of ships added). Adding 200+ ships for the Thargoid Invasion and the Civil Wars, caused a 10 second slow down when entering the system but only at these planets, but once added then game ran normally.
In the hope that someone else would try a big mission pack, I included a step by step explanation to everthing I done in code with assassins.oxp (this is why the readme is massive!). If you read past the Big Spoiler Warning, it may give you some help. There probabley are better ways of doing things, but these ones worked for me!
On making it available after the mission is finished, might be doable. JS included as a condition in his shipyard data that Galaxy > 0 (ie in 2 to 8 ), so a condition that mymission equal COMPLETE should work.
Gravity wells:- like that one. Could do it two ways. If you want the ship to fall while the player is in the system, then if you put the giant at position XXX YYY ZZZ and in AI tell the ship to go to that position (but give it a very very low top speed), then it would slowly fall out of orbit and be destroyed when it hit the giant. If you wanted it to be a very gradual fall then you could use the timer method Commander McLane posted in the Black Monks thread. On day 1 of the mission add the ship a long way from the giant, if day > 7 (say) add it that bit closer and so on.
The q-mine effect is done with becomeEnergyBlast. You could either spawn a bit of wreakage with deathaction, but give the wreackage timebombAI (and it will blow like a q-mine) or in AI have an Energy Low = SwitchAI to timebombAI, turning the ship into a ticking q-mine when on energy low.
Lifters and such like would be doable by AI (but tricky!). It should be possible to make such a device pylon mounted, so the player could have it. Adding the "missile" (as Oolite would regard it) would be faily easy, but the AIing to make it do what you want would be hard.
On slowdown. If you add loads of ships to the same system, this can cause slowdown, but long scripts don't, as long as you do them in a way that means Oolite only acts on one bit at a time. If you have a series of commands that are only read when Galaxy = X, Planet = Y and mission_stage = Z then it dosen't slow down the game generally, (but might slow it down a bit a this planet if you've gone nuts with the number of ships added). Adding 200+ ships for the Thargoid Invasion and the Civil Wars, caused a 10 second slow down when entering the system but only at these planets, but once added then game ran normally.
In the hope that someone else would try a big mission pack, I included a step by step explanation to everthing I done in code with assassins.oxp (this is why the readme is massive!). If you read past the Big Spoiler Warning, it may give you some help. There probabley are better ways of doing things, but these ones worked for me!
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
- Commander McLane
- ---- E L I T E ----
- Posts: 9520
- Joined: Thu Dec 14, 2006 9:08 am
- Location: a Hacker Outpost in a moderately remote area
- Contact:
I don't have much to add, just some general advice and a ready-made solution.
First thing you should do is read everything in the wiki about how to write OXPs, then have a look into some. That should give you a general irea on how things can be done. If you're not completely unfamiliar with any programming language it shouldn't be that difficult.
If you have some specific questions feel free to ask them here. There are always some guys around who are willing to lend a helping hand (or thought, for that matter).
As for the possibility of a race against the clock, here's my proposition for a generally usable timer (mentioned by LittleBear in his answer above):
(taken from the BlackMonks-thread)
The general way for scripting a working timer is this: You have to establish it by setting a point of reference somewhere in your script, preferably when the player accepts the mission:
(and you can do the same of course with clock_hours_number, clock_mins_number and clock_secs_number (which seems to be the same as clock_number)). Then you check for the time passed since that reference-point:
<value> being the time you want to have passed minus 1. And if you want a repetetive set of actions you just make the current time the new point of reference with "add: mission_mymission_startdate <value+1>" or another "set: mission_mymission_startdate [clock_days_number]" somewhere in the whatever you want to do-part. If there is no more action to follow you should insert a "reset: mission_mymission_startdate" instead (or reset another mission variable which is checked for in the outer conditions). Voilà!
First thing you should do is read everything in the wiki about how to write OXPs, then have a look into some. That should give you a general irea on how things can be done. If you're not completely unfamiliar with any programming language it shouldn't be that difficult.
If you have some specific questions feel free to ask them here. There are always some guys around who are willing to lend a helping hand (or thought, for that matter).
As for the possibility of a race against the clock, here's my proposition for a generally usable timer (mentioned by LittleBear in his answer above):
(taken from the BlackMonks-thread)
The general way for scripting a working timer is this: You have to establish it by setting a point of reference somewhere in your script, preferably when the player accepts the mission:
Code: Select all
"set: mission_mymission_startdate [clock_days_number]",
Code: Select all
{
conditions = (
"status_string equal STATUS_IN_FLIGHT",
"mission_mymission_startdate greaterthan -1"
);
do = (
"set: mission_mymission_checkdate [clock_days_number]",
"subtract: mission_mymission_checkdate [mission_mymission_startdate]",
{
conditions = ("mission_mymission_checkdate greaterthan <value>");
do = ('whatever you want to do');
},
);
},
posted pics of first ideas for robo loader, same link as in 3d modeing thread.
http://homepage.mac.com/tjs2/PhotoAlbum1.html
More stuff added today.
http://homepage.mac.com/tjs2/PhotoAlbum1.html
More stuff added today.
... and I'm Barry Hercules, doc.