Difference between revisions of "Personalities OXP"

From Elite Wiki
(Adding yourself as a character: Added and fixed tables about script_info and couple other things)
(Updating BB links)
 
(9 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
[[File:Lestradae.png|right|400px]]
 
[[File:Lestradae.png|right|400px]]
 
== Overview ==
 
== Overview ==
This [[OXP]] adds characters we all know and love from the [http://www.aegidian.org/bb Oolite Bulletin Boards] to the Ooniverse. Each personality has some specific behaviour and communication patterns.
+
This [[OXP]] adds characters we all know and love from the [https://bb.oolite.space Oolite Bulletin Boards] to the Ooniverse. Each personality has some specific behaviour and communication patterns.
  
 
== Notable Features ==
 
== Notable Features ==
Line 14: Line 14:
 
== Notes on original version 0.9 (2009)==
 
== Notes on original version 0.9 (2009)==
 
=== DISCLAIMER ===
 
=== DISCLAIMER ===
Personalities.oxp is a '''work in progress''', and this version 0.9 is meant as a sneak preview, to give you a feeling what it looks like. It works as it is, but the final release may be different. Please help improving it by reporting bugs and strange or unexpected behaviour in [http://aegidian.org/bb/viewtopic.php?t=6806 its thread on the Oolite Bulletin Boards]. Thanks very much!
+
Personalities.oxp is a '''work in progress''', and this version 0.9 is meant as a sneak preview, to give you a feeling what it looks like. It works as it is, but the final release may be different. Please help improving it by reporting bugs and strange or unexpected behaviour in [https://bb.oolite.space/viewtopic.php?t=6806 its thread on the Oolite Bulletin Boards]. Thanks very much!
  
=== How do I remove my own character? ===
+
----
  1) Open the shipdata.plist inside the "Config" folder.
+
== Tales from the spacelanes... ==
  2) Look for the entry "personalities-<yourname>".
+
  3a) Remove it completely.
+
I'd stopped off at a [[Space Bar]] for a quick beverage and perhaps news of a tempting contract in the vicinity and was rather pleased to find a valuable bounty target en route to my next destination. A few jumps later and I was sharing a system with potentially 8000 buckshee credits.
  or
+
  3b) Go to its "roles" key, and delete the roles "personalities" and "personalities_launcher".
+
  As the system was an Anarchy I had to splash a couple of pirate groups as I torused towards the station and just as I'd finished off the second group I received word that my target had been liquidated by someone else. Foul language may have been employed at this point.
 +
   
 +
Making the best of the situation I headed for the station to refuel and offload cargo. I dropped out of Torus a few seconds later when I encountered of all things [[User:Wyvern|Commander Wyvern]] in his Caddy Omega heading towards the witchpoint. Suddenly I had my suspicions of exactly who had snaffled my 8000Cr.
 +
   
 +
These suspicions were confirmed when shortly after passing Wyvern I encountered the remnants of my targets escorts. Clearly the meagre bounties on these peons had been beneath the notice of the mighty Caddy.
 +
   
 +
  The moral of the story? No matter your combat rating or how high you might stand in the [[Bounty Hunter Guild|bounty hunters' guild]], there's always someone in the eight charts with a sharper killer instinct than you. Travel safely friends and watch your six. [https://bb.oolite.space/viewtopic.php?p=127521#p127521 Loxley (2011)]
 +
 
 +
----
 +
== Instructions ==
  
=== Adding yourself as a character ===
+
=== How do I add myself as a character? ===
 +
<span id="Adding_yourself_as_a_character"></span> <!-- To keep old links to this section working -->
 
<!--TODO:  
 
<!--TODO:  
* hide it under spoiler  
+
* hide it under spoiler - DONE
* add note that this is rather docs / an instruction in case if they want to do it completely by themself
+
* add note that this is rather docs / an instruction in case if they want to do it completely by themself - DONE
* move instructions how remove / add in new section  
+
* move instructions how remove / add in new section - DONE
 +
* make tables with behavior options have same width
 +
* add example of using behavior options
 +
* add list oxp to list of other oxp's that can be used
 
-->
 
-->
 +
'''Note:''' Take this instruction not as a “do it all yourself”, but rather as a reference in case you want to tweak something for yourself (or, well, do everything all yourself). You can always ask for help in the [https://bb.oolite.space/viewtopic.php?f=4&t=6806 BB thread] or even just leave a request there to be added.
 +
 +
You can do this either by modifying this OXP or by creating a separate one, but in any case, you will need at least basic knowledge of how to work on them. It is still preferable to be separate, but still choose as you like or can! A good starting point and reference would be [[OXP_howto|OXP howto]].
 +
 +
 +
<div class="mw-collapsible mw-collapsed custom-collapsible-left-toggle"  data-expandtext="Expand Instruction" data-collapsetext="Collapse Instruction" style="overflow:auto;">
 
'''Make an entry about your ship in [[shipdata.plist|shipdata.plist]]'''
 
'''Make an entry about your ship in [[shipdata.plist|shipdata.plist]]'''
 
#As a base you can take a entry from the game files or OXP or, if your ship is from OXP, from its files.
 
#As a base you can take a entry from the game files or OXP or, if your ship is from OXP, from its files.
Line 105: Line 124:
 
|-  
 
|-  
 
! Key
 
! Key
 +
! Key meaning / commentary
 
! Value
 
! Value
! Meaning
+
! Value meaning / commentary
 
|-  
 
|-  
 
| name
 
| name
 +
| internal identifier, required
 +
|
 
|  
 
|  
| internal identifier for the character's chatter
 
 
|-  
 
|-  
 
| displayName
 
| displayName
 +
| the character's human readable name
 +
|
 
|  
 
|  
| the character's human readable name
 
 
|-  
 
|-  
 
| attacked
 
| attacked
 +
| what to do when attacked
 
| "flee"
 
| "flee"
 
| lets the ship flee with injectors immediatly if attacked
 
| lets the ship flee with injectors immediatly if attacked
 
|-  
 
|-  
 
| attackProbability
 
| attackProbability
 +
| chance of finding the ship's prey (see below) with each scan
 
| number in range [0; 1]
 
| number in range [0; 1]
| chance of finding the ship's prey (see below) with each scan
+
|  
 
|-  
 
|-  
 
| cargoType
 
| cargoType
 +
| special cargo carried by the ship (e.g. "missilepod")
 
| role
 
| role
| special cargo carried by the ship (e.g. "missilepod")
+
|  
 
|-  
 
|-  
 
| rowspan="3" | energyDown
 
| rowspan="3" | energyDown
 +
| what to do in combat when energy is less than 1/2 (shield down)
 
| "flee"
 
| "flee"
| lets the ship flee with injectors, if its energy is down to 1/2 (= shields depleted)
+
| lets the ship flee with injectors
 
|-  
 
|-  
 +
|
 
| "jump"
 
| "jump"
| lets the ship jump out, if its energy is down to 1/2 (= shields depleted)
+
| lets the ship jump out
 
|-  
 
|-  
 +
|
 
| "cloak"
 
| "cloak"
| lets the ship only use its cloak if its energy is down to 1/2 (= shields depleted)
+
| lets the ship only use its cloak if its shields depleted
 
|-  
 
|-  
 
| rowspan="2" | energyLow
 
| rowspan="2" | energyLow
 +
| rowspan="2" | what to do in combat when energy is less than 1/4
 
| "flee"
 
| "flee"
| lets the ship flee with injectors, if its energy is down to 1/4
+
| lets the ship flee with injectors
 
|-  
 
|-  
 
| "jump"
 
| "jump"
| lets the ship jump out, if its energy is down to 1/4
+
| lets the ship jump out
 
|-  
 
|-  
 
| rowspan="2" | launch
 
| rowspan="2" | launch
 +
| rowspan="2" | what to do after launch from the main station
 
| "jump"
 
| "jump"
| lets the ship jump out of the system, after launching from the main station
+
| jump to another system
 
|-  
 
|-  
 
| "stay"
 
| "stay"
| lets the ship set course to the witchpoint, after launching from the main
+
| keep in this system
 
|-  
 
|-  
 
| maxCargo
 
| maxCargo
 +
| the maximum number of cargopods spawned if the ship dies
 
| integer
 
| integer
| the maximum number of cargopods spawned if the ship dies
+
|  
 
|-  
 
|-  
 
| miningProbability
 
| miningProbability
 +
| chance of finding asteroids with each scan (only if no prey found) and mining them
 
| rowspan="3" | number in range [0; 1]
 
| rowspan="3" | number in range [0; 1]
| chance of finding asteroids with each scan (only if no prey found) and mining them
+
|  
 
|-  
 
|-  
 
| fuelstationProbability
 
| fuelstationProbability
 
| chance of using the fuel station (if any), if spawned at witchpoint
 
| chance of using the fuel station (if any), if spawned at witchpoint
 +
|
 
|-  
 
|-  
 
| sunskimProbability
 
| sunskimProbability
 
| chance of going to the sun first, if spawned at witchpoint
 
| chance of going to the sun first, if spawned at witchpoint
 +
|
 
|-  
 
|-  
 
| rowspan="4" | prey
 
| rowspan="4" | prey
 +
| rowspan="4" | who to hunt
 
| "traders"
 
| "traders"
 
| (privateers only) will only attack ships which are victims
 
| (privateers only) will only attack ships which are victims
Line 180: Line 215:
 
|-  
 
|-  
 
| preyLimit
 
| preyLimit
 +
| (hunters only) bounty treshold for offenders (or fugitives) to be attacked
 
| integer
 
| integer
| (hunters only) bounty treshold for offenders (or fugitives) to be attacked
+
|
 
|}
 
|}
  
Line 208: Line 244:
 
|-
 
|-
 
| "destroy"
 
| "destroy"
| destroy the attacker, even if he no longer wants to fight
+
| destroy the attacker, even if they no longer wants to fight
 
|-
 
|-
 
| "repel"
 
| "repel"
Line 326: Line 362:
 
|  
 
|  
 
|}
 
|}
 +
  
 
'''Add communication messages into [[Misc_plists#descriptions.plist|description.plist]]'''
 
'''Add communication messages into [[Misc_plists#descriptions.plist|description.plist]]'''
# Add entry of what types of messages are used:
+
<div style="display: flex; flex-flow: row wrap; max-width: fit-content;"> <!-- The table is on the side if there is room, otherwise it below and centered -->
::<code>"personalities-''name''-messageTypes" = "attack attacked captured chatter dead flee jump kill launch witchspace"</code> - "name" here must be same as in '''script_info'''
+
<div>
 +
# Add entry of what types of messages are used, ''name'' below must be same as in '''script_info''':
 +
::<code>"personalities-''name''-messageTypes" = "attack attacked captured chatter dead flee jump kill launch witchspace"</code>
 
# Add the comms themselves:
 
# Add the comms themselves:
 
::<code>"personalities-''name''-attack" = ("Phrase to be sent when attack");</code>
 
::<code>"personalities-''name''-attack" = ("Phrase to be sent when attack");</code>
 
::<code>"personalities-''name''-attacked" = ("Either this phrase will be sent..", "or this one when ship attacked");</code>
 
::<code>"personalities-''name''-attacked" = ("Either this phrase will be sent..", "or this one when ship attacked");</code>
 
::<code>"personalities-''name''-chatter" = ("Also you can add...{pause: 5} some dramatic pauses!");</code>
 
::<code>"personalities-''name''-chatter" = ("Also you can add...{pause: 5} some dramatic pauses!");</code>
List of avalaible comms coming soon
+
</div>
 +
<div style="flex-grow: 1; margin-left: 20px">
 +
{| class="wikitable" style="vertical-align:middle; margin: auto"
 +
|+ List of available message types
 +
|-
 +
! Comms key
 +
! Full form (PriorityAI scripts)
 +
! Notes
 +
|-
 +
| attack
 +
| oolite_beginningAttack
 +
| Commencing an attack, repetitive
 +
|-
 +
| flee
 +
| oolite_startFleeing
 +
| Ship begins fleeing combat
 +
|-
 +
| jump
 +
| oolite_engageWitchspaceDriveFlee
 +
| Ship to escape from a fight via witchspace jump
 +
|-
 +
| kill
 +
| oolite_killedTarget
 +
| Current fight target destroyed
 +
|-
 +
| witchspace
 +
| oolite_engageWitchspaceDrive
 +
| Preparing to witchspace jump
 +
|-
 +
| greet
 +
| personalitiesOXP_greet
 +
| (Only with PriorityAI) First chatter
 +
|-
 +
| chatter
 +
| personalitiesOXP_chatter
 +
| Player nearby, repetitive
 +
|-
 +
| launch
 +
| personalitiesOXP_launch
 +
| Launched from a main station
 +
|-
 +
| attacked
 +
| personalitiesOXP_attacked
 +
| Someone hits the ship, repetitive
 +
|-
 +
| dead
 +
| personalitiesOXP_dead
 +
| Killed or ejected escape pod
 +
|-
 +
| captured
 +
| personalitiesOXP_captured
 +
| Escape pod unloaded at station
 +
|}
 +
</div>
 +
</div>
 +
 
 +
'''Note:''' With PriorityAI scripts you can also use any [[Oolite_Javascript_Reference:_PriorityAI_Documentation#Standard_Communications_Keys PriorityAI|standart comms key]] with or without <code>oolite_</code> prefix:
 +
"personalities-''name''-messageTypes" = "dockingWait oolite_selectedStation"; // In messageTypes entry types must be writen same as in descriptions key!
 +
"personalities-''name''-[[Oolite_Javascript_Reference:_PriorityAI_Documentation#oolite_dockingWait|dockingWait]]" = ("Complaints about tedious waiting for docking");
 +
"personalities-''name''-[[Oolite_Javascript_Reference:_PriorityAI_Documentation#oolite_selectedStation|oolite_selectedStation]]" = ("Phrase about going to check local ConStore");
 +
 
 +
If you have any questions or suggestions, don't hesitate to ask them in [https://bb.oolite.space/viewtopic.php?f=4&t=6806 BB thread] or send a PM to Alnivel.
 +
</div>
 +
---------------
 +
 
 +
*[https://bb.oolite.space/viewtopic.php?p=286858#p286858 Alnivel's 2022 instructions & comments]
  
If you have any questions or suggestions, don't hesitate to ask them in [http://oolite.aegidian.org/bb/viewtopic.php?f=4&t=6806 BB thread] or send a PM to Alnivel.
+
*[https://bb.oolite.space/viewtopic.php?p=287046#p287046 Post to Lestradae] with some suggestions for updating his character
  
*[http://oolite.aegidian.org/bb/viewtopic.php?p=286858#p286858 Alnivel's 2022 instructions & comments]
 
  
*[http://oolite.aegidian.org/bb/viewtopic.php?p=287046#p287046 Post to Lestradae] with some suggestions for updating his character
+
=== How do I remove my own character? ===
 +
# Open the shipdata.plist inside the "Config" folder.
 +
# Look for the entry "personalities-<yourname>".
 +
# Remove it completely '''OR''' Go to its "roles" key, and delete the roles with "personalities" and "personalities_launcher".
  
 
== Minimum Requirements ==
 
== Minimum Requirements ==
Line 347: Line 453:
  
 
== Download Location ==
 
== Download Location ==
[https://www.dropbox.com/s/93yfevfm182veqv/Personalities%20OXP.zip?dl=1 Personalities.oxp v 0.91] (2022)
+
[[Media:PersonalitiesOXP.zip|Personalities.oxp v 0.9.2]] (2022) <!-- (downloaded {{#downloads:PersonalitiesOXP.zip}} times) -->
 +
 
 
[http://app.box.com/shared/4h1n4j1dvy Personalities.oxp v 0.9] (2009) is available for download via Box.com.
 
[http://app.box.com/shared/4h1n4j1dvy Personalities.oxp v 0.9] (2009) is available for download via Box.com.
  
Line 358: Line 465:
  
 
== Version History ==
 
== Version History ==
 +
*version 0.9.2 (October, 2022)
 +
:new AI scripts, most personalities now use them
 +
:with new scripts [[Oolite_Javascript_Reference:_PriorityAI_Documentation#Standard_Communications_Keys|standard communications keys]] can be used (however, it makes sense to use only those that are used by AI), old comms keys still works
 +
:fixed a bug in plistAI scripts that caused the ships themselves to never attack
 +
:pauses can be added to comms messages: "The message will be split{pause: 12}and the second half will be sent with specified delay"
 +
:appearance can be limited through the list of roles:
 +
::1) "personalities personalities_privateer personalities_galaxy_any personalities_launcher_galaxy_any personalities_aodhan" -
 +
:::pirate by name "Aodhan" that can appear in any galaxy both in space and via launch from main station
 +
::2) "personalities personalities_cruiser personalities_galaxy_0 ppersonalities_galaxy_1 personalities_galaxy_2 personalities_jameson" -
 +
:::trader by name "Jameson" that can appear only in Galaxy One, Two and Three and only in space
 +
:added methods for setting callbacks at escape pod scooping and unloading
 +
:added method to adjust spawn weight (for galaxies) in case if someone suddenly decides to use 100 ship variants with a weight of (0.01) each
 +
 
*version 0.9.1 (September, 2022) by Alnivel
 
*version 0.9.1 (September, 2022) by Alnivel
:requires Oolite 1.9 (probably can work even on versions 1.82+, but not tested)
+
:requires Oolite 1.90 (probably can work even on versions 1.82+, but not tested)
 
:fixed several broken function calls
 
:fixed several broken function calls
 
:changed names of internal variables and resources to avoid conflicts
 
:changed names of internal variables and resources to avoid conflicts
Line 373: Line 493:
  
 
== Links ==
 
== Links ==
*[http://oolite.aegidian.org/bb/viewtopic.php?f=4&t=6806 Personalities.oxp] (2009 - date)
+
*[https://bb.oolite.space/viewtopic.php?f=4&t=6806 Personalities.oxp] (2009 - date)
*[http://oolite.aegidian.org/bb/viewtopic.php?f=4&t=6736 Forum Denizen OXPs] This seems to be the fons et origo of this oxp (2009)
+
*[https://bb.oolite.space/viewtopic.php?f=4&t=6736 Forum Denizen OXPs] This seems to be the fons et origo of this oxp (2009)
*[http://www.aegidian.org/bb/viewtopic.php?f=2&t=569 How would you like to appear as a Cameo in OOLite?] (2005)
+
*[https://bb.oolite.space/viewtopic.php?f=2&t=569 How would you like to appear as a Cameo in OOLite?] (2005)
  
 
[[Category:Oolite]]
 
[[Category:Oolite]]
 
{{ambience-OXP}}
 
{{ambience-OXP}}

Latest revision as of 14:54, 18 March 2024

Adds Oolite community personalities to your game

Lestradae.png

Overview

This OXP adds characters we all know and love from the Oolite Bulletin Boards to the Ooniverse. Each personality has some specific behaviour and communication patterns.

Notable Features

There is a 65% chance that you will meet one well-known personality when you either jump into a new system or launch from a main station. Some of them are traders or engage in asteroid mining, some of them are bounty hunters and will protect you in case a pirate attacks you—or attack you in case you are the pirate. Some will only engage Thargoids. And some greet you friendly first, but may try to make you one more step on their ELITE ladder if nobody else is looking. Their behaviour in combat varies, but expect all of them to be a little tougher than your average adversary.

A list of the personalities contained in the basic OXP can be found at the very bottom of its ReadMe, separated by enough whitespace. If you like to be surprised, don't scroll down.

Notes on Alnivel's update version 0.91 (2022)

Update of the original 10 personalities to work with newer versions of Oolite. Adds more options.

Notes on original version 0.9 (2009)

DISCLAIMER

Personalities.oxp is a work in progress, and this version 0.9 is meant as a sneak preview, to give you a feeling what it looks like. It works as it is, but the final release may be different. Please help improving it by reporting bugs and strange or unexpected behaviour in its thread on the Oolite Bulletin Boards. Thanks very much!


Tales from the spacelanes...

I'd stopped off at a Space Bar for a quick beverage and perhaps news of a tempting contract in the vicinity and was rather pleased to find a valuable bounty target en route to my next destination. A few jumps later and I was sharing a system with potentially 8000 buckshee credits.

As the system was an Anarchy I had to splash a couple of pirate groups as I torused towards the station and just as I'd finished off the second group I received word that my target had been liquidated by someone else. Foul language may have been employed at this point.

Making the best of the situation I headed for the station to refuel and offload cargo. I dropped out of Torus a few seconds later when I encountered of all things Commander Wyvern in his Caddy Omega heading towards the witchpoint. Suddenly I had my suspicions of exactly who had snaffled my 8000Cr.

These suspicions were confirmed when shortly after passing Wyvern I encountered the remnants of my targets escorts. Clearly the meagre bounties on these peons had been beneath the notice of the mighty Caddy.

The moral of the story? No matter your combat rating or how high you might stand in the bounty hunters' guild, there's always someone in the eight charts with a sharper killer instinct than you. Travel safely friends and watch your six. Loxley (2011)

Instructions

How do I add myself as a character?

Note: Take this instruction not as a “do it all yourself”, but rather as a reference in case you want to tweak something for yourself (or, well, do everything all yourself). You can always ask for help in the BB thread or even just leave a request there to be added.

You can do this either by modifying this OXP or by creating a separate one, but in any case, you will need at least basic knowledge of how to work on them. It is still preferable to be separate, but still choose as you like or can! A good starting point and reference would be OXP howto.


Expand Instruction


How do I remove my own character?

  1. Open the shipdata.plist inside the "Config" folder.
  2. Look for the entry "personalities-<yourname>".
  3. Remove it completely OR Go to its "roles" key, and delete the roles with "personalities" and "personalities_launcher".

Minimum Requirements

Personalities 0.95 was updated for Oolite 1.90. The AI's are still in .plist form, but can now be located in a specific system/galaxy. Personalities 0.9 was written and tested on Oolite 1.73.4. It should run on Oolite 1.73 and above. Some of its features will only be available and enabled from Oolite 1.74 onwards.

Download Location

Personalities.oxp v 0.9.2 (2022)

Personalities.oxp v 0.9 (2009) is available for download via Box.com.

Installation

Move or copy the file Personalities.oxp from the main download folder into your AddOns folder. Where this resides, depends on your OS and your personal preferences. Restart Oolite.

IconLib.png

Tweaking

This oxp is customisable through Library OXP - via the Config for AddOns option on the docked F4 screen

Version History

  • version 0.9.2 (October, 2022)
new AI scripts, most personalities now use them
with new scripts standard communications keys can be used (however, it makes sense to use only those that are used by AI), old comms keys still works
fixed a bug in plistAI scripts that caused the ships themselves to never attack
pauses can be added to comms messages: "The message will be split{pause: 12}and the second half will be sent with specified delay"
appearance can be limited through the list of roles:
1) "personalities personalities_privateer personalities_galaxy_any personalities_launcher_galaxy_any personalities_aodhan" -
pirate by name "Aodhan" that can appear in any galaxy both in space and via launch from main station
2) "personalities personalities_cruiser personalities_galaxy_0 ppersonalities_galaxy_1 personalities_galaxy_2 personalities_jameson" -
trader by name "Jameson" that can appear only in Galaxy One, Two and Three and only in space
added methods for setting callbacks at escape pod scooping and unloading
added method to adjust spawn weight (for galaxies) in case if someone suddenly decides to use 100 ship variants with a weight of (0.01) each
  • version 0.9.1 (September, 2022) by Alnivel
requires Oolite 1.90 (probably can work even on versions 1.82+, but not tested)
fixed several broken function calls
changed names of internal variables and resources to avoid conflicts
changed comms message using method, it now requires a description.plist entry to be defined in this format:
"personalities-<personality name>-messageTypes" = "<list of space separated message types>";
rewritten methods for the spawn of special ships, changing a probability of this spawns now easier
added method for adding role to appear on a specified condition, such as system id, after some event etc
  • version 0.9 (November 5th, 2009) by Commander McLane
functional version for testing and feedback purposes
script may still get worked over
requires Oolite 1.73

Links