diff --git a/config/menus.cfg b/config/menus.cfg index 7d226a9c..b776020a 100755 --- a/config/menus.cfg +++ b/config/menus.cfg @@ -145,10 +145,11 @@ newmenu singleplayer // teamplay note mature yet //menuitem "Bot Team Deathmatch" "alias tmp_mode 7; showmenu botskill" menuitem "Bot Deathmatch" "alias tmp_mode 8; showmenu botskill" +menuitem "Bot One Shot, One Kill" "alias tmp_mode 12; showmenu botskill" newmenu botskill -alias showmenu_enemies [ if (= $tmp_mode 8) [ showmenu enemies ] [ showmenu "team enemies" ] ] +alias showmenu_enemies [ if (= $tmp_mode 7) [ showmenu "team enemies" ] [ showmenu enemies ] ] menuitem "best" "alias tmp_botskill best; showmenu_enemies" menuitem "good (default)" "alias tmp_botskill good; showmenu_enemies" menuitem "medium" "alias tmp_botskill medium; showmenu_enemies" diff --git a/source/src/clientgame.cpp b/source/src/clientgame.cpp index 3941ab80..0bf22351 100644 --- a/source/src/clientgame.cpp +++ b/source/src/clientgame.cpp @@ -146,7 +146,7 @@ void arenarespawn() conoutf("new round starting... fight!"); respawnself(); // Added by Rick: Let all bots respawn if were the host - if (m_botmode) BotManager.RespawnBots(); + if(m_botmode) BotManager.RespawnBots(); //End add by Rick clearbounceents(); }; @@ -160,12 +160,14 @@ void arenarespawn() bool oneteam = true; loopv(players) if(players[i]) arenacount(players[i], alive, dead, lastteam, lastname, oneteam); arenacount(player1, alive, dead, lastteam, lastname, oneteam); - if(dead>0 && (alive<=1 || (m_teammode && oneteam))) + if((m_botmode && player1->state==CS_DEAD) || (dead>0 && (alive<=1 || (m_teammode && oneteam)))) { conoutf("arena round is over! next round in 5 seconds..."); if(alive) { - if(m_teammode) + if(m_botmode && player1->state==CS_DEAD) + conoutf("the bots have won the round!"); + else if(m_teammode) conoutf("team %s has won the round", lastteam); else conoutf("%s is the survior!", lastname); diff --git a/source/src/cube.h b/source/src/cube.h index 5f6ad1f3..8d4346c5 100644 --- a/source/src/cube.h +++ b/source/src/cube.h @@ -76,13 +76,14 @@ 9 last swiss standing 10 one shot, one kill 11 team one shot, one kill +12 bot one shot, one kill */ #define m_lms (gamemode==3 || gamemode==4) #define m_ctf (gamemode==5) #define m_pistol (gamemode==6) #define m_lss (gamemode==9) -#define m_osok (gamemode==10 || gamemode==11) +#define m_osok (gamemode>=10 && gamemode<=12) #define m_noitems (m_lms || m_osok) #define m_noitemsnade (m_lss) @@ -92,8 +93,9 @@ #define m_arena (m_lms || m_lss || m_osok) #define m_teammode (gamemode==0 || gamemode==4 || gamemode==5 || gamemode==7 || gamemode==11) #define m_tarena (m_arena && m_teammode) -#define m_botmode (gamemode==7 || gamemode == 8) -#define m_mp(mode) ((mode)>=0 && (mode)<=11 && (mode)!=7 && (mode)!=8) +#define m_botmode (gamemode==7 || gamemode == 8 || gamemode==12) +#define m_valid(mode) ((mode)>=0 && (mode)<=12) +#define m_mp(mode) (m_valid(mode) && (mode)!=7 && (mode)!=8 && (mode)!=12) typedef vector cvector; typedef vector ivector; diff --git a/source/src/serverutil.cpp b/source/src/serverutil.cpp index e500e0c9..f6d39031 100644 --- a/source/src/serverutil.cpp +++ b/source/src/serverutil.cpp @@ -78,7 +78,7 @@ const char *modenames[] = { "team deathmatch", "coopedit", "deathmatch", "survior", "team survior", "ctf", "pistol frenzy", "bot team deathmatch", "bot deathmatch", "last swiss standing", - "one shot, one kill", "team one shot, one kill" + "one shot, one kill", "team one shot, one kill", "bot one shot, one skill" }; const char *modestr(int n) { return (n>=0 && (size_t)n < sizeof(modenames)/sizeof(modenames[0])) ? modenames[n] : "unknown"; };