Randomised 'bandit' parties using the same spawn party?

正在查看此主题的用户

Mayhem

Squire
So basically I was wondering if different parties could spawn from the same point, or if that's not possible, change the frequency of spawns and the max number at a time. Its just that adding lots of spawns really grinds the game to a halt with battle after battle..and I want lots of different groups in a small area.
Has this been done before? If not, could someone point me to the right place to figure this out myself?

Cheers,
Mayhem
 
You should have asked me first  :lol:

Heres the script for spawning bandits:

  #script_spawn_bandits
  # INPUT: none
  # OUTPUT: none
  ("spawn_bandits",
    [(set_spawn_radius,1),
    (try_begin),
      (store_num_parties_of_template, ":num_parties", "pt_mountain_bandits"),
      (lt,":num_parties",14),
      (store_random,":spawn_point",num_mountain_bandit_spawn_points),
      (val_add,":spawn_point","p_mountain_bandit_spawn_point"),
      (spawn_around_party,":spawn_point","pt_mountain_bandits"),
    (try_end),
    (try_begin),
      (store_num_parties_of_template, ":num_parties", "pt_forest_bandits"),
      (lt,":num_parties",14),
      (store_random,":spawn_point",num_mountain_bandit_spawn_points),
      (val_add,":spawn_point","p_forest_bandit_spawn_point"),
      (spawn_around_party,":spawn_point","pt_forest_bandits"),
    (try_end),
    (try_begin),
      (store_num_parties_of_template, ":num_parties", "pt_sea_raiders"),
      (lt,":num_parties",14),
      (store_random,":spawn_point",num_sea_raider_spawn_points),
      (val_add,":spawn_point","p_sea_raider_spawn_point_1"),
      (spawn_around_party,":spawn_point","pt_sea_raiders"),
    (try_end),
    (try_begin),
      (store_num_parties_of_template, ":num_parties", "pt_steppe_bandits"),
      (lt,":num_parties",14),
      (store_random,":spawn_point",num_steppe_bandit_spawn_points),
      (val_add,":spawn_point","p_steppe_bandit_spawn_point"),
      (spawn_around_party,":spawn_point","pt_steppe_bandits"),
    (try_end),
    (try_begin),
      (store_num_parties_of_template, ":num_parties", "pt_looters"),
      (lt,":num_parties",23),
      (store_random_in_range,":spawn_point",villages_begin,villages_end), #spawn looters twice to have lots of them at the beginning
      (spawn_around_party,":spawn_point","pt_looters"),
      (assign, ":spawned_party_id", reg0),
      (try_begin),
        (check_quest_active, "qst_deal_with_looters"),
        (party_set_flags, ":spawned_party_id", pf_quest_party, 1),
      (else_try),
        (party_set_flags, ":spawned_party_id", pf_quest_party, 0),
      (try_end),
    (try_end),
    (try_begin),
      (store_num_parties_of_template, ":num_parties", "pt_deserters"),
      (lt,":num_parties",15),
      (set_spawn_radius, 4),
      (try_for_range, ":troop_no", kingdom_heroes_begin, kingdom_heroes_end),
        (store_random_in_range, ":random_no", 0, 100),
        (lt, ":random_no", 5),
        (troop_get_slot, ":party_no", ":troop_no", slot_troop_leaded_party),
        (store_troop_faction, ":troop_faction", ":troop_no"),
        (neq, ":troop_faction", "fac_player_supporters_faction"),
        (gt, ":party_no", 0),
        (neg|party_is_in_any_town, ":party_no"),
##        (party_get_attached_to, ":attached_party_no", ":party_no"),
##        (lt, ":attached_party_no", 0),#in wilderness
        (spawn_around_party, ":party_no", "pt_deserters"),
        (assign, ":new_party", reg0),
        (store_troop_faction, ":faction_no", ":troop_no"),
        (faction_get_slot, ":tier_1_troop", ":faction_no", slot_faction_tier_1_troop),
        (store_character_level, ":level", "trp_player"),
        (store_mul, ":max_number_to_add", ":level", 2),
        (val_add, ":max_number_to_add", 11),
        (store_random_in_range, ":number_to_add", 10, ":max_number_to_add"),
        (party_add_members, ":new_party", ":tier_1_troop", ":number_to_add"),
        (store_random_in_range, ":random_no", 1, 4),
        (try_for_range, ":unused", 0, ":random_no"),
          (party_upgrade_with_xp, ":new_party", 1000000, 0),
        (try_end),
##        (str_store_party_name, s1, ":party_no"),
##        (call_script, "script_get_closest_center", ":party_no"),
##        (try_begin),
##          (gt, reg0, 0),
##          (str_store_party_name, s2, reg0),
##        (else_try),
##          (str_store_string, s2, "@unknown place"),
##        (try_end),
##        (assign, reg1, ":number_to_add"),
##        (display_message, "@{reg1} Deserters spawned from {s1}, near {s2}."),
      (try_end),
    (try_end),
    ]),
Should be fairly self evident, these:  '(lt,":num_parties",14),' are the bits you want.

But thats just the spawn radius and maximum amount. The frequency will be in the triggers somewhere (where it calls this script I suppose) I'll look now.

EDIT:
The trigger is in module_simple_triggers:
  # Spawn some bandits.
  (36,
  [
      (call_script, "script_spawn_bandits"),
    ]),

So it appears the script is called every 36 game hours...
 
后退
顶部 底部