Aller au contenu

Photo

[Solved] Critical Bug in somewhere


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

#1
BioSpirit

BioSpirit
  • Members
  • 261 messages
There is really strange failure caused by an addin. So far, the only symptom from the failure is:

If your follower will fall in a battle and he/she is too far from the rest of your team to stand up when the battle is over, the DA:O will hangup/freeze in a 2-4 seconds after killing the last enemy. This seem to happen always in every battle if there is a fallen team member.

All export directories are empty yet still the problem will manifest itself in the main campaign if the module is enabled. If the module is disabled everything is working fine. Therefor, I would suspect that the problem is in the DA:O itself somehow.

Help would be appreciated. Has anyone else detected anything similar especially if the module is a quest extension into the main campaign. I have Windows 7 64-bit

Program Files (x86)/Dragon Age/Modules/single player/override/ [IS EMPTY]
Program Files (x86)/Dragon Age/packages/core/override/ [IS EMPTY]

.../My Documents/BioWare/Dragon Age/packages/core/override/ [IS EMPTY]
.../My Documents/BioWare/Dragon Age/modules/single player/override/ [IS EMPTY]
.../My Documents/BioWare/Dragon Age/AddIns/[MyAddIn]/core/override/ [IS EMPTY]
.../My Documents/BioWare/Dragon Age/AddIns/[MyAddIn]/module/override/ [IS EMPTY]

Modifié par BioSpirit, 13 février 2010 - 08:55 .


#2
BioSpirit

BioSpirit
  • Members
  • 261 messages
After removing a file ModuleName.cif from the BioWare/Dragon Age/[MyAddIn]/module/ the main campaign got fixed but the AddIn won't run without the file.

#3
Phaenan

Phaenan
  • Members
  • 315 messages
My guess would be something going hairy in that module core script, since it's one of the things defined in the campaign info file. :o

That's nothing more than a wild guess, tho.

#4
anakin5

anakin5
  • Members
  • 258 messages
Can you post your module core script ?

#5
thebigMuh

thebigMuh
  • Members
  • 98 messages
He said that all module directories are empty, so there is no module core script. The only file in the module is the .cif.



Unless the .cif references a script that is included with standard DA:O, like the default module_core. But, for an addin, that would be bad, anyway.



Ciao, muh!

#6
anakin5

anakin5
  • Members
  • 258 messages
He said override folders are empty. The module script is in the .erf of data folder if the mod has be installed with daupdater.

#7
BioSpirit

BioSpirit
  • Members
  • 261 messages
Thanks about replies. Your asumptions were correct. The problem is in a module_core script and the module_core script was listed in the *.cif.  I had my own module script but it was not in use. Just a while ago I upgraded my XP SP3 system to Win 7 and got missplaced the module script in a process. There was nothing vital in that script. 

I started to track down the problem and it looks like the module script is called 1000 times per a second. All CPU resourses are spend to run that script. So, It's not a supprise that the game will freeze.

The event that is send to the module script is EVENT_TYPE_DELAYED_GM_CHANGE. If I prevent the event from passing to module_core that will fix the problem. But it would be better to find out why did this happen from the first place. Passing the event to module_core shouldn't freeze the system. Something's not right.

#8
BioSpirit

BioSpirit
  • Members
  • 261 messages
What ever is wrong in the module_core could be a source of many problems. If you look at the support forum there is a lot of freezing/delay issues reported.

Modifié par BioSpirit, 13 février 2010 - 08:11 .


#9
thebigMuh

thebigMuh
  • Members
  • 98 messages
Okay, I'm not sure I'm following entirely.



- Which script is listed in your .cif? If it's module_core, then remove that

- Which script is packed with your addin? Did you remove all files from your addin module except the .cif, or are some .erf files still left?`



module_core is not meant to be used with an addin module. The single player module script already handles all the basic functionality and calls module_core as a fallback. If you also use module_core in your addin module, events will be handled multiple times instead of just once.



For an addin, start without any module script at all. If you need events handled at a module level, write a script that handles only those specific events, and don't call HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE) unless you are really sure you know what you are doing.



I don't think it was a good idea that module_core is the default script for a new module.



Ciao, muh!

#10
BioSpirit

BioSpirit
  • Members
  • 261 messages

thebigMuh wrote...
- Which script is listed in your .cif? If it's module_core, then remove that.

Yes, it was module_core and I have removed it now.

thebigMuh wrote...
- Which script is packed with your addin? Did you remove all files from your addin module except the .cif, or are some .erf files still left?`

No, I was not aware of any .erf files. Data folders are empty.

thebigMuh wrote...
- Which script is packed with your addin?

It was the module_core, I have replaced it with my own script now.

thebigMuh wrote..
module_core is not meant to be used with an addin module. The single player module script already handles all the basic functionality and calls module_core as a fallback. If you also use module_core in your addin module, events will be handled multiple times instead of just once.


That makes sence. I suppose handling the events twise was causing a loop of some kind.

thebigMuh wrote..
For an addin, start without any module script at all. If you need events handled at a module level, write a script that handles only those specific events, and don't call HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE) unless you are really sure you know what you are doing.


Writing a new module script without the HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE)  seems to fix the problem.

Thank you everybody.

Modifié par BioSpirit, 13 février 2010 - 09:06 .