Dude, you probably have enough on your plate. Heh.
I decided to try and eliminate all other errors in the console first and don't why I didn't notice this. Since it seemed to always occur during "fight3" I bypassed it for a bit and it became the next AI Melee TakeDown, in this case attack2. All sounds seem to work but this is clearly a problem.
SFXProfile((null))::onAdd: The preload failed!
SFXSound::_create() - Could not create device buffer!
SFXSystem::createSource() - Failed to create sound!
Loading SFX: art/sound/TAIKTakedowns/fight2 (1 channels, 44 kHz, 3.83 sec, 330 kb)
Could it be that simple as a Null in SFX? If so I don't get where to hunt this down.
This is the Takedown audio code but from the echos and also that it loads the right sound, it seems to work.
%person.fightSoundSource = sfxPlayOnce(%description,"art/sound/TAIKTakedowns/" @ %filename,getWord(%pos,0),getWord(%pos,1),getWord(%pos,2));
echo("person" @ %person.fightSoundSource);
// Make AIPlayers turn their heads if this happens close to them
// The idea is that if we're going to stab someone standing next to their friend...
// ...their friend should probably notice the scuffle.
edit: Found this and it looks complicated enough...
%prefix = "FT3_"; // Animation name is this + "loser" or "winner", e.g. FT1_Winner, or FT1_Loser
%winOffsetFromLose = "0 1 0"; // Winner should perform this takedown 1m in front of loser
%loseOffsetFromWin = ""; // Loser of this takedown should stay put
%initPadTime = 100; // 10ms before playing animations, enough time to get everyone to stop what they're doing
%lookCode = 1; // 1 = Winner looks toward loser, 2= loser looks toward winner
%winFightTime = 2200 + %initPadTime; // Time in ms until the winner is done with the fight, and control is re-acquired.
%loseFightTime = 3500 + %initPadTime; // How long until the loser is given their control binds back (though they're dead, they may want to respawn)
%noReturnTime = 1340; // Time (ms) until victim is officially dead. %lose can escape the fight if %win dies before this time has elapsed.
%disarmTime = 3300; // Time (ms) until victim drops their gun
%p = %win.prepActor(%lose,%winOffsetFromLose,%loseOffsetFromWin,%lookCode);
if (%p == -1)
%lose.fightKiller = %win;
%win.fightVictim = %lose;
%win.weaponSched = %win.schedule(500,mountImage,TAIKKnifeImage,0);
if (%win.getState() $= "Dead" || %lose.getState() $= "Dead") return;
%win.setActionThread(%prefix @ "Winner");
%lose.setActionThread(%prefix @ "Loser");