骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 3286|回复: 3

[下载] 让你可以在游戏内可视化,即时性的编辑各个据点(城镇、城堡、村庄)的位置!

[复制链接]

22

主题

77

回帖

340

积分

贵族[MOD作者]

Rank: 7Rank: 7Rank: 7

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

霸主正版勋章

鲜花(40) 鸡蛋(0)
发表于 2022-3-13 23:55:34 | 显示全部楼层 |阅读模式
本帖最后由 我只玩MID 于 2022-3-14 18:03 编辑

在mod制作的过程中,总是遇到一个麻烦的问题。
那就是各个据点位置固定后再想修改(微调)某个据点的坐标,就需要先打开游戏按住ctrl+e来确认新坐标,再汉化文件里找到这个据点,然后复制他的代码再在module_parties文件里修改他的具体坐标,一个很简单的修改过程却很麻烦。
于是我就再想能不能让所有的据点都可以在游戏中进行调整,然后统一输出代码,再复制粘贴?(不知各位前辈是否有类似的方法,但我目前没有找到相关帖子)
经过了半个小时的构思与实验,终于我做出来了。
视频演示:https://www.bilibili.com/video/BV1UP4y1M7NR

第一步:在module_game_menus文件里的扎营界面中添加一个新的选择项:(搜索"camp_action_1",在这上面添加以下代码)
  1. ("c2",[],"获得所有城镇的地址代码",[
  2.          
  3.       (try_for_range, ":town_no", towns_begin, towns_end),
  4.         (store_sub, reg1, ":town_no", towns_begin),
  5.         (val_add, reg1, 1),
  6.         (party_get_position, pos1, ":town_no"),
  7.         (position_get_x, reg2, pos1),
  8.         (store_div, reg4, reg2, 100),
  9.         (store_mul, reg5, reg4, 100),
  10.         (try_begin),
  11.           (gt, reg2, 0),
  12.           (store_sub, reg5, reg2, reg5),
  13.         (else_try),
  14.           (store_sub, reg5, reg5, reg2),
  15.         (try_end),
  16.         (position_get_y, reg3, pos1),
  17.         (store_div, reg6, reg3, 100),
  18.         (store_mul, reg7, reg6, 100),
  19.         (try_begin),
  20.           (gt, reg3, 0),
  21.           (store_sub, reg7, reg3, reg7),
  22.         (else_try),
  23.           (store_sub, reg7, reg7, reg3),
  24.         (try_end),
  25.         (store_random_in_range,reg8,0,181),
  26.         (display_message, "@chengzhengdaimadizhi", ),
  27.       (try_end),
  28.           ]),
复制代码
然后在汉化文件夹中的quick_strings文件里添加一行:
  1. qstr_chengzhengdaimadizhi|("town_{reg1}","1",  icon_town|pf_town, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,({reg4}.{reg5}, {reg6}.{reg7}),[], {reg8}),
复制代码
reg8是据点的方向,但我没找到获取该数值的方法,所以我用(store_random_in_range,reg8,0,181),给代替了。

核心代码就这些,当然这只是获取城镇的,城堡与村子也都大同小异。


选择某个据点的方法:
首先在某个地方写入(assign, "$g_csmoshi_party", 0),
然后再在module_game_menus文件里的扎营界面中添加一个新的选择项:(搜索"camp_action_1",在这上面添加以下代码)
  1. ("c1",[
  2.       (eq, "$g_csmoshi_party", 0),
  3.       ],"移动该据点",[
  4.       (assign, "$g_csmoshi_party", "$g_encountered_party"),
  5.           ]),
复制代码
然后再简单触发器(module_simple_triggers)里新增一个触发器:
  1. ##测试模式 据点位置更改!!
  2.   (0,
  3.     [
  4.     (gt, "$g_csmoshi_party", 0),
  5.     (party_get_position, pos1, "$g_csmoshi_party"),
  6.     (party_get_position, pos2, "p_main_party"),
  7.     (party_set_position, "$g_csmoshi_party", pos2),
  8.     ]),
复制代码
然后再再再在module_game_menus文件里的扎营界面中添加一个新的选择项:(搜索"camp_action_1",在这上面添加以下代码)
  1. ("c1",[
  2.       (gt, "$g_csmoshi_party", 0),
  3.       ],"固定该据点",[
  4.       (assign, "$g_csmoshi_party", 0),
  5.           ]),
复制代码

如此就可以在游戏中编辑各个城镇的位置然后一键获取各个城镇的坐标代码,然后在骑砍根目录的rgl_log.txt里复制粘贴到module_parties即可

当然这个帖子只是给大伙提供一个思路 所以只分享了城镇坐标的获取方法且可能某些地方有些简陋和小bug,例如坐标x是100.05时输出的坐标x会变成100.5 不过并不是什么大问题,避免小数点后面的第一位数为0就好了。

评分

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

查看全部评分

鲜花鸡蛋

djman  在2023-6-6 22:34  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
mxwell  在2022-11-23 07:06  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
幼稚园殺手  在2022-3-14 10:22  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
幼稚园殺手  在2022-3-14 10:22  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

0

主题

61

回帖

23

积分

随仆

Rank: 1

UID
3110714
第纳尔
429
精华
0
互助
1
荣誉
0
贡献
0
魅力
1
注册时间
2019-10-8
鲜花(7) 鸡蛋(0)
发表于 2022-3-18 03:35:16 | 显示全部楼层
编辑的话有BloodpassEditor了,不过这个点子可以拿来整活

5

主题

38

回帖

23

积分

随仆

Rank: 1

UID
3561673
第纳尔
70
精华
0
互助
2
荣誉
0
贡献
0
魅力
2
注册时间
2023-9-14
鲜花(1) 鸡蛋(0)
发表于 2023-9-21 22:10:55 | 显示全部楼层
传说的骑士 发表于 2022-3-18 03:35
编辑的话有BloodpassEditor了,不过这个点子可以拿来整活

大佬,请问这个编辑器有什么用法教程么?没找到怎么用的

16

主题

108

回帖

197

积分

见习骑士

Rank: 3

UID
3304622
第纳尔
690
精华
0
互助
26
荣誉
3
贡献
0
魅力
158
注册时间
2021-12-28
鲜花(31) 鸡蛋(0)
发表于 2023-9-22 17:44:39 | 显示全部楼层
感谢分享,学习学习
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-12-27 12:48 , Processed in 0.133871 second(s), 25 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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