Oolite Unable To Identify A Property List

General discussion for players of Oolite.

Moderators: another_commander, winston

User avatar
Thargoid
Thargoid
Thargoid
Posts: 5525
Joined: Thu Jun 12, 2008 6:55 pm

Re: Oolite Unable To Identify A Property List

Post by Thargoid »

For a player ship no, only one laser per view.

For an NPC ship, you need to define a sub-entity (with an identity, model etc) and give that the additional laser. You then set the sub-entity up linked to the main ship (via the sub-entities key, where at the moment you have the flashers only) and thus you end up with a ship with multiple lasers in a given direction.

It's not so easy to explain, so I'd recommend looking at an existing example of one to give you the idea. The classic one is the Weeviloid, which you should be able to find on the wiki. But there aer others (Aquatics and TCAT of mine I think both have examples, although those are in openStep rather than XML as I find it much easier as it's more readable and you don't need to worry about so many tag pairs).
User avatar
Mauiby de Fug
---- E L I T E ----
---- E L I T E ----
Posts: 847
Joined: Tue Sep 07, 2010 2:23 pm

Re: Oolite Unable To Identify A Property List

Post by Mauiby de Fug »

Yeah, the problem I have with xml is that it can be somewhat awkward to read, and can be somewhat prone to syntax errors. I was under the impression that <true/> was an error to begin with, but as you can see I realised that it wasn't in the edit when I found the actual cause of that error. Using the converter is much the same as the other python things that we've been using, namely the console and the Obj2DatTex script. What you need to do is download the script, (presumably you've already done that) and make sure it is in the same folder as the xml file you want to convert. Then, with the standard terminal, cd into that folder, and run python xml2ns.py NameOfXmlToConvert.plist If all is successful, you will end up with a new file in the folder called NameOfXmlToConvert.plist-ns, which you then have to rename. Of course, if there are syntax errors in the xml plist, it won't work properly. Which is why I tried converting, reasoning that I could then work out where the syntax errors where, and then would have a slightly more readable plist to try and work out what other problems there might be. Which Svengali seems to have done already!

As Svengali says, try and get the rest of the model up and running before we look at extra lasers on subentities, although once you're ready to do that, I'd probably recommend looking at some of Killer Wolf's Vampire ships to see how to do it.

Don't worry, once you've got to grips with it all and finished this, it'll be much easier next time!
User avatar
mandoman
---- E L I T E ----
---- E L I T E ----
Posts: 1375
Joined: Thu Apr 28, 2011 3:17 pm

Re: Oolite Unable To Identify A Property List

Post by mandoman »

Svengali wrote:
Good job Ironfist and Mauiby.
Yes, definitely. I'm sorry if I sounded ungrateful. Thanks for all the excellent help. :)
Svengali wrote:
Some finetuning...

shipyard.plist:
- "EQ_HYPERSPACE_MOTOR" is no Oolite EQ. It may be used in an OXP though.

shipdata.plist:
- has_fuel_injector should be has_fuel_injection.
- The color values in laser_color. Use "whiteColor" instead (upperCase C).
- Delete the hud = default or set a valid value like hud.plist.
- NPCs don't need view_position_x.
- max_cargo is a integer. It's not a bug, but makes things more clear.
- If SunBat-plea is not defined in descriptions.plist remove it from death_actions.
- Spawning explosive_shrapnel via death_actions may fail as it is a external dependency.
Thanks for those catches. I'll change, and try to note them for future reference. I have a descriptions.plist. It isn't much, but:

<?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>SunBat-plea</key>
<array>
<string>Stick it in your ear, Bozo!</string>
<string>Frack!</string>
</array>

</dict>
</plist>

[quote="Svengali"You could use subentities for the left/right lasers, but I'd think before going this way it's better to fix the mentioned problems to avoid trouble .-)[/quote}

That is something I would not enjoy doing, after the work I put into it.
Svengali wrote:
Last but not least please take a look at the used roles. wingman needs scan_class = "CLASS_POLICE", so use a extra entry for it. And a hunter with bounty = 100 is probably not such a good idea.
Once again, thank you for your advice. I didn't understand that wingman needed that scan_class. Need to read the HowTo Wiki again....for the millionth time. I guess 100 for bounty IS a bit excessive. :)

Thargoid, I'll check out those ships you mentioned. I would really hate to get rid of the extra lasers, as I put a lot of work into making them. I suppose that's par for the course, though. Thanks a bunch, guys, I'll try running this after the corrections and see what happens. :)
"Mauiby de Fug" wrote:
Yeah, the problem I have with xml is that it can be somewhat awkward to read, and can be somewhat prone to syntax errors. I was under the impression that <true/> was an error to begin with, but as you can see I realised that it wasn't in the edit when I found the actual cause of that error. Using the converter is much the same as the other python things that we've been using, namely the console and the Obj2DatTex script. What you need to do is download the script, (presumably you've already done that) and make sure it is in the same folder as the xml file you want to convert. Then, with the standard terminal, cd into that folder, and run python xml2ns.py NameOfXmlToConvert.plist If all is successful, you will end up with a new file in the folder called NameOfXmlToConvert.plist-ns, which you then have to rename. Of course, if there are syntax errors in the xml plist, it won't work properly. Which is why I tried converting, reasoning that I could then work out where the syntax errors where, and then would have a slightly more readable plist to try and work out what other problems there might be. Which Svengali seems to have done already!

As Svengali says, try and get the rest of the model up and running before we look at extra lasers on subentities, although once you're ready to do that, I'd probably recommend looking at some of Killer Wolf's Vampire ships to see how to do it.

Don't worry, once you've got to grips with it all and finished this, it'll be much easier next time!
So when using python, it's the same line for any kind of conversion from one format, to another? If that's so, life has become a bit easier. :D
Mandotech Industries Wiki Page.

http://wiki.alioth.net/index.php/User:Mandoman
User avatar
Mauiby de Fug
---- E L I T E ----
---- E L I T E ----
Posts: 847
Joined: Tue Sep 07, 2010 2:23 pm

Re: Oolite Unable To Identify A Property List

Post by Mauiby de Fug »

mandoman wrote:
So when using python, it's the same line for any kind of conversion from one format, to another? If that's so, life has become a bit easier. :D
Well, for the particular scripts you've using, it is, so you don't have to remember too many different things! The python says what to open the file with, the xml2ns.py is the file you're running, and the whatever.plist is the command line argument that you are passing to the script. If you wanted to simply open the script and have a look at it in a text editor, you could use gedit xml2ns.py Does that help explain the format?
User avatar
mandoman
---- E L I T E ----
---- E L I T E ----
Posts: 1375
Joined: Thu Apr 28, 2011 3:17 pm

Re: Oolite Unable To Identify A Property List

Post by mandoman »

Mauiby de Fug wrote:
mandoman wrote:
So when using python, it's the same line for any kind of conversion from one format, to another? If that's so, life has become a bit easier. :D
Well, for the particular scripts you've using, it is, so you don't have to remember too many different things! The python says what to open the file with, the xml2ns.py is the file you're running, and the whatever.plist is the command line argument that you are passing to the script. If you wanted to simply open the script and have a look at it in a text editor, you could use gedit xml2ns.py Does that help explain the format?
Yes, and I find that I don't have xml2ns.py. I've been Googling it, and looking around the Oolite Wikis, but haven't stumbled upon it yet. I thought I was good at web searching, but getting scripts, and such for Oolite seem to be a challenge for me. I sure appreciate your help. I can't even express how much, as I feel like I'm running through a pitch dark room, sometimes, with oxp making. :roll: :)
Mandotech Industries Wiki Page.

http://wiki.alioth.net/index.php/User:Mandoman
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Re: Oolite Unable To Identify A Property List

Post by Eric Walch »

Yes, that python script by Cdr. Jettison is very useful in converting XML to open step. Actually the conversion itself is a new feature in python 2.6. Just remember that comment in the script also generates errors. It must be an oversight in python's conversion code. When you were looking for the conversion script, look at the bottom of the [wiki]Property_list[/wiki] page.

And when in doubt of using INTEGER, REAL or STRING, just use STRING. That is because Oolite must already know what types to expect. In open step everything are strings and on reading any string values in, Oolite will convert them to the proper type.
User avatar
Ironfist
Commander
Commander
Posts: 218
Joined: Tue Jun 28, 2011 2:16 pm
Location: London

Re: Oolite Unable To Identify A Property List

Post by Ironfist »

Mandoman,

I think the problem with the shipyard.plist file is that in 2 places you have </STRING> the program is sensitive to the case of things so </STRING> is not allowed and needs to be changed to </string>.
You will equally need to be careful of file names under windows FRED.txt and fred.txt are the same but under Linux and Mac and Oolite they are not.

Ironfist
64bit Mint 10 and Win 8 64bit on E8400 at 3.6GHz - ATI HD5750 graphics.
Concentration is the ability to think of absolutely nothing when it is absolutely necessary.
User avatar
mandoman
---- E L I T E ----
---- E L I T E ----
Posts: 1375
Joined: Thu Apr 28, 2011 3:17 pm

Re: Oolite Unable To Identify A Property List

Post by mandoman »

Eric Walch wrote:
Yes, that python script by Cdr. Jettison is very useful in converting XML to open step. Actually the conversion itself is a new feature in python 2.6. Just remember that comment in the script also generates errors. It must be an oversight in python's conversion code. When you were looking for the conversion script, look at the bottom of the [wiki]Property_list[/wiki] page.

And when in doubt of using INTEGER, REAL or STRING, just use STRING. That is because Oolite must already know what types to expect. In open step everything are strings and on reading any string values in, Oolite will convert them to the proper type.
Thank you for that lead. I was thinking I was going to need to sort through the whole Python xml2lib to find it. What a relief. :D
Ironfist wrote:
Mandoman,

I think the problem with the shipyard.plist file is that in 2 places you have </STRING> the program is sensitive to the case of things so </STRING> is not allowed and needs to be changed to </string>.
You will equally need to be careful of file names under windows FRED.txt and fred.txt are the same but under Linux and Mac and Oolite they are not.

Ironfist
Understood.....now. :)
I do believe I'm leaving the xml scripting alone, and go with ns. I'm about to test the SunBat.oxp again, so wish me luck. :)
Mandotech Industries Wiki Page.

http://wiki.alioth.net/index.php/User:Mandoman
User avatar
mandoman
---- E L I T E ----
---- E L I T E ----
Posts: 1375
Joined: Thu Apr 28, 2011 3:17 pm

Re: Oolite Unable To Identify A Property List

Post by mandoman »

OK, I have succeeded in that Oolite now recognizes the SunBat as a property, and therefore it appears in the twirling picture thing after the "Y" is chosen to select an existing commander. It looks beautiful. Awe, if it would only come out in game mode that way. First, all of the perspectives were screwed up really badly. I went back into Blender and found that the whole ship model was out of perspective. When I clicked on "View-Bottom", it showed the top. When I clicked "View-Front", it showed a side. Soooooo, I started flipping and turning the dang thing until I had it facing the right direction, the bottom facing down, the top facing up, and the aft to the back. One problem still, when I click on "View-Right", it shows the left side, and "View-Left" shows the right side. So, I have the front, back, top, and bottom aligned correctly, but the sides are incorrect. Anyone have any idea how I keep all the other angles correct, and change the alignment so the sides are also correct? Do the sides really matter which is which, as long as the other four perspectives are right?

Another thing. When getting view positions, I take it that the positions are based on looking away from the ship, as if looking out of the canopy to the front, back, and sides. How far away from the ship model should I put the view position for the external views, in at/toward the ship?

I had to dump the extra gun placements, because they were keeping the oxp from parsing in the game. That really sucks, because it not only looks cool with the two guns in front, and in back (which showed up beautifully in the twirling model), the fire power would be double.

Oh, and another thing. When I opened up the ship to the game, and went to the property list, it had totally ignored what I had in the shipyard.plist as to what should come standard with the ship. Does anyone know why? Back to the board. :D
Mandotech Industries Wiki Page.

http://wiki.alioth.net/index.php/User:Mandoman
User avatar
mandoman
---- E L I T E ----
---- E L I T E ----
Posts: 1375
Joined: Thu Apr 28, 2011 3:17 pm

Re: Oolite Unable To Identify A Property List

Post by mandoman »

The SunBat orientation is really screwy. I have tried different settings in Blender to find the correct X, Y, Zs, but it always comes out out of sync. For instance, in the game while I'm actually flying the ship, when I start panning through external views with the "V" key, this is the way it comes out:
Name On The Screen Actual

Aft View Left Side View

Aft Left View Aft Right View

Right Side View Aft View

Front Right View Aft Right View

Front View Right Side View

Front Left View Front Right View

Left Side View Front View

Aft Left View Front Left View

Top View Top View With Ship Pointed To Left Side Of Screen

Bottom View Bottom View With Ship Pointed To The Right Side Of Screen

The exhaust plume isn't even coming form the exhaust points on the ship, and when viewed from the different angles listed above, can be pointing any where but where it should point.

What puzzles me the most is that in Blender the ship is coming out in the right views now, after I adjusted it's orientation, except for the left, and right side views. If anyone has any suggestions, I'm very receptive at all times.
Mandotech Industries Wiki Page.

http://wiki.alioth.net/index.php/User:Mandoman
User avatar
mandoman
---- E L I T E ----
---- E L I T E ----
Posts: 1375
Joined: Thu Apr 28, 2011 3:17 pm

Re: Oolite Unable To Identify A Property List

Post by mandoman »

Fixed it......almost. I got everything but the exhaust plumes worked out. It is a really great feeling to get this far. Heck, I'm probably talking to myself, but it's 1:15 AM, and I don't care, LOL!!! :lol:

Now to get the exhaust plumes right. They appear to be upside down, so I'll have to study that a bit. They say if you talk to yourself, and then answer yourself, that you may be insane. He, he, he..... :lol: :wink:
Mandotech Industries Wiki Page.

http://wiki.alioth.net/index.php/User:Mandoman
User avatar
Killer Wolf
---- E L I T E ----
---- E L I T E ----
Posts: 2269
Joined: Tue Jan 02, 2007 12:38 pm

Re: Oolite Unable To Identify A Property List

Post by Killer Wolf »

re orientation :
- Have you ensured the ship is correctly aligned in your modeller before you exported it? I usually just model away then when the ship's finished i pick a front view option in the modeller and rotate the ship until i'm looking at the front, then i go to a side and then a top view, moving the model so that the origin ends up in the approximate centre of the ship.
if you've done all that already, then it's just the numbers in the views that you need tweaking. That, or change the view names so they match what you're seeing! :-D
given the fact the Left view = front of ship, Aft = left of ship etc though, it seems that the model needs rotating 90 degrees before you export it.
User avatar
mandoman
---- E L I T E ----
---- E L I T E ----
Posts: 1375
Joined: Thu Apr 28, 2011 3:17 pm

Re: Oolite Unable To Identify A Property List

Post by mandoman »

Killer Wolf wrote:
re orientation :
- Have you ensured the ship is correctly aligned in your modeller before you exported it? I usually just model away then when the ship's finished i pick a front view option in the modeller and rotate the ship until i'm looking at the front, then i go to a side and then a top view, moving the model so that the origin ends up in the approximate centre of the ship.
if you've done all that already, then it's just the numbers in the views that you need tweaking. That, or change the view names so they match what you're seeing! :-D
given the fact the Left view = front of ship, Aft = left of ship etc though, it seems that the model needs rotating 90 degrees before you export it.
Yeah, I kind of figured that out the hard way. I went back into blender, realigned the model, and got the coordinates for the exhaust, lasers, view, etc.. The thing I didn't think of until about midnight last night, was the first .dat file I had in the oxp was still reflecting the old measurements, so the ship remained screwed up on the game. When I finally figured it out, I dumped the old .dat file, re-exported the corrected model, and re-converted that .obj file to a new .dat, that reflected the corrected settings. It worked. The SunBat now appears correctly in the game, except for the exhaust plumes. I swear that they are just upside down to what they should be, which makes the two side plumes above the ship way too high, and the center plume slightly elevated above where it should be. I think it was you that said you usually had to play with those settings to tweek them into place. Not sure how to do it, but things are sure looking better otherwise. The ship flies beautifully, and the white laser is stunning. I would still very much like to get all four lasers (two up front, and two at the back) working. Man, what a sight that would be. :D
Mandotech Industries Wiki Page.

