 |
|  |
 |
|
Spanscape
|
|
Hey wanted to first thank you guys for making such a great mod for CTP2. It works great for me single player and makes the game substantially more fun.
However, when I try to play a multiplayer game with 2 humans and 6 AIs, the game will crash to the desktop (on the host/Player 1 machine) under the following circumstance(s):
* Player 2 (the non-host) conquers a city which is the last city of an AI civ and ends their turn. On the way to player 1's turn, the game appears to crash when it gets to where the conquered AI civ would have its turn.
* When I try the multiplayer game as singleplayer right before Player 2 conquers the civ (with the CPU taking over for Player 1 in this case), there is no crash.
* In multiplayer, if Player 1 conquers the civ instead, the game will crash after Player 1's turn ends.
* Crash occurs on Win98, WinME and WinXP as the host.
* Doesn't matter if either Player 1 or Player 2 chooses to 'bloodbath' or 'extend empire' or if the city gets destroyed because it's a size 1.
* One of the MP save games from my debugging is attached where either Player 1 or Player 2 can take the city after a turn.
* This is v2.1 of the mod, with the most recent (as far as I can tell) version of Wouter's SLC file that addressed the city disband crashing.
--
I tried turning off some of the triggers in Wouter's scripts, specifically commenting out the militia and partisan code. The partisan code shouldn't have mattered since we didn't reach Nationlism.
Any help would be appreciated, I'm hankering to play this mod multiplayer and its been so great single player!
Attachment: player1conquer.zip
This has been downloaded 3 time(s).
|
|
|  |
 |
|
Spanscape
|
|
See results of testing in thread below. 
Last edited by Spanscape on 21-03-2002 at 22:04
|
|
|  |
 |
|
Spanscape
|
|
Okay problem is isolated to the CRAG_script.slc file.
I played two quick multiplayer games where I gave myself 5 settlers and 100000 gold.
Game#1: I kept CRAG_gamefile.txt (which is the 1.3 Beta gamefile) pointing to CRAG_script.slc. Cranked out 5 chariots with Player 1 (the host), zoomed over to a neighbor and wiped them out. When I ended the turn, crash to desktop. I know I was using the Cradle SLIC, since both of us had militia.
Game #2: Changed CRAG_gamefile.txt to point to just scripts.slc and restarted the game. Cranked out 5 chariots again with Player 1 (the host) and zoomed to a neighbor. Conquered them -- no crash upon ending turn. Conquered another neighbor, no crash. No militia this game for me, so I know the Cradle scripts were disabled.
At least it's isolated. I suppose I can now start removing specific scripts, one at a time, to identify which was is causing it to bomb.
Any suggestions on the order of attack?
Last edited by Spanscape on 21-03-2002 at 22:10
|
|
|  |
 |
|
Spanscape
|
|
Just did a diff between APOL_diplomod.slc and CRA_diplomod.slc...
And, guess what? Apolyton pack uses Diplomod v3.6 and Cradle has Diplomod v3.5... there's about 30 lines of difference, where a few of the differences are use of g.player instead of player[0] and vice versa.
Going to try my test with the APOL_diplomod.slc (so v3.6) and see how it jives.
|
|
|  |
 |
|
Peter Triggs
|
|
Gone Fishin, Canada
Jan 2000 time: 05:18
|
|
While you're doing all this, have DebugSlic set to 'Yes'; you'll get better error messages.
|
|
|  |
 |
|
Spanscape
|
|
See what happens when I decide to stay home and telecommute? I end up getting side-tracked into solving CTP2 problems. =)
At any rate, tried out Diplomod 3.6 under Cradle (replaced the CRA_diplomod.slc file with my APOL_diplomod.slc file, as well as updated CRA_diplomod_str.txt).
And... still crashes! However, Diplomod 3.6 works fine with Apolyton mod, as well as a mod I cranked out with all of the Cradle units but based on the Apolyton SLCs.
So, there's some funky combination of Cradle and Diplomod (3.5 or 3.6) which causes this crash...
--
With DebugSLIC=Yes, I just see the usual assortment of 'invalid # of arguments in isHumanPlayer' messages. Then as I conquer the AI civ, I get another of those in a CaptureCity trigger, then the crash to desktop.
Last edited by Spanscape on 21-03-2002 at 23:46
|
|
|  |
 |
|  |
 |
|
Spanscape
|
|
Yes, did all that to try out Diplomod 3.6 under Cradle. And you are correct, MedMod does use 3.6, and I see the crashing there as well when an AI civ is conquered.
At any rate, 3.6 under Cradle also crashes, but Diplomod 3.6 doesn't crash under Apolyton. Which leaves us to it being a combo of two mods. At any rate, I ran the latest test using this SLIC combo:
#include "CRA_airunit.slc"
//#include "CRA_capturecity.slc"
//#include "CRA_homeguard.slc"
//#include "CRA_springfield.slc"
#include "CRA_wonderbuildings.slc"
#include "CRA_wonderunits.slc"
//#include "CRA_frenzy.slc"
#include "CRA_diplomod.slc"
//#include "CRA_pow.slc"
#include "CRAG_updater.slc"
#include "CRA_disasters.slc"
#include "CRA_Goods.slc"
#include "CRA_soundfix.slc"
//#include "CRAI_KillCityOption.slc"
//#include "CRAI_FortsForAIs.slc"
//#include "CRAI_ComImpSForAIs2.slc"
//#include "CRAI_pw_cheat.slc"
#include "CRAI_infras.slc"
Result: still crashes. Going to try it with Diplo 3.6 *only* and see what happens.
|
|
|  |
 |
