Page 2 of 13

Posted: Tue Feb 27, 2007 10:03 am
by Griff
The problems with the docking bay and lack of turrets anywhere apart from the front of the monestary are my fault i'm afraid,
the docking bay in the oxp at the moment is too large i think and it's confusing oolite, i've got a version of the monestary with a docking bay at the exact dimensions as stated in the docking bay tutorial and it seems to work much better, i'll upload it somewhere later this evening if you want to give it a playtest Commander McLane, i never really tested it using different ships, just my (t)rusty cobra.

Since i've got the model in wings3D format it's only fair that i sort out the extra turrets as i can get the placement co-ordinates easily from within that program, it would be a nightmare for LB to try and guess the positions whilst in oolite, again i'll sort that out later this evening, LB kept insisting on more turrets but i though, 'man who's going to attack some helpful monks?' and only put 4 on the front.

Posted: Tue Feb 27, 2007 11:07 am
by LittleBear
Hi Captain,

Will do a final version of Black Monks when I finish the final update of Assassins (so might be a while!). Typos Ooops! Thanks for pointing them out and they're an easy fix. The You / Thou thing was really as I only thought of doing it "old English" style" after I'd already written a few briefings, so wasn't always consitent.

On the shipyard. No station except the main one can sell ships, but OXP stations can sell equipment and have an F3 screen. As it comes up on the screen as Shipyard I still called it one. The Monks only sell stuff for your ship as opposed to ships themselves though. The price variable is set to 3.13 (in the Stations shipdata, so it only affects this station not the game generally), so you should be able to buy equipment at a Black Monk Station (but an escape pod, for example costs over 3,000C).

Hmm. The tech level is odd. I'd changed some techlevels of various systems for Assassins and entering a 14 (for example) made the planet come up on F7 as 14. Guess its different in script. This is what comes of playtesting near Lave. I was testing at 11+ high tech planets! Guess I need to change it to greaterthan 9.

Lack of Defence Ships. Now this is really strange! I have used custom defense ships lots of times and they've always worked fine. Special Branch Headquaters, happliy launches Special Branch Fighters to laser you up for example. I did a like_ship gunship with the role monkdef and interceptorAI and assigned it as the Monk Station's Defence Ship with max_defships of 30. This (with the AI) worked and hoards of gun ships came spewing out of the dock and turned red on the scanner. BUT they refused to fire :shock: ! At first I though maybe it was something to do with the Gunship, so as a test I gave the station the Special Branch Asp from Assassins (which I know works fine when launched by Special Branch base). Same result, lauched and turned red, but not fireing.

I cannot think why this should happen. What was particularly strange was that if I set no defence ship in shipdata, Oolite defaulted to the standard Defence ship and it launched police ships (vipers, gunboats, Condors etc) and these did fire!

I didn't really want the monks to have a squad of police ships defend them and I also didn't want to have it launch gunships that didn't attack, so I set the defence ships to zero. In plot I guess the Gunships are off killing Defaulters and the station relies on its Turretts, Field of Minesweepers and it shields (3 times that of a Torus) for Defence. Very strange that it should happen only with this station, but the normal method for custom defence craft just didn't work. :? That said if Griff Bolts on some more guns on the sides and top, the Monks will be better armed! :twisted:

Having the Galaxy number <8 (an always met condition) for one segment was a hang-over from Assassins. It shouldn't cause a slowdown as the next condition requires you to be docked at the Monk Base (so Oolite should skip the next load of commands when this condition is not met). It probabley is unnessary, there was some reason why I put this in! I started writing the Assassins Script about 8 months ago and found, if I wanted to use the { ing off of bits of script, I had to put some condition here.

On the timing. Oolite does have a clock (which the Native code uses - eg for passenger deliveries), but it doesn't seem to work with OXPs. The Wiki says not to use it (as its broken) and I know JS coudn't get it to work when writing LoveCats. So I went with the jumpcounter. The idea of a jump being a week, is really from the FFE idea of a maxium Jump being instant from your point of view, but a week passes for the rest of the universe. Also, to playtest I wanted to make the loan conditions such that you could take the loan as a young Jameson and if you were sensible (fitting reasonable equipment but not splurging) you could repay the loan (just) and have a few hundred credits in the bank at the end, by canny trading. If you went nuts and bought Military Lasers etc, the Jump Count would mean you would never make it by trading, forcing you into a trader / pirate role. Make the trade run with a half full hold. Lurk outside the station and wait for traders. Laser them, take cargo (hope like hell for some Gold or gems!), jump out.

Also the jumpcount makes it easier to ensure the Loan does not unbalance the game. I'd figured on the max profit in a Cobra III with large Cargo Bay (trading) was about 1000 C a run. But 650 of this is added to the loan in interest. This alllowed me to ensure that a young Jameson couldn't skip the early stages of Oolite by just taking out a loan. Sure he could fill his cargo bay and have a few basic weapons and defences, but until the loan is paid off, he's really working for the Monks!

Posted: Tue Feb 27, 2007 11:37 am
by Commander McLane
Of course OXP-Stations can sell ships! The only thing you need is the key

Code: Select all

<key>hasShipyard</key>
<true/>
in the shipdata (documented in Giles' readme to 1.65 as a new feature, unfortunately not yet documented in the wiki) Just replace the isCarrier-key, that doesn't make sense anyway. I've done it for a station of mine and for playtesting also successfully gave the monks a shipyard (getting for the first time ever(!) the opportunity to buy a Tiger, as that ship's availability is set to a ridicilously high TL!).

The bad news is that the monks really can't sell over-priced ships, as there is no key like

Code: Select all

<key>shipyard_price_factor</key>
<real>3.16</real>
in shipdata. I tried it, and also ship_price_factor and ships_price_factor as alternative spellings. Nothing worked, so I suppose you can't influence ship prices like equipment prices.

So my suggestion still is to change the wording in the mission briefings from "over-priced shipyard" to "over-priced ship outfits" or something like that.

Techlevel: It is greaterthan 9 now. You have to change it to greaterthan 8.

Defense-ships: I think we need a defendStationAI. I was asking in another thread whether somebody already has scripted one. I think it could be developed starting from interceptAI or perhaps policeInterceptAI, but cannot be taken one on one from the existing AIs.

Timer: I still think it's easily scriptable. And I don't plan to use the deprecated scriptTimer method. So would you be interested?

Posted: Tue Feb 27, 2007 12:09 pm
by LittleBear
Cool! I didn't know you could have ships for sale at an OXP station! Will change that (not for the Monk Station as they can't be made stupidly priced, but for other OXP stations in Assassins). I can't remember why I put isCarrier in (probabley c&ping from somthing else), as you say it doesn't need it! Your suggestion on the naming makes sense, perhaps "overpriced facillities".

I don't think I've got the heart to start working out a load of code on using the timer. But if you want to mod it then go for it!

Posted: Tue Feb 27, 2007 9:08 pm
by ArkanoiD
Looks like Black Monks (as well as Asteroid Storm) still suffer from case sensitivity bugs - at least in texture names :-( Haven't got it working on my computer yet, though fixed some manually..

Posted: Tue Feb 27, 2007 10:15 pm
by Griff
oops, that's my fault, looks like either wings3d or the obj2dat.py script changed the '.png' to '.PNG' when i convered some of the models from .obj to .dat, odd because i just check a new ship i'm working on and this hasn't happened in the case, anyway i'll make sure to check the extensions in the future.
to fix black monks change the .png to .PNG on the following texture files (they're all in the blackmonks.oxp Textures folder):-

cannon.png
engines.png
griff_station_bay.png
griff_station_hull.png
griff_station_plates.png
griff_station_subents.png
guntex.png
engines.png
mainhull.png

Posted: Wed Feb 28, 2007 10:30 am
by Dr. Nil
@LB: Good to hear that you are still oxp'ing.

I have one suggestion for the monks. I never got why they should choose which systems to inhabit based on tech level. Wouldn't (low level) economy be a more fitting parameter for such an outfit?

Posted: Wed Feb 28, 2007 10:40 am
by LittleBear
Its really to make them rare (but not so rare that the player with a loan due cannot reach one in time!). Could place them in Anarchies instead though. That would be a challenge, trying to reach the base with a pulse laser!

I don't think I'm gonna write any new OXPs, but I do want to finish off Assassins and will fix any bugs in the ones I've done.

Posted: Wed Feb 28, 2007 11:05 am
by Commander McLane
Hi, LittleBear, here's your timer.

Basically you have to do only two things to your script:

1) At the place where mission_monk becomes TAKEN insert this line into the do-part:

Code: Select all

								"set: mission_monks_startdate [clock_days_number]",
2) Replace the complete conditions-set, whereby the mission_monks_timer is decremented, with the following:

Code: Select all

				{ 
					conditions = (  
						"status_string equal STATUS_EXITING_WITCHSPACE",
						"mission_monks equal RUNNING" 
					); 
					do = (
						"set: mission_monks_checkdate [clock_days_number]",
						"subtract: mission_monks_checkdate [mission_monks_startdate]",
						{
							conditions = ( "mission_monks_checkdate greaterthan 6" );
							do = (
								"decrement: mission_monks_timer",
								"add: mission_monks_startdate 7",
								"add: mission_monks_loan 625" );
								},
							);
						},
NOTE: It's not yet perfect, because of the way Oolite handles its timer. When exiting witchspace the current clock-days are queried. But there is the (adjust)-part, where you see your ship's clock running fast after exiting witchspace. This can (and quite often will) advance your clock well into the next day, if it passes from 23 to 00. But this final time is no longer queried during STATUS_EXITING_WITCHSPACE, only the time before the adjustment. So if the adjustment has brought you into the seventh day the script wouldn't know and wouldn't decrement mission_monks_timer until the next jump.

You could solve this by changing the first condition from STATUS_EXITING_WITCHSPACE to STATUS_IN_FLIGHT. Then mission_monks_timer would always be correct. But all the other queries like displaying the correct missionDescription or adding ships of unlucky debtors or monkhits are still bound to STATUS_EXITING_WITCHSPACE. So all this would only happen one jump later. There is a fix for that. You can include all these condition-clauses into the do-part of my code, just after the "add: mission_monks_loan 625", and of course you would have to delete the queries for STATUS_EXITING_WITCHSPACE and RUNNING in each of them. I just didn't want to do that now.

-----

Anyway, 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:

Code: Select all

		"set: mission_mymission_startdate [clock_days_number]",
(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:

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');
			},
		);
	},
<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Ă ! A nicely working timer in Oolite.

Posted: Wed Feb 28, 2007 12:19 pm
by Dr. Nil
LittleBear wrote:
Its really to make them rare (but not so rare that the player with a loan due cannot reach one in time!). Could place them in Anarchies instead though. That would be a challenge, trying to reach the base with a pulse laser!
:lol:

You could also use a combination of several conditions (even planet number<something) or perhaps only mid- and lo- industrial economies.
I don't think I'm gonna write any new OXPs, but I do want to finish off Assassins and will fix any bugs in the ones I've done.
Too bad. I was under the impression that you already had some work done on A2. (Yeah I know that it might be years before I even get to and through A1).

Posted: Wed Feb 28, 2007 12:30 pm
by LittleBear
I do have some ships Griff sent me (the Gunship has found a home in black monks). The others would really have to be in a follow-on as they are more advanced versions of the ones Griff did for A1. A1 ends with a plot teaser and I was thinking of having two story-lines (chose a side at the start and the missions depend on which side you took). But I don't really think I can top A1, without just making it more of the same, which was why I did Black Monks & Asteroid Storm instead as the ideas (HD on the loaning money) and AK (on redoing the Asteroid Mission from PC Elite) were interesting.

Posted: Wed Feb 28, 2007 12:35 pm
by Dr. Nil
Ok.

Perhaps the mark transponder could be used for some sort of in-system random assassination contracts - a bit in the vein of what you originally suggested when starting off on making A1. Random assassination contracts but only offered to those who have completed Assassins.

Posted: Wed Feb 28, 2007 12:39 pm
by Captain Hesperus
Dr. Nil wrote:
Ok.

Perhaps the mark transponder could be used for some sort of in-system random assassination contracts - a bit in the vein of what you originally suggested when starting off on making A1. Random assassination contracts but only offered to those who have completed Assassins.
It' could be a BB-style method for this (like FE2 and FFE):

'Zak Megso at Atriso knows too much. 1000Cr to whoever can teach him different.' and so on.

Captain Hesperus

Posted: Wed Feb 28, 2007 12:47 pm
by Star Gazer
LittleBear wrote:
Its really to make them rare (but not so rare that the player with a loan due cannot reach one in time!). Could place them in Anarchies instead though...
Surely monks of any kind would fit better with feudal systems...? ...just a thought...

Posted: Wed Feb 28, 2007 1:04 pm
by LittleBear
Feudal sounds perfect. I seem to rember reading somewhere that in the middle ages, Monks did lend money but were not allowed to charge interest. If you failed to repay on time though, your lands were forfit to the Church.