骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[讨论] 关于WSE

[复制链接]

10

主题

69

回帖

134

积分

见习骑士

Rank: 3

UID
2818726
第纳尔
4061
精华
0
互助
10
荣誉
6
贡献
0
魅力
45
注册时间
2017-3-25

战团正版勋章霸主正版勋章

鲜花(187) 鸡蛋(0)
发表于 2020-1-9 21:17:44 | 显示全部楼层 |阅读模式
本帖最后由 君悦 于 2020-1-9 21:42 编辑

这几天专门抽时间读了一下WSE的源码,整个人几乎都惊住了,整个游戏的数据几乎就赤裸裸地暴露在我面前

譬如之前R大做的击杀信息,因为没有overlay_set_mesh的操作导致要不停地新建overlay, WSE里直接就可以写一个
譬如之前我花了很多时间的代码测试的missile speed, 用WSE直接就可以get到。

总之就是越过了战团的种种限制, 不需要通过ms做媒介, 直接就可以改游戏了。整个游戏的逻辑都可以窥得一二。

如果跳过ms的二次解析,直接用c++代码运行的话,几乎就跨越了ms最大的障碍:算力。
在ms里,一个简单的n^2算法就已经要人命了,按照一个战场500活人来算,计较下来才不过2500的量。按照现在计算机的标准,往小了说,10^5的数据都是随便跑的。

这种东西本来应该像老滚的SKSE一样成为基本插件的存在啊,它提供的功能是在是太诱人了。

但是却好像没有多少mod使用它,甚至普及度都没有多少......
生活明朗, 万物可爱

18

主题

1442

回帖

508

积分

皇家侍卫长[官方战队队长]

光辉骑士团[UTD]
战团ID:UTD_awe23

Rank: 6Rank: 6

UID
2102975
第纳尔
7304
精华
0
互助
10
荣誉
2
贡献
0
魅力
73
注册时间
2014-8-1

第十一届战团中国联赛征战勋章第十一届战团中国联赛铁骨勋章第一届梦幻联赛参与勋章第十届战团中国联赛征战勋章战团正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]元老骑士勋章霸主正版勋章

鲜花(76) 鸡蛋(2)
发表于 2020-1-9 21:50:39 | 显示全部楼层
实际上WSE就是个外挂,所以可以做到原版MS做不到的东西。不过即使是WSE还是有做不到的事情,之前想修改马撞人减速的幅度,发现好像不太能够实现

10

主题

69

回帖

134

积分

见习骑士

Rank: 3

UID
2818726
第纳尔
4061
精华
0
互助
10
荣誉
6
贡献
0
魅力
45
注册时间
2017-3-25

战团正版勋章霸主正版勋章

鲜花(187) 鸡蛋(0)
 楼主| 发表于 2020-1-9 22:36:23 | 显示全部楼层
本帖最后由 君悦 于 2020-1-9 22:40 编辑
BattleField 发表于 2020-1-9 21:50
实际上WSE就是个外挂,所以可以做到原版MS做不到的东西。不过即使是WSE还是有做不到的事情,之前想修改马撞 ...

具体的底层函数确实难找, 但对应事件是不难找的, 重写一个函数也可以实现
譬如有一个onAgentHorseCharged的触发器
生活明朗, 万物可爱

18

主题

1442

回帖

508

积分

皇家侍卫长[官方战队队长]

光辉骑士团[UTD]
战团ID:UTD_awe23

Rank: 6Rank: 6

UID
2102975
第纳尔
7304
精华
0
互助
10
荣誉
2
贡献
0
魅力
73
注册时间
2014-8-1

第十一届战团中国联赛征战勋章第十一届战团中国联赛铁骨勋章第一届梦幻联赛参与勋章第十届战团中国联赛征战勋章战团正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]元老骑士勋章霸主正版勋章

鲜花(76) 鸡蛋(2)
发表于 2020-1-10 11:40:50 | 显示全部楼层
本帖最后由 BattleField 于 2020-1-10 11:43 编辑
君悦 发表于 2020-1-9 22:36
具体的底层函数确实难找, 但对应事件是不难找的, 重写一个函数也可以实现
譬如有一个onAgentHorseCharge ...

我试过,在这个hook函数里直接修改马速,但是只能改变撞的伤害,撞完后的速度还是不会变。不过给马加横向速度倒是没问题

10

主题

69

回帖

134

积分

见习骑士

Rank: 3

UID
2818726
第纳尔
4061
精华
0
互助
10
荣誉
6
贡献
0
魅力
45
注册时间
2017-3-25

战团正版勋章霸主正版勋章

鲜花(187) 鸡蛋(0)
 楼主| 发表于 2020-1-10 14:01:34 | 显示全部楼层
BattleField 发表于 2020-1-10 11:40
我试过,在这个hook函数里直接修改马速,但是只能改变撞的伤害,撞完后的速度还是不会变。不过给马加横向 ...

我不知道你怎么弄的, 不过我是改成功了
一个简单的测试, 撞人急停
  1.         if (charger_agent->no == warband->cur_mission->player_agent_no) {
  2.                 int horse_no=charger_agent->horse_agent_no;
  3.                 wb::agent* horse = &warband->cur_mission->agents[horse_no];
  4.                 charger_agent->speed.x = charger_agent->speed.y = 0;
  5.                 horse->speed.x = horse->speed.y = 0;
  6.                 warband->window_manager.display_message("got it");
  7.         }
复制代码


不过后续的hook函数确实没有提供..
生活明朗, 万物可爱

18

主题

1442

回帖

508

积分

皇家侍卫长[官方战队队长]

光辉骑士团[UTD]
战团ID:UTD_awe23

Rank: 6Rank: 6

UID
2102975
第纳尔
7304
精华
0
互助
10
荣誉
2
贡献
0
魅力
73
注册时间
2014-8-1

第十一届战团中国联赛征战勋章第十一届战团中国联赛铁骨勋章第一届梦幻联赛参与勋章第十届战团中国联赛征战勋章战团正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]元老骑士勋章霸主正版勋章

鲜花(76) 鸡蛋(2)
发表于 2020-1-10 17:34:06 | 显示全部楼层
我也是这么写的,不过是速度增大。速度增大没用,只有伤害会变大;速度变为0倒确实有用
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-4-20 11:17 , Processed in 0.118636 second(s), 21 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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