|
Spanscape
|
|
Okay, I'm stumped... I ran *only* Diplomod 3.6 in this last test and it crashed. I was expecting whatever SLC was conflicting to not be enabled, so Diplomod would behave.
FYI, CRAG_script.slc had everything but Diplomod out:
//#include "CRA_airunit.slc"
//#include "CRA_capturecity.slc"
//#include "CRA_homeguard.slc"
//#include "CRA_springfield.slc"
//#include "CRA_wonderbuildings.slc"
//#include "CRA_wonderunits.slc"
//#include "CRA_frenzy.slc"
#include "CRA_diplomod.slc"
//#include "CRA_pow.slc"
//#include "CRAG_updater.slc"
//#include "CRA_disasters.slc"
//#include "CRA_Goods.slc"
//#include "CRA_soundfix.slc"
//#include "CRAI_KillCityOption.slc"
//#include "CRAI_FortsForAIs.slc"
//#include "CRAI_ComImpSForAIs2.slc"
//#include "CRAI_pw_cheat.slc"
//#include "CRAI_infras.slc"
--
Any thoughts on what else I can disable to see if I can get Diplomod to behave?
|
|
|  |
 |
|
Peter Triggs
|
|
Gone Fishin, Canada
Jan 2000 time: 05:18
|
|
quote:
What exactly does DebugSlic do?
|
It gives you more and better error messages. With DebugSlic =No, the game can run even though it contains some errors.
Spanscape, what are you getting when these crashes are happening?
I downloaded one of your savegames a couple of days ago, but I couldn't put it into multiplayer and get it working.
|
|
|  |
 |
|
Spanscape
|
|
quote: Originally posted by hexagonian
Try using the default diplomacy files. The files would be
diplomacy.txt
diplomacyproposal.txt
to tie that file into the test setup |
Yup, just tried this - no crashing works fine.
Peter: Basically whenever I conquer a civ (destroy their last city) in a multiplayer game under Cradle or MM2 (not not Apolyton), something in the Diplomod (3.5 and 3.6) is causing me to immediately crash to the desktop on the host machine as soon as the conquering civ ends its turn (whether it be the host or the joined player). I get no messages, no popups if DebugSlic=Yes, just back to Windows.
I suppose my next step is to start commenting out triggers in CRA_diplomod.slc and see if I can isolate the problem...
|
|
|  |
 |
|
Spanscape
|
|
Edit: deleted duplicate post
|
|
|  |
 |
|
Spanscape
|
|
quote: Originally posted by Dale
BTW, does the crash occur IMMEDIATELY when you hit end turn, or does it crash where normally the destroyed civ would take it's turn? IE: Hit end turn - CRASH! or Hit end turn - player 2 goes, player 3 goes, player 4 (destroyed) CRASH! |
My most recent tests have been running 'Cradle 1.3 Beta' which points to Diplomod 3.5.
Just ran a test where I commented out the following 4 triggers:
HandleEvent(BeginTurn) 'DIP_EmbassyCheck' pre
HandleEvent(BeginTurn) 'DIP_MainRoutine' post
HandleEvent(BeginTurn) 'DIP_EstabEmb' pre
HandleEvent(BeginTurn) 'WDT_MainRoutine' pre
Still crashes with these 4 out of CRA_diplomod.slc. Double-checked and removing CRA_diplomod.slc from CRAG_script.slc means no crashing.
At first I thought the game crashed when it reached the dead AI civ in the turn cycle. But then I realized that the other human player was at index 2 (after myself as the host and index 1 conquered the civ) never got their turn, with the AI civs being index 3-8. So its at the beginning of a human turn when the host crashes.
BTW, whats the difference between g.player and player[0] in a trigger?
|
|
|  |
 |
|  |
 |
|
Spanscape
|
|
Ok, in addition to these 4 (which removing by themselves do not cause the crash):
HandleEvent(BeginTurn) 'DIP_EmbassyCheck' pre
HandleEvent(BeginTurn) 'DIP_MainRoutine' post
HandleEvent(BeginTurn) 'DIP_EstabEmb' pre
HandleEvent(BeginTurn) 'WDT_MainRoutine' pre
I took these 5 additional triggers and 2 functions out:
HandleEvent(InitDiplomaticState) 'DIP_InitDiploState' pre
HandleEvent(NextDiplomaticState) 'DIP_NextDiploState' pre
void_f DIP_EstablishEmbassyFunc(int_t recipient)
HandleEvent(ContactMade) 'DIP_FlagContactMade' pre
HandleEvent(EstablishEmbassy) 'DIP_FlagEmbassyMade' pre
HandleEvent(BeginTurn) 'WDT_BeginGame' pre
int_f WDT_GetDistanceNearestCity(location_t theLoc, int_t thePlayer)
And... *bling* no more crashing...
|
|
|  |
 |
|
Spanscape
|
|
quote: Originally posted by J Bytheway
Try it with none of the embassy code and all of the other code and vice versa. |
Ok left all the WDT code in and removed all the embassy stuff:
HandleEvent(BeginTurn) 'DIP_EmbassyCheck' pre
HandleEvent(BeginTurn) 'DIP_MainRoutine' post
HandleEvent(BeginTurn) 'DIP_EstabEmb' pre
HandleEvent(InitDiplomaticState) 'DIP_InitDiploState' pre
HandleEvent(NextDiplomaticState) 'DIP_NextDiploState' pre
void_f DIP_EstablishEmbassyFunc(int_t recipient)
HandleEvent(ContactMade) 'DIP_FlagContactMade' pre
HandleEvent(EstablishEmbassy) 'DIP_FlagEmbassyMade' pre
With those 8 guys gone, no crashing.
|
|
|  |
All times are GMT. The time now is 05:18. Apolyton Time is 00:18. |
top of page
|
| archivepost |
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|