| | Re-defining troops skills and attributes and face codes for troops | |
| | Author | Message |
---|
treebeard Nemisis
Posts : 740 Join date : 2010-09-12 Age : 51 Location : CA
| Subject: Re-defining troops skills and attributes and face codes for troops Thu Jun 02, 2011 6:44 pm | |
| There is a need to re-define the skills and attributes for soldiers of different levels and different factions. This will diversify the faction troops better and make them more unique. It will also be a good foundation upon which to build up the faction troops. Also lords need to get their skills and attributes defined properly and according to Faction Strengths and Weaknesses and conditions. Along with this, we need to look over the face codes and assign face code templates for the faction soldiers that are in line with the PoP4 lore. The face codes for troops should contain codes for faces from [faction]_face_younger_1 until [faction]_face_older_1 (five age faces) for the first option of the face variability and then again five faces from [faction]_face_younger_2 to [faction]_face_older_2 for the alternative face. Then for each troop they will be assigned from one age to the next age. A few might even have from the whole available range of faces for that faction. The code that needs modification is this code in module_troops:- Spoiler:
#Skills knows_common = knows_trade_2|knows_prisoner_management_1 def_attrib_multiplayer = str_14 | agi_14 | int_4 | cha_4
knows_steward = knows_tactics_1|knows_leadership_1|knows_engineer_1 merchant_attrib = str_3 | agi_12 | int_9 | cha_6 def_attrib = str_15 | agi_12 | int_9 | cha_6 steward_attrib = str_15| agi_12 | int_12 | cha_12 |level(10)
sold_attrib_1f = str_8|agi_5|int_4|cha_4|level(1) sold_attrib_2f = str_10|agi_6|int_5|cha_4|level(5) sold_attrib_3f = str_14|agi_10|int_6|cha_5|level(10) sold_attrib_4f = str_18|agi_12|int_6|cha_6|level(15) sold_attrib_5f = str_22|agi_14|int_6|cha_6|level(20) sold_attrib_6f = str_26|agi_16|int_9|cha_9|level(30) sold_attrib_7f = str_30|agi_18|int_9|cha_12|level(40) sold_attrib_8f = str_34|agi_20|int_12|cha_15|level(45) sold_attrib_9f = str_38|agi_22|int_12|cha_15|level(50) sold_attrib_10f = str_40|agi_24|int_12|cha_12|level(55)
sold_attrib_1d = str_8|agi_8|int_4|cha_4|level(1) sold_attrib_2d = str_10|agi_10|int_5|cha_4|level(5) sold_attrib_3d = str_12|agi_12|int_6|cha_5|level(10) sold_attrib_4d = str_15|agi_15|int_6|cha_6|level(15) sold_attrib_5d = str_18|agi_18|int_6|cha_6|level(20) sold_attrib_6d = str_21|agi_21|int_9|cha_9|level(30) sold_attrib_7d = str_24|agi_24|int_9|cha_12|level(40) sold_attrib_8d = str_27|agi_27|int_12|cha_15|level(45) sold_attrib_9d = str_30|agi_30|int_12|cha_15|level(50) sold_attrib_10d = str_36|agi_34|int_14|cha_12|level(55) sold_attrib_11d = str_40|agi_36|int_18|cha_24|level(55) # Specials sold_attrib_12d = str_60|agi_38|int_22|cha_30|level(60) # Special
sold_attrib_1 = str_5|agi_5|int_4|cha_4|level(1) sold_attrib_2 = str_6|agi_6|int_5|cha_4|level(5) sold_attrib_3 = str_9|agi_9|int_6|cha_5|level(10) sold_attrib_4 = str_12|agi_9|int_6|cha_6|level(15) sold_attrib_5 = str_15|agi_12|int_6|cha_6|level(20) sold_attrib_6 = str_18|agi_12|int_9|cha_9|level(30) sold_attrib_7 = str_21|agi_15|int_9|cha_12|level(40) sold_attrib_8 = str_24|agi_15|int_12|cha_15|level(45) sold_attrib_85 = str_26|agi_15|int_12|cha_15|level(47) sold_attrib_9 = str_27|agi_18|int_12|cha_15|level(50) sold_attrib_10 = str_30|agi_21|int_27|cha_24|level(55) # Noldor sold_attrib_11 = str_40|agi_24|int_24|cha_24|level(60) # Specials sold_attrib_11a = str_40|agi_24|int_24|cha_24|level(60) # Specials sold_attrib_12 = str_60|agi_24|int_12|cha_30|level(60) # Special
sold_attrib_20 = str_60|agi_3|int_6|cha_3|level(20) #Minor Undead sold_attrib_21 = str_120|agi_12|int_12|cha_12|level(60) #major Undead sold_attrib_22 = str_120|agi_30|int_21|cha_30|level(60) # Demonic
sold_skills_1 = knows_weapon_master_1|knows_ironflesh_1|knows_shield_1|knows_inventory_management_2|knows_power_throw_1 sold_skills_2 = knows_weapon_master_2|knows_ironflesh_2|knows_athletics_1|knows_power_strike_1|knows_power_draw_1|knows_shield_1|knows_power_throw_1|knows_horse_archery_2|knows_inventory_management_3 sold_skills_3 = knows_weapon_master_2|knows_ironflesh_3|knows_athletics_2|knows_power_strike_2|knows_power_draw_2|knows_shield_1|knows_tactics_1|knows_horse_archery_3|knows_power_throw_2|knows_inventory_management_3 sold_skills_4 = knows_weapon_master_3|knows_ironflesh_4|knows_athletics_3|knows_power_strike_3|knows_power_draw_3|knows_shield_2|knows_tactics_1|knows_horse_archery_4|knows_power_throw_3|knows_inventory_management_4 sold_skills_5 = knows_weapon_master_4|knows_ironflesh_5|knows_athletics_4|knows_power_strike_4|knows_power_draw_4|knows_shield_3|knows_tactics_2|knows_leadership_1|knows_horse_archery_5|knows_power_throw_4|knows_weapon_master_8|knows_inventory_management_4 sold_skills_6 = knows_weapon_master_4|knows_ironflesh_6|knows_athletics_5|knows_power_strike_5|knows_power_draw_5|knows_shield_4|knows_tactics_3|knows_leadership_2|knows_horse_archery_6|knows_power_throw_5|knows_weapon_master_9|knows_inventory_management_5 sold_skills_7 = knows_weapon_master_5|knows_ironflesh_7|knows_athletics_6|knows_power_strike_6|knows_power_draw_6|knows_shield_5|knows_tactics_4|knows_leadership_3|knows_horse_archery_7|knows_power_throw_6|knows_weapon_master_10|knows_inventory_management_5 sold_skills_8 = knows_weapon_master_6|knows_ironflesh_8|knows_athletics_7|knows_power_strike_7|knows_power_draw_7|knows_shield_5|knows_tactics_5|knows_leadership_4|knows_horse_archery_8|knows_power_throw_7|knows_weapon_master_10|knows_inventory_management_6 sold_skills_9 = knows_weapon_master_6|knows_ironflesh_9|knows_athletics_7|knows_power_strike_8|knows_power_draw_8|knows_shield_6|knows_tactics_5|knows_leadership_5|knows_horse_archery_9|knows_power_throw_8|knows_weapon_master_10|knows_inventory_management_6 sold_skills_0 = knows_weapon_master_6|knows_ironflesh_10|knows_athletics_7|knows_power_strike_9|knows_power_draw_9|knows_shield_6|knows_tactics_5|knows_leadership_5|knows_horse_archery_9|knows_power_throw_9|knows_weapon_master_10|knows_inventory_management_7
knows_lord_1 = knows_riding_3|knows_trade_2|knows_inventory_management_2|knows_tactics_4|knows_prisoner_management_4|knows_leadership_7
knows_warrior_npc = knows_weapon_master_2|knows_ironflesh_1|knows_athletics_1|knows_power_strike_2|knows_riding_2|knows_shield_1|knows_inventory_management_2 knows_merchant_npc = knows_riding_2|knows_trade_3|knows_inventory_management_3 #knows persuasion knows_tracker_npc = knows_weapon_master_1|knows_athletics_2|knows_spotting_2|knows_pathfinding_2|knows_tracking_2|knows_ironflesh_1|knows_inventory_management_2
lord_attrib = str_20|agi_20|int_20|cha_20|level(38)
knight_attrib_1 = str_15|agi_14|int_8|cha_16|level(22) knight_attrib_2 = str_16|agi_16|int_10|cha_18|level(26) knight_attrib_3 = str_18|agi_17|int_12|cha_20|level(30) knight_attrib_4 = str_19|agi_19|int_13|cha_22|level(35) knight_attrib_5 = str_20|agi_20|int_15|cha_25|level(41) knight_skills_1 = knows_riding_3|knows_ironflesh_2|knows_power_strike_3|knows_athletics_1|knows_tactics_2|knows_prisoner_management_1|knows_leadership_3 knight_skills_2 = knows_riding_4|knows_ironflesh_3|knows_power_strike_4|knows_athletics_2|knows_tactics_3|knows_prisoner_management_2|knows_leadership_5 knight_skills_3 = knows_riding_5|knows_ironflesh_4|knows_power_strike_5|knows_athletics_3|knows_tactics_4|knows_prisoner_management_2|knows_leadership_6 knight_skills_4 = knows_riding_6|knows_ironflesh_5|knows_power_strike_6|knows_athletics_4|knows_tactics_5|knows_prisoner_management_3|knows_leadership_7 knight_skills_5 = knows_riding_7|knows_ironflesh_6|knows_power_strike_7|knows_athletics_5|knows_tactics_6|knows_prisoner_management_3|knows_leadership_9
#These face codes are generated by the in-game face generator. #Enable edit mode and press ctrl+E in face generator screen to obtain face codes.
reserved = 0
no_scene = 0
swadian_face_younger_1 = 0x0000000000000001124000000020000000000000001c00800000000000000000 swadian_face_young_1 = 0x0000000400000001124000000020000000000000001c00800000000000000000 swadian_face_middle_1 = 0x0000000800000001124000000020000000000000001c00800000000000000000 swadian_face_old_1 = 0x0000000d00000001124000000020000000000000001c00800000000000000000 swadian_face_older_1 = 0x0000000fc0000001124000000020000000000000001c00800000000000000000
swadian_face_younger_2 = 0x00000000000062c76ddcdf7feefbffff00000000001efdbc0000000000000000 swadian_face_young_2 = 0x00000003c00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 swadian_face_middle_2 = 0x00000007c00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 swadian_face_old_2 = 0x0000000bc00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 swadian_face_older_2 = 0x0000000fc00062c76ddcdf7feefbffff00000000001efdbc0000000000000000
vaegir_face_younger_1 = 0x0000000000000001124000000020000000000000001c00800000000000000000 vaegir_face_young_1 = 0x0000000400000001124000000020000000000000001c00800000000000000000 vaegir_face_middle_1 = 0x0000000800000001124000000020000000000000001c00800000000000000000 vaegir_face_old_1 = 0x0000000d00000001124000000020000000000000001c00800000000000000000 vaegir_face_older_1 = 0x0000000fc0000001124000000020000000000000001c00800000000000000000
vaegir_face_younger_2 = 0x000000003f00230c4deeffffffffffff00000000001efff90000000000000000 vaegir_face_young_2 = 0x00000003bf00230c4deeffffffffffff00000000001efff90000000000000000 vaegir_face_middle_2 = 0x00000007bf00230c4deeffffffffffff00000000001efff90000000000000000 vaegir_face_old_2 = 0x0000000cbf00230c4deeffffffffffff00000000001efff90000000000000000 vaegir_face_older_2 = 0x0000000ff100230c4deeffffffffffff00000000001efff90000000000000000
khergit_face_younger_1 = 0x0000000009003109207000000000000000000000001c80470000000000000000 khergit_face_young_1 = 0x00000003c9003109207000000000000000000000001c80470000000000000000 khergit_face_middle_1 = 0x00000007c9003109207000000000000000000000001c80470000000000000000 khergit_face_old_1 = 0x0000000b89003109207000000000000000000000001c80470000000000000000 khergit_face_older_1 = 0x0000000fc9003109207000000000000000000000001c80470000000000000000
khergit_face_younger_2 = 0x000000003f0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000 khergit_face_young_2 = 0x00000003bf0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000 khergit_face_middle_2 = 0x000000077f0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000 khergit_face_old_2 = 0x0000000b3f0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000 khergit_face_older_2 = 0x0000000fff0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000
nord_face_younger_1 = 0x0000000000000001124000000020000000000000001c00800000000000000000 nord_face_young_1 = 0x0000000400000001124000000020000000000000001c00800000000000000000 nord_face_middle_1 = 0x0000000800000001124000000020000000000000001c00800000000000000000 nord_face_old_1 = 0x0000000d00000001124000000020000000000000001c00800000000000000000 nord_face_older_1 = 0x0000000fc0000001124000000020000000000000001c00800000000000000000
nord_face_younger_2 = 0x00000000310023084deeffffffffffff00000000001efff90000000000000000 nord_face_young_2 = 0x00000003b10023084deeffffffffffff00000000001efff90000000000000000 nord_face_middle_2 = 0x00000008310023084deeffffffffffff00000000001efff90000000000000000 nord_face_old_2 = 0x0000000c710023084deeffffffffffff00000000001efff90000000000000000 nord_face_older_2 = 0x0000000ff10023084deeffffffffffff00000000001efff90000000000000000
rhodok_face_younger_1 = 0x0000000009002003140000000000000000000000001c80400000000000000000 rhodok_face_young_1 = 0x0000000449002003140000000000000000000000001c80400000000000000000 rhodok_face_middle_1 = 0x0000000849002003140000000000000000000000001c80400000000000000000 rhodok_face_old_1 = 0x0000000cc9002003140000000000000000000000001c80400000000000000000 rhodok_face_older_1 = 0x0000000fc9002003140000000000000000000000001c80400000000000000000
rhodok_face_younger_2 = 0x00000000000062c76ddcdf7feefbffff00000000001efdbc0000000000000000 rhodok_face_young_2 = 0x00000003c00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 rhodok_face_middle_2 = 0x00000007c00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 rhodok_face_old_2 = 0x0000000bc00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 rhodok_face_older_2 = 0x0000000fc00062c76ddcdf7feefbffff00000000001efdbc0000000000000000
man_face_younger_1 = 0x0000000000000001124000000020000000000000001c00800000000000000000 man_face_young_1 = 0x0000000400000001124000000020000000000000001c00800000000000000000 man_face_middle_1 = 0x0000000800000001124000000020000000000000001c00800000000000000000 man_face_old_1 = 0x0000000d00000001124000000020000000000000001c00800000000000000000 man_face_older_1 = 0x0000000fc0000001124000000020000000000000001c00800000000000000000
man_face_younger_2 = 0x000000003f0052064deeffffffffffff00000000001efff90000000000000000 man_face_young_2 = 0x00000003bf0052064deeffffffffffff00000000001efff90000000000000000 man_face_middle_2 = 0x00000007bf0052064deeffffffffffff00000000001efff90000000000000000 man_face_old_2 = 0x0000000bff0052064deeffffffffffff00000000001efff90000000000000000 man_face_older_2 = 0x0000000fff0052064deeffffffffffff00000000001efff90000000000000000
merchant_face_1 = man_face_young_1 merchant_face_2 = man_face_older_2
woman_face_1 = 0x0000000000000001000000000000000000000000001c00000000000000000000 woman_face_2 = 0x00000003bf0030067ff7fbffefff6dff00000000001f6dbf0000000000000000
swadian_woman_face_1 = 0x0000000180102006124925124928924900000000001c92890000000000000000 swadian_woman_face_2 = 0x00000001bf1000061db6d75db6b6dbad00000000001c92890000000000000000
khergit_woman_face_1 = 0x0000000180103006124925124928924900000000001c92890000000000000000 khergit_woman_face_2 = 0x00000001af1030025b6eb6dd6db6dd6d00000000001eedae0000000000000000
refugee_face1 = woman_face_1 refugee_face2 = woman_face_2 girl_face1 = woman_face_1 girl_face2 = woman_face_2
mercenary_face_1 = 0x0000000000000000000000000000000000000000001c00000000000000000000 mercenary_face_2 = 0x0000000cff00730b6db6db6db7fbffff00000000001efffe0000000000000000
vaegir_face1 = vaegir_face_young_1 vaegir_face2 = vaegir_face_older_2
bandit_face1 = man_face_young_1 bandit_face2 = man_face_older_2
Last edited by treebeard on Thu Jun 02, 2011 8:17 pm; edited 2 times in total | |
| | | treebeard Nemisis
Posts : 740 Join date : 2010-09-12 Age : 51 Location : CA
| Subject: Re: Re-defining troops skills and attributes and face codes for troops Thu Jun 02, 2011 7:05 pm | |
| What we post in this thread is:- Proposals/Definitions for skill constants and attribute constants that should be used for each faction's troops.
- Proposals/Definitions for face codes that should be used for each faction's troops, lords, ladies, knights.
- Proposals/Definitions for Lord skills and attributes:
There should be three different types for the lords/ladies/etc of each faction; one for low ranking Lords, one for medium ranking Lords and one for High ranking Lords.
- Proposals/Definitions for knighthood order skills and attributes.
Required reading before posting: Read this spoiler and copy it to a text file that you then load into notepad++ or an editor of your choice: - Spoiler:
#Skills knows_common = knows_trade_2|knows_prisoner_management_1 def_attrib_multiplayer = str_14 | agi_14 | int_4 | cha_4
knows_steward = knows_tactics_1|knows_leadership_1|knows_engineer_1 merchant_attrib = str_3 | agi_12 | int_9 | cha_6 def_attrib = str_15 | agi_12 | int_9 | cha_6 steward_attrib = str_15| agi_12 | int_12 | cha_12 |level(10)
sold_attrib_1f = str_8|agi_5|int_4|cha_4|level(1) sold_attrib_2f = str_10|agi_6|int_5|cha_4|level(5) sold_attrib_3f = str_14|agi_10|int_6|cha_5|level(10) sold_attrib_4f = str_18|agi_12|int_6|cha_6|level(15) sold_attrib_5f = str_22|agi_14|int_6|cha_6|level(20) sold_attrib_6f = str_26|agi_16|int_9|cha_9|level(30) sold_attrib_7f = str_30|agi_18|int_9|cha_12|level(40) sold_attrib_8f = str_34|agi_20|int_12|cha_15|level(45) sold_attrib_9f = str_38|agi_22|int_12|cha_15|level(50) sold_attrib_10f = str_40|agi_24|int_12|cha_12|level(55)
sold_attrib_1d = str_8|agi_8|int_4|cha_4|level(1) sold_attrib_2d = str_10|agi_10|int_5|cha_4|level(5) sold_attrib_3d = str_12|agi_12|int_6|cha_5|level(10) sold_attrib_4d = str_15|agi_15|int_6|cha_6|level(15) sold_attrib_5d = str_18|agi_18|int_6|cha_6|level(20) sold_attrib_6d = str_21|agi_21|int_9|cha_9|level(30) sold_attrib_7d = str_24|agi_24|int_9|cha_12|level(40) sold_attrib_8d = str_27|agi_27|int_12|cha_15|level(45) sold_attrib_9d = str_30|agi_30|int_12|cha_15|level(50) sold_attrib_10d = str_36|agi_34|int_14|cha_12|level(55) sold_attrib_11d = str_40|agi_36|int_18|cha_24|level(55) # Specials sold_attrib_12d = str_60|agi_38|int_22|cha_30|level(60) # Special
sold_attrib_1 = str_5|agi_5|int_4|cha_4|level(1) sold_attrib_2 = str_6|agi_6|int_5|cha_4|level(5) sold_attrib_3 = str_9|agi_9|int_6|cha_5|level(10) sold_attrib_4 = str_12|agi_9|int_6|cha_6|level(15) sold_attrib_5 = str_15|agi_12|int_6|cha_6|level(20) sold_attrib_6 = str_18|agi_12|int_9|cha_9|level(30) sold_attrib_7 = str_21|agi_15|int_9|cha_12|level(40) sold_attrib_8 = str_24|agi_15|int_12|cha_15|level(45) sold_attrib_85 = str_26|agi_15|int_12|cha_15|level(47) sold_attrib_9 = str_27|agi_18|int_12|cha_15|level(50) sold_attrib_10 = str_30|agi_21|int_27|cha_24|level(55) # Noldor sold_attrib_11 = str_40|agi_24|int_24|cha_24|level(60) # Specials sold_attrib_11a = str_40|agi_24|int_24|cha_24|level(60) # Specials sold_attrib_12 = str_60|agi_24|int_12|cha_30|level(60) # Special
sold_attrib_20 = str_60|agi_3|int_6|cha_3|level(20) #Minor Undead sold_attrib_21 = str_120|agi_12|int_12|cha_12|level(60) #major Undead sold_attrib_22 = str_120|agi_30|int_21|cha_30|level(60) # Demonic
sold_skills_1 = knows_weapon_master_1|knows_ironflesh_1|knows_shield_1|knows_inventory_management_2|knows_power_throw_1 sold_skills_2 = knows_weapon_master_2|knows_ironflesh_2|knows_athletics_1|knows_power_strike_1|knows_power_draw_1|knows_shield_1|knows_power_throw_1|knows_horse_archery_2|knows_inventory_management_3 sold_skills_3 = knows_weapon_master_2|knows_ironflesh_3|knows_athletics_2|knows_power_strike_2|knows_power_draw_2|knows_shield_1|knows_tactics_1|knows_horse_archery_3|knows_power_throw_2|knows_inventory_management_3 sold_skills_4 = knows_weapon_master_3|knows_ironflesh_4|knows_athletics_3|knows_power_strike_3|knows_power_draw_3|knows_shield_2|knows_tactics_1|knows_horse_archery_4|knows_power_throw_3|knows_inventory_management_4 sold_skills_5 = knows_weapon_master_4|knows_ironflesh_5|knows_athletics_4|knows_power_strike_4|knows_power_draw_4|knows_shield_3|knows_tactics_2|knows_leadership_1|knows_horse_archery_5|knows_power_throw_4|knows_weapon_master_8|knows_inventory_management_4 sold_skills_6 = knows_weapon_master_4|knows_ironflesh_6|knows_athletics_5|knows_power_strike_5|knows_power_draw_5|knows_shield_4|knows_tactics_3|knows_leadership_2|knows_horse_archery_6|knows_power_throw_5|knows_weapon_master_9|knows_inventory_management_5 sold_skills_7 = knows_weapon_master_5|knows_ironflesh_7|knows_athletics_6|knows_power_strike_6|knows_power_draw_6|knows_shield_5|knows_tactics_4|knows_leadership_3|knows_horse_archery_7|knows_power_throw_6|knows_weapon_master_10|knows_inventory_management_5 sold_skills_8 = knows_weapon_master_6|knows_ironflesh_8|knows_athletics_7|knows_power_strike_7|knows_power_draw_7|knows_shield_5|knows_tactics_5|knows_leadership_4|knows_horse_archery_8|knows_power_throw_7|knows_weapon_master_10|knows_inventory_management_6 sold_skills_9 = knows_weapon_master_6|knows_ironflesh_9|knows_athletics_7|knows_power_strike_8|knows_power_draw_8|knows_shield_6|knows_tactics_5|knows_leadership_5|knows_horse_archery_9|knows_power_throw_8|knows_weapon_master_10|knows_inventory_management_6 sold_skills_0 = knows_weapon_master_6|knows_ironflesh_10|knows_athletics_7|knows_power_strike_9|knows_power_draw_9|knows_shield_6|knows_tactics_5|knows_leadership_5|knows_horse_archery_9|knows_power_throw_9|knows_weapon_master_10|knows_inventory_management_7
knows_lord_1 = knows_riding_3|knows_trade_2|knows_inventory_management_2|knows_tactics_4|knows_prisoner_management_4|knows_leadership_7
knows_warrior_npc = knows_weapon_master_2|knows_ironflesh_1|knows_athletics_1|knows_power_strike_2|knows_riding_2|knows_shield_1|knows_inventory_management_2 knows_merchant_npc = knows_riding_2|knows_trade_3|knows_inventory_management_3 #knows persuasion knows_tracker_npc = knows_weapon_master_1|knows_athletics_2|knows_spotting_2|knows_pathfinding_2|knows_tracking_2|knows_ironflesh_1|knows_inventory_management_2
lord_attrib = str_20|agi_20|int_20|cha_20|level(38)
knight_attrib_1 = str_15|agi_14|int_8|cha_16|level(22) knight_attrib_2 = str_16|agi_16|int_10|cha_18|level(26) knight_attrib_3 = str_18|agi_17|int_12|cha_20|level(30) knight_attrib_4 = str_19|agi_19|int_13|cha_22|level(35) knight_attrib_5 = str_20|agi_20|int_15|cha_25|level(41) knight_skills_1 = knows_riding_3|knows_ironflesh_2|knows_power_strike_3|knows_athletics_1|knows_tactics_2|knows_prisoner_management_1|knows_leadership_3 knight_skills_2 = knows_riding_4|knows_ironflesh_3|knows_power_strike_4|knows_athletics_2|knows_tactics_3|knows_prisoner_management_2|knows_leadership_5 knight_skills_3 = knows_riding_5|knows_ironflesh_4|knows_power_strike_5|knows_athletics_3|knows_tactics_4|knows_prisoner_management_2|knows_leadership_6 knight_skills_4 = knows_riding_6|knows_ironflesh_5|knows_power_strike_6|knows_athletics_4|knows_tactics_5|knows_prisoner_management_3|knows_leadership_7 knight_skills_5 = knows_riding_7|knows_ironflesh_6|knows_power_strike_7|knows_athletics_5|knows_tactics_6|knows_prisoner_management_3|knows_leadership_9
#These face codes are generated by the in-game face generator. #Enable edit mode and press ctrl+E in face generator screen to obtain face codes.
reserved = 0
no_scene = 0
swadian_face_younger_1 = 0x0000000000000001124000000020000000000000001c00800000000000000000 swadian_face_young_1 = 0x0000000400000001124000000020000000000000001c00800000000000000000 swadian_face_middle_1 = 0x0000000800000001124000000020000000000000001c00800000000000000000 swadian_face_old_1 = 0x0000000d00000001124000000020000000000000001c00800000000000000000 swadian_face_older_1 = 0x0000000fc0000001124000000020000000000000001c00800000000000000000
swadian_face_younger_2 = 0x00000000000062c76ddcdf7feefbffff00000000001efdbc0000000000000000 swadian_face_young_2 = 0x00000003c00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 swadian_face_middle_2 = 0x00000007c00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 swadian_face_old_2 = 0x0000000bc00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 swadian_face_older_2 = 0x0000000fc00062c76ddcdf7feefbffff00000000001efdbc0000000000000000
vaegir_face_younger_1 = 0x0000000000000001124000000020000000000000001c00800000000000000000 vaegir_face_young_1 = 0x0000000400000001124000000020000000000000001c00800000000000000000 vaegir_face_middle_1 = 0x0000000800000001124000000020000000000000001c00800000000000000000 vaegir_face_old_1 = 0x0000000d00000001124000000020000000000000001c00800000000000000000 vaegir_face_older_1 = 0x0000000fc0000001124000000020000000000000001c00800000000000000000
vaegir_face_younger_2 = 0x000000003f00230c4deeffffffffffff00000000001efff90000000000000000 vaegir_face_young_2 = 0x00000003bf00230c4deeffffffffffff00000000001efff90000000000000000 vaegir_face_middle_2 = 0x00000007bf00230c4deeffffffffffff00000000001efff90000000000000000 vaegir_face_old_2 = 0x0000000cbf00230c4deeffffffffffff00000000001efff90000000000000000 vaegir_face_older_2 = 0x0000000ff100230c4deeffffffffffff00000000001efff90000000000000000
khergit_face_younger_1 = 0x0000000009003109207000000000000000000000001c80470000000000000000 khergit_face_young_1 = 0x00000003c9003109207000000000000000000000001c80470000000000000000 khergit_face_middle_1 = 0x00000007c9003109207000000000000000000000001c80470000000000000000 khergit_face_old_1 = 0x0000000b89003109207000000000000000000000001c80470000000000000000 khergit_face_older_1 = 0x0000000fc9003109207000000000000000000000001c80470000000000000000
khergit_face_younger_2 = 0x000000003f0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000 khergit_face_young_2 = 0x00000003bf0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000 khergit_face_middle_2 = 0x000000077f0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000 khergit_face_old_2 = 0x0000000b3f0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000 khergit_face_older_2 = 0x0000000fff0061cd6d7ffbdf9df6ebee00000000001ffb7f0000000000000000
nord_face_younger_1 = 0x0000000000000001124000000020000000000000001c00800000000000000000 nord_face_young_1 = 0x0000000400000001124000000020000000000000001c00800000000000000000 nord_face_middle_1 = 0x0000000800000001124000000020000000000000001c00800000000000000000 nord_face_old_1 = 0x0000000d00000001124000000020000000000000001c00800000000000000000 nord_face_older_1 = 0x0000000fc0000001124000000020000000000000001c00800000000000000000
nord_face_younger_2 = 0x00000000310023084deeffffffffffff00000000001efff90000000000000000 nord_face_young_2 = 0x00000003b10023084deeffffffffffff00000000001efff90000000000000000 nord_face_middle_2 = 0x00000008310023084deeffffffffffff00000000001efff90000000000000000 nord_face_old_2 = 0x0000000c710023084deeffffffffffff00000000001efff90000000000000000 nord_face_older_2 = 0x0000000ff10023084deeffffffffffff00000000001efff90000000000000000
rhodok_face_younger_1 = 0x0000000009002003140000000000000000000000001c80400000000000000000 rhodok_face_young_1 = 0x0000000449002003140000000000000000000000001c80400000000000000000 rhodok_face_middle_1 = 0x0000000849002003140000000000000000000000001c80400000000000000000 rhodok_face_old_1 = 0x0000000cc9002003140000000000000000000000001c80400000000000000000 rhodok_face_older_1 = 0x0000000fc9002003140000000000000000000000001c80400000000000000000
rhodok_face_younger_2 = 0x00000000000062c76ddcdf7feefbffff00000000001efdbc0000000000000000 rhodok_face_young_2 = 0x00000003c00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 rhodok_face_middle_2 = 0x00000007c00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 rhodok_face_old_2 = 0x0000000bc00062c76ddcdf7feefbffff00000000001efdbc0000000000000000 rhodok_face_older_2 = 0x0000000fc00062c76ddcdf7feefbffff00000000001efdbc0000000000000000
man_face_younger_1 = 0x0000000000000001124000000020000000000000001c00800000000000000000 man_face_young_1 = 0x0000000400000001124000000020000000000000001c00800000000000000000 man_face_middle_1 = 0x0000000800000001124000000020000000000000001c00800000000000000000 man_face_old_1 = 0x0000000d00000001124000000020000000000000001c00800000000000000000 man_face_older_1 = 0x0000000fc0000001124000000020000000000000001c00800000000000000000
man_face_younger_2 = 0x000000003f0052064deeffffffffffff00000000001efff90000000000000000 man_face_young_2 = 0x00000003bf0052064deeffffffffffff00000000001efff90000000000000000 man_face_middle_2 = 0x00000007bf0052064deeffffffffffff00000000001efff90000000000000000 man_face_old_2 = 0x0000000bff0052064deeffffffffffff00000000001efff90000000000000000 man_face_older_2 = 0x0000000fff0052064deeffffffffffff00000000001efff90000000000000000
merchant_face_1 = man_face_young_1 merchant_face_2 = man_face_older_2
woman_face_1 = 0x0000000000000001000000000000000000000000001c00000000000000000000 woman_face_2 = 0x00000003bf0030067ff7fbffefff6dff00000000001f6dbf0000000000000000
swadian_woman_face_1 = 0x0000000180102006124925124928924900000000001c92890000000000000000 swadian_woman_face_2 = 0x00000001bf1000061db6d75db6b6dbad00000000001c92890000000000000000
khergit_woman_face_1 = 0x0000000180103006124925124928924900000000001c92890000000000000000 khergit_woman_face_2 = 0x00000001af1030025b6eb6dd6db6dd6d00000000001eedae0000000000000000
refugee_face1 = woman_face_1 refugee_face2 = woman_face_2 girl_face1 = woman_face_1 girl_face2 = woman_face_2
mercenary_face_1 = 0x0000000000000000000000000000000000000000001c00000000000000000000 mercenary_face_2 = 0x0000000cff00730b6db6db6db7fbffff00000000001efffe0000000000000000
vaegir_face1 = vaegir_face_young_1 vaegir_face2 = vaegir_face_older_2
bandit_face1 = man_face_young_1 bandit_face2 = man_face_older_2
undead_face1 = 0x0000000000000000000000000000000000000000000000000000000000000000 undead_face2 = 0x000000003f000493000000000000000000000000000000000000000000000000
The spoiler contains the current soldier skill and attribute and face code constants that is in PoP4 module_troops. These are then used for the troops. We should refine this spoiler segment so it becomes a well structured set of constants upon which it is easy to build faction troops who are clearly defined to address their strengths and weaknesses as per the lore and to define their facial looks as per the lore. Post suggestions and ideas in this thread | |
| | | noosers Nemisis
Posts : 1196 Join date : 2009-03-23 Location : Austria, no cangaroo´s - polar bears!
| Subject: Re: Re-defining troops skills and attributes and face codes for troops Sat Jun 04, 2011 5:19 am | |
| Keep the (wp)[<-- rule of thumb: 10*troops level +/- a bit] and attributes generalized for all factions as it currently is - based on levels and with female/male difference
Only invent more skills for the diversity, if you must and are a masochist.
Keep in mind the current way it´s handled is pretty awesome. Clean and efficient. And well balanced as well - no faction is overpowered, every faction can compete.
If you come along and change around the stats and skills for every single troop all you do is cause a ton of confusion upon you. Noone will notice wether or not the red milita has got 11 STR and the blue milita has got 9 str. Noone cares.
Equipment is far more important!!! The Rule of Cool >>>> Equipment effectiveness > Stats. The best example for this are companions, how people equip them and certain units which come/came without a granted helmet.
So if you want to change anything at all for the bulk soldiers, TB, do it in the header -if you must. Keep in mind anything you add to complicate will complicate your coders life^2. Trust me. I´ve sieved through the damn file more than enough till I got the purified .py file which was a heaven sent, even if it was still messy.
What´s easily dooable though is inventing new declarations in the header or a new section and use them for fresh troops. (If you need special snakies or demons or similar) But those should be well covered as there´s more than enough diversity by now.
And unless Pendor introduced a special soldier breeding programme or feeds steroids to its citizens, stats shouldn´t change much. Skills are a different pair of shoes though.
Really important are the face codes and the equipment and the changes to Lords so you should focus on them. Why? Because each one´s a hell of work to do and affects exactly 1 freaking unit which isn´t affecting game balance as much as awarding e.g Milita units Noldor attributes and skills.
The biggest advantage of the current system is: a) it works well enough for anyone to really notice he rules a bunch of clones b) is balanced c) it works well enough for anyone to really notice he rules a bunch of clones | |
| | | Mordred Insidious Diety
Posts : 2523 Join date : 2009-07-17
| Subject: Re: Re-defining troops skills and attributes and face codes for troops Sat Jun 04, 2011 5:26 am | |
| So what exactly do you need from me for this?
1. Precise numbers for each troop, showing the exact distribution of stats / skills / proficiencies? This is possible, as we were going to give each tier a certain number and then distribute as if "buy points" like some RPGs.
2. Ranges, so Agility 20-24, Str 19-21 etc?
3. Generalisations. "High agility, average everything else", "good strength, high agility, low ironflesh" etc
I suspect that if we can define the generalisations (which is what that code does if I understood it right) then we need to come up with the average strength of each tier, and then manually tweak them for the specialisations?
ie: Average Tier 1 Ranged = 1 PD, 13 Str, 12 Agi then if we add the specialisation it would be "Average Tier 1 Ranged +1PD" for Nohseru archers? The troop trees are all arranged in 7 tiers, and reletively balanced in their distribution so this would work well. | |
| | | treebeard Nemisis
Posts : 740 Join date : 2010-09-12 Age : 51 Location : CA
| Subject: Re: Re-defining troops skills and attributes and face codes for troops Sat Jun 04, 2011 9:17 am | |
| - Mordred wrote:
- So what exactly do you need from me for this?
1. Precise numbers for each troop, showing the exact distribution of stats / skills / proficiencies? This is possible, as we were going to give each tier a certain number and then distribute as if "buy points" like some RPGs.
2. Ranges, so Agility 20-24, Str 19-21 etc?
3. Generalisations. "High agility, average everything else", "good strength, high agility, low ironflesh" etc
I suspect that if we can define the generalisations (which is what that code does if I understood it right) then we need to come up with the average strength of each tier, and then manually tweak them for the specialisations?
ie: Average Tier 1 Ranged = 1 PD, 13 Str, 12 Agi then if we add the specialisation it would be "Average Tier 1 Ranged +1PD" for Nohseru archers? The troop trees are all arranged in 7 tiers, and reletively balanced in their distribution so this would work well. 1. Precise numbers are good if possible. If not, then ranges are good too. I think Noosers refers to the top before the part I had in the spoiler: - Spoiler:
def wp(x): n = 0 r = 10 + int(x / 10) # n |= wp_one_handed(x + random.randrange(r)) # n |= wp_two_handed(x + random.randrange(r)) # n |= wp_polearm(x + random.randrange(r)) # n |= wp_archery(x + random.randrange(r)) # n |= wp_crossbow(x + random.randrange(r)) # n |= wp_throwing(x + random.randrange(r)) n |= wp_one_handed(x) n |= wp_two_handed(x) n |= wp_polearm(x) n |= wp_archery(x) n |= wp_crossbow(x) n |= wp_throwing(x) return n
def wpe(m,a,c,t): n = 0 n |= wp_one_handed(m) n |= wp_two_handed(m) n |= wp_polearm(m) n |= wp_archery(a) n |= wp_crossbow(c) n |= wp_throwing(t) return n
def wpex(o,w,p,a,c,t): n = 0 n |= wp_one_handed(o) n |= wp_two_handed(w) n |= wp_polearm(p) n |= wp_archery(a) n |= wp_crossbow(c) n |= wp_throwing(t) return n def wp_melee(x): n = 0 r = 10 + int(x / 10) # n |= wp_one_handed(x + random.randrange(r)) # n |= wp_two_handed(x + random.randrange(r)) # n |= wp_polearm(x + random.randrange(r)) n |= wp_one_handed(x + 20) n |= wp_two_handed(x) n |= wp_polearm(x + 10) return n
Here we have actual python code to declare how we want to give out weapon proficiencies. Currently each troop is just given wp(x). That means that the troop gets x proficiency in all weapons. What we can do instead is to use wpe(m,a,c,t) where m = melee, a = archery, c = crossbow and t = throwing. A soldier would then get for example: wpe(100,50,0,0) which means it has 100 in melee weapons, 50 in archery, etc. The most specialized handling is the wpex(o,w,p,a,c,t) where o = one handed, w = two handed, p = polearm, a = archery, c = crossbows and t = throwing. So for each troop we can actually declare their exact skills. Since the troops will use equipment, and the troops do not pick up other weapons on the battle field, it is ok to use the general "make all skills the same", but an archer should for example not be as trained in melee as a melee unit. When the archer switches to melee he should be at a disadvantage, all other things taken into account. The archer does have different armor and melee weapon, true but also a different proficiency level plays a role here. We can nuance the troops at least there. Troops who have a primary and a secondary weapon should have different skills in the primary and secondary weapon. Also for attributes and skills it would be good to make them more faction specific instead of all troops using the same. That way we have a lower tier soldier of one faction who is running faster than a higher tier soldier of another faction, because the former faction was specialized in runnning (Athletics) for example. The same can be true for riding, shield handling, power throw, iron skin, etc. If we look at the actual python code we see that at one point we had room for randomization in there. It was based on (10 + int divided by 10). So there was a random range that said: assign what the troop definition states for the weapon proficiency and then add {10 to 10+[int/10]}. That has been passivated though (commented out). There is room to do some more manipulation with the input values for weapon proficiencies but I think it is enough to just start using the wpe(m,a,c,t) instead of wp(x) for the troops. Then we have the equipment as Noosers points out. That is definitely a major factor too. How ell armoured and how well armed a troop is will play a major role on the battle field capabilities of the unit. But it should not be the only difference between troops on the battlefield in my opinion. Also, factions who have high int (representing more training in this case) should get a bonus to their skills, so we can re-introduce a formula that takes the input value [e.g. wpe(100,50,0,0)] and adds some int-based bonus to the input values. In the example it would add something to the melee of 100. One way would be to do this: weapon proficiency value * (int - /10. If troops have more than 8 in int they get + 10 points for each int over 8. If they have less than int 8 they get 10 subtracted from each int below 8. Then we add a cap that the minimum weapon proficiency is 0. That will make troops different by using a different int value between tiers and factions. All this can of course be done if you just put in more precise values instead of a base value, so having extra formulas may be redundant. Extra formulas are good if they are (small but flavorful and well adapted) randomizing ranges though. It's not that hard to go through the troops file. As long as there is a good design plan for each faction and within it each tier, we can make the implementation to take into account the strengths and weaknesses of each unit of each faction (both normal soldiers and heroes [lords, companions, special npc]). For assignments one person can do changes (- I can do them for example) or we split up the implementation between a couple of coders where one coder does some factions and the other coder does the other factions. As long as the design document for the troops of the factions is clear, it is easy and straightforward to implement it. During this implementation, we can change the existing constants to make them better fit the strengths and weaknesses of the factions, and/or we can use the existing ones, but read them carefully and then decide which of the existing ones fit best for each troop. Especially companions should have a more defined weapon proficiency set. Look at Rayne: He starts at wp(190). It would be much nicer to actually use the more defied wpex function to declare each of his weapon proficiencies. That adds much more nuance and specialty to the companions whom the player equips. So, I'd like to see differences in skills, stats, and proficiencies (and equipment) for each faction. And within in the factions we use the tiered approach where these values increase within higher tiers. | |
| | | Mordred Insidious Diety
Posts : 2523 Join date : 2009-07-17
| Subject: Re: Re-defining troops skills and attributes and face codes for troops Sat Jun 04, 2011 11:08 am | |
| Ok, then what I suggest is that we come up with a base set of skills, which are the average for a normal person for each of the seven tiers.
From here we decide the faction strength's / weaknesses which are applied to the base soldier. So for example all Melitine troops would recieve +1 Riding and -1 to Athletics.
We then determine the individual line bonus's, so a Melitine Horseman would have +10 Polearms, -10 Crossbows, a Melitine Guard has +10 Polearms, +1 Ironflesh, +1 Shield, -1 Power Strike.
Finally we allocate bonuses for additional troops who need them (to differentiate between Santara Besiegers and Sharpshooters for example) who are of the same tier and line, but with different specialties.
We are then left with : Base Tier (+ Faction Attributes + Line Attributes + Individual Attributes) = Each individual soldier.
This should mean that things are well balanced, as each soldier begins with the same standard stats, and then we need to make sure that the bonus's for each step are balanced with each other too. This also reduces redundant work, for example we do not need ot exactly define the difference between an Imperial Guard and an Imperial Watchman because the applied boni do it for us.
Example;
Base Soldier : 10 Strength, 10 Agility, 9 Intelligence, 2 Ironflesh, 2 Power Draw, 2 Power Strike, 1 Athletics, 1 Riding, 1 Shield, 50 in all proficiencies.
Melitine Attributes : +20 Polearms, -20 One Handed Weapon, +1 Riding, -1 Athletics Nohseru Attributes : +10 Throwing, +1 Agi, -1 Str, +1 Athletics, -1 Ironflesh
Guard Attributes : +10 Polearms, +1 Ironflesh, +1 Shield, -1 Power Strike Watch Attributes : +10 Archery, -10 1 Handed, +2 Ironflesh, -1 Power Draw Raptor Attributes : +30 Pole Arm, +1 Agi, -1 Ironflesh, +1 Athletics Sentinel Attributes : +10 1 Handed, +10 Throwing, +1 Shield, +1 Athletics
Assuming all are the same tier) Therefore a Town Guard has 10 Str, 10 Agi, 9 Int, 3 Ironflesh, 2 PD, 1 PS, 0 Ath, 2 Riding, 2 Shield, 80 Polearms, 30 One Handed And a Town Watch has 10 Str, 10 Agi, 9 Int, 4 Ironflesh, 1PD, 1PS, 0 Ath, 2 Riding, 1 Shield, 60 Archery, 70 Polearms And a Raptor has 9 Str, 11 Agi, 9 Int, 0 Ironflesh, 2PD, 2PS, 3 Athletics, 1 Riding, 1 Shield, 60 Throwing, 80 Polearms And a Sentinel has 9 Str, 10 Agi, 9 Int, 1 Ironflesh, 2PD, 2PS, 3 Athletics, 1 Riding, 2 Shield, 70 Throwing, 60 1 Handed
| |
| | | treebeard Nemisis
Posts : 740 Join date : 2010-09-12 Age : 51 Location : CA
| Subject: Re: Re-defining troops skills and attributes and face codes for troops Sat Jun 04, 2011 11:28 am | |
| Good design approach, Mordred. | |
| | | Sponsored content
| Subject: Re: Re-defining troops skills and attributes and face codes for troops | |
| |
| | | | Re-defining troops skills and attributes and face codes for troops | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |