这两天在玩《万国觉醒》,看了下战报,每一回合伤害,技能,buf明细都写的很详尽,如果自己去实现,该怎么做呢?
战报如下:

想想,只要有个记录战斗明细的对象+模板引擎,一整合,需要的结果就出来了,就拿接口很丰富的freemarker练手。
好,我们先来学习下这个模板引擎的基础知识。

一、FreeMarker 是什么?

FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。

二、使用步骤

1.引入库

implementation group: 'org.freemarker', name: 'freemarker', version: '2.3.31';

2.使用

1.数字格式化(金额格式化)

${num?string('0.00')}
如果小数点后不足两位,用 0 代替${num?string('#.##')}
如果小数点后多余两位,就只保留两位,否则输出实际值
输出为:1239765.46${num?string(',###.00')}
输出为:1,239,765.46
整数部分每三位用 , 分割,并且保证小数点后保留两位,不足用 0 代替${num?string(',###.##')}
输出为:1,239,765.46
整数部分每三位用 , 分割,并且小数点后多余两位就只保留两位,不足两位就取实际位数,可以不不包含小数点${num?string('000.00')}
输出为:012.70
整数部分如果不足三位(000),前面用0补齐,否则取实际的整数位${num?string('###.00')}
等价于
${num?string('#.00')}
输出为:12.70
整数取实际的位数

2.时间字段格式化

时间:${(startTime?string("MM/dd HH:mm"))!}-${(endTime?string("MM/dd HH:mm"))!}

生成后就展现如下:
时间:06/09/ 10:18-06/09/ 10:18

3.千分位去除

${total?c}

4.如何使用枚举

OptionValueType.RADIO.value()

5.if else

<#if (winner?exists)>[${winner.mainHero.name}](${winner.total?c})的部队正高举武器,欢庆胜利!
<#else>双方均全军覆没!
</#if>

6.switch case
只能用字符串或者数字为值

7.基本运算

战斗结果:${(round.one.after-round.one.before)?c}

8.声明变量

<#assign name="张三"/>

9.比较大小

<#if (operation.one.loss>0)>
</#if>

10.获取列表大小

${one.array?size}

如果加在if条件

<#if (one.array?size>0)><#list one.array as buff>
${buff.desc}</#list>
<#elseif (one.array?size>10)>
//....
<#else>
无临时增益
</#if>

10.特殊字符用noparse转义
比如 < 符号

<#noparse><</#noparse>

11.转义字符有哪些?

