讨论

C洼会严格限制非技术文章,但有时不得不发布。发布文章至少得绑定一个话题,这时可统一绑定到它。

studio代码注释

ancientcc发表了文章 0 人赞同 0 评论 2025-07-12 08:29:18

一、tchild、restore_map_from struct tchild { unit* window; std::vector<unit*> rows; std::vector<unit*&......查看全部

[MOD]WML标签:side

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 10:28:11

side标签用于在[scenario](单机)/[multiplayer](对战)中定义势力。势力,放三国游戏中就是魏势力、蜀势力和吴势力。一个势力下有一个或多个城池,像魏底下有洛阳、宛。两个或多个势力可结成同盟。side标签下可存在以下键值/标......查看全部

[MOD]变量(Variables)

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 10:25:22

变量用于记录当前状态信息,以便后面可以用到。  一、概述每个变量以变量名进行标识,变量名只能包含字母、数字和下横符。变量可以被赋值、被查询、被清除。赋值变量。变量赋值(通常用[set_variable])是把一个值存储在变量中......查看全部

[MOD] 技能:治疗/治愈

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 10:20:27

治疗:每回合一开始时可以给满足条件单位补HP,像白袍法师的治疗+16。治愈:每回合一开始时可以给满足条件单位解除中毒状态。编写mod时,治疗/治愈特技的标签都是、必须是[heals]。是治疗还是治愈,只是[heals]块中的值不一样而已。&nbs......查看全部

[MOD]游戏编辑器

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 09:58:40

运行下载的是运行包:<kingdom-ins>\editor.exe下载的是资源包:<kingdom-res>\editor.exe 编辑器主界面第一次使用编辑时,需要手动设定资源包(制作mod)或运行包(想修改......查看全部

[MOD] mod概述

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 09:53:07

当前是用WML编写mod。WML是Wesnoth Markup Language缩写,它用于编写Wesnoth中所有配置,包括场景、单位、存盘文件、以及用户界面布局。WML形成的文件扩展名是cfg,它和INI、XML相似,是种......查看全部

[MOD] 教程1:入门

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 09:50:56

安装、配置相关环境。初识*.cfg文件。会修改当中值。认识编辑器。用编辑器汇编*.cfg为*.bin文件。对mod制作过程有个初步了解。学会增加新兵种。 一、安装、配置相关环境要制作mod,二进制包是不够的,这时应该下载资源包。下载完成......查看全部

[MOD] 实例:增加一种实时可建造建筑物,箭塔

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 09:42:15

增加建筑物分两个步骤:编写建筑物配置文件;在建造菜章中增加对应建造该建筑物的按钮。以下分别叙述这两个步骤。 一、编写建筑物配置文件箭塔配置文件:tower.cfg。文件名可以自定义,以cfg为扩展名就行。tower.cfg放置位置:文件......查看全部

[MOD] 玩家环境变量:player

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 09:36:15

玩家环境变量存储玩家相关设置。编写mod过程中可以用这些变量来得到玩家设置的相关信息。 变量内容hero:十进制数值。选择的武将编号。shroud:yes/no。是否使能战争黑幕。fog:yes/no。是否使能战争迷雾。navigati......查看全部

[MOD] 如何制作战役

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 09:31:50

要制作新mod或查看、编辑已有mod,须下载源码包。这里通过介绍战役在源码树中结构,来说明如何将自制战役添加游戏。至于战役中具体细节,像如何设置势力等参考其它贴子。战役实例:群雄争霸为方便,这里以“群雄争霸”为例进行说明。 一、战役在源......查看全部

[MOD] WML标签:unit_type

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 09:23:01

unit_type标签用于定义单位类型。单位包括部队和建筑物。相应的对于部队来说,unit_type等同定义兵种,像骑兵、弓兵。对建筑物来说,unit_type定义建筑物种类,像城市、市场、箭塔。unit_type标签下可存在以下键值/标签。&n......查看全部

[MOD] 兵种能力(Abilities)

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 09:13:08

部队从兵种继承时不会修改能力,因而兵种能力就是部队能力。系统以集中、预定义方式管理能力。预定义能力被集中存放在[units]块下,一个[units].[abilities]块定义一种能力(参考<data>/core/units.cfg......查看全部

[MOD] [terrain_type]

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 09:03:55

[terrain_type]用于在WML中描述地形,一般出现在terrain.cfg。以下是描述“灰色深水”地形的[terrain_type]。[terrain_type] symbol_image=water/ocean-grey-tile i......查看全部

[MOD] 替换字库

ancientcc发表了文章 0 人赞同 0 评论 2025-06-29 08:59:10

游戏中要用到的所有字库文件都是自带的,没有使用系统字库。字库文件须是UNICODE编码字库。游戏显示时会检查每个要显示字符的UNICODE码,根据UNICODE码值找到相应字库,然后使用该字库去渲染。默认配置时英文、中文使用的是不同字库,以下要使......查看全部

[network] 为同步(网络、回放录像),编程上要注意

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 20:47:06

一、能改变城市内三个列表顺序的操作三个列表指“未”武将、“完”武将,城内部队。像出征时,取消出征操作要使出征部队回到原来位置;像AI操作时,不要动不动就排序城内部队,AI排序过了的“录像回放”也一定要让排序。[color=Red]一旦城市被攻陷,......查看全部

[network] 设置多人对战势力时相关变量

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 20:44:18

注:对加入玩家来说,它会把AI玩家的控制模式认为是CNTR_NETWORK。std::vector<connected_user> users_:存储账号玩家信息。变量类型见之下的“[b]struct connected_user[/......查看全部

[network] 恢复数据包

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 20:39:41

操作分“实际执行的操作”和“恢复出的操作”。恢复,指的是“实际执行的操作”它执行完后生成一个数据包,而后游戏则可以根据“它的状态”和这个数据包恢复出一个和实际执行操作一模一样的操作。恢复数据包有两个作用1:多人对战时在网络间流动,使各玩家实现同步......查看全部

[network] 多人游戏

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 20:30:35

多人游戏分本地游戏和联机游戏,本地游戏的另一个叫法就是随机地图。多人游戏步骤 联机游戏.创建联机游戏.加入联机游戏.观看本地游戏大厅I(enter_lobby_mode)创建加入观看--创建(enter_create_mode)设置--......查看全部

[network] 服务器编程

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 20:22:06

server::run()一些注释1、network::accept_connect是非阻塞等待。2、string_ip:本机连接时是127.0.0.1。3、reason:空。指示accept_connect过程没有发生错误。4、sock:为此个......查看全部

[network]对战服务器

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 19:57:08

一、概述不支持直连对战。直连指的是A的kingdom.exe和B的kingdom.exe直接通信。要对战必须通过kingdomd.exe,对于这个kingdomd.exe可以和当中一个kingodm.exe同一台PC上,甚至A的kingdom.e......查看全部

代码Remark汇总

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 19:46:18

remark#40文件:<src>/pathfind/astarsearch.cpp函数:a_star_searchif (!is_wall) { hash[index(dst)].in = s......查看全部

编辑器中武将状态

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 19:42:19

给出让可进入部队的武将;给出让可城市在职的武将;给出让可城市在野的武将;……具体到关卡,为给出以上情况下更简洁提示,引入了武将状态。像已是进入部队的武将,给出在职时就不该可选了。enum {STATE_UNKNOWN, STATE_SERVICE......查看全部

存档文件

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 19:39:03

存档文件有两种格式,游戏存档和录像存档。游戏存档用于做个存档,以便将来某一时间继续玩,录像存档是用于录像回放。在内容上,录像存档是从游戏存档“抽”出,它是游戏存档子集。两种格式可用统一的格式进行表示。存档文件形成有两种情况,单机和联网不论单机还是......查看全部

[MOD]配置战法

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 19:31:53

一、配置战法战法不会影响平民单位。配置文件:<kingdom-res>/data/core/macros/tactics.cfg。按组合分,分原子战法和复合战法。复合战法肯定由一个或多个原子战法组成。一个[tactic]块指定一种战法......查看全部

[animation] 动画素材:闪电攻击

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 19:27:18

闪电攻击是攻击动画中的一种,实现它分两个步骤:1)编写WML。在要能闪电攻击兵种的[unit_type]块中增加一个表示闪电攻击的[attack_anim]2)绘制相关图像。闪电攻击WML定义,摘自咒术师兵种[unit_type] ...... ......查看全部

[animation] 移动动画细节

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 19:19:14

一、x_offset、y_offset和200毫秒即使在一格子,为表现出具体移动,部队的偏移要从“0~1”。这个offset_x/offset_y在图像上表现出是部队从a格子中心到b格子中心,而不是从a格子离b格子的最“后”位置到离b格子的最“前......查看全部

[animation] 浮动标签(floating label)

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 19:16:20

游戏中使用浮动标签的几个例子1:在地图上标注字符,像调试时用的格子坐标。2:鼠标落在窗口控件、状态报告上,出现工具提示。3:鼠标落在地图上单位,左下角/右下角显示单位信息。4:攻击时显示的失血值,攻击方式(减速、中毒)。5:多人对战时显示的即时消......查看全部

preprocessor_data::get_chunk中的一段代码是否可能导致内存泄漏?

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 19:01:06

std::ostringstream res; preprocessor_streambuf *buf = new preprocessor_streambuf(target_); {  &nbs......查看全部

[ai]ai顶层逻辑

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 18:59:18

城市矩形:在已方拥有的所有城市中找出x,y最小值为左上角,最大x,y值为右下角形成的矩形。思考矩形:以城市矩形为参考,上、下、左、右扩展得到的矩形。它是此次AI集中于思考的区域,AI此次所有行为不会超出这个区域。军区:AI形成一个目标的区域,它形......查看全部

[animation] 实现关卡外动画

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 18:23:06

理论上播放动画图像分三步骤:存储背景、画图像、恢复背景。但是考虑到两个原因,1)按实现动画的程序辑逻,要用map_location分割动画涉及到的背景,在关卡外那得人为造出一个gamemap,非常麻烦;2)相对来说,关卡外是不大耗CPU地方,即使......查看全部

[terrain]实例:增加地形及编写地形图形规则(构造规则)

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 15:31:18

Ea(经济区地形)。经济区地形不随周围是什么地形而有所变化,是一种“独立”地形,基于它的构造规则可算“最”简单。 一、在<data>\core\terrain.cfg中增加一种地形[terrain_type] // ......查看全部

[terrain] 地图编辑器、地形动画中的start_tick_、 tb.dat等

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 15:20:44

A:为什么BORDER_COMPLETE_LFB宏要存在两个BORDER_RESTRICTED_RANDOM_LFB宏?Q:BORDER_COMPLETE_LFB是内部宏,常见调用它的外部宏是TRANSITION_COMPLETE_LFB。BOR......查看全部

[terrain] 构造规则:{NEW:BEACH !,Chw,Khw,Khs,W*,S*,Xv,Qx*,A*,_* W* fl

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 15:17:20

构造规则:{NEW:BEACH !,Chw,Khw,Khs,W*,S*,Xv,Qx*,A*,_* W* flat/shore}它用于构造海滩,此处海滩指的是浸在水中、陆上透过水能看到部分。搜索NEW:BEACH宏定义......查看全部

[terrain] 构造规则:{NEW:WAVES D*,Hd W* -499 water/waves}

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 15:14:19

它用于画波浪,此处波浪是从水(W*)涌向沙地(D*,Hd)。该条构造规则实现了这么个功能:当有三个相邻的成三角格子,两格是沙地、一格是水,那么水就会以水格子中心为起点,涌向两沙地格子的交界处。II波浪是6帧动画,图中是动画的第一帧、第二帧,在位置......查看全部

[terrain] 构造规则:{TRANSITION_COMPLETE_L (Ms,Ha) (W*,S*) -171 hills

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 15:10:22

{TRANSITION_COMPLETE_L (Ms,Ha) (W*,S*) -171 hills/snow-to-water}搜索TRANSITION_COMPLETE_L宏定义,#define TRAN......查看全部

[terrain] 地形

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 14:59:37

地形代码表III时段如何在地形上体现出来在不同时段,同一地形会显示不同图像。但这图像根只是同一个,只是把RGB换成不同值而已。1、play_controller::init_gui()时,调用set_color_adjustment(tod.re......查看全部

[ai] AI如何选择“最优”目标

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 14:37:39

攻击分数必须>0才会执行该次攻击;有多个分数>0时,选择最大分数的攻击;存在多个节拍时,最后分数不是简单的各节拍分数乘;像chance_to_hit是累加;初始形成的可攻击部队vector不能决定节拍序。例如有三个只或攻击部队:司马懿......查看全部

[ai] 函数:power_projection

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 14:26:51

计算特定群体(dstsrc指定)在loc这个格子上累计能释放出的攻击能量。double ai::power_projection(const map_location& loc,  con......查看全部

[ai] 函数:analyze_targets

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 14:22:10

analyze_targets,以本AI中各个单位为攻击方,枚举出“所有”攻击目标。程序发现当前团队是AI,它首先进入战斗阶段(do_combat),即判断是否有单位可以对敌对单位执行攻击。要做出这个判断,需要分两步:一、枚举出所有可能的攻击目标......查看全部

[ai] AI执行环境

ancientcc发表了文章 0 人赞同 0 评论 2025-06-28 14:14:44

AI执行环境指的是AI执行时需要的相关数据结构。具体就是这些数据结构是哪些,它们是如何被构造,被析构。要分析以上执行环境中各数据结构关系,比较好的办法是分板manager::play_turn的执行流程. 一、准备AI执行环境(假设第一......查看全部
C洼会严格限制非技术文章,但有时不得不发布。发布文章至少得绑定一个话题,这时可统一绑定到它。