Script Problems on 1.68

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

Moderators: winston, another_commander, Getafix

User avatar
Uncle Reno
---- E L I T E ----
---- E L I T E ----
Posts: 648
Joined: Mon Apr 24, 2006 12:54 pm
Location: UK

Post by Uncle Reno »

Well, perhaps it is the different machines then. If anybody else with a Mac (or PC) wants to test this, then a save game can be found here to download, once loaded in game just wait until you get the briefing.
"Get back or I unleash my lethal spotted batoid!!"

What I do when not reading the Oolite bulletin board!
User avatar
Frame
---- E L I T E ----
---- E L I T E ----
Posts: 1477
Joined: Fri Mar 30, 2007 8:32 am
Location: Witchspace

Post by Frame »

Uncle Reno wrote:
Well, perhaps it is the different machines then. If anybody else with a Mac (or PC) wants to test this, then a save game can be found here to download, once loaded in game just wait until you get the briefing.
Tested this on win xp,oolite 1.68 sure enough, the briefing pops up again and again....

Do not have a Nil ship though... but oolite ran anyway...
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2882
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

Thanks for testing it. Think the problem is 1.68 on the PC is not storing the variable "stage" being set to 1. Assassins runs fine on 1.67 and below and is using the same script commands as all the other OXPs, so think the oddity is down to 1.68.
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
User avatar
Frame
---- E L I T E ----
---- E L I T E ----
Posts: 1477
Joined: Fri Mar 30, 2007 8:32 am
Location: Witchspace

Post by Frame »

LittleBear wrote:
Thanks for testing it. Think the problem is 1.68 on the PC is not storing the variable "stage" being set to 1. Assassins runs fine on 1.67 and below and is using the same script commands as all the other OXPs, so think the oddity is down to 1.68.
no problem... and i think i fixed it...

i did some value bug hunting on your script.plist and mission.plist..

The ladder being a rather mess(made it hard to read ehh :-))

so i had to sort it out,

I traced the problem down to being a player save file containing
the same planet information, as is being set by script..

When you erase the planet information in the player save file, then the briefing screen appears only once as it should..

and all planet information is correctly updated, so i assume that all varibles is also being set...

however i have been searching for my first Victim for ages...

and have still not located him... so im not sure it all works...
however, its a very precise location you added him ^^

abd with this save file, i cant be sure of anything at all :S

Cheers Frame..
User avatar
Uncle Reno
---- E L I T E ----
---- E L I T E ----
Posts: 648
Joined: Mon Apr 24, 2006 12:54 pm
Location: UK

Post by Uncle Reno »

Frame wrote:
Do not have a Nil ship though... but oolite ran anyway...
:? A Nil ship? The save game requires the Imperial Courier OXP to be installed but that's it AFAIK.
Frame wrote:
I traced the problem down to being a player save file containing
the same planet information, as is being set by script..

When you erase the planet information in the player save file, then the briefing screen appears only once as it should..
Good work but with a strange result, why should PCs get upset at the planet descriptions being there already but not Macs? If somebody else wants to give that a go on a PC, I've removed the planet descriptions from this save game, give it 10 seconds and Assassins should start.
"Get back or I unleash my lethal spotted batoid!!"

What I do when not reading the Oolite bulletin board!
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2882
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

Thanks frame. Tried that Commander and it worked fine. My guess therefore is that this won't then cause a problem for someone who is playing the OXP normally. The save file was from a later stage of the OXP, that I'd then hacked to set the variables back to the start stage. I had not removed the descriptions and I guess Oolite didn't like being told to set somthing that had already been set!

The Mark is faily easy to find if you enter the system from Hyperspace rather than launching. This Commander happens to be saved at the System where the mark is. If you were playing the game normally, it would be unlikley (1 in 256) that you happend to trigger the briefing at the System where the Mark is on holiday. The script will add him anyway when you launch, but he's added about 30 km from the w/s point inbetween the OXP planet and the Main Planet.

His AI tells him to fly along slowly and (eventually) dock at the Station near the OXP planet. If you enter the system from w/s he'll never make it there before you find him. But launching from the Main Station, he'll be hard to find and may have made it to the Station and docked before you arrive. If you jump out of the System and then jump back, he'll be much easier to find. Just set your cross hairs between the two planets and jump until he mass-locks you. He's the only Vintage Adder in the system.

I'd figured that the player would always be locating this mark by entering the System from w/s as (if played with a normal commander rather than a hacked test-commander), the player will need to go to G7 and the mission will be offered on the first docking anywhere.

I'll replay the OXP though, and probabley change the stage advancing variable to near the start as Captain H hit the looped briefing once (at a different stage of the OXP) and I think having the stage advance at the start will probabley fix this.
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2882
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

Nope! It is going to be a problem with the OXP. But at least I know why now (thanks to Uncle and Frame).

The problem is that if a planet description has already been set with "setSpecificPlanetInfo:" comamnd, then if the script later changes the description, Oolite "bails" and does not read the rest of the script commands. This means any commands after (and including) the "setSpecificPlanetInfo:" command are not read.

A feature of the OXP is that the Oniverse changes (and so the planet descriptions change) as missions are completed or News Broadcasts appear. The OXP changes planet decriptions over 60 times. Every time this happends on 1.68 the script will bail and the OXP will not run correctley. For example, when loaded the description of Geteve is set to:-

Code: Select all

"setSpecificPlanetInfo: 6=18=description=Geteve is reasonably well known for its large moon, Hercules. GalCop Special Branch maintains a well armed base in orbit around Hercules. The main offices of the Galactic Prosecution Service are based on the moon's surface.",
But at a certain point, the Thargoids launch an assault on this system, so the System is swarming with Bugs and Special Branch Asps fighting it out and the script changes the description to:-

Code: Select all

"setSpecificPlanetInfo: 6=18=description=Geteve is reasonably well known for its large moon, Hercules. GalCop Special Branch maintains a well armed base in orbit around Hercules. The main offices of the Galactic Prosecution Service are based on the moon's surface. A Thargoid invasion of the system is underway. Bugs commonly attack the Stations, but Special Branch Mega Asps engaged in defence of the system have so far prevented any landings.",
If the player sucessfully completes certain missions then the Navy are able to deploy a new type of weapon and these new ships and weapons are present at the systems and the decription is changed again:-

Code: Select all

