K-Mod: Far Beyond the Sword

hey guys,

I know that this probably isn't the place for it, but I am running out of ideas.

I have an error compiling my sdk, and I think it is coming from something I damaged/deleted/overwrote in kmod. So I was hoping to find people who are familiar with it here who might be able to help me run down the problem and fix it. Here is the error message:

Spoiler :

1>CvUnit.obj : error LNK2019: unresolved external symbol "public: int __thiscall CvPlayerAI::AI_getEnemyPlotStrength(class CvPlot *,int,bool,bool)const " (?AI_getEnemyPlotStrength@CvPlayerAI@@QBEHPAVCvPlot@@H_N1@Z) referenced in function "public: bool __thiscall CvUnit::pillage(void)" (?pillage@CvUnit@@QAE_NXZ)
1>CvUnit.obj : error LNK2019: unresolved external symbol "public: int __thiscall CvPlayerAI::AI_getOurPlotStrength(class CvPlot *,int,bool,bool)const " (?AI_getOurPlotStrength@CvPlayerAI@@QBEHPAVCvPlot@@H_N1@Z) referenced in function "public: bool __thiscall CvUnit::pillage(void)" (?pillage@CvUnit@@QAE_NXZ)


Thanks in advance to anyone who can help, so as not to clutter this thread, please reply:

Here

or PM me :-)

thanks guys :-)
 
i know its not really pertinent to gameplay but i like the new readable xml log!

btw that thing i pester you about autoplay being functional in mp (only if sp mode is invoked upon startup prior to mp) is present on both my machines/setups. one win7, one xp. not important mind you just puzzling.
It is puzzling. I'd like to fix it, but I still haven't been able to reproduce the problem! According to my PythonDbg.log, all python data is cleared when I start / join a different game. So I don't know how the autoplay stuff could persist from the single player game to the multiplayer game (and it doesn't). -- I don't know why it would be different on your computer. All I can think of is that we might have different versions of Beyond the Sword itself! (According to the "about this build" page, I have version 3.1.9.0 (128100).)

At the start of my python log file, it says "Initializing Python", and then has a bunch of paths and initialization junk. Some way down through the junk it says
14:06:40 DEBUG: BugUtil - looking up BugEventManager.configure
14:06:40 DEBUG: BugUtil - calling <func BugEventManager.configure ((), {'logging': True, 'noLogEvents': set(['mouseEvent', 'gameUpdate', 'kbdEvent'])})>
Initializing AIAutoPlay Mod
. This means that autoplay is ready to use.

But then, if I exit to the main menu and join a multiplayer game, somewhere it the python log it says this:
UnInit Python
Initializing Python
and then again has all the same paths and initialing info as it had the first time, except that when it gets to
14:10:17 DEBUG: BugUtil - looking up BugEventManager.configure
14:10:17 DEBUG: BugUtil - calling <func BugEventManager.configure ((), {'logging': True, 'noLogEvents': set(['mouseEvent', 'gameUpdate', 'kbdEvent'])})>
it does not follow up with "Initializing AIAutoPlay Mod". (because in multiplayer mode that mod doesn't get loaded)

..

So, in summery, on my computer it seems to work correctly. When I start the single player game, it loads everything, including autoplay; but when I join a different game, it first clears everything and then reloads it all - without autoplay.

(Note, it still says "load_module AIAutoPlay" the second time, but it will not say "Initializing AIAutoPlay Mod")

So I haven't been able to reproduce the problem, and without that, I don't know how to fix it.

Btw. Thanks for testing the multiplayer thing.
 
There is no in-game option to turn off global warming; but if, for whatever reason, you decide that you can't stand it and you have to get rid of it by any means necessary, then I suggest you edit the XML to make it not happen.

The best way to disable it would be to open GlobalDefinesAlt.xml, and change GLOBAL_WARMING_RESISTANCE from 10 to 100, or something like that. I'd guess that any number above around 40 would effective make the world completely immune to global warming.

But really, I suggest you just try the game as is. The global warming system completely different from the system in unmodded game, and I think you'll find that it's an interesting and fun part of the game - rather than just a slap-in-the-face like the old system was...
 
V1.32. I've encountered a problem.

I always play without spies. I've double-checked the in-game settings and it says "no espionage" but in a city window I see the spies icon top-left just below the science icon. I also have the spies % sliderbar when on the map.

I would have included a picture but something is preventing me from adding an attachment (probably the settings on this computer!). Ha, fixed it...
 

Attachments

  • Civ4ScreenShot0001.JPG
    Civ4ScreenShot0001.JPG
    170.4 KB · Views: 68
Thanks 3iff. I've identified the source of the problem and fixed it for the next version.

The bug was due to a fault in a change I made a few version ago, but since I never play with "no espionage" I hadn't noticed it.

By the way, do you have any thoughts about possibly changing the way "no espionage" behaves? The current system (unchanged by K-Mod) is that all would-be espionage simply counts as culture instead of espionage, and the culture threshold values are changed to roughly compensate for the increase in culture sources. To me, this seems quite strange, and also has some serious balance issues. The various espionage multiplier buildings suddenly become some of the best culture buildings in the game; and there is a somewhat bizarre effect with spy specialists and some wonders producing flavourless great people points...

As I said, I never play with "no espionage" &#8211; partly because I think it's a decent part of the game, and partly because the "no espionage" option messes with the game's balance in such a strange way.

So.. as someone who does use "no espionage", what do you think? Do think it is fine as it is? Would it be better if, for example, would-be espionage sources simply did nothing instead of producing culture? Perhaps the game should automatically disable buildings which are entirely espionage related. (eg. Security Bureaus and Intelligence Agencies would be automatically disabled, because all of their effects are related to espionage. But courthouses and jails would not be disabled, because they include some non-espionage related effects.)
 
Brilliant. I'm probably one of the few people who don't use spies. I've tried them in the past but can't really get to grips with them.

As I never play for a culture win, I don't see espionage buildings as important sources of culture. I might use them if I'm trying a culture squeeze on an opposition city but once I've popped borders then that's usually as far as it goes with culture buildings.

The culture for espionage trade-off is ok, I've learned to live with it but I don't have any thoughts as how to change it. Disabling pure espionage buildings would be a good idea as I'd never have a desire to build Security Bureaus and Intelligence Agencies (there's no point with no spies).

I wouldn't object to getting nothing from espionage (instead of culture) although I would miss the culture from courthouses...

Oh, I like the speed gains from your changes. Turns just zoom through.

One thing I do miss, is the level gains being shown when trying to build new units...but I think you were having problems with that aspect? (ie, building a swordsman, the mouseover would show +3 for barracks and +2 for civics, etc)
 
Ok. Version 1.33 is up and ready. Let me know if there are any problems with it.

Uncharacteristically, it includes a bunch of (fairly small) unit balance adjustments... We'll see how that goes.

It also has the faster selection response time fix; and a bunch of general improvements to unit selection.

Actually, a couple of minutes ago I posted something here which described a new selection option. I'll just quote the relevant part here for convenience:
Spoiler :
...for players who still find the effect of the Shift key to be a bit unpredictable or confusing, I've implemented a new option called Simple [Shift] Unit Selection. With this option enabled, selecting units with the shift key will always only target a single units - and it will always from a 'group' when units are selected or deselected using shift. So in general, it's basically more predictable and intuitive.

This version also includes something that Lenowill asked for awhile back: a unit cycling suppression hotkey. The deal is that if you hold "X" while doing something, the game will not automatically cycle to the next unit. It will just keep your unit selected even if it has no moves left. (When you're finished, press 'w' or something normal like that to cycle to the next unit.)

Regarding the corporation founding messages, I looked into it and found that it would be easy enough to remove the "has been incorporated message", but it would be a bit of a chore to remove the "has completed X corp" message. So, although I could remove one message to clear away the duplication, the message that would be removed would be the one that I think is the more useful message... So I've decided to just leave it alone for the time being. Maybe I'll change it in a later version. However, I did change the corp spread message so that players only get one message when a corp spreads to one of their cities, rather than two messages.
 
I've been wondering in light of the recent discussion here, which mods use K-Mod as a base? I don't recall seeing any stating they do, so I'm a bit curious.
 
My mod is. :) It's called KROME. It's still a beta, but if anyone is interested, there's a link in my sig. Right now it just uses the dll, BUG interface, and Global Warming changes. I'm working on merging the 1.32 SDK with Advanced Diplomacy 2. Actually, I've finished the merge, I just have a couple of bugs to work out.
 
I see from your changelog that you lowered the collateral damage cap on siege units. While I empathize with the desire to reign them in, I think this is the wrong way to do it. Lowering the unit cap makes them less dangerous to large stacks, but siege units are supposed to be dangerous to large stacks - in fact, they're the only way to really counter them.

I think a better idea would be to lower the maximum amount of damage that siege units can inflict; this would preserve their effectiveness against stacks of doom, but it wouldn't let them weaken opponents to the point that your choice of other units is irrelevant. As an aside, this would mean seeing fewer siege units since you won't need as many to hit the damage cap.
 
Coventry, when it grows, automatically puts the one person as a "citizen" specialist for 1 hammer, annoying to have to micro that...its done that the last 3 times its grown, and is not happiness limited.

(1.32 not the latest version btw)