http://wiki.alioth.net/index.php/User:Mandoman
User avatar
Killer Wolf
---- E L I T E ----
---- E L I T E ----
Posts: 2269
Joined: Tue Jan 02, 2007 12:38 pm

Re: Oolite Unable To Identify A Property List

Post by Killer Wolf »

yeah, i often find i have to adjust an X, Y or Z (or several!) by 1 or less repeatedly to nudge something into a good position, due to the fact the modellers i use are way off the same size units Oolite uses. it's a hassle, but worth it when you finally see your ship in game :-)

putting the extra lasers in is just a matter of sticking a couple of tiny subents in place, as i mentioned elsewhere. Personally though, in trying to keep to "realism", i would be concerned about your comment about the wings being so thin - i would take the stance that if they're that thin they couldn't have laser equipment fitted in them. but, it's your ship so make something that you like :-)
User avatar
mandoman
---- E L I T E ----
---- E L I T E ----
Posts: 1375
Joined: Thu Apr 28, 2011 3:17 pm

Re: Oolite Unable To Identify A Property List

Post by mandoman »

Killer Wolf wrote:
yeah, i often find i have to adjust an X, Y or Z (or several!) by 1 or less repeatedly to nudge something into a good position, due to the fact the modellers i use are way off the same size units Oolite uses. it's a hassle, but worth it when you finally see your ship in game :-)

putting the extra lasers in is just a matter of sticking a couple of tiny subents in place, as i mentioned elsewhere. Personally though, in trying to keep to "realism", i would be concerned about your comment about the wings being so thin - i would take the stance that if they're that thin they couldn't have laser equipment fitted in them. but, it's your ship so make something that you like :-)
Another part of the problem was also due to ship orientation. I mean after I got front, aft, bottom, top, port,starboard worked out. The ship was hanging above the grid, and from what I can tell, Oolite goes by center grid alignment in every direction. So, I had to lower the model in Blender so it is now hanging half above, and half below the grid. I think I got it centered, or really, really close to it. Another discovery I made is that X, Y, Z in Oolite does NOT correspond to the same coordinates in Blender. The translation is Oolite X = Blender Y, Oolite Y = Blender Z, and Oolite Z = Blender X. It took me a while to understand that. I noticed it when I brought up an Oolite ship orientation picture chart of a ship as it would appear in Oolite. The X, Y, and Z points were defined clearly with arrows. When I compared the two, just by the chance of needing to try something that might help me with the alignment mess. I knew I was still off in some way, not only due to the way out of place exhaust plumes, but when I fired a missile it came from above my cockpit view, which is just the opposite of where I understand it should. Lowering the ship on the grid, and re-figuring ALL of the X, Y, Z measurements corrected everything but the exhaust plume. The exhaust DID get closer to where it belongs, though. Now it's over to the side of where it should be, and still a little high. I can see that it's going to be the pain in the ass in this project, but something has to be. :)

Oh, I didn't mount the lasers in the wings. That was someone elses idea, which I noticed wouldn't work without radically changing the wing tips, so I put lasers to each side of the cockpit, and slightly below. Here is a pic of the front:

http://img600.imageshack.us/img600/7099 ... lasers.png

The two rear lasers are on the outer side of the two side exhaust points, about half way between the exhaust and the aft wing tips.
Mandotech Industries Wiki Page.

http://wiki.alioth.net/index.php/User:Mandoman
Post Reply