I don't have anything for CS:S right now. At the moment developing this requires a custom engine.dll(that goes in the source sdk base 2007\bin folder), and custom dlls for TF2, and running TF2 as a mod. At some point in the future this new bot interface stuff will be rolled out to the public in an update. Right now he has mostly been adding accesors to mod side data for TF2. If you can put together a list of CS:S specific data you are going to need to access I can push for that to get added. Same for anyone who knows DOD:S pretty well. By mod specific data I mean information specific to the mod itself, such as TF2 accessing the buildables for an engineer, the disguise status for spy, etc.
Generic information, such as accessing ammo and weapon information has all been added, so a very basic bot such as for HL2DM would be fully possible with just the new vanilla bot interface.
Using the old bugzilla post as an example:
http://developer.valvesoftware.com/c..._bug.cgi?id=16
#1,2,5,8,10,11,12,13 have all pretty much been addressed.
#3 and 6 naturally require some accesors(through a generic interface) be added to individual mods based on the requirements of the mod. Here's an example.
Code:
pluginvariant val, empty;
if(pInfo->GetCustomInfo(TF2::TFPLAYERINFO_EDICT_SENTRY, val, empty))
{
pMsg->m_SentryStats.m_Entity = HandleFromEntity(val.Edict());
if(val.Edict())
{
IEntityInfo *pSgInfo = EntInfo((edict_t*)val.Edict());
if(pSgInfo)
{
health = pSgInfo->GetHealth();
maxHealth = pSgInfo->GetMaxHealth();
}
if(pInfo->GetCustomInfo(TF2::TFPLAYERINFO_SENTRY_LEVEL, val, empty))
{
level = val.Int();
}
if(pInfo->GetCustomInfo(TF2::TFPLAYERINFO_SENTRY_AMMO_SHELLS, val, empty))
{
shells = (val.Int()>>8) & 0xFF;
maxshells = val.Int() & 0xFF;
}
if(pMsg->m_SentryStats.m_Level > 2)
{
if (pInfo->GetCustomInfo(TF2::TFPLAYERINFO_SENTRY_AMMO_ROCKETS, val, empty))
{
rockets = (val.Int()>>8) & 0xFF;
maxrockets = val.Int() & 0xFF;
}
}
}
}
pInfo is a greatly expanded playerinfo interface. There is also a new IEntityInfo interface that allows a bunch of information to be accessed for entities in general, and not be limited to just player info.
Information specific to the mod will need to be supported and added for access via these GetCustomInfo paths.