From 4016ae2e098748cfdb992175fcc3a583915f09ce Mon Sep 17 00:00:00 2001 From: terencehill Date: Sun, 16 May 2010 00:47:34 +0200 Subject: [PATCH] Bots with the same name are progressively numbered In this way: [Bot]devil{X} [Bot]devil(1){X} [Bot]devil(2){X} ... [Bot]devil(666){X} ... It works with bot_usemodelnames too. --- qcsrc/server/bot/bot.qc | 17 +++++++++++++++++ qcsrc/server/bot/bot.qh | 1 + 2 files changed, 18 insertions(+) diff --git a/qcsrc/server/bot/bot.qc b/qcsrc/server/bot/bot.qc index b42853045..44ece52bf 100644 --- a/qcsrc/server/bot/bot.qc +++ b/qcsrc/server/bot/bot.qc @@ -200,6 +200,20 @@ void bot_setnameandstuff() else name = bot_name; + self.cleanname = strzone(name); + + // number bots with identical names + float i; + i = 0; + FOR_EACH_CLIENT(p) + { + if(clienttype(p) == CLIENTTYPE_BOT) + if(p.cleanname == name) + ++i; + } + if (i) + name = strcat(name, "(", ftos(i), ")"); + // pick the model and skin if(substring(bot_model, -4, 1) != ".") bot_model = strcat(bot_model, ".iqm"); @@ -338,12 +352,15 @@ void bot_clientdisconnect() { if (clienttype(self) != CLIENTTYPE_BOT) return; + if(self.cleanname) + strunzone(self.cleanname); if(self.netname_freeme) strunzone(self.netname_freeme); if(self.playermodel_freeme) strunzone(self.playermodel_freeme); if(self.playerskin_freeme) strunzone(self.playerskin_freeme); + self.cleanname = string_null; self.netname_freeme = string_null; self.playermodel_freeme = string_null; self.playerskin_freeme = string_null; diff --git a/qcsrc/server/bot/bot.qh b/qcsrc/server/bot/bot.qh index 75619e19b..0550431e9 100644 --- a/qcsrc/server/bot/bot.qh +++ b/qcsrc/server/bot/bot.qh @@ -53,6 +53,7 @@ entity bot_list; entity player_list; .entity nextbot; .entity nextplayer; +.string cleanname; .string netname_freeme; .string playermodel_freeme; .string playerskin_freeme; -- 2.39.2