mirror of
				https://github.com/JezuzLizard/t4sp_bot_warfare.git
				synced 2025-10-31 01:46:56 +00:00 
			
		
		
		
	Handle different bones for dogs and gibbed zombies.
Readd difficulty settings.
This commit is contained in:
		| @@ -545,12 +545,18 @@ target_loop() | ||||
| 				targetAnkleLeft = enemy getTagOrigin( "j_ankle_le" ); | ||||
| 				targetAnkleRight = enemy getTagOrigin( "j_ankle_ri" ); | ||||
| 			} | ||||
| 			else | ||||
| 			else if ( !enemy targetIsGibbed() ) | ||||
| 			{ | ||||
| 				targetHead = enemy getTagOrigin( "j_head" ); | ||||
| 				targetAnkleLeft = enemy getTagOrigin( "j_ankle_le" ); | ||||
| 				targetAnkleRight = enemy getTagOrigin( "j_ankle_ri" ); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				targetHead = enemy getTagOrigin( "j_spinelower" ); | ||||
| 				targetAnkleLeft = enemy getTagOrigin( "j_spinelower" ); | ||||
| 				targetAnkleRight = enemy getTagOrigin( "j_spinelower" ); | ||||
| 			} | ||||
|  | ||||
| 			traceHead = bulletTrace( myEye, targetHead, false, enemy ); | ||||
| 			traceAnkleLeft = bulletTrace( myEye, targetAnkleLeft, false, enemy ); | ||||
| @@ -676,12 +682,16 @@ target() | ||||
| selectBoneForTarget( enemy, bones ) | ||||
| { | ||||
| 	if ( enemy targetIsDog() ) | ||||
| 	{ | ||||
| 		return "j_head"; | ||||
| 	} | ||||
| 	else if ( !enemy targetIsGibbed() ) | ||||
| 	{ | ||||
| 		return PickRandom( bones ); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		return PickRandom( bones ); | ||||
| 		return "j_spineupper"; | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -8,6 +8,8 @@ | ||||
| added() | ||||
| { | ||||
| 	self endon( "disconnect" ); | ||||
|  | ||||
| 	self set_diff(); | ||||
| } | ||||
|  | ||||
| /* | ||||
| @@ -272,6 +274,62 @@ difficulty() | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /* | ||||
| 	Sets the bot difficulty. | ||||
| */ | ||||
| set_diff() | ||||
| { | ||||
| 	rankVar = GetDvarInt( "bots_skill" ); | ||||
|  | ||||
| 	switch ( rankVar ) | ||||
| 	{ | ||||
| 		case 0: | ||||
| 			self.pers["bots"]["skill"]["base"] = Round( random_normal_distribution( 3.5, 1.75, 1, 7 ) ); | ||||
| 			break; | ||||
|  | ||||
| 		case 8: | ||||
| 			break; | ||||
|  | ||||
| 		case 9: | ||||
| 			self.pers["bots"]["skill"]["base"] = randomIntRange( 1, 7 ); | ||||
| 			self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomIntRange( 1, 20 ); | ||||
| 			self.pers["bots"]["skill"]["init_react_time"] = 50 * randomInt( 100 ); | ||||
| 			self.pers["bots"]["skill"]["reaction_time"] = 50 * randomInt( 100 ); | ||||
| 			self.pers["bots"]["skill"]["no_trace_ads_time"] = 50 * randomInt( 100 ); | ||||
| 			self.pers["bots"]["skill"]["no_trace_look_time"] = 50 * randomInt( 100 ); | ||||
| 			self.pers["bots"]["skill"]["remember_time"] = 50 * randomInt( 100 ); | ||||
| 			self.pers["bots"]["skill"]["fov"] = randomFloatRange( -1, 1 ); | ||||
|  | ||||
| 			randomNum = randomIntRange( 500, 25000 ); | ||||
| 			self.pers["bots"]["skill"]["dist_start"] = randomNum; | ||||
| 			self.pers["bots"]["skill"]["dist_max"] = randomNum * 2; | ||||
|  | ||||
| 			self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomInt( 20 ); | ||||
| 			self.pers["bots"]["skill"]["help_dist"] = randomIntRange( 500, 25000 ); | ||||
| 			self.pers["bots"]["skill"]["semi_time"] = randomFloatRange( 0.05, 1 ); | ||||
| 			self.pers["bots"]["skill"]["shoot_after_time"] = randomFloatRange( 0.05, 1 ); | ||||
| 			self.pers["bots"]["skill"]["aim_offset_time"] = randomFloatRange( 0.05, 1 ); | ||||
| 			self.pers["bots"]["skill"]["aim_offset_amount"] = randomFloatRange( 0.05, 1 ); | ||||
| 			self.pers["bots"]["skill"]["bone_update_interval"] = randomFloatRange( 0.05, 1 ); | ||||
| 			self.pers["bots"]["skill"]["bones"] = "j_head,j_spineupper,j_ankle_ri,j_ankle_le"; | ||||
|  | ||||
| 			self.pers["bots"]["behavior"]["strafe"] = randomInt( 100 ); | ||||
| 			self.pers["bots"]["behavior"]["nade"] = randomInt( 100 ); | ||||
| 			self.pers["bots"]["behavior"]["sprint"] = randomInt( 100 ); | ||||
| 			self.pers["bots"]["behavior"]["camp"] = randomInt( 100 ); | ||||
| 			self.pers["bots"]["behavior"]["follow"] = randomInt( 100 ); | ||||
| 			self.pers["bots"]["behavior"]["crouch"] = randomInt( 100 ); | ||||
| 			self.pers["bots"]["behavior"]["switch"] = randomInt( 100 ); | ||||
| 			self.pers["bots"]["behavior"]["class"] = randomInt( 100 ); | ||||
| 			self.pers["bots"]["behavior"]["jump"] = randomInt( 100 ); | ||||
| 			break; | ||||
|  | ||||
| 		default: | ||||
| 			self.pers["bots"]["skill"]["base"] = rankVar; | ||||
| 			break; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /* | ||||
| 	When the bot spawned, after the difficulty wait. Start the logic for the bot. | ||||
| */ | ||||
|   | ||||
| @@ -993,7 +993,18 @@ getRandomGoal() | ||||
| 	return PickRandom( level.waypointsInPlayableArea ).origin; | ||||
| } | ||||
|  | ||||
| /* | ||||
| 	Checks if target is dog | ||||
| */ | ||||
| targetIsDog() | ||||
| { | ||||
| 	return isDefined( self.targetname ) && self.targetname == "zombie_dog"; | ||||
| } | ||||
|  | ||||
| /* | ||||
| 	Checks if target is gibbed | ||||
| */ | ||||
| targetIsGibbed() | ||||
| { | ||||
| 	return isDefined( self.gibbed ) && self.gibbed; | ||||
| } | ||||
| @@ -223,13 +223,14 @@ addBot() | ||||
| 		return; | ||||
|  | ||||
| 	// guy.killingAll = true; | ||||
| 	weapon = "zombie_thompson"; | ||||
| 	weapon = "ray_gun"; | ||||
| 	guy giveWeapon( weapon ); // ptrs41_zombie zombie_doublebarrel | ||||
| 	guy switchToWeapon( weapon ); // colt_dirty_harry | ||||
|  | ||||
| 	//guy thread walk_to_player(); | ||||
| 	//guy thread do_move(); | ||||
|  | ||||
| 	/* | ||||
| 	while ( isDefined( guy ) ) | ||||
| 	{ | ||||
| 		if ( isDefined( level.isPlayerDead ) && [[level.isPlayerDead]]( guy ) ) | ||||
| @@ -243,6 +244,7 @@ addBot() | ||||
|  | ||||
| 		wait 0.05; | ||||
| 	} | ||||
| 	*/ | ||||
| } | ||||
|  | ||||
| onPlayerConnect() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user