Quote:
Code:
void BotBuyStuff(bot_t *pBot)
{
//char szMenuSelect[40];
edict_t *pEdict = pBot->pEdict;
#ifdef DEBUG
report_log (LOG_BOTBASE, "BotBuyStuff","Action=%d",pBot->BuyAction);
#endif
// Needs a Weapon ?
if((pBot->BuyAction == MSG_CS_BUYWEAPON_SELECT)
&& (pBot->f_buy_time+ RANDOM_LONG(1,6)/10)<gpGlobals->time)
{
pBot->BuyAction = MSG_CS_IDLE;
if(pBot->pSelected_weapon == NULL || pBot->iBuyCount>1)
{
#ifdef _DEBUG
fp=fopen("PODERROR.txt","a"); fprintf(fp, "ERROR no Weapon selected: MSG_CS_BUYWEAPON_GROUPSELECT: %s - iBuyCount=%d\n",pBot->name,pBot->iBuyCount); fclose(fp);
#endif
return;
}
// fp=fopen("bot.txt","a"); fprintf(fp, "MSG_CS_BUYWEAPON_GROUPSELECT: %s - iBuyCount=%d\n",pBot->name,pBot->iBuyCount); fclose(fp);
pBot->iBuyCount = 2;
pBot->f_buy_time=gpGlobals->time;
//sprintf("menuselect","%d",pBot->pSelected_weapon->buy_shortcut);
FakeClientCommand(pEdict, pBot->pSelected_weapon->buy_shortcut, NULL, NULL);
return;
}
if((pBot->BuyAction == MSG_CS_WEAPONBUY)
&& (pBot->f_buy_time+(20-pBot->Ph)/5 + RANDOM_LONG(1,6)/5)<gpGlobals->time)
{
pBot->BuyAction = MSG_CS_IDLE;
if((pBot->pSelected_weapon == NULL) || (pBot->iBuyCount != 2))
{
fp=fopen("bot.txt","a"); fprintf(fp, "ERROR no Weapon selected: MSG_CS_BUYWEAPON_PSSRM: %s - iBuyCount=%d\n",pBot->name,pBot->iBuyCount); fclose(fp);
return;
}
// fp=fopen("bot.txt","a"); fprintf(fp, "MSG_CS_BUYWEAPON_PSSRM: %s - iBuyCount=%d\n",pBot->name,pBot->iBuyCount); fclose(fp);
pBot->iBuyCount=3;
pBot->f_buy_time=gpGlobals->time;
// sprintf(szMenuSelect,"%d",pBot->pSelected_weapon->iBuyGroup);
// Whistler: changed this for CS 1.6
/* if (g_bIsVersion16)
{
if (UTIL_GetTeam(pBot->pEdict) == 0) // terrorist
sprintf(szMenuSelect,"%d",pBot->pSelected_weapon->iNewBuySelectT);
else // CT
sprintf(szMenuSelect,"%d",pBot->pSelected_weapon->iNewBuySelectCT);
}
else
sprintf(szMenuSelect,"%d",pBot->pSelected_weapon->iBuySelect);*/
FakeClientCommand(pEdict, pBot->pSelected_weapon->buy_shortcut, NULL, NULL);
BotPushMessageQueue(pBot,MSG_CS_BUY);
return;
}
// Needs Ammo ?
if((pBot->BuyAction==MSG_CS_BUYAMMO)
&& (pBot->f_buy_time+(20-pBot->Ph)/8)<gpGlobals->time)
{
pBot->BuyAction=MSG_CS_IDLE;
if(BotHasPrimaryWeapon(pBot)==FALSE) // Pistol ?
FakeClientCommand(pEdict, "menuselect","7", NULL);
else
FakeClientCommand(pEdict, "menuselect","6", NULL);
// fp=fopen("bot.txt","a"); fprintf(fp, "MSG_CS_BUYAMMO: %s - iBuyCount=%d\n",pBot->name,pBot->iBuyCount); fclose(fp);
pBot->iBuyCount=4;
pBot->f_buy_time=gpGlobals->time;
BotPushMessageQueue(pBot,MSG_CS_BUY);
return;
}
|
Well I can't get old weapon buy system to work so I do this what you say me to do PMB.I will fix pickup pistols think later.
Tell me where I wrong!
Now the bots buy shield and all others weapons but after the bots finish with buying they stay in one plase for 15 sec.
What I must do to remove this bug.