Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

IronHide OXP

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: another_commander, winston

dybal
---- E L I T E ----
---- E L I T E ----
Posts: 499
Joined: Mon Feb 10, 2020 12:47 pm

Re: IronHide OXP

Post by dybal »

I still have the logs (Shark:Shreck is my ship, I was taking one of my escorts to Jaguar Co Base - TL 15 - to install Naval Energy Grid and Military Injectors Upgrade; it seems I remembered some things wrong, it wasn't the Sheriff...):

Code: Select all

22:18:33.067 [power_to_engines]: Weapons offline, maxSpeed from 667 to 1000, cruiseSpeed 296
22:18:33.067 [LogEvents]: weapons systems toggled to 0
22:18:36.900 [LogEvents]: got message from GalCop Viper Interceptor: JND883-RE1 30686 : Shreck, you are in breach of Cooperative law. Leave the system or be destroyed.
22:18:36.947 [LogEvents]: ship lost EQ_NUMERIC3_ALERTCONDITIONYELLOW
22:18:36.948 [LogEvents]: ship got EQ_NUMERIC3_ALERTCONDITIONRED
22:18:36.950 [masslock_compensator]: Mass-Lock Compensator before ON=true, Aegis false, maxSpeed 1000, cruiseSpeed 296
22:18:36.950 [masslock_compensator]: Mass-Lock Compensator ON=false, maxSpeed 552, cruiseSpeed 296
22:18:36.950 [LogEvents]: alert condition changed from 2 to 3
22:18:36.950 [Towbar]: clock.seconds:180159565949.56683 parcelReputation:7 Parcels:270 ParcelMin:0
22:18:41.295 [LogEvents]: targeted GalCop Viper: ZEK268-RE1 62 who has 180 energy
22:18:48.152 [LogEvents]: attacked by GalCop Viper Interceptor: OKC344-RE1 3515 384+384 shield and 299 energy left
22:18:48.154 [SC shipscript events]: Shark: Shreck taking damage
22:18:48.155 [SC Core]: Shark: Shreck - adjust_input: {"caller":"Shield Cycler","setting":3,"functional":100,"fwd":372,"fwd_threshold":384,"aft":384,"aft_threshold":384,"version":2,"manual_version":2,"init":false,"max_energy":300,"ship":}, energy:299.3 /**** ShieldCycler trace: it's still waiting for ShieldCapacitors to discharge...
22:18:48.155 [SC Core]: Shark: Shreck - adjust_output: {"power":0,"fwd":372,"aft":384}
22:18:48.156 [LogEvents]: taking shield damage from GalCop Viper Interceptor: OKC344-RE1 3515 372+384 shield and 299 energy left
22:18:48.156 [LogEvents]: attacked by GalCop Viper Interceptor: OKC344-RE1 3515 372+384 shield and 299 energy left
<snip>
22:19:12.066 [LogEvents]: attacked unsuccessfully by GalCop Viper: XEB382-RE1 1765
22:19:12.191 [LogEvents]: attacked by GalCop Viper Interceptor: OKC344-RE1 3515 261+261 shield and 296 energy left
22:19:12.193 [SC shipscript events]: Shark: Shreck taking damage
22:19:12.193 [SC Core]: _sc_sc_adjust
22:19:12.193 [SC Core]: Shark: Shreck - adjust_input: {"caller":"Shield Cycler", "setting":3, "functional":100, "fwd":261.0773010253906, fwd_threshold":384, "aft":249.07730102539062, "aft_threshold":384, "version":2, "manual_version":2, "init":false, "max_energy":300, "ship":}, energy:295.9
22:19:12.193 [SC Core]: Shark: Shreck-> Mode:Equal threshold:384.00/384.00, desired_transfer:6.00,  transfer:6.00, in:261.08/249.08, out:255.08/255.08, r_power:0.1350(2.3%) /***** ShieldCycler trace, now it's working
22:19:12.194 [SC Core]: Shark: Shreck - adjust_output: {"power":0.135,"fwd":255.07730102539062,"aft":255.07730102539062}
22:19:12.194 [SC Core]: Shark: Shreck: adjusting shields from (F/A) 261/249 to 255/255, energy:295.9->295.7
22:19:12.194 [LogEvents]: taking shield damage from GalCop Viper Interceptor: OKC344-RE1 3515 255+255 shield and 296 energy left
22:19:12.195 [LogEvents]: attacked unsuccessfully by GalCop Viper Interceptor: OKC344-RE1 3515
<snip>
22:21:36.973 [LogEvents]: got message from GalCop Cobra Enforcer: YMN949-RE1 3123 : If you're hanging on for help, it's not coming.
<snip>
22:22:37.207 [LogEvents]: got message from GalCop Cobra Enforcer: YMN949-RE1 3123 : You won't live to regret your law-breaking!
<snip>
22:22:52.248 [LogEvents]: attacked unsuccessfully by GalCop Viper Interceptor: CZY764-RE1 22201
22:22:52.249 [LogEvents]: attacked unsuccessfully by GalCop Viper Interceptor: CZY764-RE1 22201
22:22:52.395 [LogEvents]: attacked unsuccessfully by GalCop Viper Interceptor: CZY764-RE1 22201
22:22:52.396 [LogEvents]: attacked unsuccessfully by GalCop Viper Interceptor: CZY764-RE1 22201
22:22:58.677 [shieldequalizercapacitors]: Shark: Shreck: shields: 74.1/74.1, Capacitors: 0/0
22:23:04.970 [LogEvents]: attacked unsuccessfully by GalCop Viper Interceptor: CZY764-RE1 22201
22:23:04.970 [LogEvents]: attacked unsuccessfully by GalCop Viper Interceptor: CZY764-RE1 22201
22:23:28.676 [shieldequalizercapacitors]: Shark: Shreck: shields: 191.1/191.1, Capacitors: 0/0
22:23:29.836 [power_to_engines]: Weapons online, maxSpeed from 552 to 368, cruiseSpeed 296
22:23:29.836 [LogEvents]: weapons systems toggled to 1 /***** decided to fight
22:23:31.031 [telescope]: shipTargetAcquired, just targetted: [Ship "GalCop Cobra Enforcer" position: (-5.40539e+06, 267796, 483696) scanClass: CLASS_POLICE status: STATUS_IN_FLIGHT]
22:23:31.035 [LogEvents]: targeted GalCop Cobra Enforcer: YMN949-RE1 3123 who has 380 energy
22:23:32.658 [BountySystem_Core]: adding unspecified for 'seen by police', delta 7
22:23:32.658 [BountySystem_Core]: adding offence: unspecified_small
22:23:32.658 [BountySystem_Core]: bounty 7, change 7, reason seen by police
22:23:32.659 [LogEvents]: bounty is changed by 7 to 7 due to seen by police
22:23:32.659 [BountySystem_Core]: bounty 7, change 0, reason seen by police
22:23:32.659 [BountySystem_Core]: adding offence: attacked police
22:23:32.659 [BountySystem_Core]: bounty 15, change 8, reason attacked police
22:23:32.660 [LogEvents]: bounty is changed by 8 to 15 due to attacked police
22:23:32.660 [LogEvents]: attacked GalCop Cobra Enforcer: YMN949-RE1 3123 who has 360 energy
How can I be sure I was really clean and there was no other off-system offense? It's not the most transparent of things, but when I paid the fines for my last off-system offense (shooting the main station... I needed fugitive status to be able to dock in a Renegade station, and just attacking police wouldn't do) it was at the BountySystem Galcop Seurity Office in the main station and I went there again and checked if I really was clean afterwards and I haven't changed systems since then; I have a MFD that shows, among other things, my legal status and bounty (from Player.legalStatus and Player.bounty) and it was clean, bounty=o until I decided to fight back; and the log shows the first bounty increase was from 0.

Looking at the GalCop Security Kiosk (from BountySystem OXP) in the station I'm docked now, I see only the bounty for the event you see in the log above (and the events and bounty I've earned by hunting down that GalCop patrol to the last Viper... :evil: all local offences)
User avatar
Milo
---- E L I T E ----
---- E L I T E ----
Posts: 466
Joined: Mon Sep 17, 2018 5:01 pm

Re: IronHide OXP

Post by Milo »

OK, that first message in your log is a police beginningAttack message (not a hunter beginningFight message like the other one was).

It is sent either from Priority AI routine behaviourDestroyCurrentTarget or from Priority AI routine behaviourRepelCurrentTarget.

First possibility: behaviourCommenceAttackOnCurrentTarget sends a beginningFight type message first, and then calls behaviourDestroyCurrentTarget ... but police only enter the behaviourCommenceAttackOnCurrentTarget routine as I described earlier, which doesn't fit your case with zero bounty. And I do not see this routine being used by any of my current OXPs.

Second possibility: behaviourRepelCurrentTarget is not used by the policeAI script, but it is used by the defenseShipAI (which will be the AI script used by police launched from a station if the station takes energy damage; I also see launchPolice is called from astromineAI.plist from Commies OXP [on red alert condition] and by militaryFiascoCarrierAI.plist among my OXPs [on low energy condition]). So if your police was a defense ship, it could have followed this path. Additionally, among my current OXPs, behaviourRepelCurrentTarget is used by a few, but not for any police ships.

If it was a defense ship, the two AI blocks that could follow that path are:

Code: Select all

		{
			condition: ai.conditionInCombat, // this.ship.alertCondition==3
			configuration: ai.configurationAcquireCombatTarget,
			behaviour: ai.behaviourRepelCurrentTarget,
			reconsider: 5
		},
		{
			condition: ai.conditionMothershipIsAttackingHostileTarget,
			configuration: ai.configurationAcquireCombatTarget,
			behaviour: ai.behaviourRepelCurrentTarget,
			reconsider: 5
		},
Since you said they were fighting a fugitive, the first block's conditionInCombat would be true, but I'm not sure if Priority AI always uses the first matching block? For the second block, the condition is:

Code: Select all

PriorityAIController.prototype.conditionMothershipIsAttackingHostileTarget = function()
{
	if (this.ship.group && this.ship.group.leader != this.ship)
	{
		var leader = this.ship.group.leader;
		if (leader && leader.target && this.isFighting(leader) && this.isAggressive(leader.target) && this.distance(leader.target) < this.scannerRange)
		{
			return true;
		}
	}
	return false;
}

Code: Select all

PriorityAIController.prototype.isFighting = function(ship)
{
	if (ship.isPlayer)
	{
		return !ship.isFleeing; // have to assume aggressive
	}
	return ship && ship.target && ship.hasHostileTarget;
}

Code: Select all

PriorityAIController.prototype.isAggressive = function(ship)
{
	if (ship && ship.isPlayer)
	{
		return !ship.isFleeing;
	}
	return ship && ship.hasHostileTarget && !ship.isFleeing && !ship.isDerelict;
}
The police were in a group, they had a leader, the leader probably had a hostile target (the fugitive), so isFighting was true, and the fugitive (leader.target) probably was isAggressive (had a hostile target, was not fleeing, was not derelict). So the second block's condition would be met.

Target acquisition is the same for both:

Code: Select all

PriorityAIController.prototype.configurationAcquireCombatTarget = function()
{
	var target = this.ship.target;
	if (target && this.allied(this.ship,target))
	{
		// don't shoot at allies even if they have ended up as a target...
		this.ship.removeDefenseTarget(target);
		this.ship.target = null;
	}
	if (target && (target.scanClass == "CLASS_CARGO" || target.scanClass == "CLASS_BUOY"))
	{
		if (target.isShip)
		{
			this.ship.removeDefenseTarget(target);
		}
		this.ship.target = null;
	}
	/* Iff the ship does not currently have a target, select a new one
	 * from the defense target list. */
	if (target)
	{
		if (target.isInSpace)
		{
			return;
		}
		if (this.ship.target.isShip)
		{
			this.ship.removeDefenseTarget(target);
		}
		this.ship.target = null;
	}
	var dts = this.ship.defenseTargets
	var dtsl = dts.length; // we need to iterate up this time
	var scan = this.scannerRange;
	for (var i = 0; i < dtsl ; i++)
	{
		if (this.distance(dts[i]) < scan)
		{
			if (!dts[i].isCloaked)
			{
				this.ship.target = dts[i];
				return;
			}
		}
		else
		{
			this.ship.removeDefenseTarget(dts[i]);
		}
	}
	if (this.ship.group != null)
	{
		var gs = this.ship.group.ships;
		for (var i = gs.length-1 ; i >= 0 ; i--)
		{
			if (gs[i] != this.ship)
			{
				if (this.isFighting(gs[i]) && this.distance(gs[i].target) < scan && gs[i].target.isShip)
				{
					this.ship.target = gs[i].target;
					return;
				}
			}
		}
	}
	if (this.ship.escortGroup != null)
	{
		var gs = this.ship.escortGroup.ships;
		for (var i = gs.length-1 ; i >= 0 ; i--)
		{
			if (gs[i] != this.ship)
			{
				if (this.isFighting(gs[i]) && this.distance(gs[i].target) < scan && gs[i].target.isShip)
				{
					this.ship.target = gs[i].target;
					return;
				}
			}
		}
	}
}
To summarize:

