Raised This Month: $ Target: $400
 0% 

jkbotti - How do I add/remove bots?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Jupit3r
Member
Join Date: Mar 2014
Old 04-09-2014 , 15:46   jkbotti - How do I add/remove bots?
Reply With Quote #1

Hello,

I've struggled to find a good bot plugin for HL1 Deathmatch, but jkbotti seems quite good, but does anyone know how you can add or remove bots while playing or through the console?

Thanks
Jupit3r is offline
kNowo
Senior Member
Join Date: Apr 2011
Location: Malaysia
Old 04-09-2014 , 16:27   Re: jkbotti - How do I add/remove bots?
Reply With Quote #2

Here's a simple AMXX plugin to manage jkbotti bots. Made it back in the days when I was still hosting HLDM server. Feel free to use, or not.

PHP Code:
#include <amxmodx>
#include <amxmisc>

new pCount
new g_CurBotDiff 4

new bool:g_ObserverEnable false
new bool:g_LevelTagEnable false
new bool:g_AutoWaypointEnable true
new bool:g_RandomizeBots false
new bool:g_RandomColor true

public plugin_init()
{
    
register_plugin("JK Botti Bot Manager""1.0""kNowo")

    
register_concmd("bot_menu""cmdBotMenu"ADMIN_BAN"Easy menu to manage jk_botti bots.")
}

public 
cmdBotMenu(idlevelcid)
{
    if (!
cmd_access(idlevelcid1))
        return 
PLUGIN_HANDLED

    MenuBotMain
(id)

    return 
PLUGIN_HANDLED
}

public 
MenuBotMain(id)
{
    new 
gMenu_Main menu_create("Bot Manager Menu""m_MainHandler")

    
menu_additem(gMenu_Main"Set Bot Difficulty""1"0)
    
menu_additem(gMenu_Main"Add Bots""2"0)
    
menu_additem(gMenu_Main"Kick Bots""3"0)
    
menu_additem(gMenu_Main"Other Bot Settings""4"0)

    
menu_display(idgMenu_Main0)

    return 
PLUGIN_HANDLED
}

public 
m_MainHandler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}

    new 
cmd[4], iName[64]
    new 
accesscallback

    menu_item_getinfo
(menuitemaccesscmd3iName63callback)

    new 
iChoice str_to_num(cmd)

    switch(
iChoice)
    {
        case 
1MenuBotDiff(id)
        case 
2MenuBotAddMain(id)
        case 
3MenuBotKickMain(id)
        case 
4MenuBotSetting(id)
    }

    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
MenuBotDiff(id)
{
    new 
gMenu_BotDiff menu_create("Set Bot Difficulty""m_BotDiffHandler")

    new 
szVeryEasy[40], szEasy[40], szNormal[40], szHard[40], szExpert[40]

    
formatex(szVeryEasycharsmax(szVeryEasy), "Very Easy%s"g_CurBotDiff == " - Current Setting" "")
    
formatex(szEasycharsmax(szEasy), "Easy%s"g_CurBotDiff == " - Current Setting" "")
    
formatex(szNormalcharsmax(szNormal), "Normal%s"g_CurBotDiff == " - Current Setting" "")
    
formatex(szHardcharsmax(szHard), "Hard%s"g_CurBotDiff == " - Current Setting" "")
    
formatex(szExpertcharsmax(szExpert), "Expert%s"g_CurBotDiff == " - Current Setting" "")

    
menu_additem(gMenu_BotDiffszVeryEasy"5"0)
    
menu_additem(gMenu_BotDiffszEasy"4"0)
    
menu_additem(gMenu_BotDiffszNormal"3"0)
    
menu_additem(gMenu_BotDiffszHard"2"0)
    
menu_additem(gMenu_BotDiffszExpert"1"0)

    
menu_setprop(gMenu_BotDiffMPROP_EXITNAME"Back")
    
menu_display(idgMenu_BotDiff0)
}

public 
m_BotDiffHandler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
MenuBotMain(id)
        return 
PLUGIN_HANDLED
    
}

    new 
cmd[5], iName[64]
    new 
accesscallback

    menu_item_getinfo
(menuitemaccesscmd4iName63callback)

    new 
iChoice str_to_num(cmd)
    
server_cmd("jk_botti botskill %d"iChoice)
    
g_CurBotDiff iChoice

    menu_destroy
(menu)
    
MenuBotDiff(id)
    return 
