Aller au contenu

Photo

Bizarre Area On Enter - CRASH! (RESOLVED - SEE FIRST POST)


  • Veuillez vous connecter pour répondre
33 réponses à ce sujet

#1
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages
Hi All,

Hi All,

EDIT/UPDATE: Actually, I believe I have found a way to get around this problem *if* you set up the database with empty placeholders for the variables that will be updated in a module. It seems that updating a variable that is already in the database does not harm the transitions (as far as I can see). It's early testing yet, but this would be the simplest way around the crashing issue, as it would mean either:-

a) Supplying the player with a database already to update, or ....
B) Have the database setup on initial play and have the player reload the game from afresh only once. (This is my preference.)

I will test this further, and no news, means good news and that will also be a good workaround.

Lance.

UPDATE (RESOLUTION)

I have managed to design a workaround by observing (and doing) the following:-

1) If any campaign variables are set or retrieved during a game, then the module will eventually crash at a transition at one time or another. Therefore all variables required as campaign ones are tracked globally and only transferred to campaign variables at the end of a session.

2a) If campaign variables are retrieved only on the modules On Client Enter Script, then the game will not crash.

2b) If campaign variables are set only after the player has left the game (*), then the game is not in a position to crash anyway. However, consideration needs to be applied here with respect to loading a game. (* See next.)

3) I had to alter the optionsmenu.xml some more. (I have altered this once to fix the henchman crash on exit game.) I have made the following additional changes:-

Removed the option to "LOAD" from this top menu. The option now takes you back to the Main Menu where you can load instead. This is because the game needs to save the global variables as campaign variables before the loading takes place, and any saving of such causes the game to crash if the upper load menu is used. NB: I also had to make even this option "disabled" at times when other global variables were queued for storage, as a load even from the primary menu could cause a crash if this was the case. In such cases, the player has to exit the game and restart to load. This would rarely be needed though!

4) I am having to edit code that refers to campaign variables and alter it to global variables, and then update a list of variables changes required (for when entering and/or leaving a module) in a dedicated include script, which basically swaps the variables from campaign vars to global vars and back again according to the function called.

UPDATE: Do not forget to alter any other load screen options that may present themselves, like when the player dies.

Anyway, that's the gist of it, and so it can be made to work if anybody else is interested.

Thanks again to everybody who has helped me look into this issue.
Lance.

ORIGINAL POST
=============

I know there have been many reporting area On Enter crashed in thepast, but this is the first time it has ever happened to me, and I have narrowed it down to (but cannot explain why), the following:-

I have a function that fires if a check on a player entering an area confirms positive. i.e. If a local variable on the PC equals one, then the function fires. After it has fired, the variable is deleted to prevent the function from ever firing again.

When the PC first enters an area, the variable is picked up, the function fires fine, the variable is deleted and all appears fine unless I leave the area and the function (somhow) fires again on the next area entry, causing the crash !!!

This should not be happening as the variable that allows the function to fire no longer exists on the pc! What is even more weird, is that the function DOES NOT fire, but it's mere presense causes the crash !!!

I know what you may be thinking ... there must be a variable being set with the function that is causing the crash somwhere else. But, I cannot see anything. (I'll keep looking of course.)

The only other thing I can add is that the function records a campaign int, but this is only ever referenced again if the function is ever called again, which I have not even tested that route yet.

Any more ideas would be helpful.

Many Thanks,
Lance.

Modifié par Lance Botelle, 12 mai 2012 - 04:45 .


#2
kevL

kevL
  • Members
  • 4 056 messages
hey Lance,

are you using a Mac? We've pretty much confirmed the campaign database doesn't work too good (if at all) using a Mac, and it doesn't work flawlessly on a PC either ...


test: comment the code about that campaignInt .....

#3
-Semper-

-Semper-
  • Members
  • 2 256 messages
yeah, but the on enter event still fires and checks for a variable which will never be found. couldn't that be the source of the crash? to begin with why you deleted that variable instead of doing a true/false statement?

#4
kevL

kevL
  • Members
  • 4 056 messages
nah, if a variable isn't there a check just returns FALSE ... object_invalid, blank string as appropriate

#5
painofdungeoneternal

painofdungeoneternal
  • Members
  • 1 799 messages
crash log always helsp as well, would point to where the game is actually crashing, and narrow down the culprits, assuming of course zebranky or skywing ( or someone else good at debuggers ) can review it for you.

( Skywing uses bug reports like that to improve the client extension and blocks/fixes issues he knows about )

#6
Morbane

Morbane
  • Members
  • 1 883 messages
Try adding another level of logic - once the script has fired - delete the int as usual but add another that prevents the script from firing again above the original "return" (if that is how you are killing the script that is)

#7
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages
Hi All,

I am still looking, but here are some responses to you all:-

1) I still use a PC (not a Mac).
2) Function confirmed as not firing, but still fails on a new enter.
3) Wil try adding more steps, but seems to be something around a campaignint, which should have been dealt with and finished by time it fires again.
4) The errorlog.txt:

Error occurred at 5/9/2012 20:47:08.
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\nwn2main.exe, run by Lance Botelle.
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\nwn2main.exe caused an Access Violation exception in module nwn2main.exe at 0023:00445185.
Read from location 000000b9 caused an access violation.

System Info:
8 processor(s), type 586.
1 % Memory Load.
0 MBytes physical memory.
2787 MBytes available memory.
0 MBytes total virtual memory.
1530 MBytes available virtual memory
0 MBytes total page file.
0 MBytes available page file

Application debug messages:
Version: 1.023 (1765) (Final) Aug 17 2009 - 17:29:45
Application Stage: Application Main Loop Frame 1589 Uptime: 34.289242
SEF Cache: SEF Manager had 25 cache hits and 5 cache misses *
Command Line: nwn2main.exe

Registers:
EAX=000000b1 CS=0023 EIP=00445185 EFLGS=00210206
EBX=96de7344 SS=002b ESP=0018f17c EBP=00000027
ECX=96de7344 DS=002b ESI=96de7344 FS=0053
EDX=fffffffb ES=002b EDI=02af04f4 GS=002b

Bytes at CS:EIP:
39 48 08 74 0f 8b 40 04 85 c0 75 f4 5f 5b 83 c4 10 c2 04 00 56 8b 70 0c 85 f6 74 75 83 7e 08 00

