用户工具

站点工具


battle_system

战斗系统

战场技能

skill_config.type增加 6 战场技能

stage_config 增加 stage_skill stage_skill_cd 字段 配置是否有战场技能呢

如果是公会战 且 战场技能的cd大于1个回合,会显示战场技能UI。

修正

沈默 2019/03/26 18:45

STAGE_EXTRA 关卡特殊修正

stage_config 新增了 extra 字段 控制 初始种子/combo修正/颜色数量等

相关指令

PuzzleColor(4) 设置最大颜色数(3~5)
PuzzleSeed(3) 设置初始种子0表示按时间随机
PuzzleCombo(0.8) 每次消除有额外80%的几率可以产生 combo 0~1,如果设置为必定combo,最多到20次

颜色和combo修正,stage表格中的配置会覆盖debug的

站位

道具

item_battle_config 战斗道具 属于item_config子表

战斗道具系统主要沿用技能系统的框架,

由战斗道具表去引用skill_config

然后进行战斗技能的一系列使用逻辑。

道具使用条件

如果技能有使用条件限制,需要先判断使用条件

item_battle_config.condition 字段

相关战斗道具的数据走向

HeroTeamApply 设置战斗队伍的道具配置,采用(slot+道具原型)的字典

设置的时候服务器可以完全不关心道具的存量,直接保存到 hero_team_info.item_list

客户端也从这里读取到每个队伍最后的道具配置(数量根据 item_battle_config.limit 和 存量 比较最小值)

开始PVE战斗的时候,把hero_team_info.item_list 送入 player_battle_info.item_list

同时清空 player_battle_info.item_used

战斗如果使用道具,需要通知服务器

BattleItemUse 战斗道具使用

返回成功以后才可以使用。

需要判断 道具已使用上限和道具存量,失败就返回。 使用情况保存在 player_battle_info.item_used

其他

VipFlee 的时候,需要归还所有在player_battle_info.item_used的道具

VipUndo 的时候,需要归同步道具当前的使用情况(校验难度大)

原地复活

player_setting

- battle_restart_cost=75; 重新战斗需要的钻石数量

- battle_restart_skill=500099; 重新复活战斗的技能

- battle_restart_times=1; 重新复活战斗的次数

在 DialogBattleLose界面中,如果钻石和次数都够,可以点击FIGHT进行原地复活

在战斗逻辑中,其实是使用了了一个slot==9的特殊道具, 这个道具指向500099这个技能

他不会消耗实际道具,但可以使玩家复活。

使用之前需要调用BattleRestart 协议 向服务器确认,服务器会扣除钻石并增加次数。

回放也可以通过 player_battle_info.relive_count来判断是否合法进行了复活。

整体变灰笔记

单张图片变灰可以直接采用 亮度公式 对贴图的 rgb进行 加权求和 0.299*R + 0.587*G + 0.114*B=y

在shader forge里面还可以用 RGB→HSV 的方法,把V输出就是亮度

需要每个材质都替换成灰度材质。

如果对一整个卡片进行处理,则可以使用SceneColor + ScreenPos

但是需要注意的是,到了UI的Canvas里面,UV会反,需要 one_minues对v进行操作

然后多个黑白滤镜一起描绘的时候,遇到了裁减问题,没有完美解决,最后通过把所有的GrayMask层级调高来解决

整个方法的原理是GrabPass把FrameBuffer保存成一张贴图,然后进行处理

高斯模糊的方法也可以参考这里

https://blog.csdn.net/winchyy/article/details/71440896

遇到上下反转的问题,注意camera MSAA的勾

battle_system.txt · 最后更改: 2019/04/11 11:49 由 shenmo