Difference between revisions of "Randomshipnames OXP"

From Elite Wiki
(updated to v 1.1 and added more screen shots)
(Updating BB links)
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Introduction ==
+
[[File:Randomname01.png|thumb|right|500px|A trade ship with a name]]
 +
[[File:Randomname02.png|thumb|right|500px|A lurking pirate]]
 +
[[File:Randomname03.png|thumb|right|500px|Another trader. He seems to have illicit cargo on board]]
 +
[[File:Randomname04.png|thumb|right|500px|A big trade ship making a statement]]
 +
[[File:Randomname05.png|thumb|right|500px|A pirate doing the same]]
 +
[[File:Randomname06.png|thumb|right|500px|One of GalCop's finest]]
 +
[[File:Randomname07.png|thumb|right|500px|It's clear who is the boss in here]]
 +
This [[OXP]] adds randomly generated names to almost all normal ship classes (except Thargoids) & Rock Hermits in Oolite.
 +
== Overview ==
 +
Randomshipnames.oxp does exactly what it says on the tin: assigning randomly generated names to the ships you meet in your Ooniverse. The names can give a hint as to what sort of ship it is!
  
This OXP adds randomly generated names to almost all normal ship classes (except Thargoids) in Oolite.
+
This OXP also names [[Rock Hermit]]s.
  
== Overview ==
+
A big "thank you" goes to [[User:Disembodied|Disembodied]] for not only coming up with useful naming schemes, but also providing huge word lists as fodder for the random generator.
  
Randomshipnames.oxp does exactly what it says on the tin: assigning randomly generated names to the ships you meet in your Ooniverse. A big thank you goes to "Disembodied" for not only coming up with useful naming schemes, but also providing huge word lists as fodder for the random generator.
+
=== Note ===
 +
Some OXPs already name their ships independently (''eg''. [[Liners]], [[Vortex]] & [[Behemoth]]).
  
 
== Minimum Requirements ==
 
== Minimum Requirements ==
 +
Randomshipnames.oxp requires at least Oolite 1.77.
  
Randomshipnames.oxp requires at least Oolite 1.75.
+
== Installation ==
 +
*Now downloadable through the in-game [[Expansions Manager]].
 +
*[[Media:Randomshipnames.1.6.oxz|Randomshipnames.1.6.oxz‎]] (downloaded {{#downloads:Randomshipnames.1.6.oxz‎}} times).
 +
*Randomshipnames.oxp v 1.4 is available for download via [https://app.box.com/s/l3xemuvjlii619yy038k box.com].
  
== Download Location ==
+
Move or copy the file randomshipnames1.4.oxp from its download folder into your AddOns folder. Where that resides depends on your installation. Make sure to remove any previous versions. Restart Oolite.
  
Randomshipnames.oxp v 1.1 is available for download via [http://www.box.com/s/5be5954d4db458422dd9 box.com].
+
----
 +
== The Dark Side ==
 +
=== Disabling/enabling random naming (note to ship designers) ===
  
== Installation ==
+
You can exclude any ship of yours from getting a random name through this OXP. You can do this by using the script_info-key in shipdata.plist. Insert a value named randomshipnames and set it to no. Now your ship won't get a name through this OXP.
 +
 
 +
If you want to copy and paste, this is what it looks like in OpenStep:
 +
"script_info" =         {
 +
    "randomshipnames" = "no";
 +
};
 +
 
 +
And this is what it looks like in XML:
 +
<key>script_info</key>
 +
<dict>
 +
<key>randomshipnames</key>
 +
<string>no</string>
 +
</dict>
 +
 
 +
In the same way you can include a ship with a custom role in one of the categories used by this OXP by setting the same script_info-key to one of the following values:
 +
"script_info" =         {
 +
    "randomshipnames" = "trader";
 +
};
 +
"script_info" =        {
 +
    "randomshipnames" = "hunter";
 +
};
 +
"script_info" =        {
 +
    "randomshipnames" = "pirate";
 +
};
 +
"script_info" =        {
 +
    "randomshipnames" = "rockhermit";
 +
};
 +
"script_info" =        {
 +
    "randomshipnames" = "police";
 +
};
 +
"script_info" =        {
 +
    "randomshipnames" = "military";
 +
};
 +
Then it will get a random name just like the other ships in the same category.
 +
 
 +
=== Using the naming engine for your own ships ===
 +
 
 +
Sometimes you may want to use randomshipnames' naming engine in your own script. This is also possible. You can call the naming functions from any script like this:
 +
worldScripts.randomshipnames.$randomTraderName(ship) // returns a random name for a trader or other civilian ship
 +
worldScripts.randomshipnames.$randomHunterName(ship) // returns a random name for a hunter, escort, or any aggressive, but not malevolent ship
 +
worldScripts.randomshipnames.$randomPirateName(ship) // returns a random name for a pirate, or any aggressive and malevolent ship
 +
worldScripts.randomshipnames.$randomRockhermitName(ship) // returns a random name for a rockhermit, or another stationary object
 +
worldScripts.randomshipnames.$randomPoliceName(ship) // returns a random numbers-and-letter designation for a police or military ship
 +
All naming functions take a ship object as parameter.
  
Move or copy the file randomshipnames1.1.oxp from its download folder into your AddOns folder. Where that resides depends on your installation. Make sure to remove any previous versions. Restart Oolite.
+
=== Attaching external name engines ===
  
== Examples ==
+
Following a [https://bb.oolite.space/viewtopic.php?f=4&t=11737&start=120#p224942 request] you can define your own ship names based on [http://wiki.alioth.net/index.php/Oolite_JavaScript_Reference:_Ship#primaryRole primaryRole]. An example:
  
<gallery>
+
this.name="numberedcoriolis";
Image:Randomname01.png|A trade ship with a name.
+
this.startUp = function() {
Image:Randomname02.png|A lurking pirate.
+
        var w = worldScripts.randomshipnames;
Image:Randomname03.png|Another trader. He seems to have illicit cargo on board.
+
        if( w ) w.$externalNameEngine(this.name, "coriolis", 1);
Image:Randomname04.png|A big trade ship making a statement.
+
}
Image:Randomname05.png|A pirate doing the same.
+
this.$randomName = function(ship) {
Image:Randomname06.png|One of GalCop's finest.
+
        return(ship.displayName+": "+ship.entityPersonality);
Image:Randomname07.png|It's clear who is the boss in here.
+
}
</gallery>
+
The first parameter of $externalNameEngine is the name of your worldScript, second is the primary role of the ships you rename in your $randomName function. Third is the probability of the callback between 0 and 1 where 1 mean always, 0.1 mean only the 10% of ships with the given primaryRole will be named by your function, others will get names from randomshipnames.
  
 +
== Links ==
 +
*[https://bb.oolite.space/viewtopic.php?f=4&t=11737 BB Discussion Thread] (2012-date)
 +
*[https://bb.oolite.space/viewtopic.php?f=4&t=11543 Randomshipnames.oxp preview] (2012)
 +
*[[User:Commander McLane|Commander McLane]] - author of this OXP
 +
=== Other versions ===
 +
*[https://bb.oolite.space/viewtopic.php?f=2&t=10205 Name that Anaconda!] (2011) - real names rather than randomly generated ones
 +
*[[Random Player/Ship Name]] OXP by Spara (for registering your own ship)
 +
*Random Station Names OXP - now part of [[The Galactic Almanac OXZ]]
  
 
{{ambience-OXP}}
 
{{ambience-OXP}}

Latest revision as of 02:39, 29 February 2024

A trade ship with a name
A lurking pirate
Another trader. He seems to have illicit cargo on board
A big trade ship making a statement
A pirate doing the same
One of GalCop's finest
It's clear who is the boss in here

This OXP adds randomly generated names to almost all normal ship classes (except Thargoids) & Rock Hermits in Oolite.

Overview

Randomshipnames.oxp does exactly what it says on the tin: assigning randomly generated names to the ships you meet in your Ooniverse. The names can give a hint as to what sort of ship it is!

This OXP also names Rock Hermits.

A big "thank you" goes to Disembodied for not only coming up with useful naming schemes, but also providing huge word lists as fodder for the random generator.

Note

Some OXPs already name their ships independently (eg. Liners, Vortex & Behemoth).

Minimum Requirements

Randomshipnames.oxp requires at least Oolite 1.77.

Installation

Move or copy the file randomshipnames1.4.oxp from its download folder into your AddOns folder. Where that resides depends on your installation. Make sure to remove any previous versions. Restart Oolite.


The Dark Side

Disabling/enabling random naming (note to ship designers)

You can exclude any ship of yours from getting a random name through this OXP. You can do this by using the script_info-key in shipdata.plist. Insert a value named randomshipnames and set it to no. Now your ship won't get a name through this OXP.

If you want to copy and paste, this is what it looks like in OpenStep:

"script_info" =         {
    "randomshipnames" = "no";
};

And this is what it looks like in XML:

<key>script_info</key>
<dict>
	<key>randomshipnames</key>
	<string>no</string>
</dict>

In the same way you can include a ship with a custom role in one of the categories used by this OXP by setting the same script_info-key to one of the following values:

"script_info" =         {
    "randomshipnames" = "trader";
};
"script_info" =         {
    "randomshipnames" = "hunter";
};
"script_info" =         {
    "randomshipnames" = "pirate";
};
"script_info" =         {
    "randomshipnames" = "rockhermit";
};
"script_info" =         {
    "randomshipnames" = "police";
};
"script_info" =         {
    "randomshipnames" = "military";
};

Then it will get a random name just like the other ships in the same category.

Using the naming engine for your own ships

Sometimes you may want to use randomshipnames' naming engine in your own script. This is also possible. You can call the naming functions from any script like this:

worldScripts.randomshipnames.$randomTraderName(ship) // returns a random name for a trader or other civilian ship
worldScripts.randomshipnames.$randomHunterName(ship) // returns a random name for a hunter, escort, or any aggressive, but not malevolent ship
worldScripts.randomshipnames.$randomPirateName(ship) // returns a random name for a pirate, or any aggressive and malevolent ship
worldScripts.randomshipnames.$randomRockhermitName(ship) // returns a random name for a rockhermit, or another stationary object
worldScripts.randomshipnames.$randomPoliceName(ship) // returns a random numbers-and-letter designation for a police or military ship

All naming functions take a ship object as parameter.

Attaching external name engines

Following a request you can define your own ship names based on primaryRole. An example:

this.name="numberedcoriolis";
this.startUp = function() {
       var w = worldScripts.randomshipnames;
       if( w ) w.$externalNameEngine(this.name, "coriolis", 1);
}
this.$randomName = function(ship) {
       return(ship.displayName+": "+ship.entityPersonality);
}

The first parameter of $externalNameEngine is the name of your worldScript, second is the primary role of the ships you rename in your $randomName function. Third is the probability of the callback between 0 and 1 where 1 mean always, 0.1 mean only the 10% of ships with the given primaryRole will be named by your function, others will get names from randomshipnames.

Links

Other versions