Community Forums > Voobly Community > Age of Empires II: The Conquerors > Custom Scenario > Scenario Design > Guides > Taunt/Ai signal detect by triggers
[1]
Displaying 1 - 2 out of 2 posts
1 User(s) are reading this topic (in the past 30 minutes)
0 members, 1 guests
0 members, 1 guests
What's popular right now:
Word Association (97 users)
AoKTS updates (54 users)
CBA PathBlood 1.8.0 (42 users)
1.6 reward campaing (37 users)
Photos of Voobly Players (32 users)
Most legendary aoe player (22 users)
Top 5 players of all time (R6) (17 users)
Most active threads in past week:
Torneo 1v1 HUMAITA / HUMAITA 1... (41 posts)
🌟 Let's Restart Custom Scenar... (24 posts)
If there is chance to advertise ... (7 posts)
AOM Error "Unsupported Grap... (6 posts)
Voobly Rouge Spear on Mac (3 posts)
Hero Tourney Match Schedules (3 posts)
Mod 'v1.6 Game Data' version doe... (3 posts)
The AI Signal and AI Script Goal triggers read/write from/to some buffers in the game memory, but the game developers forgot to add a basic check to make sure the value is not < 0 or > 255 which allows a buffer overflow
so basically, you can read or write '01 00 00 00' anywhere in the game memory (must be a multiplier of 4). and using invert condition trick you can check if a value is different than '01 00 00 00'
you only need some tool or a modified aokts that allows to specify any amount < 0 or > 255
Condition 'AI Signal' (set with: set-signal) reads from 0x006B45B8
Effect 'AI Script Goal' (check with: event-detected; reset with: acknowledge-event) writes to 0x006B39A0
# examples:
1. if you want to write to address 0x0066B000: (66B000 - 6B39A0) / 4 = FFFEDD98 (-74344 in decimal) so you just need to type: AI Script Goal '-74344'
2. here is an useful example to detect if the map is being played in singleplayer or in multiplayer:
[You must login to view link]
3. detecting player 1 taunts (1 to 44):
[You must login to view link]
# known values for condition AI Signal:
- detect AI Script Goal: -774 + ID
- detect single-player game: -1034
- detect taunts: -518 + ((PLAYER - 1) * 64) + (TAUNT - 1) / 4
- detect Starting Resources - Standard: -1036
# known values for effect AI Script Goal:
- set AI Signal: 774 + ID
- set AI Shared Goal: -258 + ID
added example for detecting taunts. sadly taunts are stored in 1 byte and this reads 4 bytes, so its only possible to detect groups of 4 taunts. eg you can detect if sent any taunt betwen 1 - 4, but not exactly 1, 2, 3 or 4. also once the taunt is typed, it wont get reset (condition will always be met)
you can detect up to 256 taunts per player that are in 64 groups of 4:
GROUP 1: taunts 1 to 4
GROUP 2: taunts 5 to 8
GROUP 3: taunts 9 to 12
...
GROUP 64: taunts 253 to 256
taunts GROUP can be calculated with the formula:
GROUP = (TAUNT - 1) / 4 + 1
the base to detect taunts is -518:
VALUE = -518
so the complete formula is:
AI Signal = VALUE + ([PLAYER - 1] * 64) + GROUP - 1
eg, to detect if player 4 type some taunt betwen 13 and 16 (GROUP 4):
AI Signal = -518 + ((4 - 1) * 64) + 4 - 1 = -323