转义序列 含义
\ " 引号 (u0022)
\ ’ 单引号(又称为撇号) (u0027)
\ { 起始花括号:{
\ \ 反斜杠 (u005C)
\n 换行符 (u000A)
\r 回车 (u000D)
\t 水平制表符(又称为tab) (u0009)
\b 退格 (u0008)
\f 换页 (u000C)
\l 小于号:<
\g 大于号:>
\a &符:&
\xCode 字符的16进制 Unicode 码 (UCS 码)

11.字符串填充,适合用于建文本表格
left_pad,right_pad


id       |     command name                      |average size    |   max size         |  total size      |invoke time
--------------------------------------------------------------------------------------------------------------------------------
<#list array as command>
${command.code?c?right_pad(10)}${command.name?right_pad(40)}${command.avgSize?c?right_pad(20)} ${command.maxSize?c?right_pad(20)}${command.totalSize?c?right_pad(20)}${command.invokeTimes?c?right_pad(20)}
</#list>

获得的结果如下:

id       |     command name                      |average size    |   max size         |  total size      |invoke time
--------------------------------------------------------------------------------------------------------------------------------
6         EntityNtfMsg                            123                  918                 21913               178
120       Player_UpdateView_C2S                   41                   42                  1760                42
121       Player_UpdateView_S2C                   0                    0                   0                   42
42        Player_ChangeArmyAction_C2S             24                   24                  48                  2
43        Player_ChangeArmyAction_S2C             0                    0                   0                   2
126       Player_SearchWalkPath_C2S               20                   20                  40                  2
127       Player_SearchWalkPath_S2C               37                   52                  74                  2
7         Login_C2S_Msg                           44                   44                  44                  1
8         Login_S2C_Msg                           23                   23                  23                  1
11        KeepAlive_C2S_Msg                       0                    0                   0                   1
12        KeepAlive_S2C_Msg                       7                    7                   7                   1
32        Player_GetDebugCommandList_C2S          2                    2                   2                   1
33        Player_GetDebugCommandList_S2C          635                  635                 635                 1
55        Player_ChangeMap_S2C                    5                    5                   5                   1
150       Player_SearchMonster_C2S                2                    2                   2                   1
151       Player_SearchMonster_S2C                12                   12                  12                  1

综合使用

战斗日志
时间:${(startTime?string("MM/dd HH:mm:ss"))!}-${(endTime?string("MM/dd HH:mm:ss"))!}
地点:X:${x?c} Y:${y?c}
战斗简介
${one.name}[${one.mainHero.name}]和${other.name}[${other.mainHero.name}]在野外发生了遭遇战!
我方阵容
${one.name} [${one.mainHero.name}]等级${one.mainHero.level} <#if (one.deputyHero?exists)>&[${one.deputyHero.name}]等级${one.deputyHero.level}</#if>兵力:${one.total?c}
<#if (one.array?size>0)><#list one.array as buff>
${buff.desc}</#list>
<#else>
无临时增益
</#if>
敌方阵容
${other.name} [${other.mainHero.name}]等级${other.mainHero.level} <#if (other.deputyHero?exists)>&[${other.deputyHero.name}]等级${other.deputyHero.level}</#if>兵力:${other.total?c}
<#if (other.array?size>0)><#list other.array as buff>${buff.desc}</#list>
<#else>
无临时增益
</#if>
<#list array as round>
第${round.id}回合<#if (round.one?exists)&&(round.other?exists)>
[我方]兵力:${round.one.before?c},战斗结果:${(round.one.after-round.one.before)?c}
[敌方]兵力:${round.other.before?c},战斗结果:${(round.other.after-round.other.before)?c}<#list round.one.array as buff>
[${round.one.name}](${round.one.before?c})由于[${buff.name}]效果${buff.desc},${buff.message}</#list><#list round.other.array as buff>
[${round.other.name}](${round.other.before?c})由于[${buff.name}]效果${buff.desc},${buff.message}</#list><#list round.array as operation><#if (operation.one?exists)><#if (operation.one.skillVO?exists)>
[${operation.one.attacker.name}](${operation.one.total?c}) 发动了[${operation.one.skillVO.skillName}]!<#if (operation.one.loss>0)>
[${operation.one.defencer.name}]损失了${operation.one.loss?c}兵力</#if><#list operation.one.skillVO.array as buff><#if (operation.one.id==buff.sourceId)>
[${operation.one.attacker.name}]的部队获得了${buff.name}效果加成,${buff.message}<#else>
[${operation.one.defencer.name}]的部队获得了${buff.name}效果加成,${buff.message}</#if></#list><#else><#if (operation.one.loss>0)>
[${operation.one.attacker.name}](${operation.one.total?c})对[${operation.one.defencer.name}]发起了普通攻击,[${operation.one.defencer.name}]损失了${operation.one.loss?c}兵力</#if></#if></#if><#if (operation.other?exists)><#if (operation.other.loss>0)>
[${operation.other.attacker.name}]发动反击,[${operation.other.defencer.name}]损失了${operation.other.loss?c}兵力</#if></#if></#list><#else>
本回合交战双方都没有发生战斗!</#if>------------------------------------------------------------------------------
</#list>
战斗结束
<#switch endType.name()><#case "BOT_END"><#if (winner?exists)>
[${winner.mainHero.name}](${winner.total?c})的部队正高举武器,欢庆胜利!<#else>
双方均全军覆没!</#if><#break><#case "BOT_OUT_OF_ROUND">
由于一方撤退,两军不再交战!<#break><#case "BOT_OUT_OF_HIDDEN">
由于一方隐藏,两军不再交战!<#break><#default>
战斗结束!
</#switch>

整合后的文字战报如下:

战斗日志
时间:06/10 11:51:44-06/10 11:52:35
地点:X:13478 Y:12852
战斗简介
玩家名[项羽]和玩家名[谭雅]在野外发生了遭遇战!
我方阵容
玩家名 [项羽]等级1 兵力:2294
敌方阵容
玩家名 [谭雅]等级1 兵力:7000第1回合
[我方]兵力:2294,战斗结果:-48
[敌方]兵力:7000,战斗结果:-85
[项羽](2294)对[谭雅]发起了普通攻击,[谭雅]损失了42兵力
[谭雅]发动反击,[项羽]损失了24兵力[谭雅](7000)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了43兵力------------------------------------------------------------------------------
第2回合
[我方]兵力:2246,战斗结果:-48
[敌方]兵力:6915,战斗结果:-86
[项羽](2246)对[谭雅]发起了普通攻击,[谭雅]损失了44兵力
[谭雅]发动反击,[项羽]损失了24兵力[谭雅](6915)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了42兵力------------------------------------------------------------------------------
第3回合
[我方]兵力:2198,战斗结果:-48
[敌方]兵力:6829,战斗结果:-84
[项羽](2198)对[谭雅]发起了普通攻击,[谭雅]损失了42兵力
[谭雅]发动反击,[项羽]损失了24兵力[谭雅](6829)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了42兵力------------------------------------------------------------------------------
第4回合
[我方]兵力:2150,战斗结果:-48
[敌方]兵力:6745,战斗结果:-84
[项羽](2150)对[谭雅]发起了普通攻击,[谭雅]损失了42兵力
[谭雅]发动反击,[项羽]损失了24兵力[谭雅](6745)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了42兵力------------------------------------------------------------------------------
第5回合
[我方]兵力:2102,战斗结果:-48
[敌方]兵力:6661,战斗结果:-82
[项羽](2102)对[谭雅]发起了普通攻击,[谭雅]损失了42兵力
[谭雅]发动反击,[项羽]损失了24兵力[谭雅](6661)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了40兵力------------------------------------------------------------------------------
第6回合
[我方]兵力:2054,战斗结果:-47
[敌方]兵力:6579,战斗结果:-83
[项羽](2054)对[谭雅]发起了普通攻击,[谭雅]损失了42兵力
[谭雅]发动反击,[项羽]损失了23兵力[谭雅](6579)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了41兵力------------------------------------------------------------------------------
第7回合
[我方]兵力:2007,战斗结果:-47
[敌方]兵力:6496,战斗结果:-81
[项羽](2007)对[谭雅]发起了普通攻击,[谭雅]损失了40兵力
[谭雅]发动反击,[项羽]损失了23兵力[谭雅](6496)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了41兵力------------------------------------------------------------------------------
第8回合
[我方]兵力:1960,战斗结果:-46
[敌方]兵力:6415,战斗结果:-81
[项羽](1960)对[谭雅]发起了普通攻击,[谭雅]损失了40兵力
[谭雅]发动反击,[项羽]损失了23兵力[谭雅](6415)对[项羽]发起了普通攻击,[项羽]损失了23兵力
[项羽]发动反击,[谭雅]损失了41兵力------------------------------------------------------------------------------
第9回合
[我方]兵力:1914,战斗结果:-47
[敌方]兵力:6334,战斗结果:-78
[项羽](1914)对[谭雅]发起了普通攻击,[谭雅]损失了39兵力
[谭雅]发动反击,[项羽]损失了24兵力[谭雅](6334)对[项羽]发起了普通攻击,[项羽]损失了23兵力
[项羽]发动反击,[谭雅]损失了39兵力------------------------------------------------------------------------------
第10回合
[我方]兵力:1867,战斗结果:-46
[敌方]兵力:6256,战斗结果:-79
[项羽](1867)对[谭雅]发起了普通攻击,[谭雅]损失了39兵力
[谭雅]发动反击,[项羽]损失了23兵力[谭雅](6256)对[项羽]发起了普通攻击,[项羽]损失了23兵力
[项羽]发动反击,[谭雅]损失了40兵力------------------------------------------------------------------------------
第11回合
[我方]兵力:1821,战斗结果:-53
[敌方]兵力:6177,战斗结果:-89
[项羽](1821) 发动了[全军出击]!
[项羽]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[谭雅](6177) 发动了[全军出击]!
[谭雅]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[项羽](1821)对[谭雅]发起了普通攻击,[谭雅]损失了44兵力
[谭雅]发动反击,[项羽]损失了26兵力[谭雅](6177)对[项羽]发起了普通攻击,[项羽]损失了27兵力
[项羽]发动反击,[谭雅]损失了45兵力------------------------------------------------------------------------------
第12回合
[我方]兵力:1768,战斗结果:-53
[敌方]兵力:6088,战斗结果:-88
[项羽](1768)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[谭雅](6088)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[项羽](1768)对[谭雅]发起了普通攻击,[谭雅]损失了45兵力
[谭雅]发动反击,[项羽]损失了26兵力[谭雅](6088)对[项羽]发起了普通攻击,[项羽]损失了27兵力
[项羽]发动反击,[谭雅]损失了43兵力------------------------------------------------------------------------------
第13回合
[我方]兵力:1715,战斗结果:-52
[敌方]兵力:6000,战斗结果:-87
[项羽](1715)由于[万箭齐发]效果全军攻击力增强10%,剩余3回合
[谭雅](6000)由于[万箭齐发]效果全军攻击力增强10%,剩余3回合
[项羽](1715)对[谭雅]发起了普通攻击,[谭雅]损失了44兵力
[谭雅]发动反击,[项羽]损失了26兵力[谭雅](6000)对[项羽]发起了普通攻击,[项羽]损失了26兵力
[项羽]发动反击,[谭雅]损失了43兵力------------------------------------------------------------------------------
第14回合
[我方]兵力:1663,战斗结果:-52
[敌方]兵力:5913,战斗结果:-87
[项羽](1663)由于[万箭齐发]效果全军攻击力增强10%,剩余2回合
[谭雅](5913)由于[万箭齐发]效果全军攻击力增强10%,剩余2回合
[项羽](1663)对[谭雅]发起了普通攻击,[谭雅]损失了44兵力
[谭雅]发动反击,[项羽]损失了26兵力[谭雅](5913)对[项羽]发起了普通攻击,[项羽]损失了26兵力
[项羽]发动反击,[谭雅]损失了43兵力------------------------------------------------------------------------------
第15回合
[我方]兵力:1611,战斗结果:-52
[敌方]兵力:5826,战斗结果:-84
[项羽](1611)由于[万箭齐发]效果全军攻击力增强10%,剩余1回合
[谭雅](5826)由于[万箭齐发]效果全军攻击力增强10%,剩余1回合
[项羽](1611)对[谭雅]发起了普通攻击,[谭雅]损失了42兵力
[谭雅]发动反击,[项羽]损失了26兵力[谭雅](5826)对[项羽]发起了普通攻击,[项羽]损失了26兵力
[项羽]发动反击,[谭雅]损失了42兵力------------------------------------------------------------------------------
第16回合
[我方]兵力:1559,战斗结果:-44
[敌方]兵力:5742,战斗结果:-72
[项羽](1559)对[谭雅]发起了普通攻击,[谭雅]损失了36兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](5742)对[项羽]发起了普通攻击,[项羽]损失了22兵力
[项羽]发动反击,[谭雅]损失了36兵力------------------------------------------------------------------------------
第17回合
[我方]兵力:1515,战斗结果:-44
[敌方]兵力:5670,战斗结果:-71
[项羽](1515)对[谭雅]发起了普通攻击,[谭雅]损失了36兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](5670)对[项羽]发起了普通攻击,[项羽]损失了22兵力
[项羽]发动反击,[谭雅]损失了35兵力------------------------------------------------------------------------------
第18回合
[我方]兵力:1471,战斗结果:-44
[敌方]兵力:5599,战斗结果:-70
[项羽](1471)对[谭雅]发起了普通攻击,[谭雅]损失了36兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](5599)对[项羽]发起了普通攻击,[项羽]损失了22兵力
[项羽]发动反击,[谭雅]损失了34兵力------------------------------------------------------------------------------
第19回合
[我方]兵力:1427,战斗结果:-43
[敌方]兵力:5529,战斗结果:-69
[项羽](1427)对[谭雅]发起了普通攻击,[谭雅]损失了35兵力
[谭雅]发动反击,[项羽]损失了21兵力[谭雅](5529)对[项羽]发起了普通攻击,[项羽]损失了22兵力
[项羽]发动反击,[谭雅]损失了34兵力------------------------------------------------------------------------------
第20回合
[我方]兵力:1384,战斗结果:-43
[敌方]兵力:5460,战斗结果:-68
[项羽](1384)对[谭雅]发起了普通攻击,[谭雅]损失了35兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](5460)对[项羽]发起了普通攻击,[项羽]损失了21兵力
[项羽]发动反击,[谭雅]损失了33兵力------------------------------------------------------------------------------
第21回合
[我方]兵力:1341,战斗结果:-50
[敌方]兵力:5392,战斗结果:-78
[项羽](1341) 发动了[全军出击]!
[项羽]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[谭雅](5392) 发动了[全军出击]!
[谭雅]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[项羽](1341)对[谭雅]发起了普通攻击,[谭雅]损失了39兵力
[谭雅]发动反击,[项羽]损失了25兵力[谭雅](5392)对[项羽]发起了普通攻击,[项羽]损失了25兵力
[项羽]发动反击,[谭雅]损失了39兵力------------------------------------------------------------------------------
第22回合
[我方]兵力:1291,战斗结果:-49
[敌方]兵力:5314,战斗结果:-76
[项羽](1291)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[谭雅](5314)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[项羽](1291)对[谭雅]发起了普通攻击,[谭雅]损失了39兵力
[谭雅]发动反击,[项羽]损失了25兵力[谭雅](5314)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了37兵力------------------------------------------------------------------------------
第23回合
[我方]兵力:1242,战斗结果:-50
[敌方]兵力:5238,战斗结果:-75
[项羽](1242)由于[万箭齐发]效果全军攻击力增强10%,剩余3回合
[谭雅](5238)由于[万箭齐发]效果全军攻击力增强10%,剩余3回合
[项羽](1242)对[谭雅]发起了普通攻击,[谭雅]损失了38兵力
[谭雅]发动反击,[项羽]损失了25兵力[谭雅](5238)对[项羽]发起了普通攻击,[项羽]损失了25兵力
[项羽]发动反击,[谭雅]损失了37兵力------------------------------------------------------------------------------
第24回合
[我方]兵力:1192,战斗结果:-48
[敌方]兵力:5163,战斗结果:-74
[项羽](1192)由于[万箭齐发]效果全军攻击力增强10%,剩余2回合
[谭雅](5163)由于[万箭齐发]效果全军攻击力增强10%,剩余2回合
[项羽](1192)对[谭雅]发起了普通攻击,[谭雅]损失了36兵力
[谭雅]发动反击,[项羽]损失了24兵力[谭雅](5163)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了38兵力------------------------------------------------------------------------------
第25回合
[我方]兵力:1144,战斗结果:-49
[敌方]兵力:5089,战斗结果:-72
[项羽](1144)由于[万箭齐发]效果全军攻击力增强10%,剩余1回合
[谭雅](5089)由于[万箭齐发]效果全军攻击力增强10%,剩余1回合
[项羽](1144)对[谭雅]发起了普通攻击,[谭雅]损失了36兵力
[谭雅]发动反击,[项羽]损失了25兵力[谭雅](5089)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了36兵力------------------------------------------------------------------------------
第26回合
[我方]兵力:1095,战斗结果:-41
[敌方]兵力:5017,战斗结果:-60
[项羽](1095)对[谭雅]发起了普通攻击,[谭雅]损失了30兵力
[谭雅]发动反击,[项羽]损失了20兵力[谭雅](5017)对[项羽]发起了普通攻击,[项羽]损失了21兵力
[项羽]发动反击,[谭雅]损失了30兵力------------------------------------------------------------------------------
第27回合
[我方]兵力:1054,战斗结果:-42
[敌方]兵力:4957,战斗结果:-60
[项羽](1054)对[谭雅]发起了普通攻击,[谭雅]损失了30兵力
[谭雅]发动反击,[项羽]损失了21兵力[谭雅](4957)对[项羽]发起了普通攻击,[项羽]损失了21兵力
[项羽]发动反击,[谭雅]损失了30兵力------------------------------------------------------------------------------
第28回合
[我方]兵力:1012,战斗结果:-41
[敌方]兵力:4897,战斗结果:-60
[项羽](1012)对[谭雅]发起了普通攻击,[谭雅]损失了30兵力
[谭雅]发动反击,[项羽]损失了20兵力[谭雅](4897)对[项羽]发起了普通攻击,[项羽]损失了21兵力
[项羽]发动反击,[谭雅]损失了30兵力------------------------------------------------------------------------------
第29回合
[我方]兵力:971,战斗结果:-41
[敌方]兵力:4837,战斗结果:-57
[项羽](971)对[谭雅]发起了普通攻击,[谭雅]损失了28兵力
[谭雅]发动反击,[项羽]损失了20兵力[谭雅](4837)对[项羽]发起了普通攻击,[项羽]损失了21兵力
[项羽]发动反击,[谭雅]损失了29兵力------------------------------------------------------------------------------
第30回合
[我方]兵力:930,战斗结果:-40
[敌方]兵力:4780,战斗结果:-57
[项羽](930)对[谭雅]发起了普通攻击,[谭雅]损失了28兵力
[谭雅]发动反击,[项羽]损失了20兵力[谭雅](4780)对[项羽]发起了普通攻击,[项羽]损失了20兵力
[项羽]发动反击,[谭雅]损失了29兵力------------------------------------------------------------------------------
第31回合
[我方]兵力:890,战斗结果:-47
[敌方]兵力:4723,战斗结果:-63
[项羽](890) 发动了[全军出击]!
[项羽]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[谭雅](4723) 发动了[全军出击]!
[谭雅]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[项羽](890)对[谭雅]发起了普通攻击,[谭雅]损失了31兵力
[谭雅]发动反击,[项羽]损失了24兵力[谭雅](4723)对[项羽]发起了普通攻击,[项羽]损失了23兵力
[项羽]发动反击,[谭雅]损失了32兵力------------------------------------------------------------------------------
第32回合
[我方]兵力:843,战斗结果:-46
[敌方]兵力:4660,战斗结果:-63
[项羽](843)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[谭雅](4660)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[项羽](843)对[谭雅]发起了普通攻击,[谭雅]损失了31兵力
[谭雅]发动反击,[项羽]损失了23兵力[谭雅](4660)对[项羽]发起了普通攻击,[项羽]损失了23兵力
[项羽]发动反击,[谭雅]损失了32兵力------------------------------------------------------------------------------
第33回合
[我方]兵力:797,战斗结果:-47
[敌方]兵力:4597,战斗结果:-60
[项羽](797)由于[万箭齐发]效果全军攻击力增强10%,剩余3回合
[谭雅](4597)由于[万箭齐发]效果全军攻击力增强10%,剩余3回合
[项羽](797)对[谭雅]发起了普通攻击,[谭雅]损失了30兵力
[谭雅]发动反击,[项羽]损失了23兵力[谭雅](4597)对[项羽]发起了普通攻击,[项羽]损失了24兵力
[项羽]发动反击,[谭雅]损失了30兵力------------------------------------------------------------------------------
第34回合
[我方]兵力:750,战斗结果:-45
[敌方]兵力:4537,战斗结果:-60
[项羽](750)由于[万箭齐发]效果全军攻击力增强10%,剩余2回合
[谭雅](4537)由于[万箭齐发]效果全军攻击力增强10%,剩余2回合
[项羽](750)对[谭雅]发起了普通攻击,[谭雅]损失了30兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](4537)对[项羽]发起了普通攻击,[项羽]损失了23兵力
[项羽]发动反击,[谭雅]损失了30兵力------------------------------------------------------------------------------
第35回合
[我方]兵力:705,战斗结果:-46
[敌方]兵力:4477,战斗结果:-57
[项羽](705)由于[万箭齐发]效果全军攻击力增强10%,剩余1回合
[谭雅](4477)由于[万箭齐发]效果全军攻击力增强10%,剩余1回合
[项羽](705)对[谭雅]发起了普通攻击,[谭雅]损失了28兵力
[谭雅]发动反击,[项羽]损失了23兵力[谭雅](4477)对[项羽]发起了普通攻击,[项羽]损失了23兵力
[项羽]发动反击,[谭雅]损失了29兵力------------------------------------------------------------------------------
第36回合
[我方]兵力:659,战斗结果:-39
[敌方]兵力:4420,战斗结果:-48
[项羽](659)对[谭雅]发起了普通攻击,[谭雅]损失了24兵力
[谭雅]发动反击,[项羽]损失了20兵力[谭雅](4420)对[项羽]发起了普通攻击,[项羽]损失了19兵力
[项羽]发动反击,[谭雅]损失了24兵力------------------------------------------------------------------------------
第37回合
[我方]兵力:620,战斗结果:-39
[敌方]兵力:4372,战斗结果:-46
[项羽](620)对[谭雅]发起了普通攻击,[谭雅]损失了24兵力
[谭雅]发动反击,[项羽]损失了20兵力[谭雅](4372)对[项羽]发起了普通攻击,[项羽]损失了19兵力
[项羽]发动反击,[谭雅]损失了22兵力------------------------------------------------------------------------------
第38回合
[我方]兵力:581,战斗结果:-39
[敌方]兵力:4326,战斗结果:-45
[项羽](581)对[谭雅]发起了普通攻击,[谭雅]损失了23兵力
[谭雅]发动反击,[项羽]损失了19兵力[谭雅](4326)对[项羽]发起了普通攻击,[项羽]损失了20兵力
[项羽]发动反击,[谭雅]损失了22兵力------------------------------------------------------------------------------
第39回合
[我方]兵力:542,战斗结果:-38
[敌方]兵力:4281,战斗结果:-45
[项羽](542)对[谭雅]发起了普通攻击,[谭雅]损失了23兵力
[谭雅]发动反击,[项羽]损失了19兵力[谭雅](4281)对[项羽]发起了普通攻击,[项羽]损失了19兵力
[项羽]发动反击,[谭雅]损失了22兵力------------------------------------------------------------------------------
第40回合
[我方]兵力:504,战斗结果:-39
[敌方]兵力:4236,战斗结果:-42
[项羽](504)对[谭雅]发起了普通攻击,[谭雅]损失了21兵力
[谭雅]发动反击,[项羽]损失了20兵力[谭雅](4236)对[项羽]发起了普通攻击,[项羽]损失了19兵力
[项羽]发动反击,[谭雅]损失了21兵力------------------------------------------------------------------------------
第41回合
[我方]兵力:465,战斗结果:-44
[敌方]兵力:4194,战斗结果:-47
[项羽](465) 发动了[全军出击]!
[项羽]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[谭雅](4194) 发动了[全军出击]!
[谭雅]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[项羽](465)对[谭雅]发起了普通攻击,[谭雅]损失了23兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](4194)对[项羽]发起了普通攻击,[项羽]损失了22兵力
[项羽]发动反击,[谭雅]损失了24兵力------------------------------------------------------------------------------
第42回合
[我方]兵力:421,战斗结果:-44
[敌方]兵力:4147,战斗结果:-45
[项羽](421)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[谭雅](4147)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[项羽](421)对[谭雅]发起了普通攻击,[谭雅]损失了22兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](4147)对[项羽]发起了普通攻击,[项羽]损失了22兵力
[项羽]发动反击,[谭雅]损失了23兵力------------------------------------------------------------------------------
第43回合
[我方]兵力:377,战斗结果:-44
[敌方]兵力:4102,战斗结果:-43
[项羽](377)由于[万箭齐发]效果全军攻击力增强10%,剩余3回合
[谭雅](4102)由于[万箭齐发]效果全军攻击力增强10%,剩余3回合
[项羽](377)对[谭雅]发起了普通攻击,[谭雅]损失了21兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](4102)对[项羽]发起了普通攻击,[项羽]损失了22兵力
[项羽]发动反击,[谭雅]损失了22兵力------------------------------------------------------------------------------
第44回合
[我方]兵力:333,战斗结果:-43
[敌方]兵力:4059,战斗结果:-41
[项羽](333)由于[万箭齐发]效果全军攻击力增强10%,剩余2回合
[谭雅](4059)由于[万箭齐发]效果全军攻击力增强10%,剩余2回合
[项羽](333)对[谭雅]发起了普通攻击,[谭雅]损失了20兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](4059)对[项羽]发起了普通攻击,[项羽]损失了21兵力
[项羽]发动反击,[谭雅]损失了21兵力------------------------------------------------------------------------------
第45回合
[我方]兵力:290,战斗结果:-44
[敌方]兵力:4018,战斗结果:-31
[项羽](290)由于[万箭齐发]效果全军攻击力增强10%,剩余1回合
[谭雅](4018)由于[万箭齐发]效果全军攻击力增强10%,剩余1回合
[项羽](290)对[谭雅]发起了普通攻击,[谭雅]损失了18兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](4018)对[项羽]发起了普通攻击,[项羽]损失了22兵力
[项羽]发动反击,[谭雅]损失了19兵力------------------------------------------------------------------------------
第46回合
[我方]兵力:246,战斗结果:-37
[敌方]兵力:3987,战斗结果:-20
[项羽](246)对[谭雅]发起了普通攻击,[谭雅]损失了10兵力
[谭雅]发动反击,[项羽]损失了18兵力[谭雅](3987)对[项羽]发起了普通攻击,[项羽]损失了19兵力
[项羽]发动反击,[谭雅]损失了10兵力------------------------------------------------------------------------------
第47回合
[我方]兵力:209,战斗结果:-37
[敌方]兵力:3967,战斗结果:-19
[项羽](209)对[谭雅]发起了普通攻击,[谭雅]损失了9兵力
[谭雅]发动反击,[项羽]损失了19兵力[谭雅](3967)对[项羽]发起了普通攻击,[项羽]损失了18兵力
[项羽]发动反击,[谭雅]损失了10兵力------------------------------------------------------------------------------
第48回合
[我方]兵力:172,战斗结果:-37
[敌方]兵力:3948,战斗结果:-17
[项羽](172)对[谭雅]发起了普通攻击,[谭雅]损失了8兵力
[谭雅]发动反击,[项羽]损失了19兵力[谭雅](3948)对[项羽]发起了普通攻击,[项羽]损失了18兵力
[项羽]发动反击,[谭雅]损失了9兵力------------------------------------------------------------------------------
第49回合
[我方]兵力:135,战斗结果:-37
[敌方]兵力:3931,战斗结果:-15
[项羽](135)对[谭雅]发起了普通攻击,[谭雅]损失了7兵力
[谭雅]发动反击,[项羽]损失了19兵力[谭雅](3931)对[项羽]发起了普通攻击,[项羽]损失了18兵力
[项羽]发动反击,[谭雅]损失了8兵力------------------------------------------------------------------------------
第50回合
[我方]兵力:98,战斗结果:-37
[敌方]兵力:3916,战斗结果:-13
[项羽](98)对[谭雅]发起了普通攻击,[谭雅]损失了6兵力
[谭雅]发动反击,[项羽]损失了19兵力[谭雅](3916)对[项羽]发起了普通攻击,[项羽]损失了18兵力
[项羽]发动反击,[谭雅]损失了7兵力------------------------------------------------------------------------------
第51回合
[我方]兵力:61,战斗结果:-43
[敌方]兵力:3903,战斗结果:-12
[项羽](61) 发动了[全军出击]!
[项羽]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[谭雅](3903) 发动了[全军出击]!
[谭雅]的部队获得了万箭齐发效果加成,本回合开始生效,共5回合[项羽](61)对[谭雅]发起了普通攻击,[谭雅]损失了6兵力
[谭雅]发动反击,[项羽]损失了22兵力[谭雅](3903)对[项羽]发起了普通攻击,[项羽]损失了21兵力
[项羽]发动反击,[谭雅]损失了6兵力------------------------------------------------------------------------------
第52回合
[我方]兵力:18,战斗结果:-18
[敌方]兵力:3891,战斗结果:-3
[项羽](18)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[谭雅](3891)由于[万箭齐发]效果全军攻击力增强10%,剩余4回合
[项羽](18)对[谭雅]发起了普通攻击,[谭雅]损失了3兵力
[谭雅]发动反击,[项羽]损失了18兵力------------------------------------------------------------------------------
战斗结束
[谭雅](3888)的部队正高举武器,欢庆胜利!

总结

以上都是制作游戏战报的过程中的一些总结,大家也可以用其他模板引擎去做实现。

《万国觉醒》之游戏战报FreeMarker模板引擎实现相关推荐

  1. Spring Boot 系列(五)web开发-Thymeleaf、FreeMarker模板引擎

    前面几篇介绍了返回json数据提供良好的RESTful api,下面我们介绍如何把处理完的数据渲染到页面上. Spring Boot 使用模板引擎 Spring Boot 推荐使用Thymeleaf. ...

  2. Freemarker模板引擎

    模板引擎的实质就是将页面结构提前写好,然后将数据渲染到模板上生成一个静态页面,这样一来,下次就可以 直接访问静态文件,不用进行额外的获取数据的操作(例如:访问数据库),这样大大提升了网站的访问速度. ...

  3. 利用freemarker模板引擎进行word导出

    FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP.它不仅可以用作表现层的实现 ...

  4. Java Email 发HTML邮件工具 采用 freemarker模板引擎渲染

    Java Email 发HTML邮件工具 采用 freemarker模板引擎 1.常用方式对比 Java发送邮件有很多的实现方式 第一种:Java 原生发邮件mail.jar和activation.j ...

  5. Java之利用Freemarker模板引擎实现代码生成器,提高效率

    开心一笑 [1.你以为我会眼睁睁的看着你去送死?我会闭着眼睛.2.给你讲个故事,从前有个笨蛋,他非常笨,别人问他问题他只会回答"没有",这个故事你听过吗?] 视频教程 大家好,我录 ...

  6. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

  7. freemarker模板引擎,页面404,没有任何错误信息提示

    一.问题描述 freemarker模板引擎,页面404,没有任何错误信息提示,如下图所示,404首先排除页面是否存在,这个肯定是存在的,在一个排除下路径是否写错了,这个也没有问题,前面都能访问好好的, ...

  8. struts2 html模板,使用FreeMarker模板引擎作为Struts2的视图技术

    FreeMarker是一个非常优秀的模板引擎,这个模板引擎可用于任何场景,FreeMarker负责将数据模型中的数据合并到模板中,从而生成标准输 出.FreeMarker可以提供昜好的团队协作,对于界 ...

  9. Freemarker模板引擎学习,生成html里的动态表格,可合并单元格

    需求:现有html模板,需动态填充数据,并且包含表格,表格大小不固定,根据数据多少确定表格大小. 解析:两种方案: 1.java代码实现:将模板文件读出为StringBuffer,找到特定位置,循环生 ...

  10. 使用freemarker模板引擎导出word文件

    目录 第一步:创建Word模板 第二步:整理好数据,核对好数据要填充的位置 第三步:使用工具类生成word文件 工具类: 第一步:创建Word模板 创建需要的模板 另存为:单一网页文件 文件名最好改为 ...

