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

Add new comment

Ususally the merc/vet/elite-depending gear is given in a flick executed by a 'cmd_run_flick' object placed at the position of the actor to hire.
In a GPG-like setup, there is also an 'emitter_indicate' object placed to display a hire icon above the actor.
And often in v2.2 the object 'cmd_change_property' is used to temporarily hide/show actors, if we could use its functionality then Drianjul wouldn't need the critical component [cmd_change_property_owner] (however both works almost the same).

A map maker with/in SE2 most probably would set these 3 objects around/below the actor.
Actually we could add these objects without SE2 too (adding them e.g. in actor.gas and registering them manually in streamer_node_content_index.gas) but there's another (hopefully easier) approach:

Let's take a look on the following row in Drianjul's [placement] (in actor.gas):

		use_point_scids = 0x204000AF;
0x204000AF refers on a 'use_point' (in special.gas of that region). Here it's possible to (ab)use this object, it has no evident purpose and luckily it's on the same place/node too as Drianjul is (has some importance for the flick updating her gear).
Now this useless use-point could be replaced by a custom/combined object that performs all 3 tasks mentioned above:
[t:template,n:cmd_hire_support_drianjul]
{
	specializes   = cmd_const;
	doc           = "auxiliary object to manage hiring, BW map specific";
	extra_doc     = "combined/multi-task object for hiring Drianjul";
	category_name = "flick";
	[cmd_run_flick]
	{
		launch_event = we_req_use;
		flick_name = "give_gear_drianjul_ds2x";
		role_name_1 = "character";
		role_scid_1 = 0x20400049;		// DRIANJUL'S SCID AT AMAN'LU
	}
	[common]
	{
		dev_instance_text = "Trigger to start cmd_run_flick with we_req_use";
		[instance_triggers]		// COPIED FROM DERU, WIDELY THE SAME
		{
			[*]
			{
				action* = send_world_message("we_req_use",0,0,"self","");
			  b can_self_destruct = true;
				condition* = receive_world_message("we_entered_world",0,"on_first_message");
			  f delay = 0.000000;
			  b flip_flop = false;
			  b multi_player = true;
			  b no_save_trig_bits = true;
			  b no_trig_bits = false;
				occupants_group = ;
			  f reset_duration = 0.000000;
			  b single_player = true;
			  b single_shot = true;
			  b start_active = true;
			}
		}
	}
	[cmd_change_property]		// ACTIVATED FROM x2_04_drianjul_talk.flick
	{
		object_list = "0x20400049";		// DRIANJUL'S SCID AT AMAN'LU
		state1_change_visible = true;
		state1_change_selectable = true;
		state1_change_disable_mind = true;
		state2_change_visible = true;
		state2_change_selectable = true;
		state2_change_disable_mind = true;
		state1_visible = true;
		state2_visible = false;
		start_state = 2;
	}
	[indicate_emitter]		// ACTIVATED FROM give_gear_drianjul.flick OR x2_04_drianjul_talk.flick
	{
		height = 2.9;
		scale = 1.05;
		ignore_actor_height = true;
		initial_texture = 5;			// 5 = HIRE ICON 
		initially_active = false;
	}
	[gizmo]		// ...JUST IN CASE THIS TEMPLATE EVER WILL BE USED IN SE2.
	{
		model				=	m_i_glb_SE-niscomm;
		texture				=	;
		diffuse_color		=	0.3, 0.3, 1.0;
		use_diffuse_color	=	true;
	}
}

@PhoeniX: I've tried it out and it works fine (in a short test) but it was necessary to tune/add 5 other files based on your recent files (as far as up to date). The changes are small only, however too much to post all here, so check out your PMs. Wink I'm going to send you an example mod, generally working, but maybe not as tuned as your current state is.