It could be slipped finger typo tooOK, I see that. I'll check everything else and hopefully get my scripted synced back up with current standards.
It could be slipped finger typo tooOK, I see that. I'll check everything else and hopefully get my scripted synced back up with current standards.
Not sure, sorry.I just wanted to swap the sounds of the Entertainer and Bard. It sounds easy, but apparently not so. I got as far as SpySurrVox in Sounds/Units. At least that's where the AudioDefines says it is. Where is it really?
<PropertyManipulators>
<PropertySource>
<PropertySourceType>PROPERTYSOURCE_CONSTANT</PropertySourceType>
<PropertyType>PROPERTY_CRIME</PropertyType>
<GameObjectType>GAMEOBJECT_CITY</GameObjectType>
<RelationType>RELATION_ASSOCIATED</RelationType>
<iAmountPerTurn>
<Div>
<Mult>
<AttributeType>ATTRIBUTE_POPULATION</AttributeType>
<Constant>1</Constant>
</Mult>
<Constant>2</Constant>
</Div>
</iAmountPerTurn>
</PropertySource>
</PropertyManipulators>
Thanks for replying. I found it, in vanilla vanilla assets. That's the (feminine) sound effect used for the (male) Entertainer, which I want to swap to the (female) Bard. Now to find the Bard's current sound effect.Not sure, sorry.
Yes, the xml you have there means:@AIAndy or @raxo2222 or @Toffer90 or @Dancing Hoskuld or @ anyone who can answer this for me...
This should mean 1 Crime per 2 population in your cities.
My programming is, as Raxo recently helped to further define on existing traits:
As I get ready to commit my optional trait set here, I wanted to ensure that I am programming these correct. The way I read the display seems more like it's saying 2 crime per population per turn and this is kinda difficult to confirm by watching the game in progress. IF I'm wrong about how this is arranged, I need to be shown how it SHOULD be arranged. I originally had it a bit incorrect with my first attempt.Code:<PropertyManipulators> <PropertySource> <PropertySourceType>PROPERTYSOURCE_CONSTANT</PropertySourceType> <PropertyType>PROPERTY_CRIME</PropertyType> <GameObjectType>GAMEOBJECT_CITY</GameObjectType> <RelationType>RELATION_ASSOCIATED</RelationType> <iAmountPerTurn> <Div> <Mult> <AttributeType>ATTRIBUTE_POPULATION</AttributeType> <Constant>1</Constant> </Mult> <Constant>2</Constant> </Div> </iAmountPerTurn> </PropertySource> </PropertyManipulators>
Well the "* + 1" goes away if you do it Toffer's way. The main remaining problem (imho) is something better (less ambiguous than) a citizen icon to represent "population (level)".I second Toffer's opinion.
We can also change that text string to make it clearer what it does.
Yep, its number of citizens *(+1) divided by 2 in this case.@AIAndy or @raxo2222 or @Toffer90 or @Dancing Hoskuld or @ anyone who can answer this for me...
This should mean 1 Crime per 2 population in your cities.
View attachment 519773
Not without AIAndy's help we can't. Maybe you can. I dunno. I certainly can't. His coding is way too hard for me to follow enough to reformat things in the slightest.I second Toffer's opinion.
We can also change that text string to make it clearer what it does.
I was hoping someone would show me how that could be done. I can't seem to trust myself to adjust the code on these expressions and have it work for the life of me.Why not simplify it like this?
<PropertySource>
<PropertySourceType>PROPERTYSOURCE_CONSTANT</PropertySourceType>
<PropertyType>PROPERTY_CRIME</PropertyType>
<GameObjectType>GAMEOBJECT_CITY</GameObjectType>
<RelationType>RELATION_ASSOCIATED</RelationType>
<iAmountPerTurn>
<Div>
<AttributeType>ATTRIBUTE_POPULATION</AttributeType>
<Constant>2</Constant>
</Div></iAmountPerTurn></PropertySource>
So basically it just means you get an extra crime for every 2 population you have. At 1 you get no extra but at 2 you get an additional 1. Sure I'd love to show decimal property levels but we never set it up to have the granularity to be able to do that and maybe that's better anyhow.More clarification:
You can also use 1/3, 1/4, and so on as long as you remember the Round Down Rule. Each denominator just extends the usage of the 1st value longer ( ie = to denominators integer). And it is not until the value returns = 2 that the next range of city pop sizes activate the next level of Crime per pop.
And that's where I got it from but I just wanted to make sure that's how it's actually working because the expression leaves a little ambiguity.Yep, its number of citizens *(+1) divided by 2 in this case.
Handicaps and knowledge education pseudobuildings - those that have -1 education per pop - works similarly like this too.
The code for the integer expressions is all in IntExpr.h/.cpp. If you want to change how they are displayed, check the buildDisplayString functions. Of course it is not that easy to bring generic expressions in a pleasing text form (maybe we should allow the XML to change how it is displayed).Not without AIAndy's help we can't. Maybe you can. I dunno. I certainly can't. His coding is way too hard for me to follow enough to reformat things in the slightest.
Toffer showed the right simplification. Multiplication with 1 does not change anything.I was hoping someone would show me how that could be done. I can't seem to trust myself to adjust the code on these expressions and have it work for the life of me.
Integer division in programming languages usually truncates (rounds down), but you could easily make the Div round by changing that in IntExprDiv::evaluate.[/QUOTE][/QUOTE]So basically it just means you get an extra crime for every 2 population you have. At 1 you get no extra but at 2 you get an additional 1. Sure I'd love to show decimal property levels but we never set it up to have the granularity to be able to do that and maybe that's better anyhow.
I'm cool with how it is now - I just wanted to confirm that it was what I hoped it was and after simplifying, it should look a little better, though there are 2 every 3 population situations that will display like this.The code for the integer expressions is all in IntExpr.h/.cpp. If you want to change how they are displayed, check the buildDisplayString functions. Of course it is not that easy to bring generic expressions in a pleasing text form (maybe we should allow the XML to change how it is displayed).
Anyone knows where is the image size is defined? In the dll or in some python file? Just in case I'd like to use bigger pictures, like 800x600. Is that possible?In CIV4EventTriggerInfo.xml, I've added:
- EventArt
- The path to the 256x256 dds which the image is in
It's defined in the image pixel resolution, in other words not defined anywhere really.Anyone knows where is the image size is defined? In the dll or in some python file? Just in case I'd like to use bigger pictures, like 800x600. Is that possible?
can we disable msvcprtd.lib on Makefile:88 by uncommenting the option /NODEFAULTLIB:msvcprtd.lib ?
But it was commented out in the current Makefile (one hash symbol, #, before this parameter.)That is exactly what /NODEFAULTLIB does. Without that the cvgamecore.dll would be linked against the debug vc runtime and that would be very bad because the normal vc runtime and the debug runtime aren't binary compatible.
class CvUnit * CvPlot::getBestDefender(enum PlayerTypes,enum PlayerTypes,class CvUnit const *,bool,bool,bool)
void CvGame::setAIAutoPlay(int)
class CvUnit * CvPlot::getBestDefender(enum PlayerTypes,enum PlayerTypes,class CvUnit const *,bool,bool,bool,bool,bool)
DllExport void setAIAutoPlay(int iNewValue);
Also, the last lines in the update note of his mod, version 0.95:f1rpo said:Removed all unused DLLExports and read/write functions
[advc.003i]
(There may still be some DLLExports that the executable only references in unreachable code.)
Flag SERIALIZE_CVINFOS added and set to false, which causes the preprocessor to remove all read/write(FDataStreamBase*) functions from CvInfos.h. As far as I can tell, they're unused, even if the Lock Modified Assets option is enabled.
I'm looking into AND's source and revision logs for this kind of bug...DllExport makes the function accessible to the game exe. Don't change number of arguments if the function is exported (you can't tell the exe how to call) and don't export your own functions as the exe will never call them anyway.Q4:
Why some "CvGlobals" methods are prefixed with DLLExport ? What does that do in the code?