Aller au contenu

Photo

Event override versus event chaining


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

#1
sillyrobot

sillyrobot
  • Members
  • 171 messages
G'day Folks,

I was looking at Pheelon's event override guide on the wiki (http://social.biowar.../Event_override) and was wondering if overrides overwrite one another or is some type of event chaining in effect?

I mod A overrides EVENT_TYPE_INVENTORY_ADDED and then calls HandelEvent() and mod B overrides the same event, does mod B override fire then hand off to mod A or is it last module loaded wins?

#2
AND04

AND04
  • Members
  • 154 messages
afaik the module with the highest priority (see module settings) wins in this case.



seeing as we aren't overriding any specific event-handler but the global event - aka the "jump-point" - all objects that have that event will will fire there first and then go on to their spezific event handler (unless told other wise - aka by us overriding it via the events M2DA and not passing the event alogn to its default handler via HandleEvent)



that said - i am in the progress of mixing up something to cover this issue (manual event override queing via M2DA) - will keep you posted.

#3
Phaenan

Phaenan
  • Members
  • 315 messages
I'm also quite interested in that since wrong habits in that domain can really mess things up (and not always in an obvious manner) so I'll probably run some tests myself. I'll let you know. :o

#4
Innodil Ath Nathosh

Innodil Ath Nathosh
  • Members
  • 28 messages
I'm trying to override the EVENT_TYPE_AREALOAD_POSTLOADEXIT event, I read the page at the wiki, used a dummy script that just displays a floaty "in custom event handler", created the engineevents_inno.gda file and added:

38 EVENT_TYPE_AREALOAD_PRELOADEXIT inno_teleport_events



so using the same ID right? cause we're overriding... my script also passes all events to the default one for now.

Anyway, loaded up my game, did some area loading , but no floaty's... :(



Any of you know what i'm doing wrong here?

#5
Gralamin

Gralamin
  • Members
  • 45 messages
Are you sure it isn't just being hidden by the Loading? AFAIK, PRELOADEXIT indicates the area is not even finished loading - The PC might not be placed, it might not last long enough, etc. For an event such as this, I'd imagine a Show Popup, or some such would be better, since it'd stick around for a bit.

#6
Craig Graff

Craig Graff
  • Members
  • 608 messages
Have you tried adding ECLog.ini to bin_ship and using PrintString?



The text of the file should be

[LogTypes]

Script=1

#7
Phaenan

Phaenan
  • Members
  • 315 messages
As far as I know PRELOADEXIT and DisplayFloatingMessage() aren't great friends. You may want to try what's adviced just above and use a popup or something.


Craig Graff wrote...

Have you tried adding ECLog.ini to bin_ship and using PrintString?

Neat. Some logging is actually possible ! :wub:

Modifié par Phaenan, 28 novembre 2009 - 10:26 .


#8
Innodil Ath Nathosh

Innodil Ath Nathosh
  • Members
  • 28 messages
Oh great, I hadn't found out how to enable logging yet :-) Can I then also use the



#if DEBUG



#endif



constructs???



Well the point is that I actually also use the same floaty stuff to debug some things in my OWN area, and there the floaties ARE showing. Secondly the docs state that this event is to do things the player must see when entering the area...



But in any case i'll try something else. You talk about a popup, how do you display one? just create a string in the talktable and use ShowPopup ? or is there an easier way?



thanks!

#9
Craig Graff

Craig Graff
  • Members
  • 608 messages
DisplayFloatyMessage



I notice you mention two different events above: EVENT_TYPE_AREALOAD_POSTLOADEXIT and EVENT_TYPE_AREALOAD_PRELOADEXIT. Are you certain you are using them consistently?

#10
Innodil Ath Nathosh

Innodil Ath Nathosh
  • Members
  • 28 messages
yes, actually I need the preloadexit one, but for testing I added BOTH events to the 2da

#11
Innodil Ath Nathosh

Innodil Ath Nathosh
  • Members
  • 28 messages
Anyway, I just added th ECLog.ini, I added:

[LogTypes]

Script=1



However, the only log I find in \\Documents\\BioWare\\Dragon Age\\Logs is DragonAge_1.log

