Pazyryk
Deity
- Joined
- Jun 13, 2008
- Messages
- 3,584
You might be hard-pressed to find a reason to use this. But, if you want some game mechanic to be delayed by some specific amount of time in seconds or fractions of a second, you can do this using Events.LocalMachineAppUpdate. It's used by the tutorial system to decide when it's time to annoy you with some help...
Test code:
Output:
You can see it's firing many times each second. Obviously, that's a lot of overhead that you don't want for very long, certainly not between turns. If you had some need for this over a long time (though I can't really imagine why you would) you could remove the listener and add it back later:
The first arg (tickCount) is more useful here. It keeps counting (in 1/1000's of a second) even when the listener is disconnected. Of course, if you are timing something over hours you should just check os.clock() each turn. But this Event lets you time some graphical or sound UI in seconds or fractions of a second if you need that.
[Edit: I had previously suggested that you use Events.LocalMachineAppUpdate.RemoveAll() to shut off tutorial overhead. whoward69 points out below that setting No Advice in options does shut down these checks, so no need to worry about that.]
Test code:
Code:
local bStart = false
local tickStart = 0
local cumIncrement = 0
local function LocalMachineAppUpdateListener(tickCount, timeIncrement)
if bStart then
cumIncrement = cumIncrement + timeIncrement
print("LocalMachineAppUpdateListener: ", (tickCount - tickStart) / 1000, cumIncrement)
else
tickStart = tickCount
bStart = true
end
end
Events.LocalMachineAppUpdate.Add(LocalMachineAppUpdateListener)
Output:
Spoiler :
Code:
EaMain: LocalMachineAppUpdateListener: 0.11 0.11000000685453
EaMain: LocalMachineAppUpdateListener: 0.125 0.12500000745058
EaMain: LocalMachineAppUpdateListener: 0.141 0.14100000821054
EaMain: LocalMachineAppUpdateListener: 0.344 0.34400001727045
EaMain: LocalMachineAppUpdateListener: 0.39 0.39000002108514
EaMain: LocalMachineAppUpdateListener: 0.422 0.42200002260506
EaMain: LocalMachineAppUpdateListener: 0.453 0.45300002396107
EaMain: LocalMachineAppUpdateListener: 0.468 0.46800002455711
EaMain: LocalMachineAppUpdateListener: 0.5 0.50000002607703
EaMain: LocalMachineAppUpdateListener: 0.546 0.54600002989173
EaMain: LocalMachineAppUpdateListener: 0.562 0.56200003065169
EaMain: LocalMachineAppUpdateListener: 0.578 0.57800003141165
EaMain: LocalMachineAppUpdateListener: 0.609 0.60900003276765
EaMain: LocalMachineAppUpdateListener: 0.64 0.64000003412366
EaMain: LocalMachineAppUpdateListener: 1.545 1.5450000651181
EaMain: LocalMachineAppUpdateListener: 1.576 1.5760000664741
EaMain: LocalMachineAppUpdateListener: 1.592 1.592000067234
EaMain: LocalMachineAppUpdateListener: 1.607 1.6070000678301
EaMain: LocalMachineAppUpdateListener: 1.623 1.62300006859
EaMain: LocalMachineAppUpdateListener: 1.638 1.6380000691861
EaMain: LocalMachineAppUpdateListener: 1.654 1.6540000699461
EaMain: LocalMachineAppUpdateListener: 1.67 1.670000070706
EaMain: LocalMachineAppUpdateListener: 1.685 1.6850000713021
EaMain: LocalMachineAppUpdateListener: 1.701 1.701000072062
EaMain: LocalMachineAppUpdateListener: 1.732 1.732000073418
EaMain: LocalMachineAppUpdateListener: 1.748 1.748000074178
EaMain: LocalMachineAppUpdateListener: 1.763 1.763000074774
EaMain: LocalMachineAppUpdateListener: 1.779 1.779000075534
EaMain: LocalMachineAppUpdateListener: 1.794 1.79400007613
EaMain: LocalMachineAppUpdateListener: 1.81 1.81000007689
EaMain: LocalMachineAppUpdateListener: 1.826 1.82600007765
EaMain: LocalMachineAppUpdateListener: 1.841 1.841000078246
EaMain: LocalMachineAppUpdateListener: 1.857 1.857000079006
EaMain: LocalMachineAppUpdateListener: 1.872 1.872000079602
EaMain: LocalMachineAppUpdateListener: 1.888 1.888000080362
EaMain: LocalMachineAppUpdateListener: 1.904 1.9040000811219
EaMain: LocalMachineAppUpdateListener: 1.919 1.919000081718
EaMain: LocalMachineAppUpdateListener: 1.935 1.9350000824779
EaMain: LocalMachineAppUpdateListener: 1.95 1.950000083074
EaMain: LocalMachineAppUpdateListener: 1.982 1.9820000845939
EaMain: LocalMachineAppUpdateListener: 1.997 1.9970000851899
EaMain: LocalMachineAppUpdateListener: 2.013 2.0130000859499
EaMain: LocalMachineAppUpdateListener: 2.028 2.0280000865459
EaMain: LocalMachineAppUpdateListener: 2.044 2.0440000873059
EaMain: LocalMachineAppUpdateListener: 2.06 2.0600000880659
EaMain: LocalMachineAppUpdateListener: 2.075 2.0750000886619
EaMain: LocalMachineAppUpdateListener: 2.091 2.0910000894219
EaMain: LocalMachineAppUpdateListener: 2.106 2.1060000900179
EaMain: LocalMachineAppUpdateListener: 2.122 2.1220000907779
EaMain: LocalMachineAppUpdateListener: 2.138 2.1380000915378
EaMain: LocalMachineAppUpdateListener: 2.153 2.1530000921339
EaMain: LocalMachineAppUpdateListener: 2.169 2.1690000928938
EaMain: LocalMachineAppUpdateListener: 2.2 2.2000000942498
EaMain: LocalMachineAppUpdateListener: 2.2 2.2000000942498
EaMain: LocalMachineAppUpdateListener: 2.231 2.2310000956059
EaMain: LocalMachineAppUpdateListener: 2.247 2.2470000963658
EaMain: LocalMachineAppUpdateListener: 2.262 2.2620000969619
EaMain: LocalMachineAppUpdateListener: 2.278 2.2780000977218
EaMain: LocalMachineAppUpdateListener: 2.294 2.2940000984818
EaMain: LocalMachineAppUpdateListener: 2.309 2.3090000990778
EaMain: LocalMachineAppUpdateListener: 2.325 2.3250000998378
EaMain: LocalMachineAppUpdateListener: 2.34 2.3400001004338
EaMain: LocalMachineAppUpdateListener: 2.356 2.3560001011938
EaMain: LocalMachineAppUpdateListener: 2.372 2.3720001019537
EaMain: LocalMachineAppUpdateListener: 2.387 2.3870001025498
EaMain: LocalMachineAppUpdateListener: 2.403 2.4030001033098
EaMain: LocalMachineAppUpdateListener: 2.418 2.4180001039058
EaMain: LocalMachineAppUpdateListener: 2.434 2.4340001046658
EaMain: LocalMachineAppUpdateListener: 2.465 2.4650001060218
EaMain: LocalMachineAppUpdateListener: 2.481 2.4810001067817
EaMain: LocalMachineAppUpdateListener: 2.496 2.4960001073778
EaMain: LocalMachineAppUpdateListener: 2.512 2.5120001081377
EaMain: LocalMachineAppUpdateListener: 2.528 2.5280001088977
EaMain: LocalMachineAppUpdateListener: 2.543 2.5430001094937
...
EaMain: LocalMachineAppUpdateListener: 26.458 26.45800117217
EaMain: LocalMachineAppUpdateListener: 26.474 26.47400117293
EaMain: LocalMachineAppUpdateListener: 26.489 26.489001173526
EaMain: LocalMachineAppUpdateListener: 26.505 26.505001174286
EaMain: LocalMachineAppUpdateListener: 26.52 26.520001174882
EaMain: LocalMachineAppUpdateListener: 26.536 26.536001175642
EaMain: LocalMachineAppUpdateListener: 26.552 26.552001176402
EaMain: LocalMachineAppUpdateListener: 26.567 26.567001176998
EaMain: LocalMachineAppUpdateListener: 26.583 26.583001177758
EaMain: LocalMachineAppUpdateListener: 26.598 26.598001178354
EaMain: LocalMachineAppUpdateListener: 26.614 26.614001179114
EaMain: LocalMachineAppUpdateListener: 26.645 26.64500118047
Spoiler :
Code:
> Events.LocalMachineAppUpdate.Remove(LocalMachineAppUpdateListener)
...
> Events.LocalMachineAppUpdate.Add(LocalMachineAppUpdateListener)
function: 53188A78
EaMain: LocalMachineAppUpdateListener: 54.866 26.66100118123
EaMain: LocalMachineAppUpdateListener: 54.881 26.676001181826
EaMain: LocalMachineAppUpdateListener: 54.897 26.692001182586
EaMain: LocalMachineAppUpdateListener: 54.913 26.708001183346
EaMain: LocalMachineAppUpdateListener: 54.928 26.723001183942
EaMain: LocalMachineAppUpdateListener: 54.944 26.739001184702
EaMain: LocalMachineAppUpdateListener: 54.959 26.754001185298
EaMain: LocalMachineAppUpdateListener: 54.991 26.786001186818
[Edit: I had previously suggested that you use Events.LocalMachineAppUpdate.RemoveAll() to shut off tutorial overhead. whoward69 points out below that setting No Advice in options does shut down these checks, so no need to worry about that.]