Last server records
Pro Nub

KZ-Rush Public Bot


  1. This is a bot that plays top1 record of the server . We don't use it on our server since it gives quite a load plus we have a wr bot.

    Here are forwards that you need to register and call from the main plugin (id - player identifier):

    fwPubStarted(id) - call when player starts the timer

    fwPubRejected(id) - call when gocheck done or user disconnects without savepos

    fwPubPaused(id) - call when user paused timer and didn't use gochecks

    fwPubUnpaused(id) - call when user unpaused timer and didn't use gochecks

    fwPubFinished(id, Float:flTime) - call when user finished the map without gochecks; flTime should be zero if this is not top1 and equal to pass time in case of top1

    This implies that savepos puts user into pause, and after connecting server loads saved savepos and puts user into pause (this is how we do it on our servers).

    Download plugin

    How to use forwards
    Edited by Kpoluk 08.06.24 09:27

  2. Bot updated:

    There are two defines at the beginning of source file:

    //#define define BOT_USE
    #define BOT_PREFIX ""

    If you remove // before first define, bot will be able to execute +use command. i.e. press buttons. Be careful cause it may cause problems for other players (opening doors etc). Also do not forget to filter the bot so he won't get into server's top15.

    Second define is just bot prefix, for example "[REC] ".
    Edited by Kpoluk 07.10.23 10:44
  3. Im use that plugin , working very very good , tanks dude
    best plugin for all kz/bhop servers
  4. не работает
    https://imgur.com/a/AQG8qYw
    Edited by MaVo^ 22.05.20 07:21
  5. @Mavo^

    Все работает. Добавь в свой kreedz main plugin где у тебя таймер - форварды от бота.

    Пример:

    new MultiForward, MultiForward_1, MultiForward_2, MultiForward_3, MultiForward_4;
    new iRetValue;
    new Float: time_top_bot[33];

    public plugin_init()
    {
    MultiForward = CreateMultiForward("fwPubStarted",ET_IGNORE,FP_CELL);
    MultiForward_1 = CreateMultiForward("fwPubRejected",ET_IGNORE,FP_CELL);
    MultiForward_2 = CreateMultiForward("fwPubPaused",ET_IGNORE,FP_CELL);
    MultiForward_3 = CreateMultiForward("fwPubUnpaused",ET_IGNORE,FP_CELL);
    MultiForward_4 = CreateMultiForward("fwPubFinished",ET_IGNORE, FP_CELL, FP_FLOAT);
    }

    public Pause(id)
    ExecuteForward(MultiForward_2, iRetValue, id);

    public UnPause(id)
    ExecuteForward(MultiForward_3, iRetValue, id)

    public GoCheck(id)
    ExecuteForward(MultiForward_1, iRetValue, id)

    public fwdUse(ent, id)
    ExecuteForward(MultiForward, iRetValue, id)

    public GetNewRank_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, cData[], iSize, Float:fQueueTime)
    {
    ...
    if( i == 1 && cData[1] == PRO_TOP)
    {
    ExecuteForward(MultiForward_4, iRetValue, id, time_top_bot[id]);
    }

    ExecuteForward(MultiForward_4, iRetValue, id, 0.0);
    ...
    }
    Edited by medusa 04.06.20 17:33
  6. Че то у меня тоже ничего не работает
  7. It works, good plugin, but i wonder why isn't it smoothly like other bots i've seen
    something about movements, maybe is it cause the bot doesn't act like normal bot ?

    only theoretically, what if you'll create bot zbot or anything, and apply & run the save (nav file) on the bot
    it'd be better ? or the same.
    idk if you still support this plugin, but i think it worth to try!
  8. @Calcs not sure what you mean by smoothness, same logic is used in lan bot and it looks ok for me.

    The only case when pubbot fails is when server fps when record was done differes from server fps when it is played. To avoid it *.nav files need have another format with taking server time into consideration, but I wanted the format to be the same as for lan bot. The thing is that lan bot *.nav files were very common in use back in the days cause lan plugins downloaded them from our FTP server. Now they're created automatically and I actually can change the format but firstly I need to be 100% sure there's a need for it and exact reason.

    As for executing movement on bot (with coordinate correction of course, if you just force the bot to repeat commands from demo, it won't go far), it was the first method I tried and it lead to periodic lags, so now the bot just recreates angles and coordinates from the demo every frame, at that animations are executed manually based on the player state.
  9. @Calcs not sure what you mean by smoothness, same logic is used in lan bot and it looks ok for me.

    The only case when pubbot fails is when server fps when record was done differes from server fps when it is played. To avoid it *.nav files need have another format with taking server time into consideration, but I wanted the format to be the same as for lan bot. The thing is that lan bot *.nav files were very common in use back in the days cause lan plugins downloaded them from our FTP server. Now they're created automatically and I actually can change the format but firstly I need to be 100% sure there's a need for it and exact reason.

    As for executing movement on bot (with coordinate correction of course, if you just force the bot to repeat commands from demo, it won't go far), it was the first method I tried and it lead to periodic lags, so now the bot just recreates angles and coordinates from the demo every frame, at that animations are executed manually based on the player state.


    i just said what i seen, other bots that may not use .nav way / format at all and private work better.
    i checked the bot at surf 131fps, also at bhop 100fps, sure at 100fps it's running better but still not the best and smoothly like them.
    maybe there's another way to record and make it done better, i'm not sure since i've ZERO knowledge, it'd be nice if there is..

    thanks for your reply and ofc for this plugin, i didn't see anyone else actually bother to make good one as you did, thank you! 🙂
    Edited by Calcs 12.08.23 17:01
  10. при первом появлении бота после установления рекорда, всё ок. но после смены карты, бот спавнится без оружия в руках (даже ножа). так же бывает, что двигается спиной или боком, это проходит с течением времени. с чем это может быть связано?
  11. @gsg6 насчёт оружия может быть конфликт с основным плагином, сам бот оружие получает при каждом создании, если это не блокируется чем-то со стороны. Разворотов спиной и боком на моём боте быть не должно, это обычно происходит на ботах, которые ведутся по карте через имитацию команд, этот же бот просто повторяет сохранённые координаты и углы. Поэтому сначала мне нужно увидеть, что выводит в консоль по команде amxx plugins.
    Edited by Kpoluk 01.09.23 17:54
  12. @Kpoluk я провёл несколько тестов и наблюдений, что бы дать более точный репорт о проблеме.
    нож действительно появляется в руках бота при его спавне и пропадает спустя несколько секунд. причина оказалась в следующем. у меня стоит "sv_restart 5" в начале карты. рестарт происходит для применения настроек мода, но бот на этот рестарт никак не реагирует и продолжает движение по карте. то есть проблема в том, что во время рестарта игра у него забирает оружие, а сам бот не спавнится повторно в отличии от игрока и продолжает движение с пустотой в руках.

    теперь по поводу движения спиной или боком. возможно я не так выразился. он действительно следует траектории, как и проложен маршрут в файле nav. но в момент, когда я переключаюсь в наблюдатели, что бы посмотреть за ним, камера от его лица смотрит в одну точку будто зависла, иногда это противоположное направление его движению, иногда просто в бок, вверх или низ карты. через время камера приобретает нормальное положение и повторяет движения. не смог найти закономерности возникновения этого бага.

    вам нужен список amxx plugins, что бы убедится что я использую вашего бота? изначально я скачал сборку kz плагинов куда входил ваш бот версии 1.3. В поисках устранения проблемы я наткнулся на эту тему и скачал уже отсюда версию 1.6, потом с помощью онлайн сервиса сравнил два исходника и перенес все изменения новой версии сохранив форварды от сборки автора, проблему это не решило. могу предоставить исходник если хотите.
  13. @gsg6 с рестартом лучше тогда действовать через тот плагин, который его организует, пройтись в нём по списку ботов и выдать им оружие. Можно конечно и в самом боте по рестарту вызвать функции удаления и создания ботов, тут зависит от того, зачем вообще этот рестарт нужен. У себя я рестарты не использую (за исключением одной карты, где он нужен для нормального функционирования mpbhop), так как на kz в них необходимости возникать не должно.

    Про косяк с камерой звучит всё ещё подозрительно, так как он был возможен разве что на старых версиях, я бы хотел всё же посмотреть на этот собранный из разных версий исходник. Вообще не знал, что этот плагин вошёл в какие-то сборки, надеюсь там хотя бы создали текстовый файл с инструкцией из поста, я в архив такой положить не догадался.
  14. я оставлю ссылку на сборку для ознакомления https://github.com/Theggv/Kreedz/releases . надеюсь это не запрещено, не нашел как установить хайд.

    вот плагин бота, который получился у меня https://disk.yandex.ru/d/rnYZa5GL0F1vCg

    забыл уточнить один момент, так как внес одну правку давно и уже успел забыть про нее.
    у меня на сервере некорректно работает модуль cstrike и я заменил его в плагине на reapi.
    -cs_set_user_team(g_iBotID, CS_TEAM_CT);
    +rg_set_user_team(g_iBotID, 2);
    вряд ли это могло что-то сломать, но на всякий случай решил заранее уведомить.
  15. @gsg6 сравнил с ботом, который используется в сборке и у нас на серверах (он проигрывает мировой рекорд и обновлялся чаще), заметил что пабботу не хватает функции fmAddToFullPack, возможно дело именно в ней. Обновил загрузку на сайте (ссылка в первом посте осталась та же).