Stack dump:
0018f17c: 96de7364 ffffffff 02af04f4 ffffffff 02af04c4 1469ff00 0043c41b 96de7344
0018f19c: 96c73edc 96de7344 00483ab2 96de7344 00500841 00000001 8bda9d58 8bda9d58
0018f1bc: 0018f390 ffffffff 96c73d04 00000000 007fdce3 8bda9d58 8bda9d58 00000001
0018f1dc: 05c56fa0 8bda9d58 00000000 0001f1fc 00000000 00000000 00000054 150a89a0
0018f1fc: 00000009 00000000 00000000 00000000 00000000 3f800000 3f800000 3f800000
0018f21c: 3f800000 150a8fe0 00000009 00000000 00000000 150a81a0 0000000e 00000000
0018f23c: 00000000 00000000 150a8fe0 23863fa0 22b84b60 00000000 00000000 0000003f
0018f25c: 00000000 3f800000 3f800000 3f800000 00000000 00000000 00000000 3f800000
0018f27c: 3f800000 3f800000 3f800000 3f800000 3f800000 150a8610 00000000 00000008
0018f29c: 3f800000 3f800000 3f800000 0018f288 00428f9f 0018fee8 027a8dc8 000000ff
0018f2bc: 027a8dc8 000000ff 150a8740 0018f2d4 716623ff 00000000 00000000 00000000
0018f2dc: 00000000 00000000 61725f63 74696262 656b735f 7274006c 31306361 00000000
0018f2fc: 00000000 00000000 0018f2e4 00003130 0000003f 00000001 027a8dc8 00000001
0018f31c: 150a89a0 0018f32c 146d10d0 7167cde4 00000010 000001f3 146d10d0 716f19f8
0018f33c: 716f13d8 027a8dc8 150a8900 00000000 0018f368 7167d020 716f1ad8 239ee580
0018f35c: 00000000 0000000a 00000008 00000000 7167c57e 239ee580 00000000 0000000a
0018f37c: 00428bbd 239ee580 0051d442 00000001 de4188a6 23863fa0 007fe7f0 8bda9d58
0018f39c: 22b84b60 23863fa0 8bda9d58 96c73b40 00000000 000000ff 00000000 00755948
0018f3bc: 8bda9d58 22b84b60 23863fa0 0018fbe0 02af3160 8bda9d58 96c73b40 3fc90fdb
0018f3dc: 3f800000 3f800000 3f800000 4376a150 430e8928 bd0245f1 4376a150 430e8928
0018f3fc: bd0245f1 00000000 3f800000 00000000 007a7dce 8bda9d10 000000ff 22b84b60
0018f41c: 23863fa0 00000000 02af3160 00000050 3f800001 ffffffff 96c73b40 00000000
0018f43c: 00000000 00000000 00000000 ffffffff ffffffff ffffffff 3f800000 447ee000
0018f45c: 44446000 3f800000 3f800000 3f800000 3f800000 00000000 00000000 00000000
0018f47c: 00000000 00010000 00000000 00000000 3f800000 00004000 00000800 00000000
0018f49c: 3f800000 00000008 3f800000 23add090 00008000 027ea030 00000002 3f800000
0018f4bc: ffffffff 3f800000 3f800000 44e9b000 44446000 00000000 3f800000 ffffffff
0018f4dc: 00000000 00000000 44e9b000 446f2000 00000000 3f800000 ffffffff 00000000
0018f4fc: 3f800000 44eb5000 44446000 00000000 3f800000 ffffffff 3f800000 00000000
0018f51c: 44eb5000 446f2000 00000000 3f800000 ffffffff 3f800000 3f800000 750714c9
0018f53c: 0bd4cbec 05c5b3bc 98e09b20 00000001 98e0a620 0018f568 776ce023 05c56fa0
0018f55c: 05b3afd8 98e0a628 98e0a620 0018f57c 750714dd 05b00000 00000000 98e0a628
0018f57c: 0018f64c 62c38acd 05b00000 00000000 776bfb4a 776d2b2c ffffffff 0018f67c
0018f59c: 0000002a 0000002a 0000002a 0000002a 0000002a 0018f5bc 716623ff 716f3b80
0018f5bc: 0018f5f8 71664ca6 00000004 71664c9e de4108e4 0000002a 00000000 0000002a
0018f5dc: 1509c120 0018f5cc 0000001a 0018fee8 71668ced 00000050 00000050 00000050
0018f5fc: 00000050 00000050 0018f610 716623ff 716f3b80 0018f64c 71664ca6 00000004
0018f61c: 71664c9e de410b50 00000050 00000000 00000050 1509b4a0 0018f620 0000001a
0018f63c: 0018fee8 71668ced af37b194 fffffffe 71664c9e 71664d67 00000050 00000050
0018f65c: 1509a32c 00000050 027a8dc8 1509b4a0 00000040 10002a29 10011628 027a8dc8
0018f67c: 1509a32c 00000000 00000020 00000310 00000310 00000310 00000310 0018f6a4
0018f69c: 716623ff 716f3b80 0018f6e0 71664ca6 00000004 71664c9e de410bfc 00000310
0018f6bc: 00000000 00000310 1509b090 0018f6b4 776c013d 75400bdd 00000001 0018f71c
0018f6dc: 00000001 00000000 75400c48 de4ecf97 00000001 0018f790 0018f790 00000024
0018f6fc: 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0018f71c: 000002c0 3f800000 0000004b 0000004b 0000004b 0000004b 0000004b 0018f744
0018f73c: 716623ff 716f3b80 0018f780 71664ca6 00000004 71664c9e de410a9c 0000004b
0018f75c: 00000000 0000004b 1509b440 0018f754 1509b440 0018fee8 71668ced af37b194
0018f77c: fffffffe 71664c9e 71664d67 0000004b 0000004b 00000028 0000004b 0000001c
0018f79c: 0000001c 0000001c 0000001c 00000231 8bda9d40 02ae0000 8bdaafe0 02ae0000
0018f7bc: 96c74938 00000004 00000000 00000023 0018f8b8 00000231 02ae0000 8bda9d40
0018f7dc: 0018f8b8 776d3c94 776d3cc3 7678e14c 00001180 02ae3b24 02ae0000 02ae2c88
0018f7fc: 00000019 00000019 02ae2c88 0018f814 02ae2ce4 716f3b80 00000023 71664c00
0018f81c: 02ae2c88 000001d4 96dc96a0 00000019 00000254 00000019 00000231 0018f824
0018f83c: 0018f878 0018fee8 71668ced 00000000 02000002 90cbeff8 46000345 00000019
0018f85c: 00000019 00000000 000007ff 0018f874 fe00fe00 96c862e8 00000001 71664ca6
0018f87c: 00000002 00000008 8bda9d48 8bda9d48 8bda9d43 00000000 000a8920 02ae0000
0018f89c: 01000030 0018f7e8 00000030 0018fee8 777171d5 010cd184 fffffffe 776d3cc3
0018f8bc: 776d3cee 00001180 00001188 8bda9d42 8bda9d40 00001180 00000000 00001174
0018f8dc: 0018f918 71664ca6 00000004 0000003f 00000048 00000048 00000048 00000048
0018f8fc: 0018f908 716623ff 716f3b80 0018f944 71664ca6 00000004 71664c9e de410458
0018f91c: 00000048 00000000 00000048 150a8780 0018f918 00000000 0018fee8 71668ced
0018f93c: af37b194 fffffffe 71664c9e 71664d67 00000048 00000048 96c73b40 00000048
0018f95c: 027a8dc8 150a8780 00000038 10002a29 10011628 027a8dc8 96c73b40 100011c7
0018f97c: 10002a3e 00000000 10002a3e 00000025 0018fc10 00000025 027a8dc8 14fff8c0
0018f99c: 00000015 10002a29 10011628 027a8dc8 0018fc10 100011c7 10002a3e 100011c7
0018f9bc: 10002a3e 716623ff 716f3b80 0018fa10 71664bd2 00000004 71664c58 de41070c
0018f9dc: 027a8dc8 1509b060 00000000 00000001 1509b070 035f0058 044e186c 0018f9d8
0018f9fc: 1509b070 0018fee8 71668ced af37b17c fffffffe 027a8dc8 305ae950 027a8dc8
0018fa1c: 305ae950 304d68e0 0000003f 00000008 027a8dc8 00000008 150a8920 0018fa44
0018fa3c: 716623ff 716f3b80 0018fa8c 71664bd2 00000004 71664c58 de410790 027a8dc8
0018fa5c: 150a8920 00000008 150a89a0 00000008 00000000 044e186c 0018fa54 00000009
0018fa7c: 0018fee8 027a8dc8 00000000 027a8dc8 00000000 150a8990 0018faa0 716623ff
0018fa9c: 716f3b80 0018fae8 71664bd2 00000004 027a8dc8 00000000 027a8dc8 00000000
0018fabc: 150a8990 027a8dc8 96c73b40 00000000 0018fb14 00000000 96c73b40 00000000
0018fadc: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0018fafc: 00000000 3f800000 00000000 00000000 00000000 00000000 3f800000 00000000
0018fb1c: 00000000 00000000 00000000 3f800000 00000000 4376a150 430e8928 bd0245f1
0018fb3c: 3f800000 3f800000 3f800000 96c73b40 027d1b5c 1f83985c 776c22a0 027d1b5c
0018fb5c: 027d1b80 100043dc 027d1b80 96c73b40 96c73b40 96c74194 96c74214 0075c072
0018fb7c: 96c74214 00000000 96c73b40 00000000 96c73b40 00000000 00000000 007b180e
0018fb9c: 00000000 00000000 02af3160 0018fc20 00000041 8000108f 305ae950 4376a150
0018fbbc: 430e8928 bd0245f1 96c73b40 00000000 00000000 00000000 00000000 00000000
0018fbdc: de418d56 0018fc20 007b91c7 00000005 02af3160 007b990e 146d4e01 00000ac7
0018fbfc: 02aed8d8 0364a3ec 50000ac7 146d4e01 0364a305 14fff8d0 00000015 00000000
0018fc1c: 00000000 0364a3ec 006e525a 0364a3ec 00000ac7 00000115 00000ac7 146d4e60
0018fc3c: 00508615 00000000 0364a3ec 00000ac7 00000000 00000013 00000115 035f0064
0018fc5c: 000001fc 035f0058 0364a3ec 00000001 00000000 0050cdc4 00000000 041cadf4
0018fc7c: 00000ac7 00000001 035f0058 035f0064 00000000 00000014 00000013 041caddc
0018fc9c: 00000214 00000014 00000001 00000000 00510b68 00000001 02aed8d8 0018feb4
0018fcbc: 00000000 00000000 000002c9 041b8274 00000000 00000000 0018feb4 006ff33f
0018fcdc: 00000001 00000000 75071725 00000000 0018fd84 63ee8c31 02cb6de8 00000000
0018fcfc: 05d9e204 00000000 00000000 716b0750 0059ec86 146c0500 146c1240 1cc5ff38
0018fd1c: 0055d9f0 1cc5ff38 1c1f6a4c 146c0500 1f649f00 0088dfef 0055da7d 1cc5ff38
0018fd3c: 00e9e800 00000000 00000000 de418582 005b5794 00062604 0055b31a 1cc5ff38
0018fd5c: 005b579b 39383531 00000001 00511001 de410664 0018fdb4 716a87e4 0018fd94
0018fd7c: 0094c8c4 00000000 0018fdf4 00000000 00000001 75071725 00a08e9a 00000fcd
0018fd9c: 00a08e68 00000042 05d9b8a0 05d9b8a4 05d9b8a0 00000064 00000000 00000000
0018fdbc: 75071725 00000000 00402b0f 0018fde0 776d88ed 5135f000 00000004 508a26be
0018fddc: 0018feb4 0018feb4 00431718 02af2c00 c47788af 0000000e 006cb9df de418592
0018fdfc: 004074a8 00a1482c 00cf3d95 00000000 02ae0000 c47788a0 0000000e 00000000
0018fe1c: 3f8e83c8 027a89c8 000000fc c47788a0 0000000e c47788a0 0000000e c47788a1
0018fe3c: 0000000e 06e4b3ba 00000000 0000c716 00000000 06fdb134 00000000 0000c716
0018fe5c: 00000000 c47788a0 0000000e c47788a0 0000000e 71677344 0000000c 00000000
0018fe7c: 00000000 00a07560 00000000 00cf3d95 00a1482c 004fb658 00a07560 0094c918
0018fe9c: 00000104 00a07560 00000000 00000104 00a08e68 00000000 0018fef8 0040783c
0018febc: 00400000 00000000 00cf3d95 0000000a de418782 00a1482c 00cf3d95 00000000
0018fedc: 00000000 0018fecc 0018ebbc 0018ff78 008b918f dec21302 00000000 0018ff88
0018fefc: 008b9399 00400000 00000000 00cf3d95 0000000a de4186f2 00000000 00000000
0018ff1c: fffde000 00000044 00d36170 00d4e500 00d34860 00000000 00000000 00000000
0018ff3c: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff
0018ff5c: ffffffff ffffffff 0018ff74 00cf3d95 00000000 0018ff10 bb06c6f8 0018ffc4
0018ff7c: 008b918f dec2bdf2 00000001 0018ff94 7507339a fffde000 0018ffd4 776d9ef2
0018ff9c: fffde000 7678e620 00000000 00000000 fffde000 00000000 00000000 00000000
0018ffbc: 0018ffa0 00000000 ffffffff 777171d5 010cdcc4 00000000 0018ffec 776d9ec5
0018ffdc: 008b951a fffde000 00000000 00000000 00000000 00000000 008b951a fffde000
0018fffc: 00000000

