forums | blogs | polls | tutorials | downloads | rules | help

Add new comment

Araknuum's picture

Modding is a process...

Modding is a process of discovery and invention. For every new feature you add or variable you edit, there is something more to learn and experiment with.

I learned today that using the right dot gasses for LOA, where they apply, is vital to not breaking the game. I also learned that Mod Priority doesn't matter if something you modded breaks the game. I learned that [actor_evil] [mind]'s are fickle, and that modding poorly can break save games. Finally, I learned that I can add simple job permissions to templates.gas, and they seem to work:

		////////////////////////////////////////
		//	job permissions

		b actor_auto_fidgets					= true;

		b actor_auto_defends_others                        	= false;
		b actor_auto_heals_others_life                     	= false;
		b actor_auto_heals_others_mana                     	= false;
		b actor_auto_heals_self_life                       	= false;
		b actor_auto_heals_self_mana                       	= false;
		b actor_auto_picks_up_items                        	= false;
		b actor_auto_xfers_mana                            	= false;

		b actor_auto_switches_to_karate			   	= true;
		b actor_auto_switches_to_melee			   	= true;
		b actor_auto_switches_to_ranged			   	= false;
		b actor_auto_switches_to_magic				= false;

		b actor_auto_uses_stored_items				= false;

		b on_enemy_entered_icz_flee                        	= false;
		b on_enemy_entered_ocz_flee                        	= false;
		b on_enemy_entered_weapon_engage_range_attack	   	= true;
		b on_enemy_spotted_alert_friends                   	= true;
		b on_enemy_spotted_attack                          	= true;
		b on_engaged_fled_abort_attack                     	= false;
		b on_engaged_lost_consciousness_abort_attack       	= true;
		b on_engaged_lost_loiter                           	= false;
		b on_engaged_lost_return_to_job_origin             	= true;
		b on_friend_entered_icz_flee                       	= false;
		b on_friend_entered_ocz_flee                       	= false;
		b on_job_reached_travel_distance_abort_attack      	= false;
		b on_life_ratio_low_flee                           	= true;
		b on_mana_ratio_low_flee                           	= false;
		b on_alert_projectile_near_missed_flee			= false;
		b on_alert_projectile_near_missed_attack		= false;
//Testing what adding my own booleans might do. -JD
		b on_engaged_lost_abort_flee				= true;
		b on_flee_distance_reached_attack			= true;

Further testing is required but, this changed so much between adding it and leaving it out. The way those first Krug act, it's eerie... Like they're sick of me coming back to that point in their history and slaughtering them over and over again and have decided to invade Ehb solely to destroy me.

Current [base_krug] [mind]:

[mind]
	{
		com_channels					= dyn_party, krug;
//Making Krug more Alert but Stupid in interesting ways. -JD
		com_range					= 16.5;
		melee_engage_range				= 14.0;
		ranged_engage_range				= 14.8;
		sight_range					= 15.0;
		sight_fov					= 90.0;
		outer_comfort_zone_range			= 6.0;
		inner_comfort_zone_range         		= 2.5;
		visibility_memory_duration			= 5.0
		on_enemy_spotted_alert_friends			= true;
		on_alert_projectile_near_missed_alert_friends	= true;
		on_enemy_spotted_attack				= true;
		on_alert_projectile_near_missed_attack		= true;
//Making Krug Relentless. -JD
		job_travel_distance_limit			= 30.0;
		on_engaged_lost_consciousness_abort_attack	= false;
		actor_life_ratio_low_threshold  		= 0.15;
		on_life_ratio_low_flee                          = true;
		flee_distance					= 7.0;
		flee_count  					= 1;
		actor_balanced_attack_preference		= 0.95;

		jat_fidget					= world\ai\jobs\common\job_fidget.skrit
			?still					= false;

		jat_flee_from_object				= world\ai\jobs\common\job_flee_from_object.skrit
			?run_chance				= 0.63;


All Krug from Farmhouse to Crypt now work together and try to draw you into more danger. Their base speed is more variable, so there is little to no overlapping as groups advance or chase you.

[body]
	{
		min_move_velocity = 0.900;
		avg_move_velocity = 2.200;
		max_move_velocity = 3.500;

I'll be changing the move_velocity for most other mobs in a similar way, as I think the variable movement speeds give combat encounters more variance and survivability. Before changing move_velocity this way, krug would stack on each other and only spread out when they reached you. That sucked bad because "1" visible krug could be 2 or more, and they were likely to all land hits at the same time. Current behavior is so awesome, for real, it feels much more immersive and challenging than vanilla.

Alas, I'm not sure yet why, but something I changed breaks save games. Trying to load any type of save I've made for a test play leads to gathering exceptions. I'll be juggling bits to see if I can make it work, I know there is no problem with SM_Krug_AI.dsres this runs fine on it's own. Only since adding custom templates.gas and formulas.gas back in through their own individual mods has loading saves been broken.

The process continues!

:spider:

blogs: