Taunt/Ai signal detect by triggers

 [MM]Gallas


Editado 3 de marzo de 2017 - 21:59 por [MM]Gallas
Original post by JustTesting1234 - [You must login to view link]

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
Adjuntos:
Detect Taunts Example.scx (tamaño: 759 B)
Enlace | Responder | Citar
 +[MM]jason


Escrito 4 de marzo de 2017 - 00:25
He's so smart.


Enlace | Responder | Citar
[1]
Mostrando 1 - 2 de 2 mensajes
Saltar a Foro:
1 Usuario(s) están leyendo este tema (en los últimos 30 minutos)
0 miembros, 1 invitados

今人気なコンテンツ:
Word Association (78 人が視聴中)
AoKTS updates (69 人が視聴中)
1.6 reward campaing (59 人が視聴中)
CBA PathBlood 1.8.0 (56 人が視聴中)
Photos of Voobly Players (36 人が視聴中)
TIW 2020 Map votes (30 人が視聴中)
New Voobly Client 2.7 (29 人が視聴中)
過去一週間でアクティブなスレッド