"setSpecificPlanetInfo: 6=18=description=Geteve is reasonably well known for its large moon, Hercules. GalCop Special Branch maintains a well armed base in orbit around Hercules. The main offices of the Galactic Prosecution Service are based on the moon's surface. Although Special Branch forces remain hard-pressed by Thargoid attacks upon the system, the deployment of Navy BattleBotts has started to turn the tide against the Bugs.",
I'm not a programmer so I don't know why Oolite 1.68 is doing this (as 1.67 and below didn't), but at least I can help by reporting the Bug.

This explains why Captain H got the bug at the "Guild's computer has been hacked" briefing. He'd played the OXP normally so the first five breifings worked fine. But the "Hacked" briefing changed the description of one of the systems (an area of the planet was attacked by plasma fire, so the description changes to refer to the presence of a large creater).

This isn't really somthing I can fix by changing the OXP. Hopefully, the Devs can look at this for 1.69.
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
User avatar
Uncle Reno
---- E L I T E ----
---- E L I T E ----
Posts: 648
Joined: Mon Apr 24, 2006 12:54 pm
Location: UK

Post by Uncle Reno »

If you send me an appropriate save game LB, I'll check the same thing happens on a Mac.
"Get back or I unleash my lethal spotted batoid!!"

What I do when not reading the Oolite bulletin board!
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 »

LittleBear, if your analysis is correct, I’d expect to see log messages about exceptions or similar. Something like “***** Exception SOMETHING (More info) during plist script evaluation.” this happening?
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2882
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

Try this Commander :- http://www.box.net/shared/zyetj7osul

Its a hacked commander with the Stage Manually set back to 3, so don't worry about the fact you have Gravition missiles on your Pylons! I'm getting the looping bug on 1.68 but not 1.67 or 1.65 using the same Commander.

I am getting a ton of exceptions:-

Code: Select all

2007-05-02 12:10:44.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:44.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:44.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:44.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:44.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:44.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:44.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:44.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:54.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:54.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:54.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:54.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:54.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:54.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:54.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:10:54.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:00.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:00.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:00.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:00.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:00.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:00.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:00.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:00.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:04.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:04.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:04.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:04.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:04.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:04.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:04.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:04.000 oolite.exe[1652] [exception]: ***** Exception NSInvalidArgumentException (GSDictionary(instance) does not recognize setObject:forKey:) during plist script evaluation.
2007-05-02 12:11:06.000 oolite.exe[1652] [unclassified.MyOpenGLView]: Found mode {Height = 768; RefreshRate = 0; Width = 1024; }
This is what the OXP script is doing at this point:-

Code: Select all

{ 
							conditions = ("dockedAtMainStation_bool equal YES", "mission_assassins equal assassins_STAGE3", "mission_assassins_jumpcount greaterthan 4", "galaxy_number equal 6", "score_number greaterthan 823"); 
							do = ( 
								"setMissionMusic: none",
								"setMissionImage: assassins.png", 
								setGuiToMissionScreen, 
								"addMissionText: hitbrief_3",
								"setSpecificPlanetInfo: 6=73=description=Orramaor is noted for its companion world Apollodorus. Formaly the corporate headquarters of Soin Classic Shipyards Ltd, the Planet Orramaor is now famous for a large crater on the southern continent.", 
								"set: mission_assassins assassins_STAGE3a",
 								"set: mission_assassins_jumpcount 0",
								"setMissionDescription: assassins_header6" 
							); 
						}, 
No problem on 1.65, but on 1.68 10 seconds later the brief comes up again. I'm assuming this is because the command to advance to STAGE3a was not read.

To test this I deleted the command:-

Code: Select all

"setSpecificPlanetInfo: 6=73=description=Orramaor is noted for its companion world Apollodorus. Formaly the corporate headquarters of Soin Classic Shipyards Ltd, the Planet Orramaor is now famous for a large crater on the southern continent.",
No problem then on 1.68. The Command to advance the stage was read and so no looping bug.

So I'm faily sure that whilst Oolite accepts the command the first time its given in script, it will not read past a later command that tells it to change the previously changed description. The first briefing entry in Assassins the set the description like this:-

Code: Select all

"setSpecificPlanetInfo: 6=73=description=Orramaor is noted for its companion world Apollodorus and is reasonably well known as the corporate headquarters of Soin Classic Shipyards Ltd. In recent years, Soin Classic Shipyards have specialised in the development of greatly improved versions of Serpent Class ships.",
That worked fine and the description was stored in the players save file and no looping bug happended.

But when this entry tries to reset the description of PN 73, it causes Oolite 1.68 not to read past the command. :?
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
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 »

OK, the exception gives me a good idea of what’s happening. I’ll look into it when I’ve got my local copy working properly again (big changes mean big breakage…)

An exception stops all further execution of the script, which explains what you’re seeing.
User avatar
Uncle Reno
---- E L I T E ----
---- E L I T E ----
Posts: 648
Joined: Mon Apr 24, 2006 12:54 pm
Location: UK

Post by Uncle Reno »

LittleBear wrote:
Try this Commander :- http://www.box.net/shared/zyetj7osul

Its a hacked commander with the Stage Manually set back to 3, so don't worry about the fact you have Gravition missiles on your Pylons! I'm getting the looping bug on 1.68 but not 1.67 or 1.65 using the same Commander.
Quick note for anybody else trying it, the Military Fiasco mission clashes with the next Assassins briefing, so you get the Assassins backdrop but the Military text. Once I fixed that though, again, Assassins ran OK on my machine! :? So, it would seem that on a Mac it's OK, but not on a PC, very weird..
"Get back or I unleash my lethal spotted batoid!!"

What I do when not reading the Oolite bulletin board!
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2882
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

Yeah sorry. That is a know clash. The Assassins readme warns you that you should either finish Military before you play Assassins or (if you haven't started Military) don't install it until you finish Assassins. The clash can also happen with Thargoid Wars. Take Thargoid Wars out whilst playing Assassins and put it back in when you finish. (Its the old two OXPs wanting to use the Mission briefing Screen at the same time problem).

I minimised this by setting the OXP in G7, but as Military and Thargoid Wars run in any Galaxy there is a chance of a clash.

As a sort of applogy to Wombat, the last briefing refers to "Agent Wombat" so you know when Assassins is done! It sort of makes sense in plot that the Thargoids stop attacking stations whilst Assassins is running as their forces have been mustered to invade Geteve!
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
User avatar
TGHC
---- E L I T E ----
---- E L I T E ----
Posts: 2157
Joined: Mon Jan 31, 2005 4:16 pm
Location: Berkshire, UK

Post by TGHC »

Just a thought, in the future will it be possible to disable a conflicting OXP and then re-enable it on completion of the mission. I'm thinking back to something like while and wend...........but then that was many many moons ago, and now I know sweet fa! You sure can tell us non techies!!!!
The Grey Haired Commander has spoken!
OK so I'm a PC user - "you know whats scary? Out of billions of sperm I was the fastest"
User avatar
Frame
---- E L I T E ----
---- E L I T E ----
Posts: 1477
Joined: Fri Mar 30, 2007 8:32 am
Location: Witchspace

Post by Frame »

Uncle Reno wrote:
:? A Nil ship? The save game requires the Imperial Courier OXP to be installed but that's it AFAIK.8
(nil) to be precise.... :S

prolly the programmers slang for NULL ^^
Post Reply