1. Use current target, if not allied, not cargo, not buoy and isInSpace
2. Use the first non-cloaked defense target
3. Use the target of another member of its ship group that isFighting and is within scanner range
4. If an escort group, same concept applied to another member of the escort group

Of all these, I would consider most likely that you were somehow the current target or on the defense target list.

But wait. defenseShipAI sets ai.setCommunicationsRole("defenseShip");

So I think I was mistaken, defenseShipAI even though they are police would not send the message you saw. Back to square one.
dybal
---- E L I T E ----
---- E L I T E ----
Posts: 499
Joined: Mon Feb 10, 2020 12:47 pm

Re: IronHide OXP

Post by dybal »

There was a group pursuing and shooting at a fugitive, but that one was around 50km away and getting farther, so I gave up trying to reach them before the fugitive as blown. That was when I heard the sounds of someone shooting at me, pressed [comm log key] and saw the message from the Viper, and started seeing laser shots going by, looked at my status MFD and saw I was clean, and decided to run (I wouldn't be welcome at Jaguar Co. Base as a offender :x ).

Today looking at the log I saw that the Viper that commed me and the first one to attack me weren't the same, but they were at least 2 scanner ranges away from the group engaging the fugitive (I could see them courtesy of Telescope, but NPCs shouldn't)
Last edited by dybal on Thu Jul 16, 2020 1:51 am, edited 1 time in total.
User avatar
Milo
---- E L I T E ----
---- E L I T E ----
Posts: 466
Joined: Mon Sep 17, 2018 5:01 pm

