Amman d Stazia
Master Knight
Distinct Heraldry
(NOT custom heraldry... really)
This set of scripts does the following:
on reaching faction rank of Knight, 20 town_shields are dropped in the zendar chest*. You can equip NPCs and yourself with them. *I have renamed Zendar Dhorak in the scripts below... easily changed back....
All the top-tier upgrades (plyr -prefixed troops) are equipped with one of the same town_shield.
Every town has a different shield, and NONE of the AI troops are equipped with it.
Result - every one of your elite troops carries a shield with a distinct design, matching that of yourself and your NPC companions.
The script can be adjusted to allow ALL non-AI troops to receive the shield.
It can, theoretically, be used for a surcoat or plumed helmet as well/instead of a shield...
It cannot force troops to equip the shield. If they use a two-hander or bow, the shields are redundant. I have not used 'guarantee shield' with my plyr-troops, because they do not have ANY shield to start with (this means that when they do get the shields, only the special shields will be used).
In py.dialogues:
for every lord of a town:
[trp_town_4_ruler_a,"governer_pretalk_ally", [[ge,"$quest_points",60],[lt,"$faction_rank",6]],
"You have completed your service as a squire, {playername}, and proven your valor in battle many times. Now, bow before me to receive this well deserved honor you have earned - {playername}! In recognition of your services to our kingdom, I dub thee knight. Carry your title with honour and humility. I am assigning you a troop of horse, (sir/lady} {playername}. To distinguish yourselves on the field of battle, give your lieutenants one of these shields - I will have some sent to your rooms in Dhorak Inn. The enemy shall know you and fear you!",
"governer_pretalk_ally",
[[assign,"$weekly_wage",28],
[troop_add_items,"trp_dhorak_chest","itm_shield_town4",20],
[party_add_members,"p_main_party","trp_mercenary",15],[assign,reg(0),"$weekly_wage"],[assign,"$playershield4",1],[assign,"$faction_rank",6]]],
[trp_town_5_ruler_a,"governer_pretalk_ally", [[ge,"$quest_points",60],[lt,"$faction_rank",6]],
"You have completed your service as a squire, {playername}, and proven your valor in battle many times. Now, bow before me to receive this well deserved honor you have earned - {playername}! In recognition of your services to our kingdom, I dub thee knight. Carry your title with honour and humility. I am assigning you a troop of horse, (sir/lady} {playername}. To distinguish yourselves on the field of battle, give your lieutenants one of these shields - I will have some sent to your rooms in Dhorak Inn. The enemy shall know you and fear you!",
"governer_pretalk_ally",
[[assign,"$weekly_wage",28],
[troop_add_items,"trp_dhorak_chest","itm_shield_town5",20],
[party_add_members,"p_main_party","trp_mercenary",15],[assign,reg(0),"$weekly_wage"],[assign,"$playershield5",1],[assign,"$faction_rank",6]]],
in py.triggers
once for every town, where playershield99 is altered to correspond to the number of the town (and, therfore, the number of the unique shield granted to you as Knight)
# re equip player troops
(2.0, 0, 1.0,
[
(eq,"$playershield13",1),
],
[
(troop_ensure_inventory_space,"trp_playermanatarms1" ,1),
(troop_ensure_inventory_space,"trp_playerinfantry1" ,1),
(troop_ensure_inventory_space,"trp_playermanatarms3" ,1),
(troop_ensure_inventory_space,"trp_playerinfantry2" ,1),
(troop_ensure_inventory_space,"trp_playerarcher1" ,1),
(troop_ensure_inventory_space,"trp_playerarcher2" ,1),
(troop_ensure_inventory_space,"trp_playerkhergit1" ,1),
(troop_ensure_inventory_space,"trp_playerkhergit2" ,1),
(troop_ensure_inventory_space,"trp_playerkhergit3" ,1),
(troop_ensure_inventory_space,"trp_fighter_woman" ,1),
(troop_ensure_inventory_space,"trp_sword_sister" ,1),
(troop_add_item,"trp_playerinfantry1" ,"itm_shield_town13",),
(troop_add_item,"trp_playermanatarms3" ,"itm_shield_town13",),
(troop_add_item,"trp_playerinfantry2" ,"itm_shield_town13",),
(troop_add_item,"trp_playerarcher1" ,"itm_shield_town13",),
(troop_add_item,"trp_playerarcher2" ,"itm_shield_town13",),
(troop_add_item,"trp_playerkhergit1" ,"itm_shield_town13",),
(troop_add_item,"trp_playerkhergit2" ,"itm_shield_town13",),
(troop_add_item,"trp_playerkhergit3" ,"itm_shield_town13",),
(troop_add_item,"trp_fighter_woman" ,"itm_shield_town13",),
(troop_add_item,"trp_sword_sister" ,"itm_shield_town13",),
]
),
In py.items
one shield per town. make sure they are NOT merchandise, and make them good! No point in swapping a hardened heater shield for a scrap of rotten pine, is there?
["shield_town1", "Shield", [("town1shield",0)], itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town2", "Shield", [("town2shield",0)],itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town3", "Shield", [("town3shield",0)],itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town4", "Shield", [("town4shield",0)],itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town5", "Shield", [("town5shield",0)],itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town8", "Shield", [("town8shield",0)], itp_type_shield , itcf_carry_round_shield, 697 , weight(2)|hit_points(800)|body_armor(14)|spd_rtng(9|weapon_length(45),imodbits_good ],
in py.troops
you can use any name you want for the non-AI troops, or you can copy exisiting troops. The important thing is that NO AI party or party-template contains these troops, so that the only time they come into existence is when the player creates them through upgrades - hence the inclusion of the sword sister in the above scripts....
upgrade2(troops,"swadian_infantry","swadian_sergeant","playerinfantry1")
upgrade2(troops,"swadian_sharpshooter","playerarcher2","playerarcher1")
upgrade2(troops,"swadian_man_at_arms","playerinfantry2","playermanatarms3")
and
#plyrtrp bias polearm, mounted
["playerinfantry2","Elite Man at Arms","Elite Men at Arms",tf_mounted|tf_guarantee_horse|tf_guarantee_boots|tf_guarantee_horse,no_scene,reserved,fac_commoners,
etc etc
def_attrib|wp_polearm(205)|level(26),wp75),knows_common|knows_riding_5|knows_athletics_1|knows_shield_3|knows_ironflesh_3,swadian_face1, swadian_face2],
#plyrtrp bias tall bow
["playerarcher1","Elite Archer","Elite Archers",tf_guarantee_boots|tf_guarantee_rangedreserved,fac_commoners,
etc etc
def_attrib|level(26),wp(75)|wp_archery(220),knows_common|knows_power_draw_6|knows_ironflesh_3,swadian_face1, swadian_face2],
#plyrtrp bias 2hander/polearm
["playermanatarms3","Elite Guard","Elite Guards",tf_mounted|tf_guarantee_boots
etc etc
itm_nordic_helmet,itm_bascinet,itm_warhorse,],
def_attrib|wp(55)|wp_two_handed(190)|wp_polearm(195)|level(26),knows_common|knows_power_strike_4|knows_athletics_1|knows_ironflesh_3,swadian_face1, swadian_face2],
Obvious things to remember:
Trp-IDs must be DIFFERENT to anything that will occur in AI parties.
Trp-IDs must correspond exactly across all module files (as usual)
shields (or any other distinct items you want to make) should NOT be merchandise, and must have unique IDs.
Any questuins I'll try to answer - but I'm not a python expert like some people. I developed this through a lot of trial-and-error, to be honest!
Oh - and you'll need to model and texture the shields, unless you want to reduce the variety of shields otherwise available to native/AI troops. That shouldn't be too hard...
(NOT custom heraldry... really)
This set of scripts does the following:
on reaching faction rank of Knight, 20 town_shields are dropped in the zendar chest*. You can equip NPCs and yourself with them. *I have renamed Zendar Dhorak in the scripts below... easily changed back....
All the top-tier upgrades (plyr -prefixed troops) are equipped with one of the same town_shield.
Every town has a different shield, and NONE of the AI troops are equipped with it.
Result - every one of your elite troops carries a shield with a distinct design, matching that of yourself and your NPC companions.
The script can be adjusted to allow ALL non-AI troops to receive the shield.
It can, theoretically, be used for a surcoat or plumed helmet as well/instead of a shield...
It cannot force troops to equip the shield. If they use a two-hander or bow, the shields are redundant. I have not used 'guarantee shield' with my plyr-troops, because they do not have ANY shield to start with (this means that when they do get the shields, only the special shields will be used).
In py.dialogues:
for every lord of a town:
[trp_town_4_ruler_a,"governer_pretalk_ally", [[ge,"$quest_points",60],[lt,"$faction_rank",6]],
"You have completed your service as a squire, {playername}, and proven your valor in battle many times. Now, bow before me to receive this well deserved honor you have earned - {playername}! In recognition of your services to our kingdom, I dub thee knight. Carry your title with honour and humility. I am assigning you a troop of horse, (sir/lady} {playername}. To distinguish yourselves on the field of battle, give your lieutenants one of these shields - I will have some sent to your rooms in Dhorak Inn. The enemy shall know you and fear you!",
"governer_pretalk_ally",
[[assign,"$weekly_wage",28],
[troop_add_items,"trp_dhorak_chest","itm_shield_town4",20],
[party_add_members,"p_main_party","trp_mercenary",15],[assign,reg(0),"$weekly_wage"],[assign,"$playershield4",1],[assign,"$faction_rank",6]]],
[trp_town_5_ruler_a,"governer_pretalk_ally", [[ge,"$quest_points",60],[lt,"$faction_rank",6]],
"You have completed your service as a squire, {playername}, and proven your valor in battle many times. Now, bow before me to receive this well deserved honor you have earned - {playername}! In recognition of your services to our kingdom, I dub thee knight. Carry your title with honour and humility. I am assigning you a troop of horse, (sir/lady} {playername}. To distinguish yourselves on the field of battle, give your lieutenants one of these shields - I will have some sent to your rooms in Dhorak Inn. The enemy shall know you and fear you!",
"governer_pretalk_ally",
[[assign,"$weekly_wage",28],
[troop_add_items,"trp_dhorak_chest","itm_shield_town5",20],
[party_add_members,"p_main_party","trp_mercenary",15],[assign,reg(0),"$weekly_wage"],[assign,"$playershield5",1],[assign,"$faction_rank",6]]],
in py.triggers
once for every town, where playershield99 is altered to correspond to the number of the town (and, therfore, the number of the unique shield granted to you as Knight)
# re equip player troops
(2.0, 0, 1.0,
[
(eq,"$playershield13",1),
],
[
(troop_ensure_inventory_space,"trp_playermanatarms1" ,1),
(troop_ensure_inventory_space,"trp_playerinfantry1" ,1),
(troop_ensure_inventory_space,"trp_playermanatarms3" ,1),
(troop_ensure_inventory_space,"trp_playerinfantry2" ,1),
(troop_ensure_inventory_space,"trp_playerarcher1" ,1),
(troop_ensure_inventory_space,"trp_playerarcher2" ,1),
(troop_ensure_inventory_space,"trp_playerkhergit1" ,1),
(troop_ensure_inventory_space,"trp_playerkhergit2" ,1),
(troop_ensure_inventory_space,"trp_playerkhergit3" ,1),
(troop_ensure_inventory_space,"trp_fighter_woman" ,1),
(troop_ensure_inventory_space,"trp_sword_sister" ,1),
(troop_add_item,"trp_playerinfantry1" ,"itm_shield_town13",),
(troop_add_item,"trp_playermanatarms3" ,"itm_shield_town13",),
(troop_add_item,"trp_playerinfantry2" ,"itm_shield_town13",),
(troop_add_item,"trp_playerarcher1" ,"itm_shield_town13",),
(troop_add_item,"trp_playerarcher2" ,"itm_shield_town13",),
(troop_add_item,"trp_playerkhergit1" ,"itm_shield_town13",),
(troop_add_item,"trp_playerkhergit2" ,"itm_shield_town13",),
(troop_add_item,"trp_playerkhergit3" ,"itm_shield_town13",),
(troop_add_item,"trp_fighter_woman" ,"itm_shield_town13",),
(troop_add_item,"trp_sword_sister" ,"itm_shield_town13",),
]
),
In py.items
one shield per town. make sure they are NOT merchandise, and make them good! No point in swapping a hardened heater shield for a scrap of rotten pine, is there?
["shield_town1", "Shield", [("town1shield",0)], itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town2", "Shield", [("town2shield",0)],itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town3", "Shield", [("town3shield",0)],itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town4", "Shield", [("town4shield",0)],itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town5", "Shield", [("town5shield",0)],itp_type_shield , itcf_carry_kite_shield, 318 , weight(2.5)|hit_points(480)|body_armor(5)|spd_rtng(82)|weapon_length(95),imodbits_good ],
["shield_town8", "Shield", [("town8shield",0)], itp_type_shield , itcf_carry_round_shield, 697 , weight(2)|hit_points(800)|body_armor(14)|spd_rtng(9|weapon_length(45),imodbits_good ],
in py.troops
you can use any name you want for the non-AI troops, or you can copy exisiting troops. The important thing is that NO AI party or party-template contains these troops, so that the only time they come into existence is when the player creates them through upgrades - hence the inclusion of the sword sister in the above scripts....
upgrade2(troops,"swadian_infantry","swadian_sergeant","playerinfantry1")
upgrade2(troops,"swadian_sharpshooter","playerarcher2","playerarcher1")
upgrade2(troops,"swadian_man_at_arms","playerinfantry2","playermanatarms3")
and
#plyrtrp bias polearm, mounted
["playerinfantry2","Elite Man at Arms","Elite Men at Arms",tf_mounted|tf_guarantee_horse|tf_guarantee_boots|tf_guarantee_horse,no_scene,reserved,fac_commoners,
etc etc
def_attrib|wp_polearm(205)|level(26),wp75),knows_common|knows_riding_5|knows_athletics_1|knows_shield_3|knows_ironflesh_3,swadian_face1, swadian_face2],
#plyrtrp bias tall bow
["playerarcher1","Elite Archer","Elite Archers",tf_guarantee_boots|tf_guarantee_rangedreserved,fac_commoners,
etc etc
def_attrib|level(26),wp(75)|wp_archery(220),knows_common|knows_power_draw_6|knows_ironflesh_3,swadian_face1, swadian_face2],
#plyrtrp bias 2hander/polearm
["playermanatarms3","Elite Guard","Elite Guards",tf_mounted|tf_guarantee_boots
etc etc
itm_nordic_helmet,itm_bascinet,itm_warhorse,],
def_attrib|wp(55)|wp_two_handed(190)|wp_polearm(195)|level(26),knows_common|knows_power_strike_4|knows_athletics_1|knows_ironflesh_3,swadian_face1, swadian_face2],
Obvious things to remember:
Trp-IDs must be DIFFERENT to anything that will occur in AI parties.
Trp-IDs must correspond exactly across all module files (as usual)
shields (or any other distinct items you want to make) should NOT be merchandise, and must have unique IDs.
Any questuins I'll try to answer - but I'm not a python expert like some people. I developed this through a lot of trial-and-error, to be honest!
Oh - and you'll need to model and texture the shields, unless you want to reduce the variety of shields otherwise available to native/AI troops. That shouldn't be too hard...