NE Sieges & Scenes Pack - get a second ladder for your sieges! 9th Jan. 2013

Users who are viewing this thread

I have doubts about adding ladders to archer towers. This creates a shortcut for attacking infantry to defender's archers, a shortcut that defender AI is unlikely to properly defend.
 
Lav said:
I have doubts about adding ladders to archer towers. This creates a shortcut for attacking infantry to defender's archers, a shortcut that defender AI is unlikely to properly defend.

That is quite right.
I try to 'balance' the Archers entry points when the situation requires it. Put more people on the tower to help defending it.

And about Siege Tower+Ladders?
 
I'd rather see multiple siege towers... which is actually one of my current projects. Unfortunately, there's still a lot of work, even though the roadmap is quite clear.

Until then, you could just modify the script to prevent player from ordering troops until the belfry has been moved to position. Or add an AI barrier in front of the ladder which will disappear once the belfry is positioned. Or treat siege ladders as belfry platform, that is place them vertically at the start of the mission, and once belfry platform starts rotating to position, ladders start rotating to position as well (that will be a bit more difficult with ladders as the belfry platform is always rotated by 90 degrees, while each ladder will have it's own angle, but still perfectly possible).

UPDATE.

Actually the last option is probably the easiest, only two scripts must be modified for it to work. Here's the relevant code:

Code:
  # script_siege_init_ai_and_belfry
  # Input: none
  # Output: none (required for siege mission templates)
  ("siege_init_ai_and_belfry",
   [(assign, "$cur_belfry_pos", 50),
    (assign, ":cur_belfry_object_pos", slot_scene_belfry_props_begin),
    (store_current_scene, ":cur_scene"),
    #Collecting belfry objects
    (try_for_range, ":i_belfry_instance", 0, 3),
      (scene_prop_get_instance, ":belfry_object", "spr_belfry_a", ":i_belfry_instance"),
      (ge, ":belfry_object", 0),
      (scene_set_slot, ":cur_scene", ":cur_belfry_object_pos", ":belfry_object"),
      (val_add, ":cur_belfry_object_pos", 1),
    (try_end),
    (try_for_range, ":i_belfry_instance", 0, 3),
      (scene_prop_get_instance, ":belfry_object", "spr_belfry_platform_a", ":i_belfry_instance"),
      (ge, ":belfry_object", 0),
      (scene_set_slot, ":cur_scene", ":cur_belfry_object_pos", ":belfry_object"),
      (val_add, ":cur_belfry_object_pos", 1),
    (try_end),
    (try_for_range, ":i_belfry_instance", 0, 3),
      (scene_prop_get_instance, ":belfry_object", "spr_belfry_platform_b", ":i_belfry_instance"),
      (ge, ":belfry_object", 0),
      (scene_set_slot, ":cur_scene", ":cur_belfry_object_pos", ":belfry_object"),
      (val_add, ":cur_belfry_object_pos", 1),
    (try_end),
    (assign, "$belfry_rotating_objects_begin", ":cur_belfry_object_pos"),
    (try_for_range, ":i_belfry_instance", 0, 5),
      (scene_prop_get_instance, ":belfry_object", "spr_belfry_wheel", ":i_belfry_instance"),
      (ge, ":belfry_object", 0),
      (scene_set_slot, ":cur_scene", ":cur_belfry_object_pos", ":belfry_object"),
      (val_add, ":cur_belfry_object_pos", 1),
    (try_end),
    (assign, "$last_belfry_object_pos", ":cur_belfry_object_pos"),

    #Lifting up the platform  at the beginning
    (try_begin),
      (scene_prop_get_instance, ":belfry_object_to_rotate", "spr_belfry_platform_a", 0),
    (try_end),
    
    #Moving the belfry objects to their starting position
    (entry_point_get_position,pos1,55),
    (entry_point_get_position,pos3,50),
    (try_for_range, ":i_belfry_object_pos", slot_scene_belfry_props_begin, "$last_belfry_object_pos"),
      (assign, ":pos_no", pos_belfry_begin),
      (val_add, ":pos_no", ":i_belfry_object_pos"),
      (val_sub, ":pos_no", slot_scene_belfry_props_begin),
      (scene_get_slot, ":cur_belfry_object", ":cur_scene", ":i_belfry_object_pos"),
      (prop_instance_get_position, pos2, ":cur_belfry_object"),
      (try_begin),
        (eq, ":cur_belfry_object", ":belfry_object_to_rotate"),
        (position_rotate_x, pos2, 90),
      (try_end),
      (position_transform_position_to_local, ":pos_no", pos1, pos2),
      (position_transform_position_to_parent, pos4, pos3, ":pos_no"),
      (prop_instance_animate_to_position, ":cur_belfry_object", pos4, 1),
    (try_end),

# LAV MODIFICATIONS START (COMBINED BELFRIES AND LADDERS)
    (try_for_range, ":ladder_type", "spr_siege_ladder_12m", "spr_siege_ladder_move_6m"),
      (scene_prop_get_num_instances, ":ladders", ":ladder_type"),
      (try_for_range, ":ladder_instance", 0, ":ladders"),
        (scene_prop_get_instance, ":ladder", ":ladder_type", ":ladder_instance"),
        (prop_instance_get_position, pos2, ":ladder"),
        (position_get_rotation_around_x, ":ladder_rotation", pos2),
        (scene_prop_set_slot, ":ladder", scene_prop_belfry_platform_moved, ":ladder_rotation"),
        (store_sub, ":ladder_rotation", 0, ":ladder_rotation"),
        (position_rotate_x, pos2, ":ladder_rotation"), # Make current rotation zero, i.e. ladder will be standing vertically
        (prop_instance_animate_to_position, ":ladder", pos2, 1),
      (try_end),
    (try_end),
# LAV MODIFICATIONS END (COMBINED BELFRIES AND LADDERS)

    (assign, "$belfry_positioned", 0),
    (assign, "$belfry_num_slots_positioned", 0),
    (assign, "$belfry_num_men_pushing", 0),

    (set_show_messages, 0),
    (team_give_order, "$attacker_team", grc_everyone, mordr_stand_ground),
    (team_give_order, "$attacker_team_2", grc_everyone, mordr_stand_ground),
    (set_show_messages, 1),
  ]),

  # script_cf_siege_rotate_belfry_platform
  # Input: none
  # Output: none (required for siege mission templates)
  ("cf_siege_rotate_belfry_platform",
   [(eq, "$belfry_positioned", 1),
    (scene_prop_get_instance, ":belfry_object", "spr_belfry_platform_a", 0),
    (prop_instance_get_position, pos1, ":belfry_object"),
    (position_rotate_x, pos1, -90),
    (prop_instance_animate_to_position, ":belfry_object", pos1, 400),

# LAV MODIFICATIONS START (COMBINED BELFRIES AND LADDERS)
    (try_for_range, ":ladder_type", "spr_siege_ladder_12m", "spr_siege_ladder_move_6m"),
      (scene_prop_get_num_instances, ":ladders", ":ladder_type"),
      (try_for_range, ":ladder_instance", 0, ":ladders"),
        (scene_prop_get_instance, ":ladder", ":ladder_type", ":ladder_instance"),
        (prop_instance_get_position, pos1, ":ladder"),
        (scene_prop_get_slot, ":ladder_rotation", ":ladder", scene_prop_belfry_platform_moved),
        (position_rotate_x, pos1, ":ladder_rotation"), # Apply original rotation
        (prop_instance_animate_to_position, ":ladder", pos1, 400),
      (try_end),
    (try_end),
# LAV MODIFICATIONS END (COMBINED BELFRIES AND LADDERS)

    (assign, "$belfry_positioned", 2),
  ]),

The code will search for all siege_ladder_12m and siege_ladder_14m scene props at the start of the siege and rotate them to vertical position. Then, at the moment when belfry platform starts rotating, the ladders will also rotate to their original position (i.e. at the walls). I haven't tested the code, but it's pretty simple so should work.
 
This is utterly fantastic stuff. Great new maps Lord Samuel, absolutely brilliant stuff!

Lav: If I get what you're saying, the ladders will hit the walls as soon as the siege tower 'bridge' drops? That sounds great, a real 'CHARGE!' moment.
 
Pellagus said:
Lav: If I get what you're saying, the ladders will hit the walls as soon as the siege tower 'bridge' drops? That sounds great, a real 'CHARGE!' moment.
They should. As I said, I didn't test this stuff, it was written on the spur of the moment. :smile:
 
Well, I guess my work is finished, now.

All sieges were simulated using an army of 120-130 men.
Two ladders everywhere, except in some Siege-Tower scenes.
All should be used by the Attackers, more or less harmoniously, depending on the context (topography, numbers, gravity centre of the Ennemy troops, ...)

Should I upload the scenes, now?
 
Yes indeed! I can't begin to thank you for all your sterling effort on this, Lord Samuel.

I'll link the to the download on the the install thread if that's okay?
 
Okay, I'll post a link here after some last-minute changes.

In the meantime, please discover Tihr's harbour :

Tihr_Harbour3.jpg
 
Lord Samuel said:
Okay, I modified the First Page to include this direct link to the first edition of the NE:WB-SSP!

Lord Samuel, you don't know me, but I have been following this thread for months. I have been saying Warband needed something like this for a long time, and so when I saw you creating it, I was quite happy. Anyways, thank you for your hard work.  I threw up a mirror for you on my clan's website. Ok, nevermind, I can't post links yet lol. I'll send you a PM.
 
Thanks for your comments! :smile:

Please note that I added a new file into the Archive: it's a new scenes.txt file, to show the correct border sceneries in places such as Tihr harbour.

You can also download the single file from the 1st Page, or right here :

http://sami.is.free.fr/datas/temp/MB/2_ladders/NEWB/scenes.txt

It shall go into the \Modules\Native Expansion folder.

I also added a mirror link for the Pack, brought to us by Master_Pain! Thank you, Master Pain.
http://theganksquad.net/theganksquad/download.php?view.1
 
Crag Hack said:
Is this going to corrupt my save game or can I install without starting a new game?

Nope, you can install it and it won't break saves. You might want to make a copy of your NE folder though, just in case.
 
Back
Top Bottom