Module list: names, addresses, sizes, time stamps and file times:
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\nwn2main.exe, loaded at 0x00400000 - 7471104 bytes - 4a89f7b8 - file date is 8/17/2009 17:37:22
C:\\Windows\\system32\\d3dx9_30.dll, loaded at 0x00df0000 - 2388176 bytes - 442d83c4 - file date is 3/31/2006 12:40:58
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\dbghelp.dll, loaded at 0x03000000 - 1038848 bytes - 42b8d254 - file date is 10/18/2008 01:43:42
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\NWN2_MemoryMgr.dll, loaded at 0x10000000 - 70144 bytes - 4a89f540 - file date is 8/17/2009 17:26:42
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\mss32.dll, loaded at 0x21100000 - 374272 bytes - 41ba9530 - file date is 10/18/2008 01:43:10
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\miles\\msseax.m3d, loaded at 0x22300000 - 143872 bytes - 41ba956a - file date is 10/18/2008 01:43:16
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\miles\\msssoft.m3d, loaded at 0x22400000 - 79360 bytes - 41ba9568 - file date is 10/18/2008 01:43:16
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\miles\\mssdx7.m3d, loaded at 0x22600000 - 65536 bytes - 41ba956d - file date is 10/18/2008 01:43:16
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\miles\\mssrsx.m3d, loaded at 0x22700000 - 430592 bytes - 41c8cbd5 - file date is 10/18/2008 01:43:16
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\miles\\mssdsp.flt, loaded at 0x24100000 - 113664 bytes - 41ba9533 - file date is 10/18/2008 01:43:16
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\miles\\mssvoice.asi, loaded at 0x26400000 - 214528 bytes - 41ba95b4 - file date is 10/18/2008 01:43:16
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\miles\\mssmp3.asi, loaded at 0x26f00000 - 149504 bytes - 41ba9567 - file date is 10/18/2008 01:43:16
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\binkw32.dll, loaded at 0x30000000 - 347136 bytes - 3fd699b6 - file date is 10/18/2008 01:43:08
C:\\Program Files (x86)\\Atari\\Neverwinter Nights 2\\granny2.dll, loaded at 0x50000000 - 441399 bytes - 437d26c3 - file date is 10/18/2008 01:43:08
C:\\Windows\\system32\\dpnet.dll, loaded at 0x57ca0000 - 376832 bytes - 4a5bd9ed - file date is 7/14/2009 02:15:14
C:\\Windows\\SysWOW64\\d3d11.dll, loaded at 0x57d00000 - 522752 bytes - 4ce7b7b0 - file date is 11/21/2010 04:23:56
C:\\Windows\\SysWOW64\\dxdiagn.dll, loaded at 0x599e0000 - 210432 bytes - 4ce7b818 - file date is 11/21/2010 04:24:24
C:\\Windows\\system32\\winbrand.dll, loaded at 0x59a70000 - 12800 bytes - 4a5bdb39 - file date is 7/14/2009 02:16:20
C:\\Windows\\system32\\midimap.dll, loaded at 0x5c330000 - 16896 bytes - 4a5bda84 - file date is 7/14/2009 02:15:42
C:\\Windows\\system32\\msacm32.drv, loaded at 0x5c340000 - 20992 bytes - 4a5bda4f - file date is 7/14/2009 02:14:10
C:\\Windows\\system32\\ksuser.dll, loaded at 0x5c350000 - 4608 bytes - 4a5bdab3 - file date is 7/14/2009 02:15:36
C:\\Windows\\system32\\wdmaud.drv, loaded at 0x5c360000 - 172032 bytes - 4ce7ba26 - file date is 11/21/2010 04:24:02
C:\\Windows\\SysWOW64\\d3d10core.dll, loaded at 0x5cd50000 - 190464 bytes - 4a5bd9a3 - file date is 7/14/2009 02:15:08
C:\\Windows\\SysWOW64\\d3d10.dll, loaded at 0x5cd90000 - 1030144 bytes - 4a5bd9a0 - file date is 7/14/2009 02:15:08
C:\\Windows\\system32\\atiumdag.dll, loaded at 0x62c20000 - 6203392 bytes - 4f7e480d - file date is 4/6/2012 02:34:04
C:\\Windows\\SysWOW64\\dxgi.dll, loaded at 0x63220000 - 508416 bytes - 4ce7b819 - file date is 11/21/2010 04:24:10
C:\\Windows\\system32\\atiumdva.dll, loaded at 0x63380000 - 4795904 bytes - 4f7e456d - file date is 4/6/2012 02:22:54
C:\\Windows\\system32\\avrt.dll, loaded at 0x63940000 - 14336 bytes - 4a5bd998 - file date is 7/14/2009 02:15:00
C:\\Windows\\system32\\AUDIOSES.DLL, loaded at 0x63960000 - 195584 bytes - 4ce7b725 - file date is 11/21/2010 04:23:56
C:\\Windows\\System32\\MMDevApi.dll, loaded at 0x639a0000 - 213504 bytes - 4ce7b892 - file date is 11/21/2010 04:23:52
C:\\Windows\\system32\\DSOUND.DLL, loaded at 0x639e0000 - 453632 bytes - 4a5bd9fd - file date is 7/14/2009 02:15:14
C:\\Windows\\system32\\MSACM32.dll, loaded at 0x63a60000 - 72192 bytes - 4a5bda4e - file date is 7/14/2009 02:15:44
C:\\Windows\\SysWOW64\\d3d10_1core.dll, loaded at 0x63b20000 - 219136 bytes - 4ce7b7ac - file date is 11/21/2010 04:23:50
C:\\Windows\\system32\\atiuxpag.dll, loaded at 0x63b80000 - 41984 bytes - 4f7e425d - file date is 4/6/2012 02:09:48
C:\\Windows\\SysWOW64\\d3d10_1.dll, loaded at 0x63c20000 - 161792 bytes - 4d33d5a3 - file date is 1/17/2011 06:47:14
C:\\Windows\\system32\\atiu9pag.dll, loaded at 0x63da0000 - 32256 bytes - 4f7e424e - file date is 4/6/2012 02:09:34
C:\\Windows\\system32\\aticfx32.dll, loaded at 0x63db0000 - 909312 bytes - 4f7e533f - file date is 4/6/2012 03:21:52
C:\\Windows\\system32\\d3d9.dll, loaded at 0x63ea0000 - 1828352 bytes - 4ce7b7b3 - file date is 11/21/2010 04:24:24
C:\\Windows\\system32\\d3d8thk.dll, loaded at 0x64080000 - 11264 bytes - 4a5bd9a8 - file date is 7/14/2009 02:15:10
C:\\Windows\\system32\\DINPUT8.dll, loaded at 0x64c70000 - 145408 bytes - 4a5bd9c1 - file date is 7/14/2009 02:15:12
C:\\Windows\\AppPatch\\AcLayers.DLL, loaded at 0x697e0000 - 562176 bytes - 4ce7b700 - file date is 11/21/2010 04:24:02
C:\\Windows\\system32\\NTDSAPI.dll, loaded at 0x6f660000 - 90112 bytes - 4a5bdade - file date is 7/14/2009 02:16:12
C:\\Windows\\system32\\wbemcomn.dll, loaded at 0x70200000 - 363008 bytes - 4ce7ba25 - file date is 11/21/2010 04:24:10
C:\\Windows\\system32\\mswsock.dll, loaded at 0x70260000 - 232448 bytes - 4ce7b8e8 - file date is 11/21/2010 04:24:10
C:\\Windows\\system32\\wbem\\wbemprox.dll, loaded at 0x70ad0000 - 29184 bytes - 4a5bdb2f - file date is 7/14/2009 02:16:18
C:\\Windows\\System32\\wshtcpip.dll, loaded at 0x70ae0000 - 9216 bytes - 4a5bdb5a - file date is 7/14/2009 02:16:22
C:\\Windows\\system32\\POWRPROF.dll, loaded at 0x715a0000 - 145408 bytes - 4a5bdb0c - file date is 7/14/2009 02:16:14
C:\\Windows\\WinSxS\\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\\MSVCP80.dll, loaded at 0x715d0000 - 554832 bytes - 4dcddc6c - file date is 5/6/2012 14:02:32
C:\\Windows\\WinSxS\\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\\MSVCR80.dll, loaded at 0x71660000 - 632656 bytes - 4dcddbf3 - file date is 5/6/2012 14:02:32
C:\\Windows\\system32\\dwmapi.dll, loaded at 0x719a0000 - 67072 bytes - 4a5bda07 - file date is 7/14/2009 02:15:14
C:\\Windows\\system32\\WINMM.dll, loaded at 0x71a30000 - 194048 bytes - 4ce7ba42 - file date is 11/21/2010 04:24:18
C:\\Windows\\system32\\profapi.dll, loaded at 0x71a70000 - 31744 bytes - 4a5bbf41 - file date is 7/14/2009 02:16:14
C:\\Windows\\system32\\USERENV.dll, loaded at 0x71ac0000 - 81920 bytes - 4ce7ba28 - file date is 11/21/2010 04:24:18
C:\\Windows\\system32\\RpcRtRemote.dll, loaded at 0x72c10000 - 46080 bytes - 4ce7992f - file date is 11/21/2010 04:24:16
C:\\Windows\\system32\\rsaenh.dll, loaded at 0x72c20000 - 242936 bytes - 4a5bdae0 - file date is 7/14/2009 02:17:56
C:\\Windows\\system32\\CRYPTSP.dll, loaded at 0x72c60000 - 78848 bytes - 4a5bda3d - file date is 7/14/2009 02:15:08
C:\\Windows\\system32\\uxtheme.dll, loaded at 0x72c80000 - 245760 bytes - 4a5bdb3c - file date is 7/14/2009 02:11:26
C:\\Windows\\system32\\apphelp.dll, loaded at 0x72d00000 - 295936 bytes - 4ce7b73e - file date is 11/21/2010 04:24:16
C:\\Windows\\system32\\WINSPOOL.DRV, loaded at 0x72f40000 - 320000 bytes - 4ce7ba4b - file date is 11/21/2010 04:24:10
C:\\Windows\\system32\\WINNSI.DLL, loaded at 0x73240000 - 16896 bytes - 4a5bdb43 - file date is 7/14/2009 02:16:20
C:\\Windows\\system32\\IPHLPAPI.DLL, loaded at 0x73250000 - 103936 bytes - 4ce7b859 - file date is 11/21/2010 04:24:34
C:\\Windows\\WinSxS\\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\\comctl32.dll, loaded at 0x73560000 - 1680896 bytes - 4ce7b71c - file date is 11/21/2010 04:23:56
C:\\Windows\\system32\\VERSION.dll, loaded at 0x73700000 - 21504 bytes - 4a5bdb2b - file date is 7/14/2009 02:16:18
C:\\Windows\\system32\\MPR.dll, loaded at 0x73a20000 - 64000 bytes - 4a5bda36 - file date is 7/14/2009 02:15:42
C:\\Windows\\System32\\PROPSYS.dll, loaded at 0x73a50000 - 988160 bytes - 4ce7b983 - file date is 11/21/2010 04:24:10
C:\\Windows\\system32\\rtutils.dll, loaded at 0x73e60000 - 37376 bytes - 4ce7b9ac - file date is 11/21/2010 04:24:02
C:\\Windows\\system32\\wbem\\fastprox.dll, loaded at 0x74230000 - 606208 bytes - 4ce7b809 - file date is 11/21/2010 04:24:26
C:\\Windows\\system32\\wbem\\wbemsvc.dll, loaded at 0x742d0000 - 47616 bytes - 4a5bdb30 - file date is 7/14/2009 02:16:18
C:\\Windows\\system32\\HID.DLL, loaded at 0x742e0000 - 22016 bytes - 4a5bd9ec - file date is 7/14/2009 02:15:26
C:\\Windows\\System32\\wship6.dll, loaded at 0x74590000 - 10752 bytes - 4a5bdb56 - file date is 7/14/2009 02:16:22
C:\\Windows\\system32\\dhcpcsvc.DLL, loaded at 0x74a00000 - 61952 bytes - 4a5bd9b5 - file date is 7/14/2009 02:15:12
C:\\Windows\\system32\\dhcpcsvc6.DLL, loaded at 0x74a30000 - 43008 bytes - 4a5bd9b6 - file date is 7/14/2009 02:15:12
C:\\Windows\\syswow64\\CRYPTBASE.dll, loaded at 0x74d70000 - 36864 bytes - 4a5bbf41 - file date is 7/14/2009 02:15:08
C:\\Windows\\syswow64\\SspiCli.dll, loaded at 0x74d80000 - 96768 bytes - 4ec49b90 - file date is 11/17/2011 06:28:50
C:\\Windows\\syswow64\\CFGMGR32.dll, loaded at 0x74de0000 - 145920 bytes - 4ddb8851 - file date is 5/24/2011 11:39:40
C:\\Windows\\syswow64\\CRYPT32.dll, loaded at 0x74e10000 - 1154048 bytes - 4ce7b841 - file date is 11/21/2010 04:24:00
C:\\Windows\\syswow64\\MSCTF.dll, loaded at 0x74f30000 - 828928 bytes - 4a5bda69 - file date is 7/14/2009 02:15:44
C:\\Windows\\syswow64\\SHLWAPI.dll, loaded at 0x75000000 - 350208 bytes - 4ce7b9e2 - file date is 11/21/2010 04:23:50
C:\\Windows\\syswow64\\kernel32.dll, loaded at 0x75060000 - 1114112 bytes - 4e211318 - file date is 7/16/2011 05:24:24
C:\\Windows\\syswow64\\MSASN1.dll, loaded at 0x75170000 - 34304 bytes - 4ce7b8c9 - file date is 11/21/2010 04:23:50
C:\\Windows\\SysWOW64\\sechost.dll, loaded at 0x75340000 - 92160 bytes - 4a5bdb04 - file date is 7/14/2009 02:16:14
C:\\Windows\\syswow64\\OLEAUT32.dll, loaded at 0x75360000 - 571904 bytes - 4e58702a - file date is 8/27/2011 05:26:28
C:\\Windows\\syswow64\\KERNELBASE.dll, loaded at 0x753f0000 - 272384 bytes - 4e211319 - file date is 7/16/2011 05:24:24
C:\\Windows\\syswow64\\ole32.dll, loaded at 0x75440000 - 1414144 bytes - 4ce7b96f - file date is 11/21/2010 04:24:02
C:\\Windows\\syswow64\\DEVOBJ.dll, loaded at 0x756c0000 - 64512 bytes - 4ddb887d - file date is 5/24/2011 11:40:06
C:\\Windows\\syswow64\\SETUPAPI.dll, loaded at 0x756f0000 - 1667584 bytes - 4ce7b9d9 - file date is 11/21/2010 04:23:52
C:\\Windows\\syswow64\\IMM32.dll, loaded at 0x75890000 - 119808 bytes - 4ce7ba53 - file date is 11/21/2010 04:24:26
C:\\Windows\\syswow64\\ADVAPI32.dll, loaded at 0x758f0000 - 640512 bytes - 4ce7b706 - file date is 11/21/2010 04:24:30
C:\\Windows\\syswow64\\USP10.dll, loaded at 0x75990000 - 626176 bytes - 4ce7ba29 - file date is 11/21/2010 04:24:18
C:\\Windows\\syswow64\\CLBCatQ.DLL, loaded at 0x75a60000 - 522240 bytes - 4a5bd9b1 - file date is 7/14/2009 02:15:04
C:\\Windows\\syswow64\\msvcrt.dll, loaded at 0x75af0000 - 690688 bytes - 4eeaf722 - file date is 12/16/2011 08:53:00
C:\\Windows\\syswow64\\WINTRUST.dll, loaded at 0x75c30000 - 172544 bytes - 4f4f094d - file date is 3/1/2012 06:37:42
C:\\Windows\\syswow64\\NSI.dll, loaded at 0x75d40000 - 8704 bytes - 4a5bdad9 - file date is 7/14/2009 02:16:12
C:\\Windows\\syswow64\\RPCRT4.dll, loaded at 0x75da0000 - 663040 bytes - 4ce7ba59 - file date is 11/21/2010 04:24:12
C:\\Windows\\syswow64\\LPK.dll, loaded at 0x75e90000 - 25600 bytes - 4a5bdb3b - file date is 7/14/2009 02:11:24
C:\\Windows\\syswow64\\GDI32.dll, loaded at 0x75ea0000 - 311296 bytes - 4ce7ba53 - file date is 11/21/2010 04:24:16
C:\\Windows\\syswow64\\USER32.dll, loaded at 0x76050000 - 833024 bytes - 4ce7ba59 - file date is 11/21/2010 04:24:22
C:\\Windows\\syswow64\\WS2_32.dll, loaded at 0x76150000 - 206848 bytes - 4ce7ba68 - file date is 11/21/2010 04:23:56
C:\\Windows\\syswow64\\SHELL32.dll, loaded at 0x76190000 - 12872704 bytes - 4f0412de - file date is 1/4/2012 09:59:40
C:\\Windows\\syswow64\\PSAPI.DLL, loaded at 0x77670000 - 6144 bytes - 4a5bdace - file date is 7/14/2009 02:16:14
C:\\Windows\\SysWOW64\\ntdll.dll, loaded at 0x776a0000 - 1292080 bytes - 4ec49b8f - file date is 11/17/2011 06:38:40

