翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 139|回复: 8

[已解决] 有关决定版初始视角的小问题

[复制链接]

2

主题

0

精华

27

积分

骑士

耕战
0
鹰币
10
天龙币
0
回帖
10
附庸关系0
 楼主| 发表于 2025-7-14 17:02:21 | 显示全部楼层 |阅读模式
本帖最后由 Burn_Wind 于 2025-8-13 17:30 编辑

各位好,最近我自己制作战役时遇到个小问题。事情是这样的,我做的战役不涉及地图的编辑,纯靠触发实现任务、属性的修改,也就是说生成地图之后不用做任何修改就能玩的,类似于有特殊规则的正常对局;正常来讲开局的初始视角应该是TC,但在我不小心设置了初始视角之后发现没有办法回到之前默认TC的视角了,重新生成地图后仍然是之前设定的位置,导致我开头精心准备的一个小剧情没办法呈现,想请问各位大佬有这个的解决方法吗(编辑器的“改变视角”效果必须在地图上设置,因此不考虑)

我考虑过几种方案
1.导出所有触发再开一个新剧本(可惜我不会)
2.利用脚本调用,定位开局TC的坐标实现自动转视角(可惜我找不到作用是定位和转视角的代码)
3.利用ai实现转视角(我认为这个不太可能)
4.取消掉我手贱设置的初始视角(可惜取消不掉)

真·十年老玩家,但最近才开始琢磨决定版战役编辑,造诣不深,望赐教!
(PS. 之前发错区了,不过也感谢热心大佬的帮助,倒是新了解了一个编辑工具)

2025.8.13更新记录
今日版本更新,新增“重置视角”,故此帖的问题已经完美解决,首先感谢之前各位的回复!
另外分享一点小发现:
1.选项中新增按显示顺序运行触发器和效果(可选),现在触发执行顺序更方便调整了
2.触发器-效果中新增添加训练地点、修改类别属性、修改物件属性、研究本地科技
3.触发器-条件中新增已研究本地科技
4.触发器-效果-修改属性中新增待命攻击图示、移动音效等一系列新选项,现在可以直接通过编辑器修改单位的音效了(楼主目前对照AGE,发现修改XX音效事件才有用)
5.触发器-效果-修改资源中新增货源市场或码头X\Y坐标
6.触发器-效果-修改属性现在可以直接输入小数了,不需要再通过复杂四则运算或用xs脚本调用了(但是例如改变物体速度还是只能输入整数)


另分享英文网站,对于帝国2编辑器有比较详细的介绍
https://ugc.aoe2.rocks/

回复

使用道具 举报

0

主题

0

精华

10

积分

骑士

耕战
0
鹰币
160
天龙币
0
回帖
1
附庸关系0
发表于 2025-7-22 18:24:55 | 显示全部楼层
感觉论坛没什么人了...
回复

使用道具 举报

48

主题

7

精华

1万

积分

枢机主教

耕战
2283
鹰币
8582
天龙币
0
回帖
154

创意工坊通行证

附庸关系0
发表于 2025-7-23 05:07:40 | 显示全部楼层
了解一下AoE2ScenarioParser库并调用player_manager修改players[n]的initial_player_view_x和initial_player_view_y属性
回复

使用道具 举报

0

主题

0

精华

0

积分

扈从

耕战
0
鹰币
10
天龙币
0
回帖
1
附庸关系0
发表于 2025-7-25 18:55:12 | 显示全部楼层
回复

使用道具 举报

2

主题

0

精华

27

积分

骑士

耕战
0
鹰币
10
天龙币
0
回帖
10
附庸关系0
 楼主| 发表于 2025-7-28 11:59:42 | 显示全部楼层
本帖最后由 Burn_Wind 于 2025-7-28 12:11 编辑
夜游神 发表于 2025-7-23 05:07
了解一下AoE2ScenarioParser库并调用player_manager修改players[n]的initial_player_view_x和initial_playe ...

感谢您的回复,纯门外汉的我这几天抽空研究了AoE2ScenarioParser这玩意儿(版本0.4.6),参考这个帖子

https://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=146919&fromuid=392573

