• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Abandoned Balancing smuggler prices

Talisman

Smuggler
Storm Modder
The new dynamic pricing of smuggled goods is causing the prices the smugglers pay to sometimes be below the prices you pay in the stores to buy the goods. :modding

This is not good since the player does not know the price the Smugglers will pay until after the he talks to them on the beach - the player is unable to judge whether it is worthwhile to smuggle or not, given the risks involved

Example - the Eleuthera smugglers only paid me half the price it cost me to buy ebony on Hispaniola. :rofl:rofl.
 

Attachments

  • PotC Smug Prices.jpg
    PotC Smug Prices.jpg
    260.4 KB · Views: 166
  • PotC Smug Prices_2.jpg
    PotC Smug Prices_2.jpg
    277.9 KB · Views: 155
could you tell me the smuggler liking you have at the moment?
You can get it with:
Code:
CheckSmugglerLiking(Pchar)

You see prices can vary a lot between shops already. And the smugglers use the same prices as is offered in the shop but multiplied a bit so they will always give a better return then someone selling in the shop using trustworthy.
I still want to remove this dependency but I haven't found a good way yet.
 
Last edited:
could you tell me the smuggler liking you have at the moment?
You can get it with:
Code:
CheckSmugglerLiking(Pchar)


How ? :unsure

I tried putting the code in the console - but nothing happened - no entry in the error logs - no on screen log message. :(

:shrug
 
use
Code:
traceandlog("liking: "+CheckSmugglerLiking(Pchar));
 
Thanks - that worked :onya

Liking = 77

That is just before I talk to the smugglers on the beach at Eleuthera to sell them the Ebony.


:drunk
 
that's pretty high. Then I'll guess Eleuthera has a very low economy so prices are just really bad there ...

If you open Smuggler_on_shore.c (Dialog)
you will see this code in there:
Code:
        case "Exchange":
            Pchar.quest.Contraband.Counter = 0;
            //Levis add smuggle perk
            float price_multiplier = 1.1;

And in smuggling.c you can find this line:
Code:
#define        SMUGGLING_PRICE_INC_PER_LIKE    0.002    //(float) default 0.002 increase percentage point per liking (50 gives 10%) measure with -50 ad +50.

The price_multiplier is the base multiplier, you can raise this to make the price higher.
The smuggling_price_inc_per_like is how much the multiplier is raised (or lowered if you are below 50) for each like.
Maybe you could come up with better numbers here @Talisman ?
 
in AOP2 was also this kind of nonsense when blue prices are half of the white
so i was change in
store; store utilite
this

tradeModify = 1.0 - 0.2 + stf(refGoods.RndPriceModify);
/*switch(tradeType)
{
case TRADE_TYPE_NORMAL:
tradeModify=0.8+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_EXPORT:
tradeModify=0.3+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_IMPORT:
tradeModify=1.3+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_CONTRABAND:
tradeModify=2.5+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_AMMUNITION:
return basePrice;
break;
}


into this

tradeModify = 1.0 - 0.2 + stf(refGoods.RndPriceModify);
/*switch(tradeType)
{
case TRADE_TYPE_NORMAL:
tradeModify=2.0+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_EXPORT:
tradeModify=1.0+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_IMPORT:
tradeModify=3.0+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_CONTRABAND:
tradeModify=5.0+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_AMMUNITION:
return basePrice;
break;
}

and prices are get some sense
 
in AOP2 was also this kind of nonsense when blue prices are half of the white
so i was change in
store; store utilite
this

tradeModify = 1.0 - 0.2 + stf(refGoods.RndPriceModify);
/*switch(tradeType)
{
case TRADE_TYPE_NORMAL:
tradeModify=0.8+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_EXPORT:
tradeModify=0.3+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_IMPORT:
tradeModify=1.3+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_CONTRABAND:
tradeModify=2.5+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_AMMUNITION:
return basePrice;
break;
}


into this

tradeModify = 1.0 - 0.2 + stf(refGoods.RndPriceModify);
/*switch(tradeType)
{
case TRADE_TYPE_NORMAL:
tradeModify=2.0+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_EXPORT:
tradeModify=1.0+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_IMPORT:
tradeModify=3.0+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_CONTRABAND:
tradeModify=5.0+stf(refGoods.RndPriceModify);
break;
case TRADE_TYPE_AMMUNITION:
return basePrice;
break;
}

and prices are get some sense
That would make them way to high at some places.
The problem here is the influence the economy system has on the prices. The difference between economies can either make the gab in price bigger or smaller. and he was just unlucky here.
I have planned to change this for beta 5, but it requires a lot of work so for now I just keep it like this and try to patch things so they are workable.
 
Back
Top