Many Thanks to all who can help me track this down.

Lance.

EDIT: I even moved a minimum number of scripts/areas to a new module to test it, and it still crashes with this one function involved.

Modifié par Lance Botelle, 09 mai 2012 - 09:59 .


#8
Morbane

Morbane
  • Members
  • 1 883 messages
Post the script.....?

#9
M. Rieder

M. Rieder
  • Members
  • 2 530 messages
Is it in the client on enter or the area on enter? I have heard tell that if an area is very busy and if you try to do things with the PC in the onenter script, sometimes the PC hasn't fully loaded into the area and it can cause problems. Perhaps try switching to clientonenter event and using GetFirstEnteringPC() to define the PC.

#10
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages
Hi Morbane,

Posting the script is a little difficult, as it has functions within further includes.

Hi Matt,

The problem is, this needs to fire for any player joining a game, which means I have to use the OnEnter script to check for a new player entering the area, rather than a whole party joinig an area at once (if you see what I mean).

I have even tried to do a global check rather thanjust a PC check and it still crashes.

Maybe I will try posting parts of the scripts to see if anybody can see what is going on. They are rather involved though, so I won't post the parts that I believe are stable.

I wil edit this post in a little while,
Lance.


EDIT:

Part of the area_onenter script:

//////////////////////////////////////////////////////////////////////////////////////
 // GIVE RULES TO ALL ENTERING PLAYERS WHO NOT YET HAD THEM (ALSO RECORDS THE NEW GAME)
 // GIVES OPTION TO DELETE THE OLD DATABASE PRIOR TO RECORDING IF REQUIRED
 ////////////////////////////////////////////////////////////////////////////////////// 
 
 if(GetGlobalInt("RULESCHECK") == 1) 
 {  
  DeleteGlobalInt("RULESCHECK");
  
  if(GetLocalInt(oPlayer, "RulesKnown") == 0) 
  {
  object oLeader = GetFactionLeader(oPlayer);
  RecordNewGame(oPlayer, oLeader);                     // IF REMMED WILL WORK FINE
  }
 } 