PLUGIN_HANDLED
}

public 
MenuBotAddMain(id)
{    
    new 
gMenu_BotAddMain menu_create("Add Bots""m_BotAddMainHandler")

    
menu_additem(gMenu_BotAddMain"Add Bots Manually (recommended)""1"0)
    
menu_additem(gMenu_BotAddMain"Add Bots using min/max bot cvars""2"0)

    
menu_setprop(gMenu_BotAddMainMPROP_EXITNAME"Back")
    
menu_display(idgMenu_BotAddMain0)
}

public 
m_BotAddMainHandler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
MenuBotMain(id)
        return 
PLUGIN_HANDLED
    
}

    new 
cmd[4], iName[64]
    new 
accesscallback

    menu_item_getinfo
(menuitemaccesscmd3iName63callback)

    new 
iChoice str_to_num(cmd)

    switch(
iChoice)
    {
        case 
1MenuBotAddManual(id)
        case 
2MenuBotAdd(id)
    }

    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
MenuBotAddManual(id)
{    
    new 
gMenu_BotAddManual menu_create("Add Bots Manually""m_BotAddManualHandler")

    
menu_additem(gMenu_BotAddManual"Add 1 bot""1"0)
    
menu_additem(gMenu_BotAddManual"Add 2 bots""2"0)
    
menu_additem(gMenu_BotAddManual"Add 5 bots""3"0)

    
menu_setprop(gMenu_BotAddManualMPROP_EXITNAME"Back")
    
menu_display(idgMenu_BotAddManual0)
}

public 
m_BotAddManualHandler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
MenuBotAddMain(id)
        return 
PLUGIN_HANDLED
    
}

    new 
cmd[4], iName[64]
    new 
accesscallback

    menu_item_getinfo
(menuitemaccesscmd3iName63callback)

    new 
iChoice str_to_num(cmd)

    switch(
iChoice)
    {
        case 
1server_cmd("jk_botti addbot")
        case 
2server_cmd("jk_botti addbot; jk_botti addbot")
        case 
3server_cmd("jk_botti addbot; jk_botti addbot; jk_botti addbot; jk_botti addbot; jk_botti addbot")
    }

    
menu_destroy(menu)
    
set_task(0.1"MenuBotAddManual"id)
    return 
PLUGIN_HANDLED
}

public 
MenuBotAdd(id)
{    
    new 
gMenu_BotAdd menu_create("Add Bots using min/max bots cvar""m_BotAddHandler")

    
menu_additem(gMenu_BotAdd"Add 1 bot""1"0)
    
menu_additem(gMenu_BotAdd"Add 2 bots""2"0)
    
menu_additem(gMenu_BotAdd"Add 5 bots""3"0)
    
menu_additem(gMenu_BotAdd"Add 10 bots""4"0)

    
menu_setprop(gMenu_BotAddMPROP_EXITNAME"Back")
    
menu_display(idgMenu_BotAdd0)
}

public 
m_BotAddHandler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
MenuBotAddMain(id)
        return 
PLUGIN_HANDLED
    
}

    new 
cmd[4], iName[64]
    new 
accesscallback

    menu_item_getinfo
(menuitemaccesscmd3iName63callback)

    new 
iChoice str_to_num(cmd)
    
pCount get_playersnum(0)

    switch(
iChoice)
    {
        case 
1server_cmd("jk_botti min_bots %d; jk_botti max_bots %d"pCount 1pCount 1)
        case 
2server_cmd("jk_botti min_bots %d; jk_botti max_bots %d"pCount 2pCount 2)
        case 
3server_cmd("jk_botti min_bots %d; jk_botti max_bots %d"pCount 5pCount 5)
        case 
4server_cmd("jk_botti min_bots %d; jk_botti max_bots %d"pCount 10pCount 10)
    }

    
menu_destroy(menu)
    
set_task(0.1"MenuBotAdd"id)
    return 
PLUGIN_HANDLED
}

public 
MenuBotKickMain(id)
{
    new 
gMenu_BotKickMain menu_create("Kick Bots""m_BotKickMainHandler")

    
menu_additem(gMenu_BotKickMain"Kick Bots Manually (recommended)""1"0)
    
menu_additem(gMenu_BotKickMain"Kick Bots using min/max bots cvar""2"0)

    
menu_setprop(gMenu_BotKickMainMPROP_EXITNAME"Back")
    
menu_display(idgMenu_BotKickMain0)
}

public 
m_BotKickMainHandler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
MenuBotMain(id)
        return 
PLUGIN_HANDLED
    
}

    new 
cmd[2], iName[64]
    new 
accesscallback

    menu_item_getinfo
(menuitemaccesscmd1iName63callback)

    new 
iChoice str_to_num(cmd)

    switch(
iChoice)
    {
        case 
1MenuBotKickManual(id)
        case 
2MenuBotKick(id)
    }

    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
MenuBotKickManual(id)
{
    new 
gMenu_BotKickManual menu_create("Kick Bots Manually""m_BotKickManualHandler")

    
menu_additem(gMenu_BotKickManual"Kick 1 Bot""1"0)
    
menu_additem(gMenu_BotKickManual"Kick All Bots""2"0)

    
menu_setprop(gMenu_BotKickManualMPROP_EXITNAME"Back")
    
menu_display(idgMenu_BotKickManual0)
}

public 
m_BotKickManualHandler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
MenuBotKickMain(id)
        return 
PLUGIN_HANDLED
    
}

    new 
cmd[2], iName[64]
    new 
accesscallback

    menu_item_getinfo
(menuitemaccesscmd1iName63callback)

    new 
iChoice str_to_num(cmd)

    switch(
iChoice)
    {
        case 
1:
        {
            new 
botidbotuserid
            botid 
find_player("i")

            if(
botid)
            {
                
botuserid get_user_userid(botid)
                
server_cmd("kick #%d"botuserid)
            }
        }
        case 
2:
        {
            new 
botids[32], inumbotidbotuserid
            get_players
(botidsinum"dh")

            for(new 
0inumi++)
            {
                
botid botids[i]
                
botuserid get_user_userid(botid)
                
server_cmd("kick #%d"botuserid)
            }
        }
    }

    
menu_destroy(menu)
    
set_task(0.1"MenuBotKickManual"id)
    return 
PLUGIN_HANDLED
}

public 
MenuBotKick(id)
{
    new 
gMenu_BotKick menu_create("Kick Bots using min/max bots cvar""m_BotKickHandler")

    
menu_additem(gMenu_BotKick"Kick 1 bot""1"0)
    
menu_additem(gMenu_BotKick"Kick all bots""2"0)

    
menu_setprop(gMenu_BotKickMPROP_EXITNAME"Back")
    
menu_display(idgMenu_BotKick0)
}

public 
m_BotKickHandler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
MenuBotKickMain(id)
        return 
PLUGIN_HANDLED
    
}

    new 
cmd[2], iName[64]
    new 
accesscallback

    menu_item_getinfo
(menuitemaccesscmd1iName63callback)

    new 
iChoice str_to_num(cmd)
    
pCount get_playersnum(0)

    switch(
iChoice)
    {
        case 
1server_cmd("jk_botti min_bots 0; jk_botti max_bots %d"pCount 1)
        case 
2server_cmd("jk_botti min_bots 0; jk_botti max_bots 0")
    }

    
menu_destroy(menu)
    
set_task(0.1"MenuBotKick"id)
    return 
PLUGIN_HANDLED
}

public 
MenuBotSetting(id)
{
    new 
gMenu_BotSetting menu_create("Other Bot Settings""m_BotSettingHandler")

    new 
szObserver[25], szBotLvlTag[25], szAutoWaypoint[25], szRandomizeBots[40], szRandomColor[35]

    
formatex(szAutoWaypointcharsmax(szAutoWaypoint), "Auto waypoint - %s"g_AutoWaypointEnable "ENABLED" "DISABLED")
    
formatex(szObservercharsmax(szObserver), "Observer mode - %s"g_ObserverEnable "ENABLED" "DISABLED")
    
formatex(szBotLvlTagcharsmax(szBotLvlTag), "Bot level tag - %s"g_LevelTagEnable "ENABLED" "DISABLED")
    
formatex(szRandomizeBotscharsmax(szRandomizeBots), "Random bots on mapchange - %s"g_RandomizeBots "ENABLED" "DISABLED")
    
formatex(szRandomColorcharsmax(szRandomColor), "Random model color - %s"g_RandomColor "ENABLED" "DISABLED")

    
menu_additem(gMenu_BotSettingszAutoWaypoint"1"0)
    
menu_additem(gMenu_BotSettingszObserver"2"0)
    
menu_additem(gMenu_BotSettingszBotLvlTag"3"0)
    
menu_additem(gMenu_BotSettingszRandomizeBots"4"0)
    
menu_additem(gMenu_BotSettingszRandomColor"5"0)

    
menu_setprop(gMenu_BotSettingMPROP_EXITNAME"Back")
    
menu_display(idgMenu_BotSetting0)
}