最新文章

  1. dll的概念、dll导出类(转)
  2. sql text转image_[转]故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题
  3. linux 档案类型s,Linux学习(四)档案与目录管理
  4. TCP实现在不同局域网下的两台电脑网络通信(Python实现)
  5. STL标准库vector笔记
  6. 字符串_月隐学python第7课
  7. mysql 分组后取每个组内最新的一条数据
  8. Python网络编程基础
  9. idea git和svn间切换
  10. WINCE--修改MAC地址
  11. matlab 点太多,matlab输出参数太多
  12. 普元EOS的项目部署
  13. 徐思201771010132《面向对象程序设计(java)》第十五周学习总结
  14. 通过“控制面板-程序和附件“查看程序安装位置(终极篇)
  15. 京东淘宝,拼多多三大电商平台竞品分析
  16. Android实现图书借阅管理系统的开发
  17. Linux下service mysqld start 启动MySQL提示Redirecting to /bin/systemctl start mysqld.servic
  18. 2. 编写程序,求 x+xx+xxx+……(例如:8+88+888+……)前 n 项之和。x 和 n 的值由 用户从键盘输入。
  19. 2021年R2移动式压力容器充装考试题及R2移动式压力容器充装考试试卷
  20. 海峰五笔试用体验,感觉上当受骗……

热门文章

  1. ffmpeg转换视频编码
  2. 微软疑断自由软件开发者“活路”,禁止在微软商店发布商业开源
  3. 泛微协同商务系统_【泛微云办公平台eteams_泛微在线oa协同办公系统】
  4. [ 物联网篇 ] 03 - Yocto Project (YP)构建 Alexa SDK
  5. esp8266 接入 Amazon alexa智能家居
  6. 学生信息管理系统(SSM+JSP)
  7. WIN7显示桌面图标设置到左下角
  8. android 垂直方向布局,Android详解4种基本布局
  9. 华工校赛E-舞蹈链模板(9x9数独)
  10. HCIA物联网初级考试-第二章物联网常用的通信技术