The RecordNewGame function has now been added as a seperate function in the same script and is as follows:

//////////////////////////////////////////////////////////////////////////////////////
// RECORDS THE START OF A NEW GAME FOR A PLAYER AND GIVES THEM THE RULES /////////////
// DATABASE IS CHECKED AGAINST & SETUP FOR THIS GAME IF REQUIRED /////////////////////
//////////////////////////////////////////////////////////////////////////////////////
void RecordNewGame(object oPlayer, object oLeader);
void RecordNewGame(object oPlayer, object oLeader)
{  
 int PREVENT = 0;
 
 if(oPlayer == oLeader)
 {  
  object oDataPC = GetFirstPC(TRUE);
  string sPlayer = GetPCPlayerName(oDataPC) + GetFirstName(oDataPC) + "_Althea_Exp"; int Multiplay = 0;
  if(!GetIsSinglePlayer()){sPlayer = "Althea_Exp"; Multiplay = 1;} 
  int GameExists = GetCampaignInt(sPlayer, "GameStarted"); 
  if(GameExists == 1){GiveDatabaseWarning(oPlayer, Multiplay); PREVENT = 1;}
  // RECORD START OF NEW DATABASE
  if(GameExists == 0){SetCampaignInt(sPlayer, "GameStarted", 1);}  
 }
 if(PREVENT == 0){GiveRules(oPlayer);}   
}

