Well, you'll have to make a repeating mission template trigger which will check currently active agents if shield bashing makes sense for them at the current moment, and for those who are eligible, activate it the same way it's activated for player.HyperCharge said:Im added shield bash.But,i want to make useful for AI
If you didn't understand;
i can shield bash.But i want to use this feature to AI
Its may be possible ? if its possible,How ?
Escort, I believe. Look in header_parties.py, all party AI's are there.TheGME said:How can I get cattle to accompany me like a caravan? (the quest caravans)
I've tracked down the code for cattle, and there's an AI behavior. I just can't find the caravan behavior.
#script_multiplayer_server_before_mission_start_common
# INPUT: none
# OUTPUT: none
("multiplayer_server_before_mission_start_common",
[
...
##LWBR
(set_rain, "$g_rain_type", "$g_rain_amount"),
(scene_set_day_time, "$g_round_day_time"),
(try_begin),
(multiplayer_is_server),
(try_begin),
(eq,"$g_rain_type",0),
(str_store_string,s1,"@Clear"),
(else_try),
(eq,"$g_rain_type",1),
(str_store_string,s1,"@Rainy"),
(else_try),
(str_store_string,s1,"@Snowy"),
(try_end),
(assign,reg1,"$g_rain_amount"),
(str_store_string, s1, "@Weather set to {s1} with {reg1} strenght"),
#(call_script, "script_lwbr_send_msg_to_all_players"),
(server_add_message_to_log, s1),
(assign,reg1,"$g_round_day_time"),
(str_store_string, s1, "@Day time set to {reg1}"),
#(call_script, "script_lwbr_send_msg_to_all_players"),
(server_add_message_to_log, s1),
(try_end),
##LWBR
...
]),
#script_game_set_multiplayer_mission_end
# This script is called from the game engine when a multiplayer map is ended in clients (not in server).
# INPUT:
# none
# OUTPUT:
# none
("game_set_multiplayer_mission_end",[
(assign, "$g_multiplayer_mission_end_screen", 1),
##LWBR
(try_begin),
(multiplayer_is_server),
(try_begin),
(eq, "$g_rain_type", -10),#Random Weather
(store_random_in_range, "$g_rain_type", 0, 3),
(else_try),
(neq, "$g_rain_type", 0),
(store_random_in_range, "$g_rain_amount", 0, 101),
(try_end),
(try_begin),
(eq, "$g_round_day_time", -10),#Random Time
(store_random_in_range, "$g_round_day_time", 6, 18),
(else_try),
(eq, "$g_round_day_time", -11),#Random Time no Night
(store_random_in_range, "$g_round_day_time", 0, 24),
(try_end),
(try_begin),
(eq, "$g_fog_distance", -10),#No Fog
(assign, "$g_fog_distance", 1300),
(else_try),
(eq, "$g_fog_distance", -11),#Random Fog
(store_random_in_range, "$g_fog_distance", 100, 1300),
(else_try),
(eq, "$g_fog_distance", -12),#Sparse Fog
(store_random_in_range, "$g_fog_distance", 600, 1300),
(else_try),
(eq, "$g_fog_distance", -13),#Thick Fog
(store_random_in_range, "$g_fog_distance", 100, 800),
(try_end),
(val_min, "$g_fog_distance", 999),
(get_max_players, ":num_players"),
(try_for_range, ":player", 1, ":num_players"),
(player_is_active, ":player"),
(multiplayer_send_3_int_to_player, ":player", multiplayer_event_lwbr_client, lwbr_client_set_var, lwbr_client_var_day_time, "$g_round_day_time"),
(multiplayer_send_3_int_to_player, ":player", multiplayer_event_lwbr_client, lwbr_client_set_var, lwbr_client_var_rain_type, "$g_rain_type"),
(multiplayer_send_3_int_to_player, ":player", multiplayer_event_lwbr_client, lwbr_client_set_var, lwbr_client_var_rain_amount, "$g_rain_amount"),
(multiplayer_send_3_int_to_player, ":player", multiplayer_event_lwbr_client, lwbr_client_set_var, lwbr_client_var_fog_dist, "$g_fog_distance"),
(multiplayer_send_3_int_to_player, ":player", multiplayer_event_lwbr_client, lwbr_client_set_var, lwbr_client_var_fog_color_red, "$g_fog_r"),
(multiplayer_send_3_int_to_player, ":player", multiplayer_event_lwbr_client, lwbr_client_set_var, lwbr_client_var_fog_color_green, "$g_fog_g"),
(multiplayer_send_3_int_to_player, ":player", multiplayer_event_lwbr_client, lwbr_client_set_var, lwbr_client_var_fog_color_blue, "$g_fog_b"),
(try_end),
(try_end),
##LWBR
]),
16:26:19 - Weather set to Clear with 0 strenght
16:26:19 - Day time set to 12
16:28:12 - Weather set to Clear with 0 strenght
16:28:12 - Day time set to 12
16:29:19 - Weather set to Clear with 0 strenght
16:29:19 - Day time set to 12
16:29:32 - Weather set to Clear with 0 strenght
16:29:32 - Day time set to 12
16:29:44 - Weather set to Clear with 0 strenght
16:29:44 - Day time set to 12
16:29:57 - Weather set to Clear with 0 strenght
16:29:57 - Day time set to 12
16:30:19 - Weather set to Clear with 0 strenght
16:30:19 - Day time set to 12
16:30:39 - Weather set to Clear with 0 strenght
16:30:39 - Day time set to 12
16:30:59 - Weather set to Clear with 0 strenght
16:30:59 - Day time set to 12
16:45:31 - Weather set to Clear with 0 strenght
16:45:31 - Day time set to 12
16:53:54 - Weather set to Clear with 0 strenght
16:53:54 - Day time set to 12
16:54:18 - Weather set to Clear with 0 strenght
16:54:18 - Day time set to 12
16:58:27 - Weather set to Clear with 0 strenght
16:58:27 - Day time set to 12
16:59:10 - Weather set to Clear with 0 strenght
16:59:10 - Day time set to 12
(copy_position, pos3, pos1),
(position_move_z, pos3, 3000),
(set_spawn_position, pos3),
(spawn_scene_prop, "spr_artillery_shell"),
(scene_prop_get_num_instances, ":shellNum", "spr_artillery_shell"),
(scene_prop_get_instance, ":shell", "spr_artillery_shell", ":shellNum"),
(prop_instance_animate_to_position, "spr_artillery_shell", pos1, 5),
(scene_prop_get_num_instances, ":shellNum", "spr_artillery_shell"),
(scene_prop_get_instance, ":shell", "spr_artillery_shell", ":shellNum"),
("artillery_shell",sokf_moveable,"artillery_shell","bo_artillery_shell", [(ti_on_init_scene_prop,
[
(store_trigger_param_1, ":instance_no"),
(prop_instance_animate_to_position, ":instance_no", pos1, 700),
]),
(ti_on_scene_prop_animation_finished,
[
(assign, ":grenadier", reg1),
(try_for_agents,":target"),
(agent_get_position,pos2,":target"),
(get_distance_between_positions,":dist",pos1,pos2),
(try_begin),
(lt,":dist",250), #Distance between target and impact position needs to be less than
#this for it to deal damage (in cm's)
(store_agent_hit_points,":hp",":target",1),
(store_random_in_range,":dmg",60,100), #Deal random damage between those two values
(val_sub,":hp",":dmg"),
(agent_set_hit_points,":target",":hp",1),
(le,":hp",0),
(agent_deliver_damage_to_agent,":grenadier",":target"),
(try_end),
(particle_system_burst,"psys_pistol_smoke",pos1,500),
(particle_system_burst,"psys_village_fire_big",pos1,500),
(play_sound_at_position,"snd_explosion",pos1),
]),
]),
["artillery", "artillery Strike", [("kg13",0)], itp_type_thrown|itp_merchandise|itp_primary|itp_no_pick_up_from_ground, itcf_throw_axe, 360, weight(2)|difficulty(0)|spd_rtng(105)|shoot_speed(55)|thrust_damage(1,blunt)|max_ammo(3)|weapon_length(5), imodbits_thrown_minus_heavy, [(ti_on_missile_hit, [
(this_or_next|multiplayer_is_server), #Only run on server for multiplayer
(neg|game_in_multiplayer_mode),
(store_trigger_param_1,":grenadier"),
(assign, reg(1), ":grenadier"),
(copy_position, pos3, pos1),
(position_move_z, pos3, 30000),
(set_spawn_position, pos3),
(spawn_scene_prop, "spr_artillery_shell")
The pause cheat is hardcoded. You can useFrenzied_Crocoduck_Herder said:I was wondering if I could bind the pause cheat to another key and make it work with out the cheat mode being activated.
[color=navy](mission_set_time_speed, <value_fixed_point>),[/color]
My guess is it fails when the game is in single-player mode.The_dragon said:Can someone tell me when game_in_multiplayer_mode fails and when it is true?
(this_or_next|multiplayer_is_server),
(neg|game_in_multiplayer_mode),