Edit: I love, ALL, your balance changes I just read in the version notes. Maybe the Grenadiers couldve gotten a bit more like +15% city attack (instead of 10%) or something like that, but Great Work! I might be making some of those boosted units now lol. Some of them I havent made ever in 100s of civ games over years and years...
 

Attachments

Coventry, when it grows, automatically puts the one person as a "citizen" specialist for 1 hammer, annoying to have to micro that...its done that the last 3 times its grown, and is not happiness limited.
When a city has no :hammers: like that one, the governor gets a bit desperate to get some minimum amount of :hammers:. Hence the assigning of the 'citizen'. If you tell the city to 'emphasize commerce', the governor will stop caring about having a minimum amount of :hammers: and so it will stop auto-assigning the citizen. (In that particular city, it will also stop using that unimproved plains tile.) – Perhaps I should tell the governor that the minimum :hammers: rule shouldn't apply when rush-buy or slave-whip is an option...

I see from your changelog that you lowered the collateral damage cap on siege units. While I empathize with the desire to reign them in, I think this is the wrong way to do it. Lowering the unit cap makes them less dangerous to large stacks, but siege units are supposed to be dangerous to large stacks - in fact, they're the only way to really counter them.

I think you're right that collateral attacks are suppose to be the bane of large stacks. The truth is, the reduction in the max units was not so much about 'reigning them in' but rather about tweaking how many of these guys are needed to cripple a large stack. I actually don't expect the changes to make a big difference; it's mostly just an idea I've been toying with for a long time now and I thought I might as well see how it goes while I'm changing all this other stuff. I'd be interested to know if you still think the change was off-the-mark after you've played a game or two. (Although, you probably wont' be playing with these changes anyway, right? I'd guess you'd mostly play with the balance changes of your own mod.)
 
I think you're right that collateral attacks are suppose to be the bane of large stacks. The truth is, the reduction in the max units was not so much about 'reigning them in' but rather about tweaking how many of these guys are needed to cripple a large stack. I actually don't expect the changes to make a big difference; it's mostly just an idea I've been toying with for a long time now and I thought I might as well see how it goes while I'm changing all this other stuff. I'd be interested to know if you still think the change was off-the-mark after you've played a game or two. (Although, you probably wont' be playing with these changes anyway, right? I'd guess you'd mostly play with the balance changes of your own mod.)

Ah, that makes sense. Now that I look back, you only changed the higher level siege units and only by a small amount.

I will try it out ("my" mod, by the way, is just yours plus a few xml edits, so I actually will be using those changes), but just off the cuff, I think I misunderstood your intentions, and that these changes are probably small enough that neither I nor most others would have any problem with them.
 
@Cruel
There is not. (Other than on my own computer, where I keep all the junk I've uploaded in one big folder.)

Currently the easiest way to get an old version is to click the appropriate version tag on github, download the files, and recompile the dll. (Or, just make sure you download and keep all the new versions when they are uploaded! But obviously that can't be done retroactively...)

Out of interest, what did you want the old versions for?
 
@Cruel
There is not. (Other than on my own computer, where I keep all the junk I've uploaded in one big folder.)

Currently the easiest way to get an old version is to click the appropriate version tag on github, download the files, and recompile the dll. (Or, just make sure you download and keep all the new versions when they are uploaded! But obviously that can't be done retroactively...)

I've had some past versions but I deleted it, and now I have this version and before version. It is exactly what I'm going to start.

Out of interest, what did you want the old versions for?

Basically to know better your changes by version. You're doing a great job with their changes and wanted to learn more. Your changes in my opinion still going in the right direction.

My challenges are two: the first is my basic knowledge, I'm not a programmer, and the second, time: civ is a hobby. With versions in SVN is easier this identification of files and their changes.

I hope this will help me better identify the changes you made comparing the change log with the files, since only looking at the history of the file is still hard for me.

Good to know I can get the versions by github. Thanks.
 
Hmm, interesting balance changes. I appreciate your trying to get some of the least popular units back in the game. Subs, stealth destroyers are rarely used. I'll try out this new version tonight
 
According to my PythonDbg.log, all python data is cleared when I start / join a different game

hmmm, the only time i can get python uninitialized is when i exit civ entirely. cleared kmod folder in my docs and installed v1.33.
again it's no biggie, doesn't deduct from my pleasure in k-mod.

however, should you have a spare moment i attach my debuglog, in the hope you can see something unusual. in this log, all i did was:
start civ, singleplayer/playnow/random stuff, settle persepolis, hit ctrl+shift+x and autoplay dialog appears. exit to main menu,multiplayer/LAN/newgame/random stuff, settle persepolis, make random moves, next turn,hit ctrl+shift+x and again autoplay dialog appears, hit cancel, exit to desktop.
 

Attachments

Back
Top Bottom