characters.plist in 1.71.1

For test results, bug reports, announcements of new builds etc.

Moderators: winston, another_commander, Getafix

User avatar
Commander McLane
---- E L I T E ----
---- 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:

characters.plist in 1.71.1

Post by Commander McLane »

There is something broken with the use of characters.plist in 1.71.1.

The escape pod is spawned, and after I have scooped it and docked, the script_actions are executed. This is not the problem.

But when scooping the pod, I got the message "You have captured a slave" instead of the name defined in characters.plist. So it seems to be a display-related problem (like the wrong bounties reported elsewhere).
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6628
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

Do you have this entry in the shipdata of the pod you are spawning?

Code: Select all

<key>pilot</key>
<string>cargopod-pilot-name</string>
And just to be sure, your character.plist should be something like this:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>cargopod-pilot-name</key>
	<dict>
		<key>random_seed</key>
		<string>1 3 5 7 11 13</string><!-- fix the name and details, but use the key to keep it secret -->
		<key>bounty</key>
		<integer>30</integer><!-- not actually used, we do the reward in the script -->
		<key>origin</key>
		<integer>7</integer><!-- system number seven (Lave in Galaxy 0) -->
		<key>name</key>
		<string>Trumble Cargopilot</string>
	</dict>
</dict>
</plist>
It don't see any problem here. If it persists, could you post the entire shipdata.plist of the pod in question and the character.plist that is giving problems?
User avatar
Commander McLane
---- E L I T E ----
---- 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:

Post by Commander McLane »

Here's the shipdata-entry:

Code: Select all

	<key>thargoid-warship-disabled-warship-2</key>
	<dict>
		<key>ai_type</key>
		<string>th_w_disabledWarship2AI.plist</string>
		<key>beacon</key>
		<string>T</string>
		<key>bounty</key>
		<integer>0</integer>
		<key>has_escape_pod</key>
		<true/>
		<key>like_ship</key>
		<string>thargoid</string>
		<key>missiles</key>
		<integer>0</integer>
		<key>name</key>
		<string>Recovered Thargoid Warship</string>
		<key>pilot</key>
		<string>th-w-engineer</string>
		<key>roles</key>
		<string>th_warship_disabled_warship_2</string>
		<key>scanClass</key>
		<string>CLASS_CARGO</string>
		<key>unpiloted</key>
		<false/>
	</dict>
And here the characters.plist:

Code: Select all

{
    "th-w-engineer" = {
        bounty = 0; 
        name = "a Naval Intelligence Engineer"; 
        "random_seed" = "0 0 0 0 0 0"; 
        "script_actions" = (
            {
                conditions = ("status_string equal STATUS_DOCKED"); 
                do = ("set: mission_thargoid_warship E_RESCUED"); 
            }
        ); 
    }; 
}
I followed the explanation in the wiki, so I left out a lot of keys. Anyway, name is there, yet it isn't displayed. (But, as mentioned in the first post, the script_actions do get executed.)
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

I am responsible for that part of the wiki. So I just tested it to be sure it was correct. I have a testship defined "has_escapepod = 2" and "pilot = McLane". All tested with 1.71.1

The character definition is:

Code: Select all

	<key>McLane</key>
	<dict>
		<key>bounty</key>
		<integer>0</integer>
		<key>name</key>
		<string>Cmdr. McLane</string>
		<key>random_seed</key>
		<string>0 0 0 0 0 0</string>
		<key>script_actions</key>
		<array>
			<dict>
				<key>conditions</key>
				<array>
					<string>status_string equal STATUS_DOCKED</string>
				</array>
				<key>do</key>
				<array>
					<string>addMissionText: McLane_thanks</string>
				</array>
			</dict>
		</array>
		<key>short_description</key>
		<string>The writer of Anarchies</string>
	</dict>
It just works well. When shooting the testship it ejects two pilots. One is a general pilot, the other says: "you rescued Cmdr. McLane". And on docking I get the missiontext belonging to the character.
User avatar
Commander McLane
---- E L I T E ----
---- 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:

Post by Commander McLane »

I'm stuck. My characters.plist looks exactly like yours, except that I just set a mission_variable instead of displaying a text in the script_actions. I've even inserted the short_description-key like in your example. Still I only get "You captured a slave", when I scoop the pod.

Then I changed everything according to your example, with a addMissionText: in the script_actions. Still "You captured a slave", and nothing is displayed when I dock at the main station.

Oh, and in two thirds of all cases no escape pod is spawned at all.

Here's what I have now. Do you see any stoopid errors?

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>th-w-engineer</key>
	<dict>
		<key>bounty</key>
		<integer>0</integer>
		<key>name</key>
		<string>a Naval Intelligence Engineer</string>
		<key>random_seed</key>
		<string>0 0 0 0 0 0</string>
		<key>script_actions</key>
		<array>
			<dict>
				<key>conditions</key>
				<array>
					<string>status_string equal STATUS_DOCKED</string>
				</array>
				<key>do</key>
				<array>
					<string>addMissionText: thargoid_warship_E_RESCUED</string>
				</array>
			</dict>
		</array>
		<key>short_description</key>
		<string>a Naval Intelligence Engineer</string>
	</dict>
</dict>
</plist>
EDIT: Stop, perhaps I have noticed a stoopid error, if it is one:
another_commander wrote:
I don't see any problem here. If it persists, could you post the entire shipdata.plist of the pod in question and the character.plist that is giving problems?
Does the pod need its own shipdata.entry? I just have one for the ship that is supposed to spawn it.
Last edited by Commander McLane on Fri May 02, 2008 12:48 pm, edited 1 time in total.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6628
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

Make bounty have a value of at least 1 and you are set. Also, Eric's script did not work exactly as intended for me, until I gave the character a bounty value of 1.
User avatar
Commander McLane
---- E L I T E ----
---- 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:

Post by Commander McLane »

another_commander wrote:
Make bounty have a value of at least 1 and you are set. Also, Eric's script did not work exactly as intended for me, until I gave the character a bounty value of 1.
Yes, that did it. Now the name is displayed on scooping.

Although there is still no "Thank you" message when I dock! :? And does the pod need a shipdata-entry of its own?
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6628
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

If you don't want to mess with bounties, i.e. legal status, the key "insurance" can also do the trick:

Code: Select all

<key>insurance</key>
<integer>2</integer>
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

Commander McLane wrote:
Here's the shipdata-entry:

Code: Select all

<key>thargoid-warship-disabled-warship-2</key>
...
<string>th_w_disabledWarship2AI.plist</string>
...
<string>th-w-engineer</string>
...
<string>th_warship_disabled_warship_2</string>
...
"th-w-engineer"
...
do = ("set: mission_thargoid_warship E_RESCUED"); 
Please change these to “mclane-thargoid-warship-disabled-warship-2”, “mclane_th_w_disabledWarship2AI.plist”, “mclane-th-w-engineer”, “mclane_th_warship_disabled_warship_2”, “mission_mclane_thargoid_warship” etc.
Last edited by JensAyton on Fri May 02, 2008 3:52 pm, edited 1 time in total.
User avatar
Commander McLane
---- E L I T E ----
---- 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:

Post by Commander McLane »

If you say so... Although I thought prefixing everyhing with the name of the OXP would be enough. Probably I should come up with a more unique name, though?
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

For a sufficiently unique OXP name, that would work. “Thargoid Warship” doesn’t qualify, though. :-) Names and nicks tend to be pretty good in this respect, but if your name is John Smith it’s probably a good idea to pick an alias for unique-prefixing purposes.
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

Commander McLane wrote:
another_commander wrote:
Make bounty have a value of at least 1 and you are set. Also, Eric's script did not work exactly as intended for me, until I gave the character a bounty value of 1.
Yes, that did it. Now the name is displayed on scooping.

Although there is still no "Thank you" message when I dock! :? And does the pod need a shipdata-entry of its own?
Strange, I always used zero bounty without troubles. But the actual value does not matter when a script is attached to it. In UPS there are also 4 pilots with 0 bounty and nobody complained. (But of cause nobody knows how it was intended.) To be on the save side I made it now 1 and will add a note about it on the appropriate place on the wiki.

Not saying thank you is because of the script. You must make your own text if you want one. Problem is the mission clash. In this case you only have one try. Look in UPS how I did it. I test if mission screen is already shown. If yes, I don't clear it, but add a empty line and add my own short text. (just hoping it fits beneath anything that is now on screen).
User avatar
Commander McLane
---- E L I T E ----
---- 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:

Post by Commander McLane »

Eric Walch wrote:
Not saying thank you is because of the script. You must make your own text if you want one. Problem is the mission clash. In this case you only have one try. Look in UPS how I did it. I test if mission screen is already shown. If yes, I don't clear it, but add a empty line and add my own short text. (just hoping it fits beneath anything that is now on screen).
Perhaps I have missed something else. But I did make my own text. And I made the script_actions to be exactly like in your example: addMissionText: Engineer_thank_you_message. Only that when I docked no thank_you_message was displayed, just the normal F5-screen. There was no other conflicting mission screen.

Do I have to put the setGuiToMissionScreen etc. into the script_actions of characters.plist as well, in order to have the Engineer_thank_you_message displayed?
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

McLane wrote:
Do I have to put the setGuiToMissionScreen etc. into the script_actions of characters.plist as well, in order to have the Engineer_thank_you_message displayed?
Again: look in the characters of UPS. You need the setGuiToMissionScreen to set up the missionscreen otherwise the text is printed on the bottom of the current screen. (off-screen on F5). The command setGuiToMissionScreen switchesdisplay to the missionscreen and clears it.

But check if there is already a missioncreen active and you are not clearing an existing one.
User avatar
Commander McLane
---- E L I T E ----
---- 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:

Post by Commander McLane »

Eric Walch wrote:
... otherwise the text is printed on the bottom of the current screen. (off-screen on F5).
That explains it then. Thanks!
Post Reply