骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 衣谷三国
查看: 2936|回复: 4

[经验与教程] 不再需要编译ms? 不再需要管理slot?比ms还要高效!

[复制链接]

2

主题

20

回帖

7

积分

平民

Rank: 1

UID
3683912
第纳尔
9
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2024-8-2
鲜花(1) 鸡蛋(0)
发表于 2025-6-6 11:08:04 | 显示全部楼层 |阅读模式
本帖最后由 卢森堡的夜幕 于 2025-6-6 11:30 编辑

大家好我是1403AD的作者,夜幕,也是国内最早一批用wse2做mod的modder
首先什么是 WSE,什么是Lua?

WSE2(Warband Script Enhancer)是战团的非官方引擎扩展。其提供了一个 嵌入式 Lua 环境,可以:
  • 用 Lua 编写战斗逻辑、AI、等
  • 动态添加战触,无需修改ms
  • 热加载脚本:修改代码只需重新执行 dofile()
  • 访问原版游戏作(agent、item、position、party 等



    • 安装 WSE2
    • 然后执行以下操作

    在你的mod根目录创建一个文件夹名为lua然后在lua里创建个msfiles文件夹把header文件全复制进去然后再在lua文件夹里创建个main.lua,随后的修改都得在main.lua里完成

示例一:打印agent ID



  1. <div>game.addTrigger("mst_lead_charge", 1, 0, 0, function()
  2.     for agent_id in game.agentsIt() do
  3.         if game.agent_is_alive(agent_id) then
  4.             game.display_message("Agent: " .. agent_id)
  5.         end
  6.     end
  7.     return true
  8. end)</div>
复制代码



示例二:让所有人速度加倍




  1. <div>game.addTrigger("mst_lead_charge", game.const.ti_before_mission_start, 0, 0, function()
  2.     for agent_id in game.agentsIt() do
  3.         if game.agent_is_alive(agent_id) then
  4.             game.agent_set_speed_modifier(agent_id, 20)  -- +20速度
  5.         end
  6.     end
  7. end)</div>
复制代码



lua不仅作比ms高效,能做的东西还多,甚至可以在没源码的情况下进行修改和制作子mod,
贡献:感谢小黑屋的群友提出了这个想法






34

主题

1001

回帖

2556

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
2755938
第纳尔
6288
精华
12
互助
13
荣誉
98
贡献
85
魅力
265
注册时间
2016-7-5

骑砍中文站APP会员勋章骑士美德之忠诚勋章[杰出会员精华勋章]骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之正义勋章[杰出会员荣誉勋章]元老骑士勋章

鲜花(250) 鸡蛋(0)
发表于 2025-6-6 11:09:55 来自手机 | 显示全部楼层
是时候转进lua了。

24

主题

228

回帖

151

积分

见习骑士

Rank: 3

UID
3181770
第纳尔
1906
精华
0
互助
15
荣誉
0
贡献
10
魅力
170
注册时间
2020-5-5
鲜花(44) 鸡蛋(0)
发表于 2025-6-6 12:07:49 | 显示全部楼层
支持支持多多创作

5

主题

3023

回帖

943

积分

骑士

Rank: 4Rank: 4

UID
86936
第纳尔
12666
精华
0
互助
5
荣誉
1
贡献
0
魅力
71
注册时间
2008-8-10

原版正版勋章战团正版勋章元老骑士勋章汉匈决战正版勋章维京征服正版勋章霸主正版勋章

鲜花(65) 鸡蛋(1)
发表于 2025-6-6 13:40:25 | 显示全部楼层
本帖最后由 英勇的苹果 于 2025-6-6 13:44 编辑

大佬,我想在战场上给我方部队回复远程弹药,用ms写的代码如下:
(点击展开 / 收起)


请问,我若想用WSE2在战场上触发这段代码,该怎么做?


0

主题

9

回帖

3

积分

平民

Rank: 1

UID
2841648
第纳尔
25
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-6-7
鲜花(0) 鸡蛋(0)
发表于 2025-7-7 20:38:57 | 显示全部楼层
Lua能修改game menu的内容吗
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2025-9-4 09:53 , Processed in 0.102885 second(s), 26 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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