This is the only contents (I load up Otagar, travelled to another area and travelled back...



Sat Nov 28 15:46:06 2009

================================================================================

LEVEL MESSAGE

Platform Multi-core system detected. Using multi-threaded renderer.

Platform 2 core(s) detected, 1 worker thread(s) created.

General Initialize - Verify Platform capabilities

General Initialize - Resource Manager

General Initialize - World Database

General Initialize - Physics

General Initialize - Facial Animation

General Initialize - Graphics

Graphics Adapter is 'NVIDIA GeForce 9800M GT'

Graphics Detected 1 Nvidia GPU(s) present.

General Initialize - Input

General Initialize - Console

General Initialize - GUI

General Initialize - Game

General Initialize - ClientApp Start Services

General Initialize - Per Frame AI

General Initialize - Game Rules

General Initialize - Main AI

OnlineFeatures Enabled AddIn: inno_pp.

OnlineFeatures Disabled AddIn: mod_stmna_potion.

OnlineFeatures Disabled AddIn: bf_auto_highlight.

OnlineFeatures Disabled AddIn: jwv_no_fol_level.

OnlineFeatures Disabled AddIn: bf_magic_locks.

OnlineFeatures Disabled AddIn: DAO_PRC_CP_2.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_LKS.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_EMB.

OnlineFeatures Disabled AddIn: DAO_PRC_PROMO_C2.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_WKD.

OnlineFeatures Disabled AddIn: DAO_PRC_PROMO_1.

OnlineFeatures Disabled AddIn: DAO_PRC_NRX_1.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_ME.

General Initialize - Scripting Engine

General Initialize - Module RIM Manager

General Initialize - Pathfinding

General Initialize - Game Mode Controller

General Initialize - Sound

Audio Speaker mode: Stereo

General Initialize - GUISounds

General Initialize - Online Features

OnlineFeatures Enabled AddIn: DAO_PRC_CP_2.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_LKS.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_EMB.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_C2.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_WKD.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_1.

OnlineFeatures Enabled AddIn: DAO_PRC_NRX_1.

OnlineFeatures Enabled AddIn: DAO_PRC_PROMO_ME.

DA Download Manager (DADM) Service was started!

General Initialize - Initialization Complete

DA Download Manager (DADM) Attempting to connect to DADM Control Server!

DA Download Manager (DADM) Service start pending...

DA Download Manager (DADM) Connected to DADM Control Server!

DA Download Manager (DADM) Service started successfully.

DA Download Manager (DADM) Successfully configured DADM!

General Loading - Start

General Loading - End

Script TrackSendGameId: Game ID is 100843445 FromStart: 0

Script GetPlot [wrdpt_talked_to] [OXLEY_TALKED_TO] = [1]

Script GetPlot [mem000pt_state] [MEM_PLAYER_RECEIVED_BAND] = [1]

Script GetPlot [prm000pt_state_embri] [PRM_PLAYER_RECEIVED_EMBRI] = [1]

Script GetPlot [prm000pt_state_wicked] [PRM_PLAYER_RECEIVED_WICKED_OATH] = [1]

Script GetPlot [prm000pt_state_lucky] [PRM_PLAYER_RECEIVED_LUCKY_STONE] = [1]

Script GetPlot [prm000pt_state_collect2] [PRM_PLAYER_RECEIVED_GRIMOIRE] = [1]

Script GetPlot [prm000pt_state_massfx] [PRM_PLAYER_RECEIVED_BLOOD_DRAGON] = [1]

Script GetPlot [2F247F5F5B1C41F7845E3D09F20D5144] [] = [0]

Script GetPlot [2F247F5F5B1C41F7845E3D09F20D5144] [] = [0]

Script GetPlot [mnp000pt_main_lothering] [MAIN_LOTHERING_PC_CROSSED_LOTHERING] = [0]

Script GetPlot [shl000pt_main] [SHL_OPEN_HONNLEATH] = [0]

Script GetPlot [shlpt_main] [SHALE_READY_TO_VISIT_CADASH] = [0]

Script GetPlot [prcpt_postgame] [POST_GAME_ENABLED] = [0]

Script SetPlot [shl000pt_main] [SHL_INSTALLED] -> [1]

Script GetPlot [mnp000pt_main_lothering] [MAIN_LOTHERING_PC_CROSSED_LOTHERING] = [0]

Script GetPlot [shl000pt_main] [SHL_INSTALLED] = [1]

Script GetPlot [pre100pt_light_beacon] [PRE_BEACON_CAILAN_CHARGE_CUTSCENE] = [0]


#12
Innodil Ath Nathosh

Innodil Ath Nathosh
  • Members
  • 28 messages
which makes me wonder: It only detects one GPU but I have SLI with 2 GPU's :/

#13
Innodil Ath Nathosh

Innodil Ath Nathosh
  • Members
  • 28 messages
OK, I finally figured it out :-) See also this thread: http://social.biowar.../index/319658/1



Basically, it seems you need to use PrintToLog(string s) instead of PrintString(string s)

And indeed, for some reason floaty message in the POSTLOAD_EXIT event DO show up in my own module area but NOT in area's of the single player module... weird. The log messages are now being printed so that's perfect.



Thanks for your help guys!

#14
Innodil Ath Nathosh

Innodil Ath Nathosh
  • Members
  • 28 messages
Well, not the end of this it seems. After some more testing I found out that for example the EVENT_TYPE_ENTER is getting into my script but the EVENT_TYPE_AREA_PRELOADEXIT or EVENT_TYPE_AREA_POSTLOADEXIT events are NOT getting into my script (I forgot I also added the ENTER event in my engineevents M2DA for testing)

So do ALL events actually work in the engineevents override or are some restricted?

Modifié par Innodil Ath Nathosh, 28 novembre 2009 - 04:59 .


#15
Joshua Raven

Joshua Raven
  • Members
  • 182 messages
14 days later, but here's a bump. I am trying to override MODULE_LOAD, which seems like something a lot of modders are doing right now.



But somehow the override just won't kick in? I have my script set up and if I export module_core and use HandleEvent to load the specific script at the end of the MODULE_LOAD event in module_core, it works perfectly.



However, when using the engineevents_* m2da technique, it just won't fire the script... This is my line in the m2da:



ID Label Visualizer Script

int string comment string

20 EVENT_TYPE_MODULE_LOAD jra_core





It should work, the script works as proven above, but it just won't fire...? Is this related to the fact that some events can't/won't be fired when using event overrides?

#16
Georg Zoeller

Georg Zoeller
  • Members
  • 188 messages
They would identify as one.

Innodil Ath Nathosh wrote...

which makes me wonder: It only detects one GPU but I have SLI with 2 GPU's :/



#17
Nattfodd

Nattfodd
  • Members
  • 321 messages
Someone knows if i can override all events listed in engineevents.GDA?