public 
m_BotSettingHandler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
MenuBotMain(id)
        return 
PLUGIN_HANDLED
    
}

    new 
cmd[3], iName[64]
    new 
accesscallback

    menu_item_getinfo
(menuitemaccesscmd2iName63callback)

    new 
iChoice str_to_num(cmd)

    switch(
iChoice)
    {
        case 
1:
        {
            if(
g_AutoWaypointEnable)
            {
                
server_cmd("jk_botti autowaypoint 0")
                
g_AutoWaypointEnable false
            
}
            else
            {
                
server_cmd("jk_botti autowaypoint 1")
                
g_AutoWaypointEnable true
            
}
        }
        case 
2:
        {
            if(
g_ObserverEnable)
            {
                
server_cmd("jk_botti observer 0")
                
g_ObserverEnable false
            
}
            else
            {
                
server_cmd("jk_botti observer 1")
                
g_ObserverEnable true
            
}
        }
        case 
3:
        {
            if(
g_LevelTagEnable)
            {
                
server_cmd("jk_botti bot_add_level_tag 0")
                
g_LevelTagEnable false
            
}
            else
            {
                
server_cmd("jk_botti bot_add_level_tag 1")
                
g_LevelTagEnable true
            
}
        }
        case 
4:
        {
            if(
g_RandomizeBots)
            {
                
server_cmd("jk_botti randomize_bots_on_mapchange 0")
                
g_RandomizeBots false
            
}
            else
            {
                
server_cmd("jk_botti randomize_bots_on_mapchange 1")
                
g_RandomizeBots true
            
}
        }
        case 
5:
        {
            if(
g_RandomColor)
            {
                
server_cmd("jk_botti random_color 0")
                
g_RandomColor false
            
}
            else
            {
                
server_cmd("jk_botti random_color 1")
                
g_RandomColor true
            
}
        }
    }

    
menu_destroy(menu)
    
MenuBotSetting(id)
    return 
PLUGIN_HANDLED

kNowo is offline
Jupit3r
Member
Join Date: Mar 2014
Old 04-09-2014 , 16:37   Re: jkbotti - How do I add/remove bots?
Reply With Quote #3

hi, many thanks!

Sorry for the basic question, but what do I do with this code? And how can I add and remove bots ingmae etc?

We had 20 players online the other day and 10 bots, but I wanted to add and remove them while I was playing, but couldn't.

Regards
Jupit3r is offline
ANTICHRISTUS
kingdom of weird stuff
Join Date: Jun 2010
Location: My kingdom is not in thi
Old 04-09-2014 , 20:00   Re: jkbotti - How do I add/remove bots?
Reply With Quote #4

  1. put the code in a .txt file > change extention to .sma > compile.
  2. it's a menu, it should appear in the amxmodmenu.
__________________
ANTICHRISTUS is offline
Jupit3r
Member
Join Date: Mar 2014
Old 04-11-2014 , 04:00   Re: jkbotti - How do I add/remove bots?
Reply With Quote #5

let me try this, what commands should I see in the amx console list?
Jupit3r is offline
ANTICHRISTUS
kingdom of weird stuff
Join Date: Jun 2010
Location: My kingdom is not in thi
Old 04-11-2014 , 04:09   Re: jkbotti - How do I add/remove bots?
Reply With Quote #6

a jkbotti related sub-menu. just test it's not hard and no one will test and give you a screenshot.. [JOKE]you, lazy person[/JOKE]
__________________
ANTICHRISTUS is offline
Jupit3r
Member
Join Date: Mar 2014
Old 04-11-2014 , 04:15   Re: jkbotti - How do I add/remove bots?
Reply With Quote #7

worked it out thanks all this is great!
Jupit3r is offline
glmmlg
Member
Join Date: Apr 2014
Old 04-24-2014 , 01:39   Re: jkbotti - How do I add/remove bots?
Reply With Quote #8

how to add in this plugin resetscore for bot ?
glmmlg is offline
Send a message via Skype™ to glmmlg
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 06:58.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode