Ich will einen sehr aggresiven Feind erzeugen, der sofort angreift, wenn er in unmittelbarer Nähe Feinde hört. Es stört mich, wenn man sich unterhalten kann und der Feind einfach vorbeiläuft obwohl er einen 5 Meter hinter sich locker hören müsste.
Für TFAR hab ich dazu 2 Funktionen geschrieben. Eine prüft, ob der Gegner den Spieler hätte hören müssen. Wenn ja, wird die zweite Funktion wie folgt ausgelöst.
[[player, _feindEinheit], "schmitt_fnc_lasseFeindAufZuLautenSpielerReagieren", "AN_SERVER"] spawn schmitt_fnc_mpPaketSenden;
Die Funktion funktioniert auch wunderbar im TFAR Umfeld. Jetzt muss ich eben umprogrammieren, sodass die Mission auch im ACRE Umfeld funktioniert. Dazu möchte ich meine Funktion im ACRE Code verstecken:
- if (_lastRevealed + 15 < time) then
- {
- _curUnit setVariable ["acre_sys_core_lastRevealed", time, false];
- ["acre_sys_core_onRevealUnit", [acre_player, _curUnit, 1.6 ] ] call CBA_fnc_globalEvent;
- // Es folgt die neue Schmitt-spezifische Zeile
- [[acre_player, _curUnit], "schmitt_fnc_lasseFeindAufZuLautenSpielerReagieren", "AN_SERVER"] spawn schmitt_fnc_mpPaketSenden;
- };
Mein erster Versuch dazu lautete gerade
- // Zunächst den originalen ACRE Handler entfernen:
- [acre_sys_core_monitorAIHandle] call CBA_fnc_removePerFrameHandler;
- // Dann den modifizierten ACRE Handler starten:
- acre_sys_core_fnc_enableRevealAI =
- { ...
Aber das klappt nicht. Wie ihr geschrieben habt, liegt das an der finalen Kompilierung von acre_sys_core_fnc_enableRevealAI. Schade
- => 18:07:52 Attempt to override final function - acre_sys_core_fnc_enablerevealai
Ich werde nun commy2s Ansatz verfolgen und das bedeutet konkret in meiner init.sqf (da müsste doch die initPlayerLocal.sqf der bessere Platz sein weil die Funktion den Server nicht interessiert?):
- ["acre_sys_core_onRevealUnit",
- {
- params ["_player", "_unit", "_revealAmount"];
- systemChat format ["%1 revealed for %2", _player, _unit];
- [[_player, _unit], "schmitt_fnc_lasseFeindAufZuLautenSpielerReagieren", "AN_SERVER"] spawn schmitt_fnc_mpPaketSenden;
- }
- ] call CBA_fnc_addEventHandler;
... Trommelwirbel ...
Juhu!! Funktioniert wunderbar! https://steamuserimages-a.akam…B81862687928F10AE9FFEF76/
Besten Dank an die Runde!