NB: If the GiveDatabaseWarning is remmed, everything works fine. Here is the GiveDatabaseWarning function, which is from another include:

EDIT: One of the choices to this GUI fired a script that used campaign variables again, which is why it failed when it was used.

///////////////////////////////////////////////////////////////////////////////
// DATABASE GUI WARNING (EXPLOIT SYSTEM) //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void GiveDatabaseWarning(object oPlayer, int Multiplay);
void GiveDatabaseWarning(object oPlayer, int Multiplay)  
{
 DelayCommand(2.5, DisplayGuiScreen(oPlayer, "UNIChoiceGUI", TRUE, "UNIChoiceGUI.xml")); 
  
 string sChoice = "A database already exists for a previous game started by this player. If you wish to " +
 "start this module afresh, you can do so by choosing to delete the existing database.\\n\\n<color=orange>WARNING: This could potentially harm some save game settings for the previous game that was being played.</color>"+
 "\\n\\nYou now have a choice: \\n\\nEither choose to delete the existing database to continue starting afresh or return to the main menu to reload an existing game.";
 
 if(Multiplay == 1){sChoice = "A database for a multi-player game already exists on this computer. If you wish to " +
 "start a new multi-player game, you can do so by choosing to delete the existing database.\\n\\n<color=orange>WARNING: This could potentially harm some save game settings for the previous multi-player game that was being played.</color>"+
 "\\n\\nEither choose to delete the existing database before being returned the Main Menu where you can start again or return to the Main Menu to reload an existing multi-player game.\\n\\nIn either case, you will have to restart the session.";}
 
 DelayCommand(2.51, SetGUIObjectText(oPlayer, "UNIChoiceGUI", "TITLETXT", -1, CYELLOW + "DATABASE WARNING"));
 DelayCommand(2.51, SetGUIObjectText(oPlayer, "UNIChoiceGUI", "BoxText", -1, sChoice));
 DelayCommand(2.51, SetGUIObjectText(oPlayer, "UNIChoiceGUI", "CHOICE1", -1, "DELETE DATABASE"));
 DelayCommand(2.51, SetGUIObjectText(oPlayer, "UNIChoiceGUI", "CHOICE2", -1, "MAIN MENU"));
 DelayCommand(2.51, SetGUIObjectHidden(oPlayer, "UNIChoiceGUI", "CHOICE3", TRUE));
 
 SetLocalObject(GetModule(), "PCLEADING", oPlayer);
 SetLocalInt(oPlayer, "UNIFactor", 3);
}

NOTE: This GUI shows fine on the player first entering and whe the player makes their choice, the correct variable is set. When the player enters the next area, this whole process should be ignored (due to at least two variables being set), but the game crashes instead.

Cheers!

Lance.

Modifié par Lance Botelle, 11 mai 2012 - 05:20 .


#11
Shaughn78

Shaughn78
  • Members
  • 637 messages
Lance,
I am with Morbane, a bit more information about the script and what you are doing is needed, otherwise we are just all going to be throwing ideas into the dark.

***Edit***

You posted you response while I was typing.

Does this have to do with limiting the classes for pregenerated characters joining the game?

Modifié par Shaughn78, 09 mai 2012 - 10:38 .


#12
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages

Shaughn78 wrote...

Lance,
I am with Morbane, a bit more information about the script and what you are doing is needed, otherwise we are just all going to be throwing ideas into the dark.

***Edit***

You posted you response while I was typing.

Does this have to do with limiting the classes for pregenerated characters joining the game?


Hi Shaughn,

No, that part is fine. :)

I have posted the "broken" part above.

Cheers!
Lance.

#13
Shaughn78

Shaughn78
  • Members
  • 637 messages
Has your testing so far just involved a single player?

#14
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages

Shaughn78 wrote...

Has your testing so far just involved a single player?



Hi Shaughn,

On this part, yes, only SP at the moment.

I will be going to bed now, so won't be around for a while. Will check back later guys!

Cheers!

lance.

#15
Morbane

Morbane
  • Members
  • 1 883 messages
There is sometimes a hanging function; meaning that a certain conditional is failing - not necessarily a a stored data object - but a conditional that is impossible to continue - so in such a case the option to simply return in that case might avoid the crash.

Example:
I had a helper function that checked if a creature had a silver weapon - sometimes it would crash sometimes it would not - it turned out that if the creature had no weapon or was switching weapons the game crashed - the solution was to return if OBJECT_INVALID - took hours to debug that.

#16
kevL

kevL
  • Members
  • 4 056 messages
Rem only the lines to the database, Get&SetCampaignInt -- reroute the variables someplace else if you got to, for now -- see if things go throu ...

#17
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages
Hi Morbane/KevL,

Morbane: I have added quite a few OBJECT_INVALID checks, but none seem to resolve the issue. Furthermore, this function (within the script) should not even be firing the next OnEnter, as the global variable to say "fire" is proven deleted, as it is deleted when first fired. In other words, the function should not even be being called at the second On Enter.

KevL: Yes, I reckon it may well be something to do with the campaign variables, BUT, I do not understand why, as their job is over and done with by the time the On Enter script fires again. And they are not called (should not be anyway) on the next OnEnter call for the next area.

I'm still working on it, and any more ideas would be welcome. (I'll let you know if I get to the bottom of it.)

Many Thanks,
Lance

Modifié par Lance Botelle, 10 mai 2012 - 11:18 .


#18
kevL

kevL
  • Members
  • 4 056 messages
here's a long shot


in the onEnter script of the *next* area (the one that's crashing but doesn't (( supposedly )) run any of your script above) put

object oDataPC = GetFirstPC(TRUE);
string sPlayer = GetPCPlayerName(oDataPC) + GetFirstName(oDataPC) + "_Althea_Exp";
int GameExists = GetCampaignInt(sPlayer, "GameStarted");

But don't actually do anything with 'GameExists' -- just have the engine call it from the DB ( after the first AreaEnter has already acted ). it's possible that the engine wants to make a rogue call to the DB, even on that subsequent area transition, but it's confused * burp


- similar may be happening w/ SetCampaignInt( ) also ...



ps,

Lance wrote...

The problem is, this needs to fire for any player joining a game, which means I have to use the OnEnter script to check for a new player entering the area, rather than a whole party joinig an area at once (if you see what I mean).

