The Shadow
Recruit
Thanks! How about the $setting_spearwall one? Any help?
pilgrim_disguise = [itm_turban1,itm_lolrobe3,itm_mace_2, itm_throwing_daggers]
af_castle_lord = af_override_horse | af_override_weapons| af_require_civilian
#ADDED CRUGER BEGIN-----------------------------------------------------------------------------
spearwall_trigger_1 = (0.2, 0, ti_once, [(eq,"$setting_use_spearwall",1)], [
(assign,"$spear_in_position",0),
#THIS IS TWEAKED FROM THE ORIGINAL IN ORDER TO MAKE IT WORK
(assign,"$setting_use_spearwall",1),
#THIS IS TWEAKED FROM THE ORIGINAL IN ORDER TO MAKE IT WORK
(try_for_agents,":agent"),
(agent_set_slot,":agent",slot_agent_spearwall,0),
(agent_set_slot,":agent",slot_agent_x,0),
(agent_set_slot,":agent",slot_agent_y,0),
(agent_set_slot,":agent",slot_agent_z,0),
(agent_set_slot,":agent",slot_agent_speed,0),
(try_end),
])
spearwall_trigger_2 = (0.2, 0, 0, [(eq,"$setting_use_spearwall",1)], [
(set_fixed_point_multiplier, 100),
(try_for_agents,":agent"),
(agent_is_alive,":agent"),
(agent_get_slot,":oldagentx",":agent",slot_agent_x),
(agent_get_slot,":oldagenty",":agent",slot_agent_y),
(agent_get_slot,":oldagentz",":agent",slot_agent_z),
(agent_get_position, pos1, ":agent"),
(position_get_x,":agentx",pos1),
(position_get_y,":agenty",pos1),
(position_get_z,":agentz",pos1),
(position_set_x,pos2,":oldagentx"),
(position_set_y,pos2,":oldagenty"),
(position_set_z,pos2,":oldagentz"),
(position_set_x,pos1,":agentx"),
(position_set_y,pos1,":agenty"),
(position_set_z,pos1,":agentz"),
(get_distance_between_positions,":speed",pos1,pos2),
(agent_set_slot,":agent",slot_agent_x,":agentx"),
(agent_set_slot,":agent",slot_agent_y,":agenty"),
(agent_set_slot,":agent",slot_agent_z,":agentz"),
(agent_set_slot,":agent",slot_agent_speed,":speed"),
(try_end),
])
spearwall_trigger_3 = (0, 0, 0, [(eq,"$spear_in_position",1),(this_or_next|game_key_clicked, gk_attack),
(this_or_next|game_key_clicked, gk_defend),(this_or_next|game_key_clicked, gk_defend),
(this_or_next|game_key_clicked, gk_move_forward),(this_or_next|game_key_clicked, gk_move_backward),
(this_or_next|game_key_clicked, gk_move_left),(this_or_next|game_key_clicked, gk_move_right),
(this_or_next|game_key_clicked, gk_equip_primary_weapon),(this_or_next|game_key_clicked, gk_equip_secondary_weapon),
(this_or_next|game_key_clicked, gk_action),(game_key_clicked, gk_sheath_weapon)
],
[(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(display_message,"@Releasing spear.",0x6495ed),
(agent_set_animation, ":player", "anim_release_thrust_staff"),
(assign,"$spear_in_position",0),
])
spearwall_trigger_4 = (0.2, 0, 0, [(eq,"$setting_use_spearwall",1)], [
(try_for_agents,":agent"),
(agent_get_horse,":horse",":agent"),
(neg|gt,":horse",0),
(agent_get_slot,":speartimer",":agent",slot_agent_spearwall),
(lt,":speartimer",10),
(val_add,":speartimer",2),
(agent_set_slot,":agent",slot_agent_spearwall,":speartimer"),
(try_end),
])
spearwall_trigger_5 = (3, 0, 0, [(eq,"$spear_in_position",1)],[
(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(agent_set_animation, ":player", "anim_spearwall_hold"),
])
spearwall_trigger_6 = (0.1, 0, 0, [(eq,"$setting_use_spearwall",1)], [
(get_player_agent_no,":player"),
(agent_get_team,":playerteam",":player"),
(try_for_agents,":agent"),
(agent_is_alive,":agent"),
(neq,":agent",":player"),
(agent_is_human,":agent"),
(agent_get_horse,":horse",":agent"),
(neg|gt,":horse",0),
(agent_get_slot,":speartimer",":agent",slot_agent_spearwall),
(ge,":speartimer",10),
(agent_get_simple_behavior,":state",":agent"),
(agent_get_team,":team1",":agent"),
(agent_get_class,":class",":agent"),
(team_get_movement_order,":order",":team1",":class"),
(assign,":continue",0),
(try_begin),
(neq,":team1",":playerteam"),
(this_or_next|eq,":state",aisb_hold),
(this_or_next|eq,":state",aisb_flock),
(eq,":state",aisb_go_to_pos),
(assign,":continue",1),
(else_try),
(this_or_next|eq,":order",mordr_hold),
(eq,":order",mordr_stand_ground),
(this_or_next|eq,":state",aisb_hold),
(this_or_next|eq,":state",aisb_flock),
(this_or_next|eq,":state",aisb_melee),
(eq,":state",aisb_go_to_pos),
(assign,":continue",1),
(try_end),
(eq,":continue",1),
(assign,":continue",0),
(try_begin),
(eq,":team1",":playerteam"),
# (eq,"$rout",0),
(assign,":continue",1),
(else_try),
# (eq,"$airout",0),
(assign,":continue",1),
(try_end),
(eq,":continue",1),
(assign,":continue",0),
(agent_get_wielded_item, ":handone", ":agent", 0),
(agent_get_wielded_item, ":handtwo", ":agent", 1),
(assign,":speardist",145),
(try_for_range,":spear","itm_pitch_fork","itm_fredrikshield"),
(this_or_next|eq,":handone",":spear"),
(eq,":handtwo",":spear"),
(assign,":continue",1),
(try_begin),
(eq,":spear","itm_boar_spear"),
(assign,":speardist",157),
(else_try),
(eq,":spear","itm_sulsucpike1"),
(assign,":speardist",400),
(else_try),
(eq,":spear","itm_rrr1_spear"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_rrr2_spear"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_rrr3_spear"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_spear"),
(assign,":speardist",135),
(else_try),
(eq,":spear","itm_war_spear"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_military_scythe"),
(assign,":speardist",200),
(else_try),
(eq,":spear","itm_pike"),
(assign,":speardist",245),
(else_try),
(eq,":spear","itm_long_spear"),
(assign,":speardist",245),
(else_try),
(eq,":spear","itm_broad_spear"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_pike1"),
(assign,":speardist",167),
(else_try),
(assign,":continue",0),
(try_end),
(try_end),
(eq,":continue",1),
(assign,":victim",-1),
(agent_get_position,pos1,":agent"),
(try_for_agents,":possible_victim"),
(agent_is_alive,":possible_victim"),
(neg|agent_is_human,":possible_victim"),
(agent_get_rider,":rider",":possible_victim"),
(ge,":rider",0),
(agent_get_team,":team2",":rider"),
(teams_are_enemies,":team1",":team2"),
(agent_get_position,pos2,":possible_victim"),
(get_distance_between_positions,":dist",pos1,pos2),
(lt,":dist",":speardist"),
(neg|position_is_behind_position,pos2,pos1),
(agent_get_slot,":speed",":possible_victim",slot_agent_speed),
(ge,":speed",120), # Remember to change this if the timing on speed checks changes
(assign,":victim",":possible_victim"),
(try_end),
(gt,":victim",-1),
(agent_set_animation, ":agent", "anim_spearwall_hold"),
(agent_play_sound,":victim","snd_metal_hit_high_armor_high_damage"),
(store_agent_hit_points,":hp",":victim",0),
(store_agent_hit_points,":oldhp",":victim",1),
(val_div,":speed",2), # Remember to change this if the timing on speed checks changes
(val_sub,":speed",15),
(val_sub,":hp",":speed"),
(val_max,":hp",0),
(agent_set_slot,":agent",slot_agent_spearwall,0),
(agent_get_horse,":playerhorse",":player"),
(agent_set_hit_points,":victim",":hp",0),
(agent_deliver_damage_to_agent,":victim",":victim"),
(try_begin),
(eq,":victim",":playerhorse"),
(store_agent_hit_points,":hp",":victim",1),
(val_sub,":oldhp",":hp"),
(assign,reg1,":oldhp"),
(display_message,"@Your horse received {reg1} damage from a braced spear!",0xff4040),
(try_end),
(try_end),
])
spearwall_trigger_7 = (0.1, 0, 0, [(eq,"$spear_in_position",1)], [
(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(store_agent_hit_points,":hp",":player",1),
(lt,":hp","$spear_hp"),
(display_message,"@The injury causes your grip on the spear to slip!",0xff4040),
(agent_set_animation, ":player", "anim_release_thrust_staff"),
(assign,"$spear_in_position",0),
])
spearwall_trigger_8 = (0.1, 0, 0, [(eq,"$spear_in_position",1)], [
(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(agent_get_slot,":speartimer",":player",slot_agent_spearwall),
(ge,":speartimer",10),
(assign,":victim",-1),
(agent_get_position,pos1,":player"),
(try_for_agents,":possible_victim"),
(agent_is_alive,":possible_victim"),
(neg|agent_is_human,":possible_victim"),
(agent_get_rider,":rider",":possible_victim"),
(ge,":rider",0),
(neg|agent_is_ally,":rider"),
(agent_get_position,pos2,":possible_victim"),
(get_distance_between_positions,":dist",pos1,pos2),
(lt,":dist","$spear_dist"),
(neg|position_is_behind_position,pos2,pos1),
(agent_get_slot,":speed",":possible_victim",slot_agent_speed),
(ge,":speed",120), # Remember to change this if the timing on speed checks changes
(assign,":victim",":possible_victim"),
(try_end),
(gt,":victim",-1),
(agent_play_sound,":victim","snd_metal_hit_high_armor_high_damage"),
(store_agent_hit_points,":hp",":victim",0),
(store_agent_hit_points,":oldhp",":victim",1),
(val_div,":speed",2), # Remember to change this if the timing on speed checks changes
(val_sub,":speed",15),
(val_sub,":hp",":speed"),
(val_max,":hp",0),
(agent_set_hit_points,":victim",":hp",0),
(agent_deliver_damage_to_agent,":victim",":victim"),
(agent_set_slot,":player",slot_agent_spearwall,0),
(store_agent_hit_points,":hp",":victim",1),
(val_sub,":oldhp",":hp"),
(assign,reg1,":oldhp"),
(display_message,"@Spear-wall dealt {reg1} damage!"),
])
spearwall_trigger_9 = (0, 0, 2, [(key_clicked, key_b),(eq,"$setting_use_spearwall",1)],
[(assign,":continue",0),
(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(agent_get_wielded_item, ":handone", ":player", 0),
(agent_get_wielded_item, ":handtwo", ":player", 1),
(assign,"$spear_dist",145),
(try_for_range,":spear","itm_pitch_fork","itm_fredrikshield"),
(this_or_next|eq,":handone",":spear"),
(eq,":handtwo",":spear"),
(assign,":continue",1),
(try_begin),
(eq,":spear","itm_boar_spear"),
(assign,"$spear_dist",157),
(else_try),
(eq,":spear","itm_sulsucpike1"),
(assign,"$spear_dist",400),
(else_try),
(eq,":spear","itm_rrr1_spear"),
(assign,"$spear_dist",160),
(else_try),
(eq,":spear","itm_rrr2_spear"),
(assign,"$spear_dist",160),
(else_try),
(eq,":spear","itm_rrr3_spear"),
(assign,"$spear_dist",160),
(else_try),
(eq,":spear","itm_spear"),
(assign,"$spear_dist",135),
(else_try),
(eq,":spear","itm_war_spear"),
(assign,"$spear_dist",160),
(else_try),
(eq,":spear","itm_military_scythe"),
(assign,"$spear_dist",200),
(else_try),
(eq,":spear","itm_pike"),
(assign,"$spear_dist",245),
(else_try),
(eq,":spear","itm_long_spear"),
(assign,"$spear_dist",245),
(else_try),
(eq,":spear","itm_broad_spear"),
(assign,"$spear_dist",160),
(else_try),
(eq,":spear","itm_pike1"),
(assign,"$spear_dist",167),
(else_try),
(assign,":continue",0),
(try_end),
(try_end),
(eq,":continue",1),
(agent_get_horse,":horse",":player"),
(neg|gt,":horse",0),
(neq, "$spear_in_position", 1),
(display_message,"@Bracing spear for charge.",0x6495ed),
(agent_set_animation, ":player", "anim_spearwall_hold"),
(assign, "$spear_in_position", 1),
(store_agent_hit_points,"$spear_hp",":player",1),
])
common_battle_mission_start = (
ti_before_mission_start, 0, 0, [],
[
(team_set_relation, 0, 2, 1),
(team_set_relation, 1, 3, 1),
(call_script, "script_change_banners_and_chest"),
])
jik said:look at this post:
http://forums.taleworlds.com/index.php/topic,63070.0.html
may make life a bit easier for you.
# -*- coding: cp1254 -*-
from header_common import *
from header_operations import *
from module_constants import *
from header_parties import *
from header_skills import *
from header_mission_templates import *
from header_items import *
from header_triggers import *
from header_terrain_types import *
from header_music import *
from ID_animations import *
#### Autoloot improved by rubik begin
ibf_item_type_mask = 0x000000ff
def set_item_difficulty():
item_difficulty = []
for i_item in xrange(len(items)):
item_difficulty.append((item_set_slot, i_item, slot_item_difficulty, get_difficulty(items[i_item][6])))
return item_difficulty[:]
def set_item_base_score():
item_base_score = []
for i_item in xrange(len(items)):
if items[i_item][3] & ibf_item_type_mask == itp_type_two_handed_wpn and items[i_item][3] & itp_two_handed == 0:
item_base_score.append((item_set_slot, i_item, slot_two_handed_one_handed, 1))
type = items[i_item][3] & ibf_item_type_mask
if type >= itp_type_head_armor and type <= itp_type_hand_armor:
item_base_score.append((item_set_slot, i_item, slot_item_head_armor, get_head_armor(items[i_item][6])))
item_base_score.append((item_set_slot, i_item, slot_item_body_armor, get_body_armor(items[i_item][6])))
item_base_score.append((item_set_slot, i_item, slot_item_leg_armor, get_leg_armor(items[i_item][6])))
elif type >= itp_type_one_handed_wpn and type <= itp_type_thrown and type != itp_type_shield:
item_base_score.append((item_set_slot, i_item, slot_item_thrust_damage, get_thrust_damage(items[i_item][6])))
item_base_score.append((item_set_slot, i_item, slot_item_swing_damage, get_swing_damage(items[i_item][6])))
item_base_score.append((item_set_slot, i_item, slot_item_weapon_length, get_weapon_length(items[i_item][6]))) # for spearbrace
elif type == itp_type_horse:
item_base_score.append((item_set_slot, i_item, slot_item_horse_speed, get_missile_speed(items[i_item][6])))
item_base_score.append((item_set_slot, i_item, slot_item_horse_armor, get_body_armor(items[i_item][6])))
elif type == itp_type_shield:
item_base_score.append((item_set_slot, i_item, slot_item_shield_size, get_weapon_length(items[i_item][6])))
item_base_score.append((item_set_slot, i_item, slot_item_shield_armor, get_body_armor(items[i_item][6])))
return item_base_score[:]
#### Autoloot improved by rubik end
scripts = [
#script_game_start:
# This script is called when a new game is started
# INPUT: none
("game_start",
[
#Autoloot:
# initialization hook
(call_script, "script_init_item_difficulties"),
#end Autoloot:
#### Autoloot improved by rubik begin
#### Autoloot improved by rubik begin
("init_item_difficulties", set_item_difficulty()),
#### Autoloot improved by rubik end
] #Last ]
###################################################################################
# AutoLoot: Modified Constants
# Most of these are slot definitions, make sure they do not clash with your mod's other slot usage
###################################################################################
# This is an item slot
slot_item_difficulty = 5
## Autoloot BEGIN
#### Autoloot improved by rubik begin
slot_item_head_armor = 6
slot_item_body_armor = 7
slot_item_leg_armor = 8
# slots redefine, no need to create more new slots, 3 is enough
slot_item_thrust_damage = slot_item_head_armor
slot_item_swing_damage = slot_item_body_armor
slot_two_handed_one_handed = slot_item_leg_armor
slot_item_horse_speed = slot_item_head_armor
slot_item_horse_armor = slot_item_body_armor
slot_item_shield_size = slot_item_head_armor
slot_item_shield_armor = slot_item_body_armor
#### Autoloot improved by rubik end
## Autoloot END
slot_item_weapon_length = 9 ## for Spearbrace
(assign,":continue",0),
(agent_get_wielded_item, ":handone", ":agent", 0),
(agent_get_wielded_item, ":handtwo", ":agent", 1),
(assign,":speardist",145),
(try_for_range,":spear","itm_pitch_fork","itm_wooden_shield"),
(this_or_next|eq,":handone",":spear"),
(eq,":handtwo",":spear"),
(assign,":continue",1),
(try_begin),
(eq,":spear","itm_war_spear"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_spear_e_2-5m"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_light_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_heavy_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_pike"),
(assign,":speardist",255),
(else_try),
(eq,":spear","itm_ashwood_pike"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_awlpike"),
(assign,":speardist",170),
(else_try),
(eq,":spear","itm_pitch_fork"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_military_fork"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_battle_fork"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_boar_spear"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_glaive"),
(assign,":speardist",167),
(else_try),
(eq,":spear","itm_poleaxe"),
(assign,":speardist",180),
(else_try),
(eq,":spear","itm_polehammer"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_shortened_spear"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_staff"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_quarter_staff"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_iron_staff"),
(assign,":continue",0),
(try_end),
(try_end),
(eq,":continue",1),
(agent_get_wielded_item, ":weapon", ":agent", 0),
(gt, ":weapon", 0),
(item_get_type, ":type", ":weapon"),
(eq, ":type", itp_type_polearm),
(item_get_slot,":speardist",":weapon",slot_item_weapon_length),
Native Expansion, Europe 1200, Hordelands. Those mods certainly have it working, so it can be done.Piddyx said:Can anyone verify that this modification works as advertised without bugs?
Piddyx said:Can anyone verify that this modification works as advertised without bugs?
Initializing...
Compiling all global variables...
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Exporting map icons...
Creating new tag_uses.txt file...
Creating new quick_strings.txt file...
Exporting faction data...
Exporting item data...
Exporting scene data...
Exporting troops data
Exporting particle data...
Exporting scene props...
Exporting tableau materials data...
Exporting presentations...
Exporting party_template data...
Exporting parties
Exporting quest data...
Exporting scripts...
Exporting mission_template data...
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
WARNING: Local variable never used: speardist
Exporting game menus data...
exporting simple triggers...
exporting triggers...
exporting dialogs...
Checking global variable usages...
______________________________
Script processing has ended.
Press any key to exit. . .