Quote:
Originally Posted by Silvers
This function calls this:
PHP Code:
char __cdecl CDirectorChallengeMode::SpecialsShouldRetreatToCover(CDirectorChallengeMode *this) { char result; // al
result = *((_BYTE *)this + 1); if ( result ) result = CDirector::GetScriptValue(TheDirector, "cm_SpecialsRetreatToCover", 0) != 0; return result; }
So you could set "cm_SpecialsRetreatToCover" to "1" probably via VScript although that might not have the desired result, depends when the "CDirectorChallengeMode::SpecialsShouldRetrea tToCover" function gets called which might not be in any think function for the tank.
To find the sig on windows see the TUT link in my signature, there's a link that explains how to find stuff by vtable if there are no strings. But SDKCalling this is unlikely to make the tank retreat.
|
Thanks a lot, Silvers, and sorry for my late reply. I have tried to write a simple VScript named coop.nut like this and tested it in coop mod, linux server
PHP Code:
DirectorOptions <-
{
cm_SpecialsRetreatToCover = 1
}
And as you said, the VScript didn't perform me the desired effect, for example, I spawned a smoker and it still will tried to approach to survivors and perform a drag instead of retreating, and so did tank, would not retreat after spawning.
I will try another method, first use L4D_GetRandomPZSpawnPosition function in left4dhooks.inc to get a random spawn position, then use
PHP Code:
CommandABot( {cmd = DirectorScript.BOT_CMD_MOVE, pos = Vector( %f, %f, %f)}, pos[0], pos[1], pos[2] )
to let bot tank go to the specific position which generated by L4D_GetRandomPZSpawnPosition function. Hope this method will work.
I watched the video on youtube of sigscanning intro and how to make good signatures, I have learnt a lot of sigscanning, and i will continue learning sigscanning and vtable using from your tutorial.
Whatever, thanks so much for your help and happy Chinese New Year.