Re: IronHide OXP

Post by Milo »

If you look earlier in the log, were any messages sent to you before that one?
dybal
---- E L I T E ----
---- E L I T E ----
Posts: 499
Joined: Mon Feb 10, 2020 12:47 pm

Re: IronHide OXP

Post by dybal »

Messages from the episode (I remember seeing the one at 22:18:00.417 around the time I id-ed the group were they were shooting to identify the fugitive, the others after that were to me for sure):

Code: Select all

22:17:45.579 [LogEvents]: got message from GalCop Viper: XEB382-RE1 1765 : Mamba: Samba of the Chimera, you are in breach of Cooperative law. Leave the system or be destroyed.
22:17:45.581 [LogEvents]: got message from GalCop Viper Interceptor: TJB299-RE1 17563 : Locked on to the Mamba and commencing attack run.
22:17:45.630 [LogEvents]: got message from GalCop Sheriff: ESP171-RE1 27016 : Cobra Mark I: Essoiscear's Vermillion Poison, you are in breach of Cooperative law. Leave the system or be destroyed.
22:17:45.679 [LogEvents]: got message from GalCop Viper Interceptor: LRJ406-RE1 9137 : No-one commits a crime on my spacelane!
22:17:45.719 [LogEvents]: got message from GalCop Viper Interceptor: CZY764-RE1 22201 : Locked on to the Mamba and commencing attack run.
22:17:45.797 [LogEvents]: got message from GalCop Viper: KLT225-RE1 11201 : No-one commits a crime on my spacelane!
22:17:45.798 [LogEvents]: got message from GalCop Viper: XWR469-RE1 27872 : No-one commits a crime on my spacelane!
22:17:45.801 [LogEvents]: got message from "Red Knights Squadron" Viper: IUB724-RE1 21284 : Have some of this!
22:17:45.802 [LogEvents]: got message from "Red Knights Squadron" Viper: CRP934-RE1 21101 : Have some of this!
22:17:45.844 [LogEvents]: got message from GalCop Viper Interceptor: DHT099-RE1 6877 : Mamba: Samba of the Chimera, you are in breach of Cooperative law. Leave the system or be destroyed.
22:17:45.846 [LogEvents]: got message from GalCop Viper: HPN872-RE1 3582 : Locked on to the Mamba and commencing attack run.
22:17:46.014 [LogEvents]: got message from GalCop Viper: DUM671-RE1 21068 : Eat laser, criminal!
22:17:46.091 [LogEvents]: got message from GalCop Viper: VAL635-RE1 9553 : Criminal status confirmed on the Mamba: Samba of the Chimera. Weapons are armed.
22:17:46.131 [LogEvents]: got message from GalCop Viper: ZEK268-RE1 62 : Die, pirate!
22:17:46.189 [LogEvents]: got message from GalCop Cobra Enforcer: YMN949-RE1 3123 : Have some of this!
22:17:46.275 [LogEvents]: got message from GalCop Viper: GEE454-RE1 2637 : You'll be space-dust!
22:17:46.277 [LogEvents]: got message from Kirin Military Transport: OJY749-RE1 19986 : Locked on to the Cobra Mark I and commencing attack run.
22:17:46.323 [LogEvents]: got message from "Red Knights Squadron" Viper: SFU985-RE1 27789 : Die, pirate!
22:17:58.296 [LogEvents]: got message from Mamba: Samba of the Chimera 26140 : Let me go, please!
22:18:00.417 [LogEvents]: got message from GalCop Cobra Enforcer: YMN949-RE1 3123 : See how you like these odds! 
22:18:36.900 [LogEvents]: got message from GalCop Viper Interceptor: JND883-RE1 30686 : Shreck, you are in breach of Cooperative law. Leave the system or be destroyed.
22:18:54.274 [LogEvents]: got message from GalCop Viper Interceptor: LRJ406-RE1 9137 : Die, pirate!
22:21:36.973 [LogEvents]: got message from GalCop Cobra Enforcer: YMN949-RE1 3123 : If you're hanging on for help, it's not coming.
22:22:37.207 [LogEvents]: got message from GalCop Cobra Enforcer: YMN949-RE1 3123 : You won't live to regret your law-breaking!
22:23:37.382 [LogEvents]: got message from GalCop Cobra Enforcer: YMN949-RE1 3123 : Eat laser, criminal!
22:24:54.837 [LogEvents]: got message from GalCop Viper Interceptor: CZY764-RE1 22201 : Solo, your breaches of Cooperative law have been noted. Dock with the main station to pay your fines at the earliest opportunity.
22:25:04.456 [LogEvents]: got message from GalCop Viper Interceptor: CZY764-RE1 22201 : I'm taking too much damage!
22:25:39.532 [LogEvents]: got message from GalCop Viper Interceptor: OKC344-RE1 3515 : Missile fired at the criminal Shark. Refrain from ECM use if possible.
User avatar
Milo
---- E L I T E ----
---- E L I T E ----
Posts: 466
Joined: Mon Sep 17, 2018 5:01 pm

