Template talk:O: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
 
Line 2: Line 2:


It's easy enough to guess oftentimes, but I was wondering if there was a more error-proof way of determining them (be it reading source code or setting up an I/O chain).<br/>— [[User:SirYodaJedi|SirYodaJedi]] ([[User_talk:SirYodaJedi|talk]]) 09:23, 24 April 2025 (PDT)
It's easy enough to guess oftentimes, but I was wondering if there was a more error-proof way of determining them (be it reading source code or setting up an I/O chain).<br/>— [[User:SirYodaJedi|SirYodaJedi]] ([[User_talk:SirYodaJedi|talk]]) 09:23, 24 April 2025 (PDT)
:Reading the source code is mostly error proof by just checking what parameters is <code>.FireOutput</code> or <code>.Set</code> called with for example. Checking out activator and caller in IO can be done like this
:Example with checking activator and caller of OnTakeDamage output of prop_physics. I aimed at it and used !picker to target it and addoutput to it first in this case. Then paused the IO. Shot the prop_physics and checked with dumpevent queue command.
<dd><pre>
] ent_fire !picker addoutput "OnTakeDamage whatever"
] ent_pause
Pausing entity I/O events
] dumpeventqueue
Dumping event queue. Current time is: 941.23
  (940.83) Target: 'whatever', Input: 'Use', Parameter ''. Activator: 'Nescius', Caller 'prop_physics'. 
</pre></dd>
:Or also in games with vscript can use something like <code>ent_fire !picker AddOutput "OnSomething !caller,RunScriptCode,printl(self)"</code> which will print the caller
:--[[User:Nescius|Nescius]] ([[User talk:Nescius|talk]]) 09:55, 24 April 2025 (PDT)

Revision as of 09:55, 24 April 2025

Empirically determining !activator and !caller

It's easy enough to guess oftentimes, but I was wondering if there was a more error-proof way of determining them (be it reading source code or setting up an I/O chain).
SirYodaJedi (talk) 09:23, 24 April 2025 (PDT)

Reading the source code is mostly error proof by just checking what parameters is .FireOutput or .Set called with for example. Checking out activator and caller in IO can be done like this
Example with checking activator and caller of OnTakeDamage output of prop_physics. I aimed at it and used !picker to target it and addoutput to it first in this case. Then paused the IO. Shot the prop_physics and checked with dumpevent queue command.
] ent_fire !picker addoutput "OnTakeDamage whatever"
] ent_pause 
Pausing entity I/O events
] dumpeventqueue 
Dumping event queue. Current time is: 941.23
   (940.83) Target: 'whatever', Input: 'Use', Parameter ''. Activator: 'Nescius', Caller 'prop_physics'.  
Or also in games with vscript can use something like ent_fire !picker AddOutput "OnSomething !caller,RunScriptCode,printl(self)" which will print the caller
--Nescius (talk) 09:55, 24 April 2025 (PDT)