骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买霸主CDKEY 购买战帆CDKEY
查看: 4137|回复: 4

[功能与代码] 使每局游戏的城镇各个场景随机化

[复制链接]

23

主题

79

回帖

341

积分

贵族[MOD作者]

Rank: 7Rank: 7Rank: 7

UID
3154436
第纳尔
1428
精华
1
互助
14
荣誉
14
贡献
10
魅力
134
注册时间
2020-4-2

霸主正版勋章

鲜花(40) 鸡蛋(0)
发表于 2021-11-25 07:00:19 | 显示全部楼层 |阅读模式
本帖最后由 我只玩MID 于 2021-11-25 14:55 编辑

玩过潘德的预言的都知道,白鹿堡是自立的不二之选,对于玩家而言,易攻易守。这让很多人(我)新档自立都是选在白鹿堡,让整局游戏都枯燥了不少。
这次的分享主要是让各个城镇的场景变得随机化,相同的城每个档的场景都不一样,包括攻守城。这里只写了城镇场景的随机化,不过城堡和村子也都大同小异。
首先得增加两个简单的脚本:
  1. ##初始化城镇场景
  2.   ("initialization_town_scene",
  3.     [
  4.     (store_script_param, ":party_id", 1),
  5.     (store_script_param, ":number_id", 2),
  6.    
  7.     (party_set_slot,":party_id", slot_party_type, spt_town),
  8.    
  9.     (assign, ":offset", -1),
  10.     (val_add, ":offset", ":number_id"),
  11.    
  12.     (store_add, ":cur_object_no", "scn_town_1_center", ":offset"),
  13.     (party_set_slot,":party_id", slot_town_center, ":cur_object_no"),
  14.     (store_add, ":cur_object_no", "scn_town_1_castle", ":offset"),
  15.     (party_set_slot,":party_id", slot_town_castle, ":cur_object_no"),
  16.     (store_add, ":cur_object_no", "scn_town_1_prison", ":offset"),
  17.     (party_set_slot,":party_id", slot_town_prison, ":cur_object_no"),
  18.     (store_add, ":cur_object_no", "scn_town_1_walls", ":offset"),
  19.     (party_set_slot,":party_id", slot_town_walls, ":cur_object_no"),
  20.     (store_add, ":cur_object_no", "scn_town_1_tavern", ":offset"),
  21.     (party_set_slot,":party_id", slot_town_tavern, ":cur_object_no"),
  22.     (store_add, ":cur_object_no", "scn_town_1_store", ":offset"),
  23.     (party_set_slot,":party_id", slot_town_store, ":cur_object_no"),
  24.     (store_add, ":cur_object_no", "scn_town_1_arena", ":offset"),
  25.     (party_set_slot,":party_id", slot_town_arena, ":cur_object_no"),
  26.     (store_add, ":cur_object_no", "scn_town_1_alley", ":offset"),
  27.     (party_set_slot,":party_id", slot_town_alley, ":cur_object_no"),
  28.    
  29.     (party_set_slot,":party_id", slot_town_reinforcement_party_template, "pt_center_reinforcements"),
  30.   ]),
  31.   
  32. ##随机一个可行的场景
  33.   ("random_town_scene",
  34.     [
  35.     (store_script_param, ":party_id", 1),
  36.    
  37.     (store_faction_of_party, ":party_faction", ":party_id"),
  38.     (faction_get_slot, ":faction_culture", ":party_faction", slot_faction_culture),
  39.    
  40.     (store_random_in_range, ":rand", 1, 23),
  41.     (assign, ":rand_town", ":rand"),
  42.     (val_sub, ":rand_town", 1),
  43.     (val_add, ":rand_town", "p_town_1"),
  44.     (assign, ":pass_check", 0),
  45.    
  46.     ##11##
  47.     (try_begin),
  48.       (eq, ":faction_culture", fac_culture_3),
  49.       (try_begin),
  50.         (this_or_next|is_between, ":rand_town", "p_town_17", "p_town_19"),
  51.         (this_or_next|eq, ":rand_town", "p_town_10"),
  52.         (eq, ":rand_town", "p_town_14"),
  53.         (assign, ":pass_check", 1),
  54.       (try_end),
  55.     (else_try),
  56.       (try_begin),
  57.         (this_or_next|is_between, ":rand_town", "p_town_3", "p_town_9"),
  58.         (this_or_next|eq, ":rand_town", "p_town_13"),
  59.         (is_between, ":rand_town", "p_town_15", "p_town_17"),
  60.         (assign, ":pass_check", 1),
  61.       (try_end),
  62.     (try_end),
  63.     ##11##
  64.    
  65.     (try_begin),
  66.       (eq, ":pass_check", 1),
  67.       (assign, reg0, ":rand"),
  68.     (else_try),
  69.       (call_script, "script_random_town_scene",":party_id"),
  70.     (try_end),
  71.   ]),
复制代码
很好理解,第一个脚本是重新设置城镇的一些场景slot,第二个则是给各个城镇随机一个契合的场景(不至于大地图上草原地形,场景里确是雪地)但这里只是用库吉特文化演示了一下。
添加完这两个脚本后,在新增一个触发器:
  1. (0, 0, ti_once, [],
  2.   [
  3.     (try_for_range, ":town_no", towns_begin, towns_end),
  4.       (call_script, "script_random_town_scene", ":town_no"),
  5.       (call_script, "script_initialization_town_scene", ":town_no", reg0),
  6.     (try_end),
  7.    
  8.     ]),
复制代码
随机脚本的核心是##11##区域,按照自己的实际情况来写。
都是简单的语句组成,没什么学习价值,但好像没有mod做过类似的功能,所以发出来给大伙提供个思路。


评分

参与人数 2第纳尔 +20 互助 +3 魅力 +5 收起 理由
幼稚园殺手 + 10 + 1 + 5 您的帖子很有价值!
aliang227 + 10 + 2 您的帖子很有价值!

查看全部评分

鲜花鸡蛋

幼稚园殺手  在2021-11-25 13:25  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2025-12-26 08:26 , Processed in 0.100639 second(s), 20 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表