From b8597ee810807eacfba8a637dcb0df324d6129af Mon Sep 17 00:00:00 2001 From: ineed bots Date: Thu, 22 May 2025 18:51:26 -0600 Subject: [PATCH] t4 refactor --- maps/mp/bots/_bot.gsc | 2 +- maps/mp/bots/_bot_utility.gsc | 35 ++++++++++++++++++++++++++++++++- maps/mp/bots/_wp_editor.gsc | 6 +++--- scripts/mp/bots_adapter_pt4.gsc | 18 +++++++++++++++++ 4 files changed, 56 insertions(+), 5 deletions(-) diff --git a/maps/mp/bots/_bot.gsc b/maps/mp/bots/_bot.gsc index 6bfaa93..ecc3253 100644 --- a/maps/mp/bots/_bot.gsc +++ b/maps/mp/bots/_bot.gsc @@ -36,7 +36,7 @@ init() if ( getdvar( "bots_main_firstIsHost" ) == "" ) { - setdvar( "bots_main_firstIsHost", true ); // first player to connect is a host + setdvar( "bots_main_firstIsHost", false ); // first player to connect is a host } if ( getdvar( "bots_main_waitForHostTime" ) == "" ) diff --git a/maps/mp/bots/_bot_utility.gsc b/maps/mp/bots/_bot_utility.gsc index 1d75c69..97eadc4 100644 --- a/maps/mp/bots/_bot_utility.gsc +++ b/maps/mp/bots/_bot_utility.gsc @@ -170,6 +170,39 @@ BotBuiltinWriteLine( fh, contents ) } } +/* +*/ +BotBuiltinCmdExec( what ) +{ + if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "cmdexec" ] ) ) + { + [[ level.bot_builtins[ "cmdexec" ] ]]( what ); + } +} + +/* +*/ +BotBuiltinNotifyOnPlayerCommand( cmd, notif ) +{ + if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "notifyonplayercommand" ] ) ) + { + self [[ level.bot_builtins[ "notifyonplayercommand" ] ]]( cmd, notif ); + } +} + +/* + waw doesnt have +*/ +BotBuiltinIsHost() +{ + if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "ishost" ] ) ) + { + return self [[ level.bot_builtins[ "ishost" ] ]](); + } + + return false; +} + /* Returns if player is the host */ @@ -222,7 +255,7 @@ doHostCheck() } } - if ( !result ) + if ( !self BotBuiltinIsHost() && !result ) { return; } diff --git a/maps/mp/bots/_wp_editor.gsc b/maps/mp/bots/_wp_editor.gsc index 48b1384..a1e72a3 100644 --- a/maps/mp/bots/_wp_editor.gsc +++ b/maps/mp/bots/_wp_editor.gsc @@ -25,10 +25,10 @@ init() if ( !getdvarint( "developer" ) ) { setdvar( "developer_script", 1 ); - setdvar( "developer", 1 ); + setdvar( "developer", 2 ); - setdvar( "sv_mapRotation", "map " + getdvar( "mapname" ) ); - exitlevel( false ); + BotBuiltinCmdExec( "devmap " + getdvar( "mapname" ) ); + return; } setdvar( "bots_main", 0 ); diff --git a/scripts/mp/bots_adapter_pt4.gsc b/scripts/mp/bots_adapter_pt4.gsc index eca18cc..29976c1 100644 --- a/scripts/mp/bots_adapter_pt4.gsc +++ b/scripts/mp/bots_adapter_pt4.gsc @@ -12,6 +12,24 @@ init() level.bot_builtins[ "fs_fclose" ] = ::do_fs_fclose; level.bot_builtins[ "fs_readline" ] = ::do_fs_readline; level.bot_builtins[ "fs_writeline" ] = ::do_fs_writeline; + level.bot_builtins[ "notifyonplayercommand" ] = ::do_notifyonplayercommand; + level.bot_builtins[ "cmdexec" ] = ::do_cmdexec; + level.bot_builtins[ "ishost" ] = ::do_ishost; +} + +do_notifyonplayercommand( a, b ) +{ + self notifyonplayercommand( a, b ); +} + +do_cmdexec( a ) +{ + cmdexec( a ); +} + +do_ishost() +{ + return self ishost(); } do_printconsole( s )