The market observer, if used together with the AI T Assistant, leaves its "trading hud" on after leaving the F8 screen, thereby spoiling the station screens and having no hud but the market one when leaving the station

Moderators: winston, another_commander
These two oxps clash hard, so they should not be used at the same time. Wildeblood mentions that in his readme, I should probably do so too. At least I'll have to add it to the wiki page.Lestradae wrote:Just wanted to report that marketObserver_1.4 & AI Trading Assistant 2.2.4 oxps have turned out to be incompatible on my system.
The market observer, if used together with the AI T Assistant, leaves its "trading hud" on after leaving the F8 screen, thereby spoiling the station screens and having no hud but the market one when leaving the station
Thanks for reporting. Hasn't happened to me, have to dig deeper. What hud are you using?Solonar wrote:I use only Market Observer 1.4 and sometimes the trading hud gets sticky for me also. I have to restart the game to unsticky it sometimes.
Since I found that out, this is the oxp of the two I am using. An AI does my trading ... I find that neatspara wrote:TradingAssistant on the other hand also collects data, but acts more like an advisor or assistant, giving player hints about trading. And in extreme, does the trading for you.
spara wrote:Thanks for reporting. Hasn't happened to me, have to dig deeper. What hud are you using?Solonar wrote:I use only Market Observer 1.4 and sometimes the trading hud gets sticky for me also. I have to restart the game to unsticky it sometimes.
Funny - for the same reason (it does the trading for you), I use Market Observer!Lestradae wrote:Since I found that out, this is the oxp of the two I am using. An AI does my trading ... I find that neatspara wrote:TradingAssistant on the other hand also collects data, but acts more like an advisor or assistant, giving player hints about trading. And in extreme, does the trading for you.
So in fact, they don't do the same job, but are completely different.spara wrote:Basically they both do the same job, but from very different angle. MarketObserver just observes trading and shows the data gathered to the player. It does not give any advices on trading or anything, just data. Trading Assistant on the other hand also collects data, but acts more like an advisor or assistant, giving player hints about trading. And in extreme, does the trading for you.
That's why they clash, but it doesn't make them irreconcilable. The main source of incompatibility is that you butchered my beautiful, elegant HUD design and stuck advertisements all over it.spara wrote:Both use the same kind of techniques in the market screen. Both do hud-switching and use console_messages to achieve overlay. That's why they clash.
player.ship.hud = "market_hud.plist"
, rather than a player.ship.hud = this.$marketHUD
, so another script can't simply change that variable, but would have to over-write the whole guiScreenChanged() function (with a working, not just dummy, alternative).Code: Select all
this.$marketMessage = function() { //timer function for market screen
if (guiScreen != "GUI_SCREEN_MISSION") {
this.$gatherMarketInfo(false);
this.$printValues();
player.consoleMessage("\n\n");
}
else {
this.$sweepMarketHud();
return;
}
}
$gatherMarketInfo(false)
being called every eight seconds? I'm overlooking something there?Code: Select all
if (this.$traderRankFeat) { //show profit, if trader rank is enabled
this.$marketTimer.stop();
this.$marketTimer.nextTime = clock.absoluteSeconds + 4;
this.$marketTimer.start();
this.$printValues();
for (i = 0; i < 75; i++)
tab = tab + " ";
player.consoleMessage(tab+"Profit: "+formatCredits((this.$profit - prevProfit)/10, true, true )+"\n\n",3);
this.$setInstruction();
this.$marketTimer.stop();
is flummoxing my compatibility hack. If it weren't for that, it would work (perfectly?).Hm.Solonar wrote:I am using CRR HUD 1.0 2012-01-18
Wildeblood wrote:So in fact, they don't do the same job, but are completely different.![]()
It's the way of the world novadays. Nothings sacred anymore. There just isn't a place you can't stick an advert in.Wildeblood wrote:The main source of incompatibility is that you butchered my beautiful, elegant HUD design and stuck advertisements all over it.![]()
Obviously. I'm not using comms, so that slot in you desing was screaming for something. Ads anyone?Wildeblood wrote:Well, the adverts don't cause a problem per se, but you left no room for comms messages to display.
I have said it before and I'll say it again. Thank you for reviewing my code. I'll change this, so it can be overridden by other oxps.Wildeblood wrote:Point 4 is the problem: as I recall, in guiScreenChanged() you have a hard-codedplayer.ship.hud = "market_hud.plist"
, rather than aplayer.ship.hud = this.$marketHUD
, so another script can't simply change that variable, but would have to over-write the whole guiScreenChanged() function (with a working, not just dummy, alternative).
If I recall it right, this had something to do with Commodity Markets, that changes the prices on the fly. Not very clean, I admit. I'll check it when I have some spare time.Wildeblood wrote:...why exactly is$gatherMarketInfo(false)
being called every eight seconds? I'm overlooking something there?
Thanks for the heads up with these. I'm starting to get sloppy.Wildeblood wrote:...check a timer actually exists before stopping it, even if you "know" it exists.
Brilliant. Let's see if it still works after I have trained mine to behave.Wildeblood wrote:Uploading compatibility hack in a few minutes.
spara wrote:Hm.Solonar wrote:I am using CRR HUD 1.0 2012-01-18That's a simple hud, should not cause any trouble. Does it misbehave after some specific switch? f8-f1 for example?
3. create a whole new set of highlight HUDs.Wildeblood wrote:Untested, but making them work together should be as simple as:-
1. over-writing Trading Assistant's resetHUD() functionwith a dummy function that doesn't do anything;
2. over-writing Trading Assistant's refreshCostDisplay() function with a dummy function that just calls the similar function in marketObserver;
3.stopping the timer(s) in marketObserver;
4.using a HUD with room for comms messages.