mirror of
				https://github.com/ineedbots/iw5_bot_warfare.git
				synced 2025-10-30 20:16:57 +00:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			v2.3.0
			...
			7a8041f065
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 7a8041f065 | ||
|  | d92d2c03c4 | ||
|  | 12ca117bdc | ||
|  | 0300692cdd | 
| @@ -112,7 +112,7 @@ You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfar | |||||||
| | bots_play_aim                    | If the bots can aim.                                                                           | 1          | | | bots_play_aim                    | If the bots can aim.                                                                           | 1          | | ||||||
|  |  | ||||||
| ## Changelog | ## Changelog | ||||||
| - v2.3.0 (not released yet) | - v2.3.0 | ||||||
|   - Fixed bots aiming in ac130/chopper being broken at times |   - Fixed bots aiming in ac130/chopper being broken at times | ||||||
|   - Bots properly use pred missiles |   - Bots properly use pred missiles | ||||||
|   - Smoothed bot aim at range |   - Smoothed bot aim at range | ||||||
|   | |||||||
| @@ -290,6 +290,8 @@ init() | |||||||
| 	 | 	 | ||||||
| 	level thread handleBots(); | 	level thread handleBots(); | ||||||
| 	level thread onPlayerChat(); | 	level thread onPlayerChat(); | ||||||
|  |  | ||||||
|  | 	array_thread( getentarray( "misc_turret", "classname" ), ::turret_monitoruse_watcher ); | ||||||
| } | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
| @@ -1617,3 +1619,39 @@ onPlayerChat() | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /* | ||||||
|  | 	Monitors turret usage | ||||||
|  | */ | ||||||
|  | turret_monitoruse_watcher() | ||||||
|  | { | ||||||
|  | 	self endon( "death" ); | ||||||
|  |  | ||||||
|  | 	for ( ;; ) | ||||||
|  | 	{ | ||||||
|  | 		self waittill ( "trigger", player ); | ||||||
|  |  | ||||||
|  | 		self monitor_player_turret( player ); | ||||||
|  |  | ||||||
|  | 		self.owner = undefined; | ||||||
|  |  | ||||||
|  | 		if ( isdefined( player ) ) | ||||||
|  | 		{ | ||||||
|  | 			player.turret = undefined; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* | ||||||
|  | 	While player uses turret | ||||||
|  | */ | ||||||
|  | monitor_player_turret( player ) | ||||||
|  | { | ||||||
|  | 	player endon( "death" ); | ||||||
|  | 	player endon( "disconnect" ); | ||||||
|  |  | ||||||
|  | 	player.turret = self; | ||||||
|  | 	self.owner = player; | ||||||
|  |  | ||||||
|  | 	self waittill( "turret_deactivate" ); | ||||||
|  | } | ||||||
|   | |||||||
| @@ -843,6 +843,13 @@ watchPickupGun() | |||||||
| 			continue; | 			continue; | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
|  | 		// todo have bots use turrets instead of just kicking them off of it | ||||||
|  | 		if ( isdefined( self.turret ) ) | ||||||
|  | 		{ | ||||||
|  | 			self thread use( 0.5 ); | ||||||
|  | 			continue; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
| 		weap = self getcurrentweapon(); | 		weap = self getcurrentweapon(); | ||||||
| 		 | 		 | ||||||
| 		if ( weap != "none" && self getammocount( weap ) ) | 		if ( weap != "none" && self getammocount( weap ) ) | ||||||
|   | |||||||
| @@ -55,6 +55,50 @@ watchPlayers() | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | destroyFixed() | ||||||
|  | { | ||||||
|  | 	if ( !isdefined( self ) ) | ||||||
|  | 	{ | ||||||
|  | 		return; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	self destroy(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | removeChildFixed( element ) | ||||||
|  | { | ||||||
|  | 	temp = []; | ||||||
|  | 	 | ||||||
|  | 	for ( i = 0; i < self.children.size ; i++ ) | ||||||
|  | 	{ | ||||||
|  | 		if ( isdefined( self.children[ i ] ) && self.children[ i ] != element ) | ||||||
|  | 		{ | ||||||
|  | 			self.children[ i ].index = temp.size; | ||||||
|  | 			temp[ temp.size ] = self.children[ i ]; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	self.children = temp; | ||||||
|  | 	 | ||||||
|  | 	element.index = undefined; | ||||||
|  | 	element.parent = undefined; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | destroyElemFixed() | ||||||
|  | { | ||||||
|  | 	if ( !isdefined( self ) ) | ||||||
|  | 	{ | ||||||
|  | 		return; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	if ( isdefined( self.parent ) ) | ||||||
|  | 	{ | ||||||
|  | 		self.parent removeChildFixed( self ); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	self destroyelem(); | ||||||
|  | } | ||||||
|  |  | ||||||
| kill_menu() | kill_menu() | ||||||
| { | { | ||||||
| 	self notify( "bots_kill_menu" ); | 	self notify( "bots_kill_menu" ); | ||||||
| @@ -66,7 +110,6 @@ init_menu() | |||||||
| 	self.menuinit = true; | 	self.menuinit = true; | ||||||
| 	 | 	 | ||||||
| 	self.menuopen = false; | 	self.menuopen = false; | ||||||
| 	self.menu_player = undefined; |  | ||||||
| 	self.submenu = "Main"; | 	self.submenu = "Main"; | ||||||
| 	self.curs[ "Main" ][ "X" ] = 0; | 	self.curs[ "Main" ][ "X" ] = 0; | ||||||
| 	self addOptions(); | 	self addOptions(); | ||||||
| @@ -95,7 +138,7 @@ watchDisconnect() | |||||||
| 			{ | 			{ | ||||||
| 				if ( isdefined( self.menutexty[ i ] ) ) | 				if ( isdefined( self.menutexty[ i ] ) ) | ||||||
| 				{ | 				{ | ||||||
| 					self.menutexty[ i ] destroy(); | 					self.menutexty[ i ] destroyElemFixed(); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| @@ -106,7 +149,7 @@ watchDisconnect() | |||||||
| 			{ | 			{ | ||||||
| 				if ( isdefined( self.menutext[ i ] ) ) | 				if ( isdefined( self.menutext[ i ] ) ) | ||||||
| 				{ | 				{ | ||||||
| 					self.menutext[ i ] destroy(); | 					self.menutext[ i ] destroyElemFixed(); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| @@ -115,18 +158,18 @@ watchDisconnect() | |||||||
| 		{ | 		{ | ||||||
| 			if ( isdefined( self.menu[ "X" ][ "Shader" ] ) ) | 			if ( isdefined( self.menu[ "X" ][ "Shader" ] ) ) | ||||||
| 			{ | 			{ | ||||||
| 				self.menu[ "X" ][ "Shader" ] destroy(); | 				self.menu[ "X" ][ "Shader" ] destroyElemFixed(); | ||||||
| 			} | 			} | ||||||
| 			 | 			 | ||||||
| 			if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) ) | 			if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) ) | ||||||
| 			{ | 			{ | ||||||
| 				self.menu[ "X" ][ "Scroller" ] destroy(); | 				self.menu[ "X" ][ "Scroller" ] destroyElemFixed(); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		if ( isdefined( self.menuversionhud ) ) | 		if ( isdefined( self.menuversionhud ) ) | ||||||
| 		{ | 		{ | ||||||
| 			self.menuversionhud destroy(); | 			self.menuversionhud destroyFixed(); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @@ -332,7 +375,7 @@ OpenSub( menu, menu2 ) | |||||||
| 			{ | 			{ | ||||||
| 				if ( isdefined( self.menutext[ i ] ) ) | 				if ( isdefined( self.menutext[ i ] ) ) | ||||||
| 				{ | 				{ | ||||||
| 					self.menutext[ i ] destroy(); | 					self.menutext[ i ] destroyElemFixed(); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| @@ -341,18 +384,18 @@ OpenSub( menu, menu2 ) | |||||||
| 		{ | 		{ | ||||||
| 			if ( isdefined( self.menu[ "X" ][ "Shader" ] ) ) | 			if ( isdefined( self.menu[ "X" ][ "Shader" ] ) ) | ||||||
| 			{ | 			{ | ||||||
| 				self.menu[ "X" ][ "Shader" ] destroy(); | 				self.menu[ "X" ][ "Shader" ] destroyElemFixed(); | ||||||
| 			} | 			} | ||||||
| 			 | 			 | ||||||
| 			if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) ) | 			if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) ) | ||||||
| 			{ | 			{ | ||||||
| 				self.menu[ "X" ][ "Scroller" ] destroy(); | 				self.menu[ "X" ][ "Scroller" ] destroyElemFixed(); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		if ( isdefined( self.menuversionhud ) ) | 		if ( isdefined( self.menuversionhud ) ) | ||||||
| 		{ | 		{ | ||||||
| 			self.menuversionhud destroy(); | 			self.menuversionhud destroyFixed(); | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ ) | 		for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ ) | ||||||
| @@ -402,7 +445,7 @@ OpenSub( menu, menu2 ) | |||||||
| 			{ | 			{ | ||||||
| 				if ( isdefined( self.menutexty[ i ] ) ) | 				if ( isdefined( self.menutexty[ i ] ) ) | ||||||
| 				{ | 				{ | ||||||
| 					self.menutexty[ i ] destroy(); | 					self.menutexty[ i ] destroyElemFixed(); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| @@ -426,11 +469,11 @@ CursMove( direction ) | |||||||
| 	 | 	 | ||||||
| 	if ( self.submenu == "Main" ) | 	if ( self.submenu == "Main" ) | ||||||
| 	{ | 	{ | ||||||
| 		self.menu[ "X" ][ "Scroller" ].x = self.menutext[ self.curs[ "Main" ][ "X" ] ].x; |  | ||||||
| 		self.menu[ "X" ][ "Scroller" ].y = self.menutext[ self.curs[ "Main" ][ "X" ] ].y; |  | ||||||
| 		 |  | ||||||
| 		if ( isdefined( self.menutext ) ) | 		if ( isdefined( self.menutext ) ) | ||||||
| 		{ | 		{ | ||||||
|  | 			self.menu[ "X" ][ "Scroller" ].x = self.menutext[ self.curs[ "Main" ][ "X" ] ].x; | ||||||
|  | 			self.menu[ "X" ][ "Scroller" ].y = self.menutext[ self.curs[ "Main" ][ "X" ] ].y; | ||||||
|  | 			 | ||||||
| 			for ( i = 0; i < self.menutext.size; i++ ) | 			for ( i = 0; i < self.menutext.size; i++ ) | ||||||
| 			{ | 			{ | ||||||
| 				if ( isdefined( self.menutext[ i ] ) ) | 				if ( isdefined( self.menutext[ i ] ) ) | ||||||
| @@ -578,7 +621,7 @@ ExitSub() | |||||||
| 		{ | 		{ | ||||||
| 			if ( isdefined( self.menutexty[ i ] ) ) | 			if ( isdefined( self.menutexty[ i ] ) ) | ||||||
| 			{ | 			{ | ||||||
| 				self.menutexty[ i ] destroy(); | 				self.menutexty[ i ] destroyElemFixed(); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @@ -603,7 +646,7 @@ ExitMenu() | |||||||
| 		{ | 		{ | ||||||
| 			if ( isdefined( self.menutext[ i ] ) ) | 			if ( isdefined( self.menutext[ i ] ) ) | ||||||
| 			{ | 			{ | ||||||
| 				self.menutext[ i ] destroy(); | 				self.menutext[ i ] destroyElemFixed(); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @@ -612,18 +655,18 @@ ExitMenu() | |||||||
| 	{ | 	{ | ||||||
| 		if ( isdefined( self.menu[ "X" ][ "Shader" ] ) ) | 		if ( isdefined( self.menu[ "X" ][ "Shader" ] ) ) | ||||||
| 		{ | 		{ | ||||||
| 			self.menu[ "X" ][ "Shader" ] destroy(); | 			self.menu[ "X" ][ "Shader" ] destroyElemFixed(); | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) ) | 		if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) ) | ||||||
| 		{ | 		{ | ||||||
| 			self.menu[ "X" ][ "Scroller" ] destroy(); | 			self.menu[ "X" ][ "Scroller" ] destroyElemFixed(); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	if ( isdefined( self.menuversionhud ) ) | 	if ( isdefined( self.menuversionhud ) ) | ||||||
| 	{ | 	{ | ||||||
| 		self.menuversionhud destroy(); | 		self.menuversionhud destroyFixed(); | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	self.menuopen = false; | 	self.menuopen = false; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user