捣鼓了几天,也安装好了Python、VS和AoE2ScenarioParser本体,目前是发现可能是因为版本原因,那个帖子的代码不能全部照搬过来用,通过ai工具和尝试还是整出来一段代码(如下)
  1. <font size="1">from AoE2ScenarioParser.scenarios.aoe2_scenario import AoE2Scenario

  2. # 1. 文件路径
  3. input_path = "文件存储路径"
  4. output_path = "文件另存为路径"

  5. # 2. 加载场景文件
  6. scenario = AoE2Scenario.from_file(input_path, "DE")

  7. # 3. 获取玩家管理器
  8. player_manager = scenario.player_manager

  9. # 4. 修改玩家1的初始视角 (玩家ID=0)
  10. player_id = 0  # 玩家1 (玩家1=0, 玩家2=1, ..., 玩家8=7)

  11. # 方法1:直接修改PlayerInitialView对象
  12. if hasattr(player_manager, '_initial_player_views') and len(player_manager._initial_player_views) > player_id:
  13.     view = player_manager._initial_player_views[player_id]
  14.     view.location_x = -1
  15.     view.location_y = -1
  16.     print(f"方法1: 直接修改PlayerInitialView对象 - 位置设置为(-1, -1)")

  17. # 方法2:通过Player对象修改 (更推荐)
  18. if player_id < len(player_manager.players):
  19.     player = player_manager.players[player_id]
  20.    
  21.     # 设置初始视角坐标
  22.     player.initial_player_view_x = -1
  23.     player.initial_player_view_y = -1
  24.    
  25.     # 设置初始相机位置(双保险)
  26.     player.initial_camera_x = -1
  27.     player.initial_camera_y = -1
  28.    
  29.     print(f"方法2: 通过Player对象修改 - 视角和相机位置设置为(-1, -1)")

  30. # 5. 保存修改后的场景
  31. scenario.write_to_file(output_path)
  32. print(f"场景已保存至: {output_path}")</font>
复制代码

由于确实没有多少编程基础,我基本上是按照ai生成的去尝试,这里ai提供了两种修改方法,这段代码运行显示成功,但进入游戏后还是没有任何效果
检查后发现警告 DeprecationWarning:Unused by scenario. Use: `initial_player_view_x` instead (指camera那两行)
于是又修改如下
  1. <font size="1">from AoE2ScenarioParser.scenarios.aoe2_scenario import AoE2Scenario
  2. import os

  3. # 1. 文件路径
  4. input_path = "文件存储路径"
  5. output_path = "文件另存为路径"

  6. # 2. 加载场景文件
  7. scenario = AoE2Scenario.from_file(input_path, "DE")

  8. # 3. 获取玩家管理器
  9. player_manager = scenario.player_manager

  10. # 4. 修改玩家1的初始视角 (玩家ID=0)
  11. player_id = 0  # 玩家2 (玩家1=0, 玩家2=1, ..., 玩家8=7)

  12. if player_id < len(player_manager.players):
  13.     player = player_manager.players[player_id]
  14.    
  15.     # 使用推荐的属性设置初始视角
  16.     player.initial_player_view_x = -1
  17.     player.initial_player_view_y = -1
  18.    
  19.     print(f"玩家 {player_id+1} 的初始视角已设置为(-1, -1)")

  20. # 5. 保存修改后的场景
  21. scenario.write_to_file(output_path)
  22. print(f"场景已保存至: {output_path}")</font>
复制代码

然而结果也显而易见......于是我又不要脸地来问了,确实还是理解不够
(合着我忙活这么长时间搞出来一个能花40多秒时间将一个文件另存为的代码哈哈哈哈)


回复

使用道具 举报

2

主题

0

精华

27

积分

骑士

耕战
0
鹰币
10
天龙币
0
回帖
10
附庸关系0
 楼主| 发表于 2025-7-28 12:14:30 | 显示全部楼层
1160227603 发表于 2025-7-22 18:24
感觉论坛没什么人了...

这不还有您嘛=v=
回复

使用道具 举报

48

主题

7

精华

1万

积分

枢机主教

耕战
2283
鹰币
8582
天龙币
0
回帖
154

创意工坊通行证

附庸关系0
发表于 2025-7-30 23:55:59 | 显示全部楼层
Burn_Wind 发表于 2025-7-28 11:59
感谢您的回复,纯门外汉的我这几天抽空研究了AoE2ScenarioParser这玩意儿(版本0.4.6),参考这个帖子

ht ...

你的AI理解错了,玩家1的ID就是1不是0
回复

使用道具 举报

2

主题

0

精华

27

积分

骑士

耕战
0
鹰币
10
天龙币
0
回帖
10
附庸关系0
 楼主| 发表于 2025-8-13 17:22:06 | 显示全部楼层
夜游神 发表于 2025-7-30 23:55
你的AI理解错了,玩家1的ID就是1不是0

感谢指出,现在也是因为版本更新了,这个问题也是很好地解决了!
回复

使用道具 举报

417

主题

19

精华

8万

积分

教宗

耕战
13421
鹰币
41665
天龙币
18
回帖
6032

特级嘉禾勋章三级帝国勋章十字军勋章翔鹰建站十周年纪念章

附庸关系0
发表于 2025-8-14 22:02:57 | 显示全部楼层
Burn_Wind 发表于 2025-8-13 17:22
感谢指出,现在也是因为版本更新了,这个问题也是很好地解决了!

哈哈哈,正想跟您说这个呢!能解决就好
004时代:战役时代
我很乐意看到有人在MOD技术上超过我。
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2025-10-17 14:40 , Processed in 0.193447 second(s), 105 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2025, Hawkaoe.net All Rights Reserved

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