Re: IronHide OXP

Post by Milo »

I'm not seeing anything to explain this. The 22:18:00 message is a thanksForHelp message type, which they send when someone that was attacking them is attacked in turn by someone else enough to make it switch targets to that other attacker. I guess that wasn't you, so they were probably thanking each other. It was also 36 seconds before they got mad at you.
User avatar
Josef
Competent
Competent
Posts: 60
Joined: Sat May 29, 2021 6:20 pm
Location: Wien

Re: IronHide OXP

Post by Josef »

Hi everybody here,
there exist an military Upgrade for the Iron Hide on TL 10. Does anybody know, how much that costs?
Josef
User avatar
cbr
---- E L I T E ----
---- E L I T E ----
Posts: 1390
Joined: Thu Aug 27, 2015 4:24 pm

Re: IronHide OXP

Post by cbr »

Code: Select all

(
	9, 
	7500, 
	"IronHide Armour Military Upgrade", 
	"EQ_IRONHIDE_MIL", 
	"Upgrade your IronHide to military specifications - doubles the damage resistance.", 
		{
		"available_to_all" = true;
		"requires_equipment" = "EQ_IRONHIDE";
		script_info = { ironHideStrength = 400; };
		"conditions" = 
			(
			"mission_ironHide_percentage equal 100",
			"mission_ironHide_milFlag equal 0"
			);
		}
	),
the code says 7500 credits
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4656
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: IronHide OXP

Post by phkb »

cbr wrote: Thu Jun 03, 2021 6:41 am
7500 credits
That’s deci credits, so the actual cost is 750cr.
User avatar
Cholmondely
Archivist
Archivist
Posts: 5009
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: IronHide OXP

Post by Cholmondely »

phkb wrote: Thu Jun 03, 2021 8:05 am
cbr wrote: Thu Jun 03, 2021 6:41 am
7500 credits
That’s deci credits, so the actual cost is 750cr.
I would have expected the cost to be more - and I would have expected the fitting time to be much more (it is physical and involves mucking about with the entire outside of the ship).

Ditto by the way for the Cargo Expansion in the Vanilla game. I would have expected a much longer period of time to muck about with the insides of my cobra, moving the bulkheads, rearranging the wiring etc. It's mainly physical "grunt-work" which is why it only needs TL2 to do! If there are thousands of people working in the shipyards with the necessary security clearances, maybe fair enough (if they don't get in each other's way). I doubt it!
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cmdr James
Commodore
Commodore
Posts: 1357
Joined: Tue Jun 05, 2007 10:43 pm
Location: Berlin

Re: IronHide OXP

Post by Cmdr James »

Cholmondely wrote: Thu Jun 03, 2021 9:04 am
Ditto by the way for the Cargo Expansion in the Vanilla game. I would have expected a much longer period of time to muck about with the insides of my cobra, moving the bulkheads, rearranging the wiring etc. It's mainly physical "grunt-work" which is why it only needs TL2 to do! If there are thousands of people working in the shipyards with the necessary security clearances, maybe fair enough (if they don't get in each other's way). I doubt it!
The way the auto industry is moving, I half expect the expanded cargo bay to simply be a software update that allows access to already existing capacity. After all its cheaper to make all Cobra 3s the same and simply disable half the storage space than it is to...

Alternatively, and more likely considering the vintage of the canon: 15t of storage neednt be very big, 1t of water is a cubic meter so even with kit for moving the barrels about we are probably only looking at 30m3 or so which on a ship 130m wide and 30m high is trivial. It could well be as simple as extending the rails for the cargo management system so it can use all the space rather than leaving an area at the back that is otherwise unusable for cargo but makes a handy space for a ping pong table or weights room or whatever for the crew.

On the other hand, there is some dicsussion on this forum of a TC not being a tonne at all but being about 214 cubic meters which would make the extention about 200 times bigger and no longer sounds like something to be done while you have a coffee.
Post Reply