[BtS] Super Spies

i'm wondering if it's just me or has anyone else encountered this problem

No you are not the only one to experience out of sync.. I had to remove the Superspies modcomp from my mod until Trojan S... gets it fixed..

Really hope you find out whats wrong.. course i love this modcomp and would be nice to use it in mp games to...
 
Great contribution, it seems to be made cleverly ! I have included it to my mod.
 
@jojoweb
I tried porting SS 1.23 to BTS 3.17. I get a crash in the medieval age every time. Have you got SS consistently working with BTS 3.17? Kinda scratch my head as to what I am doing wrong if anything.
Cheers.
 
@jojoweb
I tried porting SS 1.23 to BTS 3.17. I get a crash in the medieval age every time. Have you got SS consistently working with BTS 3.17? Kinda scratch my head as to what I am doing wrong if anything.
Cheers.

Hum, if you could send me your files and a save file (just before it crashes), i would be able to help you much ;-). Personnaly, i haven't tested my mod since i have included SS.
 
Hum, if you could send me your files and a save
Thanks jojoweb. At least the crash is not intermittent. It's rock solid every game around medieval. I've been testing it with:

1) chipotle
2) python console
3) game.aiplay 300

The supplied auto-turn is right before the crash although you can reproduce a crash every time using the above test sequence.

The build I have here attached is intended as an exact port of this mod to BTS 3.17 for people to enjoy as a stand alone mod or as an addon to my own mod RevolutionDCM.

At this stage I don't have debugging facilities so it verges on ridiculous trying to find CTD's in unstable builds. So far the "crash" doesn't seem to be any of these:
1) nothing in the python debug log files shows up
2) nothing in the XML log seems to show up *I think*

Cheers.
 
Thanks jojoweb. At least the crash is not intermittent. It's rock solid every game around medieval. I've been testing it with:

1) chipotle
2) python console
3) game.aiplay 300

The supplied auto-turn is right before the crash although you can reproduce a crash every time using the above test sequence.

The build I have here attached is intended as an exact port of this mod to BTS 3.17 for people to enjoy as a stand alone mod or as an addon to my own mod RevolutionDCM.

At this stage I don't have debugging facilities so it verges on ridiculous trying to find CTD's in unstable builds. So far the "crash" doesn't seem to be any of these:
1) nothing in the python debug log files shows up
2) nothing in the XML log seems to show up *I think*

Cheers.


Hum, strange. I compiled the files, played with your auto-save, and it works, i don't have any crash. Did you do anything special in this game ?

I join the compiled DLL. I haven't made any modification...
 

Attachments

Hum, strange. I compiled the files, played with your auto-save, and it works, i don't have any crash.

Well at least that's some good news and thanks for giving it a go. I downloaded your own compiled DLL of my source files and I still get the crash!? If I assume that you used all the other resources in my build unchanged (XML's and Python) and only recompiled, then I am seriously scratching my head....

Maybe other people can try as well....

@Trojan Sheep where ever you are
Having tried to update your code, I find that I can say this. Beautiful job. Perfectly commented and you are obviously a great and intelligent coder. I thank you.

@Anyone
Why are there not more comments and discussions about this mod? I do not understand. There is still controversy isn't there? For example, the premise is that AI civs are better off conducting espionage on their disliked rivals isn't it? However vanilla BTS doesn't discriminate quite as much. Which is better? (I don't know the answer)

For example, in vanilla BTS, I have a very wealthy and friendly neighbour who doesn't have much territory because she is buffered by a hostile civ on the other side. She will direct her espionage on me a friend, despite her hostile neighbour on the other side. If she were not to do this but instead direct all her espionage on her hostile neighbour, would this be good or bad for her?

What would Super Spies do in this situation? I do not know, because I haven't been able to play it.
Cheers.
 
Ive have recently removed SS from my mod when I switched to 3.17 and becourse it gave OOS in MP games but now I also crash some where around the medieval ages.. and I cant find any thing wrong with my mod.. thought I had Removed every thing from SS from the mod but maybe I missed some thing or ????
 
Well at least that's some good news and thanks for giving it a go. I downloaded your own compiled DLL of my source files and I still get the crash!? If I assume that you used all the other resources in my build unchanged (XML's and Python) and only recompiled, then I am seriously scratching my head....

There's a solution ^^. You can generate a MPLog.txt file. I have included some elements in the compiled DLL file which permit to know where the crash comes from. Follow these steps:

Spoiler :
Turn, temporary, these values to 1:

; Overwrite old network and message logs
OverwriteLogs

; Enable rand event logging
RandLog

; Enable message logging
MessageLog

in this file : My Documents\My Games\Beyond the Sword\CivilizationIV.INI.

Then, try a game, and send me the My Documents\My Games\Beyond the Sword\Logs\MPLog.txt generated file (to el_zozo@hotmail.fr).


I have tested this mod component in my mod, and it improves really my interest for espionage ! Thanks again Trojan Sheep ;-).
 
Hi ! Glider1 and me have found an error in the code (in EspionageMissionTypes CvPlayerAI::AI_bestPlotEspionage(...)):

The Original Code:

Spoiler :
//TSHEEP - Counter Espionage (Why the heck don't AIs use this in vanilla?) - Requires either hatred or memory of past Spy transgression
if ((AI_getAttitudeWeight(pSpyPlot->getOwner()) < (GC.getGameINLINE().isOption(GAMEOPTION_AGGRESSIVE_AI) ? 50 : 0) ||
AI_getMemoryCount(eTargetPlayer, MEMORY_SPY_CAUGHT) > 0) &&
GET_TEAM(getTeam()).getCounterespionageTurnsLeftAgainstTeam(GET_PLAYER(eTargetPlayer).getTeam()) <= 0)
{
...


At this step of the function, eTargetPlayer musn't be definitively defined, and in some cases, eTargetPlayer can be equal to NO_PLAYER (and so, AI_getMemoryCount(eTargetPlayer,...) and GET_TEAM(...).getCounterespionageTurnsLeftAgainstTeam(GET_PLAYER(eTargetPlayer).getTeam()) can't work). This type of case seems to be rare, but it can happen.

The valid code is :

Spoiler :
//TSHEEP - Counter Espionage (Why the heck don't AIs use this in vanilla?) - Requires either hatred or memory of past Spy transgression
if ((AI_getAttitudeWeight(pSpyPlot->getOwner()) < (GC.getGameINLINE().isOption(GAMEOPTION_AGGRESSIVE_AI) ? 50 : 0) ||
AI_getMemoryCount(pSpyPlot->getOwner(), MEMORY_SPY_CAUGHT) > 0) &&
GET_TEAM(getTeam()).getCounterespionageTurnsLeftAgainstTeam(GET_PLAYER(pSpyPlot->getOwner()).getTeam()) <= 0)
{
...
 
@jojoweb
Absolutely brilliant and thank you so much for this as well as supplying the explanation. To find out what was causing it is very wonderful indeed. You certainly know how to trouble shoot code! I have played through a couple of games through to post information age without a crash.

I will release your fix and post it here as well as supply this mod as an addon to RevDCM.
Cheers, brilliant and thanks!

PS) This excellent bug find by no means erodes the excellent efforts of Trojan Sheep's work. C++ is so totally unforgiving of any error no matter how small.
 
Not really related to this mod, but since you seem to have dealt with the espionage code more than I have I thought I'd ask:
Would it be possible to break up espionage points into two seperate values, one for passive effects and counter espionage and the other for the actual espionage missions?
Or maybe to just make active missions cost gold instead of espionage points, but still have them be more costly based on you rivals espionage points?

(I'm still hoping to implement BtS-like espionage in my modmod of FfH, but I was wanting to split it up into seperate categories Divination and Subterfuge. Some civs/religions would be much better at one than the other.)
 
The attachment below is a confirmed working version of Super Spies for BTS 3.17. Played through another game into the future age without a CTD.

Big thanks to Trojan Sheep for his excellent work and sharing this with everyone and to Jojoweb for debugging it and supply the solution for us all.

I will be including this mod as an addon to RevolutionDCM in the near future.
Cheers.

PS) as for improvements or changes to this mod, it is currently beyond my scope
 
@Cripp
I get exactly the same error "Tag: UNITCOMBAT_SPY in Info class was incorrect" etc if I try to merge this mod into BUG 3.0. This mod works fine on it's own. Have you worked out what is going on?
Cheers.
 
If anyone is interested, I have merged Super Spies 1.23 for BTS 3.17 into RevolutionDCM below. If you want to just play super spies with BTS, Solver patch and the Better BTS AI, turn off Revolutions, DCM and IDW and you should be right to go.
Cheers.
 
Back
Top Bottom