Cdcooley's econfix 0.8 does not work under 0.9.4. It does work under 0.9.2.
Link to the mod: http://home1.gte.net/cdcooley/
To check if it works, e.g. merchants with 800 gold should have 1332 gold (e.g. Arrille), trainers should have the new topic "'offer training" instead of the training dialog on top.
The local script with 0.9.4 problems is this one:
[code]begin cdc_service_fixup
; Adjusts abilities and gold every time the cell reloads because they get reset.
; But the marker items in inventory are permanent once set.
;short quantum
short action
long npcref
long first
long temp
long gold
float gscale
if ( MenuMode == 1 )
return
elseif ( CellChanged == 1 )
Disable
SetScale 0.5
return
endif
set cdc_service_monitor.pulse to 0
if ( GetScale < 0.5 )
return
elseif ( GetScale < 1.0 )
;MessageBox "Deleting."
SetDelete 1
return
endif
; Search the cell for service providing NPCs (one per frame should be good enough)
ifx ( npcref )
setx npcref to xNextRef npcref
else
set gscale to GetScale
AddTopic "'offer training"
setx npcref to xFirstNPC
if ( npcref == first )
set npcref to 0; Same as last time, no need to run again.
; This should catch game reloads since the references change each session.
else
set first to npcref
endif
endif
if ( npcref == 0 )
;MessageBox "Services modified."
Disable
SetScale 0.05
return ; End of the list
endif
setx temp to npcref->xRefType
if ( temp != 1598246990 )
set temp to 0; Not an NPC
endif
ifx ( temp ) ; Only check NPCs to see if they offer services
set temp to 0
setx temp to npcref->xGetService temp
endif
if ( temp == 0 )
return ; Found something, but it's not a service providing NPC
endif
; Training is handled through dialog. Record original mercantile value of trainers
setx temp to npcref->xIsTrainer
ifx ( temp ); A trainer!
xSetRef npcref
set temp to ( GetItemCount "cdc_trainer_mercantile" )
ifx ( temp )
else; Unrecorded trainer, store mercantile score
xSetRef npcref
set temp to GetMercantile
npcref->xAddItem "cdc_trainer_mercantile" temp
endif
; Update current stats (EVERY CELL CHANGE)
set temp to -16384
npcref->xModService temp; Take away the training option
xSetRef npcref
SetReputation 252 ; Value used in dialog to detect a trainer
endif
; Probably shouldn't change the attributes for "companions" but it's too hard to detect them here.
set temp to ( ( ( player->GetLevel ) * 2 ) + 80 )
xSetRef npcref
SetPersonality temp
xSetRef npcref
SetLuck temp
set temp to ( ( ( player->GetMercantile ) + temp ) / 2 )
xSetRef npcref
SetMercantile temp
; Merchants will be assigned more gold. Record original barter gold amount.
xSetRef npcref
set temp to ( GetItemCount "cdc_barter_gold" )
setx gold to npcref->xGetBaseGold
ifx ( temp ); Gold was previously recorded
if ( gold != temp ); Current base doesn't match the original, so nothing to do.
return
endif
set gold to temp
else; Gold amount not recorded yet, store it with items.
if ( gold == 0 )
set gold to 1; If they don't have gold, give them one piece as a flag.
endif
npcref->xAddItem "cdc_barter_gold" gold
endif
setx temp to npcref->xGetGold
if ( temp != gold ); Current and base match so,
set temp to 0; don't adjust the current amount.
endif
; Base gold needs to be adjustsed
set gscale to ( gold + 500.0 )
set gscale to ( 100000000.0 / gscale )
set gscale to ( GetSquareRoot gscale )
set gscale to ( GetSquareRoot gscale ); yes, twice
set gscale to ( gscale / 10.0 )
set gold to ( gold * gscale )
ifx ( temp )
npcref->xSetGold gold
endif
npcref->xSetBaseGold gold
end[/code]
Logged In: YES
user_id=1733205
Originator: YES
PS: Interestingly I had the same issue with the MGE (3.0.3) build of MWSE, the custom (NT or XP) version that does not need a start of MWSE.exe itself.