but isn't that what onClientEnter is for : a new Client/ player is entering the module/ area? That is, the onEnter catches any random creature entering, while onClientEnter catches real user-objects (only true Player-Controlled characters) *shrugz

btw Lance, is the script, onModuleEnter or onAreaEnter? (guess i shulda asked that first) If its on the latter, can you slide the script up to Module|OnClientEnter, to get what you're after or at least as a test --

( could also try Module|onPCLoaded slot )

#19
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages

kevL wrote...

here's a long shot


in the onEnter script of the *next* area (the one that's crashing but doesn't (( supposedly )) run any of your script above) put

object oDataPC = GetFirstPC(TRUE);
string sPlayer = GetPCPlayerName(oDataPC) + GetFirstName(oDataPC) + "_Althea_Exp";
int GameExists = GetCampaignInt(sPlayer, "GameStarted");

But don't actually do anything with 'GameExists' -- just have the engine call it from the DB ( after the first AreaEnter has already acted ). it's possible that the engine wants to make a rogue call to the DB, even on that subsequent area transition, but it's confused * burp


- similar may be happening w/ SetCampaignInt( ) also ...



ps,

Lance wrote...

The problem is, this needs to fire for any player joining a game, which means I have to use the OnEnter script to check for a new player entering the area, rather than a whole party joinig an area at once (if you see what I mean).

but isn't that what onClientEnter is for : a new Client/ player is entering the module/ area? That is, the onEnter catches any random creature entering, while onClientEnter catches real user-objects (only true Player-Controlled characters) *shrugz

btw Lance, is the script, onModuleEnter or onAreaEnter? (guess i shulda asked that first) If its on the latter, can you slide the script up to Module|OnClientEnter, to get what you're after or at least as a test --

( could also try Module|onPCLoaded slot )



Hi KevL,

You may have something with the OnClientEnter after all, as I was thinking you meant the one for the area and not for the module! Doh! The one for the area would not do, because it is for an area load when more than one player is transferring between areas. I needed the game to recognise a new player entering an area even when a game is in play (which is why I was using OnEnter for the area), but had not considered trying to use the module's OnClientEnter (even though I was using it to store the global variable to fire the function upon entering the area). I will look into that now.

I will also try the campaign thing you mention first ... just to see what the result is. :) EDIT: Actually, I have already checked the database between area transitions and the data is there (by the looks of it).

Cheers!

Lance.

Modifié par Lance Botelle, 10 mai 2012 - 01:33 .


#20
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages
Hi All,

EDIT: KevL ... The area still crashes even when the initial firing comes from the ClientOnEnter rather than the area on enter. This proves that it is not the function itself (as such), but some sort of legacy from firing. A bit of rogue code that is interfering with the next area load (especially if big) ... see next.

Latest update ... When I test the same code on two (smaller) different areas, there is no crash. I do not understand this at all.

SMALL AREAS = 16 x 16 EXT to a 4 x 7 INT (and back again, etc) .... CODE WORKS ALWAYS

LARGE AREAS = 32 x 32 EXT to a 16 x 12 INT ... CODE FAILS WITHIN 1-2 TRANSFERS (but only if function called).

Why would the same code/function fail on larger areas?

The only other difference is that the two areas where the code fails use some custom materials, but I don't think that does anything, as everything works when I rem out the function that causes the crash.

I keep popping back here to see if anybody has any more updates.

Cheers!
Lance.

Modifié par Lance Botelle, 10 mai 2012 - 02:38 .


#21
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages
Hi All,

EDIT:  I just erased what I previously wrote as I still have issues even with smaller areas.

The only solution I can come up with is to avoid erasing/updating databases altogether - UNLESS exiting the module.

If I manage anything else, I will let you know.

If anybody else has a definitive answer, then please let me know.

Cheers!

Lance.

Modifié par Lance Botelle, 10 mai 2012 - 05:39 .


#22
kevL

kevL
  • Members
  • 4 056 messages
of course i suggest not using the DB at all

but, like Apollo 13, you may find a stable configuration ...


Posted Image

#23
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages

kevL wrote...

of course i suggest not using the DB at all

but, like Apollo 13, you may find a stable configuration ...


Posted Image


Hi KevL,

Horrors! Posted Image I have just checked other instances of data recorded in the database (by other code), and in the other tests, *any* database write causes an instability in transitions after it is recorded! (With a relationship of bigger areas more likely to crash).

This is a terrible discovery, as I have used the database functionality in a number of situations to good use, and now to discover this issue is appalling.

Any hope to resolve this in any amount will be appreciated.

Cheers!
Lance.

#24
kevL

kevL
  • Members
  • 4 056 messages
i Forget what they did in NwN .. PWs used to use ( and probly still use ) variables set on small items in the PC inventory, to track variables

that seems less needed now that we have Global_ints, and honestly the only reason i see to not use globals instead of campaignVars, is for carrying particulars of a gamestate from a Campaign to a 2nd, 3rd, etc separate Campaign ..


to work around the DB issue in those cases, i guess you'd have to tell the players to uhmmm, copy their globals.xml file over to the next campaign, or set up a small conversation in an entry room and let the players choose what variables they want set .....

the particulars you're dealing with are no doubt unique, but what is your reason for not just using Globals ???

#25
Lance Botelle

Lance Botelle
  • Members
  • 1 480 messages

kevL wrote...

i Forget what they did in NwN .. PWs used to use ( and probly still use ) variables set on small items in the PC inventory, to track variables

that seems less needed now that we have Global_ints, and honestly the only reason i see to not use globals instead of campaignVars, is for carrying particulars of a gamestate from a Campaign to a 2nd, 3rd, etc separate Campaign ..


to work around the DB issue in those cases, i guess you'd have to tell the players to uhmmm, copy their globals.xml file over to the next campaign, or set up a small conversation in an entry room and let the players choose what variables they want set .....

the particulars you're dealing with are no doubt unique, but what is your reason for not just using Globals ???


Hi KevL,

I am tracking reload exploits to enhance "real" decision play. Everything was working so well! Then I encounter this transition issue after they have been used. In testing, it does seem that it is this initial campaign var check only that causes more problems than most. What ismore, occassionally, I have it working quite well (no crash), then I alter it slightly and it crashes again. Going back to previous settings fails to make it work again! (Yes, I have checked multiple compiling issues.)

I thought I had it cracked whn I was calling the campaign update via an ExecuteScript instead of a function, but then it all went awry again. :(

There seems to be absolutely no logic to this problem at all. All I know is checking this particular campaign var at this particular time causes transitions after this time to crash (especially when entering larger areas).

I will keep searching as I feel up to it ... and will keep listening for ideas .. or recommendations. Posted Image

Cheers!
Lance.