Sir_Pink
Veteran
Here is a little tweak to the "add_kill_counts" script in module_scripts.py. I made it when you get a kill it displays how many you have x of 30 until you unlock warlord. when you reach 30, it displays you have unlocked it. Every kill afterwards gives you full HP.
Snippet:
Full Script:
Anyone interested in how i added my checkbox to the admin panel to toggle on/off:
Snippet:
Full Script:
Code:
#script_add_kill_death_counts
# INPUT: arg1 = killer_agent_no, arg2 = dead_agent_no
# OUTPUT: none
("add_kill_death_counts",
[
(store_script_param, ":killer_agent_no", 1),
(store_script_param, ":dead_agent_no", 2),
(try_begin),
(ge, ":killer_agent_no", 0),
(agent_get_team, ":killer_agent_team", ":killer_agent_no"),
(else_try),
(assign, ":killer_agent_team", -1),
(try_end),
(try_begin),
(ge, ":dead_agent_no", 0),
(agent_get_team, ":dead_agent_team", ":dead_agent_no"),
(else_try),
(assign, ":dead_agent_team", -1),
(try_end),
#adjusting kill counts of players/bots
(try_begin),
(try_begin),
(ge, ":killer_agent_no", 0),
(ge, ":dead_agent_no", 0),
(agent_is_human, ":killer_agent_no"),
(agent_is_human, ":dead_agent_no"),
(neq, ":killer_agent_no", ":dead_agent_no"),
(this_or_next|neq, ":killer_agent_team", ":dead_agent_team"),
(this_or_next|eq, "$g_multiplayer_game_type", multiplayer_game_type_deathmatch),
(eq, "$g_multiplayer_game_type", multiplayer_game_type_duel),
(agent_get_player_id, ":killer_agent_player", ":killer_agent_no"),
(try_begin),
(agent_is_non_player, ":killer_agent_no"), #if killer agent is bot then increase bot kill counts of killer agent's team by one.
(agent_get_team, ":killer_agent_team", ":killer_agent_no"),
(team_get_bot_kill_count, ":killer_agent_team_bot_kill_count", ":killer_agent_team"),
(val_add, ":killer_agent_team_bot_kill_count", 1),
(team_set_bot_kill_count, ":killer_agent_team", ":killer_agent_team_bot_kill_count"),
(else_try), #if killer agent is not bot then increase kill counts of killer agent's player by one.
(player_is_active, ":killer_agent_player"),
# Sir_Pink - warlord mod
#######################################################################################
## ----------------------------------------------------------------------- New START
(try_begin), # Test to see if the admin panel checkbox is checked or not to execute script.
(eq, "$g_multiplayer_deathmatch_duel_regen", 1), # Checks if my custom checkbox in admin panel is checked or not. (1 = Yes, 0 = No)
(str_store_player_username, s55, ":killer_agent_player"),
#(multiplayer_send_string_to_player, ":killer_agent_player", multiplayer_event_show_server_message, "@{s55} it works yo!"),
(try_begin), # Get the players kill count and store it into a variable, then display how many more kills required to unlock warlord.
(player_get_kill_count, ":killer_agent_player_kill_count", ":killer_agent_player"),
(val_add, ":killer_agent_player_kill_count", 1),
(assign, reg0, ":killer_agent_player_kill_count"),
(player_set_kill_count, ":killer_agent_player", ":killer_agent_player_kill_count"),
(try_begin), # If the players kill count is less than or equal to 2, then display msg with how many more kills to go.
# script here...
(le, ":killer_agent_player_kill_count", 29),
(multiplayer_send_string_to_player, ":killer_agent_player", multiplayer_event_show_server_message, "@{reg0} of 30 kills to unlock Warlord!"),
(try_end),
(try_begin), # If the players kill count is qual to 3, then display msg the player has unlocked warlord.
# script here...
(eq, ":killer_agent_player_kill_count", 30),
(multiplayer_send_string_to_player, ":killer_agent_player", multiplayer_event_show_server_message, "@You are now a Warlord - Health regenerates with every kill!"),
(try_end),
(try_begin), # If the players kill count is greater than or equal to 4, then give player full HP.
# script here...
(ge, ":killer_agent_player_kill_count", 30),
(agent_set_hit_points,":killer_agent_no",59,1),
(try_end),
(try_end),
(else_try),
(player_get_kill_count, ":killer_agent_player_kill_count", ":killer_agent_player"),
(val_add, ":killer_agent_player_kill_count", 1),
(player_set_kill_count, ":killer_agent_player", ":killer_agent_player_kill_count"),
(try_end),
## ----------------------------------------------------------------------- New END
#######################################################################################
# Original
#(player_get_kill_count, ":killer_agent_player_kill_count", ":killer_agent_player"),
#(val_add, ":killer_agent_player_kill_count", 1),
#(player_set_kill_count, ":killer_agent_player", ":killer_agent_player_kill_count"),
(try_end),
(try_end),
(try_begin),
(ge, ":dead_agent_no", 0),
(agent_is_human, ":dead_agent_no"),
(try_begin),
(agent_is_non_player, ":dead_agent_no"), #if dead agent is bot then increase bot kill counts of dead agent's team by one.
(agent_get_team, ":dead_agent_team", ":dead_agent_no"),
(team_get_bot_death_count, ":dead_agent_team_bot_death_count", ":dead_agent_team"),
(val_add, ":dead_agent_team_bot_death_count", 1),
(team_set_bot_death_count, ":dead_agent_team", ":dead_agent_team_bot_death_count"),
(else_try), #if dead agent is not bot then increase death counts of dead agent's player by one.
(agent_get_player_id, ":dead_agent_player", ":dead_agent_no"),
(player_is_active, ":dead_agent_player"),
(player_get_death_count, ":dead_agent_player_death_count", ":dead_agent_player"),
(val_add, ":dead_agent_player_death_count", 1),
(player_set_death_count, ":dead_agent_player", ":dead_agent_player_death_count"),
(try_end),
(try_begin),
(assign, ":continue", 0),
(try_begin),
(this_or_next|lt, ":killer_agent_no", 0), #if he killed himself (1a(team change) or 1b(self kill)) then decrease kill counts of killer player by one.
(eq, ":killer_agent_no", ":dead_agent_no"),
(assign, ":continue", 1),
(try_end),
(try_begin),
(eq, ":killer_agent_team", ":dead_agent_team"), #if he killed a teammate and game mod is not deathmatch then decrease kill counts of killer player by one.
(neq, "$g_multiplayer_game_type", multiplayer_game_type_deathmatch),
(neq, "$g_multiplayer_game_type", multiplayer_game_type_duel),
(assign, ":continue", 1),
(try_end),
(eq, ":continue", 1),
(try_begin),
(ge, ":killer_agent_no", 0),
(assign, ":responsible_agent", ":killer_agent_no"),
(else_try),
(assign, ":responsible_agent", ":dead_agent_no"),
(try_end),
(try_begin),
(ge, ":responsible_agent", 0),
(neg|agent_is_non_player, ":responsible_agent"),
(agent_get_player_id, ":responsible_player", ":responsible_agent"),
(ge, ":responsible_player", 0),
(player_get_kill_count, ":dead_agent_player_kill_count", ":responsible_player"),
(val_add, ":dead_agent_player_kill_count", -1),
(player_set_kill_count, ":responsible_player", ":dead_agent_player_kill_count"),
(try_end),
(try_end),
(try_end),
(try_end),
]),
Anyone interested in how i added my checkbox to the admin panel to toggle on/off:
• header_common.py
• module_presentations.py (ctrl + f for $g_presentation_obj_admin_panel_40)
- ctrl + f for (assign, ":cur_y", 1280), (+40 to 1240 for each new checkbox so you can scroll on the admin panel for it.)
• module_scripts.py (ctrl + f to find each section)
• module_strings.py
Code:
multiplayer_event_return_deathmatch_duel_health_regen = 700
multiplayer_event_admin_set_deathmatch_duel_health_regen = 600
• module_presentations.py (ctrl + f for $g_presentation_obj_admin_panel_40)
Code:
(else_try),
(eq, ":object", "$g_presentation_obj_admin_panel_40"),
(multiplayer_send_int_to_server, multiplayer_event_admin_set_force_default_armor, ":value"),
# pink
(else_try),
(eq, ":object", "$g_presentation_obj_admin_panel_80"),
(multiplayer_send_int_to_server, multiplayer_event_admin_set_deathmatch_duel_health_regen, ":value"),
########################################################################################################
- ctrl + f for (assign, ":cur_y", 1280), (+40 to 1240 for each new checkbox so you can scroll on the admin panel for it.)
Code:
##################################################################################################################################
(val_sub, ":cur_y", ":cur_y_adder"),
(create_text_overlay, reg0, "str_kill_deathmatch_duel_regen", 0),
(position_set_x, pos1, 30),
(position_set_y, pos1, ":cur_y"),
(overlay_set_position, reg0, pos1),
(create_check_box_overlay, "$g_presentation_obj_admin_panel_80", "mesh_checkbox_off", "mesh_checkbox_on"),
(position_set_x, pos1, 7),
(store_add, ":special_cur_y", ":cur_y", 7),
(position_set_y, pos1, ":special_cur_y"),
(overlay_set_position, "$g_presentation_obj_admin_panel_80", pos1),
(overlay_set_val, "$g_presentation_obj_admin_panel_80", "$g_multiplayer_deathmatch_duel_regen"),
##################################################################################################################################
• module_scripts.py (ctrl + f to find each section)
Code:
(else_try),
(eq, ":event_type", multiplayer_event_return_force_default_armor),
(store_script_param, ":value", 3),
(assign, "$g_multiplayer_force_default_armor", ":value"),
# pink
(else_try),
(eq, ":event_type", multiplayer_event_return_deathmatch_duel_health_regen),
(store_script_param, ":value", 3),
(assign, "$g_multiplayer_deathmatch_duel_regen", ":value"),
##############################################################################
Code:
(multiplayer_send_int_to_player, ":player_no", multiplayer_event_return_force_default_armor, "$g_multiplayer_force_default_armor"),
# pink
(multiplayer_send_int_to_player, ":player_no", multiplayer_event_return_deathmatch_duel_health_regen, "$g_multiplayer_deathmatch_duel_regen"),
Code:
(assign, "$g_multiplayer_force_default_armor", 0),
# pink
(assign, "$g_multiplayer_deathmatch_duel_regen", 1),
#################################################################################
Code:
(else_try),
(eq, ":event_type", multiplayer_event_admin_set_force_default_armor),
(try_begin),
(store_script_param, ":value", 3),
#validity check
(player_is_admin, ":player_no"),
(is_between, ":value", 0, 2),
#condition checks are done
(assign, "$g_multiplayer_force_default_armor", ":value"),
(try_end),
# pink
#########################################################################
(else_try),
(eq, ":event_type", multiplayer_event_admin_set_deathmatch_duel_health_regen),
(try_begin),
(store_script_param, ":value", 3),
#validity check
(player_is_admin, ":player_no"),
(is_between, ":value", 0, 2),
#condition checks are done
(assign, "$g_multiplayer_deathmatch_duel_regen", ":value"),
(try_end),
#########################################################################
Code:
(else_try),
(eq, ":input", 43),
(try_begin),
(eq, "$g_multiplayer_disallow_ranged_weapons", 1),
(str_store_string, s0, "str_ranged_weapons_are_disallowed"),
(else_try),
(str_store_string, s0, "str_ranged_weapons_are_allowed"),
(try_end),
(else_try),
(eq, ":input", 44),
(try_begin),
(is_between, ":val1", 0, 2),
(assign, "$g_multiplayer_disallow_ranged_weapons", ":val1"),
(try_begin),
(eq, ":val1", 1),
(str_store_string, s0, "str_ranged_weapons_are_disallowed"),
(else_try),
(str_store_string, s0, "str_ranged_weapons_are_allowed"),
(try_end),
(else_try),
(str_store_string, s0, "str_input_is_not_correct_for_the_command_type_help_for_more_information"),
(try_end),
# pink
(else_try),
(eq, ":input", 31),
(try_begin),
(eq, "$g_multiplayer_deathmatch_duel_regen", 1),
(str_store_string, s0, "str_deathmatch_duel_health_regen_disallowed"),
(else_try),
(str_store_string, s0, "str_deathmatch_duel_health_regen_allowed"),
(try_end),
(else_try),
(eq, ":input", 32),
(try_begin),
(is_between, ":val1", 0, 2),
(assign, "$g_multiplayer_deathmatch_duel_regen", ":val1"),
(try_begin),
(eq, ":val1", 1),
(str_store_string, s0, "str_deathmatch_duel_health_regen_disallowed"),
(else_try),
(str_store_string, s0, "str_deathmatch_duel_health_regen_allowed"),
(try_end),
(else_try),
(str_store_string, s0, "str_input_is_not_correct_for_the_command_type_help_for_more_information"),
(try_end),
#########################################################################################################
(else_try),
(str_store_string, s0, "@{!}DEBUG : SYSTEM ERROR!"),
(try_end),
]),
• module_strings.py
Code:
("force_default_armor", "Force minimum armor"),
# pink
("kill_deathmatch_duel_regen", "Deathmatch and duel health regen"),
("deathmatch_duel_health_regen_disallowed", "Health regen disallowed."),
("deathmatch_duel_health_regen_allowed", "Health regen allowed."),